FHIR Tooling Extensions IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/FHIR/fhir-tools-ig/ and changes regularly. See the Directory of published versions
Official URL: http://hl7.org/fhir/tools/StructureDefinition/profile-mapping | Version: 0.3.0 | |||
Active as of 2024-12-13 | Maturity Level: 2 | Computable Name: ProfileMapping | ||
Other Identifiers: OID:2.16.840.1.113883.4.642.40.1.42.37 |
Extension definition for Mapping between API
and Profile
. CapabilityStatement.rest.resource.profile has two different profile statements:
What is missing from this picture is defining which resources conform to which profile. Sometimes, of course, it's impossible to define this, but quite often, there's an algorithmic relationship that a server or client could use to know that resources with a particular set of values will or should conform to a given profile.
This extension defines a relationship between a search string and a profile. Any resource that meets a given search string will be expected to conform to the particular profile. If more than one profile is nominated for a search string, resources SHALL conform to all the listed profiles. The last extension can be without a search matches and remaining resources
This extension repeats, and order is important - once a match is found, this profile is the one that applies. Todo: If this extension is useful, it will be moved to the core extensions pack
Context of Use
This extension may be used on the following element(s):
Usage info
Usage:
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Extension
Summary
Simple Extension of type base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference, SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta: Extension definition for Mapping between API
and Profile
. CapabilityStatement.rest.resource.profile has two different profile statements:
What is missing from this picture is defining which resources conform to which profile. Sometimes, of course, it's impossible to define this, but quite often, there's an algorithmic relationship that a server or client could use to know that resources with a particular set of values will or should conform to a given profile.
This extension defines a relationship between a search string and a profile. Any resource that meets a given search string will be expected to conform to the particular profile. If more than one profile is nominated for a search string, resources SHALL conform to all the listed profiles. The last extension can be without a search matches and remaining resources
This extension repeats, and order is important - once a match is found, this profile is the one that applies. Todo: If this extension is useful, it will be moved to the core extensions pack
Maturity: 2
This structure is derived from Extension
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Extension | 0..* | Extension | profile-mapping | |
Slices for extension | Content/Rules for all slices | |||
extension:search | 1..1 | Extension | The search string for this mapping | |
extension | 0..0 | |||
url | 1..1 | uri | "search" | |
value[x] | 0..1 | string | Value of extension | |
extension:profile | 1..* | Extension | The profile that must match this search string | |
extension | 0..0 | |||
url | 1..1 | uri | "profile" | |
value[x] | 1..1 | canonical(StructureDefinition) | Value of extension | |
extension:documentation | 0..1 | Extension | Documentation about this particular profile-mapping | |
extension | 0..0 | |||
url | 1..1 | uri | "documentation" | |
value[x] | 1..1 | markdown | Value of extension | |
url | 1..1 | uri | "http://hl7.org/fhir/tools/StructureDefinition/profile-mapping" | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Extension | 0..* | Extension | profile-mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
Slices for extension | 2..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
extension:search | 1..1 | Extension | The search string for this mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "search" | |
value[x] | 0..1 | string | Value of extension | |
extension:profile | 1..* | Extension | The profile that must match this search string | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "profile" | |
value[x] | 1..1 | canonical(StructureDefinition) | Value of extension | |
extension:documentation | 0..1 | Extension | Documentation about this particular profile-mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "documentation" | |
value[x] | 1..1 | markdown | Value of extension | |
url | 1..1 | uri | "http://hl7.org/fhir/tools/StructureDefinition/profile-mapping" | |
value[x] | 0..1 | Value of extension | ||
valueBase64Binary | base64Binary | |||
valueBoolean | boolean | |||
valueCanonical | canonical(Any) | |||
valueCode | code | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueDecimal | decimal | |||
valueId | id | |||
valueInstant | instant | |||
valueInteger | integer | |||
valueInteger64 | integer64 | |||
valueMarkdown | markdown | |||
valueOid | oid | |||
valuePositiveInt | positiveInt | |||
valueString | string | |||
valueTime | time | |||
valueUnsignedInt | unsignedInt | |||
valueUri | uri | |||
valueUrl | url | |||
valueUuid | uuid | |||
valueAddress | Address | |||
valueAge | Age | |||
valueAnnotation | Annotation | |||
valueAttachment | Attachment | |||
valueCodeableConcept | CodeableConcept | |||
valueCodeableReference | CodeableReference | |||
valueCoding | Coding | |||
valueContactPoint | ContactPoint | |||
valueCount | Count | |||
valueDistance | Distance | |||
valueDuration | Duration | |||
valueHumanName | HumanName | |||
valueIdentifier | Identifier | |||
valueMoney | Money | |||
valuePeriod | Period | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueRatioRange | RatioRange | |||
valueReference | Reference(Any) | |||
valueSampledData | SampledData | |||
valueSignature | Signature | |||
valueTiming | Timing | |||
valueContactDetail | ContactDetail | |||
valueDataRequirement | DataRequirement | |||
valueExpression | Expression | |||
valueParameterDefinition | ParameterDefinition | |||
valueRelatedArtifact | RelatedArtifact | |||
valueTriggerDefinition | TriggerDefinition | |||
valueUsageContext | UsageContext | |||
valueAvailability | Availability | |||
valueExtendedContactDetail | ExtendedContactDetail | |||
valueDosage | Dosage | |||
valueMeta | Meta | |||
Documentation for this format |
This structure is derived from Extension
Summary
Simple Extension of type base64Binary, boolean, canonical, code, date, dateTime, decimal, id, instant, integer, integer64, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, CodeableReference, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, RatioRange, Reference, SampledData, Signature, Timing, ContactDetail, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Availability, ExtendedContactDetail, Dosage, Meta: Extension definition for Mapping between API
and Profile
. CapabilityStatement.rest.resource.profile has two different profile statements:
What is missing from this picture is defining which resources conform to which profile. Sometimes, of course, it's impossible to define this, but quite often, there's an algorithmic relationship that a server or client could use to know that resources with a particular set of values will or should conform to a given profile.
This extension defines a relationship between a search string and a profile. Any resource that meets a given search string will be expected to conform to the particular profile. If more than one profile is nominated for a search string, resources SHALL conform to all the listed profiles. The last extension can be without a search matches and remaining resources
This extension repeats, and order is important - once a match is found, this profile is the one that applies. Todo: If this extension is useful, it will be moved to the core extensions pack
Maturity: 2
Differential View
This structure is derived from Extension
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Extension | 0..* | Extension | profile-mapping | |
Slices for extension | Content/Rules for all slices | |||
extension:search | 1..1 | Extension | The search string for this mapping | |
extension | 0..0 | |||
url | 1..1 | uri | "search" | |
value[x] | 0..1 | string | Value of extension | |
extension:profile | 1..* | Extension | The profile that must match this search string | |
extension | 0..0 | |||
url | 1..1 | uri | "profile" | |
value[x] | 1..1 | canonical(StructureDefinition) | Value of extension | |
extension:documentation | 0..1 | Extension | Documentation about this particular profile-mapping | |
extension | 0..0 | |||
url | 1..1 | uri | "documentation" | |
value[x] | 1..1 | markdown | Value of extension | |
url | 1..1 | uri | "http://hl7.org/fhir/tools/StructureDefinition/profile-mapping" | |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Extension | 0..* | Extension | profile-mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
Slices for extension | 2..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
extension:search | 1..1 | Extension | The search string for this mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "search" | |
value[x] | 0..1 | string | Value of extension | |
extension:profile | 1..* | Extension | The profile that must match this search string | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "profile" | |
value[x] | 1..1 | canonical(StructureDefinition) | Value of extension | |
extension:documentation | 0..1 | Extension | Documentation about this particular profile-mapping | |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..0 | |||
url | 1..1 | uri | "documentation" | |
value[x] | 1..1 | markdown | Value of extension | |
url | 1..1 | uri | "http://hl7.org/fhir/tools/StructureDefinition/profile-mapping" | |
value[x] | 0..1 | Value of extension | ||
valueBase64Binary | base64Binary | |||
valueBoolean | boolean | |||
valueCanonical | canonical(Any) | |||
valueCode | code | |||
valueDate | date | |||
valueDateTime | dateTime | |||
valueDecimal | decimal | |||
valueId | id | |||
valueInstant | instant | |||
valueInteger | integer | |||
valueInteger64 | integer64 | |||
valueMarkdown | markdown | |||
valueOid | oid | |||
valuePositiveInt | positiveInt | |||
valueString | string | |||
valueTime | time | |||
valueUnsignedInt | unsignedInt | |||
valueUri | uri | |||
valueUrl | url | |||
valueUuid | uuid | |||
valueAddress | Address | |||
valueAge | Age | |||
valueAnnotation | Annotation | |||
valueAttachment | Attachment | |||
valueCodeableConcept | CodeableConcept | |||
valueCodeableReference | CodeableReference | |||
valueCoding | Coding | |||
valueContactPoint | ContactPoint | |||
valueCount | Count | |||
valueDistance | Distance | |||
valueDuration | Duration | |||
valueHumanName | HumanName | |||
valueIdentifier | Identifier | |||
valueMoney | Money | |||
valuePeriod | Period | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueRatioRange | RatioRange | |||
valueReference | Reference(Any) | |||
valueSampledData | SampledData | |||
valueSignature | Signature | |||
valueTiming | Timing | |||
valueContactDetail | ContactDetail | |||
valueDataRequirement | DataRequirement | |||
valueExpression | Expression | |||
valueParameterDefinition | ParameterDefinition | |||
valueRelatedArtifact | RelatedArtifact | |||
valueTriggerDefinition | TriggerDefinition | |||
valueUsageContext | UsageContext | |||
valueAvailability | Availability | |||
valueExtendedContactDetail | ExtendedContactDetail | |||
valueDosage | Dosage | |||
valueMeta | Meta | |||
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Id | Grade | Path(s) | Details | Requirements |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |