From c8fde6e8694483e369ecd69c3396b9e7b9e278e5 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 9 Jan 2022 10:54:30 +0200 Subject: [PATCH 1/6] hide registration service --- lib/screens/home/home_screen.dart | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart index df810361..27ec03e2 100644 --- a/lib/screens/home/home_screen.dart +++ b/lib/screens/home/home_screen.dart @@ -424,24 +424,24 @@ class _HomeScreenState extends State { }, )); changeColorIndex(); - - patientCards.add(HomePatientCard( - gradient: backgroundColors[colorIndex], - backgroundIconColor: backgroundIconColors[colorIndex], - //TODO Elham* match the of the icon - cardIcon: DoctorApp.arrival_patients, - textColor: textColors[colorIndex], - text: TranslationBase.of(context).registerNewPatient, - onTap: () { - Navigator.push( - context, - FadePage( - page: RegisterPatientPage(), - ), - ); - }, - )); - changeColorIndex(); + //TODO Keep commented + // patientCards.add(HomePatientCard( + // gradient: backgroundColors[colorIndex], + // backgroundIconColor: backgroundIconColors[colorIndex], + // //TODO Elham* match the of the icon + // cardIcon: DoctorApp.arrival_patients, + // textColor: textColors[colorIndex], + // text: TranslationBase.of(context).registerNewPatient, + // onTap: () { + // Navigator.push( + // context, + // FadePage( + // page: RegisterPatientPage(), + // ), + // ); + // }, + // )); + // changeColorIndex(); patientCards.add(HomePatientCard( gradient: backgroundColors[colorIndex], From 810cda1f9b29c2bbbc021ebdef53efc811cf1d10 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 9 Jan 2022 10:57:47 +0200 Subject: [PATCH 2/6] fix header --- lib/landing_page.dart | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/landing_page.dart b/lib/landing_page.dart index 89faeb0c..c069e7e7 100644 --- a/lib/landing_page.dart +++ b/lib/landing_page.dart @@ -49,16 +49,13 @@ class _LandingPageState extends State { backgroundColor: HexColor('#FFFFFF'), //textTheme: TextTheme(headline6: TextStyle(color: Colors.white)), title: currentTab != 0 - ? Padding( - padding: const EdgeInsets.only(right: 188,top: 36), - child: AppText( - getText(currentTab), - letterSpacing: -1.44, - fontWeight: FontWeight.w700, - fontSize: 24.0, - color: Color(0xff2B353E), - ), - ) + ? AppText( + getText(currentTab), + letterSpacing: -1.44, + fontWeight: FontWeight.w700, + fontSize: 24.0, + color: Color(0xff2B353E), + ) : SizedBox(), leading: Builder( builder: (BuildContext context) { From da63af6db36b05d7f7710d1c2c537f6c692fe23c Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 9 Jan 2022 12:09:48 +0200 Subject: [PATCH 3/6] vte assessment --- lib/client/base_app_client.dart | 2 + lib/config/config.dart | 3 + .../vte_assessment_req_model.dart | 22 ++ .../vte_assessment_res_model.dart | 48 ++++ .../profile/vte_assessment_servive.dart | 30 +++ .../profile/vte_assessment_view_model.dart | 37 +++ lib/locator.dart | 4 + lib/routes.dart | 3 + .../profile_gird_for_InPatient.dart | 10 +- .../vte_assessment_screen.dart | 232 ++++++++++++++++++ 10 files changed, 390 insertions(+), 1 deletion(-) create mode 100644 lib/core/model/vte_assessment/vte_assessment_req_model.dart create mode 100644 lib/core/model/vte_assessment/vte_assessment_res_model.dart create mode 100644 lib/core/service/patient/profile/vte_assessment_servive.dart create mode 100644 lib/core/viewModel/profile/vte_assessment_view_model.dart create mode 100644 lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart diff --git a/lib/client/base_app_client.dart b/lib/client/base_app_client.dart index 033bc44c..d088fadd 100644 --- a/lib/client/base_app_client.dart +++ b/lib/client/base_app_client.dart @@ -64,6 +64,8 @@ class BaseAppClient { body['TokenID'] = token ?? ''; } // body['TokenID'] = "@dm!n" ?? ''; + body['TokenID'] = "@dm!n";///Todo Elham* Return back before the build body.containsKey('TokenID') ? body['TokenID'] : token; + if (!isFallLanguage) { String lang = await sharedPref.getString(APP_Language); if (lang != null && lang == 'ar') diff --git a/lib/config/config.dart b/lib/config/config.dart index 2301eab0..17abf2bf 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -386,6 +386,9 @@ const GET_PENDING_DISCHARGE_SUMMARY = const GET_ALL_DISCHARGE_SUMMARY = "Services/DoctorApplication.svc/REST/DoctorApp_GetDischargeSummary"; +const VTE_ASSESSMENT = + "Services/Patients.svc/REST/INP_GetVTEHistoryByTransactionNo"; + var selectedPatientType = 1; //*********change value to decode json from Dropdown ************ diff --git a/lib/core/model/vte_assessment/vte_assessment_req_model.dart b/lib/core/model/vte_assessment/vte_assessment_req_model.dart new file mode 100644 index 00000000..1f0bd1fa --- /dev/null +++ b/lib/core/model/vte_assessment/vte_assessment_req_model.dart @@ -0,0 +1,22 @@ +class VteAssessmentRequestModel { + String setupID; + int parameterGroup; + int transactionNo; + + VteAssessmentRequestModel( + {this.setupID = "010266", this.parameterGroup = 7, this.transactionNo}); + + VteAssessmentRequestModel.fromJson(Map json) { + setupID = json['SetupID']; + parameterGroup = json['ParameterGroup']; + transactionNo = json['TransactionNo']; + } + + Map toJson() { + final Map data = new Map(); + data['SetupID'] = this.setupID; + data['ParameterGroup'] = this.parameterGroup; + data['TransactionNo'] = this.transactionNo; + return data; + } +} diff --git a/lib/core/model/vte_assessment/vte_assessment_res_model.dart b/lib/core/model/vte_assessment/vte_assessment_res_model.dart new file mode 100644 index 00000000..8bd2c441 --- /dev/null +++ b/lib/core/model/vte_assessment/vte_assessment_res_model.dart @@ -0,0 +1,48 @@ +class VteAssessmentResponseModel { + int lineItemNo; + String vTEType; + String ambulationProtocol; + String pharmacology; + String reasonsThrombo; + String riskScore; + int totalScore; + int createdBy; + String createdOn; + + VteAssessmentResponseModel( + {this.lineItemNo, + this.vTEType, + this.ambulationProtocol, + this.pharmacology, + this.reasonsThrombo, + this.riskScore, + this.totalScore, + this.createdBy, + this.createdOn}); + + VteAssessmentResponseModel.fromJson(Map json) { + lineItemNo = json['LineItemNo']; + vTEType = json['VTE_Type']; + ambulationProtocol = json['AmbulationProtocol']; + pharmacology = json['Pharmacology']; + reasonsThrombo = json['ReasonsThrombo']; + riskScore = json['Risk_Score']; + totalScore = json['Total_Score']; + createdBy = json['Created_By']; + createdOn = json['Created_On']; + } + + Map toJson() { + final Map data = new Map(); + data['LineItemNo'] = this.lineItemNo; + data['VTE_Type'] = this.vTEType; + data['AmbulationProtocol'] = this.ambulationProtocol; + data['Pharmacology'] = this.pharmacology; + data['ReasonsThrombo'] = this.reasonsThrombo; + data['Risk_Score'] = this.riskScore; + data['Total_Score'] = this.totalScore; + data['Created_By'] = this.createdBy; + data['Created_On'] = this.createdOn; + return data; + } +} diff --git a/lib/core/service/patient/profile/vte_assessment_servive.dart b/lib/core/service/patient/profile/vte_assessment_servive.dart new file mode 100644 index 00000000..9bfbf288 --- /dev/null +++ b/lib/core/service/patient/profile/vte_assessment_servive.dart @@ -0,0 +1,30 @@ +import 'package:doctor_app_flutter/config/config.dart'; +import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_req_model.dart'; +import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_res_model.dart'; +import 'package:doctor_app_flutter/core/service/base/base_service.dart'; +import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryReqModel.dart'; +import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryResModel.dart'; + +class VteAssessmentService extends BaseService { + + List _allDischargeSummaryList = []; + + List get allDischargeSummaryList => + _allDischargeSummaryList; + Future getVteAssessment( + {VteAssessmentRequestModel vteAssessmentRequestModel}) async { + hasError = false; + await baseAppClient.post(VTE_ASSESSMENT, + onSuccess: (dynamic response, int statusCode) { + _allDischargeSummaryList.clear(); + response['INP_VTEHistoryByTransactionNo_List'].forEach( + (v) { + _allDischargeSummaryList.add(VteAssessmentResponseModel.fromJson(v)); + }, + ); + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: vteAssessmentRequestModel.toJson()); + } +} diff --git a/lib/core/viewModel/profile/vte_assessment_view_model.dart b/lib/core/viewModel/profile/vte_assessment_view_model.dart new file mode 100644 index 00000000..f03bf07d --- /dev/null +++ b/lib/core/viewModel/profile/vte_assessment_view_model.dart @@ -0,0 +1,37 @@ +import 'package:doctor_app_flutter/core/enum/viewstate.dart'; +import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_req_model.dart'; +import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_res_model.dart'; +import 'package:doctor_app_flutter/core/service/patient/profile/discharge_summary_servive.dart'; +import 'package:doctor_app_flutter/core/service/patient/profile/vte_assessment_servive.dart'; +import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; +import 'package:doctor_app_flutter/locator.dart'; +import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryReqModel.dart'; +import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryResModel.dart'; + +class VteAssessmentViewModel extends BaseViewModel { + bool hasError = false; + VteAssessmentService _dischargeSummaryService = + locator(); + + List get allDisChargeSummaryList => + _dischargeSummaryService.allDischargeSummaryList; + + Future getVteAssessment({ + int patientId, + int admissionNo, + }) async { + VteAssessmentRequestModel vteAssessmentRequestModel = + VteAssessmentRequestModel( + transactionNo: admissionNo); + hasError = false; + setState(ViewState.Busy); + await _dischargeSummaryService.getVteAssessment( + vteAssessmentRequestModel: vteAssessmentRequestModel); + if (_dischargeSummaryService.hasError) { + error = _dischargeSummaryService.error; + setState(ViewState.ErrorLocal); + } else { + setState(ViewState.Idle); + } + } +} diff --git a/lib/locator.dart b/lib/locator.dart index 28f4bfdf..1cd3fa87 100644 --- a/lib/locator.dart +++ b/lib/locator.dart @@ -33,6 +33,7 @@ import 'core/service/patient/patient-doctor-referral-service.dart'; import 'core/service/patient/patientInPatientService.dart'; import 'core/service/patient/patient_service.dart'; import 'core/service/patient/profile/operation_report_servive.dart'; +import 'core/service/patient/profile/vte_assessment_servive.dart'; import 'core/service/patient/referral_patient_service.dart'; import 'core/service/patient_medical_file/admission_request/patient-admission-request-service.dart'; import 'core/service/patient_medical_file/insurance/InsuranceCardService.dart'; @@ -65,6 +66,7 @@ import 'core/viewModel/patient-referral-viewmodel.dart'; import 'core/viewModel/patient-ucaf-viewmodel.dart'; import 'core/viewModel/patient-vital-sign-viewmodel.dart'; import 'core/viewModel/prescriptions_view_model.dart'; +import 'core/viewModel/profile/vte_assessment_view_model.dart'; import 'core/viewModel/radiology_view_model.dart'; import 'core/viewModel/referral_view_model.dart'; import 'core/viewModel/schedule_view_model.dart'; @@ -112,6 +114,7 @@ void setupLocator() { locator.registerLazySingleton(() => PendingOrderService()); locator.registerLazySingleton(() => PatientRegistrationService()); locator.registerLazySingleton(() => DischargeSummaryService()); + locator.registerLazySingleton(() => VteAssessmentService()); /// View Model locator.registerFactory(() => DoctorReplayViewModel()); @@ -144,4 +147,5 @@ void setupLocator() { locator.registerFactory(() => PatientRegistrationViewModel()); locator.registerFactory(() => PendingOrdersViewModel()); locator.registerFactory(() => DischargeSummaryViewModel()); + locator.registerFactory(() => VteAssessmentViewModel()); } diff --git a/lib/routes.dart b/lib/routes.dart index 8f636d74..49b1617a 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -22,6 +22,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/prescriptions/in_pat import 'package:doctor_app_flutter/screens/patients/profile/radiology/radiology_home_page.dart'; import 'package:doctor_app_flutter/screens/patients/profile/referral/refer-patient-screen-in-patient.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/update_soap_index.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/vte_assessment%20/vte_assessment_screen.dart'; import 'package:doctor_app_flutter/screens/prescription/prescriptions_page.dart'; import 'package:doctor_app_flutter/screens/procedures/procedure_screen.dart'; @@ -80,6 +81,7 @@ const String NURSING_PROGRESS_NOTE = 'nursing_progress_note'; const String DIAGNOSIS_FOR_IN_PATIENT = 'get_diagnosis_for_in_patient'; const String DIABETIC_CHART_VALUES = 'get_diabetic_chart_values'; +const String VTE_ASSESSMENT = 'vte_assessment '; const String DISCHARGE_SUMMARY = 'discharge_summary'; //todo: change the routing way. @@ -131,4 +133,5 @@ var routes = { DIAGNOSIS_FOR_IN_PATIENT: (_) => DiagnosisScreen(), ADMISSION_ORDERS: (_) => AdmissionOrdersScreen(), DIABETIC_CHART_VALUES: (_) => DiabeticChart(), + VTE_ASSESSMENT: (_) => VteAssessmentScreen(), }; diff --git a/lib/screens/patients/profile/profile_screen/profile_gird_for_InPatient.dart b/lib/screens/patients/profile/profile_screen/profile_gird_for_InPatient.dart index 22d784e7..14a54471 100644 --- a/lib/screens/patients/profile/profile_screen/profile_gird_for_InPatient.dart +++ b/lib/screens/patients/profile/profile_screen/profile_gird_for_InPatient.dart @@ -166,7 +166,15 @@ class ProfileGridForInPatient extends StatelessWidget { DIABETIC_CHART_VALUES, 'assets/images/svgs/profile_screen/diabetic chart.svg', isInPatient: isInpatient, - ), + ) + , + PatientProfileCardModel( + "VTE", + "Assessment", + VTE_ASSESSMENT, + 'assets/images/svgs/profile_screen/diabetic chart.svg', + isInPatient: isInpatient, + ), ]; return Padding( diff --git a/lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart b/lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart new file mode 100644 index 00000000..242dab07 --- /dev/null +++ b/lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart @@ -0,0 +1,232 @@ +import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; +import 'package:doctor_app_flutter/core/model/diagnosis/GetDiagnosisForInPatientRequestModel.dart'; +import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart'; +import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart'; +import 'package:doctor_app_flutter/core/viewModel/profile/vte_assessment_view_model.dart'; +import 'package:doctor_app_flutter/core/viewModel/project_view_model.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/util/date-utils.dart'; +import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; +import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; +import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.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/shared/card_with_bg_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); + +class VteAssessmentScreen extends StatefulWidget { + const VteAssessmentScreen({Key key}) : super(key: key); + + @override + _ProgressNoteState createState() => _ProgressNoteState(); +} + +class _ProgressNoteState extends State { + bool isDischargedPatient = false; + AuthenticationViewModel authenticationViewModel; + ProjectViewModel projectViewModel; + + @override + Widget build(BuildContext context) { + authenticationViewModel = Provider.of(context); + projectViewModel = Provider.of(context); + final routeArgs = ModalRoute.of(context).settings.arguments as Map; + PatiantInformtion patient = routeArgs['patient']; + if (routeArgs.containsKey('isDischargedPatient')) + isDischargedPatient = routeArgs['isDischargedPatient']; + return BaseView( + onModelReady: (model) => model.getVteAssessment(patientId: patient.patientId, admissionNo: 2016023498 + + //int.parse(patient.admissionNo) + ), + builder: (_, model, w) => AppScaffold( + baseViewModel: model, + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + appBar: PatientProfileAppBar( + patient, + isInpatient: true, + ), + body: model.allDisChargeSummaryList == null || + model.allDisChargeSummaryList.length == 0 + ? Center( + child: ErrorMessage( + error: TranslationBase.of(context).noDataAvailable, + ), + ) + : Container( + color: Colors.grey[200], + child: Column( + children: [ + Expanded( + child: Container( + child: ListView.builder( + itemCount: model.allDisChargeSummaryList.length, + itemBuilder: (BuildContext ctxt, int index) { + return FractionallySizedBox( + widthFactor: 0.95, + child: CardWithBgWidget( + hasBorder: false, + bgColor: Colors.transparent, + widget: Column( + children: [ + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Container( + width: MediaQuery.of(context) + .size + .width * + 0.60, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + AppText( + TranslationBase.of( + context) + .createdBy, + fontSize: 12, + ), + + ], + ), + ], + ), + ), + Column( + children: [ + AppText( + model + .allDisChargeSummaryList[ + index] + .createdOn != + null + ? AppDateUtils.getDayMonthYearDateFormatted( + AppDateUtils + .getDateTimeFromServerFormat(model + .allDisChargeSummaryList[ + index] + .createdOn), + isArabic: + projectViewModel + .isArabic, + isMonthShort: true) + : AppDateUtils + .getDayMonthYearDateFormatted( + DateTime.now(), + isArabic: + projectViewModel + .isArabic), + fontWeight: FontWeight.w600, + fontSize: 14, + isCopyable: true, + ), + AppText( + model + .allDisChargeSummaryList[ + index] + .createdOn != + null + ? AppDateUtils.getHour( + AppDateUtils + .getDateTimeFromServerFormat(model + .allDisChargeSummaryList[ + index] + .createdOn)) + : AppDateUtils.getHour( + DateTime.now()), + fontWeight: FontWeight.w600, + fontSize: 14, + isCopyable: true, + ), + ], + crossAxisAlignment: + CrossAxisAlignment.end, + ) + ], + ), + SizedBox( + height: 8, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context) + .icd + + " : ", + fontSize: 12, + ), + Expanded( + child: AppText( + model + .allDisChargeSummaryList[ + index] + .reasonsThrombo, + fontSize: 12, + isCopyable: true, + ), + ), + ]), + SizedBox( + height: 8, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + AppText( + "Ascii Desc : ", + fontSize: 12, + ), + Expanded( + child: AppText( + model + .allDisChargeSummaryList[ + index] + .riskScore, + fontSize: 12, + isCopyable: true, + ), + ), + ]) + ], + ), + SizedBox( + height: 20, + ), + ], + ), + ), + ); + }), + ), + ), + ], + ), + ), + ), + ); + } +} From 5ed5a266e9e526311bab3379e6504ebac2bb093e Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 9 Jan 2022 14:20:39 +0200 Subject: [PATCH 4/6] vte assessment fix path --- .../vte_assessment_screen.dart | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lib/screens/patients/profile/{vte_assessment => vte_assessment}/vte_assessment_screen.dart (100%) diff --git a/lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart b/lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart similarity index 100% rename from lib/screens/patients/profile/vte_assessment /vte_assessment_screen.dart rename to lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart From 406165c34818b1ba3ea511509d95e9ac96cd28df Mon Sep 17 00:00:00 2001 From: RoaaGhali98 Date: Sun, 9 Jan 2022 17:00:45 +0200 Subject: [PATCH 5/6] we fix some issues -in-patient --- lib/client/base_app_client.dart | 1 - lib/config/localized_values.dart | 1 + lib/core/viewModel/profile/vte_assessment_view_model.dart | 2 +- lib/routes.dart | 2 +- lib/util/translations_delegate_base.dart | 2 ++ 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/client/base_app_client.dart b/lib/client/base_app_client.dart index d088fadd..eb0fe42d 100644 --- a/lib/client/base_app_client.dart +++ b/lib/client/base_app_client.dart @@ -64,7 +64,6 @@ class BaseAppClient { body['TokenID'] = token ?? ''; } // body['TokenID'] = "@dm!n" ?? ''; - body['TokenID'] = "@dm!n";///Todo Elham* Return back before the build body.containsKey('TokenID') ? body['TokenID'] : token; if (!isFallLanguage) { String lang = await sharedPref.getString(APP_Language); diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 2f44f19a..d6570d74 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -663,6 +663,7 @@ const Map> localizedValues = { "progressNoteSOAP": {"en": "Progress Note", "ar": "ملاحظة التقدم"}, "addProgressNote": {"en": "Add Progress Note", "ar": "أضف ملاحظة التقدم"}, "createdBy": {"en": "Created By :", "ar": "أضيفت عن طريق: "}, + "riskScore": {"en": "Risk Score :", "ar": "درجة المخاطر"}, "editedBy": {"en": "Edited By :", "ar": "عدلت من : "}, "currentMedications": {"en": "Current Medications", "ar": "الأدوية الحالية"}, "noItem": { diff --git a/lib/core/viewModel/profile/vte_assessment_view_model.dart b/lib/core/viewModel/profile/vte_assessment_view_model.dart index f03bf07d..e044bc0c 100644 --- a/lib/core/viewModel/profile/vte_assessment_view_model.dart +++ b/lib/core/viewModel/profile/vte_assessment_view_model.dart @@ -13,7 +13,7 @@ class VteAssessmentViewModel extends BaseViewModel { VteAssessmentService _dischargeSummaryService = locator(); - List get allDisChargeSummaryList => + List get allVteHistoryList => _dischargeSummaryService.allDischargeSummaryList; Future getVteAssessment({ diff --git a/lib/routes.dart b/lib/routes.dart index 49b1617a..8a63ebdc 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -22,7 +22,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/prescriptions/in_pat import 'package:doctor_app_flutter/screens/patients/profile/radiology/radiology_home_page.dart'; import 'package:doctor_app_flutter/screens/patients/profile/referral/refer-patient-screen-in-patient.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/update_soap_index.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/vte_assessment%20/vte_assessment_screen.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/vte_assessment/vte_assessment_screen.dart'; import 'package:doctor_app_flutter/screens/prescription/prescriptions_page.dart'; import 'package:doctor_app_flutter/screens/procedures/procedure_screen.dart'; diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index 6aa9c6c7..86e17e1f 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -1123,6 +1123,8 @@ class TranslationBase { String get createdBy => localizedValues['createdBy'][locale.languageCode]; + String get riskScore => localizedValues['riskScore'][locale.languageCode]; + String get editedBy => localizedValues['editedBy'][locale.languageCode]; String get currentMedications => From af1217dd67a9649cc4492453c3db8b8bed00d7e9 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 10 Jan 2022 12:10:55 +0200 Subject: [PATCH 6/6] finish assessment screen --- lib/config/localized_values.dart | 3 + ...rvive.dart => vte_assessment_service.dart} | 10 +-- .../profile/vte_assessment_view_model.dart | 12 +-- lib/locator.dart | 2 +- .../vte_assessment/vte_assessment_screen.dart | 90 ++++++++++++++----- lib/util/translations_delegate_base.dart | 3 + pubspec.lock | 9 +- 7 files changed, 89 insertions(+), 40 deletions(-) rename lib/core/service/patient/profile/{vte_assessment_servive.dart => vte_assessment_service.dart} (78%) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index d6570d74..5424f389 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1119,4 +1119,7 @@ const Map> localizedValues = { }, "planedProcedure": {"en": "Planed Procedure", "ar": "الإجراء المخطط"}, "moreDetails": {"en": "More Details", "ar": "المزيد من التفاصيل"}, + "VTE_Type": {"en": "VTE Type", "ar": "VTE Type"}, + "pharmacology": {"en": "Pharmacology", "ar": "علم العقاقير"}, + "reasonsThrombo": {"en": "Reasons Thrombo", "ar": "أسباب ثرومبو"}, }; diff --git a/lib/core/service/patient/profile/vte_assessment_servive.dart b/lib/core/service/patient/profile/vte_assessment_service.dart similarity index 78% rename from lib/core/service/patient/profile/vte_assessment_servive.dart rename to lib/core/service/patient/profile/vte_assessment_service.dart index 9bfbf288..81ad0650 100644 --- a/lib/core/service/patient/profile/vte_assessment_servive.dart +++ b/lib/core/service/patient/profile/vte_assessment_service.dart @@ -7,19 +7,19 @@ import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryR class VteAssessmentService extends BaseService { - List _allDischargeSummaryList = []; + List _allVteHistoryList = []; - List get allDischargeSummaryList => - _allDischargeSummaryList; + List get allVteHistoryList => + _allVteHistoryList; Future getVteAssessment( {VteAssessmentRequestModel vteAssessmentRequestModel}) async { hasError = false; await baseAppClient.post(VTE_ASSESSMENT, onSuccess: (dynamic response, int statusCode) { - _allDischargeSummaryList.clear(); + _allVteHistoryList.clear(); response['INP_VTEHistoryByTransactionNo_List'].forEach( (v) { - _allDischargeSummaryList.add(VteAssessmentResponseModel.fromJson(v)); + _allVteHistoryList.add(VteAssessmentResponseModel.fromJson(v)); }, ); }, onFailure: (String error, int statusCode) { diff --git a/lib/core/viewModel/profile/vte_assessment_view_model.dart b/lib/core/viewModel/profile/vte_assessment_view_model.dart index e044bc0c..0997805b 100644 --- a/lib/core/viewModel/profile/vte_assessment_view_model.dart +++ b/lib/core/viewModel/profile/vte_assessment_view_model.dart @@ -2,7 +2,7 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_req_model.dart'; import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_res_model.dart'; import 'package:doctor_app_flutter/core/service/patient/profile/discharge_summary_servive.dart'; -import 'package:doctor_app_flutter/core/service/patient/profile/vte_assessment_servive.dart'; +import 'package:doctor_app_flutter/core/service/patient/profile/vte_assessment_service.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; import 'package:doctor_app_flutter/locator.dart'; import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryReqModel.dart'; @@ -10,11 +10,11 @@ import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryR class VteAssessmentViewModel extends BaseViewModel { bool hasError = false; - VteAssessmentService _dischargeSummaryService = + VteAssessmentService _VteAssessmentService = locator(); List get allVteHistoryList => - _dischargeSummaryService.allDischargeSummaryList; + _VteAssessmentService.allVteHistoryList; Future getVteAssessment({ int patientId, @@ -25,10 +25,10 @@ class VteAssessmentViewModel extends BaseViewModel { transactionNo: admissionNo); hasError = false; setState(ViewState.Busy); - await _dischargeSummaryService.getVteAssessment( + await _VteAssessmentService.getVteAssessment( vteAssessmentRequestModel: vteAssessmentRequestModel); - if (_dischargeSummaryService.hasError) { - error = _dischargeSummaryService.error; + if (_VteAssessmentService.hasError) { + error = _VteAssessmentService.error; setState(ViewState.ErrorLocal); } else { setState(ViewState.Idle); diff --git a/lib/locator.dart b/lib/locator.dart index 1cd3fa87..52ddccef 100644 --- a/lib/locator.dart +++ b/lib/locator.dart @@ -33,7 +33,7 @@ import 'core/service/patient/patient-doctor-referral-service.dart'; import 'core/service/patient/patientInPatientService.dart'; import 'core/service/patient/patient_service.dart'; import 'core/service/patient/profile/operation_report_servive.dart'; -import 'core/service/patient/profile/vte_assessment_servive.dart'; +import 'core/service/patient/profile/vte_assessment_service.dart'; import 'core/service/patient/referral_patient_service.dart'; import 'core/service/patient_medical_file/admission_request/patient-admission-request-service.dart'; import 'core/service/patient_medical_file/insurance/InsuranceCardService.dart'; diff --git a/lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart b/lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart index 242dab07..230c9bfb 100644 --- a/lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart +++ b/lib/screens/patients/profile/vte_assessment/vte_assessment_screen.dart @@ -40,9 +40,10 @@ class _ProgressNoteState extends State { if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient']; return BaseView( - onModelReady: (model) => model.getVteAssessment(patientId: patient.patientId, admissionNo: 2016023498 + onModelReady: (model) => model.getVteAssessment(patientId: patient.patientId, + admissionNo: 2016023498 - //int.parse(patient.admissionNo) + // admissionNo:int.parse(patient.admissionNo) ), builder: (_, model, w) => AppScaffold( baseViewModel: model, @@ -51,8 +52,8 @@ class _ProgressNoteState extends State { patient, isInpatient: true, ), - body: model.allDisChargeSummaryList == null || - model.allDisChargeSummaryList.length == 0 + body: model.allVteHistoryList == null || + model.allVteHistoryList.length == 0 ? Center( child: ErrorMessage( error: TranslationBase.of(context).noDataAvailable, @@ -65,7 +66,7 @@ class _ProgressNoteState extends State { Expanded( child: Container( child: ListView.builder( - itemCount: model.allDisChargeSummaryList.length, + itemCount: model.allVteHistoryList.length, itemBuilder: (BuildContext ctxt, int index) { return FractionallySizedBox( widthFactor: 0.95, @@ -102,10 +103,11 @@ class _ProgressNoteState extends State { .start, children: [ AppText( - TranslationBase.of( - context) - .createdBy, - fontSize: 12, + model + .allVteHistoryList[ + index].riskScore, + fontWeight: FontWeight.w600, + fontSize: 14, ), ], @@ -117,14 +119,14 @@ class _ProgressNoteState extends State { children: [ AppText( model - .allDisChargeSummaryList[ + .allVteHistoryList[ index] .createdOn != null ? AppDateUtils.getDayMonthYearDateFormatted( AppDateUtils - .getDateTimeFromServerFormat(model - .allDisChargeSummaryList[ + .getDateTimeFromString(model + .allVteHistoryList[ index] .createdOn), isArabic: @@ -143,14 +145,14 @@ class _ProgressNoteState extends State { ), AppText( model - .allDisChargeSummaryList[ + .allVteHistoryList[ index] .createdOn != null ? AppDateUtils.getHour( AppDateUtils - .getDateTimeFromServerFormat(model - .allDisChargeSummaryList[ + .getDateTimeFromString(model + .allVteHistoryList[ index] .createdOn)) : AppDateUtils.getHour( @@ -174,14 +176,62 @@ class _ProgressNoteState extends State { children: [ AppText( TranslationBase.of(context) - .icd + + .VTE_Type + " : ", fontSize: 12, ), Expanded( child: AppText( model - .allDisChargeSummaryList[ + .allVteHistoryList[ + index] + .vTEType, + fontSize: 12, + isCopyable: true, + ), + ), + ]), + SizedBox( + height: 8, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context) + .pharmacology + + " : ", + fontSize: 12, + ), + Expanded( + child: AppText( + model + .allVteHistoryList[ + index] + .pharmacology, + fontSize: 12, + isCopyable: true, + ), + ), + ]), + SizedBox( + height: 8, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context) + .reasonsThrombo + + " : ", + fontSize: 12, + ), + Expanded( + child: AppText( + model + .allVteHistoryList[ index] .reasonsThrombo, fontSize: 12, @@ -197,15 +247,15 @@ class _ProgressNoteState extends State { MainAxisAlignment.start, children: [ AppText( - "Ascii Desc : ", + "Ambulation Protocol : ", fontSize: 12, ), Expanded( child: AppText( model - .allDisChargeSummaryList[ + .allVteHistoryList[ index] - .riskScore, + .ambulationProtocol, fontSize: 12, isCopyable: true, ), diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index 86e17e1f..303a9acf 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -1737,6 +1737,9 @@ class TranslationBase { localizedValues['planedProcedure'][locale.languageCode]; String get moreDetails => localizedValues['moreDetails'][locale.languageCode]; + String get VTE_Type => localizedValues['VTE_Type'][locale.languageCode]; + String get pharmacology => localizedValues['pharmacology'][locale.languageCode]; + String get reasonsThrombo => localizedValues['reasonsThrombo'][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/pubspec.lock b/pubspec.lock index 85e7f11e..ea0635ca 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -763,13 +763,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.2" meta: dependency: transitive description: @@ -1173,7 +1166,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.8" + version: "0.4.3" timing: dependency: transitive description: