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: Composition Transforms: R3 to R4

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

CompositionTransformsR3toR4

/// url = 'http://hl7.org/fhir/StructureMap/Composition3to4'
/// name = 'Composition3to4'
/// title = 'Composition Transforms: R3 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/3.0/Composition" alias CompositionR3 as source
uses "http://hl7.org/fhir/4.0/Composition" alias Composition as target

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

group Composition(source src : CompositionR3, target tgt : Composition) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.type -> tgt.type;
  src.class -> tgt.category;
  src.subject -> tgt.subject;
  src.encounter -> tgt.encounter;
  src.date -> tgt.date;
  src.author -> tgt.author;
  src.title -> tgt.title;
  src.confidentiality -> tgt.confidentiality;
  src.attester as vs0 -> tgt.attester as vt0 then attester(vs0, vt0);
  src.custodian -> tgt.custodian;
  src.relatesTo as vs0 -> tgt.relatesTo as vt0 then relatesTo(vs0, vt0);
  src.event as vs0 -> tgt.event as vt0 then event(vs0, vt0);
  src.section as vs0 -> tgt.section as vt0 then section(vs0, vt0);
}

group attester(source src, target tgt) extends BackboneElement {
  src.mode -> tgt.mode;
  src.time -> tgt.time;
  src.party -> tgt.party;
}

group relatesTo(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.target : Identifier as vs -> tgt.target = create('Identifier') as vt then Identifier(vs, vt);
  src.target : Reference as vs -> tgt.target = create('Reference') as vt then Reference(vs, vt);
}

group event(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.period -> tgt.period;
  src.detail -> tgt.detail;
}

group section(source src, target tgt) extends BackboneElement {
  src.title -> tgt.title;
  src.code -> tgt.code;
  src.text -> tgt.text;
  src.mode -> tgt.mode;
  src.orderedBy -> tgt.orderedBy;
  src.entry -> tgt.entry;
  src.emptyReason -> tgt.emptyReason;
  src.section as vs0 -> tgt.section as vt0 then section(vs0, vt0);
}