R4 Ballot #1 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.3.0: R4 Ballot 2). 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

FHIR Infrastructure Work GroupMaturity Level: N/ABallot Status: Informative

This page provides the detailed descriptions for the data types

Table of Contents

Primitive Types
ElementinstanttimedatedateTimedecimalbooleanintegerstringuribase64BinarycodeidoidunsignedIntpositiveIntmarkdownurlcanonicaluuid
Complex Types
ElementIdentifierHumanNameAddressContactPointTimingQuantitySimpleQuantityAttachmentRangePeriodRatioCodeableConceptCodingSampledDataAgeDistanceDurationCountMoneyAnnotationSignatureBackboneElement

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/primitives2to3" = "R2 to R3 Primitive Conversions"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/base64Binary" alias base64BinaryR2 as source
uses "http://hl7.org/fhir/StructureDefinition/base64Binary" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/boolean" alias booleanR2 as source
uses "http://hl7.org/fhir/StructureDefinition/boolean" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/code" alias codeR2 as source
uses "http://hl7.org/fhir/StructureDefinition/code" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/date" alias dateR2 as source
uses "http://hl7.org/fhir/StructureDefinition/date" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/dateTime" alias dateTimeR2 as source
uses "http://hl7.org/fhir/StructureDefinition/dateTime" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/decimal" alias decimalR2 as source
uses "http://hl7.org/fhir/StructureDefinition/decimal" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/id" alias idR2 as source
uses "http://hl7.org/fhir/StructureDefinition/id" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/instant" alias instantR2 as source
uses "http://hl7.org/fhir/StructureDefinition/instant" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/integer" alias integerR2 as source
uses "http://hl7.org/fhir/StructureDefinition/integer" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/markdown" alias markdownR2 as source
uses "http://hl7.org/fhir/StructureDefinition/markdown" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/oid" alias oidR2 as source
uses "http://hl7.org/fhir/StructureDefinition/oid" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/positiveInt" alias positiveIntR2 as source
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/string" alias stringR2 as source
uses "http://hl7.org/fhir/StructureDefinition/string" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/time" alias timeR2 as source
uses "http://hl7.org/fhir/StructureDefinition/time" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/unsignedInt" alias unsignedIntR2 as source
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/uri" alias uriR2 as source
uses "http://hl7.org/fhir/StructureDefinition/uri" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/uuid" alias uuidR2 as source
uses "http://hl7.org/fhir/StructureDefinition/uuid" as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/xhtml" alias xhtmlR2 as source
uses "http://hl7.org/fhir/StructureDefinition/xhtml" as target

imports "http://hl7.org/fhir/StructureMap/Element2to3"

group for type+types base64Binary extends Element
  input src : base64BinaryR2 as source
  input tgt : base64Binary as target

  "base64Binary-value" : for src.value as v make tgt.value = v

endgroup

group for type+types boolean extends Element
  input src : booleanR2 as source
  input tgt : boolean as target

  "boolean-value" : for src.value as v make tgt.value = v
endgroup

group for type+types code extends Element
  input src : codeR2 as source
  input tgt : code as target

  "code-value" : for src.value as v make tgt.value = v
endgroup

group for type+types date extends Element
  input src : dateR2 as source
  input tgt : date as target

  "date-value" : for src.value as v make tgt.value = v
endgroup

group for type+types dateTime extends Element
  input src : dateTimeR2 as source
  input tgt : dateTime as target

  "dateTime-value" : for src.value as v make tgt.value = v
endgroup

group for type+types decimal extends Element
  input src : decimalR2 as source
  input tgt : decimal as target

  "decimal-value" : for src.value as v make tgt.value = v
endgroup

group for type+types id extends Element
  input src : idR2 as source
  input tgt : id as target

  "id-value" : for src.value as v make tgt.value = v
endgroup

group for type+types instant extends Element
  input src : instantR2 as source
  input tgt : instant as target

  "instant-value" : for src.value as v make tgt.value = v
endgroup

group for type+types integer extends Element
  input src : integerR2 as source
  input tgt : integer as target

  "integer-value" : for src.value as v make tgt.value = v
endgroup

group for type+types markdown extends Element
  input src : markdownR2 as source
  input tgt : markdown as target

  "markdown-value" : for src.value as v make tgt.value = v
endgroup

group for type+types oid extends Element
  input src : oidR2 as source
  input tgt : oid as target

  "oid-value" : for src.value as v make tgt.value = v
endgroup

group for type+types positiveInt extends Element
  input src : positiveIntR2 as source
  input tgt : positiveInt as target

  "positiveInt-value" : for src.value as v make tgt.value = v
endgroup

group for type+types string extends Element
  input src : stringR2 as source
  input tgt : string as target

  "string-value" : for src.value as v make tgt.value = v
endgroup

group for type+types time extends Element
  input src : timeR2 as source
  input tgt : time as target

  "time-value" : for src.value as v make tgt.value = v
endgroup

