FHIR:Vprepub-1.0 FHIR Profiling Guidelines R4 examples: verschil tussen versies
Regel 3: | Regel 3: | ||
This page provides guidance on how slicing is expected in R4 profiles that are created by Nictiz. Examples are provided in XML format but could have been in JSON format as well. | This page provides guidance on how slicing is expected in R4 profiles that are created by Nictiz. Examples are provided in XML format but could have been in JSON format as well. | ||
− | {{Collapse top|Slice definition to | + | {{Collapse top|Slice definition to specify 1 or more variations of a concept.|left=yes}} |
− | + | The {{fhir:identifier}} element is sliced to provide the definition for at least one specific identifier. | |
− | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | <element id=" | + | <element id="Patient.identifier"> |
− | <path value=" | + | <path value="Patient.identifier"/> |
<slicing> | <slicing> | ||
<discriminator> | <discriminator> | ||
Regel 17: | Regel 16: | ||
<rules value="open"/> | <rules value="open"/> | ||
</slicing> | </slicing> | ||
− | |||
</element> | </element> | ||
− | <element id=" | + | <element id="Patient.identifier:BSN"> |
− | <path value=" | + | <path value="Patient.identifier"/> |
− | < | + | <max value="1" /> |
− | < | + | <patternIdentifier> |
− | + | <!--<use value="official"/> --> | |
− | + | <system value="http://fhir.nl/fhir/NamingSystem/bsn"/> | |
− | <system value="http:// | + | </patternIdentifier> |
− | |||
− | </ | ||
</element> | </element> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top|Slice definition to map semantic codes to a repeating element.|left=yes}} | ||
− | + | Semantic code provides meaning to a part of or complete resource, e.g. a semantic code can be used to indicate that a {{fhir|MedicationRequest}} represents a zib MedicationAgreement. These semantic codes often need to be present. To also allow other codes to be used they are profiled as patterns. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | {{ | ||
− | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | <element id=" | + | <element id="Observation.component"> |
− | <path value=" | + | <path value="Observation.component" /> |
<slicing> | <slicing> | ||
<discriminator> | <discriminator> | ||
− | + | <type value="value"/> | |
− | + | <path value="code"/> | |
</discriminator> | </discriminator> | ||
− | <rules value="open"/> | + | <rules value="open" /> |
</slicing> | </slicing> | ||
</element> | </element> | ||
− | <element id=" | + | <element id="Observation.component:TypeOfTobaccoUsed"> |
− | <path value=" | + | <path value="Observation.component" /> |
− | < | + | <sliceName value="TypeOfTobaccoUsed" /> |
− | + | <max value="1" /> | |
− | <system value="http:// | + | </element> |
− | </ | + | <element id="Observation.component:TypeOfTobaccoUsed.code"> |
+ | <path value="Observation.component.code" /> | ||
+ | <min value="1"/> | ||
+ | <patternCodeableConcept> | ||
+ | <coding> | ||
+ | <system value="http://snomed.info/sct" /> | ||
+ | <code value="53661000146106" /> | ||
+ | </coding> | ||
+ | </patternCodeableConcept> | ||
</element> | </element> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top|Slice definition | + | {{Collapse top|Slice definition that combines the use of a semantic code and a HCIM concept.|left=yes}} |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | <element id=" | + | <element id="Observation.category"> |
− | <path value=" | + | <path value="Observation.category" /> |
<slicing> | <slicing> | ||
<discriminator> | <discriminator> | ||
− | <type value="value"/> | + | <type value="value" /> |
− | <path value="$this"/> | + | <path value="$this" /> |
</discriminator> | </discriminator> | ||
− | <rules value="open"/> | + | <rules value="open" /> |
</slicing> | </slicing> | ||
+ | <min value="1" /> | ||
+ | </element> | ||
+ | <element id="Observation.category:laboratoryTestResultCode"> | ||
+ | <path value="Observation.category" /> | ||
+ | <sliceName value="laboratoryTestResultCode" /> | ||
+ | <min value="1" /> | ||
+ | <max value="1" /> | ||
+ | <patternCodeableConcept> | ||
+ | <coding> | ||
+ | <system value="http://snomed.info/sct" /> | ||
+ | <code value="49581000146104" /> | ||
+ | </coding> | ||
+ | </patternCodeableConcept> | ||
</element> | </element> | ||
− | <element id=" | + | <element id="Observation.category:ResultType"> |
− | <path value=" | + | <path value="Observation.category" /> |
− | <sliceName value=" | + | <sliceName value="resultType" /> |
+ | <max value="1" /> | ||
<binding> | <binding> | ||
− | <strength value="required"/> | + | <strength value="required" /> |
− | <description value=" | + | <description value="ResultaatTypeCodelijst" /> |
− | < | + | <valueSetReference> |
+ | <reference value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.13.1.1--20171231000000" /> | ||
+ | <display value="ResultaatTypeCodelijst" /> | ||
+ | </valueSetReference> | ||
</binding> | </binding> | ||
</element> | </element> | ||
Regel 136: | Regel 132: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top|Slice definition | + | |
+ | {{Collapse top|Slice definition to allow multiple ValueSet bindings. |left=yes}} | ||
+ | '''Note:'''only applies in rare circumstances when different requirements are present for each ValueSet. | ||
+ | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | <element id=" | + | <element id="Procedure.code.coding"> |
− | <path value=" | + | <path value="Procedure.code.coding"/> |
<slicing> | <slicing> | ||
<discriminator> | <discriminator> | ||
− | <type value="value" /> | + | <type value="value"/> |
− | <path value="$this" /> | + | <path value="$this"/> |
</discriminator> | </discriminator> | ||
− | <rules value="open" /> | + | <rules value="open"/> |
</slicing> | </slicing> | ||
− | |||
</element> | </element> | ||
− | <element id=" | + | <element id="Procedure.code.coding:verrichtingTypeCodelijst"> |
− | <path value=" | + | <path value="Procedure.code.coding"/> |
− | + | <sliceName value="verrichtingTypeCodelijst"/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <sliceName value=" | ||
− | |||
<binding> | <binding> | ||
− | <strength value="required" /> | + | <strength value="required"/> |
− | <description value=" | + | <description value="The name of the procedure using the Verrichtingenthesaurus DHD."/> |
− | < | + | <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.14.1.2--20171231000000"/> |
− | |||
− | |||
− | |||
</binding> | </binding> | ||
</element> | </element> | ||
Regel 177: | Regel 159: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top|Slice definition for multiple mapped concepts to one element that are discriminated by the conformance to a profile | + | {{Collapse top|Slice definition for multiple mapped concepts to one element that are discriminated by the conformance to a profile |left=yes}} |
+ | '''Note:''' try to avoid profile type discriminators as they are more costly to perform by a validator. This slicing definition is discriminated based on the conformance of the target resource to a profile. In this case, the path needs to include the resolve() function to indicate to the validator that is should resolve the reference. | ||
+ | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<element id="DiagnosticReport.result"> | <element id="DiagnosticReport.result"> |
Versie van 25 jan 2021 17:09
Slice examples in XML
This page provides guidance on how slicing is expected in R4 profiles that are created by Nictiz. Examples are provided in XML format but could have been in JSON format as well.
Slice definition to specify 1 or more variations of a concept. |
---|
The FHIR:Identifier element is sliced to provide the definition for at least one specific identifier. <element id="Patient.identifier">
<path value="Patient.identifier"/>
<slicing>
<discriminator>
<type value="value"/>
<path value="$this"/>
</discriminator>
<rules value="open"/>
</slicing>
</element>
<element id="Patient.identifier:BSN">
<path value="Patient.identifier"/>
<max value="1" />
<patternIdentifier>
<!--<use value="official"/> -->
<system value="http://fhir.nl/fhir/NamingSystem/bsn"/>
</patternIdentifier>
</element>
|
Slice definition to map semantic codes to a repeating element. |
---|
Semantic code provides meaning to a part of or complete resource, e.g. a semantic code can be used to indicate that a <element id="Observation.component">
<path value="Observation.component" />
<slicing>
<discriminator>
<type value="value"/>
<path value="code"/>
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Observation.component:TypeOfTobaccoUsed">
<path value="Observation.component" />
<sliceName value="TypeOfTobaccoUsed" />
<max value="1" />
</element>
<element id="Observation.component:TypeOfTobaccoUsed.code">
<path value="Observation.component.code" />
<min value="1"/>
<patternCodeableConcept>
<coding>
<system value="http://snomed.info/sct" />
<code value="53661000146106" />
</coding>
</patternCodeableConcept>
</element>
|
Slice definition that combines the use of a semantic code and a HCIM concept. |
---|
<element id="Observation.category">
<path value="Observation.category" />
<slicing>
<discriminator>
<type value="value" />
<path value="$this" />
</discriminator>
<rules value="open" />
</slicing>
<min value="1" />
</element>
<element id="Observation.category:laboratoryTestResultCode">
<path value="Observation.category" />
<sliceName value="laboratoryTestResultCode" />
<min value="1" />
<max value="1" />
<patternCodeableConcept>
<coding>
<system value="http://snomed.info/sct" />
<code value="49581000146104" />
</coding>
</patternCodeableConcept>
</element>
<element id="Observation.category:ResultType">
<path value="Observation.category" />
<sliceName value="resultType" />
<max value="1" />
<binding>
<strength value="required" />
<description value="ResultaatTypeCodelijst" />
<valueSetReference>
<reference value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.13.1.1--20171231000000" />
<display value="ResultaatTypeCodelijst" />
</valueSetReference>
</binding>
</element>
|
Slice definition to specify the datatype(s) of the element. |
---|
<element id="Observation.value[x]">
<path value="Observation.value[x]"/>
<slicing>
<discriminator>
<type value="type"/>
<path value="$this"/>
</discriminator>
<rules value="open"/>
</slicing>
</element>
<element id="Observation.value[x]:valueCodeableConcept">
<path value="Observation.valueCodeableConcept"/>
<sliceName value="valueCodeableConcept"/>
<type>
<code value="CodeableConcept"/>
</type>
</element>
<element id="Observation.value[x]:valueQuantity">
<path value="Observation.valueQuantity"/>
<sliceName value="valueQuantity"/>
<type>
<code value="Quantity"/>
</type>
</element>
|
Slice definition to allow multiple ValueSet bindings. |
---|
Note:only applies in rare circumstances when different requirements are present for each ValueSet. <element id="Procedure.code.coding">
<path value="Procedure.code.coding"/>
<slicing>
<discriminator>
<type value="value"/>
<path value="$this"/>
</discriminator>
<rules value="open"/>
</slicing>
</element>
<element id="Procedure.code.coding:verrichtingTypeCodelijst">
<path value="Procedure.code.coding"/>
<sliceName value="verrichtingTypeCodelijst"/>
<binding>
<strength value="required"/>
<description value="The name of the procedure using the Verrichtingenthesaurus DHD."/>
<valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.14.1.2--20171231000000"/>
</binding>
</element>
|
Slice definition for multiple mapped concepts to one element that are discriminated by the conformance to a profile |
---|
Note: try to avoid profile type discriminators as they are more costly to perform by a validator. This slicing definition is discriminated based on the conformance of the target resource to a profile. In this case, the path needs to include the resolve() function to indicate to the validator that is should resolve the reference. <element id="DiagnosticReport.result">
<path value="DiagnosticReport.result" />
<slicing>
<discriminator>
<type value="profile" />
<path value="resolve()" />
</discriminator>
<rules value="open" />
</slicing>
<max value="1" />
</element>
<element id="DiagnosticReport.result:measurementValue">
<path value="DiagnosticReport.result" />
<sliceName value="measurementValue" />
<max value="1" />
<type>
<code value="Reference" />
<targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-GeneralMeasurement" />
</type>
</element>
<element id="DiagnosticReport.result:healthCondition">
<path value="DiagnosticReport.result" />
<sliceName value="healthCondition" />
<max value="1" />
<type>
<code value="Reference" />
<targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-FunctionalOrMentalStatus" />
</type>
</element>
|