Merge branch 'development' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into medical_report_changes

 Conflicts:
	lib/screens/medical-file/health_summary_page.dart
	lib/screens/patients/insurance_approval_screen_patient.dart
	lib/screens/patients/profile/medical_report/MedicalReportPage.dart
	lib/screens/patients/profile/note/progress_note_screen.dart
medical_report_changes
hussam al-habibeh 5 years ago
commit cac949f402

@ -108,6 +108,6 @@ dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.0' implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
implementation 'com.google.firebase:firebase-analytics:17.4.1'
} }
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'

@ -1,34 +1,77 @@
{ {
"project_info": { "project_info": {
"project_number": "157373154094", "project_number": "934365232760",
"project_id": "hmg-doctor-app-1553688619744", "project_id": "hmg-dr-app",
"storage_bucket": "hmg-doctor-app-1553688619744.appspot.com" "storage_bucket": "hmg-dr-app.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:157373154094:android:daeea3a4e1f4462a1bf0bf", "mobilesdk_app_id": "1:934365232760:android:024b3569972f1c09f9778d",
"android_client_info": {
"package_name": "COM.HMG.HMGDR"
}
},
"oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:934365232760:android:e0e185e68c0d7690f9778d",
"android_client_info": { "android_client_info": {
"package_name": "com.hmg.hmgDr" "package_name": "com.hmg.hmgDr"
} }
}, },
"oauth_client": [ "oauth_client": [
{ {
"client_id": "157373154094-egrhbfr861l7k722g3v2gd4a0opi3r1u.apps.googleusercontent.com", "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
], ],
"api_key": [ "api_key": [
{ {
"current_key": "AIzaSyDX8RPwu00MyrpqC-T2zXtrUQvTQGRv1mM" "current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
} }
], ],
"services": { "services": {
"appinvite_service": { "appinvite_service": {
"other_platform_oauth_client": [ "other_platform_oauth_client": [
{ {
"client_id": "157373154094-egrhbfr861l7k722g3v2gd4a0opi3r1u.apps.googleusercontent.com", "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
} }
] ]
} }

@ -8,7 +8,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.0' classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2' classpath 'com.google.gms:google-services:4.3.3'
} }
} }

@ -1,34 +1,77 @@
{ {
"project_info": { "project_info": {
"project_number": "1095694324958", "project_number": "934365232760",
"project_id": "mobapp-bb272", "project_id": "hmg-dr-app",
"storage_bucket": "mobapp-bb272.appspot.com" "storage_bucket": "hmg-dr-app.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:1095694324958:android:70a42e30fcc98ea33fde4f", "mobilesdk_app_id": "1:934365232760:android:024b3569972f1c09f9778d",
"android_client_info": {
"package_name": "COM.HMG.HMGDR"
}
},
"oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:934365232760:android:e0e185e68c0d7690f9778d",
"android_client_info": { "android_client_info": {
"package_name": "com.hmg.hmgDr" "package_name": "com.hmg.hmgDr"
} }
}, },
"oauth_client": [ "oauth_client": [
{ {
"client_id": "1095694324958-5psabq8tpbti0uqo8bt46atjtbas9uhr.apps.googleusercontent.com", "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
], ],
"api_key": [ "api_key": [
{ {
"current_key": "AIzaSyCuPtf1hTikWXrp5OQIVfqO-TJWubI-Vd8" "current_key": "AIzaSyCpYwrmuntOBdZv6GV6KEnLj8nQRvEnZ6I"
} }
], ],
"services": { "services": {
"appinvite_service": { "appinvite_service": {
"other_platform_oauth_client": [ "other_platform_oauth_client": [
{ {
"client_id": "1095694324958-5psabq8tpbti0uqo8bt46atjtbas9uhr.apps.googleusercontent.com", "client_id": "934365232760-bobv1r1sn222le020jeni6u1bdbjdu1v.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
},
{
"client_id": "934365232760-57v2ld1qqulc4nt4o5pgjfbpc47fj3qf.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "COM.HMG.HMGDR"
}
} }
] ]
} }

@ -3,21 +3,21 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CLIENT_ID</key> <key>CLIENT_ID</key>
<string>1097451043303-ifgtu6ub88dlk5dmv5tm531a5s47gbre.apps.googleusercontent.com</string> <string>934365232760-en86g42ch3fgu7odnv5ka6kec8irg8d5.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key> <key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.1097451043303-ifgtu6ub88dlk5dmv5tm531a5s47gbre</string> <string>com.googleusercontent.apps.934365232760-en86g42ch3fgu7odnv5ka6kec8irg8d5</string>
<key>API_KEY</key> <key>API_KEY</key>
<string>AIzaSyAKPayaNaI-2RN6S4PH5W9wYExmEgoBUvo</string> <string>AIzaSyBtA8-oCZ5T4gkuTG7CucGr_d_7lakp4MM</string>
<key>GCM_SENDER_ID</key> <key>GCM_SENDER_ID</key>
<string>1097451043303</string> <string>934365232760</string>
<key>PLIST_VERSION</key> <key>PLIST_VERSION</key>
<string>1</string> <string>1</string>
<key>BUNDLE_ID</key> <key>BUNDLE_ID</key>
<string>com.hmg.doctorApp</string> <string>com.hmg.hmgDr</string>
<key>PROJECT_ID</key> <key>PROJECT_ID</key>
<string>doctor-app-35ddc</string> <string>hmg-dr-app</string>
<key>STORAGE_BUCKET</key> <key>STORAGE_BUCKET</key>
<string>doctor-app-35ddc.appspot.com</string> <string>hmg-dr-app.appspot.com</string>
<key>IS_ADS_ENABLED</key> <key>IS_ADS_ENABLED</key>
<false></false> <false></false>
<key>IS_ANALYTICS_ENABLED</key> <key>IS_ANALYTICS_ENABLED</key>
@ -29,6 +29,6 @@
<key>IS_SIGNIN_ENABLED</key> <key>IS_SIGNIN_ENABLED</key>
<true></true> <true></true>
<key>GOOGLE_APP_ID</key> <key>GOOGLE_APP_ID</key>
<string>1:1097451043303:ios:0e9b87e77dcf397d866542</string> <string>1:934365232760:ios:61e01db91b41502bf9778d</string>
</dict> </dict>
</plist> </plist>

@ -3,21 +3,21 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CLIENT_ID</key> <key>CLIENT_ID</key>
<string>1097451043303-ifgtu6ub88dlk5dmv5tm531a5s47gbre.apps.googleusercontent.com</string> <string>934365232760-en86g42ch3fgu7odnv5ka6kec8irg8d5.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key> <key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.1097451043303-ifgtu6ub88dlk5dmv5tm531a5s47gbre</string> <string>com.googleusercontent.apps.934365232760-en86g42ch3fgu7odnv5ka6kec8irg8d5</string>
<key>API_KEY</key> <key>API_KEY</key>
<string>AIzaSyAKPayaNaI-2RN6S4PH5W9wYExmEgoBUvo</string> <string>AIzaSyBtA8-oCZ5T4gkuTG7CucGr_d_7lakp4MM</string>
<key>GCM_SENDER_ID</key> <key>GCM_SENDER_ID</key>
<string>1097451043303</string> <string>934365232760</string>
<key>PLIST_VERSION</key> <key>PLIST_VERSION</key>
<string>1</string> <string>1</string>
<key>BUNDLE_ID</key> <key>BUNDLE_ID</key>
<string>com.hmg.doctorApp</string> <string>com.hmg.hmgDr</string>
<key>PROJECT_ID</key> <key>PROJECT_ID</key>
<string>doctor-app-35ddc</string> <string>hmg-dr-app</string>
<key>STORAGE_BUCKET</key> <key>STORAGE_BUCKET</key>
<string>doctor-app-35ddc.appspot.com</string> <string>hmg-dr-app.appspot.com</string>
<key>IS_ADS_ENABLED</key> <key>IS_ADS_ENABLED</key>
<false></false> <false></false>
<key>IS_ANALYTICS_ENABLED</key> <key>IS_ANALYTICS_ENABLED</key>
@ -29,6 +29,6 @@
<key>IS_SIGNIN_ENABLED</key> <key>IS_SIGNIN_ENABLED</key>
<true></true> <true></true>
<key>GOOGLE_APP_ID</key> <key>GOOGLE_APP_ID</key>
<string>1:1097451043303:ios:0e9b87e77dcf397d866542</string> <string>1:934365232760:ios:61e01db91b41502bf9778d</string>
</dict> </dict>
</plist> </plist>

@ -56,7 +56,7 @@ class DoctorReplyScreen extends StatelessWidget {
DoctorReplayChat( DoctorReplayChat(
reply: reply, reply: reply,
previousModel: model, previousModel: model,
))); ), settings: RouteSettings(name: 'DoctorReplayChat'),));
}, },
child: DoctorReplyWidget(reply: reply), child: DoctorReplyWidget(reply: reply),
); );

