Skip to content

Commit

Permalink
Merge branch 'coronasafe:develop' into Fix-#6902
Browse files Browse the repository at this point in the history
  • Loading branch information
AshrafMd-1 authored Jan 2, 2024
2 parents f8df834 + f066a36 commit 07d3bba
Show file tree
Hide file tree
Showing 9 changed files with 117 additions and 87 deletions.
8 changes: 5 additions & 3 deletions src/CAREUI/display/RecordMeta.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import CareIcon from "../icons/CareIcon";
import {
formatDateTime,
formatDate,
formatName,
formatTime,
isUserOnline,
relativeTime,
} from "../../Utils/utils";
Expand Down Expand Up @@ -37,8 +38,9 @@ const RecordMeta = ({
let child = (
<div className="tooltip">
<span className="underline">{relativeTime(time)}</span>
<span className="tooltip-text tooltip-left flex gap-1 text-xs font-medium tracking-wider">
{formatDateTime(time)}
<span className="tooltip-text tooltip-bottom flex -translate-x-1/2 gap-1 text-xs font-medium tracking-wider">
{formatTime(time)} <br />
{formatDate(time)}
{user && !inlineUser && (
<span className="flex items-center gap-1">
by
Expand Down
2 changes: 1 addition & 1 deletion src/Common/constants.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ export const CONSCIOUSNESS_LEVEL = [
{ id: "ALERT", text: "Alert" },
{ id: "AGITATED_OR_CONFUSED", text: "Agitated or Confused" },
{
id: "Onset of Agitation and Confusion",
id: "ONSET_OF_AGITATION_AND_CONFUSION",
text: "Onset of Agitation and Confusion",
},
{ id: "UNKNOWN", text: "Unknown" },
Expand Down
9 changes: 5 additions & 4 deletions src/Components/Common/BloodPressureFormField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export default function BloodPressureFormField(props: Props) {
name: field.name,
value: {
...field.value,
[event.name]: event.value,
[event.name]: event.value ?? -1,
},
});
};
Expand All @@ -35,9 +35,10 @@ export default function BloodPressureFormField(props: Props) {
<FormField
field={{
...field,
labelSuffix: map ? (
<span className="font-medium">MAP: {map.toFixed(1)}</span>
) : undefined,
labelSuffix:
map && map !== -1 ? (
<span className="font-medium">MAP: {map.toFixed(1)}</span>
) : undefined,
}}
>
<div className="flex flex-row items-center">
Expand Down
4 changes: 4 additions & 0 deletions src/Components/Facility/ConsultationDetails/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ const symptomChoices = [...SYMPTOM_CHOICES];

export interface ConsultationTabProps {
consultationId: string;
facilityId: string;
patientId: string;
consultationData: ConsultationModel;
patientData: PatientModel;
}
Expand Down Expand Up @@ -189,6 +191,8 @@ export const ConsultationDetails = (props: any) => {
const consultationTabProps: ConsultationTabProps = {
consultationId,
consultationData,
patientId: consultationData.patient,
facilityId: consultationData.facility,
patientData,
};

Expand Down
1 change: 1 addition & 0 deletions src/Components/Facility/Consultations/Mews.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const getHeartRateScore = (value?: number) => {

const getSystolicBPScore = (value?: number) => {
if (typeof value !== "number") return;
if (value === -1) return;

if (value <= 70) return 3;
if (value <= 80) return 2;
Expand Down
4 changes: 2 additions & 2 deletions src/Components/Facility/models.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,12 @@ export interface ConsultationModel {
discharge_notes?: string;
examination_details?: string;
history_of_present_illness?: string;
facility?: number;
facility: string;
facility_name?: string;
id: string;
modified_date?: string;
other_symptoms?: string;
patient?: string;
patient: string;
treatment_plan?: string;
referred_to?: FacilityModel["id"];
referred_to_object?: FacilityModel;
Expand Down
10 changes: 8 additions & 2 deletions src/Components/Patient/DailyRoundListDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,20 @@ export const DailyRoundListDetails = (props: any) => {
<span className="font-semibold leading-relaxed">
Systolic:{" "}
</span>
{dailyRoundListDetailsData.bp?.systolic ?? "-"}
{dailyRoundListDetailsData.bp?.systolic &&
dailyRoundListDetailsData.bp?.systolic !== -1
? dailyRoundListDetailsData.bp?.systolic
: "-"}
</div>
<div className="flex">
{" "}
<span className="font-semibold leading-relaxed">
Diastolic:
</span>
{dailyRoundListDetailsData.bp?.diastolic ?? "-"}
{dailyRoundListDetailsData.bp?.diastolic &&
dailyRoundListDetailsData.bp?.diastolic !== -1
? dailyRoundListDetailsData.bp?.diastolic
: "-"}
</div>
</div>
</div>
Expand Down
164 changes: 89 additions & 75 deletions src/Components/Patient/DailyRounds.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { navigate } from "raviger";

import dayjs from "dayjs";
import { lazy, useCallback, useEffect, useState } from "react";
import { lazy, useCallback, useState } from "react";
import { useDispatch } from "react-redux";
import {
CONSCIOUSNESS_LEVEL,
Expand Down Expand Up @@ -61,7 +61,12 @@ const initForm: any = {
rhythm: "0",
rhythm_detail: "",
ventilator_spo2: null,
consciousness_level: "Unknown",
consciousness_level: "UNKNOWN",
bp: {
systolic: -1,
diastolic: -1,
mean: -1,
},
// bed: null,
};

Expand Down Expand Up @@ -135,8 +140,37 @@ export const DailyRounds = (props: any) => {
"consciousness_level",
];

useEffect(() => {
(async () => {
const fetchRoundDetails = useCallback(
async (status: statusType) => {
setIsLoading(true);
let formData: any = initialData;
if (id) {
const res = await dispatchAction(
getConsultationDailyRoundsDetails({ consultationId, id })
);

if (!status.aborted) {
if (res?.data) {
const data = {
...res.data,
patient_category: res.data.patient_category
? PATIENT_CATEGORIES.find(
(i) => i.text === res.data.patient_category
)?.id ?? ""
: "",
rhythm:
(res.data.rhythm &&
RHYTHM_CHOICES.find((i) => i.text === res.data.rhythm)?.id) ||
"0",
admitted_to: res.data.admitted_to
? res.data.admitted_to
: "Select",
};
formData = { ...formData, ...data };
}
}
}
setIsLoading(false);
if (patientId) {
const res = await dispatchAction(getPatient({ id: patientId }));
if (res.data) {
Expand All @@ -154,71 +188,20 @@ export const DailyRounds = (props: any) => {
...initialData,
action: getAction,
});
dispatch({
type: "set_form",
form: {
...state.form,
action: getAction,
},
});
formData = { ...formData, ...{ action: getAction } };
}
} else {
setPatientName("");
setFacilityName("");
}
})();
}, [dispatchAction, patientId]);

const fetchRoundDetails = useCallback(
async (status: statusType) => {
setIsLoading(true);
const res = await dispatchAction(
getConsultationDailyRoundsDetails({ consultationId, id })
);

if (!status.aborted) {
if (res?.data) {
const data = {
...res.data,
patient_category: res.data.patient_category
? PATIENT_CATEGORIES.find(
(i) => i.text === res.data.patient_category
)?.id ?? ""
: "",
rhythm:
(res.data.rhythm &&
RHYTHM_CHOICES.find((i) => i.text === res.data.rhythm)?.id) ||
"0",
admitted_to: res.data.admitted_to ? res.data.admitted_to : "Select",
};
dispatch({ type: "set_form", form: data });
setInitialData(data);
}
setIsLoading(false);
}
},
[consultationId, id, dispatchAction]
);
useAbortableEffect(
(status: statusType) => {
if (id) {
fetchRoundDetails(status);
}
},
[dispatchAction, fetchRoundDetails]
);

useEffect(() => {
(async () => {
if (consultationId && !id) {
const res = await dispatchAction(
getDailyReport({ limit: 1, offset: 0 }, { consultationId })
);
setHasPreviousLog(res.data.count > 0);
dispatch({
type: "set_form",
form: {
...state.form,
formData = {
...formData,
...{
patient_category: res.data.patient_category
? PATIENT_CATEGORIES.find(
(i) => i.text === res.data.patient_category
Expand All @@ -229,12 +212,20 @@ export const DailyRounds = (props: any) => {
RHYTHM_CHOICES.find((i) => i.text === res.data.rhythm)?.id) ||
"0",
temperature: parseFloat(res.data.temperature),
// clone_last: res.data.count > 0 ? true : false,
},
});
};
}
})();
}, [dispatchAction, consultationId, id]);
dispatch({ type: "set_form", form: formData });
setInitialData(formData);
},
[consultationId, id, dispatchAction, patientId]
);
useAbortableEffect(
(status: statusType) => {
fetchRoundDetails(status);
},
[dispatchAction, fetchRoundDetails]
);

const validateForm = () => {
const errors = { ...initError };
Expand All @@ -256,6 +247,18 @@ export const DailyRounds = (props: any) => {
invalidForm = true;
}
return;
case "bp":
if (
(state.form.bp?.systolic &&
state.form.bp?.diastolic &&
state.form.bp.systolic !== -1 &&
state.form.bp.diastolic === -1) ||
(state.form.bp.systolic === -1 && state.form.bp.diastolic !== -1)
) {
errors.bp = "Please enter both systolic and diastolic values";
invalidForm = true;
}
return;
default:
return;
}
Expand Down Expand Up @@ -301,21 +304,32 @@ export const DailyRounds = (props: any) => {
data = {
...data,
bp:
state.form.bp && state.form.bp.systolic && state.form.bp.diastolic
state.form.bp?.systolic !== -1 && state.form.bp?.diastolic !== -1
? {
systolic: Number(state.form.bp.systolic),
diastolic: Number(state.form.bp.diastolic),
mean: parseFloat(
meanArterialPressure(state.form.bp).toFixed(2)
),
systolic: state.form.bp?.systolic
? Number(state.form.bp?.systolic)
: -1,
diastolic: state.form.bp?.diastolic
? Number(state.form.bp?.diastolic)
: -1,
mean:
state.form.bp?.systolic && state.form.bp?.diastolic
? parseFloat(
meanArterialPressure(state.form.bp).toFixed(2)
)
: -1,
}
: undefined,
pulse: state.form.pulse,
resp: Number(state.form.resp),
temperature: state.form.temperature,
rhythm: Number(state.form.rhythm) || 0,
: {
systolic: -1,
diastolic: -1,
mean: -1,
},
pulse: state.form.pulse ?? null,
resp: state.form.resp ?? null,
temperature: state.form.temperature ?? null,
rhythm: state.form.rhythm || 0,
rhythm_detail: state.form.rhythm_detail,
ventilator_spo2: state.form.ventilator_spo2,
ventilator_spo2: state.form.ventilator_spo2 ?? null,
consciousness_level: state.form.consciousness_level,
};
}
Expand Down
2 changes: 2 additions & 0 deletions src/Components/Patient/PatientInfoCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,7 @@ export default function PatientInfoCard(props: {
key={i}
className="dropdown-item-primary pointer-events-auto m-2 flex cursor-pointer items-center justify-start gap-2 rounded border-0 p-2 text-sm font-normal transition-all duration-200 ease-in-out"
href={
action[1] !== "Treatment Summary" &&
consultation?.admitted &&
!consultation?.current_bed &&
i === 1
Expand All @@ -498,6 +499,7 @@ export default function PatientInfoCard(props: {
}
onClick={() => {
if (
action[1] !== "Treatment Summary" &&
consultation?.admitted &&
!consultation?.current_bed &&
i === 1
Expand Down

0 comments on commit 07d3bba

Please sign in to comment.