StructureMap-ClaimResponse4Bto5

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

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

    
/// name = 
    
    'ClaimResponse4Bto5'

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

    
/// status = 
    
    'active'


    conceptmap
     "
ClaimResponseStatus    " {

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

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


  s    :
active     -
 t    :
active
  s    :
cancelled     -
 t    :
cancelled
  s    :
draft     -
 t    :
draft
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

    }


    conceptmap
     "
RemittanceOutcome    " {

      prefix 
s     = "
http://hl7.org/fhir/4.3/remittance-outcome    "

      prefix 
t     = "
    http://hl7.org/fhir/claim-outcome
    "


  s    :
queued     -
 t    :
queued
  s    :
complete     -
 t    :
complete
  s    :
error     -
 t    :
error
  s    :
partial     -
 t    :
partial
    }


    conceptmap
     "
Use    " {

      prefix 
s     = "
http://hl7.org/fhir/4.3/claim-use    "

      prefix 
t     = "
    http://hl7.org/fhir/claim-use
    "


  s    :
claim     -
 t    :
claim
  s    :
preauthorization     -
 t    :
preauthorization
  s    :
predetermination     -
 t    :
predetermination
    }


    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/ClaimResponse    " 
    alias 
ClaimResponseR4B     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/ClaimResponse
    " 
    alias 
ClaimResponseR5     as 
    target


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


    group 
ClaimResponse    (
    source
     src
     : 
ClaimResponseR4B,     target
     tgt
     : 
ClaimResponseR5    )
     extends 
DomainResource     <<type+>>
     {

  src.identifier    
 ->     
tgt.identifier    ;

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

  src.type    
 ->     
tgt.type    ;

  src.subType    
 ->     
tgt.subType    ;

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

  src.patient    
 ->     
tgt.patient    ;

  src.created    
 ->     
tgt.created    ;

  src.insurer    
 ->     
tgt.insurer    ;

  src.requestor    
 ->     
tgt.requestor    ;

  src.request    
 ->     
tgt.request    ;

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

  src.disposition    
 ->     
tgt.disposition    ;
     // 
    src.decision -> tgt.decision;

  src.preAuthRef    
 ->     
tgt.preAuthRef    ;

  src.preAuthPeriod    
 ->     
tgt.preAuthPeriod    ;

  src.payeeType    
 ->     
tgt.payeeType    ;
     // 
    src.event as s -> tgt.event as t then ClaimResponseEvent(s,t);

  src.item     as 
    s
    
 ->     
tgt.item     as 
    t
     then 
ClaimResponseItem    (
    s
    , 
    t
    )
    ;
     // 
    src.encounter -> tgt.encounter;

  src.addItem     as 
    s
    
 ->     
tgt.addItem     as 
    t
     then 
ClaimResponseAddItem    (
    s
    , 
    t
    )
    ;

  src.total     as 
    s
    
 ->     
tgt.total     as 
    t
     then 
ClaimResponseTotal    (
    s
    , 
    t
    )
    ;

  src.payment     as 
    s
    
 ->     
tgt.payment     as 
    t
     then 
ClaimResponsePayment    (
    s
    , 
    t
    )
    ;

  src.fundsReserve    
 ->     
tgt.fundsReserve    ;

  src.formCode    
 ->     
tgt.formCode    ;

  src.form    
 ->     
tgt.form    ;

  src.processNote     as 
    s
    
 ->     
tgt.processNote     as 
    t
     then 
ClaimResponseProcessNote    (
    s
    , 
    t
    )
    ;

  src.communicationRequest    
 ->     
tgt.communicationRequest    ;

  src.insurance     as 
    s
    
 ->     
tgt.insurance     as 
    t
     then 
ClaimResponseInsurance    (
    s
    , 
    t
    )
    ;

  src.error     as 
    s
    
 ->     
tgt.error     as 
    t
     then 
ClaimResponseError    (
    s
    , 
    t
    )
    ;

    }


    // 
    group ClaimResponseEvent(source src, target tgt) extends BackboneElement {

    // src.type -> tgt.type;

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

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

    // 
    }

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

  src.itemSequence    
 ->     