@ -405,7 +405,8 @@ class _HomeScreenState extends State<HomeScreen> {
from: date, from: date,
to: date, to: date,
doctorID: doctorID:
authenticationViewModel.doctorProfile.doctorID)), authenticationViewModel.doctorProfile.doctorID),),
settings: RouteSettings(name: 'OutPatientsScreen'),
)); ));
}, },
)); ));
@ -422,6 +423,7 @@ class _HomeScreenState extends State<HomeScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => PatientReferralScreen(), builder: (context) => PatientReferralScreen(),
settings: RouteSettings(name: 'PatientReferralScreen'),
), ),
); );
}, },
@ -439,6 +441,7 @@ class _HomeScreenState extends State<HomeScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => PatientSearchScreen(), builder: (context) => PatientSearchScreen(),
settings: RouteSettings(name: 'PatientSearchScreen'),
)); ));
}, },
)); ));
@ -455,6 +458,7 @@ class _HomeScreenState extends State<HomeScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => MedicineSearchScreen(), builder: (context) => MedicineSearchScreen(),
settings: RouteSettings(name: 'MedicineSearchScreen'),
)); ));
}, },
)); ));

@ -184,7 +184,8 @@ class _EndCallScreenState extends State<EndCallScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (BuildContext context) => builder: (BuildContext context) =>
LivaCareTransferToAdmin(patient: patient))); LivaCareTransferToAdmin(patient: patient),
settings: RouteSettings(name: 'LivaCareTransferToAdmin'),),);
}, },
isInPatient: isInpatient, isInPatient: isInpatient,
isDartIcon: true, isDartIcon: true,

