diff --git a/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx b/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx index 11ba2b75c7b..39eaad920bb 100644 --- a/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx +++ b/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx @@ -14,7 +14,8 @@ import { Question } from "@/types/questionnaire/question"; import { QuestionnaireResponse } from "@/types/questionnaire/questionnaireResponse"; interface Props { - encounter: Encounter; + encounter?: Encounter; + patientId: string; } function formatValue(value: string, type: string): string { @@ -124,17 +125,20 @@ function QuestionGroup({ ); } -export default function QuestionnaireResponsesList({ encounter }: Props) { +export default function QuestionnaireResponsesList({ + encounter, + patientId, +}: Props) { const { t } = useTranslation(); return ( {() => ( diff --git a/src/components/Patient/PatientDetailsTab/index.tsx b/src/components/Patient/PatientDetailsTab/index.tsx index c6bf06c8ce6..8dbc367b8bf 100644 --- a/src/components/Patient/PatientDetailsTab/index.tsx +++ b/src/components/Patient/PatientDetailsTab/index.tsx @@ -1,3 +1,4 @@ +import QuestionnaireResponsesList from "@/components/Facility/ConsultationDetails/QuestionnaireResponsesList"; import EncounterHistory from "@/components/Patient/PatientDetailsTab//EncounterHistory"; import { HealthProfileSummary } from "@/components/Patient/PatientDetailsTab//HealthProfileSummary"; import { Demography } from "@/components/Patient/PatientDetailsTab/Demography"; @@ -66,7 +67,7 @@ export const facilityPatientTabs = [ }, { route: "updates", - component: Updates, + component: QuestionnaireResponsesList, }, { route: "resource_requests", diff --git a/src/components/Patient/PatientHome.tsx b/src/components/Patient/PatientHome.tsx index 373494a4a3f..aae34f64434 100644 --- a/src/components/Patient/PatientHome.tsx +++ b/src/components/Patient/PatientHome.tsx @@ -135,6 +135,7 @@ export const PatientHome = (props: { )} diff --git a/src/components/Questionnaire/QuestionTypes/AllergyQuestion.tsx b/src/components/Questionnaire/QuestionTypes/AllergyQuestion.tsx index 8270ae98c71..640e2e77f2d 100644 --- a/src/components/Questionnaire/QuestionTypes/AllergyQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/AllergyQuestion.tsx @@ -61,6 +61,7 @@ import { Question } from "@/types/questionnaire/question"; interface AllergyQuestionProps { patientId: string; + encounterId: string; question: Question; questionnaireResponse: QuestionnaireResponse; updateQuestionnaireResponseCB: ( @@ -116,6 +117,7 @@ export function AllergyQuestion({ updateQuestionnaireResponseCB, disabled, patientId, + encounterId, }: AllergyQuestionProps) { const allergies = (questionnaireResponse.values?.[0]?.value as AllergyIntoleranceRequest[]) || @@ -126,6 +128,7 @@ export function AllergyQuestion({ queryFn: query(allergyIntoleranceApi.getAllergy, { pathParams: { patientId }, queryParams: { + encounter: encounterId, limit: 100, }, }), diff --git a/src/components/Questionnaire/QuestionTypes/DiagnosisQuestion.tsx b/src/components/Questionnaire/QuestionTypes/DiagnosisQuestion.tsx index b4aab2c07c4..f40485d97c0 100644 --- a/src/components/Questionnaire/QuestionTypes/DiagnosisQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/DiagnosisQuestion.tsx @@ -46,6 +46,7 @@ import { interface DiagnosisQuestionProps { patientId: string; + encounterId: string; questionnaireResponse: QuestionnaireResponse; updateQuestionnaireResponseCB: ( values: ResponseValue[], @@ -84,6 +85,7 @@ function convertToDiagnosisRequest(diagnosis: Diagnosis): DiagnosisRequest { export function DiagnosisQuestion({ patientId, + encounterId, questionnaireResponse, updateQuestionnaireResponseCB, disabled, @@ -96,6 +98,7 @@ export function DiagnosisQuestion({ queryFn: query(diagnosisApi.listDiagnosis, { pathParams: { patientId }, queryParams: { + encounter: encounterId, limit: 100, }, }), diff --git a/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx b/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx index fb2fb85fd54..f9ff069f431 100644 --- a/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/MedicationRequestQuestion.tsx @@ -78,6 +78,7 @@ interface MedicationRequestQuestionProps { note?: string, ) => void; disabled?: boolean; + encounterId: string; } export function MedicationRequestQuestion({ @@ -85,6 +86,7 @@ export function MedicationRequestQuestion({ updateQuestionnaireResponseCB, disabled, patientId, + encounterId, }: MedicationRequestQuestionProps) { const medications = (questionnaireResponse.values?.[0]?.value as MedicationRequest[]) || []; @@ -94,6 +96,7 @@ export function MedicationRequestQuestion({ queryFn: query(medicationRequestApi.list, { pathParams: { patientId }, queryParams: { + encounter: encounterId, limit: 100, }, }), diff --git a/src/components/Questionnaire/QuestionTypes/MedicationStatementQuestion.tsx b/src/components/Questionnaire/QuestionTypes/MedicationStatementQuestion.tsx index 936a2b3b0b3..f56be1b82dc 100644 --- a/src/components/Questionnaire/QuestionTypes/MedicationStatementQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/MedicationStatementQuestion.tsx @@ -61,6 +61,7 @@ import { Question } from "@/types/questionnaire/question"; interface MedicationStatementQuestionProps { patientId: string; + encounterId: string; question: Question; questionnaireResponse: QuestionnaireResponse; updateQuestionnaireResponseCB: ( @@ -90,6 +91,7 @@ export function MedicationStatementQuestion({ updateQuestionnaireResponseCB, disabled, patientId, + encounterId, }: MedicationStatementQuestionProps) { const { t } = useTranslation(); const desktopLayout = useBreakpoints({ lg: true, default: false }); @@ -110,6 +112,7 @@ export function MedicationStatementQuestion({ pathParams: { patientId }, queryParams: { limit: 100, + encounter: encounterId, }, }), }); diff --git a/src/components/Questionnaire/QuestionTypes/QuestionInput.tsx b/src/components/Questionnaire/QuestionTypes/QuestionInput.tsx index 16957d63c68..867e47d401c 100644 --- a/src/components/Questionnaire/QuestionTypes/QuestionInput.tsx +++ b/src/components/Questionnaire/QuestionTypes/QuestionInput.tsx @@ -115,15 +115,50 @@ export function QuestionInput({ case "structured": switch (question.structured_type) { case "medication_request": - return ; + if (encounterId) { + return ( + + ); + } + return null; case "medication_statement": - return ; + if (encounterId) { + return ( + + ); + } + return null; case "allergy_intolerance": - return ; + if (encounterId) { + return ( + + ); + } + return null; case "symptom": - return ; + if (encounterId) { + return ( + + ); + } + return null; case "diagnosis": - return ; + if (encounterId) { + return ( + + ); + } + return null; case "appointment": return ; case "encounter": @@ -131,8 +166,8 @@ export function QuestionInput({ return ( ); } diff --git a/src/components/Questionnaire/QuestionTypes/SymptomQuestion.tsx b/src/components/Questionnaire/QuestionTypes/SymptomQuestion.tsx index 94eba927251..0a175ae9219 100644 --- a/src/components/Questionnaire/QuestionTypes/SymptomQuestion.tsx +++ b/src/components/Questionnaire/QuestionTypes/SymptomQuestion.tsx @@ -47,6 +47,7 @@ import { interface SymptomQuestionProps { patientId: string; + encounterId: string; questionnaireResponse: QuestionnaireResponse; updateQuestionnaireResponseCB: ( values: ResponseValue[], @@ -281,6 +282,7 @@ export function SymptomQuestion({ questionnaireResponse, updateQuestionnaireResponseCB, disabled, + encounterId, }: SymptomQuestionProps) { const symptoms = (questionnaireResponse.values?.[0]?.value as SymptomRequest[]) || []; @@ -291,6 +293,7 @@ export function SymptomQuestion({ pathParams: { patientId }, queryParams: { limit: 100, + encounter: encounterId, }, }), }); diff --git a/src/pages/Encounters/tabs/EncounterUpdatesTab.tsx b/src/pages/Encounters/tabs/EncounterUpdatesTab.tsx index b1f01ac6b16..e44706a6d9b 100644 --- a/src/pages/Encounters/tabs/EncounterUpdatesTab.tsx +++ b/src/pages/Encounters/tabs/EncounterUpdatesTab.tsx @@ -46,7 +46,10 @@ export const EncounterUpdatesTab = ({ {/* Questionnaire Responses Section */}
- +