FHIR Mapping Language (FML), published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/mapping-language-ig/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/StructureDefinition/StructureMap | Version: 0.1.0 | |||
| Standards status: Trial-use | Maturity Level: 2 | Computable Name: StructureMap | ||
| Other Identifiers: OID:2.16.840.1.113883.4.642.5.1100 | ||||
A Map of relationships between 2 structures that can be used to transform data.
The StructureMap resource defines a detailed set of rules that describe how one Structure is related to another and provides sufficient detail to allow for automated conversion of instances.
The intention of the structure map resource is to allow a specialist in formats and interoperability to specify the full relationships between two structures (e.g. a CDA document and a set of FHIR resources), and then many different systems - both testing and production clinical systems - can leverage that to automatically transform from one format to the other.
Maps are unidirectional: they map from the source structure to the target structure, and no reverse map is implied. Even if the mapping is simple, and loss-less, it cannot be assumed that there are no conditions that might additionally apply in the reverse direction.
The mapping language, along with a concrete syntax, is defined in detail in the FHIR Mapping Language. The StructureMap resource represents the abstract syntax, and the concrete syntax is the recommended narrative representation for a StructureMap. See also the Tutorial.
Note that many mappings between models only establish conceptual equivalence between the structures. These models are useful because they quickly convey how the structures are related to humans, whereas more maps with sufficient detail to support instance transformation are necessarily full of fine detail that can obscure the conceptual relationships. The ConceptMap resource is suitable for representing high level relationships between models, while this StructureMap resource is intended to describe the full details that need to be known in order to transform an instance of data from one structure to another.
The StructureMap resource assumes that both the source and the target models are fully defined using StructureDefinition resources - either resources, or logical models, and is described accordingly. However, there is no direct relationship between the mapping language contained in the StructureMap resource, and the existence of the appropriate structure definitions, so that this mapping language could be used to define a map from an HL7 V2 message to a CDA document. Note, that various implementation contexts may introduce a direct relationship (e.g. see [op to defined]).
It's possible to apply the mapping language to structures that do not even have (or cannot have) formally defined types, although the type-related parts of the mapping language cannot be used in these cases.
The Mapping Language and the StructureMap resource are built
on top of FHIRPath, and a FHIRPath implementation is required in order to
execute a StructureMap.
Each structure map contains, in addition to the standard metadata that all conformance resources contain, the following information:
Each group of rules defines a set of input and output variables that must be passed when the group is invoked in a particular context. When a group is invoked, all the rules in the group are checked to see whether they apply.
Each rule may have some or all of the following properties:
The mapping language is entirely declarative; there is no imperative or procedural aspects to the definitions.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |||||
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map | ||||
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |||||
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant | ||||
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group | ||||
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references | ||||
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | StructureMap.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| dom-2 | error | StructureMap | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | StructureMap | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | StructureMap | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
This structure is derived from DomainResource
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 |
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) |
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map |
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map |
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
Coding | |||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) |
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage |
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed |
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) |
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher |
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support |
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map |
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition |
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. |
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map |
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) |
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules |
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name |
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant |
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience |
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 |
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to |
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. |
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group |
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map |
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. |
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target |
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references |
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) |
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule |
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group |
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |||||
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map | ||||
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |||||
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant | ||||
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group | ||||
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references | ||||
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | StructureMap.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| dom-2 | error | StructureMap | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | StructureMap | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | StructureMap | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
This structure is derived from DomainResource
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |||||
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map | ||||
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |||||
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant | ||||
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group | ||||
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references | ||||
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | StructureMap.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| dom-2 | error | StructureMap | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | StructureMap | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | StructureMap | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
Differential View
This structure is derived from DomainResource
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 |
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) |
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map |
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map |
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
Coding | |||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) |
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage |
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed |
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) |
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher |
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support |
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map |
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition |
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. |
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map |
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) |
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules |
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name |
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant |
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience |
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 |
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to |
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. |
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group |
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map |
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data |
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. |
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target |
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references |
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) |
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to |
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform |
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule |
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group |
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | DomainResource | A Map of relationships between 2 structures that can be used to transform data Elements defined in Ancestors:id, meta, implicitRules, language, text, contained, extension, modifierExtension Interfaces Implemented: CanonicalResource, MetadataResource Constraints: cnl-0 | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the structure map | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the structure map | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this structure map (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the structure map | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Jurisdiction of the authority that maintains the structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this structure map is defined | |||||
![]() ![]() |
0..1 | markdown | Notice about intellectual property ownership, can include restrictions on use | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
Σ | 0..* | BackboneElement | Structure Definition used by this map | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Name for type in this map | ||||
![]() ![]() ![]() |
0..1 | string | Documentation on use of structure | |||||
![]() ![]() |
Σ | 0..* | canonical(Structure Map) | Other maps used by this map (canonical URLs) | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Definition of the constant value used in the map rules | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Constant name | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - value of the constant | ||||
![]() ![]() |
Σ | 1..* | BackboneElement | Named sections for reader convenience | ||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
ΣC | 1..1 | string | Human-readable label Constraints: sm-1 | ||||
![]() ![]() ![]() |
Σ | 0..1 | id | Another group that this group adds rules to | ||||
![]() ![]() ![]() |
Σ | 0..1 | code | types | type-and-types Binding: StructureMapGroupTypeMode (required): If this is the default rule set to apply for the source type, or this combination of types. | ||||
![]() ![]() ![]() |
Σ | 0..1 | string | Additional description/explanation for group | ||||
![]() ![]() ![]() |
Σ | 1..* | BackboneElement | Named instance provided when invoking the map | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Type for this instance of data | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data. | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Transform Rule from source to target | ||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Name of the rule for internal references | ||||
![]() ![]() ![]() ![]() |
ΣC | 1..* | BackboneElement | Source inputs to the mapping Constraints: smp-2 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Type or variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | unsignedInt | Specified minimum cardinality | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Specified maximum cardinality (number or *) Constraints: smp-3 | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Rule only applies if source has this type | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Default value FHIRPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | string | Optional field for this source This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Message to put in log if source exists (FHIRPath) | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1 | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..1 | string | Variable this rule applies to | ||||
![]() ![]() ![]() ![]() ![]() |
ΣC | 0..* | string | Field to create in the context This repeating element order: Element names walk down the heirarchy, stepping into child elements | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Named context for field, if desired, and a field is specified | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | code | first | share | last | single Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | id | Internal rule reference for shared list items | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created. | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Parameters to the transform | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | Parameter value - variable or literal | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..* | See rule | Rules contained in this rule | ||||
![]() ![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | id | Name of a rule or group to apply | ||||
![]() ![]() ![]() ![]() ![]() |
Σ | 1..* | See parameter | Parameter to pass to the rule or group | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Documentation for this instance of data | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| StructureMap.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| StructureMap.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦1.0.0 | THO v7.2 |
| StructureMap.structure.mode | Base | required | Structure Map Model Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.typeMode | Base | required | Structure Map Group Type Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.input.mode | Base | required | Structure Map Input Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.source.listMode | Base | required | Structure Map Source List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.listMode | Base | required | Structure Map Target List Mode | 📦6.0.0-ballot3 | FHIR Std. |
| StructureMap.group.rule.target.transform | Base | required | Structure Map Transform | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | StructureMap.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| dom-2 | error | StructureMap | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | StructureMap | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource |
contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
|
| dom-4 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated |
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
|
| dom-5 | error | StructureMap | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | StructureMap | A resource should have narrative for robust management |
text.`div`.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| sm-1 | error | StructureMap.group.name | Group name should be usable as an identifier |
matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| smp-1 | error | StructureMap.group.rule.target | Can only have an element if you have a context |
element.exists() implies context.exists()
|
| smp-2 | error | StructureMap.group.rule.source | Min <= Max |
min.empty() or max.empty() or (max = '*') or iif(max != '*', min <= max.toInteger())
|
| smp-3 | error | StructureMap.group.rule.source.max | Max SHALL be a number or "*" |
empty() or ($this = '*') or (toInteger() >= 0)
|
This structure is derived from DomainResource
Other representations of profile: CSV, Excel, Schematron