Skip to content

Commit

Permalink
Patient Updates Tab, Structured responses filter by Encounter in Ques…
Browse files Browse the repository at this point in the history
…tionnaire
  • Loading branch information
amjithtitus09 committed Jan 31, 2025
1 parent fd9f145 commit 4f1e423
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -124,17 +125,20 @@ function QuestionGroup({
);
}

export default function QuestionnaireResponsesList({ encounter }: Props) {
export default function QuestionnaireResponsesList({
encounter,
patientId,
}: Props) {
const { t } = useTranslation();

return (
<PaginatedList
route={routes.getQuestionnaireResponses}
pathParams={{
patientId: encounter.patient.id,
patientId: patientId,
}}
query={{
encounter: encounter.id,
...(encounter && { encounter: encounter.id }),
}}
>
{() => (
Expand Down
3 changes: 2 additions & 1 deletion src/components/Patient/PatientDetailsTab/index.tsx
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -66,7 +67,7 @@ export const facilityPatientTabs = [
},
{
route: "updates",
component: Updates,
component: QuestionnaireResponsesList,
},
{
route: "resource_requests",
Expand Down
1 change: 1 addition & 0 deletions src/components/Patient/PatientHome.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ export const PatientHome = (props: {
<Tab
facilityId={facilityId || ""}
id={id}
patientId={id}
patientData={patientData}
/>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ import { Question } from "@/types/questionnaire/question";

interface AllergyQuestionProps {
patientId: string;
encounterId: string;
question: Question;
questionnaireResponse: QuestionnaireResponse;
updateQuestionnaireResponseCB: (
Expand Down Expand Up @@ -116,6 +117,7 @@ export function AllergyQuestion({
updateQuestionnaireResponseCB,
disabled,
patientId,
encounterId,
}: AllergyQuestionProps) {
const allergies =
(questionnaireResponse.values?.[0]?.value as AllergyIntoleranceRequest[]) ||
Expand All @@ -126,6 +128,7 @@ export function AllergyQuestion({
queryFn: query(allergyIntoleranceApi.getAllergy, {
pathParams: { patientId },
queryParams: {
encounter: encounterId,
limit: 100,
},
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import {

interface DiagnosisQuestionProps {
patientId: string;
encounterId: string;
questionnaireResponse: QuestionnaireResponse;
updateQuestionnaireResponseCB: (
values: ResponseValue[],
Expand Down Expand Up @@ -84,6 +85,7 @@ function convertToDiagnosisRequest(diagnosis: Diagnosis): DiagnosisRequest {

export function DiagnosisQuestion({
patientId,
encounterId,
questionnaireResponse,
updateQuestionnaireResponseCB,
disabled,
Expand All @@ -96,6 +98,7 @@ export function DiagnosisQuestion({
queryFn: query(diagnosisApi.listDiagnosis, {
pathParams: { patientId },
queryParams: {
encounter: encounterId,
limit: 100,
},
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,15 @@ interface MedicationRequestQuestionProps {
note?: string,
) => void;
disabled?: boolean;
encounterId: string;
}

export function MedicationRequestQuestion({
questionnaireResponse,
updateQuestionnaireResponseCB,
disabled,
patientId,
encounterId,
}: MedicationRequestQuestionProps) {
const medications =
(questionnaireResponse.values?.[0]?.value as MedicationRequest[]) || [];
Expand All @@ -94,6 +96,7 @@ export function MedicationRequestQuestion({
queryFn: query(medicationRequestApi.list, {
pathParams: { patientId },
queryParams: {
encounter: encounterId,
limit: 100,
},
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ import { Question } from "@/types/questionnaire/question";

interface MedicationStatementQuestionProps {
patientId: string;
encounterId: string;
question: Question;
questionnaireResponse: QuestionnaireResponse;
updateQuestionnaireResponseCB: (
Expand Down Expand Up @@ -90,6 +91,7 @@ export function MedicationStatementQuestion({
updateQuestionnaireResponseCB,
disabled,
patientId,
encounterId,
}: MedicationStatementQuestionProps) {
const { t } = useTranslation();
const desktopLayout = useBreakpoints({ lg: true, default: false });
Expand All @@ -110,6 +112,7 @@ export function MedicationStatementQuestion({
pathParams: { patientId },
queryParams: {
limit: 100,
encounter: encounterId,
},
}),
});
Expand Down
47 changes: 41 additions & 6 deletions src/components/Questionnaire/QuestionTypes/QuestionInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,24 +115,59 @@ export function QuestionInput({
case "structured":
switch (question.structured_type) {
case "medication_request":
return <MedicationRequestQuestion {...commonProps} />;
if (encounterId) {
return (
<MedicationRequestQuestion
{...commonProps}
encounterId={encounterId}
/>
);
}
return null;
case "medication_statement":
return <MedicationStatementQuestion {...commonProps} />;
if (encounterId) {
return (
<MedicationStatementQuestion
{...commonProps}
encounterId={encounterId}
/>
);
}
return null;
case "allergy_intolerance":
return <AllergyQuestion {...commonProps} />;
if (encounterId) {
return (
<AllergyQuestion {...commonProps} encounterId={encounterId} />
);
}
return null;
case "symptom":
return <SymptomQuestion {...commonProps} />;
if (encounterId) {
return (
<SymptomQuestion
{...commonProps}
encounterId={encounterId}
patientId={patientId}
/>
);
}
return null;
case "diagnosis":
return <DiagnosisQuestion {...commonProps} />;
if (encounterId) {
return (
<DiagnosisQuestion {...commonProps} encounterId={encounterId} />
);
}
return null;
case "appointment":
return <AppointmentQuestion {...commonProps} />;
case "encounter":
if (encounterId) {
return (
<EncounterQuestion
{...commonProps}
encounterId={encounterId}
facilityId={facilityId}
encounterId={encounterId}
/>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import {

interface SymptomQuestionProps {
patientId: string;
encounterId: string;
questionnaireResponse: QuestionnaireResponse;
updateQuestionnaireResponseCB: (
values: ResponseValue[],
Expand Down Expand Up @@ -281,6 +282,7 @@ export function SymptomQuestion({
questionnaireResponse,
updateQuestionnaireResponseCB,
disabled,
encounterId,
}: SymptomQuestionProps) {
const symptoms =
(questionnaireResponse.values?.[0]?.value as SymptomRequest[]) || [];
Expand All @@ -291,6 +293,7 @@ export function SymptomQuestion({
pathParams: { patientId },
queryParams: {
limit: 100,
encounter: encounterId,
},
}),
});
Expand Down
5 changes: 4 additions & 1 deletion src/pages/Encounters/tabs/EncounterUpdatesTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ export const EncounterUpdatesTab = ({

{/* Questionnaire Responses Section */}
<div>
<QuestionnaireResponsesList encounter={encounter} />
<QuestionnaireResponsesList
encounter={encounter}
patientId={patient.id}
/>
</div>
</div>

Expand Down

0 comments on commit 4f1e423

Please sign in to comment.