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

Chained search return an error about multiple resource type, even if only 1 is possible (patient.identifier) #3839

Open
Thopap opened this issue May 5, 2024 · 4 comments
Labels
Bug Bug bug bug. VSTS-Backlog On VSTS Backlog

Comments

@Thopap
Copy link

Thopap commented May 5, 2024

Describe the bug
While playing around using this FHIR Server as a backend to a XDS Registry, is was observed that the handling of chained parameters seems cause a unexepcted behavior. Resource "DocumentReference" contain a search parameter "patient" which is already restricted by the spec to the Patient resource. When using a chained search here (e.g. "patient.identifier"), the MS FHIR Server complain about "multiple" possible resource types on this search paramter. Other FHIR Server like Hapi or Firely work as expected.

FHIR Version?
R4

Version used
Docker image from "mcr.microsoft.com/healthcareapis/r4-fhir-server" (4.0.128)

Data provider?
SQL Server

To Reproduce
Steps to reproduce the behavior:

  1. Trigger a FHIR Query on DocumentReference resource with a chained search parameter, e.g. /DocumentReference?patient.identifier=urn%3Aoid%3A2.999.1.2.3.4%7CIPF-1714920157063

Expected behavior
SearchResponse is successful and return the expected results.

Current workaround
Use a chained search with explicit resource type definition, e.g. "patient:Patient.identifier" instead of "patient.identifier"

Actual behavior
Server response with a http 403 containing the following error message:
<?xml version="1.0" encoding="utf-8"?><OperationOutcome xmlns="http://hl7.org/fhir"><id value="ef85d13d-804b-4074-87d3-3a92c19640a8" /><meta><lastUpdated value="2024-05-05T14:42:39.4336098+00:00" /></meta><issue><severity value="error" /><code value="invalid" /><diagnostics value="The reference search parameter 'patient' refers to multiple possible resource types. Please specify a type in the search expression: patient:Patient or patient:Group" /></issue></OperationOutcome>

@Thopap Thopap added the Bug Bug bug bug. label May 5, 2024
@EXPEkesheth
Copy link
Collaborator

@Thopap - thankyou for reporting the issue. This is a known limitation today and we will add it to our backlog to investigate further.

@Thopap
Copy link
Author

Thopap commented May 8, 2024

@EXPEkesheth - thank you for your response. Do you have any further details here? Is this limitation independed from the data provider?
I assume the workaround is to add the ResourceType if there is only 1 resource type that is referenced and to split the query into multiple if more than 1 Resource is possible?

While testing the FHIR Server, i experience, that the ":identifier" modifier seems to be also not supported? E.g. when searching " GET [base]/Observation?subject:identifier=http://acme.org/fhir/identifier/mrn|123456" like mentioned in the fhir spec, i get a error "Modifier 'Identifier' is not supported for search parameter 'subject'."

Is there a list of known limitations in MS Fhir server documented?

@EXPEkesheth
Copy link
Collaborator

@Thopap - This page provides details on supported modifiers and search result parameters.

Azure FHIR server does not support :identifier modifier today.

Please let me know if you have any additional questions

@EXPEkesheth
Copy link
Collaborator

Item for tracking the issue reported: #AB120154

@EXPEkesheth EXPEkesheth added the VSTS-Backlog On VSTS Backlog label Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Bug bug bug. VSTS-Backlog On VSTS Backlog
Projects
None yet
Development

No branches or pull requests

2 participants