tgt.itemSequence    ;

  src.noteNumber    
 ->     
tgt.noteNumber    ;
     // 
    src.traceNumber -> tgt.traceNumber;

  src.adjudication     as 
    s
    
 ->     
tgt.adjudication     as 
    t
     then 
ClaimResponseItemAdjudication    (
    s
    , 
    t
    )
    ;
     // 
    src.reviewOutcome as s -> tgt.reviewOutcome as t then ClaimResponseItemReviewOutcome(s,t);

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

    }


    // 
    group ClaimResponseItemReviewOutcome(source src, target tgt) extends BackboneElement {

    // src.decision -> tgt.decision;

    // src.reason -> tgt.reason;

    // src.preAuthRef -> tgt.preAuthRef;

    // src.preAuthPeriod -> tgt.preAuthPeriod;

    // 
    }

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

  src.category    
 ->     
tgt.category    ;

  src.reason    
 ->     
tgt.reason    ;

  src.amount    
 ->     
tgt.amount    ;

  src.value     as 
    s
    
 ->     
 tgt.quantity     as 
    t
    , 
 t.value =     s
    ;

    }


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

  src.detailSequence    
 ->     
tgt.detailSequence    ;

  src.noteNumber    
 ->     
tgt.noteNumber    ;
     // 
    src.traceNumber -> tgt.traceNumber;

  src.subDetail     as 
    s
    
 ->     
tgt.subDetail     as 
    t
     then 
ClaimResponseItemDetailSubDetail    (
    s
    , 
    t
    )
    ;

    }


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

  src.subDetailSequence    
 ->     
tgt.subDetailSequence    ;

  src.noteNumber    
 ->     
tgt.noteNumber    ;
     // 
    src.traceNumber -> tgt.traceNumber;

    }


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

  src.itemSequence    
 ->     
tgt.itemSequence    ;

  src.detailSequence    
 ->     
tgt.detailSequence    ;

  src.subdetailSequence    
 ->     
tgt.subdetailSequence    ;

  src.provider    
 ->     
tgt.provider    ;
     // 
    src.traceNumber -> tgt.traceNumber;

  src.productOrService    
 ->     
tgt.productOrService    ;
     // 
    src.revenue -> tgt.revenue;

  src.modifier    
 ->     
tgt.modifier    ;
     // 
    src.productOrServiceEnd -> tgt.productOrServiceEnd;

  src.programCode    
 ->     
tgt.programCode    ;

  src.serviced     : 
date    
 ->     
tgt.serviced    ;

  src.serviced     : 
Period    
 ->     
tgt.serviced    ;

  src.location     : 
CodeableConcept    
 ->     
tgt.location    ;

  src.location     : 
Address    
 ->     
tgt.location    ;

  src.location     : 
Reference    
 ->     
tgt.location    ;

  src.quantity    
 ->     
tgt.quantity    ;

  src.unitPrice    
 ->     
tgt.unitPrice    ;

  src.factor    
 ->     
tgt.factor    ;

  src.net    
 ->     
tgt.net    ;
     // 
    src.tax -> tgt.tax;

  src.bodySite     as 
    s
    
 ->     
 tgt.bodySite     as 
    t
    , 
 t.site =     s
    ;

  src.noteNumber    
 ->     
tgt.noteNumber    ;

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

    }


    // 
    group ClaimResponseAddItemBodySite(source src, target tgt) extends BackboneElement {

    // src.site -> tgt.site;

    // src.subSite -> tgt.subSite;

    // 
    }

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

  src.productOrService    
 ->     
tgt.productOrService    ;
     // 
    src.traceNumber -> tgt.traceNumber;

  src.modifier    
 ->     
