This page is part of the FHIR Specification v4.3.0-snapshot1: R4B Snapshot to support the Jan 2022 Connectathon. About the R4B version of FHIR. The current officially released version is 4.3.0. For a full list of available versions, see the Directory of published versions . Page versions: R4B R4 R3
FHIR Infrastructure Work Group | Maturity Level: N/A | Standards Status: Informative |
This page provides the detailed descriptions for the data types
Table of Contents
Primitive Types |
Complex Types |
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/primitives3to4" = "R3 to R4 Primitive Conversions" uses "http://hl7.org/fhir/3.0/StructureDefinition/base64Binary" alias base64BinaryR3 as source uses "http://hl7.org/fhir/StructureDefinition/base64Binary" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/boolean" alias booleanR3 as source uses "http://hl7.org/fhir/StructureDefinition/boolean" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/canonical" alias canonicalR3 as source uses "http://hl7.org/fhir/StructureDefinition/canonical" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/code" alias codeR3 as source uses "http://hl7.org/fhir/StructureDefinition/code" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/date" alias dateR3 as source uses "http://hl7.org/fhir/StructureDefinition/date" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/dateTime" alias dateTimeR3 as source uses "http://hl7.org/fhir/StructureDefinition/dateTime" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/decimal" alias decimalR3 as source uses "http://hl7.org/fhir/StructureDefinition/decimal" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/id" alias idR3 as source uses "http://hl7.org/fhir/StructureDefinition/id" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/instant" alias instantR3 as source uses "http://hl7.org/fhir/StructureDefinition/instant" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/integer" alias integerR3 as source uses "http://hl7.org/fhir/StructureDefinition/integer" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/markdown" alias markdownR3 as source uses "http://hl7.org/fhir/StructureDefinition/markdown" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/oid" alias oidR3 as source uses "http://hl7.org/fhir/StructureDefinition/oid" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/positiveInt" alias positiveIntR3 as source uses "http://hl7.org/fhir/StructureDefinition/positiveInt" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/string" alias stringR3 as source uses "http://hl7.org/fhir/StructureDefinition/string" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/time" alias timeR3 as source uses "http://hl7.org/fhir/StructureDefinition/time" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/unsignedInt" alias unsignedIntR3 as source uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/uri" alias uriR3 as source uses "http://hl7.org/fhir/StructureDefinition/uri" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/url" alias urlR3 as source uses "http://hl7.org/fhir/StructureDefinition/url" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/uuid" alias uuidR3 as source uses "http://hl7.org/fhir/StructureDefinition/uuid" as target uses "http://hl7.org/fhir/3.0/StructureDefinition/xhtml" alias xhtmlR3 as source uses "http://hl7.org/fhir/StructureDefinition/xhtml" as target imports "http://hl7.org/fhir/StructureMap/Element3to4" group base64Binary(source src : base64BinaryR3, target tgt : base64Binary) extends Element <<type+>> { src.value as v -> tgt.value = v "base64Binary-value"; } group boolean(source src : booleanR3, target tgt : boolean) extends Element <<type+>> { src.value as v -> tgt.value = v "boolean-value"; } group canonical(source src : canonicalR3, target tgt : canonical) extends Element <<type+>> { src.value as v -> tgt.value = v "canonical-value"; } group code(source src : codeR3, target tgt : code) extends Element <<type+>> { src.value as v -> tgt.value = v "code-value"; } group date(source src : dateR3, target tgt : date) extends Element <<type+>> { src.value as v -> tgt.value = v "date-value"; } group dateTime(source src : dateTimeR3, target tgt : dateTime) extends Element <<type+>> { src.value as v -> tgt.value = v "dateTime-value"; } group decimal(source src : decimalR3, target tgt : decimal) extends Element <<type+>> { src.value as v -> tgt.value = v "decimal-value"; } group id(source src : idR3, target tgt : id) extends Element <<type+>> { src.value as v -> tgt.value = v "id-value"; } group instant(source src : instantR3, target tgt : instant) extends Element <<type+>> { src.value as v -> tgt.value = v "instant-value"; } group integer(source src : integerR3, target tgt : integer) extends Element <<type+>> { src.value as v -> tgt.value = v "integer-value"; } group markdown(source src : markdownR3, target tgt : markdown) extends Element <<type+>> { src.value as v -> tgt.value = v "markdown-value"; } group oid(source src : oidR3, target tgt : oid) extends Element <<type+>> { src.value as v -> tgt.value = v "oid-value"; } group positiveInt(source src : positiveIntR3, target tgt : positiveInt) extends Element <<type+>> { src.value as v -> tgt.value = v "positiveInt-value"; } group string(source src : stringR3, target tgt : string) extends Element <<type+>> { src.value as v -> tgt.value = v "string-value"; } group time(source src : timeR3, target tgt : time) extends Element <<type+>> { src.value as v -> tgt.value = v "time-value"; } group unsignedInt(source src : unsignedIntR3, target tgt : unsignedInt) extends Element <<type+>> { src.value as v -> tgt.value = v "unsignedInt-value"; } group uri(source src : uriR3, target tgt : uri) extends Element <<type+>> { src.value as v -> tgt.value = v "uri-value"; } group uri2Canonical(source src : uriR3, target tgt : canonical) extends Element <<types>> { src.value as v -> tgt.value = v "uri-value"; } group url(source src : urlR3, target tgt : url) extends Element <<type+>> { src.value as v -> tgt.value = v "url-value"; } group uuid(source src : uuidR3, target tgt : uuid) extends Element <<type+>> { src.value as v -> tgt.value = v "uuid-value"; } group xhtml(source src : xhtmlR3, target tgt : xhtml) extends Element <<type+>> { src.value as v -> tgt.value = v "xhtml-value"; } group stringToMarkdown(source src : stringR3, target tgt : markdown) extends Element <<types>> { src.value as v -> tgt.value = v "stringToMarkdown-value"; } group id2code(source src : idR3, target tgt : code) extends Element <<types>> { src.value as v -> tgt.value = v "id2code-value"; } group code2uri(source src : codeR3, target tgt : uri) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group code2string(source src : codeR3, target tgt : string) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group string2code(source src : stringR3, target tgt : code) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group uri2url(source src : uriR3, target tgt : url) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group id2string(source src : idR3, target tgt : string) extends Element <<type+>> { src.value as v -> tgt.value = v; } group uri2string(source src : uriR3, target tgt : string) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group unsignedInt2decimal(source src : unsignedIntR3, target tgt : decimal) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group oid2string(source src : oidR3, target tgt : string) extends Element <<type+>> { src.value as v -> tgt.value = v; } group oid2id(source src : oidR3, target tgt : id) extends Element <<type+>> { src.value as v -> tgt.value = v; } group positiveInt2integer(source src : positiveIntR3, target tgt : integer) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group integer2positiveInt(source src : integerR3, target tgt : positiveInt) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group positiveInt2unsignedInt(source src : positiveIntR3, target tgt : unsignedInt) extends Element <<types>> { src.value as v -> tgt.value = v; }
map "http://hl7.org/fhir/StructureMap/primitives4to3" = "R4 to R3 Primitive Conversions" uses "http://hl7.org/fhir/StructureDefinition/base64Binary" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/base64Binary" alias base64BinaryR3 as target uses "http://hl7.org/fhir/StructureDefinition/boolean" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/boolean" alias booleanR3 as target uses "http://hl7.org/fhir/StructureDefinition/canonical" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/canonical" alias canonicalR3 as target uses "http://hl7.org/fhir/StructureDefinition/code" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/code" alias codeR3 as target uses "http://hl7.org/fhir/StructureDefinition/date" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/date" alias dateR3 as target uses "http://hl7.org/fhir/StructureDefinition/dateTime" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/dateTime" alias dateTimeR3 as target uses "http://hl7.org/fhir/StructureDefinition/decimal" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/decimal" alias decimalR3 as target uses "http://hl7.org/fhir/StructureDefinition/id" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/id" alias idR3 as target uses "http://hl7.org/fhir/StructureDefinition/instant" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/instant" alias instantR3 as target uses "http://hl7.org/fhir/StructureDefinition/integer" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/integer" alias integerR3 as target uses "http://hl7.org/fhir/StructureDefinition/markdown" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/markdown" alias markdownR3 as target uses "http://hl7.org/fhir/StructureDefinition/oid" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/oid" alias oidR3 as target uses "http://hl7.org/fhir/StructureDefinition/positiveInt" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/positiveInt" alias positiveIntR3 as target uses "http://hl7.org/fhir/StructureDefinition/string" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/string" alias stringR3 as target uses "http://hl7.org/fhir/StructureDefinition/time" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/time" alias timeR3 as target uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/unsignedInt" alias unsignedIntR3 as target uses "http://hl7.org/fhir/StructureDefinition/uri" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/uri" alias uriR3 as target uses "http://hl7.org/fhir/StructureDefinition/url" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/url" alias urlR3 as target uses "http://hl7.org/fhir/StructureDefinition/uuid" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/uuid" alias uuidR3 as target uses "http://hl7.org/fhir/StructureDefinition/xhtml" as source uses "http://hl7.org/fhir/3.0/StructureDefinition/xhtml" alias xhtmlR3 as target imports "http://hl7.org/fhir/StructureMap/Element4to3" group base64Binary(source src : base64Binary, target tgt : base64BinaryR3) extends Element <<type+>> { src.value as v -> tgt.value = v "base64Binary-value"; } group boolean(source src : boolean, target tgt : booleanR3) extends Element <<type+>> { src.value as v -> tgt.value = v "boolean-value"; } group canonical(source src : canonical, target tgt : canonicalR3) extends Element <<type+>> { src.value as v -> tgt.value = v "canonical-value"; } group code(source src : code, target tgt : codeR3) extends Element <<type+>> { src.value as v -> tgt.value = v "code-value"; } group date(source src : date, target tgt : dateR3) extends Element <<type+>> { src.value as v -> tgt.value = v "date-value"; } group dateTime(source src : dateTime, target tgt : dateTimeR3) extends Element <<type+>> { src.value as v -> tgt.value = v "dateTime-value"; } group decimal(source src : decimal, target tgt : decimalR3) extends Element <<type+>> { src.value as v -> tgt.value = v "decimal-value"; } group id(source src : id, target tgt : idR3) extends Element <<type+>> { src.value as v -> tgt.value = v "id-value"; } group instant(source src : instant, target tgt : instantR3) extends Element <<type+>> { src.value as v -> tgt.value = v "instant-value"; } group integer(source src : integer, target tgt : integerR3) extends Element <<type+>> { src.value as v -> tgt.value = v "integer-value"; } group markdown(source src : markdown, target tgt : markdownR3) extends Element <<type+>> { src.value as v -> tgt.value = v "markdown-value"; } group oid(source src : oid, target tgt : oidR3) extends Element <<type+>> { src.value as v -> tgt.value = v "oid-value"; } group positiveInt(source src : positiveInt, target tgt : positiveIntR3) extends Element <<type+>> { src.value as v -> tgt.value = v "positiveInt-value"; } group string(source src : string, target tgt : stringR3) extends Element <<type+>> { src.value as v -> tgt.value = v "string-value"; } group time(source src : time, target tgt : timeR3) extends Element <<type+>> { src.value as v -> tgt.value = v "time-value"; } group unsignedInt(source src : unsignedInt, target tgt : unsignedIntR3) extends Element <<type+>> { src.value as v -> tgt.value = v "unsignedInt-value"; } group uri(source src : uri, target tgt : uriR3) extends Element <<type+>> { src.value as v -> tgt.value = v "uri-value"; } group url(source src : url, target tgt : urlR3) extends Element <<type+>> { src.value as v -> tgt.value = v "url-value"; } group uuid(source src : uuid, target tgt : uuidR3) extends Element <<type+>> { src.value as v -> tgt.value = v "uuid-value"; } group xhtml(source src : xhtml, target tgt : xhtmlR3) extends Element <<type+>> { src.value as v -> tgt.value = v "xhtml-value"; } group markdownToString(source src : markdown, target tgt : stringR3) extends Element <<types>> { src.value as v -> tgt.value = v "markdownToString-value"; } group code2id(source src : code, target tgt : idR3) extends Element <<types>> { src.value as v -> tgt.value = v "code2id-value"; } group uri2code(source src : uriR3, target tgt : code) extends Element <<types>> { src.value as v -> tgt.value = v "uri2code-value"; } group string2code(source src : stringR3, target tgt : code) extends Element <<types>> { src.value as v -> tgt.value = v "uri2code-value"; } group code2string(source src : codeR3, target tgt : string) extends Element <<types>> { src.value as v -> tgt.value = v "uri2code-value"; } group canonical2Uri(source src : canonicalR3, target tgt : uri) extends Element <<types>> { src.value as v -> tgt.value = v "canonical2uri-value"; } group url2uri(source src : url, target tgt : uriR3) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group string2id(source src : string, target tgt : idR3) extends Element <<types>> { src.value as v -> tgt.value = v "uri2code-value"; } group string2uri(source src : string, target tgt : uriR3) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group decimal2unsignedInt(source src : decimal, target tgt : unsignedIntR3) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group canonical2string(source src : canonical, target tgt : stringR3) extends Element <<types>> { src.value as v -> tgt.value = v "code2uri-value"; } group oid2string(source src : string, target tgt : oidR3) extends Element <<types>> { src.value as v -> tgt.value = v; } group id2oid(source src : id, target tgt : oidR3) extends Element <<types>> { src.value as v -> tgt.value = v; } group id2string(source src : id, target tgt : stringR3) extends Element <<type+>> { src.value as v -> tgt.value = v; } group code2oid(source src : code, target tgt : oidR3) extends Element <<type+>> { src.value as v -> tgt.value = v; } group integer2positiveInt(source src : integer, target tgt : positiveIntR3) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group positiveInt2integer(source src : positiveInt, target tgt : integerR3) extends Element <<types>> { src.value as v -> tgt.value = v "unsignedInt2decimal-value"; } group unsignedInt2positiveInt(source src : unsignedInt, target tgt : positiveIntR3) extends Element <<types>> { src.value as v -> tgt.value = v; } group code2uri(source src : code, target tgt : uriR3) extends Element <<types>> { src.value as v -> tgt.value = v; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Attachment3to4" = "R3 to R4 Conversions for Attachment" uses "http://hl7.org/fhir/3.0/StructureDefinition/Attachment" alias AttachmentR3 as source uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias Attachment as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Attachment(source src : AttachmentR3, target tgt : Attachment) extends Element <<type+>> { src.contentType -> tgt.contentType; src.language -> tgt.language; src.data -> tgt.data; src.url -> tgt.url; src.size -> tgt.size; src.hash -> tgt.hash; src.title -> tgt.title; src.creation -> tgt.creation; }
map "http://hl7.org/fhir/StructureMap/Attachment4to3" = "R4 to R3 Conversion for Attachment" uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias Attachment as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Attachment" alias AttachmentR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Attachment(source src : Attachment, target tgt : AttachmentR3) extends Element <<type+>> { src.contentType -> tgt.contentType; src.language -> tgt.language; src.data -> tgt.data; src.url -> tgt.url; src.size -> tgt.size; src.hash -> tgt.hash; src.title -> tgt.title; src.creation -> tgt.creation; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Identifier3to4" = "R3 to R4 Conversions for Identifier" uses "http://hl7.org/fhir/3.0/StructureDefinition/Identifier" alias IdentifierR3 as source uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias Identifier as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Identifier(source src : IdentifierR3, target tgt : Identifier) extends Element <<type+>> { src.use -> tgt.use; src.type -> tgt.type; src.system -> tgt.system; src.value -> tgt.value; src.period -> tgt.period; src.assigner -> tgt.assigner; } group Identifier2Codeable(source src, target tgt) extends Element { src -> tgt.coding as c then { src.system -> c.system; src.value -> c.code; } "coding"; }
map "http://hl7.org/fhir/StructureMap/Identifier4to3" = "R4 to R3 Conversion for Identifier" uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias Identifier as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Identifier" alias IdentifierR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Identifier(source src : Identifier, target tgt : IdentifierR3) extends Element <<type+>> { src.use -> tgt.use; src.type -> tgt.type; src.system -> tgt.system; src.value -> tgt.value; src.period -> tgt.period; src.assigner -> tgt.assigner; } group Codeable2Identifier(source src, target tgt) extends Element { src.coding as c then { c.system -> tgt.system; c.code -> tgt.value; }; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Coding3to4" = "R3 to R4 Conversions for Coding" uses "http://hl7.org/fhir/3.0/StructureDefinition/Coding" alias CodingR3 as source uses "http://hl7.org/fhir/StructureDefinition/Coding" alias Coding as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Coding(source src : CodingR3, target tgt : Coding) extends Element <<type+>> { src.system -> tgt.system; src.version -> tgt.version; src.code -> tgt.code; src.display -> tgt.display; src.userSelected -> tgt.userSelected; }
map "http://hl7.org/fhir/StructureMap/Coding4to3" = "R4 to R3 Conversion for Coding" uses "http://hl7.org/fhir/StructureDefinition/Coding" alias Coding as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Coding" alias CodingR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Coding(source src : Coding, target tgt : CodingR3) extends Element <<type+>> { src.system -> tgt.system; src.version -> tgt.version; src.code -> tgt.code; src.display -> tgt.display; src.userSelected -> tgt.userSelected; } group Coding2code(source src : Coding, target tgt : codeR3) extends Element <<types>> { src.code as vs0 then code(vs0, tgt); }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/CodeableConcept3to4" = "R3 to R4 Conversions for CodeableConcept" uses "http://hl7.org/fhir/3.0/StructureDefinition/CodeableConcept" alias CodeableConceptR3 as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Coding" alias CodingR3 as source uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConcept as target imports "http://hl7.org/fhir/StructureMap/*3to4" group CodeableConcept(source src : CodeableConceptR3, target tgt : CodeableConcept) extends Element <<type+>> { src.coding -> tgt.coding; src.text -> tgt.text; } group Coding2CodeableConcept(source src : CodingR3, target tgt : CodeableConcept) extends Element <<types>> { src -> tgt.coding as vt0 then Coding(src, vt0) "coding"; }
map "http://hl7.org/fhir/StructureMap/CodeableConcept4to3" = "R4 to R3 Conversion for CodeableConcept" uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConcept as source uses "http://hl7.org/fhir/3.0/StructureDefinition/CodeableConcept" alias CodeableConceptR3 as target uses "http://hl7.org/fhir/3.0/StructureDefinition/Coding" alias CodingR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group CodeableConcept(source src : CodeableConcept, target tgt : CodeableConceptR3) extends Element <<type+>> { src.coding -> tgt.coding; src.text -> tgt.text; } group CodeableConceptNoExtensions(source src : CodeableConcept, target tgt : CodeableConceptR3) { src.coding -> tgt.coding; src.text -> tgt.text; } group CodeableConcept2Coding(source src : CodeableConcept, target tgt : CodingR3) extends Element <<types>> { src.coding first as vs0 then Coding(vs0, tgt); } group CodeableConcept2code(source src : CodeableConcept, target tgt : codeR3) extends Element <<types>> { src.coding first as vs0 -> tgt.code = create('code') as vt then Coding2code(vs0, vt) "CodeableConcept2code-coding"; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Quantity3to4" = "R3 to R4 Conversions for Quantity" uses "http://hl7.org/fhir/3.0/StructureDefinition/Quantity" alias QuantityR3 as source uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias Quantity as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Quantity(source src : QuantityR3, target tgt : Quantity) extends Element <<type+>> { src.value -> tgt.value; src.comparator -> tgt.comparator; src.unit -> tgt.unit; src.system -> tgt.system; src.code -> tgt.code; }
map "http://hl7.org/fhir/StructureMap/Quantity4to3" = "R4 to R3 Conversion for Quantity" uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias Quantity as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Quantity" alias QuantityR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Quantity(source src : Quantity, target tgt : QuantityR3) extends Element <<type+>> { src.value -> tgt.value; src.comparator -> tgt.comparator; src.unit -> tgt.unit; src.system -> tgt.system; src.code -> tgt.code; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Money3to4" = "R3 to R4 Conversions for Money" uses "http://hl7.org/fhir/3.0/StructureDefinition/Money" alias MoneyR3 as source uses "http://hl7.org/fhir/StructureDefinition/Money" alias Money as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Money(source src : MoneyR3, target tgt : Money) extends Element <<type+>> { src.value -> tgt.value; src.code -> tgt.currency; }
map "http://hl7.org/fhir/StructureMap/Money4to3" = "R4 to R3 Conversion for Money" uses "http://hl7.org/fhir/StructureDefinition/Money" alias Money as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Money" alias MoneyR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Money(source src : Money, target tgt : MoneyR3) extends Element <<type+>> { src.value -> tgt.value; src.currency -> tgt.code "code"; src.currency as s -> tgt.unit as t, t.value = s; src -> tgt.system as vt, vt.value = 'urn:iso:std:iso:4217' "code"; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Range3to4" = "R3 to R4 Conversions for Range" uses "http://hl7.org/fhir/3.0/StructureDefinition/Range" alias RangeR3 as source uses "http://hl7.org/fhir/StructureDefinition/Range" alias Range as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Range(source src : RangeR3, target tgt : Range) extends Element <<type+>> { src.low -> tgt.low; src.high -> tgt.high; }
map "http://hl7.org/fhir/StructureMap/Range4to3" = "R4 to R3 Conversion for Range" uses "http://hl7.org/fhir/StructureDefinition/Range" alias Range as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Range" alias RangeR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Range(source src : Range, target tgt : RangeR3) extends Element <<type+>> { src.low -> tgt.low; src.high -> tgt.high; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Ratio3to4" = "R3 to R4 Conversions for Ratio" uses "http://hl7.org/fhir/3.0/StructureDefinition/Ratio" alias RatioR3 as source uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias Ratio as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Ratio(source src : RatioR3, target tgt : Ratio) extends Element <<type+>> { src.numerator -> tgt.numerator; src.denominator -> tgt.denominator; }
map "http://hl7.org/fhir/StructureMap/Ratio4to3" = "R4 to R3 Conversion for Ratio" uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias Ratio as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Ratio" alias RatioR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Ratio(source src : Ratio, target tgt : RatioR3) extends Element <<type+>> { src.numerator -> tgt.numerator; src.denominator -> tgt.denominator; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
No R3/R4 map exists for RatioRangeSee also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Period3to4" = "R3 to R4 Conversions for Period" uses "http://hl7.org/fhir/3.0/StructureDefinition/Period" alias PeriodR3 as source uses "http://hl7.org/fhir/StructureDefinition/Period" alias Period as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Period(source src : PeriodR3, target tgt : Period) extends Element <<type+>> { src.start -> tgt.start; src.end -> tgt.end; }
map "http://hl7.org/fhir/StructureMap/Period4to3" = "R4 to R3 Conversion for Period" uses "http://hl7.org/fhir/StructureDefinition/Period" alias Period as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Period" alias PeriodR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Period(source src : Period, target tgt : PeriodR3) extends Element <<type+>> { src.start -> tgt.start; src.end -> tgt.end; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/SampledData3to4" = "R3 to R4 Conversions for SampledData" uses "http://hl7.org/fhir/3.0/StructureDefinition/SampledData" alias SampledDataR3 as source uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledData as target imports "http://hl7.org/fhir/StructureMap/*3to4" group SampledData(source src : SampledDataR3, target tgt : SampledData) extends Element <<type+>> { src.origin -> tgt.origin; src.period -> tgt.period; src.factor -> tgt.factor; src.lowerLimit -> tgt.lowerLimit; src.upperLimit -> tgt.upperLimit; src.dimensions -> tgt.dimensions; src.data -> tgt.data; }
map "http://hl7.org/fhir/StructureMap/SampledData4to3" = "R4 to R3 Conversion for SampledData" uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledData as source uses "http://hl7.org/fhir/3.0/StructureDefinition/SampledData" alias SampledDataR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group SampledData(source src : SampledData, target tgt : SampledDataR3) extends Element <<type+>> { src.origin -> tgt.origin; src.period -> tgt.period; src.factor -> tgt.factor; src.lowerLimit -> tgt.lowerLimit; src.upperLimit -> tgt.upperLimit; src.dimensions -> tgt.dimensions; src.data -> tgt.data; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/HumanName3to4" = "R3 to R4 Conversions for HumanName" uses "http://hl7.org/fhir/3.0/StructureDefinition/HumanName" alias HumanNameR3 as source uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanName as target imports "http://hl7.org/fhir/StructureMap/*3to4" group HumanName(source src : HumanNameR3, target tgt : HumanName) extends Element <<type+>> { src.use -> tgt.use; src.text -> tgt.text; src.family -> tgt.family; src.given -> tgt.given; src.prefix -> tgt.prefix; src.suffix -> tgt.suffix; src.period -> tgt.period; }
map "http://hl7.org/fhir/StructureMap/HumanName4to3" = "R4 to R3 Conversion for HumanName" uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanName as source uses "http://hl7.org/fhir/3.0/StructureDefinition/HumanName" alias HumanNameR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group HumanName(source src : HumanName, target tgt : HumanNameR3) extends Element <<type+>> { src.use -> tgt.use; src.text -> tgt.text; src.family -> tgt.family; src.given -> tgt.given; src.prefix -> tgt.prefix; src.suffix -> tgt.suffix; src.period -> tgt.period; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Address3to4" = "R3 to R4 Conversions for Address" uses "http://hl7.org/fhir/3.0/StructureDefinition/Address" alias AddressR3 as source uses "http://hl7.org/fhir/StructureDefinition/Address" alias Address as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Address(source src : AddressR3, target tgt : Address) extends Element <<type+>> { src.use -> tgt.use; src.type -> tgt.type; src.text -> tgt.text; src.line -> tgt.line; src.city -> tgt.city; src.district -> tgt.district; src.state -> tgt.state; src.postalCode -> tgt.postalCode; src.country -> tgt.country; src.period -> tgt.period; }
map "http://hl7.org/fhir/StructureMap/Address4to3" = "R4 to R3 Conversion for Address" uses "http://hl7.org/fhir/StructureDefinition/Address" alias Address as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Address" alias AddressR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Address(source src : Address, target tgt : AddressR3) extends Element <<type+>> { src.use -> tgt.use; src.type -> tgt.type; src.text -> tgt.text; src.line -> tgt.line; src.city -> tgt.city; src.district -> tgt.district; src.state -> tgt.state; src.postalCode -> tgt.postalCode; src.country -> tgt.country; src.period -> tgt.period; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/ContactPoint3to4" = "R3 to R4 Conversions for ContactPoint" uses "http://hl7.org/fhir/3.0/StructureDefinition/ContactPoint" alias ContactPointR3 as source uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPoint as target imports "http://hl7.org/fhir/StructureMap/*3to4" group ContactPoint(source src : ContactPointR3, target tgt : ContactPoint) extends Element <<type+>> { src.system -> tgt.system; src.value -> tgt.value; src.use -> tgt.use; src.rank -> tgt.rank; src.period -> tgt.period; }
map "http://hl7.org/fhir/StructureMap/ContactPoint4to3" = "R4 to R3 Conversion for ContactPoint" uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPoint as source uses "http://hl7.org/fhir/3.0/StructureDefinition/ContactPoint" alias ContactPointR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group ContactPoint(source src : ContactPoint, target tgt : ContactPointR3) extends Element <<type+>> { src.system -> tgt.system; src.value -> tgt.value; src.use -> tgt.use; src.rank -> tgt.rank; src.period -> tgt.period; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Timing3to4" = "R3 to R4 Conversions for Timing" uses "http://hl7.org/fhir/3.0/StructureDefinition/Timing" alias TimingR3 as source uses "http://hl7.org/fhir/StructureDefinition/Timing" alias Timing as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Timing(source src : TimingR3, target tgt : Timing) extends BackboneElement <<type+>> { src.event -> tgt.event; src.repeat as vs0 -> tgt.repeat as vt0 then repeat(vs0, vt0); src.code -> tgt.code; } group repeat(source src, target tgt) extends Element { src.bounds : Duration as vs -> tgt.bounds = create('Duration') as vt then Duration(vs, vt); src.bounds : Range as vs -> tgt.bounds = create('Range') as vt then Range(vs, vt); src.bounds : Period as vs -> tgt.bounds = create('Period') as vt then Period(vs, vt); src.count -> tgt.count; src.countMax -> tgt.countMax; src.duration -> tgt.duration; src.durationMax -> tgt.durationMax; src.durationUnit -> tgt.durationUnit; src.frequency -> tgt.frequency; src.frequencyMax -> tgt.frequencyMax; src.period -> tgt.period; src.periodMax -> tgt.periodMax; src.periodUnit -> tgt.periodUnit; src.dayOfWeek -> tgt.dayOfWeek; src.timeOfDay -> tgt.timeOfDay; src.when -> tgt.when; src.offset -> tgt.offset; }
map "http://hl7.org/fhir/StructureMap/Timing4to3" = "R4 to R3 Conversion for Timing" uses "http://hl7.org/fhir/StructureDefinition/Timing" alias Timing as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Timing" alias TimingR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Timing(source src : Timing, target tgt : TimingR3) extends BackboneElement <<type+>> { src.event -> tgt.event; src.repeat as vs0 -> tgt.repeat as vt0 then repeat(vs0, vt0); src.code -> tgt.code; } group repeat(source src, target tgt) extends Element { src.bounds : Duration as vs -> tgt.bounds = create('Duration') as vt then Duration(vs, vt); src.bounds : Range as vs -> tgt.bounds = create('Range') as vt then Range(vs, vt); src.bounds : Period as vs -> tgt.bounds = create('Period') as vt then Period(vs, vt); src.count -> tgt.count; src.countMax -> tgt.countMax; src.duration -> tgt.duration; src.durationMax -> tgt.durationMax; src.durationUnit -> tgt.durationUnit; src.frequency -> tgt.frequency; src.frequencyMax -> tgt.frequencyMax; src.period -> tgt.period; src.periodMax -> tgt.periodMax; src.periodUnit -> tgt.periodUnit; src.dayOfWeek -> tgt.dayOfWeek; src.timeOfDay -> tgt.timeOfDay; src.when -> tgt.when; src.offset -> tgt.offset; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Signature3to4" = "R3 to R4 Conversions for Signature" uses "http://hl7.org/fhir/3.0/StructureDefinition/Signature" alias SignatureR3 as source uses "http://hl7.org/fhir/StructureDefinition/Signature" alias Signature as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Signature(source src : SignatureR3, target tgt : Signature) extends Element <<type+>> { src.type -> tgt.type; src.when -> tgt.when; src.who : uri as vs -> tgt.who as ref, ref.reference = vs, ref.extension as ext, ext.url = 'http://hl7.org/fhir/3.0/StructureDefinition/BaseType', ext.value = 'uri'; src.who : Reference as vs0 -> tgt.who as vt0 then Reference(vs0, vt0); src.onBehalfOf : uri as vs -> tgt.onBehalfOf as ref, ref.reference = vs, ref.extension as ext, ext.url = 'http://hl7.org/fhir/3.0/StructureDefinition/BaseType', ext.value = 'uri'; src.onBehalfOf : Reference as vs0 -> tgt.onBehalfOf as vt0 then Reference(vs0, vt0); src.contentType -> tgt.sigFormat; src.blob -> tgt.data; }
map "http://hl7.org/fhir/StructureMap/Signature4to3" = "R4 to R3 Conversion for Signature" uses "http://hl7.org/fhir/StructureDefinition/Signature" alias Signature as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Signature" alias SignatureR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Signature(source src : SignatureR3, target tgt : Signature) extends Element <<type+>> { src.type -> tgt.type; src.when -> tgt.when; src.who as vs0 where extension('http://hl7.org/fhir/3.0/StructureDefinition/BaseType').empty() -> tgt.who = create('Reference') as vt0 then Reference(vs0, vt0); src.who as vs0 where extension('http://hl7.org/fhir/3.0/StructureDefinition/BaseType').exists() -> tgt.who = create('uri') as vt0 then { vs0.reference as vs1 then uri(vs1, vt0); }; src.onBehalfOf as vs0 where extension('http://hl7.org/fhir/3.0/StructureDefinition/BaseType').empty() -> tgt.onBehalfOf = create('Reference') as vt0 then Reference(vs0, vt0); src.onBehalfOf as vs0 where extension('http://hl7.org/fhir/3.0/StructureDefinition/BaseType').exists() -> tgt.onBehalfOf = create('uri') as vt0 then { vs0.reference as vs1 then uri(vs1, vt0); }; src.sigFormat -> tgt.contentType; src.data -> tgt.blob; }
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R2 -> R3 -> R2 round tripping)
map "http://hl7.org/fhir/StructureMap/Annotation3to4" = "R3 to R4 Conversions for Annotation" uses "http://hl7.org/fhir/3.0/StructureDefinition/Annotation" alias AnnotationR3 as source uses "http://hl7.org/fhir/3.0/StructureDefinition/string" alias StringR3 as source uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias Annotation as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Annotation(source src : AnnotationR3, target tgt : Annotation) extends Element <<type+>> { src.author : Reference as vs -> tgt.author = create('Reference') as vt then Reference(vs, vt); src.author : string as vs -> tgt.author = create('string') as vt then string(vs, vt); src.time -> tgt.time; src.text -> tgt.text; } group string2Annotation(source src : stringR3, target tgt : Annotation) extends Element <<types>> { src -> tgt.text as vt0 then string(src, vt0) "text"; }
map "http://hl7.org/fhir/StructureMap/Annotation4to3" = "R4 to R3 Conversion for Annotation" uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias Annotation as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Annotation" alias AnnotationR3 as target uses "http://hl7.org/fhir/3.0/StructureDefinition/string" alias StringR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Annotation(source src : Annotation, target tgt : AnnotationR3) extends Element <<type+>> { src.author : Reference as vs -> tgt.author = create('Reference') as vt then Reference(vs, vt); src.author : string as vs -> tgt.author = create('string') as vt then string(vs, vt); src.time -> tgt.time; src.text -> tgt.text; } group Annotation2string(source src : Annotation, target tgt : stringR3) extends Element <<types>> { src.text as vs0 then string(vs0, tgt); }