StructureMap-DocumentReference5to4

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

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

    
/// name = 
    
    'DocumentReference5to4'

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

    
/// status = 
    
    'active'


    conceptmap
     "
DocumentReferenceStatus    " {

      prefix 
s     = "
    http://hl7.org/fhir/document-reference-status
    "

      prefix 
t     = "
http://hl7.org/fhir/4.0/document-reference-status    "


  s    :
current     -
 t    :
current
  s    :
superseded     -
 t    :
superseded
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

    }


    conceptmap
     "
ReferredDocumentStatus    " {

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

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


  s    :
preliminary     -
 t    :
preliminary
  s    :
final     -
 t    :
final
  s    :
amended     -
 t    :
amended
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/DocumentReference
    " 
    alias 
DocumentReferenceR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.0/StructureDefinition/DocumentReference    " 
    alias 
DocumentReferenceR4     as 
    target


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


    group 
DocumentReference    (
    source
     src
     : 
DocumentReferenceR5,     target
     tgt
     : 
DocumentReferenceR4    )
     extends 
DomainResource     <<type+>>
     {

  src.identifier    
 ->     
tgt.identifier    ;

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

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

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

  src.category    
 ->     
tgt.category    ;

  src.subject    
 ->     
tgt.subject    ;

  src.context     : 
Reference     as 
    s
    
 ->     
 tgt.context     as 
    t
    , 
 t.encounter =     s
    ;

  src.event     as 
    s
    
 ->     
 tgt.context     as 
    t
    , 
 t.event =     s
    ;

  src.facilityType     as 
    s
    
 ->     
 tgt.context     as 
    t
    , 
 t.facilityType =     s
    ;

  src.practiceSetting     as 
    s
    
 ->     
 tgt.context     as 
    t
    , 
 t.practiceSetting =     s
    ;

  src.period     as 
    s
    
 ->     
 tgt.context     as 
    t
    , 
 t.period =     s
    ;

  src.date    
 ->     
tgt.date    ;
     // 
    src.bodySite -> tgt.bodySite;

  src.author    
 ->     
tgt.author    ;

  src.attester     as 
    s
     where 
src.attester.mode = 'professional'    
 ->     
    tgt
     then
     {

    s.party    
 ->     
tgt.authenticator    ;

      }
    ;

  src.custodian    
 ->     
tgt.custodian    ;

  src.relatesTo     as 
    s
    
 ->     
tgt.relatesTo     as 
    t
     then 
DocumentReferenceRelatesTo    (
    s
    , 
    t
    )
    ;

  src.description    
 ->     
tgt.description    ;

  src.securityLabel    
 ->     
tgt.securityLabel    ;

  src.content     as 
    s
    
 ->     
tgt.content     as 
    t
     then 
DocumentReferenceContent    (
    s
    , 
    t
    )
    ;

    }


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

  src.code     as 
    s
    
 ->     
    tgt
     then
     {

    s.coding     as 
    sc
    
 ->     
tgt.code =     sc
    ;

      }
    ;

  src.target    
 ->     
tgt.target    ;

    }


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

  src.attachment    
 ->     
tgt.attachment    ;

  src.profile     as 
    s
    
 ->     
    tgt
     then
     {

    s.value     : 
Coding    
 ->     
tgt.format    ;

      }
    ;

    }


  

Produced 06 Apr 2023