From 22732e17af206b9bebcc25c05a5650e89a9cc9fe Mon Sep 17 00:00:00 2001 From: Ashesh3 <3626859+Ashesh3@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:37:52 +0530 Subject: [PATCH 1/2] Add min_encounter_date validation --- public/config.json | 3 ++- src/Common/hooks/useConfig.ts | 5 +++++ src/Components/Facility/ConsultationForm.tsx | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/public/config.json b/public/config.json index 69d898af54..d02bd135cf 100644 --- a/public/config.json +++ b/public/config.json @@ -22,5 +22,6 @@ "sample_format_asset_import": "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=11JaEhNHdyCHth4YQs_44YaRlP77Rrqe81VSEfg1glko&exportFormat=xlsx", "sample_format_external_result_import": "/External-Results-Template.csv", "enable_abdm": true, - "enable_hcx": false + "enable_hcx": false, + "min_encounter_date": "2020-01-01" } diff --git a/src/Common/hooks/useConfig.ts b/src/Common/hooks/useConfig.ts index 79addd71c8..4e1cb806e3 100644 --- a/src/Common/hooks/useConfig.ts +++ b/src/Common/hooks/useConfig.ts @@ -69,6 +69,11 @@ export interface IConfig { */ wartime_shifting: boolean; jwt_token_refresh_interval?: number; + + /* + * Minimum date for a possible consultation encounter. + */ + min_encounter_date: string; } const useConfig = () => { diff --git a/src/Components/Facility/ConsultationForm.tsx b/src/Components/Facility/ConsultationForm.tsx index d7bc5f67a7..6f44d901ba 100644 --- a/src/Components/Facility/ConsultationForm.tsx +++ b/src/Components/Facility/ConsultationForm.tsx @@ -263,6 +263,8 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => { const [bedStatusVisible, bedStatusRef] = useVisibility(-300); const [disabledFields, setDisabledFields] = useState([]); + const { min_encounter_date } = useConfig(); + const sections = { "Consultation Details": { iconClass: "care-l-medkit", @@ -504,8 +506,12 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => { errors[field] = "Field is required"; invalidForm = true; } - if (dayjs(state.form.encounter_date).isBefore(dayjs("2000-01-01"))) { - errors[field] = "Admission date cannot be before 01/01/2000"; + if ( + dayjs(state.form.encounter_date).isBefore(dayjs(min_encounter_date)) + ) { + errors[ + field + ] = `Admission date cannot be before ${min_encounter_date}`; invalidForm = true; } return; @@ -1238,6 +1244,11 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => { "YYYY-MM-DDTHH:mm" )} max={dayjs().format("YYYY-MM-DDTHH:mm")} + min={ + min_encounter_date + ? dayjs(min_encounter_date).format("YYYY-MM-DDTHH:mm") + : undefined + } /> From 1228adbdf52403494b26deef9df638fc62161f57 Mon Sep 17 00:00:00 2001 From: Ashesh3 <3626859+Ashesh3@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:39:01 +0530 Subject: [PATCH 2/2] Add check for minimum encounter date in ConsultationForm --- src/Components/Facility/ConsultationForm.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/Facility/ConsultationForm.tsx b/src/Components/Facility/ConsultationForm.tsx index 6f44d901ba..344e24c7c3 100644 --- a/src/Components/Facility/ConsultationForm.tsx +++ b/src/Components/Facility/ConsultationForm.tsx @@ -507,6 +507,7 @@ export const ConsultationForm = ({ facilityId, patientId, id }: Props) => { invalidForm = true; } if ( + min_encounter_date && dayjs(state.form.encounter_date).isBefore(dayjs(min_encounter_date)) ) { errors[