This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
. Page versions: R4B R4 R3
Modeling and Methodology Work Group | Maturity Level: N/A | Standards Status: Informative |
This page provides conversions between R4 and R5 for the datatypes.
Datatypes Index
See also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4/R5 map exists for RatioRangeSee also Base Definition, Detailed Descriptions, Examples, Profiles & Extensions and Mappings.
Functional status for this map: Not Mapped (based on R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 R4 -> R5 -> R4 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 : Signature, target tgt : SignatureR3) 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 R4 -> R5 -> R4 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);
}