saveTestOrDiagnosis function
Future<void>
saveTestOrDiagnosis({
- required BuildContext context,
- required String name,
- required String code,
- required String diagnosisID,
- required String diagnosisName,
- required QuickAccessType type,
Implementation
Future<void> saveTestOrDiagnosis({
required BuildContext context,
required String name,
required String code,
required String diagnosisID,
required String diagnosisName,
required QuickAccessType type,
}) async {
Navigator.pop(context);
// handle form validation and saving of the problems
const String testStatus = 'active';
const String diagnosisStatus = 'Active';
final String recordingDoctor = getRecordingDoctor(context)!;
final String dateRecorded = DateTime.now().toIso8601String().split('T')[0];
final PatientInfo patientInfo = getPatientInfo();
final String? encounterReference = getPatientInfo().encounterReference;
Map<String, dynamic> _variables;
if (type == QuickAccessType.test) {
_variables = addTestMutationVariables(
testName: name,
testCode: code,
testStatus: testStatus,
recordingDoctor: recordingDoctor,
patientReference: patientInfo.patientReference!,
patientName: patientInfo.patientName!,
encounterReference: encounterReference!,
dateRecorded: dateRecorded,
diagnosisID: diagnosisID,
diagnosisName: diagnosisName,
);
} else {
_variables = addDiagnosisVariables(
clinicalStatus: diagnosisStatus,
dateRecorded: dateRecorded,
selectedDiagnosis: diagnosisName,
recordingDoctor: recordingDoctor,
patientReference: patientInfo.patientReference!,
encounterReference: encounterReference!,
diagnosisCode: code,
);
}
final dynamic result = await showDialog(
context: context,
useRootNavigator: false,
builder: (BuildContext context) {
return BewellSubmitDialog(
data: _variables,
query: type == QuickAccessType.test
? addTestMutation
: addConditionMutation,
);
},
);
if (result['createFHIRCondition'] != null ||
result['createFHIRServiceRequest'] != null) {
type == QuickAccessType.test
? ExamChangeObject().onAddTestListener.add(true)
: ExamChangeObject().onDiagnosisChangeListener.add(true);
Navigator.of(context).pop();
// success snackbar
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(type == QuickAccessType.test
? addTestsSuccessMsg
: diagnosisAddedSuccessMsg),
duration: const Duration(seconds: kShortSnackBarDuration),
action: dismissSnackBar('close', white, context),
),
);
} else {
// error snackbar
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(UserFeedBackTexts.getErrorMessage()),
duration: const Duration(seconds: kLongSnackBarDuration),
action: dismissSnackBar(closeBtnText, white, context),
));
}
}