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

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

PackagedProductDefinitionTransformsR5toR4B

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

uses "http://hl7.org/fhir/5.0/PackagedProductDefinition" alias PackagedProductDefinitionR5 as source
uses "http://hl7.org/fhir/4.0/PackagedProductDefinition" alias PackagedProductDefinitionR4B as target

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

group PackagedProductDefinition(source src : PackagedProductDefinitionR5, target tgt : PackagedProductDefinitionR4B) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.name -> tgt.name;
  src.type -> tgt.type;
  src.packageFor -> tgt.packageFor;
  src.status -> tgt.status;
  src.statusDate -> tgt.statusDate;
  src.containedItemQuantity -> tgt.containedItemQuantity;
  src.description -> tgt.description;
  src.legalStatusOfSupply as s -> tgt.legalStatusOfSupply as t then PackagedProductDefinitionLegalStatusOfSupply(s, t);
  src.marketingStatus -> tgt.marketingStatus;
  src.copackagedIndicator -> tgt.copackagedIndicator;
  src.manufacturer -> tgt.manufacturer;
  src.packaging as s -> tgt.package as t then PackagedProductDefinitionPackaging(s, t);
}

group PackagedProductDefinitionLegalStatusOfSupply(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.jurisdiction -> tgt.jurisdiction;
}

group PackagedProductDefinitionPackaging(source src, target tgt) extends BackboneElement {
  src.identifier -> tgt.identifier;
  src.type -> tgt.type;
  src.quantity -> tgt.quantity;
  src.material -> tgt.material;
  src.alternateMaterial -> tgt.alternateMaterial;
  src.shelfLifeStorage as s -> tgt.shelfLifeStorage as t then {
    s.type -> t.type;
    s.period : Duration -> t.period;
    s.period : string -> t.period;
    s.specialPrecautionsForStorage -> t.specialPrecautionsForStorage;
  };
  src.manufacturer -> tgt.manufacturer;
  src.property as s -> tgt.property as t then PackagedProductDefinitionPackagingProperty(s, t);
  src.containedItem as s -> tgt.containedItem as t then PackagedProductDefinitionPackagingContainedItem(s, t);
}

group PackagedProductDefinitionPackagingProperty(source src, target tgt) extends BackboneElement {
  src.type -> tgt.type;
  src.value : CodeableConcept -> tgt.value;
  src.value : Quantity -> tgt.value;
  src.value : date -> tgt.value;
  src.value : boolean -> tgt.value;
  src.value : Attachment -> tgt.value;
}

group PackagedProductDefinitionPackagingContainedItem(source src, target tgt) extends BackboneElement {
  src.item -> tgt.item;
  src.amount -> tgt.amount;
}