Stream: conformance
Topic: Snapshot and extensions
Michel Rutten (Jul 22 2019 at 14:19):
Question about the sparse representation of profile extensions in the StructureDefinition.snapshot
component:
The snapshot generator implementation in the .NET FHIR API library no longer includes the child elements .extension.id
, .extension.url
& .extension.value
of a referenced extension in the generated snapshot by default, unless the containing profile explicitly specifies one or more constraints on those extension child elements.
Example:
Patient Patient.extension:myPatientExtension, type.profile="http://example.org/fhir/StructureDefinition/MyPatientExtension" (OMITTED: Patient.extension.id) (OMITTED: Patient.extension.url, fixedUri = "http://example.org/fhir/StructureDefinition/MyPatientExtension") (OMITTED: Patient.extension.valueString) Patient.identifier
This behavior conforms to generic rules for generating snapshots; include constrained elements with all their siblings and parents, exclude others. The omitted information is redundant and can be resolved from the referenced extension definition (via type.profile
). Processing systems can resolve the target extension and further expand the snapshot on demand. Omitting redundant info significantly decreases the file size of profiles with extensions.
However, I am wondering if our current implementation might break some (less capable) systems? Specifically, do systems expect the .extension.url
element to always be present in the snapshot? Or should all systems be capable of resolving the redundant information from the referenced extension definitions?
Last updated: Apr 12 2022 at 19:14 UTC