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

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

SpecimenDefinitionTransformsR4BtoR5

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

uses "http://hl7.org/fhir/4.3/SpecimenDefinition" alias SpecimenDefinitionR4B as source
uses "http://hl7.org/fhir/5.0/SpecimenDefinition" alias SpecimenDefinitionR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group SpecimenDefinition(source src : SpecimenDefinitionR4B, target tgt : SpecimenDefinitionR5) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.typeCollected -> tgt.typeCollected;
  src.patientPreparation -> tgt.patientPreparation;
  src.timeAspect -> tgt.timeAspect;
  src.collection -> tgt.collection;
  src.typeTested as s -> tgt.typeTested as t then SpecimenDefinitionTypeTested(s, t);
}

group SpecimenDefinitionTypeTested(source src, target tgt) extends BackboneElement {
  src.isDerived -> tgt.isDerived;
  src.type -> tgt.type;
  src.preference as v -> tgt.preference = translate(v, 'http://hl7.org/fhir/ConceptMap/SpecimenDefinitionB.typeTested.preference-R4BtoR5', 'code');
  src.container as s -> tgt.container as t then SpecimenDefinitionTypeTestedContainer(s, t);
  src.requirement -> tgt.requirement;
  src.retentionTime -> tgt.retentionTime;
  src.rejectionCriterion -> tgt.rejectionCriterion;
  src.handling as s -> tgt.handling as t then SpecimenDefinitionTypeTestedHandling(s, t);
}

group SpecimenDefinitionTypeTestedContainer(source src, target tgt) extends BackboneElement {
  src.material -> tgt.material;
  src.type -> tgt.type;
  src.cap -> tgt.cap;
  src.description -> tgt.description;
  src.capacity -> tgt.capacity;
  src.minimumVolume : Quantity -> tgt.minimumVolume;
  src.minimumVolume : string -> tgt.minimumVolume;
  src.additive as s -> tgt.additive as t then SpecimenDefinitionTypeTestedContainerAdditive(s, t);
  src.preparation -> tgt.preparation;
}

group SpecimenDefinitionTypeTestedContainerAdditive(source src, target tgt) extends BackboneElement {
  src.additive : CodeableConcept -> tgt.additive;
  src.additive : Reference -> tgt.additive;
}

group SpecimenDefinitionTypeTestedHandling(source src, target tgt) extends BackboneElement {
  src.temperatureQualifier -> tgt.temperatureQualifier;
  src.temperatureRange -> tgt.temperatureRange;
  src.maxDuration -> tgt.maxDuration;
  src.instruction -> tgt.instruction;
}