CDA to FHIR Maps
0.1.0 - ci-build

CDA to FHIR Maps, published by HL7 Italy. 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-it/cda2fhir/ and changes regularly. See the Directory of published versions

## Resource Profile: StructureMapProfile

Official URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/StructureMapProfile | Version: 0.1.0
Draft as of 2025-10-01 | Computable Name: StructureMapProfile

Usages:

- This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data Constraints: smp-0
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique)
name | Σ C | 1..1 | string | Name for this structure map (computer friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
group | Σ | 1..* | BackboneElement | Named sections for reader convenience
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Human-readable label
typeMode | Σ | 1..1 | code | none | 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.
input | Σ | 1..* | BackboneElement | Named instance provided when invoking the map
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name for this instance of data
mode | Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data.
rule | Σ | 1..* | BackboneElement | Transform Rule from source to target
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of the rule for internal references
source | Σ | 1..* | BackboneElement | Source inputs to the mapping
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 1..1 | id | Type or variable this rule applies to
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
StructureMap.status | Base | required | PublicationStatus | 📍4.0.1 | FHIR Std.
StructureMap.group.typeMode | Base | required | StructureMapGroupTypeMode | 📍4.0.1 | FHIR Std.
StructureMap.group.input.​mode | Base | required | StructureMapInputMode | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
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 in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
smp-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.matches('[A-Z]([A-Za-z0-9_]){0,254}')`

This structure is derived from StructureMap

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap |  | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data Constraints: smp-0
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 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
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique)
identifier | Σ | 0..* | Identifier | Additional identifier for the structure map
version | Σ | 0..1 | string | Business version of the structure map
name | Σ C | 1..1 | string | Name for this structure map (computer friendly)
title | Σ | 0..1 | string | Name for this structure map (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the structure map
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this structure map is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
structure | Σ | 0..* | BackboneElement | Structure Definition used by this map
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
url | Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition
mode | Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping.
alias | Σ | 0..1 | string | Name for type in this map
documentation |  | 0..1 | string | Documentation on use of structure
import | Σ | 0..* | canonical(StructureMap) | Other maps used by this map (canonical URLs)
group | Σ | 1..* | BackboneElement | Named sections for reader convenience
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Human-readable label
extends | Σ | 0..1 | id | Another group that this group adds rules to
typeMode | Σ | 1..1 | code | none | 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.
documentation | Σ | 0..1 | string | Additional description/explanation for group
input | Σ | 1..* | BackboneElement | Named instance provided when invoking the map
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name for this instance of data
type | Σ | 0..1 | string | Type for this instance of data
mode | Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data.
documentation |  | 0..1 | string | Documentation for this instance of data
rule | Σ | 1..* | BackboneElement | Transform Rule from source to target
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of the rule for internal references
source | Σ | 1..* | BackboneElement | Source inputs to the mapping
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 1..1 | id | Type or variable this rule applies to
min | Σ | 0..1 | integer | Specified minimum cardinality
max | Σ | 0..1 | string | Specified maximum cardinality (number or *)
type | Σ | 0..1 | string | Rule only applies if source has this type
defaultValue[x] | Σ | 0..1 |  | Default value if no value exists
defaultValueBase64Binary |  |  | base64Binary |
defaultValueBoolean |  |  | boolean |
defaultValueCanonical |  |  | canonical(Any) |
defaultValueCode |  |  | code |
defaultValueDate |  |  | date |
defaultValueDateTime |  |  | dateTime |
defaultValueDecimal |  |  | decimal |
defaultValueId |  |  | id |
defaultValueInstant |  |  | instant |
defaultValueInteger |  |  | integer |
defaultValueMarkdown |  |  | markdown |
defaultValueOid |  |  | oid |
defaultValuePositiveInt |  |  | positiveInt |
defaultValueString |  |  | string |
defaultValueTime |  |  | time |
defaultValueUnsignedInt |  |  | unsignedInt |
defaultValueUri |  |  | uri |
defaultValueUrl |  |  | url |
defaultValueUuid |  |  | uuid |
defaultValueAddress |  |  | Address |
defaultValueAge |  |  | Age |
defaultValueAnnotation |  |  | Annotation |
defaultValueAttachment |  |  | Attachment |
defaultValueCodeableConcept |  |  | CodeableConcept |
defaultValueCoding |  |  | Coding |
defaultValueContactPoint |  |  | ContactPoint |
defaultValueCount |  |  | Count |
defaultValueDistance |  |  | Distance |
defaultValueDuration |  |  | Duration |
defaultValueHumanName |  |  | HumanName |
defaultValueIdentifier |  |  | Identifier |
defaultValueMoney |  |  | Money |
defaultValuePeriod |  |  | Period |
defaultValueQuantity |  |  | Quantity |
defaultValueRange |  |  | Range |
defaultValueRatio |  |  | Ratio |
defaultValueReference |  |  | Reference(Any) |
defaultValueSampledData |  |  | SampledData |
defaultValueSignature |  |  | Signature |
defaultValueTiming |  |  | Timing |
defaultValueContactDetail |  |  | ContactDetail |
defaultValueContributor |  |  | Contributor |
defaultValueDataRequirement |  |  | DataRequirement |
defaultValueExpression |  |  | Expression |
defaultValueParameterDefinition |  |  | ParameterDefinition |
defaultValueRelatedArtifact |  |  | RelatedArtifact |
defaultValueTriggerDefinition |  |  | TriggerDefinition |
defaultValueUsageContext |  |  | UsageContext |
defaultValueDosage |  |  | Dosage |
defaultValueMeta |  |  | Meta |
element | Σ | 0..1 | string | Optional field for this source
listMode | Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source.
variable | Σ | 0..1 | id | Named context for field, if a field is specified
condition | Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply
check | Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing
logMessage | Σ | 0..1 | string | Message to put in log if source exists (FHIRPath)
target | Σ C | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1, smp-2
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 0..1 | id | Type or variable this rule applies to
contextType | Σ | 0..1 | code | type | variable Binding: StructureMapContextType (required): How to interpret the context.
element | Σ | 0..1 | string | Field to create in the context
variable | Σ | 0..1 | id | Named context for field, if desired, and a field is specified
listMode | Σ | 0..* | code | first | share | last | collate Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production.
listRuleId | Σ | 0..1 | id | Internal rule reference for shared list items
transform | Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created.
parameter | Σ | 0..* | BackboneElement | Parameters to the transform
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
value[x] | Σ | 1..1 |  | Parameter value - variable or literal
valueId |  |  | id |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueDecimal |  |  | decimal |
rule | Σ | 0..* | See rule (StructureMap) | Rules contained in this rule
dependent | Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of a rule or group to apply
variable | Σ | 1..* | string | Variable to pass to the rule or group
documentation |  | 0..1 | string | Documentation for this instance of data
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
StructureMap.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
StructureMap.status | Base | required | PublicationStatus | 📍4.0.1 | FHIR Std.
StructureMap.jurisdiction | Base | extensible | Jurisdiction | 📍4.0.1 | FHIR Std.
StructureMap.structure.​mode | Base | required | StructureMapModelMode | 📍4.0.1 | FHIR Std.
StructureMap.group.typeMode | Base | required | StructureMapGroupTypeMode | 📍4.0.1 | FHIR Std.
StructureMap.group.input.​mode | Base | required | StructureMapInputMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​source.listMode | Base | required | StructureMapSourceListMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.contextType | Base | required | StructureMapContextType | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.listMode | Base | required | StructureMapTargetListMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.transform | Base | required | StructureMapTransform | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
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 in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
smp-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.matches('[A-Z]([A-Za-z0-9_]){0,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.target | Must have a contextType if you have a context | `context.exists() implies contextType.exists()`

This structure is derived from StructureMap

Summary

Extensions

This structure refers to these extensions:

- http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data Constraints: smp-0
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique)
name | Σ C | 1..1 | string | Name for this structure map (computer friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
group | Σ | 1..* | BackboneElement | Named sections for reader convenience
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Human-readable label
typeMode | Σ | 1..1 | code | none | 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.
input | Σ | 1..* | BackboneElement | Named instance provided when invoking the map
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name for this instance of data
mode | Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data.
rule | Σ | 1..* | BackboneElement | Transform Rule from source to target
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of the rule for internal references
source | Σ | 1..* | BackboneElement | Source inputs to the mapping
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 1..1 | id | Type or variable this rule applies to
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
StructureMap.status | Base | required | PublicationStatus | 📍4.0.1 | FHIR Std.
StructureMap.group.typeMode | Base | required | StructureMapGroupTypeMode | 📍4.0.1 | FHIR Std.
StructureMap.group.input.​mode | Base | required | StructureMapInputMode | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
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 in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
smp-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.matches('[A-Z]([A-Za-z0-9_]){0,254}')`

Differential View

This structure is derived from StructureMap

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap |  | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data Constraints: smp-0
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 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
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:referenceConceptMap |  | 0..* | base64Binary, boolean, canonical(), code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, url, uuid, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage, Meta | reference URL: http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique)
identifier | Σ | 0..* | Identifier | Additional identifier for the structure map
version | Σ | 0..1 | string | Business version of the structure map
name | Σ C | 1..1 | string | Name for this structure map (computer friendly)
title | Σ | 0..1 | string | Name for this structure map (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the structure map
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for structure map (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this structure map is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
structure | Σ | 0..* | BackboneElement | Structure Definition used by this map
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
url | Σ | 1..1 | canonical(StructureDefinition) | Canonical reference to structure definition
mode | Σ | 1..1 | code | source | queried | target | produced Binding: StructureMapModelMode (required): How the referenced structure is used in this mapping.
alias | Σ | 0..1 | string | Name for type in this map
documentation |  | 0..1 | string | Documentation on use of structure
import | Σ | 0..* | canonical(StructureMap) | Other maps used by this map (canonical URLs)
group | Σ | 1..* | BackboneElement | Named sections for reader convenience
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Human-readable label
extends | Σ | 0..1 | id | Another group that this group adds rules to
typeMode | Σ | 1..1 | code | none | 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.
documentation | Σ | 0..1 | string | Additional description/explanation for group
input | Σ | 1..* | BackboneElement | Named instance provided when invoking the map
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name for this instance of data
type | Σ | 0..1 | string | Type for this instance of data
mode | Σ | 1..1 | code | source | target Binding: StructureMapInputMode (required): Mode for this instance of data.
documentation |  | 0..1 | string | Documentation for this instance of data
rule | Σ | 1..* | BackboneElement | Transform Rule from source to target
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of the rule for internal references
source | Σ | 1..* | BackboneElement | Source inputs to the mapping
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 1..1 | id | Type or variable this rule applies to
min | Σ | 0..1 | integer | Specified minimum cardinality
max | Σ | 0..1 | string | Specified maximum cardinality (number or *)
type | Σ | 0..1 | string | Rule only applies if source has this type
defaultValue[x] | Σ | 0..1 |  | Default value if no value exists
defaultValueBase64Binary |  |  | base64Binary |
defaultValueBoolean |  |  | boolean |
defaultValueCanonical |  |  | canonical(Any) |
defaultValueCode |  |  | code |
defaultValueDate |  |  | date |
defaultValueDateTime |  |  | dateTime |
defaultValueDecimal |  |  | decimal |
defaultValueId |  |  | id |
defaultValueInstant |  |  | instant |
defaultValueInteger |  |  | integer |
defaultValueMarkdown |  |  | markdown |
defaultValueOid |  |  | oid |
defaultValuePositiveInt |  |  | positiveInt |
defaultValueString |  |  | string |
defaultValueTime |  |  | time |
defaultValueUnsignedInt |  |  | unsignedInt |
defaultValueUri |  |  | uri |
defaultValueUrl |  |  | url |
defaultValueUuid |  |  | uuid |
defaultValueAddress |  |  | Address |
defaultValueAge |  |  | Age |
defaultValueAnnotation |  |  | Annotation |
defaultValueAttachment |  |  | Attachment |
defaultValueCodeableConcept |  |  | CodeableConcept |
defaultValueCoding |  |  | Coding |
defaultValueContactPoint |  |  | ContactPoint |
defaultValueCount |  |  | Count |
defaultValueDistance |  |  | Distance |
defaultValueDuration |  |  | Duration |
defaultValueHumanName |  |  | HumanName |
defaultValueIdentifier |  |  | Identifier |
defaultValueMoney |  |  | Money |
defaultValuePeriod |  |  | Period |
defaultValueQuantity |  |  | Quantity |
defaultValueRange |  |  | Range |
defaultValueRatio |  |  | Ratio |
defaultValueReference |  |  | Reference(Any) |
defaultValueSampledData |  |  | SampledData |
defaultValueSignature |  |  | Signature |
defaultValueTiming |  |  | Timing |
defaultValueContactDetail |  |  | ContactDetail |
defaultValueContributor |  |  | Contributor |
defaultValueDataRequirement |  |  | DataRequirement |
defaultValueExpression |  |  | Expression |
defaultValueParameterDefinition |  |  | ParameterDefinition |
defaultValueRelatedArtifact |  |  | RelatedArtifact |
defaultValueTriggerDefinition |  |  | TriggerDefinition |
defaultValueUsageContext |  |  | UsageContext |
defaultValueDosage |  |  | Dosage |
defaultValueMeta |  |  | Meta |
element | Σ | 0..1 | string | Optional field for this source
listMode | Σ | 0..1 | code | first | not_first | last | not_last | only_one Binding: StructureMapSourceListMode (required): If field is a list, how to manage the source.
variable | Σ | 0..1 | id | Named context for field, if a field is specified
condition | Σ | 0..1 | string | FHIRPath expression - must be true or the rule does not apply
check | Σ | 0..1 | string | FHIRPath expression - must be true or the mapping engine throws an error instead of completing
logMessage | Σ | 0..1 | string | Message to put in log if source exists (FHIRPath)
target | Σ C | 0..* | BackboneElement | Content to create because of this mapping rule Constraints: smp-1, smp-2
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
context | Σ | 0..1 | id | Type or variable this rule applies to
contextType | Σ | 0..1 | code | type | variable Binding: StructureMapContextType (required): How to interpret the context.
element | Σ | 0..1 | string | Field to create in the context
variable | Σ | 0..1 | id | Named context for field, if desired, and a field is specified
listMode | Σ | 0..* | code | first | share | last | collate Binding: StructureMapTargetListMode (required): If field is a list, how to manage the production.
listRuleId | Σ | 0..1 | id | Internal rule reference for shared list items
transform | Σ | 0..1 | code | create | copy + Binding: StructureMapTransform (required): How data is copied/created.
parameter | Σ | 0..* | BackboneElement | Parameters to the transform
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
value[x] | Σ | 1..1 |  | Parameter value - variable or literal
valueId |  |  | id |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueDecimal |  |  | decimal |
rule | Σ | 0..* | See rule (StructureMap) | Rules contained in this rule
dependent | Σ | 0..* | BackboneElement | Which other rules to apply in the context of this rule
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name | Σ | 1..1 | id | Name of a rule or group to apply
variable | Σ | 1..* | string | Variable to pass to the rule or group
documentation |  | 0..1 | string | Documentation for this instance of data
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
StructureMap.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
StructureMap.status | Base | required | PublicationStatus | 📍4.0.1 | FHIR Std.
StructureMap.jurisdiction | Base | extensible | Jurisdiction | 📍4.0.1 | FHIR Std.
StructureMap.structure.​mode | Base | required | StructureMapModelMode | 📍4.0.1 | FHIR Std.
StructureMap.group.typeMode | Base | required | StructureMapGroupTypeMode | 📍4.0.1 | FHIR Std.
StructureMap.group.input.​mode | Base | required | StructureMapInputMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​source.listMode | Base | required | StructureMapSourceListMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.contextType | Base | required | StructureMapContextType | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.listMode | Base | required | StructureMapTargetListMode | 📍4.0.1 | FHIR Std.
StructureMap.group.rule.​target.transform | Base | required | StructureMapTransform | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
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 in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
smp-0 | warning | StructureMap | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.matches('[A-Z]([A-Za-z0-9_]){0,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.target | Must have a contextType if you have a context | `context.exists() implies contextType.exists()`

This structure is derived from StructureMap

Summary

Extensions

This structure refers to these extensions:

- http://hl7.it/fhir/cda2fhir/StructureDefinition/references-C

Other representations of profile: CSV, Excel, Schematron