@ -29,7 +29,9 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
return BaseView<MedicalFileViewModel>( return BaseView<MedicalFileViewModel>(
onModelReady: (model) => model.getMedicalFile(mrn: patient.patientId), onModelReady: (model) => model.getMedicalFile(mrn: patient.patientId),
builder: (BuildContext context, MedicalFileViewModel model, Widget child) => AppScaffold( builder:
(BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold(
appBar: PatientProfileAppBar( appBar: PatientProfileAppBar(
patient, patient,
isInpatient: isInpatient, isInpatient: isInpatient,
@ -43,7 +45,8 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
child: Column( child: Column(
children: [ children: [
Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), padding:
EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0),
child: Container( child: Container(
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
@ -73,13 +76,15 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
), ),
), ),
), ),
(model.medicalFileList != null && model.medicalFileList.length != 0) (model.medicalFileList != null &&
model.medicalFileList.length != 0)
? ListView.builder( ? ListView.builder(
//physics: , //physics: ,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
shrinkWrap: true, shrinkWrap: true,
itemCount: model.medicalFileList[0].entityList[0].timelines.length, itemCount: model.medicalFileList[0].entityList[0]
.timelines.length,
itemBuilder: (BuildContext ctxt, int index) { itemBuilder: (BuildContext ctxt, int index) {
return InkWell( return InkWell(
onTap: () async { onTap: () async {
@ -120,20 +125,38 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
.toString() .toString()
: "", : "",
vistDate: vistDate:
model.medicalFileList[0].entityList[0].timelines[index].date.toString())), model.medicalFileList[0].entityList[0].timelines[index].date.toString()),
settings: RouteSettings(name: 'MedicalFileDetails'),),
); );
}, },
child: DoctorCard( child: DoctorCard(
doctorName: model.medicalFileList[0].entityList[0].timelines[index].doctorName, doctorName: model
clinic: model.medicalFileList[0].entityList[0].timelines[index].clinicName, .medicalFileList[0]
branch: model.medicalFileList[0].entityList[0].timelines[index].projectName, .entityList[0]
profileUrl: model.medicalFileList[0].entityList[0].timelines[index].doctorImage, .timelines[index]
appointmentDate: AppDateUtils.getDateTimeFromServerFormat( .doctorName,
model.medicalFileList[0].entityList[0].timelines[index].date, clinic: model.medicalFileList[0].entityList[0]
.timelines[index].clinicName,
branch: model.medicalFileList[0].entityList[0]
.timelines[index].projectName,
profileUrl: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorImage,
appointmentDate:
AppDateUtils.getDateTimeFromServerFormat(
model.medicalFileList[0].entityList[0]
.timelines[index].date,
), ),
isPrescriptions: true, isPrescriptions: true,
isShowEye: model.medicalFileList[0].entityList[0].timelines[index].timeLineEvents[0] isShowEye: model
.consulations.length != .medicalFileList[0]
.entityList[0]
.timelines[index]
.timeLineEvents[0]
.consulations
.length !=
0 0
? true ? true
: false), : false),
@ -149,7 +172,8 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
Image.asset('assets/images/no-data.png'), Image.asset('assets/images/no-data.png'),
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: AppText(TranslationBase.of(context).noMedicalFileFound), child: AppText(TranslationBase.of(context)
.noMedicalFileFound),
) )
], ],
), ),

