FHIR Extensions Pack
1.0.0 - Working Copy International flag

This page is part of the FHIR Core Extensions Registry (v1.0.0: Releases) based on FHIR v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for AdministrableProductDefinition: R5 to R4B

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

FMLConversionforAdministrableProductDefinitionR5toR4B

/// url = 'http://hl7.org/fhir/StructureMap/AdministrableProductDefinition5to4B'
/// name = 'AdministrableProductDefinition5to4B'
/// title = 'FML Conversion for AdministrableProductDefinition: R5 to R4B'
/// status = 'active'

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

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

uses "http://hl7.org/fhir/StructureDefinition/AdministrableProductDefinition" alias AdministrableProductDefinitionR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/AdministrableProductDefinition" alias AdministrableProductDefinitionR4B as target

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

group AdministrableProductDefinition(source src : AdministrableProductDefinitionR5, target tgt : AdministrableProductDefinitionR4B) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status as v -> tgt.status = translate(v, '#PublicationStatus', 'code');
  src.formOf -> tgt.formOf;
  src.administrableDoseForm -> tgt.administrableDoseForm;
  src.unitOfPresentation -> tgt.unitOfPresentation;
  src.producedFrom -> tgt.producedFrom;
  src.ingredient -> tgt.ingredient;
  src.device -> tgt.device;
  src.property as s -> tgt.property as t then AdministrableProductDefinitionProperty(s, t); // src.description -> tgt.description;
  src.routeOfAdministration as s -> tgt.routeOfAdministration as t then AdministrableProductDefinitionRouteOfAdministration(s, t);
}

group AdministrableProductDefinitionProperty(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; // src.value : markdown -> tgt.value;
  src.status as v -> tgt.status = translate(v, '#PublicationStatus', 'code'); // src.value : Reference -> tgt.value;
}

group AdministrableProductDefinitionRouteOfAdministration(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.firstDose -> tgt.firstDose;
  src.maxSingleDose -> tgt.maxSingleDose;
  src.maxDosePerDay -> tgt.maxDosePerDay;
  src.maxDosePerTreatmentPeriod -> tgt.maxDosePerTreatmentPeriod;
  src.maxTreatmentPeriod -> tgt.maxTreatmentPeriod;
  src.targetSpecies as s -> tgt.targetSpecies as t then AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(s, t);
}

group AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.withdrawalPeriod as s -> tgt.withdrawalPeriod as t then RouteOfAdministrationTargetSpeciesWithdrawalPeriod(s, t);
}

group RouteOfAdministrationTargetSpeciesWithdrawalPeriod(source src, target tgt) extends BackboneElement {
  src.tissue -> tgt.tissue;
  src.value -> tgt.value;
  src.supportingInformation -> tgt.supportingInformation;
}