StructureMap-Invoice5to4B

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

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

    
/// name = 
    
    'Invoice5to4B'

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

    
/// status = 
    
    'active'


    conceptmap
     "
InvoiceStatus    " {

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

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


  s    :
draft     -
 t    :
draft
  s    :
issued     -
 t    :
issued
  s    :
balanced     -
 t    :
balanced
  s    :
cancelled     -
 t    :
cancelled
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/Invoice
    " 
    alias 
InvoiceR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/Invoice    " 
    alias 
InvoiceR4B     as 
    target


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


    group 
Invoice    (
    source
     src
     : 
InvoiceR5,     target
     tgt
     : 
InvoiceR4B    )
     extends 
DomainResource     <<type+>>
     {

  src.identifier    
 ->     
tgt.identifier    ;

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

  src.cancelledReason    
 ->     
tgt.cancelledReason    ;

  src.type    
 ->     
tgt.type    ;

  src.subject    
 ->     
tgt.subject    ;

  src.recipient    
 ->     
tgt.recipient    ;

  src.date    
 ->     
tgt.date    ;

  src.participant     as 
    s
    
 ->     
tgt.participant     as 
    t
     then 
InvoiceParticipant    (
    s
    , 
    t
    )
    ;
     // 
    src.creation -> tgt.creation;

  src.issuer    
 ->     
tgt.issuer    ;

  src.account    
 ->     
tgt.account    ;

  src.lineItem     as 
    s
    
 ->     
tgt.lineItem     as 
    t
     then 
InvoiceLineItem    (
    s
    , 
    t
    )
    ;

  src.totalPriceComponent     as 
    s
    
 ->     
tgt.totalPriceComponent     as 
    t
     then
     {

    s.type    
 ->     
t.type    ;

    s.code    
 ->     
t.code    ;

    s.factor    
 ->     
t.factor    ;

    s.amount    
 ->     
t.amount    ;

      }
    ;

  src.totalNet    
 ->     
tgt.totalNet    ;

  src.totalGross    
 ->     
tgt.totalGross    ;

  src.paymentTerms    
 ->     
tgt.paymentTerms    ;

  src.note    
 ->     
tgt.note    ;

    }


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

  src.role    
 ->     
tgt.role    ;

  src.actor    
 ->     
tgt.actor    ;

    }


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

  src.sequence    
 ->     
tgt.sequence    ;

  src.chargeItem     : 
Reference    
 ->     
tgt.chargeItem    ;
     // 
    src.serviced : date -> tgt.serviced;

  src.chargeItem     : 
CodeableConcept    
 ->     
tgt.chargeItem    ;

  src.priceComponent     as 
    s
    
 ->     
tgt.priceComponent     as 
    t
     then
     {

    s.type    
 ->     
t.type    ;

    s.code    
 ->     
t.code    ;

    s.factor    
 ->     
t.factor    ;

    s.amount    
 ->     
t.amount    ;

      }
    ;

    }


  

Produced 06 Apr 2023