Merge branch 'point10' into 'development'

Point10

See merge request Cloud_Solution/doctor_app_flutter!950
merge-requests/951/merge
Elham Ali 4 years ago
commit fec10319bf

@ -64,6 +64,7 @@ class BaseAppClient {
body['TokenID'] = token ?? '';
}
// body['TokenID'] = "@dm!n" ?? '';
if (!isFallLanguage) {
String lang = await sharedPref.getString(APP_Language);
if (lang != null && lang == 'ar')

@ -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 ************

@ -663,6 +663,7 @@ const Map<String, Map<String, String>> 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": {
@ -1118,4 +1119,7 @@ const Map<String, Map<String, String>> 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": "أسباب ثرومبو"},
};

@ -0,0 +1,22 @@
class VteAssessmentRequestModel {
String setupID;
int parameterGroup;
int transactionNo;
VteAssessmentRequestModel(
{this.setupID = "010266", this.parameterGroup = 7, this.transactionNo});
VteAssessmentRequestModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
parameterGroup = json['ParameterGroup'];
transactionNo = json['TransactionNo'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['ParameterGroup'] = this.parameterGroup;
data['TransactionNo'] = this.transactionNo;
return data;
}
}

@ -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<String, dynamic> 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<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
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;
}
}

@ -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<VteAssessmentResponseModel> _allVteHistoryList = [];
List<VteAssessmentResponseModel> get allVteHistoryList =>
_allVteHistoryList;
Future getVteAssessment(
{VteAssessmentRequestModel vteAssessmentRequestModel}) async {
hasError = false;
await baseAppClient.post(VTE_ASSESSMENT,
onSuccess: (dynamic response, int statusCode) {
_allVteHistoryList.clear();
response['INP_VTEHistoryByTransactionNo_List'].forEach(
(v) {
_allVteHistoryList.add(VteAssessmentResponseModel.fromJson(v));
},
);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: vteAssessmentRequestModel.toJson());
}
}

@ -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_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';
import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryResModel.dart';
class VteAssessmentViewModel extends BaseViewModel {
bool hasError = false;
VteAssessmentService _VteAssessmentService =
locator<VteAssessmentService>();
List<VteAssessmentResponseModel> get allVteHistoryList =>
_VteAssessmentService.allVteHistoryList;
Future getVteAssessment({
int patientId,
int admissionNo,
}) async {
VteAssessmentRequestModel vteAssessmentRequestModel =
VteAssessmentRequestModel(
transactionNo: admissionNo);
hasError = false;
setState(ViewState.Busy);
await _VteAssessmentService.getVteAssessment(
vteAssessmentRequestModel: vteAssessmentRequestModel);
if (_VteAssessmentService.hasError) {
error = _VteAssessmentService.error;
setState(ViewState.ErrorLocal);
} else {
setState(ViewState.Idle);
}
}
}

@ -49,16 +49,13 @@ class _LandingPageState extends State<LandingPage> {
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) {

@ -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_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';
@ -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());
}

@ -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/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(),
};

@ -424,24 +424,24 @@ class _HomeScreenState extends State<HomeScreen> {
},
));
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],

@ -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(

@ -0,0 +1,282 @@
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<VteAssessmentScreen> {
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<VteAssessmentViewModel>(
onModelReady: (model) => model.getVteAssessment(patientId: patient.patientId,
admissionNo: 2016023498
// admissionNo:int.parse(patient.admissionNo)
),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
appBar: PatientProfileAppBar(
patient,
isInpatient: true,
),
body: model.allVteHistoryList == null ||
model.allVteHistoryList.length == 0
? Center(
child: ErrorMessage(
error: TranslationBase.of(context).noDataAvailable,
),
)
: Container(
color: Colors.grey[200],
child: Column(
children: <Widget>[
Expanded(
child: Container(
child: ListView.builder(
itemCount: model.allVteHistoryList.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(
model
.allVteHistoryList[
index].riskScore,
fontWeight: FontWeight.w600,
fontSize: 14,
),
],
),
],
),
),
Column(
children: [
AppText(
model
.allVteHistoryList[
index]
.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils
.getDateTimeFromString(model
.allVteHistoryList[
index]
.createdOn),
isArabic:
projectViewModel
.isArabic,
isMonthShort: true)
: AppDateUtils
.getDayMonthYearDateFormatted(
DateTime.now(),
isArabic:
projectViewModel
.isArabic),
fontWeight: FontWeight.w600,
fontSize: 14,
isCopyable: true,
),
AppText(
model
.allVteHistoryList[
index]
.createdOn !=
null
? AppDateUtils.getHour(
AppDateUtils
.getDateTimeFromString(model
.allVteHistoryList[
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)
.VTE_Type +
" : ",
fontSize: 12,
),
Expanded(
child: AppText(
model
.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,
isCopyable: true,
),
),
]),
SizedBox(
height: 8,
),
Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
AppText(
"Ambulation Protocol : ",
fontSize: 12,
),
Expanded(
child: AppText(
model
.allVteHistoryList[
index]
.ambulationProtocol,
fontSize: 12,
isCopyable: true,
),
),
])
],
),
SizedBox(
height: 20,
),
],
),
),
);
}),
),
),
],
),
),
),
);
}
}

@ -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 =>
@ -1735,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<TranslationBase> {

@ -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:

Loading…
Cancel
Save