Add charts to patient vital signs feature
& Merge branch 'development' into feature-ucaf # Conflicts: # lib/util/translations_delegate_base.dart # pubspec.yamlmerge-requests/253/head
@ -0,0 +1,39 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "1008895414777",
|
||||
"project_id": "doctorapp-9f172",
|
||||
"storage_bucket": "doctorapp-9f172.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:1008895414777:android:d00fe21d6955c21b1f6d28",
|
||||
"android_client_info": {
|
||||
"package_name": "com.example.doctor_app_flutter"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "1008895414777-3mg88j5ocs5r1au7rf4sh3f4pgsri2f2.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyCNncEIj8ehVUSxV89rx0x1NaWp8t1YVkw"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "1008895414777-3mg88j5ocs5r1au7rf4sh3f4pgsri2f2.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "1008895414777",
|
||||
"project_id": "doctorapp-9f172",
|
||||
"storage_bucket": "doctorapp-9f172.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:1008895414777:android:d00fe21d6955c21b1f6d28",
|
||||
"android_client_info": {
|
||||
"package_name": "com.example.doctor_app_flutter"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "1008895414777-3mg88j5ocs5r1au7rf4sh3f4pgsri2f2.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyCNncEIj8ehVUSxV89rx0x1NaWp8t1YVkw"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "1008895414777-3mg88j5ocs5r1au7rf4sh3f4pgsri2f2.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
|
||||
android.enableR8=true
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
org.gradle.jvmargs=-Xmx4608m
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 488 B |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,124 @@
|
||||
class GetIMEIDetailsModel {
|
||||
int iD;
|
||||
String iMEI;
|
||||
int logInTypeID;
|
||||
bool outSA;
|
||||
String mobile;
|
||||
Null identificationNo;
|
||||
int doctorID;
|
||||
String doctorName;
|
||||
String doctorNameN;
|
||||
int clinicID;
|
||||
String clinicDescription;
|
||||
Null clinicDescriptionN;
|
||||
int projectID;
|
||||
String projectName;
|
||||
String genderDescription;
|
||||
Null genderDescriptionN;
|
||||
String titleDescription;
|
||||
Null titleDescriptionN;
|
||||
Null zipCode;
|
||||
String createdOn;
|
||||
Null createdBy;
|
||||
String editedOn;
|
||||
int editedBy;
|
||||
bool biometricEnabled;
|
||||
Null preferredLanguage;
|
||||
bool isActive;
|
||||
String vidaAuthTokenID;
|
||||
String vidaRefreshTokenID;
|
||||
|
||||
GetIMEIDetailsModel(
|
||||
{this.iD,
|
||||
this.iMEI,
|
||||
this.logInTypeID,
|
||||
this.outSA,
|
||||
this.mobile,
|
||||
this.identificationNo,
|
||||
this.doctorID,
|
||||
this.doctorName,
|
||||
this.doctorNameN,
|
||||
this.clinicID,
|
||||
this.clinicDescription,
|
||||
this.clinicDescriptionN,
|
||||
this.projectID,
|
||||
this.projectName,
|
||||
this.genderDescription,
|
||||
this.genderDescriptionN,
|
||||
this.titleDescription,
|
||||
this.titleDescriptionN,
|
||||
this.zipCode,
|
||||
this.createdOn,
|
||||
this.createdBy,
|
||||
this.editedOn,
|
||||
this.editedBy,
|
||||
this.biometricEnabled,
|
||||
this.preferredLanguage,
|
||||
this.isActive,
|
||||
this.vidaAuthTokenID,
|
||||
this.vidaRefreshTokenID});
|
||||
|
||||
GetIMEIDetailsModel.fromJson(Map<String, dynamic> json) {
|
||||
iD = json['ID'];
|
||||
iMEI = json['IMEI'];
|
||||
logInTypeID = json['LogInTypeID'];
|
||||
outSA = json['OutSA'];
|
||||
mobile = json['Mobile'];
|
||||
identificationNo = json['IdentificationNo'];
|
||||
doctorID = json['DoctorID'];
|
||||
doctorName = json['DoctorName'];
|
||||
doctorNameN = json['DoctorNameN'];
|
||||
clinicID = json['ClinicID'];
|
||||
clinicDescription = json['ClinicDescription'];
|
||||
clinicDescriptionN = json['ClinicDescriptionN'];
|
||||
projectID = json['ProjectID'];
|
||||
projectName = json['ProjectName'];
|
||||
genderDescription = json['Gender_Description'];
|
||||
genderDescriptionN = json['Gender_DescriptionN'];
|
||||
titleDescription = json['Title_Description'];
|
||||
titleDescriptionN = json['Title_DescriptionN'];
|
||||
zipCode = json['ZipCode'];
|
||||
createdOn = json['CreatedOn'];
|
||||
createdBy = json['CreatedBy'];
|
||||
editedOn = json['EditedOn'];
|
||||
editedBy = json['EditedBy'];
|
||||
biometricEnabled = json['BiometricEnabled'];
|
||||
preferredLanguage = json['PreferredLanguage'];
|
||||
isActive = json['IsActive'];
|
||||
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||
vidaRefreshTokenID = json['VidaRefreshTokenID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ID'] = this.iD;
|
||||
data['IMEI'] = this.iMEI;
|
||||
data['LogInTypeID'] = this.logInTypeID;
|
||||
data['OutSA'] = this.outSA;
|
||||
data['Mobile'] = this.mobile;
|
||||
data['IdentificationNo'] = this.identificationNo;
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['DoctorName'] = this.doctorName;
|
||||
data['DoctorNameN'] = this.doctorNameN;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['ClinicDescription'] = this.clinicDescription;
|
||||
data['ClinicDescriptionN'] = this.clinicDescriptionN;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ProjectName'] = this.projectName;
|
||||
data['Gender_Description'] = this.genderDescription;
|
||||
data['Gender_DescriptionN'] = this.genderDescriptionN;
|
||||
data['Title_Description'] = this.titleDescription;
|
||||
data['Title_DescriptionN'] = this.titleDescriptionN;
|
||||
data['ZipCode'] = this.zipCode;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['EditedOn'] = this.editedOn;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['BiometricEnabled'] = this.biometricEnabled;
|
||||
data['PreferredLanguage'] = this.preferredLanguage;
|
||||
data['IsActive'] = this.isActive;
|
||||
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
class InsertIMEIDetailsModel {
|
||||
String iMEI;
|
||||
int logInTypeID;
|
||||
Null outSA;
|
||||
Null mobile;
|
||||
Null identificationNo;
|
||||
int doctorID;
|
||||
String doctorName;
|
||||
String doctorNameN;
|
||||
int clinicID;
|
||||
String clinicDescription;
|
||||
Null clinicDescriptionN;
|
||||
String projectName;
|
||||
String genderDescription;
|
||||
Null genderDescriptionN;
|
||||
String titleDescription;
|
||||
Null titleDescriptionN;
|
||||
bool bioMetricEnabled;
|
||||
Null preferredLanguage;
|
||||
bool isActive;
|
||||
int editedBy;
|
||||
int projectID;
|
||||
String tokenID;
|
||||
int languageID;
|
||||
String stamp;
|
||||
String iPAdress;
|
||||
double versionID;
|
||||
int channel;
|
||||
String sessionID;
|
||||
bool isLoginForDoctorApp;
|
||||
int patientOutSA;
|
||||
String vidaAuthTokenID;
|
||||
String vidaRefreshTokenID;
|
||||
|
||||
InsertIMEIDetailsModel(
|
||||
{this.iMEI,
|
||||
this.logInTypeID,
|
||||
this.outSA,
|
||||
this.mobile,
|
||||
this.identificationNo,
|
||||
this.doctorID,
|
||||
this.doctorName,
|
||||
this.doctorNameN,
|
||||
this.clinicID,
|
||||
this.clinicDescription,
|
||||
this.clinicDescriptionN,
|
||||
this.projectName,
|
||||
this.genderDescription,
|
||||
this.genderDescriptionN,
|
||||
this.titleDescription,
|
||||
this.titleDescriptionN,
|
||||
this.bioMetricEnabled,
|
||||
this.preferredLanguage,
|
||||
this.isActive,
|
||||
this.editedBy,
|
||||
this.projectID,
|
||||
this.tokenID,
|
||||
this.languageID,
|
||||
this.stamp,
|
||||
this.iPAdress,
|
||||
this.versionID,
|
||||
this.channel,
|
||||
this.sessionID,
|
||||
this.isLoginForDoctorApp,
|
||||
this.patientOutSA,
|
||||
this.vidaAuthTokenID,
|
||||
this.vidaRefreshTokenID});
|
||||
|
||||
InsertIMEIDetailsModel.fromJson(Map<String, dynamic> json) {
|
||||
iMEI = json['IMEI'];
|
||||
logInTypeID = json['LogInTypeID'];
|
||||
outSA = json['OutSA'];
|
||||
mobile = json['Mobile'];
|
||||
identificationNo = json['IdentificationNo'];
|
||||
doctorID = json['DoctorID'];
|
||||
doctorName = json['DoctorName'];
|
||||
doctorNameN = json['DoctorNameN'];
|
||||
clinicID = json['ClinicID'];
|
||||
clinicDescription = json['ClinicDescription'];
|
||||
clinicDescriptionN = json['ClinicDescriptionN'];
|
||||
projectName = json['ProjectName'];
|
||||
genderDescription = json['GenderDescription'];
|
||||
genderDescriptionN = json['GenderDescriptionN'];
|
||||
titleDescription = json['TitleDescription'];
|
||||
titleDescriptionN = json['Title_DescriptionN'];
|
||||
bioMetricEnabled = json['BioMetricEnabled'];
|
||||
preferredLanguage = json['PreferredLanguage'];
|
||||
isActive = json['IsActive'];
|
||||
editedBy = json['EditedBy'];
|
||||
projectID = json['ProjectID'];
|
||||
tokenID = json['TokenID'];
|
||||
languageID = json['LanguageID'];
|
||||
stamp = json['stamp'];
|
||||
iPAdress = json['IPAdress'];
|
||||
versionID = json['VersionID'];
|
||||
channel = json['Channel'];
|
||||
sessionID = json['SessionID'];
|
||||
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||
vidaRefreshTokenID = json['VidaRefreshTokenID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['IMEI'] = this.iMEI;
|
||||
data['LogInTypeID'] = this.logInTypeID;
|
||||
data['OutSA'] = this.outSA;
|
||||
data['Mobile'] = this.mobile;
|
||||
data['IdentificationNo'] = this.identificationNo;
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['DoctorName'] = this.doctorName;
|
||||
data['DoctorNameN'] = this.doctorNameN;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['ClinicDescription'] = this.clinicDescription;
|
||||
data['ClinicDescriptionN'] = this.clinicDescriptionN;
|
||||
data['ProjectName'] = this.projectName;
|
||||
data['GenderDescription'] = this.genderDescription;
|
||||
data['GenderDescriptionN'] = this.genderDescriptionN;
|
||||
data['TitleDescription'] = this.titleDescription;
|
||||
data['Title_DescriptionN'] = this.titleDescriptionN;
|
||||
data['BioMetricEnabled'] = this.bioMetricEnabled;
|
||||
data['PreferredLanguage'] = this.preferredLanguage;
|
||||
data['IsActive'] = this.isActive;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['stamp'] = this.stamp;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Channel'] = this.channel;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/core/model/imei_details.dart';
|
||||
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
|
||||
import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
|
||||
|
||||
class AuthService extends BaseService {
|
||||
List<GetIMEIDetailsModel> _imeiDetails = [];
|
||||
List<GetIMEIDetailsModel> get dashboardItemsList => _imeiDetails;
|
||||
|
||||
Future selectDeviceImei(imei) async {
|
||||
try {
|
||||
// dynamic localRes;
|
||||
await baseAppClient.post(SELECT_DEVICE_IMEI,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
_imeiDetails = [];
|
||||
response['List_DoctorDeviceDetails'].forEach((v) {
|
||||
_imeiDetails.add(GetIMEIDetailsModel.fromJson(v));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: {"IMEI": imei, "TokenID": "@dm!n"});
|
||||
//return Future.value(localRes);
|
||||
} catch (error) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
import 'package:doctor_app_flutter/client/base_app_client.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||
import 'package:doctor_app_flutter/core/model/imei_details.dart';
|
||||
import 'package:doctor_app_flutter/core/service/auth_service.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
||||
import 'package:doctor_app_flutter/locator.dart';
|
||||
|
||||
class IMEIViewModel extends BaseViewModel {
|
||||
AuthService _authService = locator<AuthService>();
|
||||
List<GetIMEIDetailsModel> get imeiDetails => _authService.dashboardItemsList;
|
||||
|
||||
Future selectDeviceImei(imei) async {
|
||||
setState(ViewState.Busy);
|
||||
await _authService.selectDeviceImei(imei);
|
||||
if (_authService.hasError) {
|
||||
error = _authService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
class ActivationCodeModel2 {
|
||||
int oTPSendType;
|
||||
String mobileNumber;
|
||||
String zipCode;
|
||||
int channel;
|
||||
int languageID;
|
||||
double versionID;
|
||||
int memberID;
|
||||
int facilityId;
|
||||
String generalid;
|
||||
int isMobileFingerPrint;
|
||||
String vidaAuthTokenID;
|
||||
String vidaRefreshTokenID;
|
||||
|
||||
ActivationCodeModel2(
|
||||
{this.oTPSendType,
|
||||
this.mobileNumber,
|
||||
this.zipCode,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.versionID,
|
||||
this.memberID,
|
||||
this.facilityId,
|
||||
this.generalid,
|
||||
this.isMobileFingerPrint,
|
||||
this.vidaAuthTokenID,
|
||||
this.vidaRefreshTokenID});
|
||||
|
||||
ActivationCodeModel2.fromJson(Map<String, dynamic> json) {
|
||||
oTPSendType = json['OTP_SendType'];
|
||||
mobileNumber = json['MobileNumber'];
|
||||
zipCode = json['ZipCode'];
|
||||
channel = json['Channel'];
|
||||
languageID = json['LanguageID'];
|
||||
versionID = json['VersionID'];
|
||||
memberID = json['MemberID'];
|
||||
facilityId = json['facilityId'];
|
||||
generalid = json['generalid'];
|
||||
isMobileFingerPrint = json['IsMobileFingerPrint'];
|
||||
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||
vidaRefreshTokenID = json['VidaRefreshTokenID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['OTP_SendType'] = this.oTPSendType;
|
||||
data['MobileNumber'] = this.mobileNumber;
|
||||
data['ZipCode'] = this.zipCode;
|
||||
data['Channel'] = this.channel;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['MemberID'] = this.memberID;
|
||||
data['facilityId'] = this.facilityId;
|
||||
data['generalid'] = this.generalid;
|
||||
data['IsMobileFingerPrint'] = this.isMobileFingerPrint;
|
||||
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -1,257 +1,137 @@
|
||||
class VitalSignData {
|
||||
var transNo;
|
||||
var projectID;
|
||||
var weightKg;
|
||||
var heightCm;
|
||||
var temperatureCelcius;
|
||||
var pulseBeatPerMinute;
|
||||
var respirationBeatPerMinute;
|
||||
var bloodPressureLower;
|
||||
var bloodPressureHigher;
|
||||
var sAO2;
|
||||
var fIO2;
|
||||
var painScore;
|
||||
int appointmentNo;
|
||||
int bloodPressureCuffLocation;
|
||||
int bloodPressureCuffSize;
|
||||
int bloodPressureHigher;
|
||||
int bloodPressureLower;
|
||||
int bloodPressurePatientPosition;
|
||||
var bodyMassIndex;
|
||||
var headCircumCm;
|
||||
var leanBodyWeightLbs;
|
||||
var idealBodyWeightLbs;
|
||||
var temperatureCelciusMethod;
|
||||
var pulseRhythm;
|
||||
var respirationPattern;
|
||||
var bloodPressureCuffLocation;
|
||||
var bloodPressureCuffSize;
|
||||
var bloodPressurePatientPosition;
|
||||
var painLocation;
|
||||
var painDuration;
|
||||
var painCharacter;
|
||||
var painFrequency;
|
||||
int fio2;
|
||||
int headCircumCm;
|
||||
int heightCm;
|
||||
int idealBodyWeightLbs;
|
||||
bool isPainManagementDone;
|
||||
var status;
|
||||
bool isVitalsRequired;
|
||||
var patientID;
|
||||
var createdOn;
|
||||
var doctorID;
|
||||
var clinicID;
|
||||
var triageCategory;
|
||||
var gCScore;
|
||||
var lineItemNo;
|
||||
DateTime vitalSignDate;
|
||||
var actualTimeTaken;
|
||||
var sugarLevel;
|
||||
var fBS;
|
||||
var rBS;
|
||||
var observationType;
|
||||
var heartRate;
|
||||
var muscleTone;
|
||||
var reflexIrritability;
|
||||
var bodyColor;
|
||||
var isFirstAssessment;
|
||||
var dateofBirth;
|
||||
var timeOfBirth;
|
||||
var bloodPressure;
|
||||
var bloodPressureCuffLocationDesc;
|
||||
var bloodPressureCuffSizeDesc;
|
||||
var bloodPressurePatientPositionDesc;
|
||||
var clinicName;
|
||||
var doctorImageURL;
|
||||
var doctorName;
|
||||
var painScoreDesc;
|
||||
var pulseRhythmDesc;
|
||||
var respirationPatternDesc;
|
||||
var temperatureCelciusMethodDesc;
|
||||
var time;
|
||||
int leanBodyWeightLbs;
|
||||
String painCharacter;
|
||||
String painDuration;
|
||||
String painFrequency;
|
||||
String painLocation;
|
||||
int painScore;
|
||||
int patientMRN;
|
||||
int patientType;
|
||||
int pulseBeatPerMinute;
|
||||
int pulseRhythm;
|
||||
int respirationBeatPerMinute;
|
||||
int respirationPattern;
|
||||
int sao2;
|
||||
int status;
|
||||
int temperatureCelcius;
|
||||
int temperatureCelciusMethod;
|
||||
int waistSizeInch;
|
||||
int weightKg;
|
||||
|
||||
VitalSignData(
|
||||
{this.transNo,
|
||||
this.projectID,
|
||||
this.weightKg,
|
||||
this.heightCm,
|
||||
this.temperatureCelcius,
|
||||
this.pulseBeatPerMinute,
|
||||
this.respirationBeatPerMinute,
|
||||
this.bloodPressureLower,
|
||||
this.bloodPressureHigher,
|
||||
this.sAO2,
|
||||
this.fIO2,
|
||||
this.painScore,
|
||||
this.bodyMassIndex,
|
||||
this.headCircumCm,
|
||||
this.leanBodyWeightLbs,
|
||||
this.idealBodyWeightLbs,
|
||||
this.temperatureCelciusMethod,
|
||||
this.pulseRhythm,
|
||||
this.respirationPattern,
|
||||
this.bloodPressureCuffLocation,
|
||||
this.bloodPressureCuffSize,
|
||||
this.bloodPressurePatientPosition,
|
||||
this.painLocation,
|
||||
this.painDuration,
|
||||
this.painCharacter,
|
||||
this.painFrequency,
|
||||
this.isPainManagementDone,
|
||||
this.status,
|
||||
this.isVitalsRequired,
|
||||
this.patientID,
|
||||
this.createdOn,
|
||||
this.doctorID,
|
||||
this.clinicID,
|
||||
this.triageCategory,
|
||||
this.gCScore,
|
||||
this.lineItemNo,
|
||||
this.vitalSignDate,
|
||||
this.actualTimeTaken,
|
||||
this.sugarLevel,
|
||||
this.fBS,
|
||||
this.rBS,
|
||||
this.observationType,
|
||||
this.heartRate,
|
||||
this.muscleTone,
|
||||
this.reflexIrritability,
|
||||
this.bodyColor,
|
||||
this.isFirstAssessment,
|
||||
this.dateofBirth,
|
||||
this.timeOfBirth,
|
||||
this.bloodPressure,
|
||||
this.bloodPressureCuffLocationDesc,
|
||||
this.bloodPressureCuffSizeDesc,
|
||||
this.bloodPressurePatientPositionDesc,
|
||||
this.clinicName,
|
||||
this.doctorImageURL,
|
||||
this.doctorName,
|
||||
this.painScoreDesc,
|
||||
this.pulseRhythmDesc,
|
||||
this.respirationPatternDesc,
|
||||
this.temperatureCelciusMethodDesc,
|
||||
this.time});
|
||||
{this.appointmentNo,
|
||||
this.bloodPressureCuffLocation,
|
||||
this.bloodPressureCuffSize,
|
||||
this.bloodPressureHigher,
|
||||
this.bloodPressureLower,
|
||||
this.bloodPressurePatientPosition,
|
||||
this.bodyMassIndex,
|
||||
this.fio2,
|
||||
this.headCircumCm,
|
||||
this.heightCm,
|
||||
this.idealBodyWeightLbs,
|
||||
this.isPainManagementDone,
|
||||
this.isVitalsRequired,
|
||||
this.leanBodyWeightLbs,
|
||||
this.painCharacter,
|
||||
this.painDuration,
|
||||
this.painFrequency,
|
||||
this.painLocation,
|
||||
this.painScore,
|
||||
this.patientMRN,
|
||||
this.patientType,
|
||||
this.pulseBeatPerMinute,
|
||||
this.pulseRhythm,
|
||||
this.respirationBeatPerMinute,
|
||||
this.respirationPattern,
|
||||
this.sao2,
|
||||
this.status,
|
||||
this.temperatureCelcius,
|
||||
this.temperatureCelciusMethod,
|
||||
this.waistSizeInch,
|
||||
this.weightKg});
|
||||
|
||||
VitalSignData.fromJson(Map<String, dynamic> json) {
|
||||
transNo = json['TransNo'];
|
||||
projectID = json['ProjectID'];
|
||||
weightKg = json['WeightKg'];
|
||||
heightCm = json['HeightCm'];
|
||||
temperatureCelcius = json['TemperatureCelcius'];
|
||||
pulseBeatPerMinute = json['PulseBeatPerMinute'];
|
||||
respirationBeatPerMinute = json['RespirationBeatPerMinute'];
|
||||
bloodPressureLower = json['BloodPressureLower'];
|
||||
bloodPressureHigher = json['BloodPressureHigher'];
|
||||
sAO2 = json['SAO2'];
|
||||
fIO2 = json['FIO2'];
|
||||
painScore = json['PainScore'];
|
||||
bodyMassIndex = json['BodyMassIndex'];
|
||||
headCircumCm = json['HeadCircumCm'];
|
||||
leanBodyWeightLbs = json['LeanBodyWeightLbs'];
|
||||
idealBodyWeightLbs = json['IdealBodyWeightLbs'];
|
||||
temperatureCelciusMethod = json['TemperatureCelciusMethod'];
|
||||
pulseRhythm = json['PulseRhythm'];
|
||||
respirationPattern = json['RespirationPattern'];
|
||||
bloodPressureCuffLocation = json['BloodPressureCuffLocation'];
|
||||
bloodPressureCuffSize = json['BloodPressureCuffSize'];
|
||||
bloodPressurePatientPosition = json['BloodPressurePatientPosition'];
|
||||
painLocation = json['PainLocation'];
|
||||
painDuration = json['PainDuration'];
|
||||
painCharacter = json['PainCharacter'];
|
||||
painFrequency = json['PainFrequency'];
|
||||
isPainManagementDone = json['IsPainManagementDone'];
|
||||
status = json['Status'];
|
||||
isVitalsRequired = json['IsVitalsRequired'];
|
||||
patientID = json['PatientID'];
|
||||
createdOn = json['CreatedOn'];
|
||||
doctorID = json['DoctorID'];
|
||||
clinicID = json['ClinicID'];
|
||||
triageCategory = json['TriageCategory'];
|
||||
gCScore = json['GCScore'];
|
||||
lineItemNo = json['LineItemNo'];
|
||||
vitalSignDate = json['VitalSignDate'];
|
||||
actualTimeTaken = json['ActualTimeTaken'];
|
||||
sugarLevel = json['SugarLevel'];
|
||||
fBS = json['FBS'];
|
||||
rBS = json['RBS'];
|
||||
observationType = json['ObservationType'];
|
||||
heartRate = json['HeartRate'];
|
||||
muscleTone = json['MuscleTone'];
|
||||
reflexIrritability = json['ReflexIrritability'];
|
||||
bodyColor = json['BodyColor'];
|
||||
isFirstAssessment = json['IsFirstAssessment'];
|
||||
dateofBirth = json['DateofBirth'];
|
||||
timeOfBirth = json['TimeOfBirth'];
|
||||
bloodPressure = json['BloodPressure'];
|
||||
bloodPressureCuffLocationDesc = json['BloodPressureCuffLocationDesc'];
|
||||
bloodPressureCuffSizeDesc = json['BloodPressureCuffSizeDesc'];
|
||||
bloodPressurePatientPositionDesc = json['BloodPressurePatientPositionDesc'];
|
||||
clinicName = json['ClinicName'];
|
||||
doctorImageURL = json['DoctorImageURL'];
|
||||
doctorName = json['DoctorName'];
|
||||
painScoreDesc = json['PainScoreDesc'];
|
||||
pulseRhythmDesc = json['PulseRhythmDesc'];
|
||||
respirationPatternDesc = json['RespirationPatternDesc'];
|
||||
temperatureCelciusMethodDesc = json['TemperatureCelciusMethodDesc'];
|
||||
time = json['Time'];
|
||||
appointmentNo = json['appointmentNo'];
|
||||
bloodPressureCuffLocation = json['bloodPressureCuffLocation'];
|
||||
bloodPressureCuffSize = json['bloodPressureCuffSize'];
|
||||
bloodPressureHigher = json['bloodPressureHigher'];
|
||||
bloodPressureLower = json['bloodPressureLower'];
|
||||
bloodPressurePatientPosition = json['bloodPressurePatientPosition'];
|
||||
bodyMassIndex = json['bodyMassIndex'];
|
||||
fio2 = json['fio2'];
|
||||
headCircumCm = json['headCircumCm'];
|
||||
heightCm = json['heightCm'];
|
||||
idealBodyWeightLbs = json['idealBodyWeightLbs'];
|
||||
isPainManagementDone = json['isPainManagementDone'];
|
||||
isVitalsRequired = json['isVitalsRequired'];
|
||||
leanBodyWeightLbs = json['leanBodyWeightLbs'];
|
||||
painCharacter = json['painCharacter'];
|
||||
painDuration = json['painDuration'];
|
||||
painFrequency = json['painFrequency'];
|
||||
painLocation = json['painLocation'];
|
||||
painScore = json['painScore'];
|
||||
patientMRN = json['patientMRN'];
|
||||
patientType = json['patientType'];
|
||||
pulseBeatPerMinute = json['pulseBeatPerMinute'];
|
||||
pulseRhythm = json['pulseRhythm'];
|
||||
respirationBeatPerMinute = json['respirationBeatPerMinute'];
|
||||
respirationPattern = json['respirationPattern'];
|
||||
sao2 = json['sao2'];
|
||||
status = json['status'];
|
||||
temperatureCelcius = json['temperatureCelcius'];
|
||||
temperatureCelciusMethod = json['temperatureCelciusMethod'];
|
||||
waistSizeInch = json['waistSizeInch'];
|
||||
weightKg = json['weightKg'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['TransNo'] = this.transNo;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['WeightKg'] = this.weightKg;
|
||||
data['HeightCm'] = this.heightCm;
|
||||
data['TemperatureCelcius'] = this.temperatureCelcius;
|
||||
data['PulseBeatPerMinute'] = this.pulseBeatPerMinute;
|
||||
data['RespirationBeatPerMinute'] = this.respirationBeatPerMinute;
|
||||
data['BloodPressureLower'] = this.bloodPressureLower;
|
||||
data['BloodPressureHigher'] = this.bloodPressureHigher;
|
||||
data['SAO2'] = this.sAO2;
|
||||
data['FIO2'] = this.fIO2;
|
||||
data['PainScore'] = this.painScore;
|
||||
data['BodyMassIndex'] = this.bodyMassIndex;
|
||||
data['HeadCircumCm'] = this.headCircumCm;
|
||||
data['LeanBodyWeightLbs'] = this.leanBodyWeightLbs;
|
||||
data['IdealBodyWeightLbs'] = this.idealBodyWeightLbs;
|
||||
data['TemperatureCelciusMethod'] = this.temperatureCelciusMethod;
|
||||
data['PulseRhythm'] = this.pulseRhythm;
|
||||
data['RespirationPattern'] = this.respirationPattern;
|
||||
data['BloodPressureCuffLocation'] = this.bloodPressureCuffLocation;
|
||||
data['BloodPressureCuffSize'] = this.bloodPressureCuffSize;
|
||||
data['BloodPressurePatientPosition'] = this.bloodPressurePatientPosition;
|
||||
data['PainLocation'] = this.painLocation;
|
||||
data['PainDuration'] = this.painDuration;
|
||||
data['PainCharacter'] = this.painCharacter;
|
||||
data['PainFrequency'] = this.painFrequency;
|
||||
data['IsPainManagementDone'] = this.isPainManagementDone;
|
||||
data['Status'] = this.status;
|
||||
data['IsVitalsRequired'] = this.isVitalsRequired;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['TriageCategory'] = this.triageCategory;
|
||||
data['GCScore'] = this.gCScore;
|
||||
data['LineItemNo'] = this.lineItemNo;
|
||||
data['VitalSignDate'] = this.vitalSignDate;
|
||||
data['ActualTimeTaken'] = this.actualTimeTaken;
|
||||
data['SugarLevel'] = this.sugarLevel;
|
||||
data['FBS'] = this.fBS;
|
||||
data['RBS'] = this.rBS;
|
||||
data['ObservationType'] = this.observationType;
|
||||
data['HeartRate'] = this.heartRate;
|
||||
data['MuscleTone'] = this.muscleTone;
|
||||
data['ReflexIrritability'] = this.reflexIrritability;
|
||||
data['BodyColor'] = this.bodyColor;
|
||||
data['IsFirstAssessment'] = this.isFirstAssessment;
|
||||
data['DateofBirth'] = this.dateofBirth;
|
||||
data['TimeOfBirth'] = this.timeOfBirth;
|
||||
data['BloodPressure'] = this.bloodPressure;
|
||||
data['BloodPressureCuffLocationDesc'] = this.bloodPressureCuffLocationDesc;
|
||||
data['BloodPressureCuffSizeDesc'] = this.bloodPressureCuffSizeDesc;
|
||||
data['BloodPressurePatientPositionDesc'] =
|
||||
this.bloodPressurePatientPositionDesc;
|
||||
data['ClinicName'] = this.clinicName;
|
||||
data['DoctorImageURL'] = this.doctorImageURL;
|
||||
data['DoctorName'] = this.doctorName;
|
||||
data['PainScoreDesc'] = this.painScoreDesc;
|
||||
data['PulseRhythmDesc'] = this.pulseRhythmDesc;
|
||||
data['RespirationPatternDesc'] = this.respirationPatternDesc;
|
||||
data['TemperatureCelciusMethodDesc'] = this.temperatureCelciusMethodDesc;
|
||||
data['Time'] = this.time;
|
||||
data['appointmentNo'] = this.appointmentNo;
|
||||
data['bloodPressureCuffLocation'] = this.bloodPressureCuffLocation;
|
||||
data['bloodPressureCuffSize'] = this.bloodPressureCuffSize;
|
||||
data['bloodPressureHigher'] = this.bloodPressureHigher;
|
||||
data['bloodPressureLower'] = this.bloodPressureLower;
|
||||
data['bloodPressurePatientPosition'] = this.bloodPressurePatientPosition;
|
||||
data['bodyMassIndex'] = this.bodyMassIndex;
|
||||
data['fio2'] = this.fio2;
|
||||
data['headCircumCm'] = this.headCircumCm;
|
||||
data['heightCm'] = this.heightCm;
|
||||
data['idealBodyWeightLbs'] = this.idealBodyWeightLbs;
|
||||
data['isPainManagementDone'] = this.isPainManagementDone;
|
||||
data['isVitalsRequired'] = this.isVitalsRequired;
|
||||
data['leanBodyWeightLbs'] = this.leanBodyWeightLbs;
|
||||
data['painCharacter'] = this.painCharacter;
|
||||
data['painDuration'] = this.painDuration;
|
||||
data['painFrequency'] = this.painFrequency;
|
||||
data['painLocation'] = this.painLocation;
|
||||
data['painScore'] = this.painScore;
|
||||
data['patientMRN'] = this.patientMRN;
|
||||
data['patientType'] = this.patientType;
|
||||
data['pulseBeatPerMinute'] = this.pulseBeatPerMinute;
|
||||
data['pulseRhythm'] = this.pulseRhythm;
|
||||
data['respirationBeatPerMinute'] = this.respirationBeatPerMinute;
|
||||
data['respirationPattern'] = this.respirationPattern;
|
||||
data['sao2'] = this.sao2;
|
||||
data['status'] = this.status;
|
||||
data['temperatureCelcius'] = this.temperatureCelcius;
|
||||
data['temperatureCelciusMethod'] = this.temperatureCelciusMethod;
|
||||
data['waistSizeInch'] = this.waistSizeInch;
|
||||
data['weightKg'] = this.weightKg;
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,257 @@
|
||||
class VitalSignHistory {
|
||||
var transNo;
|
||||
var projectID;
|
||||
var weightKg;
|
||||
var heightCm;
|
||||
var temperatureCelcius;
|
||||
var pulseBeatPerMinute;
|
||||
var respirationBeatPerMinute;
|
||||
var bloodPressureLower;
|
||||
var bloodPressureHigher;
|
||||
var sAO2;
|
||||
var fIO2;
|
||||
var painScore;
|
||||
var bodyMassIndex;
|
||||
var headCircumCm;
|
||||
var leanBodyWeightLbs;
|
||||
var idealBodyWeightLbs;
|
||||
var temperatureCelciusMethod;
|
||||
var pulseRhythm;
|
||||
var respirationPattern;
|
||||
var bloodPressureCuffLocation;
|
||||
var bloodPressureCuffSize;
|
||||
var bloodPressurePatientPosition;
|
||||
var painLocation;
|
||||
var painDuration;
|
||||
var painCharacter;
|
||||
var painFrequency;
|
||||
bool isPainManagementDone;
|
||||
var status;
|
||||
bool isVitalsRequired;
|
||||
var patientID;
|
||||
var createdOn;
|
||||
var doctorID;
|
||||
var clinicID;
|
||||
var triageCategory;
|
||||
var gCScore;
|
||||
var lineItemNo;
|
||||
DateTime vitalSignDate;
|
||||
var actualTimeTaken;
|
||||
var sugarLevel;
|
||||
var fBS;
|
||||
var rBS;
|
||||
var observationType;
|
||||
var heartRate;
|
||||
var muscleTone;
|
||||
var reflexIrritability;
|
||||
var bodyColor;
|
||||
var isFirstAssessment;
|
||||
var dateofBirth;
|
||||
var timeOfBirth;
|
||||
var bloodPressure;
|
||||
var bloodPressureCuffLocationDesc;
|
||||
var bloodPressureCuffSizeDesc;
|
||||
var bloodPressurePatientPositionDesc;
|
||||
var clinicName;
|
||||
var doctorImageURL;
|
||||
var doctorName;
|
||||
var painScoreDesc;
|
||||
var pulseRhythmDesc;
|
||||
var respirationPatternDesc;
|
||||
var temperatureCelciusMethodDesc;
|
||||
var time;
|
||||
|
||||
VitalSignHistory(
|
||||
{this.transNo,
|
||||
this.projectID,
|
||||
this.weightKg,
|
||||
this.heightCm,
|
||||
this.temperatureCelcius,
|
||||
this.pulseBeatPerMinute,
|
||||
this.respirationBeatPerMinute,
|
||||
this.bloodPressureLower,
|
||||
this.bloodPressureHigher,
|
||||
this.sAO2,
|
||||
this.fIO2,
|
||||
this.painScore,
|
||||
this.bodyMassIndex,
|
||||
this.headCircumCm,
|
||||
this.leanBodyWeightLbs,
|
||||
this.idealBodyWeightLbs,
|
||||
this.temperatureCelciusMethod,
|
||||
this.pulseRhythm,
|
||||
this.respirationPattern,
|
||||
this.bloodPressureCuffLocation,
|
||||
this.bloodPressureCuffSize,
|
||||
this.bloodPressurePatientPosition,
|
||||
this.painLocation,
|
||||
this.painDuration,
|
||||
this.painCharacter,
|
||||
this.painFrequency,
|
||||
this.isPainManagementDone,
|
||||
this.status,
|
||||
this.isVitalsRequired,
|
||||
this.patientID,
|
||||
this.createdOn,
|
||||
this.doctorID,
|
||||
this.clinicID,
|
||||
this.triageCategory,
|
||||
this.gCScore,
|
||||
this.lineItemNo,
|
||||
this.vitalSignDate,
|
||||
this.actualTimeTaken,
|
||||
this.sugarLevel,
|
||||
this.fBS,
|
||||
this.rBS,
|
||||
this.observationType,
|
||||
this.heartRate,
|
||||
this.muscleTone,
|
||||
this.reflexIrritability,
|
||||
this.bodyColor,
|
||||
this.isFirstAssessment,
|
||||
this.dateofBirth,
|
||||
this.timeOfBirth,
|
||||
this.bloodPressure,
|
||||
this.bloodPressureCuffLocationDesc,
|
||||
this.bloodPressureCuffSizeDesc,
|
||||
this.bloodPressurePatientPositionDesc,
|
||||
this.clinicName,
|
||||
this.doctorImageURL,
|
||||
this.doctorName,
|
||||
this.painScoreDesc,
|
||||
this.pulseRhythmDesc,
|
||||
this.respirationPatternDesc,
|
||||
this.temperatureCelciusMethodDesc,
|
||||
this.time});
|
||||
|
||||
VitalSignHistory.fromJson(Map<String, dynamic> json) {
|
||||
transNo = json['TransNo'];
|
||||
projectID = json['ProjectID'];
|
||||
weightKg = json['WeightKg'];
|
||||
heightCm = json['HeightCm'];
|
||||
temperatureCelcius = json['TemperatureCelcius'];
|
||||
pulseBeatPerMinute = json['PulseBeatPerMinute'];
|
||||
respirationBeatPerMinute = json['RespirationBeatPerMinute'];
|
||||
bloodPressureLower = json['BloodPressureLower'];
|
||||
bloodPressureHigher = json['BloodPressureHigher'];
|
||||
sAO2 = json['SAO2'];
|
||||
fIO2 = json['FIO2'];
|
||||
painScore = json['PainScore'];
|
||||
bodyMassIndex = json['BodyMassIndex'];
|
||||
headCircumCm = json['HeadCircumCm'];
|
||||
leanBodyWeightLbs = json['LeanBodyWeightLbs'];
|
||||
idealBodyWeightLbs = json['IdealBodyWeightLbs'];
|
||||
temperatureCelciusMethod = json['TemperatureCelciusMethod'];
|
||||
pulseRhythm = json['PulseRhythm'];
|
||||
respirationPattern = json['RespirationPattern'];
|
||||
bloodPressureCuffLocation = json['BloodPressureCuffLocation'];
|
||||
bloodPressureCuffSize = json['BloodPressureCuffSize'];
|
||||
bloodPressurePatientPosition = json['BloodPressurePatientPosition'];
|
||||
painLocation = json['PainLocation'];
|
||||
painDuration = json['PainDuration'];
|
||||
painCharacter = json['PainCharacter'];
|
||||
painFrequency = json['PainFrequency'];
|
||||
isPainManagementDone = json['IsPainManagementDone'];
|
||||
status = json['Status'];
|
||||
isVitalsRequired = json['IsVitalsRequired'];
|
||||
patientID = json['PatientID'];
|
||||
createdOn = json['CreatedOn'];
|
||||
doctorID = json['DoctorID'];
|
||||
clinicID = json['ClinicID'];
|
||||
triageCategory = json['TriageCategory'];
|
||||
gCScore = json['GCScore'];
|
||||
lineItemNo = json['LineItemNo'];
|
||||
vitalSignDate = json['VitalSignDate'];
|
||||
actualTimeTaken = json['ActualTimeTaken'];
|
||||
sugarLevel = json['SugarLevel'];
|
||||
fBS = json['FBS'];
|
||||
rBS = json['RBS'];
|
||||
observationType = json['ObservationType'];
|
||||
heartRate = json['HeartRate'];
|
||||
muscleTone = json['MuscleTone'];
|
||||
reflexIrritability = json['ReflexIrritability'];
|
||||
bodyColor = json['BodyColor'];
|
||||
isFirstAssessment = json['IsFirstAssessment'];
|
||||
dateofBirth = json['DateofBirth'];
|
||||
timeOfBirth = json['TimeOfBirth'];
|
||||
bloodPressure = json['BloodPressure'];
|
||||
bloodPressureCuffLocationDesc = json['BloodPressureCuffLocationDesc'];
|
||||
bloodPressureCuffSizeDesc = json['BloodPressureCuffSizeDesc'];
|
||||
bloodPressurePatientPositionDesc = json['BloodPressurePatientPositionDesc'];
|
||||
clinicName = json['ClinicName'];
|
||||
doctorImageURL = json['DoctorImageURL'];
|
||||
doctorName = json['DoctorName'];
|
||||
painScoreDesc = json['PainScoreDesc'];
|
||||
pulseRhythmDesc = json['PulseRhythmDesc'];
|
||||
respirationPatternDesc = json['RespirationPatternDesc'];
|
||||
temperatureCelciusMethodDesc = json['TemperatureCelciusMethodDesc'];
|
||||
time = json['Time'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['TransNo'] = this.transNo;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['WeightKg'] = this.weightKg;
|
||||
data['HeightCm'] = this.heightCm;
|
||||
data['TemperatureCelcius'] = this.temperatureCelcius;
|
||||
data['PulseBeatPerMinute'] = this.pulseBeatPerMinute;
|
||||
data['RespirationBeatPerMinute'] = this.respirationBeatPerMinute;
|
||||
data['BloodPressureLower'] = this.bloodPressureLower;
|
||||
data['BloodPressureHigher'] = this.bloodPressureHigher;
|
||||
data['SAO2'] = this.sAO2;
|
||||
data['FIO2'] = this.fIO2;
|
||||
data['PainScore'] = this.painScore;
|
||||
data['BodyMassIndex'] = this.bodyMassIndex;
|
||||
data['HeadCircumCm'] = this.headCircumCm;
|
||||
data['LeanBodyWeightLbs'] = this.leanBodyWeightLbs;
|
||||
data['IdealBodyWeightLbs'] = this.idealBodyWeightLbs;
|
||||
data['TemperatureCelciusMethod'] = this.temperatureCelciusMethod;
|
||||
data['PulseRhythm'] = this.pulseRhythm;
|
||||
data['RespirationPattern'] = this.respirationPattern;
|
||||
data['BloodPressureCuffLocation'] = this.bloodPressureCuffLocation;
|
||||
data['BloodPressureCuffSize'] = this.bloodPressureCuffSize;
|
||||
data['BloodPressurePatientPosition'] = this.bloodPressurePatientPosition;
|
||||
data['PainLocation'] = this.painLocation;
|
||||
data['PainDuration'] = this.painDuration;
|
||||
data['PainCharacter'] = this.painCharacter;
|
||||
data['PainFrequency'] = this.painFrequency;
|
||||
data['IsPainManagementDone'] = this.isPainManagementDone;
|
||||
data['Status'] = this.status;
|
||||
data['IsVitalsRequired'] = this.isVitalsRequired;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['TriageCategory'] = this.triageCategory;
|
||||
data['GCScore'] = this.gCScore;
|
||||
data['LineItemNo'] = this.lineItemNo;
|
||||
data['VitalSignDate'] = this.vitalSignDate;
|
||||
data['ActualTimeTaken'] = this.actualTimeTaken;
|
||||
data['SugarLevel'] = this.sugarLevel;
|
||||
data['FBS'] = this.fBS;
|
||||
data['RBS'] = this.rBS;
|
||||
data['ObservationType'] = this.observationType;
|
||||
data['HeartRate'] = this.heartRate;
|
||||
data['MuscleTone'] = this.muscleTone;
|
||||
data['ReflexIrritability'] = this.reflexIrritability;
|
||||
data['BodyColor'] = this.bodyColor;
|
||||
data['IsFirstAssessment'] = this.isFirstAssessment;
|
||||
data['DateofBirth'] = this.dateofBirth;
|
||||
data['TimeOfBirth'] = this.timeOfBirth;
|
||||
data['BloodPressure'] = this.bloodPressure;
|
||||
data['BloodPressureCuffLocationDesc'] = this.bloodPressureCuffLocationDesc;
|
||||
data['BloodPressureCuffSizeDesc'] = this.bloodPressureCuffSizeDesc;
|
||||
data['BloodPressurePatientPositionDesc'] =
|
||||
this.bloodPressurePatientPositionDesc;
|
||||
data['ClinicName'] = this.clinicName;
|
||||
data['DoctorImageURL'] = this.doctorImageURL;
|
||||
data['DoctorName'] = this.doctorName;
|
||||
data['PainScoreDesc'] = this.painScoreDesc;
|
||||
data['PulseRhythmDesc'] = this.pulseRhythmDesc;
|
||||
data['RespirationPatternDesc'] = this.respirationPatternDesc;
|
||||
data['TemperatureCelciusMethodDesc'] = this.temperatureCelciusMethodDesc;
|
||||
data['Time'] = this.time;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -1,196 +1,197 @@
|
||||
// import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item.dart';
|
||||
// import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart';
|
||||
// import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||
// import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||
// import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
|
||||
// import 'package:flutter/material.dart';
|
||||
//
|
||||
// class VitalSignDetailsScreen extends StatelessWidget {
|
||||
// static const String url = "assets/images/";
|
||||
//
|
||||
// int appointmentNo;
|
||||
// int projectID;
|
||||
// bool isNotOneAppointment;
|
||||
// VitalSignDetailsScreen({this.appointmentNo, this.projectID,this.isNotOneAppointment=true});
|
||||
// List<ImagesInfo> imagesInfo = List();
|
||||
//
|
||||
//
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-vital-signs/en/0.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-vital-signs/ar/0.png'));
|
||||
// imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-vital-signs/en/1.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-vital-signs/ar/1.png'));
|
||||
// return BaseView<VitalSignViewModel>(
|
||||
// onModelReady: appointmentNo != null && projectID != null
|
||||
// ? (model) => model.getPatientVitalSign(
|
||||
// appointmentNo: appointmentNo, projectID: projectID)
|
||||
// : (model) => model.getPatientVitalSign(),
|
||||
// builder: (_, mode, widget) => AppScaffold(
|
||||
// isShowAppBar: true,
|
||||
// appBarTitle: TranslationBase.of(context).vitalSigns,
|
||||
// baseViewModel: mode,
|
||||
// description: TranslationBase.of(context).infoSigns,
|
||||
// imagesInfo: imagesInfo,
|
||||
// body: mode.vitalSignResModelList.length > 0
|
||||
// ? Container(
|
||||
// child: ListView(
|
||||
// children: <Widget>[
|
||||
// Row(
|
||||
// children: <Widget>[
|
||||
// InkWell(
|
||||
// onTap: () =>isNotOneAppointment? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.Height,
|
||||
// pageTitle: TranslationBase.of(context).height,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: Container(
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).height,
|
||||
// icon: DQIcons.height,
|
||||
// lastVal: mode.heightCm,
|
||||
// unit: TranslationBase.of(context).cm,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.Weight,
|
||||
// pageTitle: TranslationBase.of(context).weight,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).weight,
|
||||
// icon: DQIcons.weight_scale,
|
||||
// unit: TranslationBase.of(context).kg,
|
||||
// lastVal: mode.weightKg,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// Row(
|
||||
// children: <Widget>[
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: vitalSignDetails.BodyMeasurements,
|
||||
// pageTitle: TranslationBase.of(context)
|
||||
// .bodyMeasurements,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ): null,
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).body,
|
||||
// icon: DQIcons.bmi,
|
||||
// lastVal: mode.bodyMax,
|
||||
// unit: TranslationBase.of(context).mass,
|
||||
// ),
|
||||
// ),
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.Temperature,
|
||||
// pageTitle:
|
||||
// TranslationBase.of(context).temperature,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: Container(
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).temperature,
|
||||
// icon: DQIcons.thermometer,
|
||||
// lastVal: mode.temperatureCelcius,
|
||||
// unit: TranslationBase.of(context).tempC,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// Row(
|
||||
// children: <Widget>[
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.heart,
|
||||
// pageTitle: TranslationBase.of(context).heart,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).heart,
|
||||
// icon: DQIcons.heart,
|
||||
// lastVal: mode.hartRat,
|
||||
// unit: TranslationBase.of(context).bpm,
|
||||
// ),
|
||||
// ),
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.Respiration,
|
||||
// pageTitle:
|
||||
// TranslationBase.of(context).respirationRate,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).respirationRate,
|
||||
// icon: DQIcons.outline,
|
||||
// lastVal: mode.respirationBeatPerMinute,
|
||||
// unit: TranslationBase.of(context).respirationSigns,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.center,
|
||||
// children: <Widget>[
|
||||
// InkWell(
|
||||
// onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
// context,
|
||||
// FadePage(
|
||||
// page: VitalSignItemDetailsScreen(
|
||||
// pageKey: VitalSignDetails.BloodPressure,
|
||||
// pageTitle: TranslationBase.of(context).bloodPressure,
|
||||
// vitalList: mode.vitalSignResModelList,
|
||||
// ),
|
||||
// ),
|
||||
// ):null,
|
||||
// child: VitalSignItem(
|
||||
// des: TranslationBase.of(context).bloodPressure,
|
||||
// icon: DQIcons.blood_pressure,
|
||||
// lastVal: mode.bloodPressure,
|
||||
// unit: TranslationBase.of(context).sysDias,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// )
|
||||
// : Center(
|
||||
// child: Texts('No Data'),
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
import 'package:doctor_app_flutter/core/viewModel/patient-vital-sign-viewmodel.dart';
|
||||
import 'package:doctor_app_flutter/lookups/patient_lookup.dart';
|
||||
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item.dart';
|
||||
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item_details_screen.dart';
|
||||
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class VitalSignDetailsScreen extends StatelessWidget {
|
||||
|
||||
int appointmentNo;
|
||||
int projectID;
|
||||
bool isNotOneAppointment;
|
||||
VitalSignDetailsScreen({this.appointmentNo, this.projectID,this.isNotOneAppointment=true});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||
PatiantInformtion patient = routeArgs['patient'];
|
||||
String from = routeArgs['from'];
|
||||
String to = routeArgs['to'];
|
||||
String imageBasePath = 'assets/images/';
|
||||
|
||||
return BaseView<VitalSignsViewModel>(
|
||||
onModelReady: (model) => model.getPatientVitalSignHistory(patient, from, to),
|
||||
builder: (_, mode, widget) => AppScaffold(
|
||||
isShowAppBar: true,
|
||||
baseViewModel: mode,
|
||||
appBarTitle: TranslationBase.of(context).vitalSign,
|
||||
body: mode.patientVitalSignsHistory.length > 0
|
||||
? Container(
|
||||
child: ListView(
|
||||
children: <Widget>[
|
||||
Row(
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () =>isNotOneAppointment? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.Height,
|
||||
pageTitle: TranslationBase.of(context).height,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: Container(
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).height,
|
||||
imagePath: "${imageBasePath}vital_height.png",
|
||||
lastVal: mode.heightCm,
|
||||
unit: TranslationBase.of(context).cm,
|
||||
),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.Weight,
|
||||
pageTitle: TranslationBase.of(context).weight,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).weight,
|
||||
imagePath: "${imageBasePath}vital_weight.png",
|
||||
unit: TranslationBase.of(context).kg,
|
||||
lastVal: mode.weightKg,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.BodyMeasurements,
|
||||
pageTitle: TranslationBase.of(context)
|
||||
.bodyMeasurements,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
): null,
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).body,
|
||||
imagePath: "${imageBasePath}vital_body_mass.png",
|
||||
lastVal: mode.bodyMax,
|
||||
unit: TranslationBase.of(context).mass,
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.Temperature,
|
||||
pageTitle:
|
||||
TranslationBase.of(context).temperature,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: Container(
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).temperature,
|
||||
imagePath: "${imageBasePath}vital_temperature.png",
|
||||
lastVal: mode.temperatureCelcius,
|
||||
unit: TranslationBase.of(context).tempC,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.heart,
|
||||
pageTitle: TranslationBase.of(context).heart,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).heart,
|
||||
imagePath: "${imageBasePath}vital_heart_rate.png",
|
||||
lastVal: mode.hartRat,
|
||||
unit: TranslationBase.of(context).bpm,
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.Respiration,
|
||||
pageTitle:
|
||||
TranslationBase.of(context).respirationRate,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).respirationRate,
|
||||
imagePath: "${imageBasePath}vital_respiration.png",
|
||||
lastVal: mode.respirationBeatPerMinute,
|
||||
unit: TranslationBase.of(context).respirationSigns,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () => isNotOneAppointment ? Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: VitalSignItemDetailsScreen(
|
||||
pageKey: vitalSignDetails.BloodPressure,
|
||||
pageTitle: TranslationBase.of(context).bloodPressure,
|
||||
vitalList: mode.patientVitalSignsHistory,
|
||||
),
|
||||
),
|
||||
):null,
|
||||
child: VitalSignItem(
|
||||
des: TranslationBase.of(context).bloodPressure,
|
||||
imagePath: "${imageBasePath}vital_blood-pressure.png",
|
||||
lastVal: mode.bloodPressure,
|
||||
unit: TranslationBase.of(context).sysDias,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: Center(
|
||||
child: AppText('No Data'),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,89 @@
|
||||
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
|
||||
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/patient-vital-sign-viewmodel.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
|
||||
import 'package:doctor_app_flutter/models/SOAP/GeneralGetReqForSOAP.dart';
|
||||
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_req_model.dart';
|
||||
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||
import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart';
|
||||
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class DrugToDrug extends StatefulWidget {
|
||||
final PatiantInformtion patient;
|
||||
DrugToDrug(this.patient);
|
||||
@override
|
||||
_DrugToDrug createState() => _DrugToDrug();
|
||||
}
|
||||
|
||||
class _DrugToDrug extends State<DrugToDrug> {
|
||||
int typeID = 1;
|
||||
List<Map<dynamic, dynamic>> expandableList = [
|
||||
{'name': 'CRITICAL'},
|
||||
{'name': 'HIGH'},
|
||||
{'name': 'MODERATE'},
|
||||
{'name': 'LOW'},
|
||||
{'name': 'INFO'},
|
||||
];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
getTypeID();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP(
|
||||
patientMRN: 2954208, //widget.patient.patientMRN,
|
||||
episodeId: 210011002, //widget.patient.episodeNo,
|
||||
appointmentNo: 2016055308, //widget.patient.appointmentNo,
|
||||
doctorID: '',
|
||||
editedBy: '');
|
||||
|
||||
return BaseView<VitalSignsViewModel>(
|
||||
onModelReady: (model) => model.getPatientVitalSign(widget.patient),
|
||||
builder: (BuildContext context, model, Widget child) {
|
||||
return BaseView<SOAPViewModel>(
|
||||
onModelReady: (model2) =>
|
||||
model2.getPatientAllergy(generalGetReqForSOAP),
|
||||
builder: (BuildContext context, model2, Widget child) {
|
||||
return BaseView<PrescriptionViewModel>(
|
||||
onModelReady: (model3) => model3.getDrugToDrug(
|
||||
model.patientVitalSigns, model2.patientAllergiesList),
|
||||
builder: (BuildContext context,
|
||||
PrescriptionViewModel model3, Widget child) =>
|
||||
NetworkBaseView(
|
||||
baseViewModel: model3,
|
||||
child: Container(
|
||||
height: SizeConfig.realScreenHeight * .45,
|
||||
child: new ListView.builder(
|
||||
itemCount: expandableList.length,
|
||||
itemBuilder: (context, i) {
|
||||
return new ExpansionTile(
|
||||
title: new Text(
|
||||
expandableList[i]['name'],
|
||||
style: new TextStyle(
|
||||
fontSize: 20.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontStyle: FontStyle.italic),
|
||||
),
|
||||
children: <Widget>[Text('Hi')],
|
||||
);
|
||||
}))));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getTypeID() async {
|
||||
var type = await sharedPref.getString(SLECTED_PATIENT_TYPE) == '0' ? 2 : 1;
|
||||
setState(() {
|
||||
typeID = type;
|
||||
});
|
||||
}
|
||||
}
|
@ -0,0 +1,346 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
|
||||
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class SMSOTP {
|
||||
final type;
|
||||
final mobileNo;
|
||||
final Function onSuccess;
|
||||
final Function onFailure;
|
||||
final context;
|
||||
|
||||
int remainingTime = 600;
|
||||
|
||||
Future<Null> timer;
|
||||
|
||||
static BuildContext _context;
|
||||
|
||||
static bool _loading;
|
||||
|
||||
SMSOTP(
|
||||
this.context,
|
||||
this.type,
|
||||
this.mobileNo,
|
||||
this.onSuccess,
|
||||
this.onFailure,
|
||||
);
|
||||
|
||||
final verifyAccountForm = GlobalKey<FormState>();
|
||||
|
||||
TextEditingController digit1 = TextEditingController(text: "");
|
||||
TextEditingController digit2 = TextEditingController(text: "");
|
||||
TextEditingController digit3 = TextEditingController(text: "");
|
||||
TextEditingController digit4 = TextEditingController(text: "");
|
||||
|
||||
Map verifyAccountFormValue = {
|
||||
'digit1': '',
|
||||
'digit2': '',
|
||||
'digit3': '',
|
||||
'digit4': '',
|
||||
};
|
||||
final focusD1 = FocusNode();
|
||||
final focusD2 = FocusNode();
|
||||
final focusD3 = FocusNode();
|
||||
final focusD4 = FocusNode();
|
||||
String errorMsg;
|
||||
ProjectViewModel projectProvider;
|
||||
String displayTime = '';
|
||||
|
||||
displayDialog(BuildContext context) async {
|
||||
return showDialog(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
projectProvider = Provider.of(context);
|
||||
return AlertDialog(
|
||||
title: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
IconButton(
|
||||
icon: Icon(Icons.close),
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
this.onFailure();
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0))),
|
||||
content: StatefulBuilder(builder: (context, setState) {
|
||||
if (displayTime == '') {
|
||||
startTimer(setState);
|
||||
}
|
||||
return Container(
|
||||
color: Colors.white,
|
||||
height: SizeConfig.realScreenHeight * 0.5,
|
||||
width: SizeConfig.realScreenWidth * 0.8,
|
||||
child: Center(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
type == 1
|
||||
? Image.asset('assets/images/login/103.png')
|
||||
: Image.asset('assets/images/login/104.png'),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 5),
|
||||
child: AppText(
|
||||
TranslationBase.of(context).verificationMessage +
|
||||
' XXXXXX' +
|
||||
mobileNo
|
||||
.toString()
|
||||
.substring(mobileNo.toString().length - 3),
|
||||
textAlign: TextAlign.center,
|
||||
)),
|
||||
Form(
|
||||
key: verifyAccountForm,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 20),
|
||||
child: Directionality(
|
||||
textDirection: TextDirection.ltr,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
width: SizeConfig.realScreenWidth * 0.15,
|
||||
child: TextFormField(
|
||||
textInputAction: TextInputAction.next,
|
||||
style: buildTextStyle(),
|
||||
autofocus: true,
|
||||
maxLength: 1,
|
||||
controller: digit1,
|
||||
textAlign: TextAlign.center,
|
||||
keyboardType: TextInputType.number,
|
||||
decoration: buildInputDecoration(context),
|
||||
onSaved: (val) {},
|
||||
validator: validateCodeDigit,
|
||||
onFieldSubmitted: (_) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD2);
|
||||
},
|
||||
onChanged: (val) {
|
||||
if (val.length == 1) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD2);
|
||||
verifyAccountFormValue['digit1'] =
|
||||
val.trim();
|
||||
checkValue();
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: SizeConfig.realScreenWidth * 0.15,
|
||||
child: TextFormField(
|
||||
focusNode: focusD2,
|
||||
textInputAction: TextInputAction.next,
|
||||
maxLength: 1,
|
||||
controller: digit2,
|
||||
textAlign: TextAlign.center,
|
||||
style: buildTextStyle(),
|
||||
keyboardType: TextInputType.number,
|
||||
decoration: buildInputDecoration(context),
|
||||
onSaved: (val) {},
|
||||
onFieldSubmitted: (_) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD3);
|
||||
},
|
||||
onChanged: (val) {
|
||||
if (val.length == 1) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD3);
|
||||
verifyAccountFormValue['digit2'] =
|
||||
val.trim();
|
||||
checkValue();
|
||||
}
|
||||
},
|
||||
validator: validateCodeDigit),
|
||||
),
|
||||
Container(
|
||||
width: SizeConfig.realScreenWidth * 0.15,
|
||||
child: TextFormField(
|
||||
focusNode: focusD3,
|
||||
textInputAction: TextInputAction.next,
|
||||
maxLength: 1,
|
||||
controller: digit3,
|
||||
textAlign: TextAlign.center,
|
||||
style: buildTextStyle(),
|
||||
keyboardType: TextInputType.number,
|
||||
decoration:
|
||||
buildInputDecoration(context),
|
||||
onSaved: (val) {},
|
||||
onFieldSubmitted: (_) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD4);
|
||||
},
|
||||
onChanged: (val) {
|
||||
if (val.length == 1) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD4);
|
||||
verifyAccountFormValue['digit3'] =
|
||||
val.trim();
|
||||
checkValue();
|
||||
}
|
||||
},
|
||||
validator: validateCodeDigit)),
|
||||
Container(
|
||||
width: SizeConfig.realScreenWidth * 0.15,
|
||||
child: TextFormField(
|
||||
focusNode: focusD4,
|
||||
maxLength: 1,
|
||||
textAlign: TextAlign.center,
|
||||
style: buildTextStyle(),
|
||||
controller: digit4,
|
||||
keyboardType: TextInputType.number,
|
||||
decoration:
|
||||
buildInputDecoration(context),
|
||||
onFieldSubmitted: (_) {
|
||||
FocusScope.of(context)
|
||||
.requestFocus(focusD4);
|
||||
},
|
||||
onChanged: (val) {
|
||||
if (val.length == 1) {
|
||||
verifyAccountFormValue['digit4'] =
|
||||
val.trim();
|
||||
checkValue();
|
||||
}
|
||||
},
|
||||
validator: validateCodeDigit)),
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: AppText(
|
||||
TranslationBase.of(context).validationMessage +
|
||||
' ' +
|
||||
displayTime,
|
||||
color: Colors.red,
|
||||
textAlign: TextAlign.center,
|
||||
))
|
||||
],
|
||||
))),
|
||||
);
|
||||
}),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
TextStyle buildTextStyle() {
|
||||
return TextStyle(
|
||||
fontSize: SizeConfig.textMultiplier * 3,
|
||||
);
|
||||
}
|
||||
|
||||
InputDecoration buildInputDecoration(BuildContext context) {
|
||||
return InputDecoration(
|
||||
counterText: " ",
|
||||
// ts/images/password_icon.png
|
||||
// contentPadding: EdgeInsets.only(top: 20, bottom: 20),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
borderSide: BorderSide(color: Colors.black),
|
||||
),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
||||
borderSide: BorderSide(color: Theme.of(context).primaryColor),
|
||||
),
|
||||
errorBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
||||
borderSide: BorderSide(color: Theme.of(context).errorColor),
|
||||
),
|
||||
focusedErrorBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
||||
borderSide: BorderSide(color: Theme.of(context).errorColor),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
String validateCodeDigit(value) {
|
||||
if (value.isEmpty) {
|
||||
return ' ';
|
||||
} else if (value.length == 3) {
|
||||
print(value);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
checkValue() {
|
||||
//print(verifyAccountFormValue);
|
||||
if (verifyAccountForm.currentState.validate()) {
|
||||
onSuccess(digit1.text.toString() +
|
||||
digit2.text.toString() +
|
||||
digit3.text.toString() +
|
||||
digit4.text.toString());
|
||||
}
|
||||
}
|
||||
|
||||
getSecondsAsDigitalClock(int inputSeconds) {
|
||||
var sec_num =
|
||||
int.parse(inputSeconds.toString()); // don't forget the second param
|
||||
var hours = (sec_num / 3600).floor();
|
||||
var minutes = ((sec_num - hours * 3600) / 60).floor();
|
||||
var seconds = sec_num - hours * 3600 - minutes * 60;
|
||||
var minutesString = "";
|
||||
var secondsString = "";
|
||||
minutesString =
|
||||
minutes < 10 ? "0" + minutes.toString() : minutes.toString();
|
||||
secondsString =
|
||||
seconds < 10 ? "0" + seconds.toString() : seconds.toString();
|
||||
return minutesString + ":" + secondsString;
|
||||
}
|
||||
|
||||
startTimer(setState) {
|
||||
this.remainingTime--;
|
||||
setState(() {
|
||||
displayTime = this.getSecondsAsDigitalClock(this.remainingTime);
|
||||
});
|
||||
|
||||
timer = Future.delayed(Duration(seconds: 1), () {
|
||||
if (this.remainingTime > 0) {
|
||||
startTimer(setState);
|
||||
} else {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static void showLoadingDialog(BuildContext context, bool _loading) async {
|
||||
_context = context;
|
||||
|
||||
if (_loading == false) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
_loading = true;
|
||||
await showDialog(
|
||||
context: _context,
|
||||
barrierDismissible: false,
|
||||
builder: (BuildContext context) {
|
||||
return SimpleDialog(
|
||||
elevation: 0.0,
|
||||
backgroundColor: Colors.transparent,
|
||||
children: <Widget>[
|
||||
Center(
|
||||
child: CircularProgressIndicator(
|
||||
valueColor: AlwaysStoppedAnimation<Color>(Colors.black),
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
static void hideSMSBox(context) {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
}
|