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: Bundle Transforms: R5 to R4B

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

BundleTransformsR5toR4B

/// url = 'http://hl7.org/fhir/StructureMap/Bundle5to4B'
/// name = 'Bundle5to4B'
/// title = 'Bundle Transforms: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/5.0/Bundle" alias BundleR5 as source
uses "http://hl7.org/fhir/4.0/Bundle" alias BundleR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Bundle(source src : BundleR5, target tgt : BundleR4B) extends Resource <<type+>> {
  src.identifier -> tgt.identifier;
  src.type as v -> tgt.type = translate(v, 'http://hl7.org/fhir/ConceptMap/Bundle.type-R5toR4', 'code');
  src.timestamp -> tgt.timestamp;
  src.total -> tgt.total;
  src.link as s -> tgt.link as t then BundleLink(s, t);
  src.entry as s -> tgt.entry as t then BundleEntry(s, t);
  src.signature -> tgt.signature;
}

group BundleLink(source src, target tgt) extends BackboneElement {
  src.relation -> tgt.relation;
  src.url -> tgt.url;
}

group BundleEntry(source src, target tgt) extends BackboneElement {
  src.fullUrl -> tgt.fullUrl;
  src.resource : Resource -> tgt.resource;
  src.search as s -> tgt.search as t then BundleEntrySearch(s, t);
  src.request as s -> tgt.request as t then BundleEntryRequest(s, t);
  src.response as s -> tgt.response as t then BundleEntryResponse(s, t);
}

group BundleEntrySearch(source src, target tgt) extends BackboneElement {
  src.mode as v -> tgt.mode = translate(v, 'http://hl7.org/fhir/ConceptMap/Bundle.entry.search.mode-R5toR4', 'code');
  src.score -> tgt.score;
}

group BundleEntryRequest(source src, target tgt) extends BackboneElement {
  src.method as v -> tgt.method = translate(v, 'http://hl7.org/fhir/ConceptMap/Bundle.entry.request.method-R5toR4', 'code');
  src.url -> tgt.url;
  src.ifNoneMatch -> tgt.ifNoneMatch;
  src.ifModifiedSince -> tgt.ifModifiedSince;
  src.ifMatch -> tgt.ifMatch;
  src.ifNoneExist -> tgt.ifNoneExist;
}

group BundleEntryResponse(source src, target tgt) extends BackboneElement {
  src.status -> tgt.status;
  src.location -> tgt.location;
  src.etag -> tgt.etag;
  src.lastModified -> tgt.lastModified;
  src.outcome : Resource -> tgt.outcome;
}