StructureMap-DataRequirement5to4

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

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

    
/// name = 
    
    'DataRequirement5to4'

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

    
/// status = 
    
    'active'


    conceptmap
     "
SortDirection    " {

      prefix 
s     = "
    http://hl7.org/fhir/sort-direction
    "

      prefix 
t     = "
http://hl7.org/fhir/4.0/sort-direction    "


  s    :
ascending     -
 t    :
ascending
  s    :
descending     -
 t    :
descending
    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/DataRequirement
    " 
    alias 
DataRequirementR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.0/StructureDefinition/DataRequirement    " 
    alias 
DataRequirementR4     as 
    target


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


    group 
DataRequirement    (
    source
     src
     : 
DataRequirementR5,     target
     tgt
     : 
DataRequirementR4    )
     extends 
Element     <<type+>>
     {

  src.type     as 
    v
    
 ->     
tgt.type =     translate
    (
    v
    , 
    'http://hl7.org/fhir/interversion/types5to4'
    , 
    'code'
    )
    ;

  src.profile    
 ->     
tgt.profile    ;

  src.subject     : 
CodeableConcept    
 ->     
tgt.subject    ;

  src.subject     : 
Reference    
 ->     
tgt.subject    ;

  src.mustSupport    
 ->     
tgt.mustSupport    ;

  src.codeFilter     as 
    s
    
 ->     
tgt.codeFilter     as 
    t
     then 
DataRequirementCodeFilter    (
    s
    , 
    t
    )
    ;

  src.dateFilter     as 
    s
    
 ->     
tgt.dateFilter     as 
    t
     then 
DataRequirementDateFilter    (
    s
    , 
    t
    )
    ;

  src.limit    
 ->     
tgt.limit    ;
     // 
    src.valueFilter as s -> tgt.valueFilter as t then DataRequirementValueFilter(s,t); - not in R4

  src.sort     as 
    s
    
 ->     
tgt.sort     as 
    t
     then 
DataRequirementSort    (
    s
    , 
    t
    )
    ;

    }


    group 
DataRequirementCodeFilter    (
    source
     src
,     target
     tgt
    )
     extends 
Element     {

  src.path    
 ->     
tgt.path    ;

  src.searchParam    
 ->     
tgt.searchParam    ;

  src.valueSet    
 ->     
tgt.valueSet    ;

  src.code    
 ->     
tgt.code    ;

    }


    group 
DataRequirementDateFilter    (
    source
     src
,     target
     tgt
    )
     extends 
Element     {

  src.path    
 ->     
tgt.path    ;

  src.searchParam    
 ->     
tgt.searchParam    ;

  src.value     : 
dateTime    
 ->     
tgt.value    ;

  src.value     : 
Period    
 ->     
tgt.value    ;

  src.value     : 
Duration    
 ->     
tgt.value    ;

    }


    // 
    - not in R4

    // 
    group DataRequirementValueFilter(source src, target tgt) extends Element {

    // src.path -> tgt.path;

    // src.searchParam -> tgt.searchParam;

    // src.comparator -> tgt.comparator;

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

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

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

    // 
    }

    group 
DataRequirementSort    (
    source
     src
,     target
     tgt
    )
     extends 
Element     {

  src.path    
 ->     
tgt.path    ;

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

    }


  

Produced 06 Apr 2023