group for type+types unsignedInt extends Element
  input src : unsignedIntR2 as source
  input tgt : unsignedInt as target

  "unsignedInt-value" : for src.value as v make tgt.value = v
endgroup

group for type+types uri extends Element
  input src : uriR2 as source
  input tgt : uri as target

  "uri-value" : for src.value as v make tgt.value = v
endgroup

group for type+types uuid extends Element
  input src : uuidR2 as source
  input tgt : uuid as target

  "uuid-value" : for src.value as v make tgt.value = v
endgroup

group for type+types xhtml extends Element
  input src : xhtmlR2 as source
  input tgt : xhtml as target

  "xhtml-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToMarkdown extends Element
  input src : stringR2 as source
  input tgt : markdown as target

  "stringToMarkdown-value" : for src.value as v make tgt.value = v
endgroup

group for types codeToUri extends Element
  input src : codeR2 as source
  input tgt : uri as target

  "codeToUri-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToId extends Element
  input src : stringR2 as source
  input tgt : id as target

  "stringToId-value" : for src.value as v make tgt.value = v
endgroup

group for types idToString extends Element
  input src : idR2 as source
  input tgt : string as target

  "stringToId-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToUri extends Element
  input src : stringR2 as source
  input tgt : uri as target

  "stringToUri-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToCode extends Element
  input src : stringR2 as source
  input tgt : code as target

  "stringToCode-value" : for src.value as v make tgt.value = v
endgroup

group for types codeToString extends Element
  input src : codeR2 as source
  input tgt : string as target

  "stringToCode-value" : for src.value as v make tgt.value = v
endgroup

group for types integerToPositiveInt extends Element
  input src : integerR2 as source
  input tgt : positiveInt as target

  "integerToPositiveInt-value" : for src.value as v make tgt.value = v
endgroup

group for types integerToUnsignedInt extends Element
  input src : integerR2 as source
  input tgt : unsignedInt as target

  "integerToUnsignedInt-value" : for src.value as v make tgt.value = v
endgroup

group for types dateToDateTime extends Element
  input src : dateR2 as source
  input tgt : dateTime as target

  "dateToDateTime-value" : for src.value as v make tgt.value = v
endgroup

group for types dateTimeToDate extends Element
  input src : dateTimeR2 as source
  input tgt : date as target

  "dateTimeToDate-value" : for src.value as v make tgt.value = (v.substring(0, 8))
endgroup


map "http://hl7.org/fhir/StructureMap/primitives3to2" = "R3 to R2 Primitive Conversions"

uses "http://hl7.org/fhir/StructureDefinition/base64Binary" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/base64Binary" alias base64BinaryR2 as target
uses "http://hl7.org/fhir/StructureDefinition/boolean" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/boolean" alias booleanR2 as target
uses "http://hl7.org/fhir/StructureDefinition/code" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/code" alias codeR2 as target
uses "http://hl7.org/fhir/StructureDefinition/date" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/date" alias dateR2 as target
uses "http://hl7.org/fhir/StructureDefinition/dateTime" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/dateTime" alias dateTimeR2 as target
uses "http://hl7.org/fhir/StructureDefinition/decimal" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/decimal" alias decimalR2 as target
uses "http://hl7.org/fhir/StructureDefinition/id" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/id" alias idR2 as target
uses "http://hl7.org/fhir/StructureDefinition/instant" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/instant" alias instantR2 as target
uses "http://hl7.org/fhir/StructureDefinition/integer" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/integer" alias integerR2 as target
uses "http://hl7.org/fhir/StructureDefinition/markdown" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/markdown" alias markdownR2 as target
uses "http://hl7.org/fhir/StructureDefinition/oid" as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/oid" alias oidR2 as target
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/positiveInt" alias positiveIntR2 as target
uses "http://hl7.org/fhir/StructureDefinition/string" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/string" alias stringR2 as target
uses "http://hl7.org/fhir/StructureDefinition/time" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/time" alias timeR2 as target
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/unsignedInt" alias unsignedIntR2 as target
uses "http://hl7.org/fhir/StructureDefinition/uri" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/uri" alias uriR2 as target
uses "http://hl7.org/fhir/StructureDefinition/uuid" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/uuid" alias uuidR2 as target
uses "http://hl7.org/fhir/StructureDefinition/xhtml" as source 
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/xhtml" alias xhtmlR2 as target

imports "http://hl7.org/fhir/StructureMap/Element3to2"

group for type+types base64Binary extends Element
  input src : base64Binary as source 
  input tgt : base64BinaryR2 as target

  "base64Binary-value" : for src.value as v make tgt.value = v
endgroup

group for type+types boolean extends Element
  input src : boolean as source 
  input tgt : booleanR2 as target

  "boolean-value" : for src.value as v make tgt.value = v
endgroup

group for type+types code extends Element
  input src : code as source 
  input tgt : codeR2 as target

  "code-value" : for src.value as v make tgt.value = v
endgroup

