Compare commits

...

6 Commits

@ -4,13 +4,15 @@ class GetSickLeaveDoctorRequestModel {
int status; int status;
String vidaAuthTokenID; String vidaAuthTokenID;
String vidaRefreshTokenID; String vidaRefreshTokenID;
int admissionNo;
GetSickLeaveDoctorRequestModel( GetSickLeaveDoctorRequestModel(
{this.patientMRN, {this.patientMRN,
this.appointmentNo, this.appointmentNo,
this.status, this.status,
this.vidaAuthTokenID, this.vidaAuthTokenID,
this.vidaRefreshTokenID}); this.vidaRefreshTokenID,
this.admissionNo});
GetSickLeaveDoctorRequestModel.fromJson(Map<String, dynamic> json) { GetSickLeaveDoctorRequestModel.fromJson(Map<String, dynamic> json) {
patientMRN = json['PatientMRN']; patientMRN = json['PatientMRN'];
@ -18,6 +20,7 @@ class GetSickLeaveDoctorRequestModel {
status = json['status']; status = json['status'];
vidaAuthTokenID = json['VidaAuthTokenID']; vidaAuthTokenID = json['VidaAuthTokenID'];
vidaRefreshTokenID = json['VidaRefreshTokenID']; vidaRefreshTokenID = json['VidaRefreshTokenID'];
admissionNo = json['AdmissionNo'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -27,6 +30,7 @@ class GetSickLeaveDoctorRequestModel {
data['status'] = this.status; data['status'] = this.status;
data['VidaAuthTokenID'] = this.vidaAuthTokenID; data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID; data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
data['AdmissionNo'] = this.admissionNo;
return data; return data;
} }
} }

@ -135,9 +135,9 @@ class SickLeaveService extends BaseService {
); );
} }
Future getSickLeaveDoctor(patientMRN) async { Future getSickLeaveDoctor(patientMRN, {int admissionNo}) async {
_sickLeaveDoctorRequestModel = _sickLeaveDoctorRequestModel =
GetSickLeaveDoctorRequestModel(patientMRN: patientMRN); GetSickLeaveDoctorRequestModel(patientMRN: patientMRN, admissionNo: admissionNo);
hasError = false; hasError = false;
getAllSickLeaveDoctor = []; getAllSickLeaveDoctor = [];
getAllSickLeaveDoctor.clear(); getAllSickLeaveDoctor.clear();

@ -1,10 +1,10 @@
import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/service/patient/patient_service.dart';
import 'package:doctor_app_flutter/core/service/patient_medical_file/sick_leave/sickleave_service.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/model/sickleave/add_sickleave_request.dart'; import 'package:doctor_app_flutter/core/model/sickleave/add_sickleave_request.dart';
import 'package:doctor_app_flutter/core/model/sickleave/get_all_sickleave_response.dart'; import 'package:doctor_app_flutter/core/model/sickleave/get_all_sickleave_response.dart';
import 'package:doctor_app_flutter/core/model/sickleave/sick_leave_statisitics_model.dart'; import 'package:doctor_app_flutter/core/model/sickleave/sick_leave_statisitics_model.dart';
import 'package:doctor_app_flutter/core/service/patient/patient_service.dart';
import 'package:doctor_app_flutter/core/service/patient_medical_file/sick_leave/sickleave_service.dart';
import '../../locator.dart'; import '../../locator.dart';
import 'base_view_model.dart'; import 'base_view_model.dart';
@ -88,7 +88,7 @@ class SickLeaveViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getSickLeaveForPatient(PatiantInformtion patient, Future getSickLeaveForPatient(PatiantInformtion patient, bool isInpatient,
{bool isLocalBusy = false}) async { {bool isLocalBusy = false}) async {
if (isLocalBusy) if (isLocalBusy)
setState(ViewState.BusyLocal); setState(ViewState.BusyLocal);
@ -97,7 +97,8 @@ class SickLeaveViewModel extends BaseViewModel {
var patientMRN = patient.patientMRN ?? patient.patientId; var patientMRN = patient.patientMRN ?? patient.patientId;
var services = [ var services = [
_sickLeaveService.getSickLeavePatient(patientMRN), _sickLeaveService.getSickLeavePatient(patientMRN),
_sickLeaveService.getSickLeaveDoctor(patientMRN) _sickLeaveService.getSickLeaveDoctor(patientMRN,
admissionNo: isInpatient ? 2019008644 : 0)
]; ];
final results = await Future.wait(services); final results = await Future.wait(services);

@ -30,9 +30,10 @@ class AddPatientSickLeaveScreen extends StatefulWidget {
final patientMRN; final patientMRN;
final PatiantInformtion patient; final PatiantInformtion patient;
final SickLeaveViewModel previousModel; final SickLeaveViewModel previousModel;
final bool isInpatient;
AddPatientSickLeaveScreen( AddPatientSickLeaveScreen(
{this.appointmentNo, this.patientMRN, this.patient, this.previousModel}); {this.appointmentNo, this.patientMRN, this.patient, this.previousModel, this.isInpatient});
@override @override
_AddPatientSickLeaveScreenState createState() => _AddPatientSickLeaveScreenState createState() =>
@ -322,7 +323,7 @@ class _AddPatientSickLeaveScreenState extends State<AddPatientSickLeaveScreen> {
Utils.showErrorToast(model.error); Utils.showErrorToast(model.error);
} else { } else {
await widget.previousModel await widget.previousModel
.getSickLeaveForPatient(widget.patient, isLocalBusy: true); .getSickLeaveForPatient(widget.patient, widget.isInpatient, isLocalBusy: true);
DrAppToastMsg.showSuccesToast( DrAppToastMsg.showSuccesToast(
TranslationBase.of(context).replySuccessfully); TranslationBase.of(context).replySuccessfully);
Navigator.of(context).pop(); Navigator.of(context).pop();

@ -34,7 +34,7 @@ class PatientSickLeaveScreen extends StatelessWidget {
bool isInpatient = routeArgs['isInpatient']; bool isInpatient = routeArgs['isInpatient'];
return BaseView<SickLeaveViewModel>( return BaseView<SickLeaveViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
await model.getSickLeaveForPatient(patient); await model.getSickLeaveForPatient(patient, isInpatient);
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
@ -45,8 +45,7 @@ class PatientSickLeaveScreen extends StatelessWidget {
isInpatient: isInpatient, isInpatient: isInpatient,
), ),
body: Column(children: [ body: Column(children: [
patient.patientStatusType == 43 Column(
? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Padding( Padding(
@ -91,13 +90,11 @@ class PatientSickLeaveScreen extends StatelessWidget {
"Leave Screen", "Leave Screen",
eventAction: "apply For Sick Leave", eventAction: "apply For Sick Leave",
); );
openSickLeave(context, model); openSickLeave(context, model, isInpatient);
}), }),
], ],
) ),
: SizedBox(), Expanded(
model.getAllSIckLeavePatient.length > 0
? Expanded(
child: FractionallySizedBox( child: FractionallySizedBox(
widthFactor: 0.95, widthFactor: 0.95,
child: ListView.builder( child: ListView.builder(
@ -267,12 +264,7 @@ class PatientSickLeaveScreen extends StatelessWidget {
); );
}), }),
), ),
) ),
: patient.patientStatusType != 43
? ErrorMessage(
error: TranslationBase.of(context).noSickLeave,
)
: SizedBox(),
SizedBox( SizedBox(
height: 100, height: 100,
) )
@ -281,7 +273,7 @@ class PatientSickLeaveScreen extends StatelessWidget {
); );
} }
openSickLeave(BuildContext context, model) { openSickLeave(BuildContext context, model, isInpatient) {
Navigator.push( Navigator.push(
context, context,
SlideUpPageRoute( SlideUpPageRoute(
@ -291,6 +283,7 @@ class PatientSickLeaveScreen extends StatelessWidget {
patientMRN: patient.patientMRN, patientMRN: patient.patientMRN,
patient: patient, patient: patient,
previousModel: model, previousModel: model,
isInpatient: isInpatient
), ),
), ),
); );

@ -197,8 +197,8 @@ class _UpdateNoteOrderState extends State<UpdateNoteOrder> {
.progressNote, .progressNote,
//TranslationBase.of(context).addProgressNote, //TranslationBase.of(context).addProgressNote,
controller: progressNoteController, controller: progressNoteController,
maxLines: 35, maxLines: 40,
minLines: 25, minLines: 20,
hasBorder: true, hasBorder: true,
// isTextFieldHasSuffix: true, // isTextFieldHasSuffix: true,

@ -91,6 +91,10 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
TextInputType localKeyboardType = widget.inputType ??
(widget.maxLines == 1
? TextInputType.text
: TextInputType.multiline);
return Column( return Column(
children: [ children: [
@ -124,17 +128,12 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
// if ((widget.controller != null &&
// widget.controller.text != "") ||
// widget.dropDownText != null)
AppText( AppText(
widget.hintText, widget.hintText,
// marginTop: widget.hasHintmargin ? 0 : 30,
color: Color(0xFF2E303A), color: Color(0xFF2E303A),
fontSize: widget.isPrscription == false fontSize: widget.isPrscription == false
? 11.0 ? 11.0
// SizeConfig.getHeightMultiplier() *
// (SizeConfig.isWidthLarge ? 1.1 : 1.3)
: 0, : 0,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
letterSpacing: -0.44, letterSpacing: -0.44,
@ -146,6 +145,19 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
widget.height != 0 && widget.maxLines == 1 widget.height != 0 && widget.maxLines == 1
? widget.height - 22 ? widget.height - 22
: null, : null,
child: RawKeyboardListener(
focusNode: FocusNode(),
autofocus: false,
onKey: (rawKeyEvent) {
final isFormSkippedEnterEvent = rawKeyEvent is RawKeyDownEvent &&
rawKeyEvent.isKeyPressed(LogicalKeyboardKey.enter);
final needToInsertNewLine = isFormSkippedEnterEvent &&
localKeyboardType == TextInputType.multiline;
if (needToInsertNewLine) {
TextEditingControllerHelper.insertText(widget.controller, '\n');
}
},
child: TextFormField( child: TextFormField(
textAlign: projectViewModel.isArabic textAlign: projectViewModel.isArabic
? TextAlign.right ? TextAlign.right
@ -163,10 +175,7 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
letterSpacing: -0.56, letterSpacing: -0.56,
), ),
controller: widget.controller, controller: widget.controller,
keyboardType: widget.inputType ?? keyboardType: localKeyboardType,
(widget.maxLines == 1
? TextInputType.text
: TextInputType.multiline),
enabled: widget.enabled, enabled: widget.enabled,
minLines: widget.minLines, minLines: widget.minLines,
maxLines: widget.maxLines, maxLines: widget.maxLines,
@ -182,6 +191,7 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
}, },
onFieldSubmitted: widget.onFieldSubmitted, onFieldSubmitted: widget.onFieldSubmitted,
obscureText: widget.isSecure), obscureText: widget.isSecure),
),
) )
: AppText( : AppText(
Utils.convertToTitleCase(widget.dropDownText), Utils.convertToTitleCase(widget.dropDownText),
@ -224,3 +234,24 @@ class _AppTextFieldCustomState extends State<AppTextFieldCustom> {
); );
} }
} }
class TextEditingControllerHelper {
static insertText(TextEditingController controller, String textToInsert) {
final selection = controller.selection;
final cursorPosition = selection.base.offset;
if (cursorPosition < 0) {
controller.text += textToInsert;
return;
}
final text = controller.text;
final newText =
text.replaceRange(selection.start, selection.end, textToInsert);
controller.value = controller.value.copyWith(
text: newText,
selection: TextSelection.collapsed(
offset: selection.baseOffset + textToInsert.length,
),
);
}
}
Loading…
Cancel
Save