StructureMap-AuditEvent5to4B

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

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

    
/// name = 
    
    'AuditEvent5to4B'

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

    
/// status = 
    
    'active'


    conceptmap
     "
AuditEventAction    " {

      prefix 
s     = "
    http://hl7.org/fhir/audit-event-action
    "

      prefix 
t     = "
http://hl7.org/fhir/4.3/audit-event-action    "


  s    :
C     -
 t    :
C
  s    :
R     -
 t    :
R
  s    :
U     -
 t    :
U
  s    :
D     -
 t    :
D
  s    :
E     -
 t    :
E
    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/AuditEvent
    " 
    alias 
AuditEventR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/AuditEvent    " 
    alias 
AuditEventR4B     as 
    target


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


    group 
AuditEvent    (
    source
     src
     : 
AuditEventR5,     target
     tgt
     : 
AuditEventR4B    )
     extends 
DomainResource     <<type+>>
     {

  src.category    
 ->     
tgt.type    ;

  src.code    
 ->     
tgt.subtype    ;

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

  src.recorded    
 ->     
tgt.recorded    ;
     // 
    src.severity as v -> tgt.severity = translate(v, '#AuditEventSeverity', 'code');

  src.outcome     as 
    s
    
 ->     
tgt.outcome     as 
    t
     then 
AuditEventOutcome    (
    s
    , 
    t
    )
    ;

  src.outcome     as 
    s
    
 ->     
tgt.outcomeDesc     as 
    t
     then 
AuditEventOutcomeDesc    (
    s
    , 
    t
    )
    ;

  src.agent     as 
    s
    
 ->     
tgt.agent     as 
    t
     then 
AuditEventAgent    (
    s
    , 
    t
    )
    ;
     // 
    src.authorization -> tgt.authorization;

  src.source     as 
    s
    
 ->     
tgt.source     as 
    t
     then 
AuditEventSource    (
    s
    , 
    t
    )
    ;

  src.entity     as 
    s
    
 ->     
tgt.entity     as 
    t
     then 
AuditEventEntity    (
    s
    , 
    t
    )
    ;

    }


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

  src.code     as 
    s
     where 
code = 'success'    
 ->     
tgt =     '0'
    ;
     // 
    src.code -> tgt.code;

  src.code     as 
    s
     where 
code = 'information'    
 ->     
tgt =     '0'
    ;

  src.code     as 
    s
     where 
code = 'warning'    
 ->     
tgt =     '4'
    ;

  src.code     as 
    s
     where 
code = 'error'    
 ->     
tgt =     '8'
    ;

  src.code     as 
    s
     where 
code = 'fatal'    
 ->     
tgt =     '12'
    ;

    }


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

  src.code     as 
    s
    
 ->     
tgt =     s.display
    ;

    }


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

  src.type    
 ->     
tgt.type    ;

  src.role    
 ->     
tgt.role    ;

  src.who    
 ->     
tgt.who    ;

  src.requestor    
 ->     
tgt.requestor    ;

  src.location    
 ->     
tgt.location    ;

  src.policy    
 ->     
tgt.policy    ;

  src.network     : 
Reference     as 
    v
    
 ->     
 tgt.network     as 
    t
    , 
 t.address =     v.display
    ;

  src.network     : 
uri     as 
    v
    
 ->     
 tgt.network     as 
    t
    , 
 t.address =     v
    ;

  src.network     : 
string     as 
    v
    
 ->     
 tgt.network     as 
    t
    , 
 t.address =     v
    ;

  src.authorization    
 ->     
tgt.purposeOfUse    ;

    }


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

  src.site     : 
Reference     as 
    s
    
 ->     
    tgt
     then
     {

    s.display    
 ->     
tgt.site    ;

      }
    ;

  src.observer    
 ->     
tgt.observer    ;

  src.type    
 ->     
tgt.type    ;

    }


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

  src.what    
 ->     
tgt.what    ;

  src.role    
 ->     
tgt.role    ;

  src.securityLabel    
 ->     
tgt.securityLabel    ;

  src.query    
 ->     
tgt.query    ;

  src.detail     as 
    s
    
 ->     
tgt.detail     as 
    t
     then 
AuditEventEntityDetail    (
    s
    , 
    t
    )
    ;

    }


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

  src.type    
 ->     
tgt.type    ;

  src.value     : 
Quantity    
 ->     
tgt.value    ;

  src.value     : 
CodeableConcept    
 ->     
tgt.value    ;

  src.value     : 
string    
 ->     
tgt.value    ;

  src.value     : 
boolean    
 ->     
tgt.value    ;

  src.value     : 
integer    
 ->     
tgt.value    ;

  src.value     : 
Range    
 ->     
tgt.value    ;

  src.value     : 
Ratio    
 ->     
tgt.value    ;

  src.value     : 
time    
 ->     
tgt.value    ;

  src.value     : 
dateTime    
 ->     
tgt.value    ;

  src.value     : 
Period    
 ->     
tgt.value    ;

  src.value     : 
base64Binary    
 ->     
tgt.value    ;

    }


  

Produced 06 Apr 2023