StructureMap-MedicationKnowledge4Bto5

Sourcehl7.fhir.uv.extensions.r4#1.0.0:FHIR Extensions Pack (v4.0.1)
resourceTypeStructureMap
idMedicationKnowledge4Bto5
canonicalhttp://hl7.org/fhir/StructureMap/MedicationKnowledge4Bto5
version1.0.0
statusactive
publisherHL7 International / FHIR Infrastructure
nameMedicationKnowledge4Bto5
titleFML Conversion for MedicationKnowledge: R4B to R5
date2023-03-26T08:47:34+11:00
descriptionFMLConversionforMedicationKnowledgeR4BtoR5
jurisdictionsuv
Usages(none)

    
/// url = 
    
    'http://hl7.org/fhir/StructureMap/MedicationKnowledge4Bto5'

    
/// name = 
    
    'MedicationKnowledge4Bto5'

    
/// title = 
    
    'FML Conversion for MedicationKnowledge: R4B to R5'

    
/// status = 
    
    'active'


    conceptmap
     "
MedicationKnowledgeStatus    " {

      prefix 
s     = "
http://terminology.hl7.org/CodeSystem/medicationknowledge-status    "

      prefix 
t     = "
    http://hl7.org/fhir/CodeSystem/medicationknowledge-status
    "


  s    :
active     -
 t    :
active
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

  s    :
inactive     -
 t    :
inactive
    }


    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/MedicationKnowledge    " 
    alias 
MedicationKnowledgeR4B     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/MedicationKnowledge
    " 
    alias 
MedicationKnowledgeR5     as 
    target


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


    group 
MedicationKnowledge    (
    source
     src
     : 
MedicationKnowledgeR4B,     target
     tgt
     : 
MedicationKnowledgeR5    )
     extends 
DomainResource     <<type+>>
     {

  src.code    
 ->     
tgt.code    ;
     // 
    src.identifier -> tgt.identifier;

  src.status     as 
    v
    
 ->     
tgt.status =     translate
    (
    v
    , 
    '#MedicationKnowledgeStatus'
    , 
    'code'
    )
    ;

  src.synonym    
 ->     
tgt.name    ;
     // 
    src.author -> tgt.author;

  src.relatedMedicationKnowledge     as 
    s
    
 ->     
tgt.relatedMedicationKnowledge     as 
    t
     then 
MedicationKnowledgeRelatedMedicationKnowledge    (
    s
    , 
    t
    )
    ;

  src.associatedMedication    
 ->     
tgt.associatedMedication    ;

  src.productType    
 ->     
tgt.productType    ;

  src.monograph     as 
    s
    
 ->     
tgt.monograph     as 
    t
     then 
MedicationKnowledgeMonograph    (
    s
    , 
    t
    )
    ;

  src.preparationInstruction    
 ->     
tgt.preparationInstruction    ;

  src.cost     as 
    s
    
 ->     
tgt.cost     as 
    t
     then 
MedicationKnowledgeCost    (
    s
    , 
    t
    )
    ;

  src.monitoringProgram     as 
    s
    
 ->     
tgt.monitoringProgram     as 
    t
     then 
MedicationKnowledgeMonitoringProgram    (
    s
    , 
    t
    )
    ;

  src.administrationGuidelines     as 
    s
    
 ->     
tgt.indicationGuideline     as 
    t
     then 
MedicationKnowledgeIndicationGuideline    (
    s
    , 
    t
    )
    ;

  src.medicineClassification     as 
    s
    
 ->     
tgt.medicineClassification     as 
    t
     then 
MedicationKnowledgeMedicineClassification    (
    s
    , 
    t
    )
    ;

  src.regulatory     as 
    s
    
 ->     
tgt.regulatory     as 
    t
     then 
MedicationKnowledgeRegulatory    (
    s
    , 
    t
    )
    ;
     // 
    src.packaging as s -> tgt.packaging as t then MedicationKnowledgePackaging(s,t);

  src.drugCharacteristic     as 
    s
    
 ->     
tgt.definitional     as 
    t
     then 
MedicationKnowledgeDefinitional    (
    s
    , 
    t
    )
    ;

    }


    group 
MedicationKnowledgeRelatedMedicationKnowledge    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.reference    
 ->     
tgt.reference    ;

    }


    group 
MedicationKnowledgeMonograph    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.source    
 ->     
tgt.source    ;

    }


    group 
MedicationKnowledgeCost    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;
     // 
    src.effectiveDate -> tgt.effectiveDate;

  src.source    
 ->     
tgt.source    ;

  src.cost     : 
Money    
 ->     
tgt.cost    ;

    }


    group 
MedicationKnowledgeMonitoringProgram    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.name    
 ->     
tgt.name    ;

    }


    group 
MedicationKnowledgeIndicationGuideline    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.indication     : 
CodeableConcept    
 ->     
tgt.indication    ;

  src.indication     : 
Reference    
 ->     