group for type+types date extends Element
  input src : date as source 
  input tgt : dateR2 as target

  "date-value" : for src.value as v make tgt.value = v
endgroup

group for type+types dateTime extends Element
  input src : dateTime as source 
  input tgt : dateTimeR2 as target

  "dateTime-value" : for src.value as v make tgt.value = v
endgroup

group for type+types decimal extends Element
  input src : decimal as source 
  input tgt : decimalR2 as target

  "decimal-value" : for src.value as v make tgt.value = v
endgroup

group for type+types id extends Element
  input src : id as source 
  input tgt : idR2 as target

  "id-value" : for src.value as v make tgt.value = v
endgroup

group for type+types instant extends Element
  input src : instant as source 
  input tgt : instantR2 as target

  "instant-value" : for src.value as v make tgt.value = v
endgroup

group for type+types integer extends Element
  input src : integer as source 
  input tgt : integerR2 as target

  "integer-value" : for src.value as v make tgt.value = v
endgroup

group for type+types markdown extends Element
  input src : markdown as source 
  input tgt : markdownR2 as target

  "markdown-value" : for src.value as v make tgt.value = v
endgroup

group for type+types oid extends Element
  input src : oid as source 
  input tgt : oidR2 as target

  "oid-value" : for src.value as v make tgt.value = v
endgroup

group for type+types positiveInt extends Element
  input src : positiveInt as source 
  input tgt : positiveIntR2 as target

  "positiveInt-value" : for src.value as v make tgt.value = v
endgroup

group for type+types string extends Element
  input src : string as source 
  input tgt : stringR2 as target

  "string-value" : for src.value as v make tgt.value = v
endgroup

group for type+types time extends Element
  input src : time as source 
  input tgt : timeR2 as target

  "time-value" : for src.value as v make tgt.value = v
endgroup

group for type+types unsignedInt extends Element
  input src : unsignedInt as source 
  input tgt : unsignedIntR2 as target

  "unsignedInt-value" : for src.value as v make tgt.value = v
endgroup

group for type+types uri extends Element
  input src : uri as source 
  input tgt : uriR2 as target

  "uri-value" : for src.value as v make tgt.value = v
endgroup

group for type+types uuid extends Element
  input src : uuid as source 
  input tgt : uuidR2 as target

  "uuid-value" : for src.value as v make tgt.value = v
endgroup

group for type+types xhtml extends Element
  input src : xhtml as source 
  input tgt : xhtmlR2 as target

  "xhtml-value" : for src.value as v make tgt.value = v
endgroup

group for types markdownToString extends Element
  input src : markdown as source 
  input tgt : stringR2 as target

  "markdownToString-value" : for src.value as v make tgt.value = v
endgroup

group for types uriToCode extends Element
  input src : uri as source 
  input tgt : codeR2 as target

  "uriToCode-value" : for src.value as v make tgt.value = v
endgroup

group for types uriToString extends Element
  input src : uri as source 
  input tgt : stringR2 as target

  "uriToString-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToXhtml extends Element
  input src : string as source 
  input tgt : xhtmlR2 as target

  "stringToXhtml-value" : for src.value as v make tgt.value = v
endgroup

group for types codeToString extends Element
  input src : code as source 
  input tgt : stringR2 as target

  "uriToCode-value" : for src.value as v make tgt.value = v
endgroup

group for types stringToId extends Element
  input src : string as source
  input tgt : idR2 as target

  "stringToId-value" : for src.value as v make tgt.value = v
endgroup

group for types idToString extends Element
  input src : id as source
  input tgt : stringR2 as target

  "stringToId-value" : for src.value as v make tgt.value = v
endgroup

group for types positiveIntToInteger extends Element
  input src : positiveIntR2 as source
  input tgt : integer as target

  "positiveIntToInteger-value" : for src.value as v make tgt.value = v
endgroup

group for types unsignedIntToInteger extends Element
  input src : unsignedIntR2 as source
  input tgt : integer as target

  "unsignedIntToInteger-value" : for src.value as v make tgt.value = v
endgroup

group for types dateToDateTime extends Element
  input src : date as source
  input tgt : dateTimeR2 as target

  "dateToDateTime-value" : for src.value as v make tgt.value = v
endgroup

group for types dateTimeToDate extends Element
  input src : dateTime as source
  input tgt : dateR2 as target

  "dateTimeToDate-value" : for src.value as v make tgt.value = (v.substring(0, 8))
endgroup


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/Attachment2to3" = "R2 to R3 Conversions for Attachment"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Attachment" alias AttachmentR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias Attachment as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"

group for type+types  Attachment extends Element
  input src : AttachmentR2 as source
  input tgt : Attachment as target

  "Attachment-contentType" : for src.contentType make tgt.contentType
  "Attachment-language" : for src.language make tgt.language
  "Attachment-data" : for src.data make tgt.data
  "Attachment-url" : for src.url make tgt.url
  "Attachment-size" : for src.size make tgt.size
  "Attachment-hash" : for src.hash make tgt.hash
  "Attachment-title" : for src.title make tgt.title
  "Attachment-creation" : for src.creation make tgt.creation

