vte assessment

roaa_point10
Elham Rababh 4 years ago
parent 810cda1f9b
commit da63af6db3

@ -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')

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

@ -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> _allDischargeSummaryList = [];
List<VteAssessmentResponseModel> 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());
}
}

@ -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<VteAssessmentService>();
List<VteAssessmentResponseModel> 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);
}
}
}

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

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

@ -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,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<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
//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: <Widget>[
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,
),
],
),
),
);
}),
),
),
],
),
),
),
);
}
}
Loading…
Cancel
Save