Base Profile: https://www.hl7.org/fhir/chargeitem.html
Common use cases include:
- Find Charges for a Patient
- Find Charges from an Encounter
- Add Charges to a Patient’s account
ModMed has several different flavors of ChargeItem depending on each practice’s unique configuration.
- Practices which have EMA-only (no MMPM) will notice the following:
- Charges are only available once an encounter is finalized
- Charges cannot be created for these practices (since they do not have MMPM, you’re application should be sending charges to the practice’s PM system)
- There are no INBOUND charges for these practices
- All charges will reference an encounter in EMA as this is the only way to generate a ChargeItem.
- Practices which use MMPM as their PM system will notice the following:
- INBOUND charges may be coming from other applications
- Not all Charges will be associated to an encounter
The following attributes are supported:
Field Name | Notes |
---|---|
id | The unique ID for a ChargeItem |
financialTransaction* | Custom Extension designed to replicate HL7 DFT |
financialTransactionId | ID of the transaction. This is not used for CREATE. One will be returned to you upon a CREATE. |
transactionStatus | Charged| |
totalCost | The totalCost of a financialTransaction if it cannot or will not be computed by other inputs. valueMoney: currency USD |
attendingProviderId | Attending Provider NPI or PMSID Goes here |
referralProviderId | Referral Provider NPI or PMSID Goes here |
locationId | Location NPI or PMSID Goes here |
businessUnitId | Business Unit Id Goes here |
transactionId | Transaction Id Goes here |
sendingFacility | Global Code from MSH Header Goes here |
receivingFacility | Firm Code from MSH Header Goes here |
financialTransactionDetail* | Custom Extension designed to replicate FT1 segment of an HL7 DFT NOTE: You can add multiple financialTransactionDetail(s). |
financialTransactionDetailId | ID of the transaction. This is not used for CREATE. One will be returned to you upon a CREATE. This will be used to support the READ in the future. |
transactionType | CG - Charge is the only type supported at this time |
performingProviderId | Performing Provider NPI or PMSID Goes here |
code | CPT Code |
unitCost | valueMoney |
quantity | valueDecimal |
description | valueString |
postingDate | valueDateTime |
transactionPeriod | valuePeriod |
diagnosisDetail | Custom Extension designed to replicate the DG1 segment of an HL7 DFT NOTE: You can add multiple diagnosisDetail(s) |
diagnosisDetailId | valueString |
diagnosisDetailCode | valueCoding |
procedureDetail* | Custom Extension designed to replicate FT1 segment of an HL7 DFT NOTE: You can add multiple procedureDetail(s) |
procedureDetailId | ID of the procedure. This is not used for CREATE. One will be returned to you upon a CREATE. This will be used to support the READ in the future. |
procedureCode | valueCoding |
anesthesiaCode | valueCoding |
anesthesiaMinutes | valueString |
anesthesiaProviderId | valueString |
procedureType | valueString |
procedureCodeModifier | valueString |
status | planned | billable | not-billable | aborted | billed | entered-in-error | unknown NOTE: Only ‘billable’ is supported at this time. |
occurrenceDateTime | valueDateTime |
subject | Patient Reference |
context | Encounter ID (if known) |
reason | valueCoding |
The Following Operations are supported:
- ChargeItem READ
- ChargeItem SEARCH
- ChargeItem CREATE
ChargeItem READ
HTTP Request | Method | Action |
---|---|---|
{base url}/{firm_url_prefix}/ema/fhir/v2/ChargeItem | GET | Get All ChargeItems for a Practice |
{base url}/{firm_url_prefix}/ema/fhir/v2/ChargeItem/CHG|{id} | GET | Get a specific ChargeItem |
{base url}/{firm_url_prefix}/ema/fhir/v2/ChargeItem/INBOUND | GET | Get all Inbound Charges for a Practice |
{base url}/{firm_url_prefix}/ema/fhir/v2/ChargeItem/INBOUND|{id} | GET | Get a specific inbound Charge for a Practice |
ChargeItem CREATE
If your application is planning on sending charges into MMPM, this will require some additional setup and configuration. It is recommended that you speak with whomever provided you access to the MMI Sandbox.
- Practices which have EMA-only (no MMPM) will notice the following:
- Charges are only available once an encounter is finalized
- Charges cannot be created for these practices (since they do not have MMPM, you’re application should be sending charges to the practice’s PM system)
- There are no INBOUND charges for these practices
- All charges will reference an encounter in EMA as this is the only way to generate a ChargeItem.
- Practices which use MMPM as their PM system will notice the following:
- INBOUND charges may be coming from other applications
- Not all Charges will be associated to an encounter
When generating charges for a customer, here are a few things you’ll want to consider. First, if you pass in a ‘unitCost’ value, it will override the ‘Fee Schedule’ that the customer has configured for the particular CPT code. So, if you want to do that (which may be the case in some scenarios), be sure to pass it in. It will take the Quantity and multiply it by that value. If you do not know or want to use the Fee Schedule already configured for that CPT code, do not pass in ‘unitCost’ - that way it will simply default to what the customer has configured.
The ‘transactionID’ is something you would pass in that may mean something to you or your customer. It will appear in the UI and they can search on it if you need to reference it for any reason.
Some customers have a setting which automatically creates bills from Charges assuming the information needed is there.
Customers that use this functionality have an ‘Inbound Charges’ queue in their ‘Financials’ experience:

If they are Auto-creating bills from charges, you may want to instruct your customers to check the New Bills tab if they are looking for something they are expecting to be here.