endgroup

map "http://hl7.org/fhir/StructureMap/Attachment3to2" = "R3 to R2 Conversion for Attachment"

uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias Attachment as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Attachment" alias AttachmentR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"

group for type+types  Attachment extends Element
  input src : Attachment as source
  input tgt : AttachmentR2 as target

  "Attachment-contentType" : for src.contentType make tgt.contentType
  "Attachment-language" : for src.language make tgt.language
  "Attachment-data" : for src.data make tgt.data
  "Attachment-url" : for src.url make tgt.url
  "Attachment-size" : for src.size make tgt.size
  "Attachment-hash" : for src.hash make tgt.hash
  "Attachment-title" : for src.title make tgt.title
  "Attachment-creation" : for src.creation make tgt.creation

endgroup

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/Identifier2to3" = "R2 to R3 Conversions for Identifier"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Identifier" alias IdentifierR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias Identifier as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Reference2to3"
imports "http://hl7.org/fhir/StructureMap/Period2to3"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept2to3"

group for type+types  Identifier extends Element
  input src : IdentifierR2 as source
  input tgt : Identifier as target

  "Identifier-use" : for src.use make tgt.use
  "Identifier-type" : for src.type make tgt.type
  "Identifier-system" : for src.system make tgt.system
  "Identifier-value" : for src.value make tgt.value
  "Identifier-period" : for src.period make tgt.period
  "Identifier-assigner" : for src.assigner make tgt.assigner

endgroup

map "http://hl7.org/fhir/StructureMap/Identifier3to2" = "R3 to R2 Conversion for Identifier"

uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias Identifier as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Identifier" alias IdentifierR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Reference3to2"
imports "http://hl7.org/fhir/StructureMap/Period3to2"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept3to2"

group for type+types  Identifier extends Element
  input src : Identifier as source
  input tgt : IdentifierR2 as target

  "Identifier-use" : for src.use make tgt.use
  "Identifier-type" : for src.type make tgt.type
  "Identifier-system" : for src.system make tgt.system
  "Identifier-value" : for src.value make tgt.value
  "Identifier-period" : for src.period make tgt.period
  "Identifier-assigner" : for src.assigner make tgt.assigner

endgroup

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/Coding2to3" = "R2 to R3 Conversions for Coding"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Coding" alias CodingR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias Coding as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"

group for type+types  Coding extends Element
  input src : CodingR2 as source
  input tgt : Coding as target

  "Coding-system" : for src.system make tgt.system
  "Coding-version" : for src.version make tgt.version
  "Coding-code" : for src.code make tgt.code
  "Coding-display" : for src.display make tgt.display
  "Coding-userSelected" : for src.userSelected make tgt.userSelected
endgroup


map "http://hl7.org/fhir/StructureMap/Coding3to2" = "R3 to R2 Conversion for Coding"

uses "http://hl7.org/fhir/StructureDefinition/Coding" alias Coding as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Coding" alias CodingR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"

group for type+types  Coding extends Element
  input src : Coding as source
  input tgt : CodingR2 as target

  "Coding-system" : for src.system make tgt.system
  "Coding-version" : for src.version make tgt.version
  "Coding-code" : for src.code make tgt.code
  "Coding-display" : for src.display make tgt.display
  "Coding-userSelected" : for src.userSelected make tgt.userSelected

endgroup

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/CodeableConcept2to3" = "R2 to R3 Conversions for CodeableConcept"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/CodeableConcept" alias CodeableConceptR2 as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Coding" alias CodingR2 as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/string" alias stringR2 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConcept as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Coding2to3"

group for type+types  CodeableConcept extends Element
  input src : CodeableConceptR2 as source
  input tgt : CodeableConcept as target

  "CodeableConcept-coding" : for src.coding make tgt.coding
  "CodeableConcept-text" : for src.text make tgt.text
endgroup

group for types CodingToCodeableConcept extends Element
  input src : CodingR2 as source
  input tgt : CodeableConcept as target

  "CodingToCodeableConcept-coding" : for src make tgt.coding as vt then Coding(src, vt)

endgroup

group for types CodeableConceptToCoding extends Element
  input src : CodeableConceptR2 as source
  input tgt : Coding as target

  "CodeableConcept-coding" : for src.coding only_one as vs then Coding(vs, tgt)
endgroup

group for types stringToCodeableConcept extends Element
  input src : stringR2 as source
  input tgt : CodeableConcept as target

  "stringToCodeableConcept-text" : for src make tgt.text as vt then string(src, vt)
endgroup

map "http://hl7.org/fhir/StructureMap/CodeableConcept3to2" = "R3 to R2 Conversion for CodeableConcept"

uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConcept as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/CodeableConcept" alias CodeableConceptR2 as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Coding" alias CodingR2 as target
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/string" alias stringR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Coding3to2"

