FHIR Extensions Pack
5.1.0-cibuild - Working Copy International flag

FHIR Extensions Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 5.1.0-cibuild built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-extensions/ and changes regularly. See the Directory of published versions

StructureMap: FML Conversion for SpecimenDefinition: R5 to R4

Official URL: http://hl7.org/fhir/StructureMap/SpecimenDefinition5to4 Version: 5.1.0-cibuild
Standards status: Trial-use Maturity Level: 1 Computable Name: SpecimenDefinition5to4

FMLConversionforSpecimenDefinitionR5toR4

/// url = 'http://hl7.org/fhir/StructureMap/SpecimenDefinition5to4'
/// name = 'SpecimenDefinition5to4'
/// title = 'FML Conversion for SpecimenDefinition: R5 to R4'
/// status = 'active'

conceptmap "PublicationStatus" {
  prefix s = "http://hl7.org/fhir/publication-status"
  prefix t = "http://hl7.org/fhir/4.0/publication-status"

  s:draft - t:draft
  s:active - t:active
  s:retired - t:retired
  s:unknown - t:unknown
}

conceptmap "SpecimenContainedPreference" {
  prefix s = "http://hl7.org/fhir/specimen-contained-preference"
  prefix t = "http://hl7.org/fhir/4.0/specimen-contained-preference"

  s:preferred - t:preferred
  s:alternate - t:alternate
}

uses "http://hl7.org/fhir/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR4 as target

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

group SpecimenDefinition(source src : SpecimenDefinitionR5, target tgt : SpecimenDefinitionR4) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier; // src.url -> tgt.url;
  src.typeCollected -> tgt.typeCollected; // src.version -> tgt.version;
  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, '#SpecimenContainedPreference', '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.singleUse -> tgt.singleUse;
  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;
}