diff --git a/src/Components/Facility/ConsultationDetails/index.tsx b/src/Components/Facility/ConsultationDetails/index.tsx index 6fda874e3b3..f2ef13fa833 100644 --- a/src/Components/Facility/ConsultationDetails/index.tsx +++ b/src/Components/Facility/ConsultationDetails/index.tsx @@ -8,6 +8,7 @@ import { ConsultationModel, ICD11DiagnosisModel } from "../models"; import { getConsultation, getPatient, + listAssetBeds, listShiftRequests, } from "../../../Redux/actions"; import { statusType, useAbortableEffect } from "../../../Common/utils"; @@ -88,6 +89,7 @@ export const ConsultationDetails = (props: any) => { const [openDischargeSummaryDialog, setOpenDischargeSummaryDialog] = useState(false); const [openDischargeDialog, setOpenDischargeDialog] = useState(false); + const [isCameraAttached, setIsCameraAttached] = useState(false); const getPatientGender = (patientData: any) => GENDER_TYPES.find((i) => i.id === patientData.gender)?.text; @@ -126,6 +128,17 @@ export const ConsultationDetails = (props: any) => { data.symptoms_text = symptoms.join(", "); } setConsultationData(data); + const assetRes = await dispatch( + listAssetBeds({ + bed: data?.current_bed?.bed_object?.id, + }) + ); + const isCameraAttachedRes = assetRes.data.results.some( + (asset: { asset_object: { asset_class: string } }) => { + return asset?.asset_object?.asset_class === "ONVIF"; + } + ); + setIsCameraAttached(isCameraAttachedRes); const id = res.data.patient; const patientRes = await dispatch(getPatient({ id })); if (patientRes?.data) { @@ -336,6 +349,7 @@ export const ConsultationDetails = (props: any) => { Doctor Connect {patientData.last_consultation?.id && + isCameraAttached && ["DistrictAdmin", "StateAdmin", "Doctor"].includes( authUser.user_type ) && ( @@ -507,6 +521,7 @@ export const ConsultationDetails = (props: any) => { {CONSULTATION_TABS.map((p: OptionsType) => { if (p.text === "FEED") { if ( + isCameraAttached === false || // No camera attached consultationData?.discharge_date || // Discharged !consultationData?.current_bed?.bed_object?.id || // Not admitted to bed !["DistrictAdmin", "StateAdmin", "Doctor"].includes( diff --git a/src/Components/Facility/Consultations/Feed.tsx b/src/Components/Facility/Consultations/Feed.tsx index 3448d85a6a2..ac39be325e9 100644 --- a/src/Components/Facility/Consultations/Feed.tsx +++ b/src/Components/Facility/Consultations/Feed.tsx @@ -124,9 +124,7 @@ export const Feed: React.FC = ({ consultationId, facilityId }) => { ...bedAssets.data, results: bedAssets.data.results.filter( (asset: { asset_object: { meta: { asset_type: string } } }) => { - return asset?.asset_object?.meta?.asset_type === "CAMERA" - ? true - : false; + return asset?.asset_object?.meta?.asset_type === "CAMERA"; } ), },