group for type+types  CodeableConcept extends Element
  input src : CodeableConcept as source
  input tgt : CodeableConceptR2 as target

  "CodeableConcept-coding" : for src.coding make tgt.coding
  "CodeableConcept-text" : for src.text make tgt.text

endgroup

group for types CodeableConceptToCoding extends Element
  input src : CodeableConcept as source
  input tgt : CodingR2 as target

  "CodeableConcept-coding" : for src.coding only_one as vs then Coding(vs, tgt)
endgroup

group for types CodingToCodeableConcept extends Element
  input src : Coding as source
  input tgt : CodeableConceptR2 as target

  "CodingToCodeableConcept-coding" : for src make tgt.coding as vt then Coding(src, vt)
endgroup


group for types CodeableConceptToString extends Element
  input src : CodeableConcept as source
  input tgt : stringR2 as target

  "CodeableConceptToString-text" : for src.text as vs then string(vs, tgt)
endgroup


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/Quantity2to3" = "R2 to R3 Conversions for Quantity"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Quantity" alias QuantityR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias Quantity as target
uses "http://hl7.org/fhir/StructureDefinition/Duration" alias Duration as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"

group for type+types  Quantity extends Element
  input src : QuantityR2 as source
  input tgt : Quantity as target

  "Quantity-value" : for src.value make tgt.value
  "Quantity-comparator" : for src.comparator make tgt.comparator
  "Quantity-unit" : for src.unit make tgt.unit
  "Quantity-system" : for src.system make tgt.system
  "Quantity-code" : for src.code make tgt.code

endgroup

group QuantityToDuration extends Element
  input src : QuantityR2 as source
  input tgt : Duration as target

  "Duration-value" : for src.value make tgt.value
  "Duration-comparator" : for src.comparator make tgt.comparator
  "Duration-unit" : for src.unit make tgt.unit
  "Duration-system" : for src.system make tgt.system
  "Duration-code" : for src.code make tgt.code

endgroup

map "http://hl7.org/fhir/StructureMap/Quantity3to2" = "R3 to R2 Conversion for Quantity"

uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias Quantity as source
uses "http://hl7.org/fhir/StructureDefinition/Duration" alias Duration as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Quantity" alias QuantityR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"

group for type+types  Quantity extends Element
  input src : Quantity as source
  input tgt : QuantityR2 as target

  "Quantity-value" : for src.value make tgt.value
  "Quantity-comparator" : for src.comparator make tgt.comparator
  "Quantity-unit" : for src.unit make tgt.unit
  "Quantity-system" : for src.system make tgt.system
  "Quantity-code" : for src.code make tgt.code

endgroup

group DurationToQuantity extends Element
  input src : Duration as source
  input tgt : QuantityR2 as target

  "Duration-value" : for src.value make tgt.value
  "Duration-comparator" : for src.comparator make tgt.comparator
  "Duration-unit" : for src.unit make tgt.unit
  "Duration-system" : for src.system make tgt.system
  "Duration-code" : for src.code make tgt.code
endgroup

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/Range2to3" = "R2 to R3 Conversions for Range"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Range" alias RangeR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Range" alias Range as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Quantity2to3"

group for type+types  Range extends Element
  input src : RangeR2 as source
  input tgt : Range as target

  "Range-low" : for src.low make tgt.low
  "Range-high" : for src.high make tgt.high

endgroup

map "http://hl7.org/fhir/StructureMap/Range3to2" = "R3 to R2 Conversion for Range"

uses "http://hl7.org/fhir/StructureDefinition/Range" alias Range as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Range" alias RangeR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Quantity3to2"

group for type+types  Range extends Element
  input src : Range as source
  input tgt : RangeR2 as target

  "Range-low" : for src.low make tgt.low
  "Range-high" : for src.high make tgt.high

endgroup

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/Ratio2to3" = "R2 to R3 Conversions for Ratio"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Ratio" alias RatioR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias Ratio as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Quantity2to3"

group for type+types  Ratio extends Element
  input src : RatioR2 as source
  input tgt : Ratio as target

  "Ratio-numerator" : for src.numerator make tgt.numerator
  "Ratio-denominator" : for src.denominator make tgt.denominator

endgroup

map "http://hl7.org/fhir/StructureMap/Ratio3to2" = "R3 to R2 Conversion for Ratio"

uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias Ratio as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Ratio" alias RatioR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Quantity3to2"

group for type+types  Ratio extends Element
  input src : Ratio as source
  input tgt : RatioR2 as target

  "Ratio-numerator" : for src.numerator make tgt.numerator
  "Ratio-denominator" : for src.denominator make tgt.denominator

endgroup

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/Period2to3" = "R2 to R3 Conversions for Period"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Period" alias PeriodR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Period" alias Period as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"

group for type+types  Period extends Element
  input src : PeriodR2 as source
  input tgt : Period as target

  "Period-start" : for src.start make tgt.start
  "Period-end" : for src.end make tgt.end

