FHIR Cross-Version Mapping Pack
0.1.0 - Ballot for Release 5.1.0 International flag

FHIR Cross-Version Mapping Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-cross-version/ and changes regularly. See the Directory of published versions

StructureMap: DataElement Transforms: R3 to R2

Official URL: http://hl7.org/fhir/StructureMap/DataElement3to2 Version: 0.1.0
Standards status: Draft Maturity Level: 1 Computable Name: DataElement3to2

DataElementTransformsR3toR2

/// url = 'http://hl7.org/fhir/StructureMap/DataElement3to2'
/// name = 'DataElement3to2'
/// title = 'DataElement Transforms: R3 to R2'
/// status = 'active'

uses "http://hl7.org/fhir/3.0/DataElement" alias DataElement as source
uses "http://hl7.org/fhir/1.0/DataElement" alias DataElementR2 as target

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

group DataElement(source src : DataElement, target tgt : DataElementR2) extends DomainResource <<type+>> {
  src.url -> tgt.url "DataElement-url";
  src.identifier -> tgt.identifier "DataElement-identifier";
  src.version -> tgt.version "DataElement-version";
  src.experimental -> tgt.experimental "DataElement-experimental";
  src.name -> tgt.name "DataElement-name";
  src.status -> tgt.status "DataElement-status";
  src.publisher -> tgt.publisher "DataElement-publisher";
  src.contact as vs0 -> tgt.contact as vt0 then decontact(vs0, vt0) "DataElement-contact";
  src.date -> tgt.date "DataElement-date";
  src.jurisdiction -> tgt.useContext "DataElement-useContext";
  src.useContext as vs then {
    vs.value -> tgt.useContext "DataElement-useContext-value";
  } "DataElement-useContext";
  src.stringency -> tgt.stringency "DataElement-stringency";
  src.mapping as vs0 -> tgt.mapping as vt0 then deMapping(vs0, vt0) "DataElement-mapping";
  src.element as vs -> tgt.element as vt then ElementDefinition(src, vs, vt) "DataElement-element";
}

group decontact(source src, target tgt) extends Element {
  src.name -> tgt.name "ContactDetail-name";
  src.telecom -> tgt.telecom "ContactDetail-telecom";
}

group deMapping(source src, target tgt) extends Element {
  src.identity -> tgt.identity "mapping-identity";
  src.uri -> tgt.uri "mapping-uri";
  src.name -> tgt.name "mapping-name";
  src.comment -> tgt.comments "mapping-comments";
}