tgt.indication    ;

  src.dosage     as 
    s
    
 ->     
 tgt.dosingGuideline     as 
    t
    , 
 t.dosage =     create
    (
    'BackboneElement'
    )
     as 
    td
     then 
MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage    (
    s
    , 
    td
    )
    ;
     // 
    src.dosage as s -> tgt.dosingGuideline as t then MedicationKnowledgeIndicationGuidelineDosingGuideline(s,t);

  src.patientCharacteristics     as 
    s
    
 ->     
tgt.dosingGuideline     as 
    t
     then
     {

    s.value     as 
    v
    
 ->     
 t.patientCharacteristic     as 
    tp
    , 
 tp.type =     create
    (
    'CodeableConcept'
    )
     as 
    tc
    , 
 tc.text =     v
    ;

    s.characteristic     : 
CodeableConcept     as 
    v
    
 ->     
 t.patientCharacteristic     as 
    tp
    , 
 tp.value =     v
    ;

    s.characteristic     : 
Quantity     as 
    v
    
 ->     
 t.patientCharacteristic     as 
    tp
    , 
 tp.value =     v
    ;

      }
    ;

    }


    // 
    group MedicationKnowledgeIndicationGuidelineDosingGuideline(source src, target tgt) extends BackboneElement {

    // src.treatmentIntent -> tgt.treatmentIntent;

    // 
    src as s -> tgt.dosage as t then MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage(s,t);

    // src.administrationTreatment -> tgt.administrationTreatment;

    // src.patientCharacteristic as s -> tgt.patientCharacteristic as t then MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristic(s,t);

    // 
    }

    group 
MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.dosage    
 ->     
tgt.dosage    ;

    }


    // 
    group MedicationKnowledgeIndicationGuidelineDosingGuidelinePatientCharacteristic(source src, target tgt) extends BackboneElement {

    // src.type -> tgt.type;

    // src.value : CodeableConcept -> tgt.value;

    // src.value : Quantity -> tgt.value;

    // src.value : Range -> tgt.value;

    // 
    }

    group 
MedicationKnowledgeMedicineClassification    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.classification    
 ->     
tgt.classification    ;
     // 
    src.source : string -> tgt.source;

    }


    // 
    group MedicationKnowledgePackaging(source src, target tgt) extends BackboneElement {

    // src.packagedProduct -> tgt.packagedProduct;

    // 
    }

    // 
    group MedicationKnowledgeStorageGuideline(source src, target tgt) extends BackboneElement {

    // src.reference -> tgt.reference;

    // src.note -> tgt.note;

    // src.stabilityDuration -> tgt.stabilityDuration;

    // src.environmentalSetting as s -> tgt.environmentalSetting as t then MedicationKnowledgeStorageGuidelineEnvironmentalSetting(s,t);

    // 
    }

    // 
    group MedicationKnowledgeStorageGuidelineEnvironmentalSetting(source src, target tgt) extends BackboneElement {

    // src.type -> tgt.type;

    // src.value : Quantity -> tgt.value;

    // src.value : Range -> tgt.value;

    // src.value : CodeableConcept -> tgt.value;

    // 
    }

    group 
MedicationKnowledgeRegulatory    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.regulatoryAuthority    
 ->     
tgt.regulatoryAuthority    ;

  src.substitution     as 
    s
    
 ->     
tgt.substitution     as 
    t
     then 
MedicationKnowledgeRegulatorySubstitution    (
    s
    , 
    t
    )
    ;

  src.schedule     as 
    s
    
 ->     
tgt.schedule =     s.schedule
    ;

  src.maxDispense     as 
    s
    
 ->     
tgt.maxDispense     as 
    t
     then 
MedicationKnowledgeRegulatoryMaxDispense    (
    s
    , 
    t
    )
    ;

    }


    group 
MedicationKnowledgeRegulatorySubstitution    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.allowed    
 ->     
tgt.allowed    ;

    }


    group 
MedicationKnowledgeRegulatoryMaxDispense    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.quantity    
 ->     
tgt.quantity    ;

  src.period    
 ->     
tgt.period    ;

    }


    group 
MedicationKnowledgeDefinitional    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type     as 
    s
    
 ->     
 tgt.drugCharacteristic     as 
    t
    , 
 t.type =     s
    ;
     // 
    src.definition -> tgt.definition;

  src.value     : 
CodeableConcept     as 
    s
    
 ->     
 tgt.drugCharacteristic     as 
    t
    , 
 t.value =     s
    ;

  src.value     : 
string     as 
    s
    
 ->     
 tgt.drugCharacteristic     as 
    t
    , 
 t.value =     s
    ;

  src.value     : 
Quantity     as 
    s
    
 ->     
 tgt.drugCharacteristic     as 
    t
    , 
 t.value =     s
    ;

  src.value     : 
base64Binary     as 
    s
    
 ->     
 tgt.drugCharacteristic     as 
    t
    , 
 t.value =     s
    ;

    }


  

Produced 06 Apr 2023