R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

Invoice.shex

Financial Management Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Device, Patient, Practitioner, RelatedPerson

Raw ShEx

ShEx statement for invoice

PREFIX fhir: <http://hl7.org/fhir/> 
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

IMPORT <code.shex>
IMPORT <date.shex>
IMPORT <Group.shex>
IMPORT <Money.shex>
IMPORT <string.shex>
IMPORT <Period.shex>
IMPORT <Device.shex>
IMPORT <Patient.shex>
IMPORT <Account.shex>
IMPORT <dateTime.shex>
IMPORT <markdown.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Annotation.shex>
IMPORT <ChargeItem.shex>
IMPORT <positiveInt.shex>
IMPORT <Organization.shex>
IMPORT <Practitioner.shex>
IMPORT <RelatedPerson.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <PractitionerRole.shex>
IMPORT <MonetaryComponent.shex>


start=@<Invoice> AND {fhir:nodeRole [fhir:treeRoot]}

# Invoice containing ChargeItems from an Account
<Invoice> EXTENDS @<DomainResource> CLOSED {   

    a [fhir:Invoice]?;
    fhir:nodeRole [fhir:treeRoot]?;

    fhir:identifier @<OneOrMore_Identifier>?;  # Business Identifier for item
    fhir:status @<code> AND
    	{fhir:v @fhirvs:invoice-status};  # draft | issued | balanced | 
                                            # cancelled | entered-in-error 
    fhir:cancelledReason @<string>?;        # Reason for cancellation of this 
                                            # Invoice 
    fhir:type @<CodeableConcept>?;          # Type of Invoice
    fhir:subject @<Reference> AND {fhir:link 
    			@<Group> OR 
    			@<Patient> ? }?;  # Recipient(s) of goods and services
    fhir:recipient @<Reference> AND {fhir:link 
    			@<Organization> OR 
    			@<Patient> OR 
    			@<RelatedPerson> ? }?;  # Recipient of this invoice
    fhir:date @<dateTime>?;                 # DEPRICATED
    fhir:creation @<dateTime>?;             # When posted
    fhir:period @<date>  OR 
    			@<Period>  ?;  # Billing date or period
    fhir:participant @<OneOrMore_Invoice.participant>?;  # Participant in creation of this 
                                            # Invoice 
    fhir:issuer @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Issuing Organization of Invoice
    fhir:account @<Reference> AND {fhir:link 
    			@<Account> ? }?;  # Account that is being balanced
    fhir:lineItem @<OneOrMore_Invoice.lineItem>?;  # Line items of this Invoice
    fhir:totalPriceComponent @<OneOrMore_MonetaryComponent>?;  # Components of Invoice total
    fhir:totalNet @<Money>?;                # Net total of this Invoice
    fhir:totalGross @<Money>?;              # Gross total of this Invoice
    fhir:paymentTerms @<markdown>?;         # Payment details
    fhir:note @<OneOrMore_Annotation>?;     # Comments made about the invoice
}  

# Line items of this Invoice
<Invoice.lineItem> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>?;          # Sequence number of line item
    fhir:serviced @<date>  OR 
    			@<Period>  ?;  # Service data or period
    fhir:chargeItem (@<Reference>  AND {fhir:link @<ChargeItem> })  OR 
    			@<CodeableConcept>  ;  # Reference to ChargeItem containing 
                                            # details of this line item or an 
                                            # inline billing code 
    fhir:priceComponent @<OneOrMore_MonetaryComponent>?;  # Components of total line item price
}  

# Participant in creation of this Invoice
<Invoice.participant> EXTENDS @<BackboneElement> CLOSED {   
    fhir:role @<CodeableConcept>?;          # Type of involvement in creation of 
                                            # this Invoice 
    fhir:actor @<Reference> AND {fhir:link 
    			@<Device> OR 
    			@<Organization> OR 
    			@<Patient> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> OR 
    			@<RelatedPerson> ? };  # Individual who was involved
}  

#---------------------- Cardinality Types (OneOrMore) -------------------

<OneOrMore_Identifier> CLOSED {
    rdf:first @<Identifier>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Identifier> 
}

<OneOrMore_Invoice.participant> CLOSED {
    rdf:first @<Invoice.participant>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Invoice.participant> 
}

<OneOrMore_Invoice.lineItem> CLOSED {
    rdf:first @<Invoice.lineItem>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Invoice.lineItem> 
}

<OneOrMore_MonetaryComponent> CLOSED {
    rdf:first @<MonetaryComponent>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MonetaryComponent> 
}

<OneOrMore_Annotation> CLOSED {
    rdf:first @<Annotation>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Annotation> 
}

#---------------------- Value Sets ------------------------

# Codes identifying the lifecycle stage of an Invoice.
fhirvs:invoice-status ["draft" "issued" "balanced" "cancelled" "entered-in-error"]


Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.