complete refer patient

merge-requests/111/head
ibrahim albitar 4 years ago
parent 4a8b97b189
commit 480c64d25a

@ -1,3 +1,5 @@
import 'package:flutter/cupertino.dart';
class ReferToDoctorRequest {
/*
@ -64,27 +66,27 @@ class ReferToDoctorRequest {
*/
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,
{@required this.projectID,
@required this.admissionNo,
@required this.roomID ,
@required this.referralClinic,
@required this.referralDoctor ,
@required this.createdBy,
@required this.editedBy ,
@required this.patientID,
@required this.patientTypeID,
@required this.referringClinic,
@required this.referringDoctor,
@required this.referringDoctorRemarks,
@required this.priority ,
@required this.frequency,
@required 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,
@required this.tokenID,
this.sessionID = "JBXRsDl37L",
this.isLoginForDoctorApp = true,
this.patientOutSA = false});

@ -308,12 +308,10 @@ class PatientsProvider with ChangeNotifier {
isError = false;
error = "";
notifyListeners();
await BaseAppClient.post(
'Patients.svc/REST/GetPrescriptionReport',
await BaseAppClient.post('Patients.svc/REST/GetPrescriptionReport',
onSuccess: (dynamic response, int statusCode) {
response['ListPRM'].forEach((v) {
prescriptionReport
.add(PrescriptionReport.fromJson(v));
prescriptionReport.add(PrescriptionReport.fromJson(v));
});
isError = false;
isLoading = false;
@ -626,38 +624,46 @@ class PatientsProvider with ChangeNotifier {
*@desc: referToDoctor
*/
referToDoctor(
int selectedDoctorID,
int selectedClinicID,
String selectedReferralFrequancyID,
{String selectedDoctorID,
String selectedClinicID,
int admissionNo,
String extension,
String doctorRemark) async {
String priority,
String frequency,
String referringDoctorRemarks,
int patientID,
int patientTypeID,
String roomID,
int projectID}) async {
setBasicData();
try {
if (await Helpers.checkConnection()) {
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);
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 =
_referToDoctorRequest = ReferToDoctorRequest(
projectID: projectID,
admissionNo: admissionNo,
roomID: roomID,
referralClinic: selectedClinicID.toString(),
referralDoctor: selectedDoctorID.toString(),
createdBy: doctorID,
editedBy: doctorID,
patientID: patientID,
patientTypeID: patientTypeID,
referringClinic: clinicId,
referringDoctor: doctorID,
referringDoctorRemarks: referringDoctorRemarks,
priority: priority,
frequency: frequency,
extension: extension,
tokenID: token);
final response = await AppClient.post(PATIENT_REFER_TO_DOCTOR_URL,
body: json.encode(_referralFrequencyRequest));
body: json.encode(_referToDoctorRequest));
final int statusCode = response.statusCode;
isLoading = false;
@ -668,7 +674,7 @@ class PatientsProvider with ChangeNotifier {
var res = json.decode(response.body);
print('$res');
if (res['MessageStatus'] == 1) {
patientProgressNoteList = res['List_GetPregressNoteForInPatient'];
print('Done : /n $res');
} else {
isError = true;
error = res['ErrorMessage'] ?? res['ErrorEndUserMessage'];
@ -684,8 +690,4 @@ class PatientsProvider with ChangeNotifier {
handelCatchErrorCase(err);
}
}
}

@ -1,6 +1,13 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
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:flutter/scheduler.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../../config/size_config.dart';
import '../../../providers/patients_provider.dart';
@ -29,13 +36,22 @@ class _ReferPatientState extends State<ReferPatientScreen> {
var doctorsList;
var clinicsList;
var referralFrequancyList;
final _controller = TextEditingController();
final _remarksController = TextEditingController();
final _extController = TextEditingController();
var _isInit = true;
var clinicId;
var doctorId;
var freqId;
String _selectedClinic;
String _selectedDoctor;
String _selectedReferralFrequancy;
List<String> _priorities = ['Very Urgent', 'Urgent', 'Routine'];
int _activePriority = 2;
String _priorityTime;
@override
void didChangeDependencies() {
super.didChangeDependencies();
@ -54,18 +70,28 @@ class _ReferPatientState extends State<ReferPatientScreen> {
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "Progress Note",
appBarTitle: "Refer Patient",
body: patientsProv.isLoading
? DrAppCircularProgressIndeicator()
: patientsProv.isError
? DrAppEmbeddedError(error: patientsProv.error)
: clinicsList == null
? DrAppEmbeddedError(
error: 'You don\'t have any Progress Note')
: Column(
error: 'Something Wrong!')
: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
"Clinic",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer(
margin: 0,
margin: 10,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
@ -113,7 +139,7 @@ class _ReferPatientState extends State<ReferPatientScreen> {
i['ClinicDescription']
.toString()
.contains(_selectedClinic));
var clinicId =
clinicId =
clinicInfo['ClinicID'].toString();
patientsProv.getDoctorsList(clinicId);
})
@ -136,8 +162,16 @@ class _ReferPatientState extends State<ReferPatientScreen> {
),
),
//--------------------------------------------------------------------//
AppText(
"Doctor",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer(
margin: 0,
margin: 10,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
@ -179,6 +213,13 @@ class _ReferPatientState extends State<ReferPatientScreen> {
onChanged: (newValue) => {
setState(() {
_selectedDoctor = newValue;
var doctorInfo =
doctorsList.singleWhere((i) =>
i['DoctorName']
.toString()
.contains(_selectedDoctor));
doctorId =
doctorInfo['DoctorID'].toString();
})
},
items: patientsProv
@ -198,8 +239,49 @@ class _ReferPatientState extends State<ReferPatientScreen> {
),
),
), //-----------------------------///
AppText(
"Ext#",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: AppTextFormField(
hintText: "Ext#",
controller: _extController,
inputFormatter: ONLY_NUMBERS,
textInputType: TextInputType.number,
onChanged: (value) => {},
),
),
AppText(
"Priority",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
priorityBar(context),
AppText(
"Replay Before: " + getPriority(),
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
AppText(
"Referral Frequency",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
RoundedContainer(
margin: 0,
margin: 10,
showBorder: true,
raduis: 30,
borderColor: Color(0xff707070),
@ -241,6 +323,13 @@ class _ReferPatientState extends State<ReferPatientScreen> {
onChanged: (newValue) => {
setState(() {
_selectedReferralFrequancy = newValue;
var freqInfo =
referralFrequancyList.singleWhere((i) =>
i['Description']
.toString()
.contains(_selectedReferralFrequancy));
freqId =
freqInfo['ParameterCode'].toString();
})
},
items: patientsProv
@ -260,8 +349,131 @@ class _ReferPatientState extends State<ReferPatientScreen> {
),
),
),
AppText(
"Clinical Details and Remarks",
fontSize: 18,
fontWeight: FontWeight.bold,
marginLeft: 15,
marginTop: 15,
),
Padding(
padding: const EdgeInsets.all(10.0),
child: AppTextFormField(
hintText: "Remarks",
controller: _remarksController,
inputFormatter: ONLY_LETTERS,
textInputType: TextInputType.text,
onChanged: (value) => {},
),
),
Padding(
padding: const EdgeInsets.all(20.0),
child: AppButton(title: "Send", color: Color(PRIMARY_COLOR),onPressed: ()=>{
referToDoctor()
},),
)
],
),
),
);
}
Widget priorityBar(BuildContext _context) {
return Container(
height: MediaQuery.of(context).size.height * 0.065,
width: SizeConfig.screenWidth * 0.9,
margin: EdgeInsets.only(top: 10),
decoration: BoxDecoration(
color: Color(0Xffffffff), borderRadius: BorderRadius.circular(20)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
children: _priorities.map((item) {
bool _isActive = _priorities[_activePriority] == item ? true : false;
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
InkWell(
child: Center(
child: Container(
height: 40,
width: 90,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(50),
color: _isActive ? Hexcolor("#B8382B") : Colors.white,
),
child: Center(
child: Text(
item,
style: TextStyle(
fontSize: 12,
color: _isActive
? Colors.white
: Colors.black, //Colors.black,
// backgroundColor:_isActive
// ? Hexcolor("#B8382B")
// : Colors.white,//sideColor,
fontWeight: FontWeight.bold,
),
),
)),
),
onTap: () {
print(_priorities.indexOf(item));
setState(() {
_activePriority = _priorities.indexOf(item);
});
}),
_isActive
? Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white),
alignment: Alignment.center,
height: 3,
width: 90,
)
: Container()
]);
}).toList(),
),
);
}
String getPriority() {
DateTime date = DateTime.now();
switch (_activePriority) {
case 0:
date = date.add(new Duration(hours: 3));
break;
case 1:
date = date.add(new Duration(hours: 6));
break;
case 2:
date = date.add(new Duration(days: 1));
break;
}
var format = DateFormat('yyyy/mm/dd HH:mm a');
var time = format.format(date);
print(time);
return time;
}
void referToDoctor(){
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
patientsProv.referToDoctor(
extension: _extController.value.text,
admissionNo:int.parse( patient.admissionNo),
referringDoctorRemarks: _remarksController.value.text,
frequency: freqId,
patientID: patient.patientId,
patientTypeID: patient.patientType,
priority: (_activePriority + 1).toString(),
roomID: patient.roomId,
selectedClinicID: clinicId.toString(),
selectedDoctorID: doctorId.toString(),
projectID: patient.projectId
);
}
}

Loading…
Cancel
Save