ChargeItem — L'écriture de facturation
Chaque acte technique, consultation, médicament délivré crée potentiellement un ChargeItem. La granularité la plus fine du flux de facturation FHIR, en amont d'Invoice et de Claim.
Objet de la ressource
ChargeItem représente une écriture financière unitaire pour un acte, un produit ou un service : une consultation cotée CCAM, un médicament délivré et tarifé, un dispositif médical posé, un examen biologique facturé. Chaque ChargeItem porte un code tarifaire (CCAM, NABM, NGAP, DRG en France ; CPT, HCPCS aux US) et un prix.
Les ChargeItems sont imputés sur un Account, puis agrégés dans une Invoice ou une Claim pour l'assureur.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
identifier | Identifier[] | 0..* | Identifiants externes (numéro d'écriture). |
definitionUri | uri[] | 0..* | URL canonique du barème ou de la définition tarifaire. |
definitionCanonical | canonical(ChargeItemDefinition)[] | 0..* | Référence vers une ChargeItemDefinition. |
status | code | 1..1 | Obligatoire. planned | billable | not-billable | aborted | billed | entered-in-error | unknown. |
partOf | Reference(ChargeItem)[] | 0..* | Écriture parente (regroupement). |
code | CodeableConcept | 1..1 | Obligatoire. Code tarifaire. |
subject | Reference(Patient | Group) | 1..1 | Obligatoire. Patient concerné. |
encounter | Reference(Encounter) | 0..1 | Encounter source. |
occurrence[x] | dateTime | Period | Timing | 0..1 | Quand l'acte a eu lieu. |
performer | BackboneElement[] | 0..* | Exécutant(s). |
performingOrganization | Reference(Organization) | 0..1 | Organisation prestataire. |
quantity | Quantity | 0..1 | Quantité (nb d'actes, doses, volumes). |
bodysite | CodeableConcept[] | 0..* | Site anatomique. |
unitPriceComponent | MonetaryComponent | 0..1 | Prix unitaire (R5). |
totalPriceComponent | MonetaryComponent | 0..1 | Prix total (R5). |
overrideReason | CodeableConcept | 0..1 | Raison de surcharge du prix par défaut. |
enterer | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) | 0..1 | Qui a consigné l'écriture. |
enteredDate | dateTime | 0..1 | Date de consignation. |
reason | CodeableConcept[] | 0..* | Motif clinique (ICD-10, SNOMED). |
service | CodeableReference(DiagnosticReport | ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | Observation | Procedure | SupplyDelivery)[] | 0..* | Ressource clinique justifiant l'écriture. |
product | CodeableReference(Device | Medication | Substance)[] | 0..* | Produit consommé. |
account | Reference(Account)[] | 0..* | Compte(s) d'imputation. |
Exemple JSON
Écriture pour un ECG 12 dérivations (CCAM DEQP003) sur Peter Chalmers, prix 22,39 €, imputé sur Account/example :
{
"resourceType": "ChargeItem",
"id": "example",
"identifier": [{
"system": "http://myHospital.com/ChargeItems",
"value": "654321"
}],
"definitionUri": ["http://www.kbv.de/tools/ebm/html/01520_2904360860826220813632.html"],
"status": "billable",
"subject": { "reference": "Patient/example" },
"encounter": { "reference": "Encounter/example" },
"occurrencePeriod": {
"start": "2026-05-14T10:00:00+02:00",
"end": "2026-05-14T10:25:00+02:00"
},
"performer": [{
"function": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "17561000",
"display": "Cardiologist"
}]
},
"actor": { "reference": "Practitioner/example" }
}],
"performingOrganization": { "reference": "Organization/hospital-1" },
"quantity": { "value": 1 },
"bodysite": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "80891009",
"display": "Heart structure"
}]
}],
"code": {
"coding": [{
"system": "http://www.atih.sante.fr/CCAM",
"code": "DEQP003",
"display": "Électrocardiographie sur au moins 12 dérivations"
}]
},
"unitPriceComponent": {
"type": "base",
"amount": { "value": 22.39, "currency": "EUR" }
},
"totalPriceComponent": {
"type": "base",
"amount": { "value": 22.39, "currency": "EUR" }
},
"account": [{ "reference": "Account/example" }]
} Pièges courants
- Pas de
codetarifaire — sans code (CCAM, CPT, NGAP…), aucune chaîne de facturation aval ne peut traiter l'écriture. - Pas d'
account— un ChargeItem orphelin (sans compte) ne sera jamais facturé. - Prix divergent du barème — toujours renseigner
overrideReasonquand le prix unitaire diffère du barème de la ChargeItemDefinition. - Confusion avec MedicationDispense — la consommation médicament est une MedicationDispense ; le ChargeItem est l'écriture facturée qui la référence via
product. - Quantité 0 ou négative — utiliser
status=abortedounot-billableau lieu de gonfler des quantités absurdes.