endgroup

map "http://hl7.org/fhir/StructureMap/Period3to2" = "R3 to R2 Conversion for Period"

uses "http://hl7.org/fhir/StructureDefinition/Period" alias Period as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Period" alias PeriodR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"

group for type+types  Period extends Element
  input src : Period as source
  input tgt : PeriodR2 as target

  "Period-start" : for src.start make tgt.start
  "Period-end" : for src.end make tgt.end

endgroup

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/SampledData2to3" = "R2 to R3 Conversions for SampledData"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/SampledData" alias SampledDataR2 as source
uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledData as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Quantity2to3"

group for type+types  SampledData extends Element
  input src : SampledDataR2 as source
  input tgt : SampledData as target

  "SampledData-origin" : for src.origin make tgt.origin
  "SampledData-period" : for src.period make tgt.period
  "SampledData-factor" : for src.factor make tgt.factor
  "SampledData-lowerLimit" : for src.lowerLimit make tgt.lowerLimit
  "SampledData-upperLimit" : for src.upperLimit make tgt.upperLimit
  "SampledData-dimensions" : for src.dimensions make tgt.dimensions
  "SampledData-data" : for src.data make tgt.data

endgroup

map "http://hl7.org/fhir/StructureMap/SampledData3to2" = "R3 to R2 Conversion for SampledData"

uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledData as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/SampledData" alias SampledDataR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Quantity3to2"

group for type+types  SampledData extends Element
  input src : SampledData as source
  input tgt : SampledDataR2 as target

  "SampledData-origin" : for src.origin make tgt.origin
  "SampledData-period" : for src.period make tgt.period
  "SampledData-factor" : for src.factor make tgt.factor
  "SampledData-lowerLimit" : for src.lowerLimit make tgt.lowerLimit
  "SampledData-upperLimit" : for src.upperLimit make tgt.upperLimit
  "SampledData-dimensions" : for src.dimensions make tgt.dimensions
  "SampledData-data" : for src.data make tgt.data

endgroup

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/HumanName2to3" = "R2 to R3 Conversions for HumanName"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/HumanName" alias HumanNameR2 as source
uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanName as target

imports "http://hl7.org/fhir/StructureMap/*2to3"

group for type+types  HumanName extends Element
  input src : HumanNameR2 as source
  input tgt : HumanName as target

  "HumanName-use" : for src.use make tgt.use
  "HumanName-text" : for src.text make tgt.text
  "HumanName-family" : for src.family first make tgt.family
  "HumanName-family-rpt" : for src.family not_first as f make tgt.extension as ex, ex.url = "http://hl7.org/fhir/StructureDefinition/HumanName-familyRepeat", ex.value = f
  "HumanName-given" : for src.given make tgt.given
  "HumanName-prefix" : for src.prefix make tgt.prefix
  "HumanName-suffix" : for src.suffix make tgt.suffix
  "HumanName-period" : for src.period make tgt.period

endgroup

map "http://hl7.org/fhir/StructureMap/HumanName3to2" = "R3 to R2 Conversion for HumanName"

uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanName as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/HumanName" alias HumanNameR2 as target

imports "http://hl7.org/fhir/StructureMap/*3to2"

group for type+types  HumanName 
  input src : HumanName as source
  input tgt : HumanNameR2 as target

  "HumanName-id" : for src.id make tgt.id
  "HumanName-extensions" : for src.extension where url != 'http://hl7.org/fhir/StructureDefinition/HumanName-familyRepeat' make tgt.extension
  
  "HumanName-use" : for src.use make tgt.use
  "HumanName-text" : for src.text make tgt.text
  "HumanName-family" : for src.family first make tgt.family
  "HumanName-family-rpt-ex" : for src.extension as ex where url = 'http://hl7.org/fhir/StructureDefinition/HumanName-familyRepeat' make tgt.family as f then nameRepeat(ex, f)
  "HumanName-given" : for src.given make tgt.given
  "HumanName-prefix" : for src.prefix make tgt.prefix
  "HumanName-suffix" : for src.suffix make tgt.suffix
  "HumanName-period" : for src.period make tgt.period
endgroup

group nameRepeat 
  input src as source
  input tgt as target

  "HumanName-family-rpt-2" : for src.value as v then string(v, tgt)
endgroup


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/Address2to3" = "R2 to R3 Conversions for Address"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Address" alias AddressR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Address" alias Address as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Period2to3"

group for type+types  Address extends Element
  input src : AddressR2 as source
  input tgt : Address as target

  "Address-use" : for src.use make tgt.use
  "Address-type" : for src.type make tgt.type
  "Address-text" : for src.text make tgt.text
  "Address-line" : for src.line make tgt.line
  "Address-city" : for src.city make tgt.city
  "Address-district" : for src.district make tgt.district
  "Address-state" : for src.state make tgt.state
  "Address-postalCode" : for src.postalCode make tgt.postalCode
  "Address-country" : for src.country make tgt.country
  "Address-period" : for src.period make tgt.period

