diff --git a/resources/seeds/Search/subject-id-or-communication-request.yaml b/resources/seeds/Search/subject-id-or-communication-request.yaml new file mode 100644 index 00000000..610e993d --- /dev/null +++ b/resources/seeds/Search/subject-id-or-communication-request.yaml @@ -0,0 +1,23 @@ +name: subject-id-or-communication-request +where: |- + {{table}}.id IN + ( + SELECT t.id from + ( + SELECT qr.id from questionnaireresponse as qr + WHERE resource#>>'{subject,id}' = {{param}} + OR + resource#>>'{subject,id}' IN + ( + SELECT id from communicationrequest + WHERE resource#>>'{subject,id}'={{param}} + ) + ) as t + ) + +format: "?" +resource: + id: QuestionnaireResponse + resourceType: Entity +id: QuestionnaireResponse.subject-id-or-communication-request +resourceType: Search diff --git a/src/containers/DocumentsList/hooks.ts b/src/containers/DocumentsList/hooks.ts index 55a09344..73c07d14 100644 --- a/src/containers/DocumentsList/hooks.ts +++ b/src/containers/DocumentsList/hooks.ts @@ -18,7 +18,7 @@ export function usePatientDocuments(patient: Patient, encounter?: Reference, con } } const qrResponse = await getFHIRResources('QuestionnaireResponse', { - subject: patient.id, + 'subject-id-or-communication-request': patient.id, questionnaire: questionnaires.join(','), encounter: encounter ? parseFHIRReference(encounter).id : undefined, _sort: '-authored', diff --git a/src/containers/PatientDetails/PatientDocumentDetails/index.tsx b/src/containers/PatientDetails/PatientDocumentDetails/index.tsx index be2ffe5f..d276a59d 100644 --- a/src/containers/PatientDetails/PatientDocumentDetails/index.tsx +++ b/src/containers/PatientDetails/PatientDocumentDetails/index.tsx @@ -87,7 +87,7 @@ function usePatientDocumentDetails(patientId: string) { const mappedResponse = mapSuccess( await getFHIRResources('QuestionnaireResponse', { id: qrId, - subject: patientId, + 'subject-id-or-communication-request': patientId, _include: ['QuestionnaireResponse:encounter:Encounter'], }), (bundle) => ({