refere to doctor

merge-requests/103/head
unknown 4 years ago
parent 01f32a39f6
commit 39cc4fa4bf

@ -1,7 +1,7 @@
{
"commentBox.styles": {
"defaultStyle": {
"commentStartToken": "/* \n *@author: Amjad Amireh \n *@Date:27/4/2020 \n *@param: \n *@return:\n *@desc: ",
"commentStartToken": "/* \n *@author: Ibrahim Albitar \n *@Date:03/06/2020 \n *@param: \n *@return:\n *@desc: ",
"commentEndToken": "\n */",
"leftEdgeToken": " * ",
"rightEdgeToken": "",

@ -9,6 +9,10 @@ const PHARMACY_LIST_URL = "Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient";
const PATIENT_INSURANCE_APPROVALS_URL = "DoctorApplication.svc/REST/GetApprovalStatusForInpatient";
const PATIENT_ORDERS_URL = "DoctorApplication.svc/REST/GetProgressNoteForInPatient";
const PATIENT_REFER_TO_DOCTOR_URL = "DoctorApplication.svc/REST/ReferToDoctor";
const PATIENT_GET_DOCTOR_BY_CLINIC_URL = "DoctorApplication.svc/REST/GetDoctorsByClinicID";
const PATIENT_GET_LIST_REFERAL_URL = "Lists.svc/REST/GetList_STPReferralFrequency";
const PATIENT_GET_CLINIC_BY_PROJECT_URL = "DoctorApplication.svc/REST/GetClinicsByProjectID";
const GET_PROJECTS = 'Lists.svc/REST/GetProjectForDoctorAPP';
const GET_PATIENT_VITAL_SIGN = 'Doctors.svc/REST/Doctor_GetPatientVitalSign';

@ -0,0 +1,80 @@
class ClinicByProjectIdRequest {
/*
*@author: Ibrahim Albitar
*@Date:03/06/2020
*@param:
*@return:
*@desc: ClinicByProjectIdRequest
*/
int projectID;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
int patientTypeID;
/*
{
"ProjectID": 21,
"LanguageID": 2,
"stamp": "2020-06-03T11:18:19.979Z",
"IPAdress": "11.11.11.11",
"VersionID": 1.2,
"Channel": 9,
"TokenID": "gyIQFH4WWEm2Tq7xjYMjsg==",
"SessionID": "JBXRsDl37L",
"IsLoginForDoctorApp": true,
"PatientOutSA": false,
"PatientTypeID": 1
}
*/
ClinicByProjectIdRequest(
{this.projectID,
this.languageID = 2,
this.stamp = "2020-06-03T11:18:19.979Z",
this.iPAdress = "11.11.11.11",
this.versionID = 1.2,
this.channel = 9,
this.tokenID,
this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true,
this.patientOutSA = false,
this.patientTypeID = 1});
ClinicByProjectIdRequest.fromJson(Map<String, dynamic> json) {
projectID = json['ProjectID'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
patientTypeID = json['PatientTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ProjectID'] = this.projectID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID;
return data;
}
}

@ -0,0 +1,86 @@
class DoctorsByClinicIdRequest {
/*
*@author: Ibrahim Albitar
*@Date:03/06/2020
*@param:
*@return:
*@desc: DoctorsByClinicIdRequest
*/
int projectID;
String clinicID;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
int patientTypeID;
/*
{
"ProjectID": 21,
"ClinicID": "0",
"LanguageID": 2,
"stamp": "2020-06-03T11:22:04.702Z",
"IPAdress": "11.11.11.11",
"VersionID": 1.2,
"Channel": 9,
"TokenID": "gyIQFH4WWEm2Tq7xjYMjsg==",
"SessionID": "JBXRsDl37L",
"IsLoginForDoctorApp": true,
"PatientOutSA": false,
"PatientTypeID": 1
}
*/
DoctorsByClinicIdRequest(
{this.projectID,
this.clinicID,
this.languageID = 2,
this.stamp = "2020-06-03T11:22:04.702Z",
this.iPAdress = "11.11.11.11",
this.versionID = 1.2,
this.channel = 9,
this.tokenID,
this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true,
this.patientOutSA = false,
this.patientTypeID = 1});
DoctorsByClinicIdRequest.fromJson(Map<String, dynamic> json) {
projectID = json['ProjectID'];
clinicID = json['ClinicID'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
patientTypeID = json['PatientTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ProjectID'] = this.projectID;
data['ClinicID'] = this.clinicID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID;
return data;
}
}

@ -0,0 +1,75 @@
class STPReferralFrequencyRequest {
/*
*@author: Ibrahim Albitar
*@Date:03/06/2020
*@param:
*@return:
*@desc:
*/
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
int patientTypeID;
/*
{
"LanguageID": 2,
"stamp": "2020-06-03T11:18:19.986Z",
"IPAdress": "11.11.11.11",
"VersionID": 1.2,
"Channel": 9,
"TokenID": "gyIQFH4WWEm2Tq7xjYMjsg==",
"SessionID": "JBXRsDl37L",
"IsLoginForDoctorApp": true,
"PatientOutSA": false,
"PatientTypeID": 1
}
*/
STPReferralFrequencyRequest(
{this.languageID = 2,
this.stamp = "2020-06-03T11:18:19.986Z",
this.iPAdress = "11.11.11.11",
this.versionID = 1.2,
this.channel = 9,
this.tokenID,
this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true,
this.patientOutSA = false,
this.patientTypeID = 1});
STPReferralFrequencyRequest.fromJson(Map<String, dynamic> json) {
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
patientTypeID = json['PatientTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
data['PatientTypeID'] = this.patientTypeID;
return data;
}
}

@ -0,0 +1,147 @@
class ReferToDoctorRequest {
/*
*@author: Ibrahim Albitar
*@Date:03/06/2020
*@param:
*@return:
*@desc: ReferToDoctor
*/
int projectID;
int admissionNo;
String roomID;
String referralClinic;
String referralDoctor;
int createdBy;
int editedBy;
int patientID;
int patientTypeID;
int referringClinic;
int referringDoctor;
String referringDoctorRemarks;
String priority;
String frequency;
String extension;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
/*
{
"ProjectID": 21,
"AdmissionNo": 2020005477,
"RoomID": "ISO-6",
"ReferralClinic": "36",
"ReferralDoctor": "230893",
"CreatedBy": 121814,
"EditedBy": 121814,
"PatientID": 3349491,
"PatientTypeID": 1,
"ReferringClinic": 14,
"ReferringDoctor": 121814,
"ReferringDoctorRemarks": "dfcdfdfdf",
"Priority": "1",
"Frequency": "1",
"Extension": "eeee",
"LanguageID": 2,
"stamp": "2020-06-03T11:26:42.358Z",
"IPAdress": "11.11.11.11",
"VersionID": 1.2,
"Channel": 9,
"TokenID": "gyIQFH4WWEm2Tq7xjYMjsg==",
"SessionID": "JBXRsDl37L",
"IsLoginForDoctorApp": true,
"PatientOutSA": false
}
*/
ReferToDoctorRequest(
{this.projectID,
this.admissionNo,
this.roomID = "ISO-6",
this.referralClinic,
this.referralDoctor ,
this.createdBy,
this.editedBy ,
this.patientID,
this.patientTypeID = 1,
this.referringClinic,
this.referringDoctor,
this.referringDoctorRemarks,
this.priority ,
this.frequency,
this.extension,
this.languageID = 2,
this.stamp = "2020-06-03T11:26:42.358Z",
this.iPAdress = "11.11.11.11",
this.versionID = 1.2,
this.channel = 9,
this.tokenID,
this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true,
this.patientOutSA = false});
ReferToDoctorRequest.fromJson(Map<String, dynamic> json) {
projectID = json['ProjectID'];
admissionNo = json['AdmissionNo'];
roomID = json['RoomID'];
referralClinic = json['ReferralClinic'];
referralDoctor = json['ReferralDoctor'];
createdBy = json['CreatedBy'];
editedBy = json['EditedBy'];
patientID = json['PatientID'];
patientTypeID = json['PatientTypeID'];
referringClinic = json['ReferringClinic'];
referringDoctor = json['ReferringDoctor'];
referringDoctorRemarks = json['ReferringDoctorRemarks'];
priority = json['Priority'];
frequency = json['Frequency'];
extension = json['Extension'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ProjectID'] = this.projectID;
data['AdmissionNo'] = this.admissionNo;
data['RoomID'] = this.roomID;
data['ReferralClinic'] = this.referralClinic;
data['ReferralDoctor'] = this.referralDoctor;
data['CreatedBy'] = this.createdBy;
data['EditedBy'] = this.editedBy;
data['PatientID'] = this.patientID;
data['PatientTypeID'] = this.patientTypeID;
data['ReferringClinic'] = this.referringClinic;
data['ReferringDoctor'] = this.referringDoctor;
data['ReferringDoctorRemarks'] = this.referringDoctorRemarks;
data['Priority'] = this.priority;
data['Frequency'] = this.frequency;
data['Extension'] = this.extension;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
return data;
}
}

@ -5,55 +5,65 @@
*@return:
*@desc:
*/
class PharmaciesItemsRequestModel {
String phrItemName;
int languageID;
String stamp;
String ipAdress;
double versionID;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
int patientTypeID;
String pHRItemName;
int pageIndex = 0;
int pageSize = 20;
double versionID = 5.2;
int channel = 3;
int languageID = 2;
String iPAdress = "10.20.10.20";
String generalid = "Cs2020@2016\$2958";
int patientOutSA = 0;
String sessionID = "KvFJENeAUCxyVdIfEkHw";
bool isDentalAllowedBackend = false;
int deviceTypeID = 2;
PharmaciesItemsRequestModel(
{this.phrItemName = '',
this.patientTypeID = 1,
this.languageID = 2,
this.stamp = '2020-04-23T21:01:21.492Z',
this.ipAdress = '10.20.10.20',
{this.pHRItemName,
this.pageIndex = 0,
this.pageSize = 20,
this.versionID = 5.2,
this.tokenID ,
this.channel = 3,
this.languageID = 2,
this.iPAdress = "10.20.10.20",
this.generalid = "Cs2020@2016\$2958",
this.patientOutSA = 0,
this.sessionID = "KvFJENeAUCxyVdIfEkHw",
this.isLoginForDoctorApp = true,
this.patientOutSA = false});
this.isDentalAllowedBackend = false,
this.deviceTypeID = 2});
PharmaciesItemsRequestModel.fromJson(Map<String, dynamic> json) {
phrItemName = json['PHR_itemName'];
patientTypeID = json['PatientTypeID'];
languageID = json['LanguageID'];
stamp = json['stamp'];
ipAdress = json['IPAdress'];
pHRItemName = json['PHR_itemName'];
pageIndex = json['PageIndex'];
pageSize = json['PageSize'];
versionID = json['VersionID'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
channel = json['Channel'];
languageID = json['LanguageID'];
iPAdress = json['IPAdress'];
generalid = json['generalid'];
patientOutSA = json['PatientOutSA'];
sessionID = json['SessionID'];
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['PHR_itemName'] = this.phrItemName;
data['PatientTypeID'] = this.patientTypeID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.ipAdress;
data['PHR_itemName'] = this.pHRItemName;
data['PageIndex'] = this.pageIndex;
data['PageSize'] = this.pageSize;
data['VersionID'] = this.versionID;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['Channel'] = this.channel;
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
data['PatientOutSA'] = this.patientOutSA;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
return data;
}
}
}

@ -25,7 +25,7 @@ class MedicineProvider with ChangeNotifier {
resetDefaultValues();
try {
if (await Helpers.checkConnection()) {
_itemsRequestModel.phrItemName = itemName;
_itemsRequestModel.pHRItemName = itemName;
final response = await AppClient.post(PHARMACY_ITEMS_URL,
body: json.encode(_itemsRequestModel.toJson()));

@ -2,12 +2,18 @@ import 'dart:convert';
import 'package:doctor_app_flutter/client/app_client.dart';
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/patient/get_clinic_by_project_id_request.dart';
import 'package:doctor_app_flutter/models/patient/get_doctor_by_clinic_id_request.dart';
import 'package:doctor_app_flutter/models/patient/get_list_stp_referral_frequency_request.dart';
import 'package:doctor_app_flutter/models/patient/lab_orders_res_model.dart';
import 'package:doctor_app_flutter/models/patient/lab_result.dart';
import 'package:doctor_app_flutter/models/patient/lab_result_req_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart';
import 'package:doctor_app_flutter/models/patient/radiology_res_model.dart';
import 'package:doctor_app_flutter/models/patient/refer_to_doctor_request.dart';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart';
import 'package:http_interceptor/http_client_with_interceptor.dart';
@ -35,7 +41,6 @@ class PatientsProvider with ChangeNotifier {
List<PrescriptionResModel> patientPrescriptionsList = [];
List<RadiologyResModel> patientRadiologyList = [];
/*@author: ibrahe albitar
*@Date:2/6/2020
*@desc: getPatientPrescriptions
@ -46,8 +51,20 @@ class PatientsProvider with ChangeNotifier {
var patientProgressNoteList = [];
var insuranceApporvalsList = [];
var doctorsList = [];
var clinicsList = [];
var referalFrequancyList = [];
DoctorsByClinicIdRequest _doctorsByClinicIdRequest =
DoctorsByClinicIdRequest();
STPReferralFrequencyRequest _referralFrequencyRequest =
STPReferralFrequencyRequest();
ClinicByProjectIdRequest _clinicByProjectIdRequest =
ClinicByProjectIdRequest();
ReferToDoctorRequest _referToDoctorRequest = ReferToDoctorRequest();
Client client =
HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]);
HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]);
PatiantInformtion _selectedPatient;
@ -220,7 +237,7 @@ class PatientsProvider with ChangeNotifier {
try {
if (await Helpers.checkConnection()) {
final response =
await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient));
await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
@ -279,7 +296,7 @@ class PatientsProvider with ChangeNotifier {
try {
if (await Helpers.checkConnection()) {
final response =
await AppClient.post(GET_RADIOLOGY, body: json.encode(patient));
await AppClient.post(GET_RADIOLOGY, body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
@ -310,7 +327,6 @@ class PatientsProvider with ChangeNotifier {
}
}
getLabResult(LabOrdersResModel labOrdersResModel) async {
labResultList.clear();
isLoading = true;
@ -320,15 +336,14 @@ class PatientsProvider with ChangeNotifier {
requestLabResult.orderNo = labOrdersResModel.orderNo;
requestLabResult.invoiceNo = labOrdersResModel.invoiceNo;
requestLabResult.patientTypeID = labOrdersResModel.patientType;
await BaseAppClient.post(
'DoctorApplication.svc/REST/GetPatientLabResults',
await BaseAppClient.post('DoctorApplication.svc/REST/GetPatientLabResults',
onSuccess: (dynamic response, int statusCode) {
isError = false;
isLoading = false;
response['List_GetLabNormal'].forEach((v) {
labResultList.add(new LabResult.fromJson(v));
});
}, onFailure: (String error, int statusCode) {
isError = false;
isLoading = false;
response['List_GetLabNormal'].forEach((v) {
labResultList.add(new LabResult.fromJson(v));
});
}, onFailure: (String error, int statusCode) {
isError = true;
isLoading = false;
this.error = error;
@ -336,13 +351,12 @@ class PatientsProvider with ChangeNotifier {
notifyListeners();
}
getPatientInsuranceApprovals(patient) async {
setBasicData();
try {
if (await Helpers.checkConnection()) {
final response = await AppClient.post(
PATIENT_INSURANCE_APPROVALS_URL, body: json.encode(patient));
final response = await AppClient.post(PATIENT_INSURANCE_APPROVALS_URL,
body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
@ -371,44 +385,247 @@ class PatientsProvider with ChangeNotifier {
}
}
/*@author: ibrahe albitar
/*@author: ibrahem albitar
*@Date:2/6/2020
*@desc: getPatientPrescriptions
*@desc: getPatientProgressNote
*/
getPatientProgressNote(patient) async {
setBasicData();
try {
if (await Helpers.checkConnection()) {
final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL,
body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Error While Fetching data';
setBasicData();
try {
if (await Helpers.checkConnection()) {
final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL,
body: json.encode(patient));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Error While Fetching data';
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
} else {
isLoading = false;
isError = true;
error = 'Please Check The Internet Connection';
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
}
}
/*@author: ibrahem albitar
*@Date:3/6/2020
*@desc: getDoctorsList
*/
getDoctorsList(String clinicId) async {
String token = await sharedPref.getString(TOKEN);
int projectID = await sharedPref.getInt(PROJECT_ID);
setBasicData();
try {
if (await Helpers.checkConnection()) {
_doctorsByClinicIdRequest.projectID = projectID;
_doctorsByClinicIdRequest.clinicID = clinicId;
_doctorsByClinicIdRequest.tokenID = token;
final response = await AppClient.post(PATIENT_GET_DOCTOR_BY_CLINIC_URL,
body: json.encode(_doctorsByClinicIdRequest));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Error While Fetching data';
} else {
isLoading = false;
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
doctorsList = res['List_Doctors_All'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
} else {
isLoading = false;
isError = true;
error = 'Please Check The Internet Connection';
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
}
}
List getDoctorNameList() {
var doctorNamelist =
doctorsList.map((value) => value['DoctorName'].toString()).toList();
return doctorNamelist;
}
/*@author: ibrahem albitar
*@Date:3/6/2020
*@desc: getClinicsList
*/
getClinicsList() async {
String token = await sharedPref.getString(TOKEN);
setBasicData();
try {
if (await Helpers.checkConnection()) {
int projectID = await sharedPref.getInt(PROJECT_ID);
_clinicByProjectIdRequest.projectID = projectID;
_clinicByProjectIdRequest.tokenID = token;
final response = await AppClient.post(PATIENT_GET_CLINIC_BY_PROJECT_URL,
body: json.encode(_clinicByProjectIdRequest));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Please Check The Internet Connection';
error = 'Error While Fetching data';
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
clinicsList = res['List_Clinic_All'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
} else {
isLoading = false;
isError = true;
error = 'Please Check The Internet Connection';
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
}
}
List getClinicNameList() {
var clinicsNameslist = clinicsList
.map((value) => value['ClinicDescription'].toString())
.toList();
return clinicsNameslist;
}
/*@author: ibrahem albitar
*@Date:3/6/2020
*@desc: getReferralFrequancyList
*/
getReferralFrequancyList() async {
String token = await sharedPref.getString(TOKEN);
setBasicData();
try {
if (await Helpers.checkConnection()) {
_referralFrequencyRequest.tokenID = token;
final response = await AppClient.post(PATIENT_GET_LIST_REFERAL_URL,
body: json.encode(_referralFrequencyRequest));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Error While Fetching data';
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
referalFrequancyList = res['list_STPReferralFrequency'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
} else {
isLoading = false;
isError = true;
error = 'Please Check The Internet Connection';
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
}
}
List getReferralNamesList() {
var referralNamesList = referalFrequancyList
.map((value) => value['Description'].toString())
.toList();
return referralNamesList;
}
/*@author: ibrahem albitar
*@Date:3/6/2020
*@desc: referToDoctor
*/
referToDoctor(
int selectedDoctorID,
int selectedClinicID,
String selectedReferralFrequancyID,
int admissionNo,
String extension,
String doctorRemark) async {
String token = await sharedPref.getString(TOKEN);
int projectID = await sharedPref.getInt(PROJECT_ID);
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
DoctorProfileModel doctorProfile = new DoctorProfileModel.fromJson(profile);
int doctorID = doctorProfile.doctorID;
int clinicId = doctorProfile.clinicID;
setBasicData();
try {
if (await Helpers.checkConnection()) {
// _referToDoctorRequest.tokenID = token;
// _referToDoctorRequest.admissionNo = admissionNo;
// _referToDoctorRequest.projectID = projectID;
// _referToDoctorRequest.tokenID = token;
// _referToDoctorRequest.extension = extension;
// _referToDoctorRequest.frequency = selectedReferralFrequancyID;
// _referToDoctorRequest.patientID =
// _referToDoctorRequest.priority =
// _referToDoctorRequest.referralClinic =
// _referToDoctorRequest.referralDoctor =
// _referToDoctorRequest.referringDoctorRemarks =
// _referToDoctorRequest.roomID =
// _referToDoctorRequest.referringClinic =
// _referToDoctorRequest.referringDoctor =
final response = await AppClient.post(PATIENT_REFER_TO_DOCTOR_URL,
body: json.encode(_referralFrequencyRequest));
final int statusCode = response.statusCode;
isLoading = false;
if (statusCode < 200 || statusCode >= 400 || json == null) {
isError = true;
error = 'Error While Fetching data';
} else {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
}
}
} else {
isLoading = false;
isError = true;
error = 'Please Check The Internet Connection';
}
notifyListeners();
} catch (err) {
handelCatchErrorCase(err);
}
}
}

@ -3,6 +3,7 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/screens/patients/profile/insurance_approvals_screen.dart';
import 'package:doctor_app_flutter/screens/patients/profile/patient_orders_screen.dart';
import 'package:doctor_app_flutter/screens/patients/profile/progress_note_screen.dart';
import 'package:doctor_app_flutter/screens/patients/profile/refer_patient_screen.dart';
import './screens/patients/profile/vital_sign/body_measurements_screen.dart';
@ -56,6 +57,7 @@ const String LAB_ORDERS = 'patients/lab_orders';
const String PRESCRIPTIONS = 'patients/prescription';
const String RADIOLOGY = 'patients/radiology';
const String PROGRESS_NOTE = 'patients/progress-note';
const String REFER_PATIENT = 'patients/refer-patient';
const String PATIENT_ORDERS = 'patients/patient_orders';
const String PATIENT_INSURANCE_APPROVALS = 'patients/patient_insurance_approvals';
const String VITAL_SIGN_DETAILS = 'patients/vital-sign-details';
@ -88,6 +90,7 @@ var routes = {
PRESCRIPTIONS: (_) => PrescriptionScreen(),
RADIOLOGY: (_) => RadiologyScreen(),
PROGRESS_NOTE: (_) => ProgressNoteScreen(),
REFER_PATIENT: (_)=> ReferPatientScreen(),
PATIENT_ORDERS: (_) => PatientsOrdersScreen(),
PATIENT_INSURANCE_APPROVALS: (_) => InsuranceApprovalsScreen(),
VITAL_SIGN_DETAILS: (_) => VitalSignDetailsScreen(),

@ -0,0 +1,269 @@
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../config/size_config.dart';
import '../../../providers/patients_provider.dart';
import '../../../util/dr_app_shared_pref.dart';
import '../../../widgets/shared/app_scaffold_widget.dart';
import '../../../widgets/shared/app_texts_widget.dart';
import '../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
/*
*@author: ibrahim albitar
*@Date:4/6/2020
*@param:
*@return:
*@desc:
*/
class ReferPatientScreen extends StatefulWidget {
@override
_ReferPatientState createState() => _ReferPatientState();
}
class _ReferPatientState extends State<ReferPatientScreen> {
PatientsProvider patientsProv;
var doctorsList;
var clinicsList;
var referralFrequancyList;
final _controller = TextEditingController();
var _isInit = true;
String _selectedClinic;
String _selectedDoctor;
String _selectedReferralFrequancy;
@override
void didChangeDependencies() {
super.didChangeDependencies();
if (_isInit) {
patientsProv = Provider.of<PatientsProvider>(context);
patientsProv.getClinicsList();
patientsProv.getReferralFrequancyList();
setState(() {
clinicsList = patientsProv.clinicsList;
referralFrequancyList = patientsProv.referalFrequancyList;
});
}
_isInit = false;
}
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Progress Note",
showAppDrawer: false,
showBottomBar: false,
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: clinicsList == null
? DrAppEmbeddedError(
error: 'You don\'t have any Progress Note')
: Column(
children: <Widget>[
RoundedContainer(
margin: 0,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
width: double.infinity,
child: Padding(
padding: EdgeInsets.only(
top: SizeConfig.widthMultiplier * 0.9,
bottom: SizeConfig.widthMultiplier * 0.9,
right: SizeConfig.widthMultiplier * 3,
left: SizeConfig.widthMultiplier * 3),
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
// add Expanded to have your dropdown button fill remaining space
child: DropdownButton(
isExpanded: true,
value: _selectedClinic,
iconSize: 40,
elevation: 16,
selectedItemBuilder:
(BuildContext context) {
return patientsProv
.getClinicNameList()
.map((item) {
return Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
AppText(
item,
fontSize:
SizeConfig.textMultiplier *
2.1,
),
],
);
}).toList();
},
onChanged: (newValue) => {
setState(() {
_selectedDoctor = null;
_selectedClinic = newValue;
var clinicInfo =
clinicsList.singleWhere((i) =>
i['ClinicDescription']
.toString()
.contains(_selectedClinic));
var clinicId =
clinicInfo['ClinicID'].toString();
patientsProv.getDoctorsList(clinicId);
})
},
items: patientsProv
.getClinicNameList()
.map((item) {
return DropdownMenuItem(
value: item.toString(),
child: Text(
item,
textAlign: TextAlign.end,
),
);
}).toList(),
),
),
],
),
),
),
//--------------------------------------------------------------------//
RoundedContainer(
margin: 0,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
width: double.infinity,
child: Padding(
padding: EdgeInsets.only(
top: SizeConfig.widthMultiplier * 0.9,
bottom: SizeConfig.widthMultiplier * 0.9,
right: SizeConfig.widthMultiplier * 3,
left: SizeConfig.widthMultiplier * 3),
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
// add Expanded to have your dropdown button fill remaining space
child: DropdownButton(
isExpanded: true,
value: _selectedDoctor,
iconSize: 40,
elevation: 16,
selectedItemBuilder:
(BuildContext context) {
return patientsProv
.getDoctorNameList()
.map((item) {
return Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
AppText(
item,
fontSize:
SizeConfig.textMultiplier *
2.1,
),
],
);
}).toList();
},
onChanged: (newValue) => {
setState(() {
_selectedDoctor = newValue;
})
},
items: patientsProv
.getDoctorNameList()
.map((item) {
return DropdownMenuItem(
value: item.toString(),
child: Text(
item,
textAlign: TextAlign.end,
),
);
}).toList(),
),
),
],
),
),
), //-----------------------------///
RoundedContainer(
margin: 0,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
width: double.infinity,
child: Padding(
padding: EdgeInsets.only(
top: SizeConfig.widthMultiplier * 0.9,
bottom: SizeConfig.widthMultiplier * 0.9,
right: SizeConfig.widthMultiplier * 3,
left: SizeConfig.widthMultiplier * 3),
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
// add Expanded to have your dropdown button fill remaining space
child: DropdownButton(
isExpanded: true,
value: _selectedReferralFrequancy,
iconSize: 40,
elevation: 16,
selectedItemBuilder:
(BuildContext context) {
return patientsProv
.getReferralNamesList()
.map((item) {
return Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
AppText(
item,
fontSize:
SizeConfig.textMultiplier *
2.1,
),
],
);
}).toList();
},
onChanged: (newValue) => {
setState(() {
_selectedReferralFrequancy = newValue;
})
},
items: patientsProv
.getReferralNamesList()
.map((item) {
return DropdownMenuItem(
value: item.toString(),
child: Text(
item,
textAlign: TextAlign.end,
),
);
}).toList(),
),
),
],
),
),
),
],
),
);
}
}

@ -127,7 +127,7 @@ class ProfileMedicalInfoWidget extends StatelessWidget {
visible: selectedPatientType != 0 && selectedPatientType != 5 && selectedPatientType != 2,
child: InkWell(
onTap: () {
navigator(context, PRESCRIPTIONS);
navigator(context, REFER_PATIENT);
},
child: CircleAvatarWidget(
des: 'Refer Patient ',

Loading…
Cancel
Save