SMART Base
0.1.0 - ci-build
SMART Base, published by WHO. 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/WorldHealthOrganization/smart-base/tree/main and changes regularly. See the Directory of published versions
Official URL: http://smart.who.int/base/StructureDefinition/SGStructureMap | Version: 0.1.0 | |||
Draft as of 2024-10-06 | Computable Name: SGStructureMap |
Defines the minimum expectations for StructureMap resources used in SMART Guidelines
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from StructureMap
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
StructureMap | StructureMap | |||
version | 1..1 | string | Business version of the structure map | |
title | 1..1 | string | Name for this structure map (human friendly) | |
publisher | 1..1 | string | Name of the publisher (organization or individual) | |
description | 1..1 | markdown | Natural language description of the structure map | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data smp-0: Name should be usable as an identifier for the module by machine processing applications such as code generation |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) |
version | Σ | 1..1 | string | Business version of the structure map |
name | ΣC | 1..1 | string | Name for this structure map (computer friendly) |
title | Σ | 1..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. |
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) |
description | 1..1 | markdown | Natural language description of the structure map | |
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 |
Path | Conformance | ValueSet | URI |
StructureMap.status | required | PublicationStatushttp://hl7.org/fhir/ValueSet/publication-status|4.0.1 from the FHIR Standard | |
StructureMap.group.typeMode | required | StructureMapGroupTypeModehttp://hl7.org/fhir/ValueSet/map-group-type-mode|4.0.1 from the FHIR Standard | |
StructureMap.group.input.mode | required | StructureMapInputModehttp://hl7.org/fhir/ValueSet/map-input-mode|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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}') |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data smp-0: Name should be usable as an identifier for the module by machine processing applications such as code generation | ||||
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.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
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 | Σ | 1..1 | string | Business version of the structure map | ||||
name | ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
title | Σ | 1..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 | Σ | 1..1 | string | Name of the publisher (organization or individual) | ||||
contact | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | 1..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 smp-1: Can only have an element if you have a context smp-2: Must have a contextType if you have a context | ||||
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 |
Path | Conformance | ValueSet | URI | |||
StructureMap.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
StructureMap.status | required | PublicationStatushttp://hl7.org/fhir/ValueSet/publication-status|4.0.1 from the FHIR Standard | ||||
StructureMap.jurisdiction | extensible | Jurisdiction ValueSethttp://hl7.org/fhir/ValueSet/jurisdiction from the FHIR Standard | ||||
StructureMap.structure.mode | required | StructureMapModelModehttp://hl7.org/fhir/ValueSet/map-model-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.typeMode | required | StructureMapGroupTypeModehttp://hl7.org/fhir/ValueSet/map-group-type-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.input.mode | required | StructureMapInputModehttp://hl7.org/fhir/ValueSet/map-input-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.source.listMode | required | StructureMapSourceListModehttp://hl7.org/fhir/ValueSet/map-source-list-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.contextType | required | StructureMapContextTypehttp://hl7.org/fhir/ValueSet/map-context-type|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.listMode | required | StructureMapTargetListModehttp://hl7.org/fhir/ValueSet/map-target-list-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.transform | required | StructureMapTransformhttp://hl7.org/fhir/ValueSet/map-transform|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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
Differential View
This structure is derived from StructureMap
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
StructureMap | StructureMap | |||
version | 1..1 | string | Business version of the structure map | |
title | 1..1 | string | Name for this structure map (human friendly) | |
publisher | 1..1 | string | Name of the publisher (organization or individual) | |
description | 1..1 | markdown | Natural language description of the structure map | |
Documentation for this format |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data smp-0: Name should be usable as an identifier for the module by machine processing applications such as code generation |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this structure map, represented as a URI (globally unique) |
version | Σ | 1..1 | string | Business version of the structure map |
name | ΣC | 1..1 | string | Name for this structure map (computer friendly) |
title | Σ | 1..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. |
publisher | Σ | 1..1 | string | Name of the publisher (organization or individual) |
description | 1..1 | markdown | Natural language description of the structure map | |
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 |
Path | Conformance | ValueSet | URI |
StructureMap.status | required | PublicationStatushttp://hl7.org/fhir/ValueSet/publication-status|4.0.1 from the FHIR Standard | |
StructureMap.group.typeMode | required | StructureMapGroupTypeModehttp://hl7.org/fhir/ValueSet/map-group-type-mode|4.0.1 from the FHIR Standard | |
StructureMap.group.input.mode | required | StructureMapInputModehttp://hl7.org/fhir/ValueSet/map-input-mode|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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}') |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
StructureMap | C | 0..* | StructureMap | A Map of relationships between 2 structures that can be used to transform data smp-0: Name should be usable as an identifier for the module by machine processing applications such as code generation | ||||
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.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
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 | Σ | 1..1 | string | Business version of the structure map | ||||
name | ΣC | 1..1 | string | Name for this structure map (computer friendly) | ||||
title | Σ | 1..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 | Σ | 1..1 | string | Name of the publisher (organization or individual) | ||||
contact | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | 1..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 smp-1: Can only have an element if you have a context smp-2: Must have a contextType if you have a context | ||||
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 |
Path | Conformance | ValueSet | URI | |||
StructureMap.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
StructureMap.status | required | PublicationStatushttp://hl7.org/fhir/ValueSet/publication-status|4.0.1 from the FHIR Standard | ||||
StructureMap.jurisdiction | extensible | Jurisdiction ValueSethttp://hl7.org/fhir/ValueSet/jurisdiction from the FHIR Standard | ||||
StructureMap.structure.mode | required | StructureMapModelModehttp://hl7.org/fhir/ValueSet/map-model-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.typeMode | required | StructureMapGroupTypeModehttp://hl7.org/fhir/ValueSet/map-group-type-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.input.mode | required | StructureMapInputModehttp://hl7.org/fhir/ValueSet/map-input-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.source.listMode | required | StructureMapSourceListModehttp://hl7.org/fhir/ValueSet/map-source-list-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.contextType | required | StructureMapContextTypehttp://hl7.org/fhir/ValueSet/map-context-type|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.listMode | required | StructureMapTargetListModehttp://hl7.org/fhir/ValueSet/map-target-list-mode|4.0.1 from the FHIR Standard | ||||
StructureMap.group.rule.target.transform | required | StructureMapTransformhttp://hl7.org/fhir/ValueSet/map-transform|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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
Other representations of profile: CSV, Excel, Schematron