Files
Dom b47f5c47e0 feat(schema): module de nettoyage des JSONs pour consommation aval
Le pipeline produit un JSON riche pendant l'exécution (ratios
checkbox, OCR raw, flags _parse_error/_truncated_loop/_crop_recodage,
_source, _elapsed_s…). Utile en audit, mais pollue quand on veut
exposer le résultat à un consommateur aval (Excel, dashboard, API).

pipeline/schema.py :
- SCHEMA_VERSION "2.0"
- clean_dossier(raw) : retourne une copie propre avec structure stable
  (en-tête → codage → GHM/GHS → décisions) et validation ATIH en
  format compact (summary + cross_checks + flags par champ).
- CLEAN_FIELDS_RECUEIL / CLEAN_FIELDS_CONCERTATION_{1,2} / CLEAN_FIELDS_PREUVES
  documentent les champs stables par type de page.
- CLI : `python -m pipeline.schema` → nettoie `output/v2/*.json` vers
  `output/v2_clean/`.

Séparation claire : `output/v2/` reste le JSON raw (audit), `output/v2_clean/`
est la sortie propre et stable pour livrables.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 15:54:50 +02:00

262 lines
7.3 KiB
JSON

{
"fichier": "OGC 1",
"pdf_hash": "4b2aacd453ec8903",
"schema_version": "2.0",
"extraction": {
"recueil": {
"etablissement": "CLINIQUE D'ARCACHON",
"finess": "330780206",
"date_debut_controle": "13/02/2018",
"n_ogc": "1",
"n_champ": "1",
"dates_sejour": "16/02/2016 au 10/03/2016",
"sejour_etab": {
"age": "79",
"sexe": "2",
"duree_sejour": "23"
},
"sejour_reco": {
"age": "79",
"sexe": "2",
"duree_sejour": "23"
},
"rum_etab": {
"um": "53 C",
"igs": "0",
"duree": "23",
"dates": "du 16/02/2016 au 10/03/2016"
},
"codage_etab": {
"dp": "K650",
"dp_libelle": "PERITONITE AIG.",
"dr": "B966 * 4 BACILLUS FRAGILIS, CAUSE DE MAL. CLASSES DANS D'AUTRES CHAP.",
"das": []
},
"codage_reco": {
"dp": "",
"dr": "",
"das": []
},
"actes_etab": [],
"actes_reco": [],
"ghm_etab": "06M093",
"ghs_etab": "2160",
"ghm_reco": "06M094",
"ghs_reco": "2161",
"recodage_impactant": "1",
"ghs_injustifie": "0",
"accord_desaccord": "accord",
"praticien_conseil": "DR JP VIGNAU",
"_validation": {
"summary": {
"valid": 6,
"invalid": 0,
"empty": 2,
"total_codes": 6,
"ghm_ghs_incoherents": 0
},
"codage_etab": {
"dp": {
"valid": true,
"libelle_ref": "Péritonite aigüe"
},
"dr": {
"valid": true,
"libelle_ref": "Bacillus fragilis, cause de maladies classées dans d'autres chapitres"
},
"das": []
},
"codage_reco": {
"dp": {
"valid": null
},
"dr": {
"valid": null
},
"das": []
},
"ghm_etab": {
"valid": true
},
"ghs_etab": {
"valid": true
},
"ghm_reco": {
"valid": true
},
"ghs_reco": {
"valid": true
},
"cross_checks": {
"etab_ghm_ghs_coherent": true,
"reco_ghm_ghs_coherent": true
}
}
},
"concertation_2": {
"ghs_initial": "2160",
"ghs_avant_concertation": "2160",
"ghs_final": "2161",
"decision": "maintien_avis_controleur",
"date_concertation": "15.3.2018",
"praticien_controleur": "DR JP VIGNAU",
"medecin_dim": "DR ETTORCHI-TARDY",
"_validation": {
"ghs_initial": {
"code": "2160",
"valid": true
},
"ghs_avant_concertation": {
"code": "2160",
"valid": true
},
"ghs_final": {
"code": "2161",
"valid": true
}
}
},
"concertation_1": {
"date_concertation": "15.3",
"argumentaire": "102 : La facturation du GHS par l'établissement n'est pas conforme à l'article 1 de l'arrêté du 19 février 2015 modifié du fait d'un non-respect des règles de codage édictées dans l'annexe II de l'arrêté du 21 décembre 2015 modifiant l'arrêté du 22 février 2008. Le non-respect des règles porte sur un diagnostic associé significatif (DAS) codé par l'établissement dans le résumé d'unité médicale (RUM). Ce DAS n'est pas conforme aux règles de codage des diagnostics rappelées par l'annexe II, chapitre IV, paragraphe 2.1 : « L'enregistrement dans le RUM d'une affection correspondant à la définition d'un DAS est obligatoire ». Au vu des éléments du dossier du patient, le codage d'un diagnostic correspondant à la définition d'un DAS a été omis par l'établissement."
},
"preuves": {
"date": "26/03/2018",
"praticien_controleur": [
"Dr RADZIKOWSKI",
"Dr DELAYE-PHULPIN",
"Dr TURBAN",
"Dr DUVAL",
"Dr VIGNAU",
"Dr PROMAX"
],
"medecin_dim": "Dr ETTORCHI-TARDY",
"pieces": [
{
"intitule": "Compte-rendu d'acte",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu opératoire",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu d'accouchement",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu d'examen complémentaire",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu d'imagerie",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu d'anatomopathologie",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Observations médicales",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Dossier de transfusion",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Dossier d'anesthésie",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Administration thérapeutique",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Compte-rendu d'hospitalisation",
"present": true,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Lettre de sortie",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Eléments de surveillance du dossier infirmier",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Prise en charge psychologue",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Prise en charge kinésithérapeute",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Prise en charge diététique",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
},
{
"intitule": "Autre",
"present": false,
"photocopie": false,
"absent_date": "",
"date_obtention": ""
}
]
}
},
"_meta": {
"pipeline_version": "v1",
"ocr_model": "zai-org/GLM-OCR",
"generated_at": "2026-04-24T12:10:02+00:00"
}
}