FHIR Tooling Extensions IG
0.3.0 - Release 0.2.0 International flag

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

Extension: Profile Mapping Extension

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:

  • profile - the overall system profile for a resource
  • supportedProfile 0..* - a particular profile that the system supports

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):

  • Element ID CapabilityStatement.rest.resource

Usage info

Usage:

  • This Extension is not used by any profiles in this Implementation Guide

Formal Views of Extension Content

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:

  • profile - the overall system profile for a resource
  • supportedProfile 0..* - a particular profile that the system supports

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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"

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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"
.... 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

doco 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:

  • profile - the overall system profile for a resource
  • supportedProfile 0..* - a particular profile that the system supports

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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"

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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"
.... 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

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()