Details
-
Technical Correction
-
Resolution: Persuasive
-
Medium
-
US Core (FHIR)
-
3.1.1
-
Cross-Group Projects
-
USCoreAllergyintolerancePatient
USCoreCareplanPatient
USCoreCareteamPatient
USCoreConditionPatient
USCoreDevicePatient
USCoreDiagnosticreportPatient
USCoreDocumentreferencePatient
USCoreEncounterPatient
USCoreGoalPatient
USCoreImmunizationPatient
USCoreMedicationrequestPatient
USCoreObservationPatient
USCoreProcedurePatient -
-
Correction
Description
The base specification has a long-standing issue (FHIR-13601 and FHIR-15903) with its clinical-patient search parameter definition.
As you know, US Core has chosen to publish its own SearchParameter definitions that are derived from the base spec ones and, unfortunately, this problem has made it into each and every one of the patient search parameters that was derived from clinical-patient.
As a result, for some implementations, this makes the search <base>/<resourceType>?patient=<id> invalid. Because patient is allowed to reference both Patient and Group, the user must supply either a type modifier or a relative reference that includes the resource type. For example, for Observation-patient:
- <base>/Observation?patient:Patient=<id>, or
- <base>/Observation?patient=Patient/<id>
Specifically, if the SearchParameter definitions properly listed just "Patient" as its target, then this would facilitate behavior that supports this description from the core specification:
In some cases, search parameters are defined with an implicitly limited scope. For example, Observation has an element subject, which is a reference to one of a number of types. This has a matching search parameter subject, which refers to any of the possible types. In addition to this, there is another search parameter patient, which also refers to Observation.subject, but is limited to only include references of type Patient. When using the patient search parameter, there is no need to specify ":Patient" as a modifier, or "Patient/" in the search value, as this must always be true.