@ -226,7 +226,7 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
["ItemID"], ["ItemID"],
url: model.pharmacyItemsList[index] url: model.pharmacyItemsList[index]
["ImageSRCUrl"]), ["ImageSRCUrl"]),
), settings: RouteSettings(name: 'PharmaciesListScreen'),),
); );
}, },
); );

@ -98,7 +98,7 @@ class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew>
patient: patient, patient: patient,
indexInsurance: index, indexInsurance: index,
patientType: patientType, patientType: patientType,
)), ),settings: RouteSettings(name: 'InsuranceApprovalsDetails'),),
); );
}, },
child: DoctorCardInsurance( child: DoctorCardInsurance(
@ -189,8 +189,7 @@ class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew>
patient: patient, patient: patient,
indexInsurance: index, indexInsurance: index,
patientType: patientType, patientType: patientType,
), ),settings: RouteSettings(name: 'InsuranceApprovalsDetails'),),
),
); );
}, },
child: DoctorCardInsurance( child: DoctorCardInsurance(

@ -223,7 +223,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
builder: (BuildContext context) => FilterDatePage( builder: (BuildContext context) => FilterDatePage(
outPatientFilterType: outPatientFilterType, outPatientFilterType: outPatientFilterType,
patientSearchViewModel: model, patientSearchViewModel: model,
))); ),settings: RouteSettings(name: 'FilterOutPatentDateScreen'),));
}, },
), ),
onChanged: (String str) { onChanged: (String str) {

@ -208,6 +208,7 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
searchKey: patientFileInfoController.text, searchKey: patientFileInfoController.text,
isInpatient: false, isInpatient: false,
), ),
settings: RouteSettings(name: 'PatientsSearchResultScreen'),
), ),
); );
} }

@ -121,6 +121,7 @@ class _LabsHomePageState extends State<LabsHomePage> {
model: model, model: model,
procedureType: ProcedureType.LAB_RESULT, procedureType: ProcedureType.LAB_RESULT,
), ),
settings: RouteSettings(name: 'AddProcedureTabPage'),
), ),
); );
}, },

