diff --git a/src/Components/Assets/AssetType/ONVIFCamera.tsx b/src/Components/Assets/AssetType/ONVIFCamera.tsx
index 4a3a003d0a1..4a3e475419e 100644
--- a/src/Components/Assets/AssetType/ONVIFCamera.tsx
+++ b/src/Components/Assets/AssetType/ONVIFCamera.tsx
@@ -134,7 +134,6 @@ const ONVIFCamera = ({ assetId, facilityId, asset, onUpdated }: Props) => {
}
setLoadingAddPreset(false);
};
-
if (isLoading || loading || !facility) return ;
const fallbackMiddleware =
diff --git a/src/Components/Common/components/Menu.tsx b/src/Components/Common/components/Menu.tsx
index 4b52a293f9e..49ee02b393e 100644
--- a/src/Components/Common/components/Menu.tsx
+++ b/src/Components/Common/components/Menu.tsx
@@ -16,6 +16,7 @@ interface DropdownMenuProps {
children: JSX.Element | JSX.Element[];
disabled?: boolean | undefined;
className?: string | undefined;
+ itemClassName?: string | undefined;
}
export default function DropdownMenu({
@@ -36,7 +37,9 @@ export default function DropdownMenu({
-
+
<>{props.children}>
diff --git a/src/Components/Common/components/SwitchTabs.tsx b/src/Components/Common/components/SwitchTabs.tsx
index 0592f0272dd..047dba53b4b 100644
--- a/src/Components/Common/components/SwitchTabs.tsx
+++ b/src/Components/Common/components/SwitchTabs.tsx
@@ -1,36 +1,36 @@
export default function SwitchTabs(props: {
- activeTab: boolean;
+ isTab2Active: boolean;
onClickTab1: () => void;
onClickTab2: () => void;
- Tab1: string;
- Tab2: string;
+ tab1: string;
+ tab2: string;
}) {
return (
- {props.Tab1}
+ {props.tab1}
- {props.Tab2}
+ {props.tab2}
);
diff --git a/src/Components/Facility/models.tsx b/src/Components/Facility/models.tsx
index a9861a4869c..f5ddde19d2d 100644
--- a/src/Components/Facility/models.tsx
+++ b/src/Components/Facility/models.tsx
@@ -146,6 +146,7 @@ export interface ConsultationModel {
death_datetime?: string;
death_confirmed_doctor?: string;
is_readmission?: boolean;
+ medico_legal_case?: boolean;
}
export interface PatientStatsModel {
id?: number;
diff --git a/src/Components/Patient/ManagePatients.tsx b/src/Components/Patient/ManagePatients.tsx
index aa3a837647d..61b18faa367 100644
--- a/src/Components/Patient/ManagePatients.tsx
+++ b/src/Components/Patient/ManagePatients.tsx
@@ -185,6 +185,8 @@ export const PatientManager = () => {
qParams.date_declared_positive_after || undefined,
date_of_result_before: qParams.date_of_result_before || undefined,
date_of_result_after: qParams.date_of_result_after || undefined,
+ last_consultation_medico_legal_case:
+ qParams.last_consultation_medico_legal_case || undefined,
last_consultation_admission_date_before:
qParams.last_consultation_admission_date_before || undefined,
last_consultation_admission_date_after:
@@ -333,6 +335,7 @@ export const PatientManager = () => {
});
}, [
dispatch,
+ qParams.last_consultation_medico_legal_case,
qParams.last_consultation_admission_date_before,
qParams.last_consultation_admission_date_after,
qParams.last_consultation_discharge_date_before,
@@ -768,11 +771,11 @@ export const PatientManager = () => {
updateQuery({ is_active: "True" })}
onClickTab2={() => updateQuery({ is_active: "False" })}
- activeTab={tabValue ? true : false}
+ isTab2Active={tabValue ? true : false}
/>
{showDoctorConnect && (
{
kasp(),
badge("COWIN ID", "covin_id"),
badge("Is Antenatal", "is_antenatal"),
+ badge(
+ "Is Medico-Legal Case",
+ "last_consultation_medico_legal_case"
+ ),
value("Facility", "facility", facilityBadgeName),
badge("Facility Type", "facility_type"),
value("District", "district", districtName),
diff --git a/src/Components/Patient/PatientFilter.tsx b/src/Components/Patient/PatientFilter.tsx
index 205ac39ac9c..97f5a6c6b9c 100644
--- a/src/Components/Patient/PatientFilter.tsx
+++ b/src/Components/Patient/PatientFilter.tsx
@@ -65,6 +65,8 @@ export default function PatientFilter(props: any) {
age_max: filter.age_max || null,
date_of_result: filter.date_of_result || null,
date_declared_positive: filter.date_declared_positive || null,
+ last_consultation_medico_legal_case:
+ filter.last_consultation_medico_legal_case || null,
last_consultation_admission_date_before:
filter.last_consultation_admission_date_before || null,
last_consultation_admission_date_after:
@@ -120,6 +122,7 @@ export default function PatientFilter(props: any) {
age_max: "",
date_of_result: null,
date_declared_positive: null,
+ last_consultation_medico_legal_case: null,
last_consultation_admission_date_before: "",
last_consultation_admission_date_after: "",
last_consultation_discharge_date_before: "",
@@ -229,6 +232,7 @@ export default function PatientFilter(props: any) {
age_min,
age_max,
date_of_result,
+ last_consultation_medico_legal_case,
last_consultation_admission_date_before,
last_consultation_admission_date_after,
last_consultation_discharge_date_before,
@@ -266,6 +270,8 @@ export default function PatientFilter(props: any) {
modified_date_before: dateQueryString(modified_date_before),
modified_date_after: dateQueryString(modified_date_after),
date_of_result: dateQueryString(date_of_result),
+ last_consultation_medico_legal_case:
+ last_consultation_medico_legal_case || "",
last_consultation_admission_date_before: dateQueryString(
last_consultation_admission_date_before
),
@@ -473,6 +479,23 @@ export default function PatientFilter(props: any) {
}
/>
+
+ Is Medico-Legal Case
+
+ o === "true" ? "Medico-Legal" : "Non-Medico-Legal"
+ }
+ value={filterState.last_consultation_medico_legal_case}
+ onChange={(v) =>
+ setFilterState({
+ ...filterState,
+ last_consultation_medico_legal_case: v,
+ })
+ }
+ />
+
{
+ if (!consultation?.id || value === medicoLegalCase) return;
+ const { res, data } = await request(routes.partialUpdateConsultation, {
+ pathParams: { id: consultation?.id },
+ body: { medico_legal_case: value },
+ });
+
+ if (res?.status !== 200 || !data) {
+ Notification.Error({
+ msg: "Failed to update Medico Legal Case",
+ });
+ setMedicoLegalCase(!value);
+ } else {
+ Notification.Success({
+ msg: "Medico Legal Case updated successfully",
+ });
+ }
+ };
+
return (
<>
0 && (
)}
+ {medicoLegalCase && (
+
+ MLC
+
+ )}
{!!consultation?.discharge_date && (
@@ -326,131 +359,225 @@ export default function PatientInfoCard(props: {
,
],
],
- [
- `/patient/${patient.id}/investigation_reports`,
- "Investigation Summary",
- "align-alt",
- true,
- ],
- [
- `/facility/${patient.facility}/patient/${patient.id}/consultation/${consultation?.id}/treatment-summary`,
- "Treatment Summary",
- "file-medical",
- consultation?.id,
- ],
- ]
- .concat(
- enable_hcx
- ? [
- [
- `/facility/${patient.facility}/patient/${patient.id}/consultation/${consultation?.id}/claims`,
- "Claims",
- "copy-landscape",
- consultation?.id,
- ],
- ]
- : []
- )
- .map(
- (action: any, i) =>
- action[3] && (
-
-
+ action[3] && (
+
+
{
+ if (
consultation?.admitted &&
!consultation?.current_bed &&
i === 1
- ? undefined
- : `${action[0]}`
+ ) {
+ Notification.Error({
+ msg: "Please assign a bed to the patient",
+ });
+ setOpen(true);
}
- onClick={() => {
- if (
- consultation?.admitted &&
- !consultation?.current_bed &&
- i === 1
- ) {
- Notification.Error({
- msg: "Please assign a bed to the patient",
- });
- setOpen(true);
- }
- }}
- className="w-full"
- >
-
-
- {action[1]}
-
-
- {action[4] && action[4][0] && (
- <>
-
- {action[4][1]}
-
- >
- )}
-
+ }}
+ className="w-full"
+ >
+
+
+ {action[1]}
+
+
+ {action?.[4]?.[0] && (
+ <>
+
+ {action[4][1]}
+
+ >
+ )}
+
+ )
+ )}
+ }
+ >
+
+ {[
+ [
+ `/patient/${patient.id}/investigation_reports`,
+ "Investigation Summary",
+ "align-alt",
+ true,
+ ],
+ [
+ `/facility/${patient.facility}/patient/${patient.id}/consultation/${consultation?.id}/treatment-summary`,
+ "Treatment Summary",
+ "file-medical",
+ consultation?.id,
+ ],
+ ]
+ .concat(
+ enable_hcx
+ ? [
+ [
+ `/facility/${patient.facility}/patient/${patient.id}/consultation/${consultation?.id}/claims`,
+ "Claims",
+ "copy-landscape",
+ consultation?.id,
+ ],
+ ]
+ : []
)
- )}
- {enable_abdm &&
- (patient.abha_number ? (
- <>
-
setShowABHAProfile(true)}
- >
-
-
- Show ABHA Profile
-
-
-
setShowLinkCareContext(true)}
- >
-
-
- Link Care Context
-
-
-
setShowABHAProfile(false)}
- />
- setShowLinkCareContext(false)}
- />
- >
- ) : (
- <>
- setShowLinkABHANumber(true)}
- >
-
-
- Link ABHA Number
-
-
- setShowLinkABHANumber(false)}
- patientId={patient.id as any}
- onSuccess={(_) => {
- window.location.href += "?show-abha-profile=true";
+ .map(
+ (action: any, i) =>
+ action[3] && (
+
+ )
+ )}
+
+
+ {enable_abdm &&
+ (patient.abha_number ? (
+ <>
+
+ {({ close }) => (
+ <>
+ {
+ close();
+ setShowABHAProfile(true);
+ }}
+ >
+
+ Show ABHA Profile
+
+ {
+ close();
+ setShowLinkCareContext(true);
+ }}
+ >
+
+ Link Care Context
+
+ >
+ )}
+
+ >
+ ) : (
+
+ {({ close }) => (
+ {
+ close();
+ setShowLinkABHANumber(true);
+ }}
+ >
+
+
+ Link ABHA Number
+
+
+ )}
+
+ ))}
+
+
+
+ {
+ setMedicoLegalCase(checked);
+ switchMedicoLegalCase(checked);
}}
- />
- >
- ))}
+ className={classNames(
+ medicoLegalCase ? "bg-primary" : "bg-gray-200",
+ "relative inline-flex h-4 w-8 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none "
+ )}
+ >
+
+
+
+
+ Medico-Legal Case
+ {" "}
+
+
+
+
+ setShowLinkABHANumber(false)}
+ patientId={patient.id as any}
+ onSuccess={(_) => {
+ window.location.href += "?show-abha-profile=true";
+ }}
+ />
+ setShowABHAProfile(false)}
+ />
+ setShowLinkCareContext(false)}
+ />
>
);
}
diff --git a/src/Components/Resource/ResourceBoardView.tsx b/src/Components/Resource/ResourceBoardView.tsx
index d3b2b202649..17fb70c662f 100644
--- a/src/Components/Resource/ResourceBoardView.tsx
+++ b/src/Components/Resource/ResourceBoardView.tsx
@@ -59,11 +59,11 @@ export default function BoardView() {
setBoardFilter(ACTIVE)}
onClickTab2={() => setBoardFilter(COMPLETED)}
- activeTab={boardFilter !== ACTIVE}
+ isTab2Active={boardFilter !== ACTIVE}
/>
diff --git a/src/Components/Shifting/BoardView.tsx b/src/Components/Shifting/BoardView.tsx
index 85815770acf..9c96daa0e59 100644
--- a/src/Components/Shifting/BoardView.tsx
+++ b/src/Components/Shifting/BoardView.tsx
@@ -85,11 +85,11 @@ export default function BoardView() {
/>
setBoardFilter(activeBoards)}
onClickTab2={() => setBoardFilter(completedBoards)}
- activeTab={boardFilter[0].text !== activeBoards[0].text}
+ isTab2Active={boardFilter[0].text !== activeBoards[0].text}
/>
diff --git a/src/Redux/api.tsx b/src/Redux/api.tsx
index fe678f2be3e..104fa0c0c75 100644
--- a/src/Redux/api.tsx
+++ b/src/Redux/api.tsx
@@ -410,6 +410,8 @@ const routes = {
partialUpdateConsultation: {
path: "/api/v1/consultation/{id}/",
method: "PATCH",
+ TRes: Type
>(),
+ TBody: Type(),
},
deleteConsultation: {
path: "/api/v1/consultation/{id}/",