post Procedure

merge-requests/248/head
hussam al-habibeh 4 years ago
parent 5253c28469
commit dd53a9bd4d

@ -38,22 +38,21 @@ class BaseAppClient {
try {
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
String token = await sharedPref.getString(TOKEN);
if (profile != null) {
if (profile != null) {
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
if (body['DoctorID'] == null)
if (body['DoctorID'] == null)
body['DoctorID'] = doctorProfile?.doctorID;
if (body['DoctorID'] == "")
body['DoctorID'] = null;
if( body['EditedBy'] ==null)
if (body['DoctorID'] == "") body['DoctorID'] = null;
if (body['EditedBy'] == null)
body['EditedBy'] = doctorProfile?.doctorID;
if (body['ProjectID'] == null) {
body['ProjectID'] = doctorProfile?.projectID;
}
}
if (body['ClinicID'] == null)
body['ClinicID'] = doctorProfile?.clinicID;
}
}
if (body['DoctorID'] == '') {
body['DoctorID'] =null;
body['DoctorID'] = null;
}
if (body['EditedBy'] == '') {
body.remove("EditedBy");
@ -73,8 +72,8 @@ class BaseAppClient {
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
body['PatientOutSA'] = 0; // PATIENT_OUT_SA;
body['VidaAuthTokenID'] = await sharedPref.getString(VIDA_AUTH_TOKEN_ID);
body['VidaRefreshTokenID'] = await sharedPref.getString(VIDA_REFRESH_TOKEN_ID);
body['VidaRefreshTokenID'] =
await sharedPref.getString(VIDA_REFRESH_TOKEN_ID);
print("URL : $url");
print("Body : ${json.encode(body)}");
@ -94,8 +93,7 @@ class BaseAppClient {
if (!parsed['IsAuthenticated']) {
await helpers.logout();
helpers.showErrorToast('Your session expired Please login agian');
} else
if (parsed['MessageStatus'] == 1) {
} else if (parsed['MessageStatus'] == 1) {
if (!parsed['IsAuthenticated'])
onFailure(getError(parsed), statusCode);
else
@ -130,7 +128,7 @@ class BaseAppClient {
}
}
}
if(error == null || error == "null" || error == "null\n"){
if (error == null || error == "null" || error == "null\n") {
return "This server not work probably in this time";
}
return error;

@ -121,7 +121,8 @@ const GET_PRESCRIPTION_LIST =
const POST_PRESCRIPTION_LIST =
'Services/DoctorApplication.svc/REST/PostPrescription';
const GET_PROCEDURE_LIST = 'Services/DoctorApplication.svc/REST/GetProcedure';
const GET_PROCEDURE_LIST =
'Services/DoctorApplication.svc/REST/GetOrderedProcedure';
const POST_PROCEDURE_LIST = 'Services/DoctorApplication.svc/REST/PostProcedure';
const GET_PATIENT_ARRIVAL_LIST =
@ -160,7 +161,11 @@ const GET_CHIEF_COMPLAINT =
const GET_PHYSICAL_EXAM = 'Services/DoctorApplication.svc/REST/GetPhysicalExam';
const GET_PROGRESS_NOTE = 'Services/DoctorApplication.svc/REST/GetProgressNote';
const GET_ASSESSMENT = 'Services/DoctorApplication.svc/REST/GetAssessment';
const GET_ORDER_PROCEDURE = 'Services/DoctorApplication.svc/REST/GetOrderedProcedure';
const GET_ORDER_PROCEDURE =
'Services/DoctorApplication.svc/REST/GetOrderedProcedure';
const GET_LIST_CATEGORISE =
'Services/DoctorApplication.svc/REST/GetProcedureCategories';
const GET_CATEGORISE_PROCEDURE =
'Services/DoctorApplication.svc/REST/GetProcedure';

@ -0,0 +1,138 @@
class GetOrderedProcedureModel {
List<EntityList> entityList;
int rowcount;
dynamic statusMessage;
GetOrderedProcedureModel(
{this.entityList, this.rowcount, this.statusMessage});
GetOrderedProcedureModel.fromJson(Map<String, dynamic> json) {
if (json['entityList'] != null) {
entityList = new List<EntityList>();
json['entityList'].forEach((v) {
entityList.add(new EntityList.fromJson(v));
});
}
rowcount = json['rowcount'];
statusMessage = json['statusMessage'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.entityList != null) {
data['entityList'] = this.entityList.map((v) => v.toJson()).toList();
}
data['rowcount'] = this.rowcount;
data['statusMessage'] = this.statusMessage;
return data;
}
}
class EntityList {
String achiCode;
String appointmentDate;
int appointmentNo;
int categoryID;
String clinicDescription;
String cptCode;
int createdBy;
String createdOn;
String doctorName;
bool isApprovalCreated;
bool isApprovalRequired;
bool isCovered;
bool isInvoiced;
bool isReferralInvoiced;
bool isUncoveredByDoctor;
int lineItemNo;
String orderDate;
int orderNo;
int orderType;
String procedureId;
String procedureName;
String remarks;
String status;
String template;
EntityList(
{this.achiCode,
this.appointmentDate,
this.appointmentNo,
this.categoryID,
this.clinicDescription,
this.cptCode,
this.createdBy,
this.createdOn,
this.doctorName,
this.isApprovalCreated,
this.isApprovalRequired,
this.isCovered,
this.isInvoiced,
this.isReferralInvoiced,
this.isUncoveredByDoctor,
this.lineItemNo,
this.orderDate,
this.orderNo,
this.orderType,
this.procedureId,
this.procedureName,
this.remarks,
this.status,
this.template});
EntityList.fromJson(Map<String, dynamic> json) {
achiCode = json['achiCode'];
appointmentDate = json['appointmentDate'];
appointmentNo = json['appointmentNo'];
categoryID = json['categoryID'];
clinicDescription = json['clinicDescription'];
cptCode = json['cptCode'];
createdBy = json['createdBy'];
createdOn = json['createdOn'];
doctorName = json['doctorName'];
isApprovalCreated = json['isApprovalCreated'];
isApprovalRequired = json['isApprovalRequired'];
isCovered = json['isCovered'];
isInvoiced = json['isInvoiced'];
isReferralInvoiced = json['isReferralInvoiced'];
isUncoveredByDoctor = json['isUncoveredByDoctor'];
lineItemNo = json['lineItemNo'];
orderDate = json['orderDate'];
orderNo = json['orderNo'];
orderType = json['orderType'];
procedureId = json['procedureId'];
procedureName = json['procedureName'];
remarks = json['remarks'];
status = json['status'];
template = json['template'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['achiCode'] = this.achiCode;
data['appointmentDate'] = this.appointmentDate;
data['appointmentNo'] = this.appointmentNo;
data['categoryID'] = this.categoryID;
data['clinicDescription'] = this.clinicDescription;
data['cptCode'] = this.cptCode;
data['createdBy'] = this.createdBy;
data['createdOn'] = this.createdOn;
data['doctorName'] = this.doctorName;
data['isApprovalCreated'] = this.isApprovalCreated;
data['isApprovalRequired'] = this.isApprovalRequired;
data['isCovered'] = this.isCovered;
data['isInvoiced'] = this.isInvoiced;
data['isReferralInvoiced'] = this.isReferralInvoiced;
data['isUncoveredByDoctor'] = this.isUncoveredByDoctor;
data['lineItemNo'] = this.lineItemNo;
data['orderDate'] = this.orderDate;
data['orderNo'] = this.orderNo;
data['orderType'] = this.orderType;
data['procedureId'] = this.procedureId;
data['procedureName'] = this.procedureName;
data['remarks'] = this.remarks;
data['status'] = this.status;
data['template'] = this.template;
return data;
}
}

@ -0,0 +1,18 @@
class GetOrderedProcedureRequestModel {
String vidaAuthTokenID;
int patientMRN;
GetOrderedProcedureRequestModel({this.vidaAuthTokenID, this.patientMRN});
GetOrderedProcedureRequestModel.fromJson(Map<String, dynamic> json) {
vidaAuthTokenID = json['VidaAuthTokenID'];
patientMRN = json['PatientMRN'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['PatientMRN'] = this.patientMRN;
return data;
}
}

@ -0,0 +1,48 @@
class ProcedureCategoryListModel {
List<EntityList> entityList;
int rowcount;
dynamic statusMessage;
ProcedureCategoryListModel(
{this.entityList, this.rowcount, this.statusMessage});
ProcedureCategoryListModel.fromJson(Map<String, dynamic> json) {
if (json['entityList'] != null) {
entityList = new List<EntityList>();
json['entityList'].forEach((v) {
entityList.add(new EntityList.fromJson(v));
});
}
rowcount = json['rowcount'];
statusMessage = json['statusMessage'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.entityList != null) {
data['entityList'] = this.entityList.map((v) => v.toJson()).toList();
}
data['rowcount'] = this.rowcount;
data['statusMessage'] = this.statusMessage;
return data;
}
}
class EntityList {
int categoryId;
String categoryName;
EntityList({this.categoryId, this.categoryName});
EntityList.fromJson(Map<String, dynamic> json) {
categoryId = json['categoryId'];
categoryName = json['categoryName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['categoryId'] = this.categoryId;
data['categoryName'] = this.categoryName;
return data;
}
}

@ -14,12 +14,9 @@ class PrescriptionService extends BaseService {
List<dynamic> doctorsList = [];
List<dynamic> specialityList = [];
PrescriptionReqModel _prescriptionReqModel = PrescriptionReqModel(
//patientMRN: 3120877,
);
PrescriptionReqModel _prescriptionReqModel = PrescriptionReqModel();
SearchDrugRequestModel _drugRequestModel = SearchDrugRequestModel(
search: ["Acetaminophen"],
search: ["Amoxicillin"],
vidaAuthTokenID:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAyIiwianRpIjoiY2QwOWU3MTEtZDEwYy00NjZhLWEwNDctMjc4MDBmNmRkMTYxIiwiZW1haWwiOiIiLCJpZCI6IjEwMDIiLCJOYW1lIjoiVEVNUCAtIERPQ1RPUiIsIkVtcGxveWVlSWQiOiI0NzA5IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiI0NzA5IiwiU0VTU0lPTklEIjoiMjE1OTYyMDMiLCJDbGluaWNJZCI6IjEiLCJyb2xlIjpbIkhFQUQgTlVSU0VTIiwiRE9DVE9SUyIsIkhFQUQgRE9DVE9SUyIsIkFETUlOSVNUUkFUT1JTIiwiUkVDRVBUSU9OSVNUIiwiRVIgTlVSU0UiLCJJVkYgUkVDRVBUSU9OSVNUIiwiRVIgUkVDRVBUSU9OSVNUIiwiUEhBUk1BQ1kgQUNDT1VOVCBTVEFGRiIsIlBIQVJNQUNZIE5VUlNFIiwiSU5QQVRJRU5UIFBIQVJNQUNJU1QiLCJBRE1JU1NJT04gU1RBRkYiLCJBUFBST1ZBTCBTVEFGRiIsIklWRiBET0NUT1IiLCJJVkYgTlVSU0UiLCJJVkYgQ09PUkRJTkFUT1IiLCJJVkYgTEFCIFNUQUZGIiwiQ09OU0VOVCAiLCJNRURJQ0FMIFJFUE9SVCAtIFNJQ0sgTEVBVkUgTUFOQUdFUiJdLCJuYmYiOjE2MDkyNjQ2MTQsImV4cCI6MTYxMDEyODYxNCwiaWF0IjoxNjA5MjY0NjE0fQ.xCJ0jGtSFf36G8uZpdmHVoLfXDyP6e9mBpuOPSlzuio",
);

@ -1,29 +1,37 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_request_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:flutter/foundation.dart';
class ProcedureService extends BaseService {
List<GetProcedureModel> _procedureList = List();
List<GetProcedureModel> get procedureList => _procedureList;
List<GetOrderedProcedureModel> _procedureList = List();
List<GetOrderedProcedureModel> get procedureList => _procedureList;
List<CategoriseProcedureModel> _categoriesList = List();
List<CategoriseProcedureModel> get categoriesList => _categoriesList;
List<Procedures> procedureslist = List();
List<dynamic> categoryList = [];
GetOrderedProcedureRequestModel _getOrderedProcedureRequestModel =
GetOrderedProcedureRequestModel();
GetProcedureReqModel _getProcedureReqModel = GetProcedureReqModel(
clinicId: 17,
pageSize: 10,
pageIndex: 1,
patientMRN: 3120725,
//categoryId: null,
vidaAuthTokenID:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI",
// clinicId: 17,
// pageSize: 10,
// pageIndex: 1,
// //patientMRN: 3120725,
// //categoryId: null,
// vidaAuthTokenID:
// "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI",
//
// search: ["lab"],
);
search: ["lab"],
);
GetProcedureReqModel _getProcedureCategoriseReqModel = GetProcedureReqModel(
clinicId: 0,
pageSize: 100,
@ -33,22 +41,45 @@ class ProcedureService extends BaseService {
vidaAuthTokenID:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI",
search: ["lab"],
//search: ["DENTAL"],
);
Future getProcedure() async {
Future getProcedure({int mrn}) async {
_getOrderedProcedureRequestModel =
GetOrderedProcedureRequestModel(patientMRN: mrn);
hasError = false;
_procedureList.clear();
await baseAppClient.post(GET_PROCEDURE_LIST,
onSuccess: (dynamic response, int statusCode) {
_procedureList.add(GetProcedureModel.fromJson(response['ProcedureList']));
_procedureList.add(
GetOrderedProcedureModel.fromJson(response['OrderedProcedureList']));
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: _getOrderedProcedureRequestModel.toJson());
}
Future getCategory() async {
hasError = false;
await baseAppClient.post(GET_LIST_CATEGORISE,
onSuccess: (dynamic response, int statusCode) {
categoryList = [];
categoryList = response['listProcedureCategories']['entityList'];
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: _getProcedureReqModel.toJson());
}, body: Map());
}
Future getCategories() async {
Future getProcedureCategory({String categoryName}) async {
_getProcedureCategoriseReqModel = GetProcedureReqModel(
search: [categoryName],
patientMRN: 0,
pageIndex: 1,
clinicId: 0,
pageSize: 100,
);
hasError = false;
_categoriesList.clear();
await baseAppClient.post(GET_CATEGORISE_PROCEDURE,

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
import 'package:doctor_app_flutter/core/service/procedure_service.dart';
@ -9,15 +10,17 @@ import 'package:doctor_app_flutter/locator.dart';
class ProcedureViewModel extends BaseViewModel {
bool hasError = false;
ProcedureService _procedureService = locator<ProcedureService>();
List<GetProcedureModel> get procedureList => _procedureService.procedureList;
List<GetOrderedProcedureModel> get procedureList =>
_procedureService.procedureList;
List<CategoriseProcedureModel> get categoriesList =>
_procedureService.categoriesList;
List<dynamic> get categoryList => _procedureService.categoryList;
Future getProcedure() async {
Future getProcedure({int mrn}) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _procedureService.getProcedure();
await _procedureService.getProcedure(mrn: mrn);
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.ErrorLocal);
@ -25,11 +28,11 @@ class ProcedureViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getCategories() async {
Future getProcedureCategory({String categoryName}) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _procedureService.getCategories();
await _procedureService.getProcedureCategory(categoryName: categoryName);
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.ErrorLocal);
@ -37,7 +40,20 @@ class ProcedureViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future postProcedure(PostProcedureReqModel postProcedureReqModel) async {
Future getCategory() async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _procedureService.getCategory();
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future postProcedure(
PostProcedureReqModel postProcedureReqModel, int mrn) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
@ -46,12 +62,13 @@ class ProcedureViewModel extends BaseViewModel {
error = _procedureService.error;
setState(ViewState.ErrorLocal);
} else {
await getProcedure();
await getProcedure(mrn: mrn);
setState(ViewState.Idle);
}
}
Future updateProcedure(PostProcedureReqModel postProcedureReqModel) async {
Future updateProcedure(
PostProcedureReqModel postProcedureReqModel, int mrn) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
@ -61,5 +78,6 @@ class ProcedureViewModel extends BaseViewModel {
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
await getProcedure(mrn: mrn);
}
}

@ -300,7 +300,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
ListSelectDialog dialog =
ListSelectDialog(
list: model.drugsList,
attributeName: 'GenericName',
attributeName: 'Description',
attributeValueId: 'ItemId',
okText:
TranslationBase.of(context)

@ -19,6 +19,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:doctor_app_flutter/widgets/shared/master_key_checkbox_search_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
@ -40,7 +41,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
patient = routeArgs['patient'];
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getProcedure(),
onModelReady: (model) => model.getProcedure(mrn: patient.patientMRN),
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
isShowAppBar: true,
@ -122,8 +123,11 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
children: [
InkWell(
onTap: () {
model.getCategories().then((value) {
addSelectedProcedure(context, model);
model
.getProcedureCategory()
.then((value) {
addSelectedProcedure(
context, model, patient);
});
//model.postPrescription();
@ -208,9 +212,11 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
),
),
onTap: () {
model.getCategories().then((value) {
model
.getProcedureCategory()
.then((value) {
addSelectedProcedure(
context, model);
context, model, patient);
});
//model.postPrescription();
@ -299,7 +305,11 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
15.0,
),
AppText(
'Urgent',
model.procedureList[0].entityList[index]
.orderType ==
1
? 'Regular'
: 'Urgent',
fontSize:
13.0,
color: Colors
@ -337,18 +347,18 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
FontWeight
.w700,
),
Expanded(
child: AppText(
model
.procedureList[
0]
.entityList[
index]
.price
.toString(),
fontSize:
13.0),
)
// Expanded(
// child: AppText(
// model
// .procedureList[
// 0]
// .entityList[
// index]
// .price
// .toString(),
// fontSize:
// 13.0),
// )
],
),
SizedBox(
@ -357,10 +367,19 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
Row(
children: [
AppText(
'Some short remark about the procedure',
fontSize:
13.5,
Expanded(
child:
AppText(
model
.procedureList[
0]
.entityList[
index]
.remarks
.toString(),
fontSize:
13.5,
),
),
],
),
@ -395,7 +414,22 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
0]
.entityList[
index]
.procedureName);
.procedureName,
patient:
patient,
procedureId: model
.procedureList[
0]
.entityList[
index]
.procedureId,
categoreId: model
.procedureList[
0]
.entityList[
index]
.categoryID
.toString());
},
)
],
@ -420,26 +454,36 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
}
}
postProcedure({ProcedureViewModel model, String remarks}) async {
postProcedure(
{ProcedureViewModel model,
String remarks,
PatiantInformtion patient,
List<EntityList> entityList}) async {
PostProcedureReqModel postProcedureReqModel = new PostProcedureReqModel();
List<Controls> controls = List();
List<Procedures> controlsProcedure = List();
postProcedureReqModel.appointmentNo = 2016054575;
postProcedureReqModel.appointmentNo = patient.appointmentNo;
postProcedureReqModel.episodeID = 200012166;
postProcedureReqModel.patientMRN = 3120725;
postProcedureReqModel.episodeID = patient.episodeNo;
postProcedureReqModel.patientMRN = patient.patientMRN;
postProcedureReqModel.vidaAuthTokenID =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI';
controls.add(
Controls(code: remarks.isEmpty ? '' : remarks, controlValue: 'sssssssss'),
Controls(
code: remarks.isEmpty ? 'ssss' : remarks, controlValue: 'sssssssss'),
);
controlsProcedure.add(
Procedures(category: "02", procedure: "02011009", controls: controls));
entityList.forEach((element) {
controlsProcedure.add(Procedures(
category: element.categoryID,
procedure: element.procedureId,
controls: controls));
});
postProcedureReqModel.procedures = controlsProcedure;
await model.postProcedure(postProcedureReqModel);
await model.postProcedure(postProcedureReqModel, patient.patientMRN);
if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error);
@ -449,15 +493,19 @@ postProcedure({ProcedureViewModel model, String remarks}) async {
}
updateProcedure(
{ProcedureViewModel model, String remarks, String procedureId}) async {
{ProcedureViewModel model,
String remarks,
String procedureId,
PatiantInformtion patient,
String categorieId}) async {
PostProcedureReqModel updateProcedureReqModel = new PostProcedureReqModel();
List<Controls> controls = List();
List<Procedures> controlsProcedure = List();
updateProcedureReqModel.appointmentNo = 2016054575;
updateProcedureReqModel.appointmentNo = patient.appointmentNo;
updateProcedureReqModel.episodeID = 200012166;
updateProcedureReqModel.patientMRN = 3120725;
updateProcedureReqModel.episodeID = patient.episodeNo;
updateProcedureReqModel.patientMRN = patient.patientMRN;
updateProcedureReqModel.vidaAuthTokenID =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI';
@ -467,11 +515,11 @@ updateProcedure(
controlValue: 'Testing',
),
);
controlsProcedure.add(
Procedures(category: "02", procedure: "02011002", controls: controls));
controlsProcedure.add(Procedures(
category: categorieId, procedure: procedureId, controls: controls));
updateProcedureReqModel.procedures = controlsProcedure;
await model.updateProcedure(updateProcedureReqModel);
await model.updateProcedure(updateProcedureReqModel, patient.patientMRN);
if (model.state == ViewState.ErrorLocal) {
helpers.showErrorToast(model.error);
@ -480,114 +528,176 @@ updateProcedure(
}
}
void addSelectedProcedure(context, ProcedureViewModel model) {
void addSelectedProcedure(
context, ProcedureViewModel model, PatiantInformtion patient) {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (BuildContext bc) {
return AddSelectedProcedure(
model: model,
patient: patient,
);
});
}
class AddSelectedProcedure extends StatefulWidget {
final ProcedureViewModel model;
final PatiantInformtion patient;
const AddSelectedProcedure({Key key, this.model}) : super(key: key);
const AddSelectedProcedure({Key key, this.model, this.patient})
: super(key: key);
@override
_AddSelectedProcedureState createState() => _AddSelectedProcedureState();
_AddSelectedProcedureState createState() =>
_AddSelectedProcedureState(patient: patient, model: model);
}
class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
ProcedureViewModel model;
PatiantInformtion patient;
_AddSelectedProcedureState({this.patient, this.model});
TextEditingController procedureController = TextEditingController();
TextEditingController remarksController = TextEditingController();
List<EntityList> entityList = List();
dynamic selectedCategory;
@override
Widget build(BuildContext context) {
return NetworkBaseView(
baseViewModel: widget.model,
child: SingleChildScrollView(
child: Container(
height: 810,
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
'Select Procedure'.toUpperCase(),
fontWeight: FontWeight.w900,
),
if (widget.model.categoriesList.length != 0)
EntityListCheckboxSearchWidget(
model: widget.model,
masterList: widget.model.categoriesList[0].entityList,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected: (master) =>
isEntityListSelected(master),
final screenSize = MediaQuery.of(context).size;
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getCategory(),
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
NetworkBaseView(
baseViewModel: model,
child: SingleChildScrollView(
child: Container(
height: 810,
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
'Select Procedure'.toUpperCase(),
fontWeight: FontWeight.w900,
),
SizedBox(
height: 15.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: HexColor("#CCCCCC"))),
child: TextFields(
hintText: 'Order Type'.toUpperCase(),
controller: procedureController,
Container(
height: screenSize.height * 0.070,
child: InkWell(
onTap: model.categoryList != null &&
model.categoryList.length > 0
? () {
ListSelectDialog dialog = ListSelectDialog(
list: model.categoryList,
attributeName: 'categoryName',
attributeValueId: 'categoryId',
okText: TranslationBase.of(context).ok,
okFunction: (selectedValue) {
setState(() {
selectedCategory = selectedValue;
model.getProcedureCategory(
categoryName:
selectedCategory['categoryName']);
});
},
);
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return dialog;
},
);
//model.getProcedureCategory();
}
: null,
child: TextField(
decoration: textFieldSelectorDecoration(
'Procedure Categorey',
selectedCategory != null
? selectedCategory['categoryName']
: null,
true,
suffixIcon: Icon(
Icons.search,
color: Colors.black,
)),
enabled: false,
),
),
SizedBox(
height: 15.0,
),
TextFields(
hintText: 'Remarks',
controller: remarksController,
minLines: 3,
maxLines: 5,
),
SizedBox(
height: 50.0,
),
if (widget.model.categoriesList.length != 0)
EntityListCheckboxSearchWidget(
model: widget.model,
masterList: widget.model.categoriesList[0].entityList,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected: (master) =>
isEntityListSelected(master),
),
Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'add Selected Procedures'.toUpperCase(),
onPressed: () {
Navigator.pop(context);
postProcedure(
model: widget.model,
remarks: remarksController.text);
},
),
],
SizedBox(
height: 15.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: HexColor("#CCCCCC"))),
child: TextFields(
hintText: 'Order Type'.toUpperCase(),
controller: procedureController,
),
),
),
],
)
],
SizedBox(
height: 15.0,
),
TextFields(
hintText: 'Remarks',
controller: remarksController,
minLines: 3,
maxLines: 5,
),
SizedBox(
height: 50.0,
),
Container(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'add Selected Procedures'.toUpperCase(),
onPressed: () {
Navigator.pop(context);
postProcedure(
entityList: entityList,
patient: patient,
model: widget.model,
remarks: remarksController.text);
},
),
],
),
),
],
)
],
),
),
),
),
@ -603,10 +713,46 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
}
return false;
}
InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown,
{Icon suffixIcon}) {
return InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),
borderRadius: BorderRadius.circular(8),
),
hintText: selectedText != null ? selectedText : hintText,
suffixIcon: isDropDown
? suffixIcon != null
? suffixIcon
: Icon(
Icons.arrow_drop_down,
color: Colors.black,
)
: null,
hintStyle: TextStyle(
fontSize: 14,
color: Colors.grey.shade600,
),
);
}
}
void updateProcedureForm(context, {String procedureName}) {
ProcedureViewModel procedureViewModel = ProcedureViewModel();
void updateProcedureForm(context,
{String procedureName,
PatiantInformtion patient,
String procedureId,
String categoreId}) {
ProcedureViewModel model = ProcedureViewModel();
TextEditingController remarksController = TextEditingController();
TextEditingController orderController = TextEditingController();
showModalBottomSheet(
@ -666,7 +812,10 @@ void updateProcedureForm(context, {String procedureName}) {
onPressed: () {
Navigator.pop(context);
updateProcedure(
model: procedureViewModel,
categorieId: categoreId,
procedureId: procedureId,
patient: patient,
model: model,
remarks: remarksController.text);
// authorizationForm(context);
},

Loading…
Cancel
Save