StructureMap-SubstancePolymer4to5

Sourcehl7.fhir.uv.extensions.r4#1.0.0:FHIR Extensions Pack (v4.0.1)
resourceTypeStructureMap
idSubstancePolymer4to5
canonicalhttp://hl7.org/fhir/StructureMap/SubstancePolymer4to5
version1.0.0
statusactive
publisherHL7 International / FHIR Infrastructure
nameSubstancePolymer4to5
titleFML Conversion for SubstancePolymer: R4 to R5
date2023-03-26T08:47:34+11:00
descriptionFMLConversionforSubstancePolymerR4toR5
jurisdictionsuv
Usages(none)

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

    
/// name = 
    
    'SubstancePolymer4to5'

    
/// title = 
    
    'FML Conversion for SubstancePolymer: R4 to R5'

    
/// status = 
    
    'active'


    uses
     "
http://hl7.org/fhir/4.0/StructureDefinition/SubstancePolymer    " 
    alias 
SubstancePolymerR4     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/SubstancePolymer
    " 
    alias 
SubstancePolymerR5     as 
    target


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


    group 
SubstancePolymer    (
    source
     src
     : 
SubstancePolymerR4,     target
     tgt
     : 
SubstancePolymerR5    )
     extends 
DomainResource     <<type+>>
     {

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

  src.geometry    
 ->     
tgt.geometry    ;

  src.copolymerConnectivity    
 ->     
tgt.copolymerConnectivity    ;

  src.modification    
 ->     
tgt.modification    ;

  src.monomerSet     as 
    s
    
 ->     
tgt.monomerSet     as 
    t
     then 
SubstancePolymerMonomerSet    (
    s
    , 
    t
    )
    ;

  src.repeat     as 
    s
    
 ->     
tgt.repeat     as 
    t
     then 
SubstancePolymerRepeat    (
    s
    , 
    t
    )
    ;

    }


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

  src.ratioType    
 ->     
tgt.ratioType    ;

  src.startingMaterial     as 
    s
    
 ->     
tgt.startingMaterial     as 
    t
     then 
SubstancePolymerMonomerSetStartingMaterial    (
    s
    , 
    t
    )
    ;

    }


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

  src.material    
 ->     
tgt.code    ;

  src.type    
 ->     
tgt.category    ;

  src.isDefining    
 ->     
tgt.isDefining    ;

  src.amount     as 
    s
    
 ->     
 tgt.amount     as 
    t
    , 
 t =     s.amount
    ;

    }


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

  src.averageMolecularFormula    
 ->     
tgt.averageMolecularFormula    ;

  src.repeatUnitAmountType    
 ->     
tgt.repeatUnitAmountType    ;

  src.repeatUnit     as 
    s
    
 ->     
tgt.repeatUnit     as 
    t
     then 
SubstancePolymerRepeatRepeatUnit    (
    s
    , 
    t
    )
    ;

    }


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

  src.repeatUnit    
 ->     
tgt.unit    ;

  src.orientationOfPolymerisation    
 ->     
tgt.orientation    ;

  src.degreeOfPolymerisation     as 
    s
    
 ->     
tgt.degreeOfPolymerisation     as 
    t
     then 
SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation    (
    s
    , 
    t
    )
    ;
     // 
    src.amount -> tgt.amount;

  src.structuralRepresentation     as 
    s
    
 ->     
tgt.structuralRepresentation     as 
    t
     then 
SubstancePolymerRepeatRepeatUnitStructuralRepresentation    (
    s
    , 
    t
    )
    ;

    }


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

  src.degree    
 ->     
tgt.type    ;

  src.amount     as 
    s
    
 ->     
    tgt
     then
     {

    s.amount     : 
Quantity     as 
    v
    
 ->     
tgt.average =     v.value
    ;

    s.referenceRange     as 
    sr
    
 ->     
    tgt
     then
     {

      sr.lowLimit     as 
    vl
    
 ->     
tgt.low =     vl.value
    ;

      sr.highLimit     as 
    vh
    
 ->     
tgt.high =     vh.value
    ;

        }
    ;

      }
    ;

    }


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

  src.type    
 ->     
tgt.type    ;

  src.representation    
 ->     
tgt.representation    ;

  src.attachment    
 ->     
tgt.attachment    ;
     // 
    src.format -> tgt.format;

    }


  

Produced 06 Apr 2023