endgroup

map "http://hl7.org/fhir/StructureMap/Address3to2" = "R3 to R2 Conversion for Address"

uses "http://hl7.org/fhir/StructureDefinition/Address" alias Address as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Address" alias AddressR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Period3to2"

group for type+types  Address extends Element
  input src : Address as source
  input tgt : AddressR2 as target

  "Address-use" : for src.use make tgt.use
  "Address-type" : for src.type make tgt.type
  "Address-text" : for src.text make tgt.text
  "Address-line" : for src.line make tgt.line
  "Address-city" : for src.city make tgt.city
  "Address-district" : for src.district make tgt.district
  "Address-state" : for src.state make tgt.state
  "Address-postalCode" : for src.postalCode make tgt.postalCode
  "Address-country" : for src.country make tgt.country
  "Address-period" : for src.period make tgt.period

endgroup

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/ContactPoint2to3" = "R2 to R3 Conversions for ContactPoint"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ContactPoint" alias ContactPointR2 as source
uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPoint as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Period2to3"

group for type+types  ContactPoint extends Element
  input src : ContactPointR2 as source
  input tgt : ContactPoint as target

  "ContactPoint-system" : for src.system make tgt.system
  "ContactPoint-value" : for src.value make tgt.value
  "ContactPoint-use" : for src.use make tgt.use
  "ContactPoint-rank" : for src.rank make tgt.rank
  "ContactPoint-period" : for src.period make tgt.period

endgroup

map "http://hl7.org/fhir/StructureMap/ContactPoint3to2" = "R3 to R2 Conversion for ContactPoint"

uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPoint as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ContactPoint" alias ContactPointR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Period3to2"

group for type+types  ContactPoint extends Element
  input src : ContactPoint as source
  input tgt : ContactPointR2 as target

  "ContactPoint-system" : for src.system make tgt.system
  "ContactPoint-value" : for src.value make tgt.value
  "ContactPoint-use" : for src.use make tgt.use
  "ContactPoint-rank" : for src.rank make tgt.rank
  "ContactPoint-period" : for src.period make tgt.period

endgroup

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/Timing2to3" = "R2 to R3 Conversions for Timing"

conceptmap "EventTiming" {
  prefix s = "http://hl7.org/fhir/v3/TimingEvent"
  prefix t = "http://hl7.org/fhir/event-timing"

  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
  s:HS ~ t:MORN
}

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Timing" alias TimingR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Timing" alias Timing as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Period2to3"
imports "http://hl7.org/fhir/StructureMap/Range2to3"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept2to3"

group for type+types  Timing extends Element
  input src : TimingR2 as source
  input tgt : Timing as target

  "Timing-event" : for src.event make tgt.event
  "Timing-repeat" : for src.repeat as vs0 make tgt.repeat as vt0 then {
    "Timing.repeat-bounds-Range" : for vs0.bounds : Range as vs make vt0.bounds = create("Range") as vt then Range(vs, vt)
    "Timing.repeat-bounds-Period" : for vs0.bounds : Period as vs make vt0.bounds = create("Period") as vt then Period(vs, vt)
    "Timing.repeat-count" : for vs0.count make vt0.count
    "Timing.repeat-duration" : for vs0.duration make vt0.duration
    "Timing.repeat-durationMax" : for vs0.durationMax make vt0.durationMax
    "Timing.repeat-durationUnit" : for vs0.durationUnits make vt0.durationUnit
    "Timing.repeat-frequency" : for vs0.frequency make vt0.frequency
    "Timing.repeat-frequencyMax" : for vs0.frequencyMax make vt0.frequencyMax
    "Timing.repeat-period" : for vs0.period make vt0.period
    "Timing.repeat-periodMax" : for vs0.periodMax make vt0.periodMax
    "Timing.repeat-periodUnit" : for vs0.periodUnits make vt0.periodUnit
    "Timing.repeat-when" : for vs0.when as v make vt0.when = translate(v, "#EventTiming", "code")
  }

  "Timing-code" : for src.code make tgt.code

endgroup

map "http://hl7.org/fhir/StructureMap/Timing3to2" = "R3 to R2 Conversion for Timing"

conceptmap "EventTiming" {
  prefix s = "http://hl7.org/fhir/event-timing"
  prefix t = "http://hl7.org/fhir/v3/TimingEvent"

  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
  s:MORN ~ t:HS
}

uses "http://hl7.org/fhir/StructureDefinition/Timing" alias Timing as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Timing" alias TimingR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Period3to2"
imports "http://hl7.org/fhir/StructureMap/Range3to2"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept3to2"

