Importer des prestations
Un laboratoire, un cabinet de radiologie ou un logiciel d’établissement sait souvent produire ses éléments de facturation en HPRIM Santé. Ophelix lit ces messages et ouvre une facture en brouillon par facture du message. L’import (ClaimImport, cim_…) garde le rapport : les factures ouvertes, et chaque segment refusé avec sa raison. Le message lui-même n’est pas gardé.
Droits de clé : claims:write pour importer, claims:read pour relire un rapport.
Je veux…
| Je veux… | Appel |
|---|---|
| Importer un message | POST /v1/claim-imports |
| Relire le rapport d’un import | GET /v1/claim-imports/{id} |
| Compléter puis valider une facture importée | PATCH /v1/claims/{id}, puis POST /v1/claims/{id}/validate |
Ce qu’Ophelix lit
La recommandation HPRIM Santé 2.x d’Interop’Santé, en texte, contexte de facturation : le champ 7.7 de l’en-tête vaut FAC, et la version (7.13) commence par H2.. Les séparateurs sont ceux que déclare l’en-tête, un segment A prolonge le précédent, et un message en ISO 8859-1 se lit comme un message en UTF-8.
curl https://api.ophelix.fr/v1/claim-imports \
-H "Authorization: Bearer sk_test_…" \
-H "Idempotency-Key: import-LABO1" \
-H "Content-Type: application/json" \
-d '{"format": "hprim", "practitioner": "prac_…", "content": "H|~^\\&|LABO1.HPR||…"}'Toutes les factures du message sont celles du praticien nommé. third_party_amo et third_party_amc valent pour toutes.
| Segment | Devient |
|---|---|
P, AP | le patient, retrouvé parmi ceux qu’Ophelix connaît par le NIR de l’assuré (23.6) et la date de naissance (8.8) ; la nature d’assurance (23.3, AS, MA, AT ou SG) |
FAC | une facture en brouillon, à la date des actes (20.5), avec le numéro national du prescripteur (20.6) |
ACT | une prestation : lettre clé, coefficient et dénombrement. La codification (21.10) choisit la nomenclature : NABM, une ligne de biologie à la lettre B ; CCAM, une ligne par code ; sinon, la lettre clé NGAP |
C, AC, REG | rien : commentaires, complémentaire et règlements ne se facturent pas |
Une facture importée est un brouillon comme un autre : elle se complète (contexte, parcours de soins) et se valide avant sa signature.
Le rapport
claims donne, pour chaque facture ouverte, la facture, son patient, la ligne du message où commence la FAC, ses numéros de dossier (20.3) et de demande (20.4), et son nombre de prestations : de quoi rapprocher le rapport de votre fichier.
refusals adresse chaque refus comme le ferait un segment ERR : line (la ligne du message), segment, rank, field, et reason.
reason | Sens |
|---|---|
patient_not_found | Aucun patient connu ne répond au NIR et à la date de naissance : lisez d’abord ses droits |
patient_ambiguous | Plusieurs patients répondent au NIR, sans date de naissance pour les départager |
patient_unidentified | Pas de segment AP, ou un NIR qui n’a pas quinze caractères |
insurance_nature_unknown | La nature d’assurance n’est ni AS, ni MA, ni AT, ni SG |
service_date_invalid | La date des actes manque ou ne se lit pas |
incomplete_request | La FAC dit une demande incomplète, non facturée |
no_billable_line | Aucune ligne de la FAC n’est passée |
amount_only | Une ligne en montant seul, lettre clé E ou F |
modifier_not_supported | Un type de majoration : la nuit et le férié se facturent par leur propre ligne |
catalogue_not_supported | Une codification autre que NABM et CCAM |
line_invalid | Lettre clé, coefficient ou dénombrement absent ou illisible |
out_of_place | Un segment FAC ou ACT hors de sa place |
warnings dit ce qui est passé, mais pas tout entier : segment_ignored pour un segment d’un autre contexte, biology_codes_not_carried quand une ligne de biologie porte ses codes détaillés, que la facture ne garde pas encore.
Un message illisible, d’un autre contexte ou d’une autre version répond 422 parameter_invalid sur content, et rien ne s’ouvre. L’import est tout ou rien : une facture qui ne peut pas s’enregistrer n’en laisse aucune.
Événements
Pas d’événement propre à l’import : chaque facture ouverte émet claim.created.
Pièges
- Un import ne crée ni patient ni droits. Lisez les droits du patient avant d’importer ses prestations.
- Le rapport et les journaux ne citent jamais le message. Gardez votre fichier : Ophelix ne le garde pas.
- Passez une
Idempotency-Key: un message importé deux fois ouvrirait deux fois ses factures. - HPRIM XML n’est pas lu, seulement le format texte.