@ -94,8 +94,11 @@ class _MedicalReportPageState extends State<MedicalReportPage> {
arrivalType: arrivalType, arrivalType: arrivalType,
model: model, model: model,
status: MedicalReportStatus.ADD, status: MedicalReportStatus.ADD,
)), ),
settings: RouteSettings(name: 'AddVerifyMedicalReport'),
),
); );
}, },
label: TranslationBase.of(context).createNewMedicalReport, label: TranslationBase.of(context).createNewMedicalReport,
), ),
@ -115,8 +118,8 @@ class _MedicalReportPageState extends State<MedicalReportPage> {
medicalReport: model.medicalReportList[index], medicalReport: model.medicalReportList[index],
model: model, model: model,
medicalNote: model.medicalReportList[index].reportDataHtml, medicalNote: model.medicalReportList[index].reportDataHtml,
)), ),
); settings: RouteSettings(name: 'AddVerifyMedicalReport')),);
} else { } else {
Navigator.of(context).pushNamed(PATIENT_MEDICAL_REPORT_DETAIL, arguments: { Navigator.of(context).pushNamed(PATIENT_MEDICAL_REPORT_DETAIL, arguments: {
'patient': patient, 'patient': patient,

@ -45,7 +45,8 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
AuthenticationViewModel authenticationViewModel; AuthenticationViewModel authenticationViewModel;
ProjectViewModel projectViewModel; ProjectViewModel projectViewModel;
getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async { getProgressNoteList(BuildContext context, PatientViewModel model,
{bool isLocalBusy = false}) async {
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
@ -60,7 +61,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
tokenID: token, tokenID: token,
patientTypeID: patient.patientType, patientTypeID: patient.patientType,
languageID: 2); languageID: 2);
model.getPatientProgressNote(progressNoteRequest.toJson(), isLocalBusy: isLocalBusy).then((c) { model
.getPatientProgressNote(progressNoteRequest.toJson(),
isLocalBusy: isLocalBusy)
.then((c) {
notesList = model.patientProgressNoteList; notesList = model.patientProgressNoteList;
}); });
} }
@ -69,10 +73,14 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
authenticationViewModel = Provider.of(context); authenticationViewModel = Provider.of(context);
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute
.of(context)
.settings
.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient']; if (routeArgs.containsKey('isDischargedPatient'))
isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(
onModelReady: (model) => getProgressNoteList(context, model), onModelReady: (model) => getProgressNoteList(context, model),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
@ -104,7 +112,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
patient: patient, patient: patient,
visitType: widget.visitType, visitType: widget.visitType,
isUpdate: false, isUpdate: false,
)), ),settings: RouteSettings(name: 'UpdateNoteOrder'),),
); );
}, },
label: widget.visitType == 3 label: widget.visitType == 3
@ -145,35 +153,58 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
), ),
if (model.patientProgressNoteList[index].status == 4) if (model.patientProgressNoteList[index].status == 4)
AppText( AppText(
TranslationBase.of(context).noteCanceled, TranslationBase
.of(context)
.noteCanceled,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.red.shade700, color: Colors.red.shade700,
fontSize: 12, fontSize: 12,
), ),
if (model.patientProgressNoteList[index].status == 2) if (model
.patientProgressNoteList[
index]
.status ==
2)
AppText( AppText(
TranslationBase.of(context).noteVerified, TranslationBase
.of(context)
.noteVerified,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.green[600], color: Colors.green[600],
fontSize: 12, fontSize: 12,
), ),
if (model.patientProgressNoteList[index].status != 2 && if (model.patientProgressNoteList[index].status != 2 &&
model.patientProgressNoteList[index].status != 4 && model
authenticationViewModel.doctorProfile.doctorID == .patientProgressNoteList[
model.patientProgressNoteList[index].createdBy) index]
.status !=
4 &&
authenticationViewModel
.doctorProfile.doctorID ==
model
.patientProgressNoteList[
index]
.createdBy)
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
InkWell( InkWell(
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => UpdateNoteOrder( builder: (context) =>
note: model.patientProgressNoteList[index], UpdateNoteOrder(
patientModel: model, note: model
patient: patient, .patientProgressNoteList[
visitType: widget.visitType, index],
patientModel:
model,
patient:
patient,
visitType: widget
.visitType,
isUpdate: true, isUpdate: true,
)), )),
); );
@ -181,7 +212,9 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.grey[600], color: Colors.grey[600],
borderRadius: BorderRadius.circular(10), borderRadius:
BorderRadius.circular(
10),
), ),
// color:Colors.red[600], // color:Colors.red[600],
@ -196,7 +229,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
width: 2, width: 2,
), ),
AppText( AppText(
TranslationBase.of(context).update, TranslationBase
.of(
context)
.update,
fontSize: 10, fontSize: 10,
color: Colors.white, color: Colors.white,
), ),
@ -214,33 +250,61 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
context: context, context: context,
actionName: "verify", actionName: "verify",
confirmFun: () async { confirmFun: () async {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils
UpdateNoteReqModel reqModel = UpdateNoteReqModel( .showMyDialog(
admissionNo: int.parse(patient.admissionNo), context);
cancelledNote: false, UpdateNoteReqModel
lineItemNo: model.patientProgressNoteList[index].lineItemNo, reqModel =
createdBy: model.patientProgressNoteList[index].createdBy, UpdateNoteReqModel(
notes: model.patientProgressNoteList[index].notes, admissionNo: int
.parse(patient
.admissionNo),
cancelledNote:
false,
lineItemNo: model
.patientProgressNoteList[
index]
.lineItemNo,
createdBy: model
.patientProgressNoteList[
index]
.createdBy,
notes: model
.patientProgressNoteList[
index]
.notes,
verifiedNote: true, verifiedNote: true,
patientTypeID: patient.patientType, patientTypeID:
patient
.patientType,
patientOutSA: false, patientOutSA: false,
); );
await model.updatePatientProgressNote(reqModel); await model
await getProgressNoteList(context, model, isLocalBusy: true); .updatePatientProgressNote(
GifLoaderDialogUtils.hideDialog(context); reqModel);
await getProgressNoteList(
context, model,
isLocalBusy:
true);
GifLoaderDialogUtils
.hideDialog(
context);
}); });
}, },
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.green[600], color: Colors.green[600],
borderRadius: BorderRadius.circular(10), borderRadius:
BorderRadius.circular(
10),
), ),
// color:Colors.red[600], // color:Colors.red[600],
child: Row( child: Row(
children: [ children: [
Icon( Icon(
FontAwesomeIcons.check, FontAwesomeIcons
.check,
size: 12, size: 12,
color: Colors.white, color: Colors.white,
), ),
@ -248,7 +312,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
width: 2, width: 2,
), ),
AppText( AppText(
TranslationBase.of(context).noteVerify, TranslationBase
.of(
context)
.noteVerify,
fontSize: 10, fontSize: 10,
color: Colors.white, color: Colors.white,
), ),
@ -264,37 +331,67 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
onTap: () async { onTap: () async {
showMyDialog( showMyDialog(
context: context, context: context,
actionName: TranslationBase.of(context).cancel, actionName:
TranslationBase
.of(
context)
.cancel,
confirmFun: () async { confirmFun: () async {
GifLoaderDialogUtils.showMyDialog( GifLoaderDialogUtils
.showMyDialog(
context, context,
); );
UpdateNoteReqModel reqModel = UpdateNoteReqModel( UpdateNoteReqModel
admissionNo: int.parse(patient.admissionNo), reqModel =
UpdateNoteReqModel(
admissionNo: int
.parse(patient
.admissionNo),
cancelledNote: true, cancelledNote: true,
lineItemNo: model.patientProgressNoteList[index].lineItemNo, lineItemNo: model
createdBy: model.patientProgressNoteList[index].createdBy, .patientProgressNoteList[
notes: model.patientProgressNoteList[index].notes, index]
.lineItemNo,
createdBy: model
.patientProgressNoteList[
index]
.createdBy,
notes: model
.patientProgressNoteList[
index]
.notes,
verifiedNote: false, verifiedNote: false,
patientTypeID: patient.patientType, patientTypeID:
patient
.patientType,
patientOutSA: false, patientOutSA: false,
); );
await model.updatePatientProgressNote(reqModel); await model
await getProgressNoteList(context, model, isLocalBusy: true); .updatePatientProgressNote(
GifLoaderDialogUtils.hideDialog(context); reqModel);
await getProgressNoteList(
context, model,
isLocalBusy:
true);
GifLoaderDialogUtils
.hideDialog(
context);
}); });
}, },
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.red[600], color: Colors.red[600],
borderRadius: BorderRadius.circular(10), borderRadius:
BorderRadius.circular(
10),
), ),
// color:Colors.red[600], // color:Colors.red[600],
child: Row( child: Row(
children: [ children: [
Icon( Icon(
FontAwesomeIcons.trash, FontAwesomeIcons
.trash,
size: 12, size: 12,
color: Colors.white, color: Colors.white,
), ),
@ -320,25 +417,41 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
height: 10, height: 10,
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.start, MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Container( Container(
width: MediaQuery.of(context).size.width * 0.60, width: MediaQuery.of(context)
.size
.width *
0.60,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment
.start,
children: [ children: [
AppText( AppText(
TranslationBase.of(context).createdBy, TranslationBase
.of(
context)
.createdBy,
fontSize: 10, fontSize: 10,
), ),
Expanded( Expanded(
child: AppText( child: AppText(
model.patientProgressNoteList[index].doctorName ?? '', model
fontWeight: FontWeight.w600, .patientProgressNoteList[
index]
.doctorName ??
'',
fontWeight:
FontWeight.w600,
fontSize: 12, fontSize: 12,
), ),
), ),
@ -350,36 +463,66 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Column( Column(
children: [ children: [
AppText( AppText(
model.patientProgressNoteList[index].createdOn != null model
.patientProgressNoteList[
index]
.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted( ? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.getDateTimeFromServerFormat( AppDateUtils
model.patientProgressNoteList[index].createdOn), .getDateTimeFromServerFormat(
isArabic: projectViewModel.isArabic) model
: AppDateUtils.getDayMonthYearDateFormatted(DateTime.now(), .patientProgressNoteList[
isArabic: projectViewModel.isArabic), index]
.createdOn),
isArabic:
projectViewModel
.isArabic)
: AppDateUtils
.getDayMonthYearDateFormatted(
DateTime.now(),
isArabic:
projectViewModel
.isArabic),
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 14, fontSize: 14,
), ),
AppText( AppText(
model.patientProgressNoteList[index].createdOn != null model
? AppDateUtils.getHour(AppDateUtils.getDateTimeFromServerFormat( .patientProgressNoteList[
model.patientProgressNoteList[index].createdOn)) index]
: AppDateUtils.getHour(DateTime.now()), .createdOn !=
null
? AppDateUtils.getHour(AppDateUtils
.getDateTimeFromServerFormat(
model
.patientProgressNoteList[
index]
.createdOn))
: AppDateUtils.getHour(
DateTime.now()),
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 14, fontSize: 14,
), ),
], ],
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment:
CrossAxisAlignment.end,
) )
], ],
), ),
SizedBox( SizedBox(
height: 8, height: 8,
), ),
Row(mainAxisAlignment: MainAxisAlignment.start, children: [ Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Expanded( Expanded(
child: AppText( child: AppText(
model.patientProgressNoteList[index].notes, model
.patientProgressNoteList[
index]
.notes,
fontSize: 10, fontSize: 10,
), ),
), ),
@ -408,7 +551,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
context: context, context: context,
builder: (ctx) => Center( builder: (ctx) => Center(
child: Container( child: Container(
width: MediaQuery.of(context).size.width * 0.8, width: MediaQuery
.of(context)
.size
.width * 0.8,
height: 200, height: 200,
child: AppScaffold( child: AppScaffold(
isShowAppBar: false, isShowAppBar: false,
@ -427,7 +573,9 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
AppText( AppText(
TranslationBase.of(context).noteConfirm, TranslationBase
.of(context)
.noteConfirm,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.black, color: Colors.black,
fontSize: 16, fontSize: 16,
@ -446,9 +594,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
color: Colors.white, color: Colors.white,
child: AppText( child: AppText(
projectViewModel.isArabic projectViewModel.isArabic?"هل أنت متأكد أنك تريد تنفيذ $actionName هذا الأمر؟":'Are you sure you want $actionName this order?',
? "هل أنت متأكد أنك تريد تنفيذ $actionName هذا الأمر؟"
: 'Are you sure you want $actionName this order?',
fontSize: 15, fontSize: 15,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
@ -465,7 +611,9 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
children: [ children: [
FlatButton( FlatButton(
child: AppText( child: AppText(
TranslationBase.of(context).cancel, TranslationBase
.of(context)
.cancel,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.black, color: Colors.black,
fontSize: 16, fontSize: 16,
@ -475,7 +623,9 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
}), }),
FlatButton( FlatButton(
child: AppText( child: AppText(
TranslationBase.of(context).noteConfirm, TranslationBase
.of(context)
.noteConfirm,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.red.shade700, color: Colors.red.shade700,
fontSize: 16, fontSize: 16,
@ -493,6 +643,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
), ),
), ),
), ),
)); )
);
} }
} }

@ -332,7 +332,7 @@ class _PatientProfileScreenState extends State<PatientProfileScreen> with Single
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (BuildContext context) => EndCallScreen(patient: patient))); builder: (BuildContext context) => EndCallScreen(patient: patient),settings: RouteSettings(name: 'EndCallScreen'),),);
} else { } else {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await model.startCall(isReCall: false, vCID: patient.vcId); await model.startCall(isReCall: false, vCID: patient.vcId);

@ -117,7 +117,7 @@ class _RadiologyHomePageState extends State<RadiologyHomePage> {
patient: patient, patient: patient,
model: model, model: model,
procedureType: ProcedureType.RADIOLOGY, procedureType: ProcedureType.RADIOLOGY,
), ), settings: RouteSettings(name: 'AddProcedureTabPage')
), ),
); );
}, },