group for type+types  Timing extends Element
  input src : Timing as source
  input tgt : TimingR2 as target

  "Timing-event" : for src.event make tgt.event
  "Timing-repeat" : for src.repeat as vs0 make tgt.repeat as vt0 then {
    "Timing.repeat-bounds-Range" : for vs0.bounds : Range as vs make vt0.bounds = create("Range") as vt then Range(vs, vt)
    "Timing.repeat-bounds-Period" : for vs0.bounds : Period as vs make vt0.bounds = create("Period") as vt then Period(vs, vt)
    "Timing.repeat-count" : for vs0.count make vt0.count
    "Timing.repeat-duration" : for vs0.duration make vt0.duration
    "Timing.repeat-durationMax" : for vs0.durationMax make vt0.durationMax
    "Timing.repeat-durationUnits" : for vs0.durationUnit make vt0.durationUnits
    "Timing.repeat-frequency" : for vs0.frequency make vt0.frequency
    "Timing.repeat-frequencyMax" : for vs0.frequencyMax make vt0.frequencyMax
    "Timing.repeat-period" : for vs0.period make vt0.period
    "Timing.repeat-periodMax" : for vs0.periodMax make vt0.periodMax
    "Timing.repeat-periodUnits" : for vs0.periodUnit make vt0.periodUnits
    "Timing.repeat-when" : for vs0.when as v make vt0.when = translate(v, "#EventTiming", "code")
  }

  "Timing-code" : for src.code make tgt.code

endgroup

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/Signature2to3" = "R2 to R3 Conversions for Signature"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Signature" alias SignatureR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Signature" alias Signature as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/Element2to3"
imports "http://hl7.org/fhir/StructureMap/Coding2to3"
imports "http://hl7.org/fhir/StructureMap/Reference2to3"

group for type+types  Signature extends Element
  input src : SignatureR2 as source
  input tgt : Signature as target

  "Signature-type" : for src.type make tgt.type
  "Signature-when" : for src.when make tgt.when
  "Signature-who-uri" : for src.who : uri as vs make tgt.who = create("uri") as vt then uri(vs, vt)
  "Signature-who-Reference" : for src.who : Reference as vs make tgt.who = create("Reference") as vt then Reference(vs, vt)
  "Signature-contentType" : for src.contentType make tgt.contentType
  "Signature-blob" : for src.blob make tgt.blob

endgroup

map "http://hl7.org/fhir/StructureMap/Signature3to2" = "R3 to R2 Conversion for Signature"

uses "http://hl7.org/fhir/StructureDefinition/Signature" alias Signature as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Signature" alias SignatureR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Coding3to2"
imports "http://hl7.org/fhir/StructureMap/Reference3to2"

group for type+types  Signature extends Element
  input src : Signature as source
  input tgt : SignatureR2 as target

  "Signature-type" : for src.type make tgt.type
  "Signature-when" : for src.when make tgt.when
  "Signature-who-uri" : for src.who : uri as vs make tgt.who = create("uri") as vt then uri(vs, vt)
  "Signature-who-Reference" : for src.who : Reference as vs make tgt.who = create("Reference") as vt then Reference(vs, vt)
  "Signature-contentType" : for src.contentType make tgt.contentType
  "Signature-blob" : for src.blob make tgt.blob

endgroup

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/Annotation2to3" = "R2 to R3 Conversions for Annotation"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Annotation" alias AnnotationR2 as source
  uses "http://hl7.org/fhir/DSTU2/StructureDefinition/string" alias stringR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias Annotation as target

imports "http://hl7.org/fhir/StructureMap/*2to3"

group for type+types  Annotation extends Element
  input src : AnnotationR2 as source
  input tgt : Annotation as target

  "Annotation-author-Reference" : for src.author : Reference as vs make tgt.author = create("Reference") as vt then Reference(vs, vt)
  "Annotation-author-string" : for src.author : string as vs make tgt.author = create("string") as vt then string(vs, vt)
  "Annotation-time" : for src.time make tgt.time
  "Annotation-text" : for src.text make tgt.text

endgroup

group for types stringToAnnotation extends Element
  input src : stringR2 as source
  input tgt : Annotation as target

  "Annotation-text1" : for src make tgt.text = src
endgroup

map "http://hl7.org/fhir/StructureMap/Annotation3to2" = "R3 to R2 Conversion for Annotation"

uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias Annotation as source
uses "http://hl7.org/fhir/StructureDefinition/string" alias string as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Annotation" alias AnnotationR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/Element3to2"
imports "http://hl7.org/fhir/StructureMap/Reference3to2"

group for type+types  Annotation extends Element
  input src : Annotation as source
  input tgt : AnnotationR2 as target

  "Annotation-author-Reference" : for src.author : Reference as vs make tgt.author = create("Reference") as vt then Reference(vs, vt)
  "Annotation-author-string" : for src.author : string as vs make tgt.author = create("string") as vt then string(vs, vt)
  "Annotation-time" : for src.time make tgt.time
  "Annotation-text" : for src.text make tgt.text

endgroup

group for type+types  AnnotationToString extends Element
  input src : AnnotationR2 as source
  input tgt : string as target

  "Annotation-text1" : for src.text as v make tgt.value = v

endgroup