Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patient Updates Tab, Structured responses filter by Encounter #10329

Merged
merged 15 commits into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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?.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 @@ -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
40 changes: 35 additions & 5 deletions src/components/Questionnaire/QuestionTypes/QuestionInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,24 +115,54 @@ 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} />;
amjithtitus09 marked this conversation as resolved.
Show resolved Hide resolved
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
Loading