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: Timing Transforms: R2 to R3

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

TimingTransformsR2toR3

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

uses "http://hl7.org/fhir/1.0/Timing" alias TimingR2 as source
uses "http://hl7.org/fhir/3.0/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 Timing(source src : TimingR2, target tgt : Timing) extends Element <<type+>> {
  src.event -> tgt.event "Timing-event";
  src.repeat as vs0 -> tgt.repeat as vt0 then {
    vs0.bounds : Range as vs -> vt0.bounds = create('Range') as vt then Range(vs, vt) "repeat-bounds-Range";
    vs0.bounds : Period as vs -> vt0.bounds = create('Period') as vt then Period(vs, vt) "repeat-bounds-Period";
    vs0.count -> vt0.count "repeat-count";
    vs0.duration -> vt0.duration "repeat-duration";
    vs0.durationMax -> vt0.durationMax "repeat-durationMax";
    vs0.durationUnits -> vt0.durationUnit "repeat-durationUnit";
    vs0.frequency -> vt0.frequency "repeat-frequency";
    vs0.frequencyMax -> vt0.frequencyMax "repeat-frequencyMax";
    vs0.period -> vt0.period "repeat-period";
    vs0.periodMax -> vt0.periodMax "repeat-periodMax";
    vs0.periodUnits -> vt0.periodUnit "repeat-periodUnit";
    vs0.when as v -> vt0.when = translate(v, '#EventTiming', 'code') "repeat-when";
  } "Timing-repeat";
  src.code -> tgt.code "Timing-code";
}