@ -104,7 +104,7 @@ class PrescriptionsPage extends StatelessWidget {
prescriptionModel: model, prescriptionModel: model,
procedureType: procedureType:
ProcedureType.PRESCRIPTION, ProcedureType.PRESCRIPTION,
)), ),settings: RouteSettings(name: 'AddProcedureTabPage')),
); );
}, },
label: TranslationBase.of(context) label: TranslationBase.of(context)

@ -108,7 +108,7 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
patient: widget.patient, patient: widget.patient,
model: widget.prescriptionModel, model: widget.prescriptionModel,
groupProcedures: groupProcedures, groupProcedures: groupProcedures,
), ), settings: RouteSettings(name: 'PrescriptionCheckOutScreen')
), ),
); );
} else { } else {
@ -128,7 +128,7 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
patient: widget.patient, patient: widget.patient,
addButtonTitle: widget.procedureType.getAddButtonTitle(context), addButtonTitle: widget.procedureType.getAddButtonTitle(context),
toolbarTitle: widget.procedureType.getToolbarLabel(context), toolbarTitle: widget.procedureType.getToolbarLabel(context),
), ), settings: RouteSettings(name: 'ProcedureCheckOutScreen')
), ),
); );
} }

@ -110,7 +110,7 @@ class ProcedureScreen extends StatelessWidget {
patient: patient, patient: patient,
model: model, model: model,
procedureType: ProcedureType.PROCEDURE, procedureType: ProcedureType.PROCEDURE,
), ), settings: RouteSettings(name: 'AddProcedureTabPage')
), ),
); );
}, },

