Stream: implementers
Topic: Canonical URIs and search
Brian Postlethwaite (Jun 02 2019 at 08:54):
While re-checking my understanding on FHIR references, and canonical URIs I found the relevant page in the spec, and noted some minor issues
hl7.org/fhir/r4/references.html#canonical
The way it is described is essentially how I expected for operations that use the URL parameter, and how the value is stored in instances. However the basic Search I think is misleading, and is instead describing how it works within an operation, not the generic search feature.
* Search only regards the latest version for each different logical id
This specific bullet point confused me, is that meant to be returns
? In which case I disagree with it.
If not then I think it's describing processing of the search results, which is the receiver. So is mixing client/server roles here.
Christiaan Knaap (Jul 01 2019 at 11:35):
Reference search on canonicals in R4 is a bit unclear to us as well.
Imagine in a FHIR server a StructureDefinition:
- url = http://some.org/fhir/StructureDefinition/someprofile
- title = "some title"
- stored on the server at <base>/StructureDefinition/xyz
And a Patient
- meta.profile = http://some.org/fhir/StructureDefinition/someprofile
- stored on the server at <base>/Patient/123
Three searches:
1. by url: <base>/Patient?_profile=http://some.org/fhir/StructureDefinition/someprofile
2. by normal reference: <base>/Patient?_profile=<base>/StructureDefinition/xyz
3. chained: <base>/Patient?_profile.title=some title
My understanding:
1. Should work (it already did so in STU3)
2. Since _profile is now a SearchParameter with SearchParameterType=reference, this should also work.
3. And for the same reason chaining should also be possible.
Since 2 & 3 are not trivial I want to check whether my understanding is correct.
Last updated: Apr 12 2022 at 19:14 UTC