diff --git a/src/Routers/routes/ConsultationRoutes.tsx b/src/Routers/routes/ConsultationRoutes.tsx index a55b00b3513..de81fe0efe8 100644 --- a/src/Routers/routes/ConsultationRoutes.tsx +++ b/src/Routers/routes/ConsultationRoutes.tsx @@ -39,6 +39,7 @@ const consultationRoutes: AppRoutes = { facilityId={facilityId} encounterId={encounterId} questionnaireSlug="encounter" + subjectType="encounter" patientId={patientId} /> ), diff --git a/src/components/Questionnaire/QuestionTypes/DateTimeQuestion.tsx b/src/components/Questionnaire/QuestionTypes/DateTimeQuestion.tsx index 093366df2a4..b8587d2c9de 100644 --- a/src/components/Questionnaire/QuestionTypes/DateTimeQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/DateTimeQuestion.tsx @@ -1,6 +1,5 @@ import { format } from "date-fns"; import dayjs from "dayjs"; -import { useState } from "react"; import { cn } from "@/lib/utils"; @@ -37,11 +36,9 @@ export function DateTimeQuestion({ clearError, classes, }: DateTimeQuestionProps) { - const [currentValue, setCurrentValue] = useState(() => { - return questionnaireResponse.values[0]?.value - ? new Date(questionnaireResponse.values[0].value as string) - : undefined; - }); + const currentValue = questionnaireResponse.values[0]?.value + ? new Date(questionnaireResponse.values[0].value as string) + : undefined; const handleSelect = (date: Date | undefined) => { if (!date) { @@ -102,7 +99,6 @@ export function DateTimeQuestion({ if (value?.date) { const date = dayjs(value.date).toDate(); console.log(value, date); - setCurrentValue(date); handleUpdate(date); } }} diff --git a/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx b/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx index 05aa5f2abea..54d4bb62392 100644 --- a/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx @@ -1,5 +1,5 @@ import { MinusCircledIcon } from "@radix-ui/react-icons"; -import React, { useState } from "react"; +import React from "react"; import { Button } from "@/components/ui/button"; import { Checkbox } from "@/components/ui/checkbox"; @@ -34,7 +34,6 @@ interface MedicationRequestQuestionProps { updateQuestionnaireResponseCB: (response: QuestionnaireResponse) => void; disabled?: boolean; } - const MEDICATION_REQUEST_INITIAL_VALUE: MedicationRequest = { status: "active", intent: "order", @@ -45,19 +44,14 @@ const MEDICATION_REQUEST_INITIAL_VALUE: MedicationRequest = { authored_on: new Date().toISOString(), dosage_instruction: [], }; - export function MedicationRequestQuestion({ question, questionnaireResponse, updateQuestionnaireResponseCB, disabled, }: MedicationRequestQuestionProps) { - const [medications, setMedications] = useState(() => { - return ( - (questionnaireResponse.values?.[0]?.value as MedicationRequest[]) || [] - ); - }); - + const medications = + (questionnaireResponse.values?.[0]?.value as MedicationRequest[]) || []; const handleAddMedication = (medication: Code) => { const newMedications: MedicationRequest[] = [ ...medications, @@ -77,7 +71,6 @@ export function MedicationRequestQuestion({ ], }); }; - const handleRemoveMedication = (index: number) => { const newMedications = medications.filter((_, i) => i !== index); updateQuestionnaireResponseCB({ @@ -85,7 +78,6 @@ export function MedicationRequestQuestion({ values: [{ type: "medication_request", value: newMedications }], }); }; - const handleUpdateMedication = ( index: number, updates: Partial, @@ -93,7 +85,6 @@ export function MedicationRequestQuestion({ const newMedications = medications.map((medication, i) => i === index ? { ...medication, ...updates } : medication, ); - updateQuestionnaireResponseCB({ ...questionnaireResponse, values: [ @@ -104,18 +95,12 @@ export function MedicationRequestQuestion({ ], }); }; - return (
- { if (value) { - setMedications(value); updateQuestionnaireResponseCB({ ...questionnaireResponse, values: [ @@ -128,7 +113,7 @@ export function MedicationRequestQuestion({ } }} name="Medication Request" - prompt={`An array of objects of the following type: { + prompt={`An array of objects of the following type, based on a SNOWMED Medication Product like "Paracetamol containing product": { status?: "active" | "on-hold" | "ended" | "stopped" | "completed" | "cancelled" | "entered-in-error" | "draft" | "unknown", intent?: "proposal" | "plan" | "order" | "original_order" | "reflex_order" | "filler_order" | "instance_order", category?: "inpatient" | "outpatient" | "community" | "discharge", @@ -272,6 +257,10 @@ export function MedicationRequestQuestion({ ]} className="rounded-lg border p-4" > + {medications.length > 0 && (
    @@ -301,7 +290,6 @@ export function MedicationRequestQuestion({
); } - export const MedicationRequestItem: React.FC<{ medication: MedicationRequest; disabled?: boolean; @@ -317,7 +305,6 @@ export const MedicationRequestItem: React.FC<{ dosage_instruction: [{ ...dosageInstruction, ...updates }], }); }; - return (
@@ -403,7 +390,6 @@ export const MedicationRequestItem: React.FC<{ />
-
@@ -416,7 +402,6 @@ export const MedicationRequestItem: React.FC<{ />
-
- {medication.dosage_instruction[0]?.as_needed_boolean ? (
@@ -485,7 +469,6 @@ export const MedicationRequestItem: React.FC<{
)} -
- {/*
{JSON.stringify(medication, null, 2)}
*/} ); }; - const reverseFrequencyOption = ( option: MedicationRequest["dosage_instruction"][0]["timing"], ) => { @@ -529,7 +510,6 @@ const reverseFrequencyOption = ( value.timing.repeat.period === option?.repeat?.period, )?.[0] as keyof typeof FREQUENCY_OPTIONS; }; - // TODO: verify period_unit is correct const FREQUENCY_OPTIONS = { BD: { diff --git a/src/components/Questionnaire/QuestionnaireForm.tsx b/src/components/Questionnaire/QuestionnaireForm.tsx index 15be450a05a..bab6a5ff0ce 100644 --- a/src/components/Questionnaire/QuestionnaireForm.tsx +++ b/src/components/Questionnaire/QuestionnaireForm.tsx @@ -431,14 +431,14 @@ export function QuestionnaireForm({ )} {/* Add a Preview of the QuestionnaireForm */} - {import.meta.env.DEV && ( + {/* {import.meta.env.DEV && (

QuestionnaireForm

               {JSON.stringify(questionnaireForms, null, 2)}
             
- )} + )} */} ); diff --git a/src/components/Schedule/Appointments/AppointmentDetailsPage.tsx b/src/components/Schedule/Appointments/AppointmentDetailsPage.tsx index 3c069d571b0..03e5c94f6d2 100644 --- a/src/components/Schedule/Appointments/AppointmentDetailsPage.tsx +++ b/src/components/Schedule/Appointments/AppointmentDetailsPage.tsx @@ -363,7 +363,14 @@ const AppointmentActions = ({ const isToday = isSameDay(appointment.token_slot.start_datetime, new Date()); if (["fulfilled", "cancelled", "entered_in_error"].includes(currentStatus)) { - return null; + return ( +
+ +
+ ); } if (!["booked", "checked_in", "in_consultation"].includes(currentStatus)) {