StructureMap-Subscription4to5

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

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

    
/// name = 
    
    'Subscription4to5'

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

    
/// status = 
    
    'active'


    conceptmap
     "
SubscriptionStatusCodes    " {

      prefix 
s     = "
http://hl7.org/fhir/4.0/subscription-status    "

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


  s    :
requested     -
 t    :
requested
  s    :
active     -
 t    :
active
  s    :
error     -
 t    :
error
  s    :
off     -
 t    :
off
    }


    uses
     "
http://hl7.org/fhir/4.0/StructureDefinition/Subscription    " 
    alias 
SubscriptionR4     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Subscription
    " 
    alias 
SubscriptionR5     as 
    target


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


    group 
Subscription    (
    source
     src
     : 
SubscriptionR4,     target
     tgt
     : 
SubscriptionR5    )
     extends 
DomainResource     <<type+>>
     {

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

  src.contact    
 ->     
tgt.contact    ;
     // 
    src.topic -> tgt.topic;

  src.end    
 ->     
tgt.end    ;

  src.reason    
 ->     
tgt.reason    ;
     // 
    src.managingEntity -> tgt.managingEntity;

  src.channel     as 
    s
    
 ->     
    tgt
     then
     {

    s.type     as 
    s1
    
 ->     
 tgt.channelType =     create
    (
    'Coding'
    )
     as 
    t
    , 
 t.code =     s1
    ;

    s.endpoint    
 ->     
tgt.endpoint    ;

    s.header     as 
    s1
    
 ->     
 tgt.parameter     as 
    t
    , 
 t.name =     (
%s1.substring(0, %s1.indexOf(': '))    )
    , 
 t.value =     (
%s1.substring(%s1.indexOf(': ') + 1)    )
    ;

    s.payload    
 ->     
tgt.contentType    ;

      }
    ;
     // 
    criteria replaced - see subscriptions backport IG

    }


  

Produced 06 Apr 2023