public interface InvoiceElement extends Act
Act
representing a statement and justification of an amount
owed.
Discussion: This represents the 'justification' portion of an invoice. It is frequently combined with a financial transaction representing the amount requested to be paid, agreed to be paid, or actually paid.
A recursive relationship can be used to break a single
InvoiceElement
into constituent elements.
In definition mood, it represents "possible" justification for future
billing. In request mood, it is a request to determine the amount owed. In
event mood, this class represents the determination of a specific amount owed
by a particular Entity
.
Act
,
FinancialTransaction
Modifier and Type | Method and Description |
---|---|
REAL |
getFactorNumber()
Represents a multiplier used in determining the overall cost of services
delivered and/or goods received.
|
SET<CE> |
getModifierCode()
Designates a modifier to the code attribute to provide additional
information about the invoice element.
|
MO |
getNetAmt()
Identifies the total monetary amount for the invoice element, including
the sum of any component elements.
|
REAL |
getPointsNumber()
For charges whose quantity is expressed in 'points', this expresses the
weighting (based on difficulty, cost and/or resource intensiveness)
associated with the good or service delivered.
|
RTO<MO,PQ> |
getUnitPriceAmt()
The monetary cost per unit being accounted.
|
RTO<PQ,PQ> |
getUnitQuantity()
A description of the number of instances of a product or service that is
being billed or charged for.
|
void |
setFactorNumber(REAL factorNumber) |
void |
setModifierCode(SET<CE> modifierCode) |
void |
setNetAmt(MO netAmt) |
void |
setPointsNumber(REAL pointsNumber) |
void |
setUnitPriceAmt(RTO<MO,PQ> unitPriceAmt) |
void |
setUnitQuantity(RTO<PQ,PQ> unitQuantity) |
addConfidentialityCode, addIBActRelationship, addId, addOBActRelationship, addParticipation, addPriorityCode, addReasonCode, getActivityTime, getAvailabilityTime, getClassCode, getCode, getConfidentialityCode, getDerivationExpr, getEffectiveTime, getIBActRelationships, getIBActRelationships, getId, getIndependentInd, getInterruptibleInd, getLanguageCode, getLevelCode, getMoodCode, getNegationInd, getOBActRelationships, getOBActRelationships, getParticipations, getParticipations, getPriorityCode, getReasonCode, getRepeatNumber, getStatusCode, getText, getTitle, getUncertaintyCode, setActivityTime, setAvailabilityTime, setConfidentialityCode, setDerivationExpr, setEffectiveTime, setIndependentInd, setInterruptibleInd, setLanguageCode, setLevelCode, setNegationInd, setPriorityCode, setReasonCode, setRepeatNumber, setStatusCode, setText, setTitle, setUncertaintyCode
getControlAct, getToken, setToken
createNewVersion, getVersionNum, isCurrentVersion
SET<CE> getModifierCode()
Examples: Isolation allowance; After-hours service
Rationale: This is not pre-coordinated into the CD attribute because the
modifier code set may not be specifically designed for use with the
Act.code
code set. This violates the constraint for using
the 'modifier' property that the modifier code set must be defined as
part of, or specifically for the base code set.
void setModifierCode(SET<CE> modifierCode) throws HDRRimException
HDRRimException
RTO<PQ,PQ> getUnitQuantity()
Examples: 4 hours, 4 mg, 4 boxes, and 15 each of a container of 1000 each, etc.
Discussion: Each InvoiceElement that is being charged or billed is identified by a charge or bill code (InvoiceElement.code). In some situations, this code is a pre-coordinated code set and represents a container (example, UPC code for a container of 1000 pills and another UPC code for a container of the same pills but in a container of 100). The UPC code is used in invoicing, but ratios are required to specify that only a portion of the container (example, bottle) is being billed or charged. If the InvoiceElement does not reference a container, then the denominator is not specified.
For example, 15 pills in a container size of 1000 pills. In this case, the numerator can be expressed as "15 {pill}" or simply "15" and the denominator can be expressed as "1000 {bottle}" or simply "1000" (see discussion following for rationale of using descriptive text for countable units).
Constraints:
The unit of measure is restricted to a measurable unit such as liters, milligrams and hours. Non-measurable, but countable units such as boxes, packages, visits, pills and containers must not be specified using the unit component of the PQ data type, except as an annotation, marked by {xxx}. Refer to Data Types Part II Unabridged Specification, Appendix A :Unified Code for Units of Measure.
Specification of countable units can be handled with the following techniques:
(1) specify the countable unit in the InvoiceElement.code
.
That is, a specific InvoiceElement.code
would indicate that
the item referenced by the act represents a box of 20 items. There would
be a different InvoiceElement.code
for a box of 40 items,
and so on.
For example, if the InvoiceElement.code
represents a box of
20 items, and the InvoiceElement.unitQuantity
= 2 (no
units), then this represents 2 boxes of 20 items for a total of 40
items.
(2) If more detail is required (example, to describe the composition, packaging, manufacturer of a product), then use a participation (typeCode = "PRD"), and a combination of role and entity classes to describe the details of the packaging.
void setUnitQuantity(RTO<PQ,PQ> unitQuantity) throws HDRRimException
HDRRimException
RTO<MO,PQ> getUnitPriceAmt()
Constraints: In constructing the ratio, the numerator must be of data
type MO, and the denominator must be a PQ, specified in the same manner
as the unitQuantity
attribute.
Examples: $0.20/mg; $250/day; $50
void setUnitPriceAmt(RTO<MO,PQ> unitPriceAmt) throws HDRRimException
HDRRimException
MO getNetAmt()
Discussion: For leaf-level amounts, this will be the value of the
unitQuantity * unitPriceAmt [ * factorNumber] [* pointsNumber]
.
For grouping invoice elements, this will be the sum of the netAmt
attributes of all contained invoice elements.
void setNetAmt(MO netAmt) throws HDRRimException
HDRRimException
REAL getFactorNumber()
Examples: this could be 10 (Number of Treatments as Units) * $3.00 (Cost per Unit) * 1.5 (Factor) = $45.00 (Amount).
Discussion: This concept is frequently used in Europe to adjust the charge between that used for the public system and that used for private insurers.
The simplest formula for deriving gross amounts is:
unitQuantity * unitPriceAmount = netAmt.
The concept of a factor allows for a discount or surcharge multiplier to
be applied to a monetary amount. For example, the formula, with a factor
would be:
unitQuantity * unitPrice (Cost/Point) * factorNumber = netAmt
See related note on points. Formula, with points and factors becomes:
unitQuantity * unitPriceAmt * pointsNumber * factorNumber = netAmt
void setFactorNumber(REAL factorNumber) throws HDRRimException
HDRRimException
REAL getPointsNumber()
Examples: This could be 5 (Number of Treatments as Units) * 3 (Number of Points per treatment as Points)* $20.00 (Cost per Point) = $300.00 (Amount).
Discussion: This is commonly used in systems where services provided are assigned a relative 'cost or difficulty rating', and then a fixed price is assigned to a 'point'. Adjustments to all prices charged by an organization can then be handled by increasing or decreasing the cost per point to reflect changes in inflation, overhead, etc.
The simplest formula for deriving gross amounts is:
unitQuantity * unitPriceAmount = netAmt
.
The concept of Points allows for assignment of point values for services
and/or goods, such that a dollar amount can be assigned to each point.
For example, the formula, with points would be:
unitQuantity * pointsNumber * unitPriceAmt (Cost/Point) = netAmt
.
See related note on factor. Formula, with points and factors becomes:
unitQuantity * unitPriceAmt * pointsNumber * factorNumber = netAmt
.
void setPointsNumber(REAL pointsNumber) throws HDRRimException
HDRRimException
HDR Glossary HDR Concept Lists HDR Exceptions HDR Programmer's Guide HDR Implementation Guide HDR Profile Options
Copyright © 2016, 2018, Oracle. All rights reserved