@ -982,6 +982,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => AddRescheduleLeavScreen(), builder: (context) => AddRescheduleLeavScreen(),
settings: RouteSettings(name: 'AddRescheduleLeaveScreen')
// MyReferredPatient(), // MyReferredPatient(),
), ),
); );
@ -1045,7 +1046,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => AddRescheduleLeavScreen(), builder: (context) => AddRescheduleLeavScreen(),
// MyReferredPatient(), settings: RouteSettings(name: 'AddRescheduleLeaveScreen')
), ),
); );
} }

@ -71,6 +71,7 @@ class PrescriptionOutPatientWidget extends StatelessWidget {
prescriptionResModel: prescriptionResModel:
patientPrescriptionsList[index], patientPrescriptionsList[index],
), ),
settings: RouteSettings(name: 'OutPatientPrescriptionDetailsScreen')
), ),
); );
}, },

@ -118,6 +118,7 @@ class _AppDrawerState extends State<AppDrawer> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => AddRescheduleLeavScreen(), builder: (context) => AddRescheduleLeavScreen(),
settings: RouteSettings(name: 'AddRescheduleLeaveScreen')
// MyReferredPatient(), // MyReferredPatient(),
)); ));
}, },

@ -7,6 +7,7 @@ class FadePage extends PageRouteBuilder {
FadePage({this.page}) FadePage({this.page})
: super( : super(
opaque: false, opaque: false,
settings: RouteSettings(name: page.runtimeType.toString()),
fullscreenDialog: true, fullscreenDialog: true,
barrierDismissible: true, barrierDismissible: true,
barrierColor: Colors.black.withOpacity(0.8), barrierColor: Colors.black.withOpacity(0.8),

@ -24,6 +24,7 @@ class SlideUpPageRoute extends PageRouteBuilder {
opaque: opaque, opaque: opaque,
barrierColor: Color.fromRGBO(0, 0, 0, 0.5), barrierColor: Color.fromRGBO(0, 0, 0, 0.5),
barrierDismissible: true, barrierDismissible: true,
settings: RouteSettings(name: widget.runtimeType.toString()),
transitionDuration: Duration(milliseconds: 800), transitionDuration: Duration(milliseconds: 800),
transitionsBuilder: ((BuildContext context, transitionsBuilder: ((BuildContext context,
Animation<double> animation, Animation<double> animation,

Loading…
Cancel
Save