tgt.modifier    ;
     // 
    src.productOrServiceEnd -> tgt.productOrServiceEnd;

  src.quantity    
 ->     
tgt.quantity    ;

  src.unitPrice    
 ->     
tgt.unitPrice    ;

  src.factor    
 ->     
tgt.factor    ;

  src.net    
 ->     
tgt.net    ;
     // 
    src.tax -> tgt.tax;

  src.noteNumber    
 ->     
tgt.noteNumber    ;

  src.subDetail     as 
    s
    
 ->     
tgt.subDetail     as 
    t
     then 
ClaimResponseAddItemDetailSubDetail    (
    s
    , 
    t
    )
    ;

    }


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

  src.productOrService    
 ->     
tgt.productOrService    ;
     // 
    src.traceNumber -> tgt.traceNumber;

  src.modifier    
 ->     
tgt.modifier    ;
     // 
    src.productOrServiceEnd -> tgt.productOrServiceEnd;

  src.quantity    
 ->     
tgt.quantity    ;

  src.unitPrice    
 ->     
tgt.unitPrice    ;

  src.factor    
 ->     
tgt.factor    ;

  src.net    
 ->     
tgt.net    ;
     // 
    src.tax -> tgt.tax;

  src.noteNumber    
 ->     
tgt.noteNumber    ;

    }


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

  src.category    
 ->     
tgt.category    ;

  src.amount    
 ->     
tgt.amount    ;

    }


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

  src.type    
 ->     
tgt.type    ;

  src.adjustment    
 ->     
tgt.adjustment    ;

  src.adjustmentReason    
 ->     
tgt.adjustmentReason    ;

  src.date    
 ->     
tgt.date    ;

  src.amount    
 ->     
tgt.amount    ;

  src.identifier    
 ->     
tgt.identifier    ;

    }


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

  src.number    
 ->     
tgt.number    ;

  src.type     as 
    s
     where 
code = 'display'    
 ->     
 tgt.type =     create
    (
    'CodeableConcept'
    )
     as 
    tc
    , 
 tc.coding =     create
    (
    'Coding'
    )
     as 
    tcc
    , 
 tcc.system =     'http://hl7.org/fhir/note-type'
    , 
 tcc.code =     'display'
    , 
 tcc.display =     'display'
    ;

  src.type     as 
    s
     where 
code = 'print'    
 ->     
 tgt.type =     create
    (
    'CodeableConcept'
    )
     as 
    tc
    , 
 tc.coding =     create
    (
    'Coding'
    )
     as 
    tcc
    , 
 tcc.system =     'http://hl7.org/fhir/note-type'
    , 
 tcc.code =     'print'
    , 
 tcc.display =     'Print (Form)'
    ;

  src.type     as 
    s
     where 
code = 'printoper'    
 ->     
 tgt.type =     create
    (
    'CodeableConcept'
    )
     as 
    tc
    , 
 tc.coding =     create
    (
    'Coding'
    )
     as 
    tcc
    , 
 tcc.system =     'http://hl7.org/fhir/note-type'
    , 
 tcc.code =     'printoper'
    , 
 tcc.display =     'Print (Operator)'
    ;

  src.text    
 ->     
tgt.text    ;

  src.language    
 ->     
tgt.language    ;

    }


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

  src.sequence    
 ->     
tgt.sequence    ;

  src.focal    
 ->     
tgt.focal    ;

  src.coverage    
 ->     
tgt.coverage    ;

  src.businessArrangement    
 ->     
tgt.businessArrangement    ;

  src.claimResponse    
 ->     
tgt.claimResponse    ;

    }


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

  src.itemSequence    
 ->     
tgt.itemSequence    ;

  src.detailSequence    
 ->     
tgt.detailSequence    ;

  src.subDetailSequence    
 ->     
tgt.subDetailSequence    ;

  src.code    
 ->     
tgt.code    ;

    }


  

Produced 06 Apr 2023