Skip to content

Commit

Permalink
Merge branch 'develop' into issue#5994
Browse files Browse the repository at this point in the history
  • Loading branch information
nihal467 committed Aug 6, 2023
2 parents f54017d + 51eafa2 commit 1e733c0
Show file tree
Hide file tree
Showing 12 changed files with 289 additions and 535 deletions.
10 changes: 0 additions & 10 deletions src/Components/Dashboard/HubDashboard.tsx

This file was deleted.

15 changes: 14 additions & 1 deletion src/Components/Facility/ConsultationForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ export const ConsultationForm = (props: any) => {
const [consultationDetailsVisible, consultationDetailsRef] = useVisibility();
const [diagnosisVisible, diagnosisRef] = useVisibility(-300);
const [treatmentPlanVisible, treatmentPlanRef] = useVisibility(-300);
const [disabledFields, setDisabledFields] = useState<string[]>([]);

const sections = {
"Consultation Details": {
Expand Down Expand Up @@ -327,6 +328,10 @@ export const ConsultationForm = (props: any) => {
};
dispatch({ type: "set_form", form: formData });
setBed(formData.bed);

if (res.data.last_daily_round) {
setDisabledFields((fields) => [...fields, "category"]);
}
} else {
goBack();
}
Expand Down Expand Up @@ -774,6 +779,7 @@ export const ConsultationForm = (props: any) => {
value: (state.form as any)[name],
error: (state.errors as any)[name],
onChange: handleFormFieldChange,
disabled: disabledFields.includes(name),
};
};

Expand Down Expand Up @@ -963,6 +969,13 @@ export const ConsultationForm = (props: any) => {
{String(state.form.consultation_status) !== "1" && (
<div className="col-span-6" ref={fieldRef["category"]}>
<PatientCategorySelect
labelSuffix={
disabledFields.includes("category") && (
<p className="text-xs font-medium text-warning-500">
A daily round already exists.
</p>
)
}
required
label="Category"
{...field("category")}
Expand All @@ -977,8 +990,8 @@ export const ConsultationForm = (props: any) => {
<SelectFormField
required
label="Decision after consultation"
disabled={String(state.form.consultation_status) === "1"}
{...selectField("suggestion")}
disabled={String(state.form.consultation_status) === "1"}
options={CONSULTATION_SUGGESTION.filter(
({ deprecated }) => !deprecated
)}
Expand Down
89 changes: 63 additions & 26 deletions src/Components/Facility/DischargeSummaryModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {
import { Error, Success } from "../../Utils/Notifications";
import { previewDischargeSummary } from "../../Redux/actions";
import { useTranslation } from "react-i18next";
import CheckBoxFormField from "../Form/FormFields/CheckBoxFormField";

interface Props {
show: boolean;
Expand All @@ -32,23 +33,39 @@ export default function DischargeSummaryModal(props: Props) {
const [emailing, setEmailing] = useState(false);
const [downloading, setDownloading] = useState(false);
const [generating, setGenerating] = useState(false);
const [regenDischargeSummary, setRegenDischargeSummary] = useState(false);

const handleDownload = async () => {
setDownloading(true);
const popup = (url: string) => {
window.open(url, "_blank");
setDownloading(false);
props.onClose();
};

const waitForDischargeSummary = async () => {
setGenerating(true);
Success({ msg: t("generating_discharge_summary") + "..." });

setTimeout(async () => {
setGenerating(false);

if (props.consultation.discharge_date) {
const res = await dispatch(
previewDischargeSummary({ external_id: props.consultation.id })
);

if (res.status === 200) {
window.open(res.data.read_signed_url, "_blank");
setDownloading(false);
props.onClose();
popup(res.data.read_signed_url);
return;
}
}

Error({
msg: t("discharge_summary_not_ready") + " " + t("try_again_later"),
});
setDownloading(false);
}, 7000);
};

const handleRegenDischargeSummary = async () => {
setDownloading(true);
const res = await dispatch(
generateDischargeSummary({ external_id: props.consultation.id })
);
Expand All @@ -61,29 +78,42 @@ export default function DischargeSummaryModal(props: Props) {
setDownloading(false);
return;
}
setRegenDischargeSummary(false);
waitForDischargeSummary();
};

setGenerating(true);
Success({ msg: t("generating_discharge_summary") + "..." });
const downloadDischargeSummary = async () => {
// returns summary or 202 if new create task started
const res = await dispatch(
previewDischargeSummary({ external_id: props.consultation.id })
);

setTimeout(async () => {
setGenerating(false);
if (res.status === 202) {
// wait for the automatic task to finish
waitForDischargeSummary();
return;
}

const res = await dispatch(
previewDischargeSummary({ external_id: props.consultation.id })
);
if (res.status === 200) {
popup(res.data.read_signed_url);
return;
}

if (res.status === 200) {
window.open(res.data.read_signed_url, "_blank");
setDownloading(false);
props.onClose();
return;
}
Error({
msg: t("discharge_summary_not_ready") + " " + t("try_again_later"),
});
setDownloading(false);
};

Error({
msg: t("discharge_summary_not_ready") + " " + t("try_again_later"),
});
setDownloading(false);
}, 7000);
const handleDownload = async () => {
setDownloading(true);

if (regenDischargeSummary) {
await handleRegenDischargeSummary();
return;
}

downloadDischargeSummary();
};

const handleEmail = async () => {
Expand Down Expand Up @@ -137,7 +167,14 @@ export default function DischargeSummaryModal(props: Props) {
onChange={(e) => setEmail(e.value)}
error={emailError}
/>
<div className="mt-6 flex flex-col-reverse gap-2 lg:flex-row lg:justify-end">
{!props.consultation.discharge_date && (
<CheckBoxFormField
name="regenDischargeSummary"
label={"Regenerate discharge summary"}
onChange={(e) => setRegenDischargeSummary(e.value)}
/>
)}
<div className="flex flex-col-reverse gap-2 lg:flex-row lg:justify-end">
<Cancel onClick={props.onClose} />
<Submit onClick={handleDownload} disabled={downloading}>
{downloading ? (
Expand Down
2 changes: 1 addition & 1 deletion src/Components/HCX/ClaimsItemsBuilder.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export default function ClaimsItemsBuilder(props: Props) {
min={0}
label="Price"
placeholder="0.00"
value={obj.price.toString()}
value={obj.price?.toString()}
onChange={(event) =>
handleUpdate(index)({
name: event.name,
Expand Down
Loading

0 comments on commit 1e733c0

Please sign in to comment.