From 8192834f31f0e52603057b4a1c000cbab015006e Mon Sep 17 00:00:00 2001 From: oussi Date: Mon, 27 Apr 2026 17:32:21 +0200 Subject: [PATCH] V2 --- extraction.py | 291 +- generate_report.py | 17 +- output/extraction_ogc.xlsx | Bin 32397 -> 39846 bytes output/extraction_ogc_raw_qwen (3).json | 4145 +++++++++++++++++++++++ output/extraction_ogc_raw_qwen.json | 1217 ++++--- output/rapport_timing.pdf | 52 +- output/timing_stats.json | 804 +++-- 7 files changed, 5689 insertions(+), 837 deletions(-) create mode 100644 output/extraction_ogc_raw_qwen (3).json diff --git a/extraction.py b/extraction.py index 9f838a8..13980fc 100644 --- a/extraction.py +++ b/extraction.py @@ -298,14 +298,157 @@ Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. {"n_ogc":"","date_concertation":"","argumentaire_medecin_controleur":""}\ """ +PROMPT_SEJOUR_MANUSCRIT = """\ +Tu es un assistant d'extraction de données médicales. +Cette page est intitulée "Séjour d'hospitalisation complète". +Elle comporte deux colonnes de texte entièrement manuscrit : +- Colonne gauche : "Commentaires du médecin contrôleur" +- Colonne droite : "Commentaires du médecin du DIM" +RÈGLES STRICTES : +- Le texte peut déborder largement EN DESSOUS du tableau et légèrement sur les côtés des colonnes : inclure TOUT le texte visible de chaque colonne, y compris celui qui dépasse les bordures. +- Retranscrire le texte manuscrit tel quel, y compris abréviations et codes médicaux. +- Pour attribuer un texte débordant à la bonne colonne : le texte débordant d'une colonne lui appartient même s'il dépasse physiquement le cadre. +- Si une colonne est illisible ou vide, retourner "". +Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. + +{"commentaire_medecin_controleur":"","commentaire_medecin_dim":""}\ +""" + PROMPTS = { - "FICHE_RECUEIL": PROMPT_FICHE_RECUEIL, - "ELEMENTS_PREUVE": PROMPT_ELEMENTS_PREUVE, - "FICHE_ADMIN_2_2": PROMPT_FICHE_ADMIN_2_2, - "FICHE_ADMIN_1_2": PROMPT_FICHE_ADMIN_1_2, + "FICHE_RECUEIL": PROMPT_FICHE_RECUEIL, + "SEJOUR_MANUSCRIT": PROMPT_SEJOUR_MANUSCRIT, + "ELEMENTS_PREUVE": PROMPT_ELEMENTS_PREUVE, + "FICHE_ADMIN_2_2": PROMPT_FICHE_ADMIN_2_2, + "FICHE_ADMIN_1_2": PROMPT_FICHE_ADMIN_1_2, } -SKIP_TYPES = {"SEJOUR_MANUSCRIT", "FICHE_CONCERTATION_VIDE", "AUTRE"} +SKIP_TYPES = {"FICHE_CONCERTATION_VIDE", "AUTRE"} + +# ─── Découpage zones FICHE_RECUEIL ─────────────────────────────────────────── + +def crop_zone(img: Image.Image, y_start: float, y_end: float) -> Image.Image: + W, H = img.size + return img.crop((0, int(y_start * H), W, int(y_end * H))) + + +PROMPT_RECUEIL_Z1 = """\ +Tu es un assistant d'extraction de données médicales. +Extrait les informations d'en-tête et des tableaux "Données du séjour" et "Données du RUM" +de cette portion de fiche médicale de recueil du praticien conseil. +RÈGLES STRICTES : +- Si un champ n'a pas de valeur clairement visible, retourner "". +- Ne jamais deviner, inférer ou compléter un champ absent. +- Le champ "provenance" est très souvent vide : ne le remplir QUE si une valeur est explicitement imprimée. +- Le tableau "Données du séjour" contient ces colonnes DANS CET ORDRE EXACT, de gauche à droite : + Age(ans) | Age(jours) | Sexe | Délai dern. règles | Age gestation | Poids d'entrée | + Durée de séjour | Mode d'entrée | Provenance | Mode de sortie | Destination | + Nb séances | Nb RUM | Nb j EXH | Type EXB | Nb j EXB + RÈGLE ABSOLUE : lire chaque valeur dans sa colonne uniquement. Si une colonne est vide, retourner "". + Ne jamais décaler les valeurs vers la gauche pour compenser une cellule vide. +Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. + +{"n_ogc":"","etablissement":"","finess":"","date_debut_controle":"","n_champ":"","libelle_champ":"","dossier_manquant":"","date_debut_sejour":"","date_fin_sejour":"", +"sejour_etab":{"age_ans":"","age_jours":"","sexe":"","poids_entree":"","duree_sejour":"","mode_entree":"","provenance":"","mode_sortie":"","destination":"","nb_seances":"","nb_rum":"","nb_j_exh":"","type_exb":"","nb_j_exb":""}, +"sejour_reco":{"age_ans":"","age_jours":"","sexe":"","poids_entree":"","duree_sejour":"","mode_entree":"","provenance":"","mode_sortie":"","destination":"","nb_seances":"","nb_rum":"","nb_j_exh":"","type_exb":"","nb_j_exb":""}, +"rum_etab":{"n_rum":"","lits_dedies_sp":"","um":"","igs_ii":"","duree_rum_debut":"","duree_rum_fin":"","nature_suppl":"","nb_suppl":""}, +"rum_reco":{"n_rum":"","lits_dedies_sp":"","um":"","igs_ii":"","duree_rum_debut":"","duree_rum_fin":"","nature_suppl":"","nb_suppl":""}}\ +""" + +PROMPT_RECUEIL_Z2 = """\ +Tu es un assistant d'extraction de données médicales. +Extrait uniquement les lignes DP et DR de la section "Codage de l'Établissement" +et leur colonne "Recodage" correspondante. +RÈGLES STRICTES : +- Le formulaire comporte exactement UNE ligne pour le DP et UNE ligne pour le DR. +- Pour chaque ligne : si la colonne "Recodage" en face est vide sur le document, retourner "" pour dp_reco/dr_reco. +- Si la ligne DR est entièrement vide sur le document, retourner {"code":"","libelle":""} pour dr_etab et "" pour dr_reco. +- Ne jamais copier le code d'une autre ligne dans DP ou DR. +Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. + +{"dp_etab":{"code":"","libelle":""},"dr_etab":{"code":"","libelle":""},"dp_reco":{"code":""},"dr_reco":{"code":""}}\ +""" + +PROMPT_RECUEIL_Z3 = """\ +Tu es un assistant d'extraction de données médicales. +Extrait toutes les lignes DAS et Actes de cette section de la fiche médicale de recueil. +RÈGLES STRICTES : +- Extraire TOUTES les lignes non vides, sans limite de nombre. +- Les diagnostics (codes CIM-10 courts, ex: R33, E43, Z515) vont dans "das_etab" / "das_reco". +- Les actes (codes CCAM longs, 7+ caractères commençant par lettres, ex: JDPE002, NJFA008) vont dans "actes_etab" / "actes_reco". +- Ne jamais mettre un code CCAM dans das_etab, ni un code CIM-10 dans actes_etab. +- Si la colonne "Recodage" d'une ligne est vide, ne pas créer d'entrée dans das_reco/actes_reco pour cette ligne. +- Ne pas retourner les lignes entièrement vides. +Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. + +{"das_etab":[{"code":"","niveau":"","libelle":""}],"actes_etab":[{"code":"","niveau":"","libelle":""}],"das_reco":[{"code":"","niveau":""}],"actes_reco":[{"code":"","niveau":""}]}\ +""" + +PROMPT_RECUEIL_Z4 = """\ +Tu es un assistant d'extraction de données médicales. +Extrait les informations de la barre GHM/GHS et de la zone décision de cette portion de fiche médicale. +RÈGLES STRICTES : +- Pour "se_coche" : retourner "SE1", "SE2", "SE3" ou "SE4" si une case est explicitement cochée, sinon "". Ce champ est TRÈS SOUVENT vide. +- Pour les valeurs GHS (nombres) : retourner uniquement les chiffres sans point ni espace (ex: "4169" et non "4.169"). +- Pour "accord_desaccord" : retourner "accord" ou "désaccord" selon la case cochée. +- Pour "atu", "ffm", "fsd" : retourner "oui" si la case est cochée, "" sinon. +- Si un champ est absent ou illisible, retourner "". +Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après. + +{"ghm_etab":"","ghs_etab":"","ghm_reco":"","ghs_reco":"","recodage_impactant_facturation":"","ghs_injustifie":"","se_coche":"","atu":"","ffm":"","fsd":"","accord_desaccord":"","decision_finale":"","nom_praticien_conseil":""}\ +""" + +# (y_start, y_end, prompt, num_predict) — légère superposition aux jointures pour ne pas couper une ligne +# Z2 finit à 0.415 pour inclure les lignes DP+DR qui sont sous le header "Codage" +# Z4 commence à 0.822 pour capturer la barre GHM/GHS qui précède les cases SE +RECUEIL_ZONES = [ + (0.000, 0.325, PROMPT_RECUEIL_Z1, 8192), + (0.310, 0.415, PROMPT_RECUEIL_Z2, 3000), + (0.358, 0.815, PROMPT_RECUEIL_Z3, 8192), + # Z4 commence à 0.800 pour absorber les décalages de scan sur la ligne GHM/GHS + (0.800, 1.000, PROMPT_RECUEIL_Z4, 3000), +] + + +def _ask_zone(zone_img: Image.Image, prompt: str, num_predict: int, + timing_record: dict | None) -> dict: + """Appelle ask_vision sur une zone, parse le JSON, gère un retry si nécessaire.""" + raw = ask_vision(prompt, zone_img, timeout=240, num_predict=num_predict, + timing_record=timing_record) + data = extract_json(raw) + if data is None: + retry_prompt = ( + "Ta réponse précédente n'était pas un JSON valide. " + "Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après, " + "sans bloc ```json```. Voici le schéma attendu :\n\n" + prompt + ) + raw2 = ask_vision(retry_prompt, zone_img, timeout=240, num_predict=num_predict, + timing_record=timing_record) + data = extract_json(raw2) + return data or {} + + +def extract_fiche_recueil_zones(img: Image.Image, + timing_record: dict | None = None) -> tuple[dict, list]: + """ + Extrait une FICHE_RECUEIL par découpage en 4 zones. + Retourne (merged_data, zones_timing). + """ + merged: dict = {} + zones_timing: list = [] + for idx, (y0, y1, prompt, num_pred) in enumerate(RECUEIL_ZONES, start=1): + t0 = time.time() + zone_img = crop_zone(img, y0, y1) + try: + data = _ask_zone(zone_img, prompt, num_pred, timing_record) + except Exception as e: + print(f" ⚠ Zone {idx}/4 erreur : {e}") + data = {} + elapsed = round(time.time() - t0, 2) + zones_timing.append({"zone": idx, "duree_s": elapsed}) + print(f" → Zone {idx}/4 OK ({elapsed:.1f}s)") + merged.update(data) + return merged, zones_timing + # ─── Traitement d'un PDF ────────────────────────────────────────────────────── @@ -420,15 +563,24 @@ def _normalize_result(result: dict) -> None: # se_coche : normaliser "1"→"SE1", rejeter toute valeur non SE1-4 se_raw = str(d.get("se_coche", "")).strip() if se_raw.upper() in {"SE1", "SE2", "SE3", "SE4"}: - # Format déjà correct d["se_coche"] = se_raw.upper() elif se_raw in {"1", "2", "3", "4"}: - # Chiffre seul = ambigu, le modèle confond avec le rang d'un DAS → vider d["se_coche"] = "" elif se_raw: - # Valeur inattendue (ex: "accord", "désaccord") → vider d["se_coche"] = "" + # accord_desaccord : forcer minuscule + alias orthographiques + acc = str(d.get("accord_desaccord", "")).strip().lower() + acc = acc.replace("é", "e").replace("desaccord", "désaccord") + if acc in {"accord", "désaccord"}: + d["accord_desaccord"] = acc + elif acc: + d["accord_desaccord"] = "" + + # decision_finale : forcer minuscule + df = str(d.get("decision_finale", "")).strip().lower() + d["decision_finale"] = df + if ptype in ("FICHE_ADMIN_2_2", "FICHE_ADMIN_1_2"): for date_field in ("date_concertation",): if d.get(date_field): @@ -611,62 +763,75 @@ def process_pdf(pdf_path: Path) -> tuple[dict, dict]: print(" → Extraction en cours...") t0 = time.time() - try: - num_predict = 12000 if page_type == "FICHE_RECUEIL" else 8192 - raw = ask_vision(PROMPTS[page_type], img, timeout=240, - num_predict=num_predict, timing_record=timing) - except Exception as e: - print(f" ⚠ Erreur extraction : {e}") - duree_ext = round(time.time() - t0, 2) - page_timing["duree_extraction_s"] = duree_ext - page_timing["statut"] = "erreur_extraction" - page_timing["erreur"] = str(e) - timing["erreurs"].append({"page": i, "phase": "extraction", "type": page_type, "message": str(e)}) - timing["pages"].append(page_timing) - result["pages_traitees"].append({"page": i, "type": page_type, - "data": {"erreur": str(e)}}) - continue - duree_ext = round(time.time() - t0, 2) - page_timing["duree_extraction_s"] = duree_ext - print(f" → Réponse reçue ({duree_ext:.1f}s)") - - data = extract_json(raw) - if data is None: - print(f" ⚠ JSON non parsable — retry en cours...") - retry_prompt = ( - "Ta réponse précédente n'était pas un JSON valide. " - "Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après, " - "sans bloc ```json```. Voici le schéma attendu :\n\n" - + PROMPTS[page_type] - ) + if page_type == "FICHE_RECUEIL": try: - raw2 = ask_vision(retry_prompt, img, timeout=240, num_predict=12000, - timing_record=timing) - data = extract_json(raw2) + data, zones_t = extract_fiche_recueil_zones(img, timing_record=timing) + page_timing["duree_extraction_s"] = round(time.time() - t0, 2) + page_timing["zones_timing"] = zones_t + page_timing["statut"] = "ok" except Exception as e: - print(f" ⚠ Erreur retry : {e}") - data = None - - if data is None: - print(f" ⚠ Retry échoué — raw_response conservé") - page_timing["statut"] = "json_non_parsable" - timing["erreurs"].append({ - "page": i, "phase": "parsing_json", "type": page_type, - "message": f"JSON non parsable après retry : {raw[:100]}", - "retry": True, - }) - data = {"raw_response": raw} - else: - print(f" ✓ Retry réussi") - page_timing["statut"] = "ok_after_retry" - timing["erreurs"].append({ - "page": i, "phase": "parsing_json", "type": page_type, - "message": "JSON non parsable au 1er appel, corrigé par retry", - "retry": True, "retry_ok": True, - }) + print(f" ⚠ Erreur extraction zones : {e}") + page_timing["duree_extraction_s"] = round(time.time() - t0, 2) + page_timing["statut"] = "erreur_extraction" + page_timing["erreur"] = str(e) + timing["erreurs"].append({"page": i, "phase": "extraction", "type": page_type, "message": str(e)}) + timing["pages"].append(page_timing) + result["pages_traitees"].append({"page": i, "type": page_type, "data": {"erreur": str(e)}}) + continue else: - page_timing["statut"] = "ok" + try: + raw = ask_vision(PROMPTS[page_type], img, timeout=240, + num_predict=8192, timing_record=timing) + except Exception as e: + print(f" ⚠ Erreur extraction : {e}") + page_timing["duree_extraction_s"] = round(time.time() - t0, 2) + page_timing["statut"] = "erreur_extraction" + page_timing["erreur"] = str(e) + timing["erreurs"].append({"page": i, "phase": "extraction", "type": page_type, "message": str(e)}) + timing["pages"].append(page_timing) + result["pages_traitees"].append({"page": i, "type": page_type, "data": {"erreur": str(e)}}) + continue + + page_timing["duree_extraction_s"] = round(time.time() - t0, 2) + print(f" → Réponse reçue ({page_timing['duree_extraction_s']:.1f}s)") + + data = extract_json(raw) + if data is None: + print(f" ⚠ JSON non parsable — retry en cours...") + retry_prompt = ( + "Ta réponse précédente n'était pas un JSON valide. " + "Réponds UNIQUEMENT avec un objet JSON valide, sans texte avant ni après, " + "sans bloc ```json```. Voici le schéma attendu :\n\n" + + PROMPTS[page_type] + ) + try: + raw2 = ask_vision(retry_prompt, img, timeout=240, num_predict=12000, + timing_record=timing) + data = extract_json(raw2) + except Exception as e: + print(f" ⚠ Erreur retry : {e}") + data = None + + if data is None: + print(f" ⚠ Retry échoué — raw_response conservé") + page_timing["statut"] = "json_non_parsable" + timing["erreurs"].append({ + "page": i, "phase": "parsing_json", "type": page_type, + "message": f"JSON non parsable après retry : {raw[:100]}", + "retry": True, + }) + data = {"raw_response": raw} + else: + print(f" ✓ Retry réussi") + page_timing["statut"] = "ok_after_retry" + timing["erreurs"].append({ + "page": i, "phase": "parsing_json", "type": page_type, + "message": "JSON non parsable au 1er appel, corrigé par retry", + "retry": True, "retry_ok": True, + }) + else: + page_timing["statut"] = "ok" timing["pages"].append(page_timing) result["pages_traitees"].append({"page": i, "type": page_type, "data": data}) @@ -705,7 +870,8 @@ def flatten(result: dict) -> dict: row["dr_reco_code"] = (d.get("dr_reco") or {}).get("code", "") for k in ["ghm_etab","ghs_etab","ghm_reco","ghs_reco", "recodage_impactant_facturation","ghs_injustifie", - "se_coche","atu","ffm","fsd","accord_desaccord","nom_praticien_conseil"]: + "se_coche","atu","ffm","fsd","accord_desaccord", + "decision_finale","nom_praticien_conseil"]: row[k] = d.get(k, "") general_done = True # ── Comptages et durées agrégés sur tous les RUM ── @@ -736,6 +902,9 @@ def flatten(result: dict) -> dict: elif ptype == "FICHE_ADMIN_1_2": row["admin12_date_concertation"] = d.get("date_concertation", "") row["admin12_argumentaire"] = d.get("argumentaire_medecin_controleur", "") + elif ptype == "SEJOUR_MANUSCRIT": + row["sejour_ms_controleur"] = d.get("commentaire_medecin_controleur", "") + row["sejour_ms_dim"] = d.get("commentaire_medecin_dim", "") # ── RÈGLE MÉTIER GHS FINAL ───────────────────────────────────────────── # ghs_final_apres_concertation est manuscrit et souvent mal lu. diff --git a/generate_report.py b/generate_report.py index d1a046f..be42adc 100644 --- a/generate_report.py +++ b/generate_report.py @@ -140,6 +140,19 @@ def _normalize_keys(flat: dict) -> dict: return {k.replace(".rang", ".niveau"): v for k, v in flat.items()} +_LOWER_FIELDS = {"accord_desaccord", "avis_dim_final", "decision_finale"} + +def _norm_values(flat: dict) -> dict: + """Normalise en minuscule les champs textuels dont la casse varie entre extraction et correction.""" + out = {} + for k, v in flat.items(): + field = k.split(".")[-1] + if field in _LOWER_FIELDS and isinstance(v, str): + v = v.strip().lower().replace("desaccord", "désaccord") + out[k] = v + return out + + def _get_cat(key: str, ptype: str = "") -> str: k = key.lower() if ptype == "ELEMENTS_PREUVE": @@ -210,8 +223,8 @@ def compare_extractions(orig_list, corr_list): ep_counters["json_non_parsable"]["dossiers"].add(fichier) continue - o_flat = _normalize_keys(_flatten(od)) - c_flat = _normalize_keys(_flatten(cd)) + o_flat = _norm_values(_normalize_keys(_flatten(od))) + c_flat = _norm_values(_normalize_keys(_flatten(cd))) all_keys = set(o_flat) | set(c_flat) for k in all_keys: diff --git a/output/extraction_ogc.xlsx b/output/extraction_ogc.xlsx index 006aed30c3c1b34fdcf1c9193d607e37e583a8e3..5098fd1db4bf79f7c92ea4c1605fc293d83bf7c7 100644 GIT binary patch delta 35669 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

}-mZ;l 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 GNE86D(ybT( delta 28184 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 ELIG.0 est conforme aux\nrègles de l'ATIH pour le\ncodage des dénutri'hôp\net pour le codage de DA.\nLa dénutrition est diagnostiquée\nsur 1 des critères si 2g > 70am,\nIMC < 21 Kg/m2. C'est le\ncas de cette patiente avec\nun IMC à 19 et vue par la diét\nMaintien de ELIG.0 en DA\nAjout de L89.1 en DA\nNotion de PEC diagnostique et\nthérapeutique d'une lésion\ncutanée avec soins paraquard.\nAu début de l'hospitalisation, notion\nde rougeur cutanée traitée\npar duoderm + changement\nde position : Aggravation\nà d'entier (escarre st 2)\nDr ETIORCH" + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -421,34 +438,163 @@ "avis_dim_final": "Désaccord", "date_concertation": "14/03/2019", "nom_medecin_responsable_controle": "Docteur Christian Loie", - "nom_medecin_dim": "Dr Etto R CH" + "nom_medecin_dim": "Dr Etto RCH" } } ], - "pages_ignorees": [ - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" - } - ], + "pages_ignorees": [], "_audit": { - "score_global": 0.89, + "score_global": 0.92, "alertes": [ { "champ": "sejour_etab.provenance", "score": 0.4 }, - { - "champ": "das_etab", - "score": 0.5 - }, { "champ": "sejour_etab.provenance", "score": 0.4 } ], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" + } + }, + { + "fichier": "OGC 1.pdf", + "pages_traitees": [ + { + "page": 1, + "type": "FICHE_RECUEIL", + "data": { + "n_ogc": "1", + "etablissement": "CLINIQUE D'ARCACHON", + "finess": "330780206", + "date_debut_controle": "13/02/2018", + "n_champ": "1", + "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", + "dossier_manquant": "0", + "date_debut_sejour": "16/02/2016", + "date_fin_sejour": "10/03/2016", + "sejour_etab": { + "age_ans": "79", + "age_jours": "2", + "sexe": "", + "poids_entree": "6", + "duree_sejour": "2", + "mode_entree": "0", + "provenance": "", + "mode_sortie": "", + "destination": "", + "nb_seances": "", + "nb_rum": "", + "nb_j_exh": "", + "type_exb": "", + "nb_j_exb": "" + }, + "sejour_reco": { + "age_ans": "79", + "age_jours": "2", + "sexe": "", + "poids_entree": "6", + "duree_sejour": "2", + "mode_entree": "0", + "provenance": "", + "mode_sortie": "", + "destination": "", + "nb_seances": "", + "nb_rum": "", + "nb_j_exh": "", + "type_exb": "", + "nb_j_exb": "" + }, + "rum_etab": { + "n_rum": "1/1", + "lits_dedies_sp": "0", + "um": "53C", + "igs_ii": "0", + "duree_rum_debut": "", + "duree_rum_fin": "", + "nature_suppl": "du 16/02/2016 au 10/03/2016", + "nb_suppl": "" + }, + "rum_reco": { + "n_rum": "1/1", + "lits_dedies_sp": "0", + "um": "53C", + "igs_ii": "0", + "duree_rum_debut": "", + "duree_rum_fin": "", + "nature_suppl": "du 16/02/2016 au 10/03/2016", + "nb_suppl": "" + }, + "dp_etab": { + "code": "06M093", + "libelle": "GHM établissement" + }, + "dr_etab": { + "code": "", + "libelle": "" + }, + "dp_reco": { + "code": "06M094" + }, + "dr_reco": { + "code": "", + "libelle": "" + }, + "das_etab": [ + { + "code": "2160", + "rang": "", + "libelle": "GHS établissement" + } + ], + "actes_etab": [], + "das_reco": [ + { + "code": "2161", + "rang": "" + } + ], + "actes_reco": [], + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", + "recodage_impactant_facturation": "", + "ghs_injustifie": "", + "se_coche": "", + "atu": "", + "ffm": "", + "fsd": "", + "accord_desaccord": "", + "nom_praticien_conseil": "" + } + }, + { + "page": 2, + "type": "FICHE_ADMIN_2_2", + "data": { + "n_ogc": "", + "ghs_initial": "2160", + "ghs_avant_concertation": "2160", + "ghs_final_apres_concertation": "2161", + "maintien_avis_controleur": "oui", + "retour_groupage_dim": "", + "autre_groupage": "", + "avis_dim_final": "", + "date_concertation": "15/03/2018", + "nom_medecin_responsable_controle": "", + "nom_medecin_dim": "" + } + } + ], + "pages_ignorees": [], + "_audit": { + "score_global": 1.0, + "alertes": [], + "modele": "qwen3-vl:235b-cloud", + "date_extraction": "2026-04-27" } }, { @@ -504,93 +650,89 @@ "lits_dedies_sp": "0", "um": "53 C", "igs_ii": "0", - "duree_rum_debut": "du 21/10/2016 au 26/10/2016", - "duree_rum_fin": "", + "duree_rum_debut": "21/10/2016", + "duree_rum_fin": "26/10/2016", "nature_suppl": "0", - "nb_suppl": "0" + "nb_suppl": "0", + "duree_rum_calculee_j": 5 }, "rum_reco": { "n_rum": "1/1", "lits_dedies_sp": "0", "um": "53 C", "igs_ii": "0", - "duree_rum_debut": "du 21/10/2016 au 26/10/2016", - "duree_rum_fin": "", + "duree_rum_debut": "21/10/2016", + "duree_rum_fin": "26/10/2016", "nature_suppl": "0", - "nb_suppl": "0" + "nb_suppl": "0", + "duree_rum_calculee_j": 5 }, "dp_etab": { "code": "N320", "libelle": "OBSTRU. DU COL DE LA VESSIE" }, "dr_etab": { - "code": "R33", - "libelle": "RETENTION D'URINE" + "code": "", + "libelle": "" }, - "das_etab": [ - { - "code": "JDP E002", - "niveau": "1", - "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." - }, - { - "code": "JDP E002", - "niveau": "4", - "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." - } - ], - "actes_etab": [ - { - "code": "JDP E002", - "niveau": "1", - "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." - }, - { - "code": "JDP E002", - "niveau": "4", - "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." - } - ], "dp_reco": { "code": "N320" }, "dr_reco": { "code": "" }, - "das_reco": [ + "das_etab": [ { - "code": "JDP E002", - "niveau": "1" - }, - { - "code": "JDP E002", - "niveau": "4" + "code": "R33", + "niveau": "2", + "libelle": "RETENTION D'URINE" } ], + "actes_etab": [ + { + "code": "JDPE002", + "niveau": "1", + "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." + }, + { + "code": "JDPE002", + "niveau": "4", + "libelle": "INCISION CERV/CERVICOPROSTATIQUE ENDOS." + } + ], + "das_reco": [], "actes_reco": [ { - "code": "JDP E002", + "code": "JDPE002", "niveau": "1" }, { - "code": "JDP E002", + "code": "JDPE002", "niveau": "4" } ], - "ghm_etab": "11C132", - "ghs_etab": "4169", - "ghm_reco": "11C131", - "ghs_reco": "4168", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Désaccord", + "accord_desaccord": "désaccord", "nom_praticien_conseil": "DR JP VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patient agé de 65 ans admis pour\nrétention urinaire – exploration endoscopique\net mise en place d'un cystocatheter, puis\nATCD de résection prostatique il y a 2 ans\nMise en évidence d'une petite sténose du col\nvésical qui est largement mince\n\nAu total = Accuit Dr\nau DAS – la rétention urinaire est un\nproblème de santé inclu dans le DR et non une\naffection différée", + "commentaire_medecin_dim": "Patient de 65 ans, opéré\nil y a un peu plus d'un\nan d'une résection prostatique.\nLe patient a bénéficié d'une\nexploration endoscopique qui\na mis en évidence une sténose\ndu col vésical. La sténose a\nété largement incisée pour\npermettre au patient de\nreprendre les mictions (CRO).\nUn Cysto-cathéter sous pubien\nest implanté clause le m temps.\nLa rétention d'urine préopérat.\na bénéficié d'une prise en charge\nétiologique et symptomatique.\n\nLa surveillance post-opératoire\n(voir transmissions cibles\npost-op) un globe vésical\na plusieurs reprises (22 et\n24/10/2016). Une rétention\nd'urine post-opératoire\nest bien traitée par le IDE\nainsi que sa prise en charge.\nLe R33 est conforme au codage\nde la rétention d'urine\nmais également post-op.\nAjoute le T81.8." + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -600,7 +742,7 @@ "medecin_dim_signataire": "Dr ETTORCHI-TARDY", "elements": { "compte_rendu_acte": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -612,49 +754,49 @@ "date_obtention": "" }, "compte_rendu_accouchement": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_examen_complementaire": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_imagerie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_anatomopathologie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "observations_medicales": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "dossier_transfusion": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "dossier_anesthesie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "administration_therapeutique": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -666,37 +808,37 @@ "date_obtention": "" }, "lettre_sortie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "surveillance_dossier_infirmier": { "present": "oui", - "photocopie": "3.5", + "photocopie": "3-5", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_psychologue": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_kinesitherapeute": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_dietetique": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "autre": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -711,11 +853,11 @@ "n_ogc": "358", "ghs_initial": "4169", "ghs_avant_concertation": "4168", - "ghs_final_apres_concertation": "4268", + "ghs_final_apres_concertation": "4168", "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", - "avis_dim_final": "désaccord", + "avis_dim_final": "Désaccord", "date_concertation": "15.3.18", "nom_medecin_responsable_controle": "DR JP VIGNAU", "nom_medecin_dim": "DR ETTORCHI-TARDY" @@ -735,22 +877,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.92, - "alertes": [ - { - "champ": "dr_etab", - "score": 0.31 - } - ], + "score_global": 1.0, + "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -828,47 +961,42 @@ "libelle": "LES. TRAUMA. DU COLON, SANS PLAIE INTRA-ABDO." }, "dr_etab": { - "code": "T812", - "libelle": "PERFO. ET DECHIRURE ACCIDENTELLES AU COUR D'UN ACTE, NCA" + "code": "", + "libelle": "" + }, + "dp_reco": { + "code": "E6600" + }, + "dr_reco": { + "code": "" }, "das_etab": [ { - "code": "HHCA001", - "niveau": "1", - "libelle": "SUTURE COLON LAPARO" - }, - { - "code": "HHCA001", - "niveau": "4", - "libelle": "SUTURE COLON LAPARO" + "code": "T812", + "niveau": "2", + "libelle": "PERFO. ET DECHIRURE ACCIDENTELLES AU COUR D'UN ACTE, NCA" } ], "actes_etab": [ { "code": "HHCA001", "niveau": "1", - "libelle": "SUTURE COLON LAPARO" + "libelle": "SUTURE CÂLON LAPARO" }, { "code": "HHCA001", "niveau": "4", - "libelle": "SUTURE COLON LAPARO" + "libelle": "SUTURE CÂLON LAPARO" } ], - "dp_reco": { - "code": "E6600" - }, - "dr_reco": { - "code": "S3651" - }, "das_reco": [ { - "code": "HHCA001", - "niveau": "1" + "code": "S3651", + "niveau": "2" }, { - "code": "HHCA001", - "niveau": "4" + "code": "T812", + "niveau": "2" } ], "actes_reco": [ @@ -883,18 +1011,26 @@ ], "ghm_etab": "06C042", "ghs_etab": "1940", - "ghm_reco": "10M092", - "ghs_reco": "3932", + "ghm_reco": "10M052", + "ghs_reco": "5902", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Désaccord", + "accord_desaccord": "désaccord", "nom_praticien_conseil": "DR JP VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patient agé de 69 ans admis pour obésité morbide (IMC = 39,1) avec gastroplastie par anneau ajustable posée lors de l'admission. Complications lors de l'intervention avec plaie colique à l'introduction du boucan. Réparation de la plaie sous colioscopie. Au total = le motif d'admission de la patiente était pour pose en délit d'une obésité morbide - le DP est donc E66.0. La plaie colique ne peut être le DP. Il s'agit d'un problème de santé n'excédant pas à l'admission. Modification du DAS. S36.51 au lieu de S36.50 car plaie intra Y60.0 au lieu de Y65.8 (beynala accidentelle au cours d'un intervention chirurgicale) Après consultation on ne peut pas coder la complication en DP, car pathologie non passée à l'acte. Donc DP = E66.00", + "commentaire_medecin_dim": "Patiente de 69 ans, hospitalisée du 26/10/16 au 21/10/16. Elle devait être opérée initialement d'une obésité morbide avec mise en place d'un anneau de gastroplastie ajustable sous colios. Dès l'introduction de l'optique, le chirurgien découvre une plaie du colon transverse avant de la colioscopie et réparation de la plaie du colon sous une courte laparotomie sus-ombilicale. Au total : la mise en charge initialement prévue (anneau de gastroplastie) n'a pas été réalisée. La mise en charge finalement réalisée est la suture de la plaie colique à l'introduction du coloscopie (boucan). Le DP le plus juste est le S36.50 (lésion traumatique du colon). Selon le guide méthode (annexe II, chap VI - Guide de situations cliniques B4ag 1-6 : pas prévue non réalisée) : <= le DP défini comme le problème de santé qui a motivé l'admission ne connaît qu'une exception. Elle connait la situation où la proc prévue à l'avance s'avère impossible à réaliser => coder en DP l'affection cause de la contre-indication (laquelle nécessite une prise en charge particulière) => Maintenir S36.50 en DP. Ajoute 7.53.0 en DAS." + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -904,7 +1040,7 @@ "medecin_dim_signataire": "Dr ETTORCHI-TARDY", "elements": { "compte_rendu_acte": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -916,25 +1052,25 @@ "date_obtention": "" }, "compte_rendu_accouchement": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_examen_complementaire": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_imagerie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_anatomopathologie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -946,19 +1082,19 @@ "date_obtention": "" }, "dossier_transfusion": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "dossier_anesthesie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "administration_therapeutique": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -970,37 +1106,37 @@ "date_obtention": "" }, "lettre_sortie": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "surveillance_dossier_infirmier": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_psychologue": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_kinesitherapeute": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_dietetique": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "autre": { - "present": "", + "present": "non", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -1030,7 +1166,7 @@ "type": "FICHE_ADMIN_1_2", "data": { "n_ogc": "368", - "date_concertation": "16.3.19", + "date_concertation": "16.3.17", "argumentaire_medecin_controleur": "112 : 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 le diagnostic principal (DP) codé par l'établissement dans le résumé d'unité médicale (RUM). Le DP n'est pas conforme aux règles de codage des diagnostics rappelées par l'annexe II, chapitre IV, paragraphe 1.1 : « (...) un problème de santé inexistant à l'admission ou étranger au motif de celle-ci, et apparu ou découvert au cours du séjour dans l'unité médicale, ne peut jamais être le diagnostic principal (DP). » Au vu des éléments présents dans le dossier du patient, l'affection choisie comme DP par l'établissement n'a pas motivé l'admission et n'était pas présente à l'entrée du patient dans l'établissement." } } @@ -1039,26 +1175,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.85, - "alertes": [ - { - "champ": "dr_etab", - "score": 0.31 - }, - { - "champ": "das_etab.codes", - "score": 0.35 - } - ], + "score_global": 1.0, + "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -1139,6 +1262,12 @@ "code": "", "libelle": "" }, + "dp_reco": { + "code": "T857" + }, + "dr_reco": { + "code": "" + }, "das_etab": [ { "code": "A418", @@ -1151,12 +1280,12 @@ "libelle": "T.M. A LOC. CONTIGUES DE LA LEVRE, DE LA CAV. BUCC. ET DU PHARYNX" }, { - "code": "E43", + "code": "E43 *", "niveau": "3", "libelle": "MALNUTRITION PROTEINO-ENERGETIQUE GRAVE, SAI" }, { - "code": "R650", + "code": "R650 *", "niveau": "2", "libelle": "SYND. REPONSE INFLAM. SYST. ORIGINE INFECT. SANS DEFAILLANCE ORG" }, @@ -1167,12 +1296,6 @@ } ], "actes_etab": [], - "dp_reco": { - "code": "T857" - }, - "dr_reco": { - "code": "" - }, "das_reco": [ { "code": "C148", @@ -1184,17 +1307,17 @@ } ], "actes_reco": [], - "ghm_etab": "10M184", - "ghs_etab": "3970", - "ghm_reco": "21M163", - "ghs_reco": "7611", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -1311,6 +1434,14 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Pic gebrale en cours de Chimiotherapie.\nMotif d'admission : chimio Therapie annulee en raison du Pic gebrale.\ncarcinome de la face connue depuis septembre 2016.\nAlimentation Parenterale en cours depuis septembre 2016\nP: 39,8Kg T:1,62 IMC:14,9\nCS dietetienne de 24.10.16 => perte de 22Kg en 3mois - Alimentation mixe + 2 c NO/f Alimentation Parenterale stoppe 48h en raison de l'Hypothermie\nHemoculture sur CIP® a Pantoca Agglomérants\nHemocultures Negative en Peripherie\nDP = Motif de nhe = Episode gebrale avec Hemoculture + sur CIP# DP = T95.7\nBlan Biologique non realise.\npas de culture des RIC\nDAS : B96.99\nPas de l'acte encharges en Sainé Balliahf", + "commentaire_medecin_dim": "" + } + }, { "page": 5, "type": "FICHE_ADMIN_2_2", @@ -1322,7 +1453,7 @@ "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", - "avis_dim_final": "Accord", + "avis_dim_final": "accord", "date_concertation": "16.3.18", "nom_medecin_responsable_controle": "DR JP VIGNAU", "nom_medecin_dim": "DR ETTORCHI-TARDY" @@ -1342,10 +1473,6 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { @@ -1357,7 +1484,7 @@ } ], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -1438,47 +1565,68 @@ "code": "", "libelle": "" }, - "das_etab": [ - { - "code": "D630", - "rang": "", - "libelle": "ANEMIE AVEC MAL. TUMORALES" - } - ], - "actes_etab": [], "dp_reco": { "code": "Z488" }, "dr_reco": { - "code": "D630" + "code": "" }, - "das_reco": [ + "das_etab": [ + { + "code": "D630", + "niveau": "2", + "libelle": "ANEMIE AVEC MAL. TUMORALES" + }, { "code": "Z433", + "niveau": "2", + "libelle": "SURV. DE COLOSTOMIE" + } + ], + "actes_etab": [], + "das_reco": [ + { + "code": "D630", + "niveau": "2" + }, + { + "code": "R33", + "niveau": "2" + }, + { + "code": "Z433 *", "niveau": "2" } ], "actes_reco": [], "ghm_etab": "11M122", - "ghs_etab": "4323", - "ghm_reco": "23M102", - "ghs_reco": "7975", + "ghs_etab": "4169", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "07 d 70 ans\nHospit 06.8 du 25/10 au 02/11/16\nTransfert de chirurgie après reprise chirurg. pour fistule anastomotique suite colectomie\nglobe minceau au retrait de la sonde.\n=> colages OK\nAprès canulisation : OK 10 248.8 en DD", + "commentaire_medecin_dim": "Patieur de 70 ans,\nopéré du CH le 17/10/2016 pour RC colon (Colectomie Gauche sous coloscopie)\n• Réopéré le jour même au CH pour fistule anastomotique avec pansage pendant 48h en surveillance continue.\n• Transfert dans le Service d'oncologie le 25/10/2016 pour surveillance post opératoire\nPendant l'hospitalisation, au retrait de la sonde vésicale, le patient a présenté un globe nécessitant la remise en place de celle-ci.\nLe DL le plus juste selon la règle SI est le 248.8 (Autres soins de contrôle chirurgicaux)\nLe R33 est un DAS." + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", "data": { "date": "08/07/18", - "medecin_controleur_signataire": "V. ABOU JAOUDE", + "medecin_controleur_signataire": "", "medecin_dim_signataire": "Dr ETTORCHI-TARDY", "elements": { "compte_rendu_acte": { @@ -1617,10 +1765,6 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { @@ -1632,7 +1776,7 @@ } ], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -1647,13 +1791,13 @@ "finess": "330780206", "date_debut_controle": "13/02/2018", "n_champ": "1", - "libelle_champ": "Champ 1: séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", + "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", "dossier_manquant": "0", "date_debut_sejour": "04/11/2016", "date_fin_sejour": "24/11/2016", "sejour_etab": { "age_ans": "75", - "age_jours": "1", + "age_jours": "", "sexe": "1", "poids_entree": "0", "duree_sejour": "20", @@ -1669,7 +1813,7 @@ }, "sejour_reco": { "age_ans": "75", - "age_jours": "1", + "age_jours": "", "sexe": "1", "poids_entree": "0", "duree_sejour": "20", @@ -1713,39 +1857,52 @@ "code": "", "libelle": "" }, - "das_etab": [ - { - "code": "C80+0", - "rang": "", - "libelle": "" - } - ], - "actes_etab": [], "dp_reco": { "code": "Z515" }, "dr_reco": { - "code": "", - "libelle": "" + "code": "C80+0" }, + "das_etab": [], + "actes_etab": [], "das_reco": [ { - "code": "C80+0", - "rang": "" + "code": "C787 *", + "niveau": "2" + }, + { + "code": "E440 *", + "niveau": "3" + }, + { + "code": "F050 *", + "niveau": "3" + }, + { + "code": "R630 *", + "niveau": "2" + }, + { + "code": "S7200 *", + "niveau": "3" + }, + { + "code": "Z511 *", + "niveau": "3" } ], "actes_reco": [], - "ghm_etab": "10M183", - "ghs_etab": "3969", - "ghm_reco": "23Z02Z", - "ghs_reco": "7992", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -1862,6 +2019,14 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patiente de 75 ans\nadieux peu PBE\nd'un dénutritive\nRéalisation d'un\nSoin palliatif\nd'un kcinome\nindifférencié.\nAecor d codage .", + "commentaire_medecin_dim": "Patient de 75 ans, suivi\npour un carcinome indifférencié\nmétastatique d'emblée.\nAdmis pour une prise en charge\npalliative symptomatique\n(la première chimio palliative\na été annulée du fait de\nla chg lucente pour PTH).\no Prise en charge antalgique\no Complément alimentaire\no Prise en charge pluridisciplinaire\n(diét, kiné, A.soc, accompagné\npar l'équipe de soin).\nLa RCP d'aujourd'hui a confirmé\nla poursuite de la pec palliative\nSéance de chimio palliative\nen cours de séjour.\nAu total : Modification de DP\nselon la règle Td , codage\ndu DP par 251.5 soins palliatifs\nLe patient a bénéficié d'une\npec pluridisciplinaire et\nde soins de confort." + } + }, { "page": 5, "type": "FICHE_ADMIN_2_2", @@ -1893,17 +2058,18 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 1.0, - "alertes": [], + "score_global": 0.94, + "alertes": [ + { + "champ": "das_etab", + "score": 0.5 + } + ], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -1984,6 +2150,12 @@ "code": "", "libelle": "" }, + "dp_reco": { + "code": "D70" + }, + "dr_reco": { + "code": "" + }, "das_etab": [ { "code": "E441", @@ -2012,12 +2184,6 @@ } ], "actes_etab": [], - "dp_reco": { - "code": "D70" - }, - "dr_reco": { - "code": "" - }, "das_reco": [ { "code": "E441", @@ -2041,20 +2207,28 @@ } ], "actes_reco": [], - "ghm_etab": "16M102", - "ghs_etab": "6178", - "ghm_reco": "16M092", - "ghs_reco": "6173", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", - "se_coche": "SE1", + "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Désaccord", + "accord_desaccord": "désaccord", "nom_praticien_conseil": "DR JP VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patient de 46 ans\nen récidive d'un\nCA œsophage admis\npour nuite, anorexie\nau 9e j d'un chimio\nfièvre de 38,5\nA.g de neutropénie\nfibrile post-chimio\n=> modification DP-\nmesure d'isolement\nApyrexie sous ATB\nRAB aprè normalisation\ndes neutro -\nAprès concertation: par le\nchoix du DP on peut avoir:\n1) la neutropénie\n2) la nuite.\nla malade a subi le\nmaximum d'effort de soin (\nATB, bio, ides, bronc, surve...).\nElle doit donc être admise en DP\n(cycle n°1)", + "commentaire_medecin_dim": "Patient de 46 ans, en récidive\nd'un cancer de l'œsophage\nopéré en décembre 2015,\nhospitalisé pour nuite,\nanorexie et impossibilité\nde s'alimenter et de s'hydrater\nau 9e j d'une première cycle de chimio.\n=> Alimentation artificielle\n=> Pain bilan biologique\n(désinsertion médicale à l'entrée).\nLa prise en charge de l'entrée\na consisté en la prescription\nde soins de bouche (Bicard + funsizone)\net antalgiques et par Dier.\n- le bilan trouve un neutropénie\n# Dfo correspond à la\ndéfinition de Diag anciens.\n- le DP le + précis est\nNuite (motif d'admission\ninitial, pris en charge\npendant le séjour,\npuis en charge de conséquences\n(hydratation, Dtech).\nLe K12.3 est le DP le\nplus conforme à la définition\nde DP." + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -2065,7 +2239,7 @@ "elements": { "compte_rendu_acte": { "present": "oui", - "photocopie": "A.23", + "photocopie": "1.23", "absent_date_1ere_demande": "", "date_obtention": "" }, @@ -2137,7 +2311,7 @@ }, "surveillance_dossier_infirmier": { "present": "oui", - "photocopie": "6", + "photocopie": "62", "absent_date_1ere_demande": "", "date_obtention": "" }, @@ -2173,8 +2347,8 @@ "type": "FICHE_ADMIN_1_2", "data": { "n_ogc": "397", - "date_concertation": "14 3 18", - "argumentaire_medecin_controleur": "109 : 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 le diagnostic principal (DP) codé par l’établissement dans le résumé d’unité médicale (RUM). Le DP n’est pas conforme aux règles de codage des diagnostics rappelées par l’annexe II, chapitre V, paragraphe 1 : « les diagnostics doivent figurer dans le RUM sous forme codée selon la plus récente mise à jour de la 10e révision de la Classification internationale des maladies (CIM-10) de l’Organisation mondiale de la santé et selon les extensions nationales données dans la plus récente version du Manuel des groupes homogènes de malades. (...) Le meilleur code est le plus précis par rapport à l’information à coder. » Au vu des éléments présents dans le dossier du patient, le code CIM-10 choisi pour le DP par l’établissement n’est pas le plus précis par rapport à l’information à coder." + "date_concertation": "14-3-18", + "argumentaire_medecin_controleur": "109 : 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 le diagnostic principal (DP) codé par l'établissement dans le résumé d'unité médicale (RUM). Le DP n'est pas conforme aux règles de codage des diagnostics rappelées par l'annexe II, chapitre V, paragraphe 1 : « les diagnostics doivent figurer dans le RUM sous forme codée selon la plus récente mise à jour de la 10e révision de la Classification internationale des maladies (CIM-10) de l'Organisation mondiale de la santé et selon les extensions nationales données dans la plus récente version du Manuel des groupes homogènes de malades. (...) Le meilleur code est le plus précis par rapport à l'information à coder. » Au vu des éléments présents dans le dossier du patient, le code CIM-10 choisi pour le DP par l'établissement n'est pas le plus précis par rapport à l'information à coder." } }, { @@ -2199,17 +2373,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.99, + "score_global": 1.0, "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -2265,30 +2435,43 @@ "lits_dedies_sp": "0", "um": "40 C", "igs_ii": "0", - "duree_rum_debut": "", - "duree_rum_fin": "", + "duree_rum_debut": "15/11/2016", + "duree_rum_fin": "20/11/2016", "nature_suppl": "0", - "nb_suppl": "0" + "nb_suppl": "0", + "duree_rum_calculee_j": 5 }, "rum_reco": { "n_rum": "1/1", "lits_dedies_sp": "0", "um": "40 C", "igs_ii": "0", - "duree_rum_debut": "", - "duree_rum_fin": "", + "duree_rum_debut": "15/11/2016", + "duree_rum_fin": "20/11/2016", "nature_suppl": "0", - "nb_suppl": "0" + "nb_suppl": "0", + "duree_rum_calculee_j": 5 }, "dp_etab": { "code": "C349", "libelle": "T.M. DE BRONCHE OU DU POUMON, SAI" }, "dr_etab": { - "code": "C795 *", - "libelle": "T.M. IIRE, DES OS ET DE LA MOELLE OSSEUSE" + "code": "", + "libelle": "" + }, + "dp_reco": { + "code": "Z515" + }, + "dr_reco": { + "code": "" }, "das_etab": [ + { + "code": "C795", + "niveau": "2", + "libelle": "T.M. IIRE. DES OS ET DE LA MOELLE OSSEUSE" + }, { "code": "J960", "niveau": "3", @@ -2311,34 +2494,28 @@ } ], "actes_etab": [], - "dp_reco": { - "code": "Z515" - }, - "dr_reco": { - "code": "C349" - }, "das_reco": [ { - "code": "C795 *", + "code": "C795", "niveau": "2" }, { - "code": "J960 *", + "code": "J960", "niveau": "3" }, { - "code": "L892 *", + "code": "L892", "niveau": "4" }, { - "code": "R5218 *", + "code": "R5218", "niveau": "2" } ], "actes_reco": [], "ghm_etab": "04M094", - "ghs_etab": "1164", - "ghm_reco": "23Z02Z", + "ghs_etab": "1184", + "ghm_reco": "29Z02Z", "ghs_reco": "7992", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", @@ -2346,7 +2523,7 @@ "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -2354,7 +2531,7 @@ "page": 3, "type": "ELEMENTS_PREUVE", "data": { - "date": "8/03/17", + "date": "6/03/17", "medecin_controleur_signataire": "Dr DELAYE-PHULPIN", "medecin_dim_signataire": "Dr ETTORCHI-TARDY", "elements": { @@ -2420,9 +2597,9 @@ }, "compte_rendu_hospitalisation": { "present": "oui", - "photocopie": "1 à h + 5 avb", + "photocopie": "", "absent_date_1ere_demande": "", - "date_obtention": "" + "date_obtention": "15/11" }, "lettre_sortie": { "present": "non", @@ -2463,6 +2640,14 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patiente de 63 ans\ndouleurs pour suite\nde la PEC d'un KC\npulmonaire avec\nlocalisations osseuses\nInaire\nDécision de PEC\npalliative (#\ndouleur, soins de\nhine', auxiolytiques\nmypnovel)\n=> = DP\nDe dans le suivi en", + "commentaire_medecin_dim": "" + } + }, { "page": 5, "type": "FICHE_ADMIN_2_2", @@ -2474,7 +2659,7 @@ "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", - "avis_dim_final": "Accord", + "avis_dim_final": "accord", "date_concertation": "14.3.18", "nom_medecin_responsable_controle": "DR JP VIGNAU", "nom_medecin_dim": "DR ETTORCHI-TARDY" @@ -2486,7 +2671,7 @@ "data": { "n_ogc": "398", "date_concertation": "14.3.18", - "argumentaire_medecin_controleur": "136 : 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 le diagnostic principal (DP) codé par l’établissement dans le résumé d’unité médicale (RUM). Le DP n’est pas conforme aux règles de codage des diagnostics rappelées par l’annexe II, chapitre VI, paragraphe 1.2.2.3, dans certaines situations de traitement unique médical, en exception à la règle générale, le DP est imposé [règle T11]. A noter que « la maladie traitée est enregistrée comme diagnostic relié chaque fois qu’elle respecte sa définition. » Au vu des éléments présents dans le dossier du patient, alors que l’admission a été motivée pour une situation de traitement unique médical telle que décrite dans le chapitre VI, paragraphe 1.2.2.3 de l’annexe II dont le code CIM-10 est imposé, l’établissement n’a pas appliqué la règle T11 pour le codage du DP." + "argumentaire_medecin_controleur": "136 : 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 le diagnostic principal (DP) codé par l'établissement dans le résumé d'unité médicale (RUM). Le DP n'est pas conforme aux règles de codage des diagnostics rappelées par l'annexe II, chapitre VI, paragraphe 1.2.2.3, dans certaines situations de traitement unique médical, en exception à la règle générale, le DP est imposé [règle T11]. A noter que « la maladie traitée est enregistrée comme diagnostic relié chaque fois qu'elle respecte sa définition. » Au vu des éléments présents dans le dossier du patient, alors que l'admission a été motivée pour une situation de traitement unique médical telle que décrite dans le chapitre VI, paragraphe 1.2.2.3 de l'annexe II dont le code CIM-10 est imposé, l'établissement n'a pas appliqué la règle T11 pour le codage du DP." } } ], @@ -2494,30 +2679,18 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.79, + "score_global": 0.93, "alertes": [ - { - "champ": "dr_etab", - "score": 0.31 - }, { "champ": "sejour_etab.provenance", "score": 0.4 - }, - { - "champ": "elements.photocopie", - "score": 0.4 } ], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -2598,6 +2771,13 @@ "code": "", "libelle": "" }, + "dp_reco": { + "code": "Z511" + }, + "dr_reco": { + "code": "", + "libelle": "" + }, "das_etab": [ { "code": "C795 *", @@ -2621,25 +2801,40 @@ } ], "actes_etab": [], - "dp_reco": { - "code": "" - }, - "dr_reco": { - "code": "" - }, - "das_reco": [], + "das_reco": [ + { + "code": "Z511", + "niveau": "" + }, + { + "code": "C160", + "niveau": "" + }, + { + "code": "C795 *", + "niveau": "2" + }, + { + "code": "R630 *", + "niveau": "2" + }, + { + "code": "Z515 *", + "niveau": "3" + } + ], "actes_reco": [], - "ghm_etab": "10M183", - "ghs_etab": "3969", - "ghm_reco": "17M061", - "ghs_reco": "6487", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "271061", + "ghs_reco": "6467", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Désaccord", + "accord_desaccord": "désaccord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -2713,7 +2908,7 @@ }, "compte_rendu_hospitalisation": { "present": "oui", - "photocopie": "1.", + "photocopie": "1", "absent_date_1ere_demande": "", "date_obtention": "" }, @@ -2756,6 +2951,14 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patient agé de 86 ans admis par 1ère cure\nde Folfox dans le cadre d'un cancer du colon\nau métastase osseux (omoplate)\nNé en examen à l'entrée d'un IR pré-renal\nréhydratation et chimiothérapie néoadjuvante -\nchimio réalisée 48 heures plus tard nach\namélioration du bilan\nNé en plus d'une malnutrition paranoïd en\nraison d'une dénutrition modérée (-4kg, anorexie)\navec consultation diététicienne.\nAu total: La malnutrition est un problème\nexistant à l'entrée mais n'ayant pas motivé\nl'admission - l'admission a été motivé par\nle démarrage de chimiothérapie qui a bien\nété réalisée 48 heures après l'entrée en\nraison d'un IR pré-renal.\nDg: malnutrition du DF = 251.1\nDg E44.0 qui est codé en DA.\nAprès concertation pas de précision\ndans le dossier sur la caractère familial\navancé de la pathologie cancéreuse\nRqs 251.5 en DP.", + "commentaire_medecin_dim": "Patient de 86 ans, admis\npour la mise en place d'une\nChimiothérapie palliative\ndans le cadre d'un\nadénocarcinome du\nCardia Symptomatique\navec métastases osseuses\n(dysphagie, anorexie,\nperte de poids, vomissements, etc)\n- La chimio initiale a été\nannulée à cause de la\ndéshydratation et de\nl'insuffisance rénale.\n- Prise en charge initiale =\nhydratation + nutrition\nparentérale.\nPendant le séjour :\nPrise en charge symptomatique\npluridisciplinaire\n. Diététicienne et\nnutrition parentérale\n. Equipe de soins : soins\nrelationnel et accompagnement\ndu patient (diaphragmodèse)\n. Médecin référent en SP :\nhydratation, nutrition\nparentérale, antiémétiques\n- Chimiothérapie palliative\nA noter E86 en DA\n=> le diagnostic principal,\nSelon la règle T14 et le 251.5\nle patient a bénéficié d'une\nprise en charge pluridisciplinaire\net de soins de confort (relationnel,\nnutrition, hydratation, antiémétiques" + } + }, { "page": 5, "type": "FICHE_ADMIN_2_2", @@ -2767,7 +2970,7 @@ "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", - "avis_dim_final": "", + "avis_dim_final": "Accord", "date_concertation": "14.3.19", "nom_medecin_responsable_controle": "DR JP VIGNAU", "nom_medecin_dim": "DR ETTORCHI-TARDY" @@ -2787,17 +2990,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { "score_global": 1.0, "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -2811,9 +3010,9 @@ "etablissement": "CLINIQUE D'ARCACHON", "finess": "330780206", "date_debut_controle": "13/02/2018", - "n_champ": "0", + "n_champ": "1", "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", - "dossier_manquant": "0", + "dossier_manquant": "", "date_debut_sejour": "24/11/2016", "date_fin_sejour": "28/11/2016", "sejour_etab": { @@ -2860,15 +3059,14 @@ "duree_rum_calculee_j": 4 }, "rum_reco": { - "n_rum": "1/1", - "lits_dedies_sp": "0", - "um": "53 C", - "igs_ii": "0", - "duree_rum_debut": "24/11/2016", - "duree_rum_fin": "28/11/2016", - "nature_suppl": "0", - "nb_suppl": "0", - "duree_rum_calculee_j": 4 + "n_rum": "", + "lits_dedies_sp": "", + "um": "", + "igs_ii": "", + "duree_rum_debut": "", + "duree_rum_fin": "", + "nature_suppl": "", + "nb_suppl": "" }, "dp_etab": { "code": "N210", @@ -2878,11 +3076,22 @@ "code": "", "libelle": "" }, + "dp_reco": { + "code": "C679" + }, + "dr_reco": { + "code": "" + }, "das_etab": [ { "code": "B957", - "rang": "", + "niveau": "2", "libelle": "STAPHYLO. NCA, CAUSE DE MAL. CLASSEES DANS D'AUTRES CHAP." + }, + { + "code": "T827", + "niveau": "4", + "libelle": "INFECT. ET REAC. INFL. DUES A PROTH., IMPL., GREF. CARD. ET VASC. NCA" } ], "actes_etab": [ @@ -2907,18 +3116,7 @@ "libelle": "ABL. CALCUL/C.E VESSIE ENDOS." } ], - "dp_reco": { - "code": "C679" - }, - "dr_reco": { - "code": "" - }, - "das_reco": [ - { - "code": "", - "niveau": "" - } - ], + "das_reco": [], "actes_reco": [ { "code": "JDFE002", @@ -2937,17 +3135,17 @@ "niveau": "4" } ], - "ghm_etab": "11C113", - "ghs_etab": "4160", - "ghm_reco": "11C131", - "ghs_reco": "4168", + "ghm_etab": "11C115", + "ghs_etab": "4169", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", - "se_coche": "SE1", + "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -3027,7 +3225,7 @@ }, "lettre_sortie": { "present": "oui", - "photocopie": "6.", + "photocopie": "6", "absent_date_1ere_demande": "", "date_obtention": "" }, @@ -3064,6 +3262,14 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Admis pour Resechon Endoscopique de Tumeur de Vessie RTUV\nCAO du 25.11.2016 -> lésions Tumorales multiples localisé à la face latérale du Trigone\nUthracse fragmentée et Uthotritur\nlaser.\nHistologie = Carcinome Urothélial Papillaire de haut grade de Néoplasie grade III\nECBU. Ø leucocyturie\nPas d'Antibiothérapie\nPas d'autre injection relevé aux dossier.\nDP : TM de vessie C67.9\nDAS lithiase de vessie : N21.0", + "commentaire_medecin_dim": "" + } + }, { "page": 5, "type": "FICHE_ADMIN_2_2", @@ -3095,17 +3301,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.99, + "score_global": 1.0, "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -3120,13 +3322,13 @@ "finess": "330780206", "date_debut_controle": "13/02/2018", "n_champ": "1", - "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2.3 et 4 mono RUM", + "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", "dossier_manquant": "0", "date_debut_sejour": "22/11/2016", "date_fin_sejour": "28/11/2016", "sejour_etab": { "age_ans": "86", - "age_jours": "2", + "age_jours": "", "sexe": "2", "poids_entree": "0", "duree_sejour": "6", @@ -3142,7 +3344,7 @@ }, "sejour_reco": { "age_ans": "86", - "age_jours": "2", + "age_jours": "", "sexe": "2", "poids_entree": "0", "duree_sejour": "6", @@ -3168,15 +3370,14 @@ "duree_rum_calculee_j": 6 }, "rum_reco": { - "n_rum": "1/1", - "lits_dedies_sp": "0", - "um": "40 C", - "igs_ii": "0", - "duree_rum_debut": "22/11/2016", - "duree_rum_fin": "28/11/2016", - "nature_suppl": "0", - "nb_suppl": "0", - "duree_rum_calculee_j": 6 + "n_rum": "", + "lits_dedies_sp": "", + "um": "", + "igs_ii": "", + "duree_rum_debut": "", + "duree_rum_fin": "", + "nature_suppl": "", + "nb_suppl": "" }, "dp_etab": { "code": "R630", @@ -3186,46 +3387,73 @@ "code": "", "libelle": "" }, + "dp_reco": { + "code": "Z515" + }, + "dr_reco": { + "code": "", + "libelle": "" + }, "das_etab": [ { - "code": "Z515", - "niveau": "3", - "libelle": "SOINS PALLIATIFS" - }, - { - "code": "R5218", - "niveau": "2", - "libelle": "DOULEURS CHRON. IRREDUCTIBLES, NCA/SAI" - }, - { - "code": "E43", - "niveau": "3", - "libelle": "MALNUTRITION PROTEINO-ENERGETIQUE GRAVE, SAI" - }, - { - "code": "C797", - "niveau": "2", - "libelle": "T.M. IIRE. DE LA GLD, SURRENALE" + "code": "R630", + "niveau": "", + "libelle": "ANOREXIE" }, { "code": "C795", "niveau": "2", "libelle": "T.M. IIRE. DES OS ET DE LA MOELLE OSSEUSE" }, + { + "code": "C797", + "niveau": "2", + "libelle": "T.M. IIRE. DE LA GLD, SURRENALE" + }, + { + "code": "E43 *", + "niveau": "3", + "libelle": "MALNUTRITION PROTEINO-ENERGETIQUE GRAVE, SAI" + }, + { + "code": "R5218 *", + "niveau": "2", + "libelle": "DOULEURS CHRON. IRREDUCTIBLES, NCA/SAI" + }, { "code": "Z511", "niveau": "3", "libelle": "SEANCE DE CHIMIOTHERAPIE POUR TUM." + }, + { + "code": "Z515", + "niveau": "3", + "libelle": "SOINS PALLIATIFS" } ], "actes_etab": [], - "dp_reco": { - "code": "" - }, - "dr_reco": { - "code": "" - }, - "das_reco": [], + "das_reco": [ + { + "code": "Z515", + "niveau": "" + }, + { + "code": "C795", + "niveau": "" + }, + { + "code": "C797 *", + "niveau": "2" + }, + { + "code": "E43 *", + "niveau": "3" + }, + { + "code": "R5218 *", + "niveau": "2" + } + ], "actes_reco": [], "ghm_etab": "10M183", "ghs_etab": "3969", @@ -3237,7 +3465,7 @@ "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, @@ -3251,60 +3479,60 @@ "elements": { "compte_rendu_acte": { "present": "oui", - "photocopie": "10. M-12", + "photocopie": "10.11.12", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_operatoire": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_accouchement": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_examen_complementaire": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_imagerie": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "compte_rendu_anatomopathologie": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "observations_medicales": { "present": "oui", - "photocopie": "3 - 6. 8.9", + "photocopie": "3.6.9", "absent_date_1ere_demande": "", "date_obtention": "" }, "dossier_transfusion": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "dossier_anesthesie": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "administration_therapeutique": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -3316,31 +3544,31 @@ "date_obtention": "" }, "lettre_sortie": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "surveillance_dossier_infirmier": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_psychologue": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_kinesitherapeute": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" }, "prise_en_charge_dietetique": { - "present": "non", + "present": "", "photocopie": "", "absent_date_1ere_demande": "", "date_obtention": "" @@ -3354,12 +3582,20 @@ } } }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Admise pour prise en charge d'une dénutrition. Poids de 40kg en 4 ans. P: 42kg - T 161m IMC: 17. Cancer du sein avec Metastase Osseuses. Chimiothérapie palliative par Xeloda 14j jours sur 21 (RCP du consulte le 24-11) Consultation Assistante sociale Traitement Antalgique : Durogesic pas devaleren Validation soins palliatifs : Soins support : Douleurs ⊕ Pas d'autres symptomes Pris en charge Pas d'accompagnements Pas de Nursing Dernier therapeute = Marche 2 Soins Support validé (douleurs + dénutrition) - Pas de chimio 0 durant le sejour DP : Dialyse Vénue Réanimation Ns sous Nutrition Parentérale Encod DAS : 251.1 - 251.5 Après concertation les 3 coms appareils ont pu admettre les 3 choix : Yohimbine / morphine / pec sociale. AF 251.5 en J0", + "commentaire_medecin_dim": "Patiente de 86 ans, hospitalisée du 22/11/2016 au 28/11/2016 pour une prise en charge palliative d'un carcinome mammaire polymétastatique (os, surrénale) avec une prise en charge plurimultidisc → Prise en charge antalgique (Durogesic, oxynorm) + Perfusion d'cuédia pour douleur osseuse persistant → compléments alimentaires Kabi ven 1,5 l/24h pour dénutrition sévère. → Hydratation pour insuff. rénale fonctionnelle sur toxicité digestive de Xélo (diminution) avec diarrhée et anorexie → Prise en charge pluridisciplinaire (Diet, Kine, AS, Equipe de soin) → Soins relationnels et accompagnement (trace avec le diagramme de soins) → Repos chimio pendant le séjour Au total : Modification de DP Selon la règle T41, codage du DP par 251.5 soins palliatifs. Le patient a bénéficié d'une prise en charge pluridisciplinaire et de soins de confort (hydratation, compléments alimentaires et antalgique, soins relationnels) Maintien du 251.1 (douleur de" + } + }, { "page": 5, "type": "FICHE_ADMIN_1_2", "data": { "n_ogc": "413", - "date_concertation": "24 3 18", + "date_concertation": "24.3.18", "argumentaire_medecin_controleur": "136 : 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 le diagnostic principal (DP) codé par l'établissement dans le résumé d'unité médicale (RUM). Le DP n'est pas conforme aux règles de codage des diagnostics rappelées par l'annexe II, chapitre VI, paragraphe 1.2.2.3, dans certaines situations de traitement unique médical, en exception à la règle générale, le DP est imposé [règle T11]. A noter que « la maladie traitée est enregistrée comme diagnostic relié chaque fois qu'elle respecte sa définition. » Au vu des éléments présents dans le dossier du patient, alors que l'admission a été motivée pour une situation de traitement unique médical telle que décrite dans le chapitre VI, paragraphe 1.2.2.3 de l'annexe II dont le code CIM-10 est imposé, l'établissement n'a pas appliqué la règle T11 pour le codage du DP." } }, @@ -3385,17 +3621,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { "score_global": 1.0, "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -3410,7 +3642,7 @@ "finess": "330780206", "date_debut_controle": "13/02/2018", "n_champ": "1", - "libelle_champ": "Champ 1: séjours ayant des caractéristiques communes séjours de niveau 2.3 et 4 mono RUM", + "libelle_champ": "Champ 1 : séjours ayant des caractéristiques communes séjours de niveau 2 3 et 4 mono RUM", "dossier_manquant": "0", "date_debut_sejour": "01/12/2016", "date_fin_sejour": "06/12/2016", @@ -3421,7 +3653,7 @@ "poids_entree": "0", "duree_sejour": "5", "mode_entree": "8", - "provenance": "8", + "provenance": "", "mode_sortie": "8", "destination": "", "nb_seances": "0", @@ -3476,36 +3708,49 @@ "code": "", "libelle": "" }, - "das_etab": [ - { - "code": "R33", - "rang": "", - "libelle": "RETENTION D'URINE" - } - ], - "actes_etab": [], "dp_reco": { - "code": "" + "code": "N40" }, "dr_reco": { "code": "" }, + "das_etab": [ + { + "code": "N40", + "niveau": "", + "libelle": "HYPERPLASIE DE LA PROSTATE" + }, + { + "code": "R33", + "niveau": "2", + "libelle": "RETENTION D'URINE" + } + ], + "actes_etab": [], "das_reco": [], "actes_reco": [], "ghm_etab": "12C042", "ghs_etab": "4519", - "ghm_reco": "12C041", - "ghs_reco": "4518", + "ghm_reco": "12C042", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", - "se_coche": "SE1", + "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Accord", + "accord_desaccord": "accord", "nom_praticien_conseil": "DR JP VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Patient agé de 63 ans admis pour rechute\nhémorragie de proche.\nAnapath = hyperplasie prostatique adénomyomateuse\nSuivi opératoire parfaitement assuré avec\nreprise de miction à l'ablation de la sonde -\nPas de notion de rechute urinaire dans le\ndossier médical. Pas de sondage\nAu Tshl = Avocat D9\nRefus DAS R33 non pris en\ncharge", + "commentaire_medecin_dim": "" + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -3635,7 +3880,7 @@ "n_ogc": "425", "ghs_initial": "4519", "ghs_avant_concertation": "4518", - "ghs_final_apres_concertation": "4548", + "ghs_final_apres_concertation": "4518", "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", @@ -3650,22 +3895,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.92, - "alertes": [ - { - "champ": "sejour_etab.provenance", - "score": 0.4 - } - ], + "score_global": 1.0, + "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } }, { @@ -3743,19 +3979,25 @@ "libelle": "BURSITES INFECT., NCA - JAMBE" }, "dr_etab": { - "code": "L024", - "libelle": "ABCES CUTANE, FURONCLE ET ANTHRAX D'UN MB." + "code": "", + "libelle": "" + }, + "dp_reco": { + "code": "M7106" + }, + "dr_reco": { + "code": "" }, "das_etab": [ { - "code": "NJFA008", - "niveau": "1", - "libelle": "EXERESE 1HYGROMA GENOU AB. DIRECT" + "code": "M71116", + "niveau": "", + "libelle": "BURSITES INFECT., NCA - JAMBE" }, { - "code": "NJFA008", - "niveau": "4", - "libelle": "EXERESE 1HYGROMA GENOU AB. DIRECT" + "code": "L024", + "niveau": "3", + "libelle": "ABCES CUTANE, FURONCLE ET ANTHRAX D'UN MB." } ], "actes_etab": [ @@ -3770,20 +4012,10 @@ "libelle": "EXERESE 1HYGROMA GENOU AB. DIRECT" } ], - "dp_reco": { - "code": "M7106" - }, - "dr_reco": { - "code": "" - }, "das_reco": [ { - "code": "NJFA008", - "niveau": "1" - }, - { - "code": "NJFA008", - "niveau": "4" + "code": "M7106", + "niveau": "" } ], "actes_reco": [ @@ -3796,20 +4028,28 @@ "niveau": "4" } ], - "ghm_etab": "08C422", - "ghs_etab": "2857", - "ghm_reco": "08C421", - "ghs_reco": "2856", + "ghm_etab": "", + "ghs_etab": "", + "ghm_reco": "", + "ghs_reco": "", "recodage_impactant_facturation": "1", "ghs_injustifie": "0", "se_coche": "", "atu": "", "ffm": "", "fsd": "", - "accord_desaccord": "Désaccord", + "accord_desaccord": "désaccord", "nom_praticien_conseil": "DR JP VIGNAU" } }, + { + "page": 3, + "type": "SEJOUR_MANUSCRIT", + "data": { + "commentaire_medecin_controleur": "Admis pour Surinfection d'un Hygroma du genou droit CRO du 05-12-2016 => Incision en regard de la callichion Ablation de toutes les Membranes lavage + Mise en place du lambe - Bactériologie Négative Encore DP: Abces d'A Bourse Senese - Encore PAS: Pas de Prise en en charge supplémentaire pour Abces du genou DP: M71.06 (abcès des bourses serenses) Pas de DNS 3 code plus précis", + "commentaire_medecin_dim": "Patient de 35 ans, opéré le 05/12/2016 d'un abcès superficiel du genou (Evacuation de la collection Superficielle) , Cet abcès est Secondaire à une Surinfection d'hygroma (Exérèse d'hygroma du genou). le DL le plus précis est en effet le M71.06 pour Surinfection de hygroma l'abcès secondaire est en DA Maintien du code L02.4 - le CRO confirme la prise en charge de l'abcès Superficiel et de la surinfection hygroma - le prélèvement Bactério parlant de 2 localisations 1/ Collection fermée 2/ Tissu Genou" + } + }, { "page": 4, "type": "ELEMENTS_PREUVE", @@ -3943,8 +4183,8 @@ "maintien_avis_controleur": "oui", "retour_groupage_dim": "non", "autre_groupage": "non", - "avis_dim_final": "Accord", - "date_concertation": "15.3.19", + "avis_dim_final": "Désaccord", + "date_concertation": "15.3.17", "nom_medecin_responsable_controle": "DR JP VIGNAU", "nom_medecin_dim": "DR ETTORCHI-TARDY" } @@ -3954,26 +4194,13 @@ { "page": 2, "type": "FICHE_CONCERTATION_VIDE" - }, - { - "page": 3, - "type": "SEJOUR_MANUSCRIT" } ], "_audit": { - "score_global": 0.85, - "alertes": [ - { - "champ": "dr_etab", - "score": 0.31 - }, - { - "champ": "das_etab.codes", - "score": 0.35 - } - ], + "score_global": 1.0, + "alertes": [], "modele": "qwen3-vl:235b-cloud", - "date_extraction": "2026-04-21" + "date_extraction": "2026-04-27" } } ] \ No newline at end of file diff --git a/output/rapport_timing.pdf b/output/rapport_timing.pdf index dc9cace..cc27ca5 100644 --- a/output/rapport_timing.pdf +++ b/output/rapport_timing.pdf @@ -107,7 +107,7 @@ endobj endobj 14 0 obj << -/Author (\(anonymous\)) /CreationDate (D:20260421112058+02'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260421112058+02'00') /Producer (ReportLab PDF Library - www.reportlab.com) +/Author (\(anonymous\)) /CreationDate (D:20260427123928+02'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260427123928+02'00') /Producer (ReportLab PDF Library - www.reportlab.com) /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False >> endobj @@ -118,59 +118,59 @@ endobj endobj 16 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2001 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1990 >> stream -Gb!#]gNM:1'Rf-po[^Bb`K?0u2K-:U:-),''%3\Z`?N.?d(quW9W*A)OtFiiYq4gI_?s[m[*RU?SW+cuWs:)G*t!\XNR5X7JdA$s,9e[IB_2H;7_Rt+0p)MMO[2Huj>%mHaAbCSN6CAV;bnPJ$`^cS$4mb?2'@F(,EMmudo<`9VW_hU=fn"U/XjDB/10uGRiG.D[*=NZ#2K;No_^4Hd.;bLIA$N;r*d=p9ja[C:GdBMc@%+[o=K=UEMZg&/$6;oPa0rqWb7sl-moE$[+8#dSg,?oQsB[rJaOpbI7YN"T;OQG/f*5N6-q:Xs1+J8X?InCs)n+9[jVgq`'foeBr5Ied7k/n+A$iN2101iaKQ*ZN<6RF7a#42b@)6&nXEf]Nks1lGs@]%j[te+#f7.n_F^(*$(PQt9c,0UU-q3Jf*&HSP,d'LBu1aakSt;A*'M%#,oOl[+TJ;+,$MUWeZ0a6$p,LG%Y2Mg_m\n&:ttYbJ[VWN5U1$d%1hlqXa%mQ%qk9_5]>qnpcp\L[AogLa=bej=a17-3B&.9(t(UbMW,)Oe[h\fHPT7Io^M(bTVQuoUnVcR*I5j_OJXcXOh47Qmp*d;f"MR&?)"lGOso`3O&uJFEb0bCi_G*'l"W"N[0-GJuX)qQE+$"T'fFh5a1Rn?`4Yg>6NfU]/$#%W^+qWY0)iFtJD>d;&X-;4AD526sFq*u8,*pP7)E#=+Z?'S@TOUga#W"ed7PW*+=T+@m21:G8FQL?-X@X`BPA4Ck^",VM)4%/l.(*oGe16G8-AF&oNm--)aNE%%O`@G)#]eKGe,u#=WZnsc;aAhU/e!r_#^C+$I0B:W>Bl/hs\#Q8Z9g^YVT+=84fVrcu/_#ZZAsCE1b38JUP%G0$89OS<("q8Mj+bT*C*8iQ'>Bm^^:JS4(IaAHes#j%.Pf>WDW331^"'HQWIo,`YMn\bUVbVP&H^u-A<:a,$cha@WUS.JeMA&[n%,+K"W=:iP%[UrqocE>;9q_@RU/TSp&2;?/:]dTrojL1@IM6^#STeJq%@60kg?hiUC:h+K5hitO(MLFgg9\;[+m,S^l5O#:M_eYtP,'-@#00'aQ.#RK*R?p9LFnfs=/r7'/?3F;mVcA5JjEP[`m!\_0`dSf?J"/(?QnR5?TC1(6)1j5p/"\#rU&P69D:AB7n)8#PEQ-&S3l)>**Ye>[:ZsaZ-MbCLsqUBTZG+2A-?<\cHQ"g#.m]Ag0WZUUA0pR&mmJ^'B.ucg#WdSZC>Jj05#+f%Pg`;Ra'?JH9Q\^UIDUb\WRZlALBU8Qe&l]"*:I["?B!fdb6MIF5E#cDinQmIm8l&"5L-'2dJtOI;:V+a(SAFg&:PV(h8q4+8VH^&J';+F9F~>endstream +Gb!#]bAnL]']&?qg;QXKgX=WQj]roQj%Seb(h_q[$CeJZ$k4%4PKD^Ce.8s?>:j5?V@5;m3qjW-m\(d0lN\l2mrO0=NR?ELJdA%>"!T:)B`&#Ca+L8jW?VQl6@g=OEg[IbPjYH=ES8!M*,#Ia6$;p,!s0[G!cEU$V%m'`<2mR,HLg20!YN-GS3WT=1.DpJ*-4.Udq:4ap'@fllBY]1[$SVnL0o.ZCE.I^^beK\>YdH(JlE;6cP7MfM,'GgmR`FU.1;fZg^n5%ZjpWpj&6-[OT-`BeTN7=,:4.5ZimqfPYcri/@OZ[c9Plh/1LgU]KBTWF?B9L_#R%U%RiF\jO9g&ecCm+*Z_+CS!>F)_mBXM-Be16J9-AF&oNm--1aP,67O`@;%#dW_0l2f('<=rKm.FZ22SXO"4d4*MIiIK?Q%HeY&Xr(c!he`c$,W#]JfGQ)/Ua4At(r(KVfr7/p$.a"kS>-D(fY6-Fo>jBHDCG3eLd*,;,K#D$hAIHcIJKmn5mo(C>bEkEc\)Y#L&8iefkO3:N\-V'/Ll?!=E!`D&8@6W/#@K%sqT>'rOqf/Rn8<+3c%tZc'6JcfK%Q+ro3E:is@+9=Ka5jB8%\!RY0Dsc`\SIQ7kJ-BT[e>UQgO-W3:5'oaoR"[o,h$DGm]5l@[.0iWePp\;AqFMKR;XmL@l&gW1PKD]ZDG?"#.u6I^&6AOmq6R%",L^+9)mRL1h.6lT0RCJ$(!p[$7*"[#MnK^%B.q^kA_H>^V6(7N=Q.c'`^iK'qdcbW%`-6SuVN;9Xi"3>YV]$l9jt4q^8X_!A_25khWBg0YOYkI$NB5mMOdd5QV[92%3aJnHC#Sm(h)e!;6_S$"6R'EU"$^,)s'n#+%H$%O0>@&h7ggBLgL>rRL9_eSDOXbu2L+n=J@2Q;FU1BWft[]3ffg[+hlP4:6Wq]K9U?1ulOp!'Tb1Qgn9Xm*lcj*`q=a+9qYfVegb6oqMbf`MKcG>2RLKa"A$d,RLbp&1r%bo)?B)-9haYMQ+2`P=[MN@,ASl)jTjb1JCiEJo1jbKXPhEie0u!U*H#Y\bPJA)SPhBC53O>D9\eo9tcR):G^FHnO@i_QlVQ/mfCOKQ-Z"=lnpK*]UrU(5#dV.8b0"ucc-?-o'niT!X7U,N7GCQtX6.L1gP_plki8I47-XJ55#-ug1]^D&NSa5]_Q\U[q4S?/rW=KbH(+~>endstream endobj 17 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1684 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1667 >> stream -Gb"/(>uTK;'Re<2cm.odWkN'97YBs&$_\$,:X!@T1be/,@"Xm8rqhtqY%>YZ@deL(lt/#7R!WpsYB4WP*%3#n7C1l1CP:QbkhR[VPbIjf;1Sn.cVP=:rYX#aW>JYZ$RsLr@N)8nN&+n*Kf=3#_a&d;UNgV]3MJ>X9^*$>5)^)?!IjlkqZb$s;#E5Bij3o1dqF=8V9Aq=KJa2K[1\q&k.@&V+WV@'84\c;i#Ecc!,\%cp8oK4?R7$AD&=A$@X_o4L+kFFB-sa'H'lM#6>ONN[42]jCbt&6b#;],[el2_V,>9*jEQCgRjG9c[.[tP9\X8[WGtqEOK@20&f@/[=Lsg`d8=D3Rb9gMZ,t]5B`VjgR8d,r:9DR?r$(a9c%R)K4QHqu(>7BL,/?,jOC$DA]Q)fc5Mfpf+BUU6mXh=ngj.'_-]-OO-+\A)^YJ"uKRl_UI)K@(oDno)I_Le\^pGdkN9:$(_[(>U*KKH.oup2bn'P\^,'JLdr_+l9"`Y*Ma1WK#.^J\?[mT9j6KT]*6fo"Jk.J,ijq:"V?4X$`#]!Rr<>)m/KtkT!+kjgPNET>rp.Z,VEoa#A/9@:E<*h]7WWBlNEa:Ea*CMl8\\DI::)n>10Gk[2-AIp[!O5g?-lEo1'$fc1B&Sgc_Br01cal.Nf'>jH^4Z);E1=G3^=d:GNoqtXl"cdqe"Q3k`n`":A5&kW`o%DFr"&YRI#lDf6N]/OQnS$jU!k<"!NV!GJCB2!Y!"LdX.W`\s2ZRq)lO0pF92ncC:Yl~>endstream +Gb"/(h,E&f&:`#5Th!fS<.2sLN<[j)O,l2d4u&6mBjf@6^]cO-qsR>[P%;V=@eWds^gnQbG5%ojeU"X8_#W^9cMq7T!-k,dGK1P.!g4LQ).XjM!HBmkH\>$e6(h%B@3>`/=:(hc1`>E9p$G9p?is"eZI47;?sE\DE-pai`W3osD`;T"nf8uoZOK+aQeb%R(^Znh\R<]0:eAJK#0hA*m6>\h.A3n)RN"&'",)hIam0Xu:<^UZ9"GEC@sRFFoKf!1APqhU*)"q!3"d6rt8W?=?/TPS-WA5nFY*M!YlS'foap!/W%-[k9^P1S!Ler?*sinV.tIJ=q@+E*Tp6H(?s,!RcaFI^^/i;@+XMQp(+@K'$cTn'h2XnPj8-JZtCH,nT=M4m(&`Mgs1JI$s7q=*s+[?G.5P7u>ko%j`5RQFHT!`K:T"7#BGI(h=4Wa^XqA(&55I:R=#`lZp'h(_i_k**sfB0-17>oZ5A=HDh<"'OP:u:Bsog;S6lAkHAE[!qQGdT=]@2K(-*sTkW;fOsuoAq!;bb'H=E#$GUdWo"HY3I;Ome-_@,n(9n^b?g*`dbq5Bfs+g-R[`aYi+RkhuL[;<_Rb*NU;Jri@g8CL!cAI_1l*uB%>kfl/ZYMAfdqoY"FN1OBG&4ArX6-PAE%s8`1S&IfOt>p,AZ1gm.g]SJeD?VY73LM)qij67iR2U@1r'L<]#=k:jT1cF\Vbl.]$,;Zdq\1^%&:ZJeB@eOLS?[`;$S<6\m_lP',T1Srj5/164)TDkk2+Dgp%_M'=06glZPm!/K`s>Io*k)ocn?sRSE#LH6`-8<_k6S8d=R*'Y%&9`;qsCGep0jZF]5:_bWU8_495gF=endstream endobj 18 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1684 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1707 >> stream -Gb"/)>uTcA'Re<2cm-.YBVd6$Z?Tl3fk/FJ2OJo%-Bk`daVFsfB%m7]b$U=&aB%X/jWTfga1b&FpKktid@!g!oS;T/Y7lRQa6:u,72/RGK.+b[`@!'k7t6P4M3J-u5sRGnS7/E!V;#]?L):'GV3K5sYPR_N#RdBeV.ffgrA)4urKY\5Js'Tsgn>,S^s%c(\[aG,dX4g6@uYHfo`V<5oNg,\PdSa6jreode-U63-ZHfnbULe3IGJ)&PN6*hN:PR&JuBdaj.4cFc92Pr$gBA*M4[j&\4hD"r-+lb5u-Z-WR[gQm,Y*QWVR3P&[Orr/EG=/0SuBPe1SFcqn[ir]Piqh4EjcAESqIR(bmGMTOfjWRuPQhQ-L.%@Do&KVM70+@eok9YC[AOTapoHBd_/I$o.\mgNS:]5lQq*M=[D19*A.O3U8YZ1t*US(ug<7JKdr11"Qb>`u'g,o?-lGK8S8rpVd*(nf!=Phn!'LOXS&u@8F'n@jt<4kaCFT=WApZ_6\Gs+ri%tj"Xl&I)9kVjRb>)OUIO6`JoPcc.flf>qs"#"7aZs#&Q=+c7#oK[_F$cU'[I.qTN:BM)A8Dg85IXN#2jtKO&^b=(-F7O][X9eu]./]2T2j\=C)2?=GgNB''WR+/i$MJ+`DYdFYP\p.(6>)j#H[=MDDiI>,j`Qd$2(!!5a6_BE82D>s_bc=@PRTr;@ZWJNd>1'W_:02B.)md8T@HY9UK2ugQ,5hc>59HTAS(V_5Dk\r9?$%`cBib=0n098r#@CP5FAT-&>h^b,9[I\$A;QDIIY[`Xts`!]4qlq2j`h#lD@SkVf!^O.`Z*&.@5n:j0IOuYh_&tLJs*8D]=(b-`STO3^)[B'k/8Eih2GT^La[J6d)cX&.EhLW2fM`")4Ch6_nRXO;kq7a6/pq;J$V`&>*OD%&SDBD><-;mKBa:Z#fD,8[*)5J2G]J6kq`[#t4H:dM8bUeaLZYW7VFZqXEB%S@`4A8-SA8TYlA`>>k!e*-A7-Tff"T:LORjVp>bD'(pdY`jTTjCNiXdF\!5l0S'3m.+UJS]'?@R:bd'DBgfegg\bAeh_&ZV:PH4bsL0L]ltjU[8!i![Eb8i$`J1gA>u'W6+=Z(r`PRl0XPi3'LQYY98;$cedO'U/#Ql^@O;A!-$>.S*0u-,&.KN(RfEA]+koaKUd43ZlpSa^B_[(5LAfZ6f+8BO*&-&!N0b=iH,=a!iD)52Mh^Qqj3:"[Q9`bV\J#ErU>\j(ll_[`lp='6gtE#\--Q?q>;cn7XXfHKfZ$'8<5\a=ZU#+i%CT?k@$&G6]eq]m)2W37Kl)@U-FZ2'>Bu4A`NNBI?cNuZH-endstream +Gb"/(?#SIU'Rf_Zi+#t6*5s:;>ku.T"9:`k(Pba=kDZ>0]5-?/8'J3n\MSUtZ>NXo+\`=KNFA*9$0:MjS:(V^nUL0$1U(#""L^G\0I"J);oPHu(UaA&tM@(U2MJ9"Ue'Bl2:b/4gg3d8bNp^c!0L.sF/-Y5#J-K]#6oXR.;#;^s!GTIH+tMf:/B!Xk9_fosf"=,-_q%3pJTYa/T")'`bskspRZhY:>*C4772SQr1^jOjc*3pOba2n_8/"7`3'hJCY.19W4K!*pr"[3>$Cn4XB4o45es^?0_$EsE6l[oP'cBY)(32392]#Du2U:jXILqL5H^t?]'/?A[*t:g5.=#7S8Qhe[+^NkT#>ls;"UPiQ#Os2dp+(trf4_7'miV*H))N!q/D?#4c>+n9-BEnsQfWY,\li;ldac7.)D/hRKEV8=6.$U3Cd"qVE[X9=KZ\``6s`I4HG+]4%pFQ/6GND[jb<=*mbp2W"2Vht@i&SMNLcE[@@EX=?_ZlLjS:Fc'*aW@j,s3!f`V/Iq>34i!RnpP(n:!#%jT:kI'9^UUYiCZ-+jr0.V,6P(G2n&>$9h7%T",Fh\sOW#rPt)M:cPMX(oe3GFDAI2$`o)[BpVb(;;9W$,A=]Tl3c5tXYqGB-`#BD1mY:K>hB]"=/TYOG6!lE16^i83<&g&!N&/5R:J2A[,V.<]gd'ZC5piV7?6u6m)!=a3@DDhjW\!+%5lefPdGce6=#8;1nR4#b@l4M4WROAroBIKJ;T"r$F$Yn!W;GbK=*_R$OH@b"i*7(anaU8R`1'Po_`P)H$U0IB*c1"ojnEU/&nqD6,7)!C?[3F,7k2%pLFTGMs03sj_TBlG]n?eR8)`0oUm.7^@WmgiWMVt!-U#gi+53!;?L0r0??X<_DXsnn6!8;G-'aWp5h-.+Y^9$tP8\m$RI6"]Q+Z4s$M;`67h8Xe/iOQp*\&&6?6fJ"9W_9R*3AV$(7E(`#,$R%]>^ihZR0rQ9au!=J;71Honhm`?E)F&*24\+pdi`a)3l*4F60YdKZ\We04/=tiUnJV.7T'jAck;q>;[La8QmPPD?CL%/E[:-!HdF05l)i!R+D&@.Rm/1h?:aWiQM7khVpP.Y`0^K@;1o/bd!GJCBUun)Y"MD0OVuf$pr+t^S$sdVimD?P%._12G5UU\VRkH]&_+`S!$O!Qg$3Y#q-P1UkC]m(cQhc/sOk%c2gW9[?if^Q7\t8W)D)/RR!D\j)#6`s-+0]e#]M9h>GOPV6lgY"lGk1Z\0/UlM2IPX4WINAKo9k+/m,r:fG+$NphR:W*el!$jbi]&9fk"J'YjAam>iKqM2Lf%^'t;C=#7;J=4?A4A"jtY/M#ld?9+4uEQ5Htj/2:%(/SObek^GuI~>endstream endobj 19 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1680 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1710 >> stream -Gb"/(>>O9='RoMSn09_%*oAW`0dY%eQHO(No7U(cR=[ImJLs0oqsW-.*'7l*\1'`eD,m6'cKCC4HsE;i*uH-l_StEu"TY/nnECbl9L*n+0S9e0-QktcIh/bP8d(CjQiWm;`*-h1cBt;;)A1>D>M]kXbohuGitQN'.G2ZJ/8*o'UN)[9/4>X4Urt3";5[CcF_X0m&ZA7V5j[i.aG]:+G&kgoC3CGU3k$`W*r,faT-4*BM@bjce)l2$UZ$.5A9`P]9ZH=*3]]KpHlj@TiSdlf83$.70n'HSM565H9Ki$*&/iJcXrsQ3HL1S'ra@gV[H%;j[Q#2IdK)"aYNM84am%d;ji)1$9"WPn_rBo@kQ^93Ca;/5/WN9JF26i^3DIfIMoiGJEqqjr4?!Vr=EY1s<=@;&kF`?8[H0i%jXlX^"."l:nE=t92SkTC2-o>*7`DFjTVN%^noE+N]VIuPfQSs0'o?L%%DjOi9ri;tZ(,>QV0nL*C4:XB+@dbb$s)9+?NuUD?c??*^nTUgn%aXfiV'DO^:S>re@b6glScE/P%t8C<>j$+>;MYIb$aqtR_`6/#.'NE%-G]e9Pdjh&?6*S!`lCis4ge+G"*Zt3Tms'>rXY%XISM0ln5C8O5f8*RNPF?1EHfNU#Lsl/Zf1!+LM3uo=-58bB3T/!M/JHM%(:2!NM.*E8s2!44V^njnR0bXLYUtFJs=9TbpCYV=Qta&c7CO'9a.l@,uj\5pKjfb?KHUjCm2(NQC)9h>]Z_a7#-s##H8jS.,jU=@OEg%,">)N`]l2BSfoqD'c,3!o=@]+Cj"[`#IeHRGSB`q^l"]\bpT"g/`IWZ+.h[W'[4hqg=-R6rRBXCrY5i+DVUF/Wd0/rKG+[#tk1A'urijok[I3McnUBdii*%*h4g)8R_7HA!29m(rJX%`7=Y=@5bH4BE4eQ,B-0<#>I.qSc/-AB62UAgLqE;Gq15B"E$9nXEc\ptuE_k=CLsfX_C"?s+43qlQ0Q5QcZDCQ[!L?.%"2dg-+S?eS.j:Xg=$]'OMe\8U#ps.%$Dgu&V0POAO3g*"ZsQI;F3^ZS47H@"!tO<1Oc,S1upeGjO]J%fD\@QP72Yu+kTA@Rn8?Bn/k^j$T.~>endstream +Gb"/'hc&8h&:Vr4Th!fS<9q$3)\&[2?@cE:I:=OeUOc!t!#NNEm_;!>QIg;AX>lG)*\nU(m/=61_D+R6(R/Na^B_\#(W96JS(l%a.qU3l/_?tA99jU'C$Z.[)Q'A(e!S_+%R-ae.;gTaob0]1hJ:9J@to_!R.>6g&Cpe@$+Q<$!R?MIi;^LIMQ?bd%Us*/NU?o+GBQ;GQ;a3I\4DkMt#[cFWi8i<=^3!RMW6NV:BJq;JF9ujAL4&0b_2.68!ut-iTn9eG1@=QH"qTMArXNApHQD!&h7q?kZ;f0]h93ROTq+#hQe--m:(k7'2Gl;$e+*Gsd';4Y(2t=MC^UNifX`g`^sKm[\bE,%boWiVRb-[G00G^(HSeh(VHAAZ];9Y-sA\mN%I'DnWgs+"!jfd^Wo7\'[l\>]\ot/#(^A*Gm6+?EYQ!L"FS8?KUo0(5WJ15)OIGfFq;:.Sc,$9.%`P:TO2_PFn;[_3>P5'N(NU-<0C\I%T+ojFAK\6EdHU[`'9u`R-`]gWBp`I*E(@^ls4ZfWAG4jCt"eAVO7[X6K"f/!HJQ^#7tVT+S.a#kku-De>'UJnGu[1;PE&rMCs:1&^I2eT*]XfjC(mB>7ffgWC#(;=q03W.l2]S%JQ<8[aM0dm\R#TZWeIAr?n0_"ZONMe^-Zm+>OJH;RYo6]u>2WAZ"^eH%+u\pGO4*-1p9`Ui!M"mn]9/CnoC;PRW^m1dbr0W)2>uYi'BX8AZHGF!=&4aPg[[bbdYLe.o&qaZ_GpdSD#%Yu/@A0Y2KL19M:?bZ7JUNP.d%_(T"WO@,5VWiH]^6Up(9^d[Vguh,D_Mk5=o^HBj"kZ,?2hj`6M9<#\+>,uO&+mt`]C``!*L?f4'dQuIBm,*Qu\8!"!m&8t4H.GF8_pZ>3nZ8:_LRbQFX&^CrX,f0clUJa!g7@jq*F>P:0AYTcPp`h+)PDI$6==chGamqU5@CM:4@TmLQ=%P9dpY;_%^XR9l/^U_.#fnaAn)>PH:b)nOTcK.W1dgs'XcJB_m,#a!'F%AT3[C'-\nT9kJQg4X0b;8"(:sO4\8GUo?#U(HLWSmCbR>L/%>aR@:F*T2!c![2Q_eF"i+HW'o\"`Sk8V*:#Gd*]JP%!_XY<`pZAfCMmPD*1V7MZW6Rr7T6_AueSIuoB_=h<3-$`Q22SOdr<=KQ`kKt4HTs]%,PDSdKKB%oA:Rdd./DGH%Z#.D0;@=Y@'qF8YR0b6Uttm0"2X#t4L3q"s286]HVXQIe$?kR^5a4ere;H3rdN[[bOZDWrW?'c23\~>endstream endobj 20 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1741 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1664 >> stream -Gb"/(hc&8h&:Vr4Th!fSFOo`D`>]8(0>.E5Qp*6ga\fsO7t:e"^&.7o[UiT:/LsT[%+AWuS!`%1G#p1uT>)!QkoWh&HaQ9*?&JW+:CmPk?6d<@6g5t_UndB'@QXg%Tg028-,gk"cuGhe:'X(d_tR#-RTDEmSV#Lq'W&u.UFHpDO`'XOP&c`3(UrU:IZlphK/Y4WL=3P"+_Ro^1;^:-KHWXtab:n4$34Lj"\=Y-'ucL`qcsd=!\pjYB9]-=&u/H]Y2>8D@OfelXcGLgMRu4I9'IGXUS=H\&qZdH%0`T!c*]f.Il$15!$j:;L8($k)&u"snA;h+H_9tiS,p0,!ct)hEh(VY*^%^nN\PKlHm`:-]6nV3\=2T=qn)8Ed$ml#2E-fdC^k>/YKmV^TbGP3YCOp6XDQGGVrT8`eDB%(:K>+>p[+,G)d^QR7aVgI[Q6k#s:#.(,jkL2arOoIf:t;o[Zb:&=Pd>*oL#$(bp9QV+ASIV6Jk<&VZq_0d7:k(EMsDN%_o=E%`q=l654tT9+E`N\XC'MRe\f03uYUr(oJ`#eL$O"A-NO>%1IlppK@\8C;E:)cIdB"9MODH\!pm3]Crghp^C>)CNOgB8$`m%\c0"3C$>=2'sth4fa\*Ik('>`lq[qQfh,SR4M>jgkf3aGb4HrY?`SFR+R..L=_uUOhb0W(j\KjtO@SnnFhrjUcCo`^-'O,VW333BXmJFr!WSf.WNCkli"4r'B-[f%.F=_J2m;h[fYKJk/eNl6q>+c?OSMEeq=H6pmPqZ;oVuTufWAIgCkQ6(eff#nI^^]*/JiHb@Sl`_P.PO\@al?eeY\G7+X&\l#g1gTl+W?R\Wbq@qpAV)I":Wd<\IHcegsq->b]>r@$sc"JT5L\W_NmViGV.M2O@_[WBZQua;_8`&81(I6LJ0`o`F7YuEt)5kU:Vc"Yf>ZFG>50tNBI^FAJ/&E;9c/;T(POc7UBh$@tcf?QX4Q$V6g`I=u$3r41SZD_cOtLGEWHQU5Z,jqLjl1c#@mOE0.#1UOnYI,;(U"KuRbrrSnj"((M!FD:gnSnuIH`N6V2'`jV@G(_kS<<)?kI3Jq6A#*kYfXEJ.?]_thbHqr\o+r*JIJmYM9]cp4"GCWB@n&[N:VGnS,jTVcS8LsgejY!=Ms2[,O7IY49saC`8*s5H4G?uf('gI+;=Ri(df&)D`h!-/Y[l=r%>"0l*NMNdHH&jpb/o~>endstream +Gb"/(gJStN&:O:Sk`MYJ7J@1.`!fd]"(]Z<-`UEX@OPkDY\'j#rr$SLdYs;XSgd3RCL&PJQYs4B>FOuT'+BuuiSraq'`d]$nEq+q9L*n50S9e0T0SR"rZ'lh;^//n^s(S)LpbTAS.S-51a8T@=l52+bTKIWitQN'.G2ZJX;BgkXYH4C.M^6V.U>NCL`/-h4Y!B9`2HY?9#uou8JS7N?,t*<^q"Ojp?3HWIKSih9aq,KOT__PHqI.se+A%]H(%uc8c6K1;NPkW7Uc/Wf-HMGU+pM0U&q?Z.nD+P:A+UIJCf>!8qf^nZARhea0U]gm,[[.idZR'[=Bnla*#ISA[7FP'nTZhg-(,bpSP2dkA4F/JZD0+6`FW%@BPDEYVogen-,8rBI]tV:`JQ50de_f-M9ogKF/aSl@`hiAcWk9..e.GrcW+RCT[7:5&=Pu*(!S7M5f$R&'MRcR-KFpE5XcsYAi2KLAlWZ!NJgDC<@'WcJ8#YAI^@t`W[>pbrciX'nqbIqPF(1?ZO^P2[=f&tY8\FY4cSho\MK4!ZkQ1PY;`V,1XOurYgG.d^C>:*Q23TQ/M@Te$[D&N%km>,%t+)fj*2sscp[V4b*W)+`%`dfTIda9B&q"L\f?,(D"&0+@lL/MJpD%K+R5%=E-]YXnA*Dj=]Y1jak*f;/T]Gop$28&;\AI"1dF2NCZ77s0&Gu>D#]?fWKMa8sqVSii+a*pe1U(H[>T&2(?.hA4SfZJojOQ\Vdk)JUAIq@sA1,F-@HY:*"^)>u:p&^>3+'LSX=PhihQV0(^'9t0)b5kc6WH>Ck0FiJ9gh"[pjjcIth@J>8PrZKDS#@t!LVO?`MY4Itl9f-?YL"TtMtk*1SWp5-Ml66@-)`Af?IP'Xj1N.?^FHYm,C7GdQ'm)BQWrT+bKRgV^t$p!l*dZ"".^k-Tgq?D$f_YRrpk6g"C#'KJ6n'KSY@2[2@\d8^'3_jZ+Qtn7De$']TkEEbTY$>?T1ELJK7TL*ou,'/MHaWKW]uaEkMhT=[1Cr$3EmJ-ko8YnYKC4=rr6E(hgCFb3#5=QabnHp]:rb(m#BiVLeqJ9aH8;#pMB[<9,tM37Yu'"OL-Vd.jlqItnT?.TMo#,Xb=QKTZ;'m\HWT4?J_;@7d+p4?K%D+m7N@CI,dCglSZL\N#`Vh*.*"POV'sq:(rFB:Qn8j]7YJn0\!X(;0@4bhHBTY3j3L#2P/PI!.PGVWhMM3BNd[R2eZ*00R;02EFb(#!K542UK:9Gm>lo^U,RKsLH5gsLg;\o:.UG/-al-HF9%[buX*9.PKh\e'i"!B#MhoD~>endstream endobj 21 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1695 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1690 >> stream -Gb"/'gJStN&:O:Sk`MYJX]fr=7a*.D/=49`H(rIC-&-FU"#3/Sp[;1)dqG9!aEC+.:m;@S)4bYf95<_T!$_+=`W(i"6>ocoa'1eo;0n(L@ueu)Pb`r8"/q<=?nE[DUo;(:Up5*O)&jm4!jqg;]GfR-42DLF$k(>tg'*J%1N`HHqTM/=KZPi;`37.&(m-"C$RsMt8/Kt+.Mquf:.?AO:qAnRa`9Cg=PgeZknfSuY#+pb"AL#<-C^]eLW.1(3>4+$2Mfd'nHU^S0(82bQN>Z:EFJ$Ija6oCJ/S2a9Hlc\Ef"%r;u=F+B`?jO\7X0<:Y]`Dkf2ABjYb\g]"p!9YJEDf%@#!jZb.OW:c\GUI%#AC'MCfQ/IX=8:aP^ZkQVU[!+/rG["d:2oo<@Vqi:`T@<4VV<,(2(NGP:V!RH%C4RT0J]hO#@-=Io7Lg`L.!Ef=SGm^K!/&ji$L2%iT5DEi0BX/#Cjp`[D+,2WG-*LF/GV5/:+sI29PDWe;4bmD2U*9u&)Q/>TmnJLWn]jM(``&4B_Z3q)(3>.A9?Hg*6q%27n19;l%2/#luI=.gOB8j,@tV>OgH+49P\ln4A,Y857%[3[K3'Eg[(aisg,0;hq'2-Uo3Jl"OK8/QLZeAV//I+C4hOg<$HV1FnKil<:A-K6>gb-R@Ki[@Nh*sGL&W[>,@cOjAB][tr6ht0WP7f?T]VhQ$%Bu"rWA6N,9L%@S(HQT*O2RoV"53ElZ$WumdR-?qO@H+SF%gOlS&8;0@!+K6#P@&`HbOKaq9:Nd97FVAIVeCs,$,"(1-B\`>[`r*n205Ul*4F&kR*!"lE^5TBe`eg$MjMkcjbR\fGqXo3$EV]o&_#O6oG8&c?kAEa.n_DB/>E6;$'i,Umo#Vilk.n1Yj/AU(:u^Dg]%+_X"Z$pPq^]/=.=nP$bI7=LLkalc>KuQok^[j.T^XVK$W6N%GZt;-k(CCFZ2lX-'?.d>\3(jdJeSM`VkCc])d9D5D=Zhd9e9ECfTYQj'XClbu]2&du"fP[:`)-a0Z6a0e^ON*_]C3adJ5HB.RV^.%6(BDIt`2p$e5k!uu>`#Ijk_h"F,FmW3RUL<\C*X>?jGRXFCc+T,p6PshdQ5a*T`Y-#eI[E)r,42,ZLq`qao*bsKX*3Ri(%lEof2eIFar:H-*+-%5lfXaRq[#q:&Y_]ZHAA5^a_cW:D`e7KoC0r0P^ssO!g!fn#4??\j15\/l)]GUAJ>#_06kQ^Zs*]Lpo=<_>b,"9o/~>endstream +Gb"/'>uTK;'Re<2cm.odWkN'77YBs&b==LY4u&6mWF=5o^nt^epYW/j9SPD4.ajc9:pe?F@_=c^/!eC"_G^"rE-6To%QpCq^,EQN4^IHiu-%^sbQiY#P`(DHFVp1;GWX&We,_APs+;NECYe2%5e'Fp&OY83:rHecd@J/il#k0c5V!7[55;Pd@&LBlA!^TQkl>ot1q\+g38bQtb/:gNdE3@pYQ2Yk)RXS\G3Y2it^Y71%'$VR5:JhtmBj-OD&gGhC-ir3fj8/M?5JipO84Mb"23_UNX"s!a<+bHMB9$)A8,cfM6uQOfnt7lAjm"^XD.8t%Fn1(=_<3#Va^cDKk$4ImIoT+:%Z^.2eN+_ebp!:4HEi4D2U8HYq#KLEt'^o"4'l,boUB)C9BoORZ@EfdFWd!2:X>rFj8G25Zgi.#XfosZ-*bT4P42RZ%N;L.fKID&FZEj9.eaI6-RU]*$S5moQLhsMfm[kA7&ZteQ.b!#G03t:UWW"BXSn4VdrHj&TMRZN&.HI0-a_l0!<@`$!&VgW\rB_%@6u7"]#?1$h.kP6SRdn^`3_:a!#AmgrsZ>44k%rUHZrR4p^JaT:?7tp%qEBdKD/`V][bXT`c4GEc[Du*,mBJnl]nNI8h*U6E"ZQ-lQ_@a)V&Wh[U*S1=&rKKCRTH&IGE(!&&K?f-Z-mb03#!kZD,.:,olFFsV*i#dpf&rbL&bVoKEP#3h`k@iGB7$[i.[GhGg@^[m/?;@a6$ZPWDt:#.181p!4fda_/.5)+gW+N%_P7AUj^8.H@DcUC%A-_**/d^E]@].BrSl(&H/N"8'?NU509)Fdeih]$-;5sQ-ir!PW[ogkFTQ@8fJ^phK]B*d0Tdmhp9MaA07]O'?p\:$YZ2/I8V/f-.:"RtLZMPW0G2[)@7deChV[*oeuO<5[E[>Nbcn@A'sh85]'hYhHmg%RRV0L'8Moru/CgM[@@kkE9%>4m.bTn]3adJ9H@`*V^-h2>@+C\5RmbF?X/"H/Z'IPUiP@12^(MWYIanSNhUjgq&kn#o'T!1f9<+eq8*D$!Wa/9BiEXYE2rMF,!IJer84:l9odUclb(W'L>Sr`;*)[J!Uij>mKg1)m84#-&,3?\O"P)dk"ceoBJeZ,dNb\g9BNZuW0To^$o+P$ON/]ElTbb;/JpY93@$as?Z[>$YDqVF-O>%hOet$5c3il/L>'.E!n:i$UPC)m!lC1iKSIU!d=7ME3M$~>endstream endobj 22 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1702 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1722 >> stream -Gb"/)>>lJ"'Roe[cm-X@l5nd#)_k"N1dGfA4>Gli`%Xq@&@5'aIpZnCZIW?alm55;b':^fopqk!FEI?P"$h]g61OhmNmO7(rGi/L#g0:]0[*Ae*i7QJb5a#f9X#-2(_RH8BVCEVl,Hm6-3:6_0kX/MElI1V[Yo^a_D#7HVN6XA"fOO/>7F5M@J&^Em]optN9EH8=)PGc]3I&eH#Cbg7@0),a.$Q6oaRYfQhZbW:Q9S\kOS[(+rN>OCup*CG(;%<>3r-ic)[&f#+_3$gubm_Y-I=hRN77^g-PiV\m_>"2Wc"L3_ZUB0W0]X@9Rf/3?c$FdrN>b8$<.F7$J?r6ZA#G\DN4rnsC-p$Ve#(+?8LO$@C"*"7/Pni(N,*WM(Y>>8pd9]e&3hJLu(p0tTaG`T#YD.b>*KSb\d0D_+QpWX1tY-p]+KQjW`,SWBT>%)n\"`#(Ag^;2Z=pA0G(,4)]2"lUTS(6t8Bp(g!q*-6S0S->9AY6grX;23DU$mB,VKBRo,=2?&(>O,T8cU+-Qbh`Bm5/h1saE'[Y,X7&9kfYfi6I!JSiFjK.#>F$Q8*P#:3r(I)cTXg]F&ijPLs+(0fd]Em9?oi@`FH:K(;k/$0ATH.7>6AX9SCIsE%P*2#p@^d?Stf%^te(;#2f]0_qtQ-uZ^A70YZjO/H(A[GNfWr3l4NfM"D-$3=-j4r2HiIl'^U`Xe`M&!@L/S$61-Z@Y64HO6dbl]+Du3l^-[QNgV1VsoNID7!$h`>Z\B2I0CO"$]TH)NYAM6o$"pY^$;36$?sfC^p0rOs.'J)s]pJI$"he3ls)Jr4Xd$_OR\?YSYFNRn8@h8ScUFD_)cDOIa9YZJ/\Fge&-#<`'US+_dmtl`+B,V!*7.#'sU@L,A1T`B\?%Z&&"!PX>$#RU2%D_E$obsXq8r%.jGJ't0bg~>endstream +Gb"/)>uTK;'Re<2cm.od>3Y=qif+/ORk>f=@/@f8-;+H)/ccm7m-_Vqfp620=B6'u0#KB:,du"3^/t%Y3]`KL@U?G>IBc'$6\^'c8.c#i>p@EG8(f%XZb_\'[7E`*+sl>AEJCHYg=Vg%XHhk(U=K#"e_nI"0oeu?bhWa7.3E=JARp=S1,,q@R@A>(!eEVi!ptBF^:fn?c0c/Kr=3Dr;>/j5Mp-eH^aN6@WnInb[I&CN.W+nNI!1_"d)Eo^iVK&N3nlQKare1gCl8pR2ZLK%Dutn)1WM$7j%fd$csPmN'""U7r>M5q)fB8GqsM<1PP0FaDAtu&hA"$M0NZd)J?0A3r4*2NpNu^N>"Jd])RS`XVQ^%HMcT*IJ8g#\Xe)Jb-IcMIMV6P)m-Yi-/Hd8C3FJ-(nDnh]NjJ\#FE0M>3]]h/1N_1^@Mq5j3Ilu4kcjZZS(m$Ue=oK3Mdql#*ABWMO4*(TFRj"5SpcT/kH'hKEXp3&XEY3n/tUbZXg^i)%X=Fk4ujQXNqSO[:5@k,et89b;mEtT&pPr\#7]i"opQVX]H".jb5HsfdI@>dJR5M.E`V^BFAQAM]H":kYuua=XgO1jBIk[AD@b;`(/:e"lbd3oJs^Kdb?9,bfhSd]qfDt8`2;Na%Bu\gE.Vr)q$;_h)r[Cb2.ZZWX$aSlj]>_D$_!`>KnpVqP&h9-G6Ea0jK3G7R?=>=s[IT0:Hl-GZCMJgg/Fi5s?Y/JSCj2FA=(ibG7<^#ZJ[9fKHUm(".c&,W`2a$p@q\`dKLC/2mCjUf4S

=Qa.DpAe0&o(!khd_Dro4O>ER%(>A"K/ck;t'+S\No/%bf$<,&q;XKi)mGZ6WZ!K_;`U:TCFmZJ"6_"OM3j>>mY`gsH:.V2:n8a17UHWY/c!pa8N!UEHBoBE&gP:`?,8LGN45US]b`HL,_FH*V9:\TWT_]+N9g`PMbF6ql$09`tjCPDF$"j&&HNm%ep"kb3^e,b$,=9oVRB>'.UDdq\+'+70*9:&a/U:SQA'FW#u((90U3N*5J_Cne=Ui^IaOG=O[s%Y2*$>[p:WiWlR[4nV3DQFU?W*A0/_H3cR![1YmPQhF7eJ_?op_eB$W@)CnW_5ZgC_&F&:#rW0B\!j46EL1&E':VgaT:aI~>endstream endobj 23 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1249 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1605 >> stream -Gb!#\9iKe#&A@7.kQoC3e[MX:+IG&$!_jY0RE8u;_h?#4Jhq9DI3i*`mDQG(:7VgGb!)rae#p%c(a/dng$_?2^dSAi?X\HkL`QS/OFcU"KMh3?LFlCJ(^P[1&6M9#K[TJ!)(I)&`*i>MH0W)1H%H%9.HHFcn-K>-'8+=]mF6Lj$tE!KT4]AGSl'H[B8+!YAYU`9?f!3;k*Iu@o'Ji?8V>1'ErC"e#O;jI#To?C!`sVWnQ6dS_7H?I6AKPgGp\679t]:%'a!\%*OIB>'B`i4?=[ccLcT-blfPFZo9;72;]YWM/@NZDQ/;m+5_C]3k[K)q*.h\`uOdFTG8i-0@V+ct>;Z3"P7NP"J7_$s!uWZ.&sg-AhRQjQeMl(Kot1/g'pTekru;Dm]I@8\rmW[&a'*+VWlf,4"?!3NA!/'HOG0,>p'j?%9.\3Zh^8+nC4\faftU@\i5O:s':OOR6@:N6H-dMh2S+&sC_p>dL-J7W^Vk2O(]&u"l0AURc;..*8*4@[?Y#)0auY@Cg'*2qGsNc>@o;#E,)lQDX(G;SG7OIBViW5&Vc/.[(,!6C2i]D~>endstream +Gb"/'D/\/e&H;*)_2i;]E8isIDlKLRmdedd8j%LPJ-h5H+L0Rfi.4"2C?MJ2#(4!2>R,ljT]Ci9LBn8rHk3h-f:eFnF.a]<1gqNM=i0hOl%aGF(_@$b3B5)lq;WC;5L1C.q;(sl>0NYQlmd['%S&F0j\eap\M^gkJuqm@PtjTf8&&o7QK/L#tdh7FL@QS<_l\eoBt=!ZI96()&t>MnK8"%^5:E^_>uYNg'-Y4Mh*]$5:TE8m\l]QpSFG[8%T5``!3Q`):Y,:h,pkm@"'$?Wt,!^3Od)"VJpN!jN"]C:1CBsoIN+]he1+&^k0Jt$VW)^(4EHu5.YKka]6m$gDB-;b!q-DAD#^&X5UniH>^drrauR>bVD>nAAO@149E*")rniT>pMK5b5]U+4P_XY6`S;f-S-D*aTBn(q6)j+6Y%XNc4L]lqGoD==)C)1!JqXgn0,SHpU?DS_rYK)juj,<6(iHUU[LZd.uMM:5d<5d5JT],N?@]`'#F27E!4\m`:X3&D%HMo:U2Q)72/?T2GUM+0J*0(H^_I\kN*3`V6a!^&FM[>gTf!C@[BuOl56(]j?-ZM.[:VkQe*ilc1W,O:;Wta8*RNf(<+3J@t@U0Rkm"m%B?-ShH^4#]cc=3E0?lgOb(#NbVh1Ws1A.ENbPfT3,\dW'tZWXkI#E@V3dP>`1Ck"BAbZ0q1P-`h-,:AFN3APV6Yjrp9A""/XWIgY#@0O3K=&Yu[BTh1=P?fB?Mc)#2)HPO&5%0HH?H-YRr9>b;;T?oS6ZW9YO.Yn#ANTr!LM25;oipkH[r'=EK_Dh.d(X?@=ksV3/'/kbNqhr[VR:sgbRYA5LeSm2&TWQP[^gioGh&iSSaY*?Yj,G1W$W(c*PN0B*FV1^CQEU()&-@DFO[\9>=hm2Q;/,ut@fr\&lY&kh0`hn*6OoG+6Kf5&.j[9r^XoaC#jqh7!W5@V5YhT5JaF:63Oe1D+)qQsDHU+Nbhe1-D07Ycr3eQtkG0\ZK45S@8$YFWP&[Sr"S)WMI(+Itla5u[scFfu>brW1'-O$*~>endstream endobj xref 0 24 @@ -191,17 +191,17 @@ xref 0000002175 00000 n 0000002459 00000 n 0000002564 00000 n -0000004657 00000 n -0000006433 00000 n -0000008209 00000 n -0000009981 00000 n -0000011814 00000 n -0000013601 00000 n -0000015395 00000 n +0000004646 00000 n +0000006405 00000 n +0000008204 00000 n +0000010006 00000 n +0000011762 00000 n +0000013544 00000 n +0000015358 00000 n trailer << /ID -[<901f406f6cfbf9b640977a323bae9dd6><901f406f6cfbf9b640977a323bae9dd6>] +[<9e7bb413baa63d67c4d12e6c10106594><9e7bb413baa63d67c4d12e6c10106594>] % ReportLab generated PDF document -- digest (http://www.reportlab.com) /Info 14 0 R @@ -209,5 +209,5 @@ trailer /Size 24 >> startxref -16736 +17055 %%EOF diff --git a/output/timing_stats.json b/output/timing_stats.json index 4d1ce00..99d97a5 100644 --- a/output/timing_stats.json +++ b/output/timing_stats.json @@ -1,56 +1,138 @@ [ { "fichier": "23_20190411093049_00001.pdf", - "debut": "2026-04-21T10:17:12.538647", - "fin": "2026-04-21T10:26:15.952573", - "duree_totale_s": 543.41, + "debut": "2026-04-27T10:28:18.275593", + "fin": "2026-04-27T10:43:06.216193", + "duree_totale_s": 887.94, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 11.69, - "duree_extraction_s": 97.82, + "duree_identification_s": 10.92, + "duree_extraction_s": 242.62, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 155.61 + }, + { + "zone": 2, + "duree_s": 13.84 + }, + { + "zone": 3, + "duree_s": 40.24 + }, + { + "zone": 4, + "duree_s": 32.94 + } + ] }, { "page": 2, "type": "FICHE_RECUEIL", - "duree_identification_s": 12.24, - "duree_extraction_s": 77.88, + "duree_identification_s": 11.02, + "duree_extraction_s": 293.95, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 153.33 + }, + { + "zone": 2, + "duree_s": 13.69 + }, + { + "zone": 3, + "duree_s": 104.66 + }, + { + "zone": 4, + "duree_s": 22.26 + } + ] }, { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 15.92, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 10.57, + "duree_extraction_s": 145.54, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 13.07, - "duree_extraction_s": 81.06, + "duree_identification_s": 14.88, + "duree_extraction_s": 80.31, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 7.02, - "duree_extraction_s": 176.77, + "duree_identification_s": 10.7, + "duree_extraction_s": 33.9, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 8.1, - "duree_extraction_s": 41.14, + "duree_identification_s": 9.87, + "duree_extraction_s": 23.07, + "statut": "ok", + "erreur": null + } + ], + "erreurs": [], + "blocages_429": [], + "retries_total": 0 + }, + { + "fichier": "OGC 1.pdf", + "debut": "2026-04-27T10:43:06.222781", + "fin": "2026-04-27T10:49:20.975383", + "duree_totale_s": 374.75, + "nb_pages_total": 2, + "pages": [ + { + "page": 1, + "type": "FICHE_RECUEIL", + "duree_identification_s": 12.86, + "duree_extraction_s": 286.13, + "statut": "ok", + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 200.33 + }, + { + "zone": 2, + "duree_s": 42.09 + }, + { + "zone": 3, + "duree_s": 33.35 + }, + { + "zone": 4, + "duree_s": 10.35 + } + ] + }, + { + "page": 2, + "type": "FICHE_ADMIN_2_2", + "duree_identification_s": 51.06, + "duree_extraction_s": 24.53, "statut": "ok", "erreur": null } @@ -61,23 +143,41 @@ }, { "fichier": "OGC 358.pdf", - "debut": "2026-04-21T10:26:15.976638", - "fin": "2026-04-21T10:30:11.701132", - "duree_totale_s": 235.72, + "debut": "2026-04-27T10:49:20.978397", + "fin": "2026-04-27T10:55:45.659028", + "duree_totale_s": 384.68, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 11.94, - "duree_extraction_s": 54.89, + "duree_identification_s": 12.91, + "duree_extraction_s": 154.44, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 68.46 + }, + { + "zone": 2, + "duree_s": 17.94 + }, + { + "zone": 3, + "duree_s": 48.42 + }, + { + "zone": 4, + "duree_s": 19.62 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 8.28, + "duree_identification_s": 13.87, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -85,32 +185,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 10.99, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 11.19, + "duree_extraction_s": 63.89, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 12.63, - "duree_extraction_s": 36.32, + "duree_identification_s": 9.69, + "duree_extraction_s": 40.82, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 13.53, - "duree_extraction_s": 49.68, + "duree_identification_s": 11.26, + "duree_extraction_s": 23.89, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 10.64, - "duree_extraction_s": 25.93, + "duree_identification_s": 12.63, + "duree_extraction_s": 29.29, "statut": "ok", "erreur": null } @@ -121,23 +221,41 @@ }, { "fichier": "OGC 368.pdf", - "debut": "2026-04-21T10:30:11.703536", - "fin": "2026-04-21T10:34:08.640839", - "duree_totale_s": 236.94, + "debut": "2026-04-27T10:55:45.661867", + "fin": "2026-04-27T11:04:10.130350", + "duree_totale_s": 504.47, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 16.14, - "duree_extraction_s": 64.08, + "duree_identification_s": 13.34, + "duree_extraction_s": 244.22, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 68.68 + }, + { + "zone": 2, + "duree_s": 34.08 + }, + { + "zone": 3, + "duree_s": 106.66 + }, + { + "zone": 4, + "duree_s": 34.81 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 10.97, + "duree_identification_s": 11.0, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -145,32 +263,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 14.35, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 12.69, + "duree_extraction_s": 72.87, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 9.12, - "duree_extraction_s": 48.81, + "duree_identification_s": 9.44, + "duree_extraction_s": 41.02, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 8.32, - "duree_extraction_s": 22.88, + "duree_identification_s": 10.89, + "duree_extraction_s": 29.7, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 13.82, - "duree_extraction_s": 27.6, + "duree_identification_s": 10.73, + "duree_extraction_s": 47.76, "statut": "ok", "erreur": null } @@ -181,23 +299,41 @@ }, { "fichier": "OGC 371.pdf", - "debut": "2026-04-21T10:34:08.654725", - "fin": "2026-04-21T10:38:03.504814", - "duree_totale_s": 234.85, + "debut": "2026-04-27T11:04:10.133557", + "fin": "2026-04-27T11:10:58.697259", + "duree_totale_s": 408.57, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 15.61, - "duree_extraction_s": 70.77, + "duree_identification_s": 11.39, + "duree_extraction_s": 170.36, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 76.45 + }, + { + "zone": 2, + "duree_s": 12.59 + }, + { + "zone": 3, + "duree_s": 57.5 + }, + { + "zone": 4, + "duree_s": 23.82 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 11.81, + "duree_identification_s": 13.16, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -205,32 +341,32 @@ { "page": 3, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 11.32, - "duree_extraction_s": 49.28, + "duree_identification_s": 12.69, + "duree_extraction_s": 46.28, "statut": "ok", "erreur": null }, { "page": 4, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 6.82, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 14.78, + "duree_extraction_s": 47.62, + "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 11.32, - "duree_extraction_s": 18.73, + "duree_identification_s": 8.64, + "duree_extraction_s": 45.89, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 9.94, - "duree_extraction_s": 28.28, + "duree_identification_s": 12.66, + "duree_extraction_s": 24.29, "statut": "ok", "erreur": null } @@ -241,23 +377,41 @@ }, { "fichier": "OGC 373.pdf", - "debut": "2026-04-21T10:38:03.508522", - "fin": "2026-04-21T10:42:37.600479", - "duree_totale_s": 274.09, + "debut": "2026-04-27T11:10:58.700880", + "fin": "2026-04-27T11:19:40.638975", + "duree_totale_s": 521.94, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 11.39, - "duree_extraction_s": 97.01, + "duree_identification_s": 10.48, + "duree_extraction_s": 290.46, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 152.38 + }, + { + "zone": 2, + "duree_s": 15.2 + }, + { + "zone": 3, + "duree_s": 82.34 + }, + { + "zone": 4, + "duree_s": 40.53 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 11.14, + "duree_identification_s": 10.91, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -265,32 +419,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 11.22, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 10.06, + "duree_extraction_s": 46.67, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 13.87, - "duree_extraction_s": 58.78, + "duree_identification_s": 6.85, + "duree_extraction_s": 59.63, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 11.0, - "duree_extraction_s": 21.31, + "duree_identification_s": 12.19, + "duree_extraction_s": 29.04, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 10.34, - "duree_extraction_s": 27.16, + "duree_identification_s": 8.15, + "duree_extraction_s": 36.7, "statut": "ok", "erreur": null } @@ -301,23 +455,41 @@ }, { "fichier": "OGC 385.pdf", - "debut": "2026-04-21T10:42:37.603168", - "fin": "2026-04-21T10:47:43.613674", - "duree_totale_s": 306.01, + "debut": "2026-04-27T11:19:40.641859", + "fin": "2026-04-27T11:28:33.654055", + "duree_totale_s": 533.01, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 12.89, - "duree_extraction_s": 153.67, + "duree_identification_s": 9.49, + "duree_extraction_s": 330.81, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 77.98 + }, + { + "zone": 2, + "duree_s": 49.61 + }, + { + "zone": 3, + "duree_s": 190.08 + }, + { + "zone": 4, + "duree_s": 13.14 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 7.35, + "duree_identification_s": 7.55, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -325,32 +497,32 @@ { "page": 3, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 13.16, - "duree_extraction_s": 39.37, + "duree_identification_s": 13.11, + "duree_extraction_s": 38.4, "statut": "ok", "erreur": null }, { "page": 4, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 11.77, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 8.78, + "duree_extraction_s": 55.58, + "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 9.31, - "duree_extraction_s": 19.19, + "duree_identification_s": 11.54, + "duree_extraction_s": 23.87, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 11.48, - "duree_extraction_s": 26.72, + "duree_identification_s": 8.15, + "duree_extraction_s": 24.93, "statut": "ok", "erreur": null } @@ -361,23 +533,41 @@ }, { "fichier": "OGC 397.pdf", - "debut": "2026-04-21T10:47:43.619457", - "fin": "2026-04-21T10:51:51.030768", - "duree_totale_s": 247.41, + "debut": "2026-04-27T11:28:33.655916", + "fin": "2026-04-27T11:34:42.821011", + "duree_totale_s": 369.17, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 9.27, - "duree_extraction_s": 76.42, + "duree_identification_s": 12.55, + "duree_extraction_s": 139.46, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 39.37 + }, + { + "zone": 2, + "duree_s": 42.17 + }, + { + "zone": 3, + "duree_s": 42.76 + }, + { + "zone": 4, + "duree_s": 15.16 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 10.26, + "duree_identification_s": 7.44, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -385,32 +575,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 10.22, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 14.59, + "duree_extraction_s": 49.79, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 12.02, - "duree_extraction_s": 62.89, + "duree_identification_s": 8.1, + "duree_extraction_s": 61.07, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 7.81, - "duree_extraction_s": 31.15, + "duree_identification_s": 10.14, + "duree_extraction_s": 33.39, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 6.48, - "duree_extraction_s": 20.03, + "duree_identification_s": 12.36, + "duree_extraction_s": 19.48, "statut": "ok", "erreur": null } @@ -421,23 +611,41 @@ }, { "fichier": "OGC 398.pdf", - "debut": "2026-04-21T10:51:51.034973", - "fin": "2026-04-21T10:56:46.034162", - "duree_totale_s": 295.0, + "debut": "2026-04-27T11:34:42.824445", + "fin": "2026-04-27T11:42:43.566133", + "duree_totale_s": 480.74, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 12.35, - "duree_extraction_s": 77.87, + "duree_identification_s": 9.83, + "duree_extraction_s": 224.62, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 72.65 + }, + { + "zone": 2, + "duree_s": 38.59 + }, + { + "zone": 3, + "duree_s": 86.29 + }, + { + "zone": 4, + "duree_s": 27.1 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 10.64, + "duree_identification_s": 7.85, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -445,32 +653,32 @@ { "page": 3, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 9.77, - "duree_extraction_s": 84.09, + "duree_identification_s": 9.55, + "duree_extraction_s": 109.14, "statut": "ok", "erreur": null }, { "page": 4, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 8.03, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 8.68, + "duree_extraction_s": 25.23, + "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 6.18, - "duree_extraction_s": 31.56, + "duree_identification_s": 13.44, + "duree_extraction_s": 22.52, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 8.34, - "duree_extraction_s": 45.3, + "duree_identification_s": 10.22, + "duree_extraction_s": 38.9, "statut": "ok", "erreur": null } @@ -481,78 +689,36 @@ }, { "fichier": "OGC 404.pdf", - "debut": "2026-04-21T10:56:46.039051", - "fin": "2026-04-21T11:01:41.285242", - "duree_totale_s": 295.25, + "debut": "2026-04-27T11:42:43.568583", + "fin": "2026-04-27T11:54:27.551444", + "duree_totale_s": 703.98, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 8.05, - "duree_extraction_s": 121.21, + "duree_identification_s": 8.27, + "duree_extraction_s": 363.33, "statut": "ok", - "erreur": null - }, - { - "page": 2, - "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 6.92, - "duree_extraction_s": null, - "statut": "ignoree", - "erreur": null - }, - { - "page": 3, - "type": "ELEMENTS_PREUVE", - "duree_identification_s": 9.45, - "duree_extraction_s": 40.67, - "statut": "ok", - "erreur": null - }, - { - "page": 4, - "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 12.45, - "duree_extraction_s": null, - "statut": "ignoree", - "erreur": null - }, - { - "page": 5, - "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 11.47, - "duree_extraction_s": 38.9, - "statut": "ok", - "erreur": null - }, - { - "page": 6, - "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 14.06, - "duree_extraction_s": 31.22, - "statut": "ok", - "erreur": null - } - ], - "erreurs": [], - "blocages_429": [], - "retries_total": 0 - }, - { - "fichier": "OGC 411.pdf", - "debut": "2026-04-21T11:01:41.288964", - "fin": "2026-04-21T11:07:47.867790", - "duree_totale_s": 366.58, - "nb_pages_total": 6, - "pages": [ - { - "page": 1, - "type": "FICHE_RECUEIL", - "duree_identification_s": 9.23, - "duree_extraction_s": 173.09, - "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 56.74 + }, + { + "zone": 2, + "duree_s": 50.37 + }, + { + "zone": 3, + "duree_s": 228.36 + }, + { + "zone": 4, + "duree_s": 27.86 + } + ] }, { "page": 2, @@ -565,32 +731,110 @@ { "page": 3, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 11.49, - "duree_extraction_s": 58.97, + "duree_identification_s": 9.74, + "duree_extraction_s": 87.72, "statut": "ok", "erreur": null }, { "page": 4, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 10.21, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 10.64, + "duree_extraction_s": 137.62, + "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 12.2, - "duree_extraction_s": 24.99, + "duree_identification_s": 8.65, + "duree_extraction_s": 27.98, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 10.47, - "duree_extraction_s": 47.16, + "duree_identification_s": 9.71, + "duree_extraction_s": 31.59, + "statut": "ok", + "erreur": null + } + ], + "erreurs": [], + "blocages_429": [], + "retries_total": 0 + }, + { + "fichier": "OGC 411.pdf", + "debut": "2026-04-27T11:54:27.554135", + "fin": "2026-04-27T12:02:01.977334", + "duree_totale_s": 454.42, + "nb_pages_total": 6, + "pages": [ + { + "page": 1, + "type": "FICHE_RECUEIL", + "duree_identification_s": 15.63, + "duree_extraction_s": 259.57, + "statut": "ok", + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 116.71 + }, + { + "zone": 2, + "duree_s": 29.58 + }, + { + "zone": 3, + "duree_s": 67.33 + }, + { + "zone": 4, + "duree_s": 45.95 + } + ] + }, + { + "page": 2, + "type": "FICHE_CONCERTATION_VIDE", + "duree_identification_s": 12.01, + "duree_extraction_s": null, + "statut": "ignoree", + "erreur": null + }, + { + "page": 3, + "type": "ELEMENTS_PREUVE", + "duree_identification_s": 8.72, + "duree_extraction_s": 46.34, + "statut": "ok", + "erreur": null + }, + { + "page": 4, + "type": "SEJOUR_MANUSCRIT", + "duree_identification_s": 7.94, + "duree_extraction_s": 24.92, + "statut": "ok", + "erreur": null + }, + { + "page": 5, + "type": "FICHE_ADMIN_2_2", + "duree_identification_s": 12.79, + "duree_extraction_s": 23.16, + "statut": "ok", + "erreur": null + }, + { + "page": 6, + "type": "FICHE_ADMIN_1_2", + "duree_identification_s": 8.98, + "duree_extraction_s": 33.45, "statut": "ok", "erreur": null } @@ -601,23 +845,41 @@ }, { "fichier": "OGC 413.pdf", - "debut": "2026-04-21T11:07:47.870357", - "fin": "2026-04-21T11:13:01.604612", - "duree_totale_s": 313.74, + "debut": "2026-04-27T12:02:01.984868", + "fin": "2026-04-27T12:10:25.042927", + "duree_totale_s": 503.06, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 11.21, - "duree_extraction_s": 140.94, + "duree_identification_s": 14.25, + "duree_extraction_s": 294.52, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 102.79 + }, + { + "zone": 2, + "duree_s": 27.25 + }, + { + "zone": 3, + "duree_s": 136.01 + }, + { + "zone": 4, + "duree_s": 28.46 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 7.76, + "duree_identification_s": 10.68, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -625,32 +887,32 @@ { "page": 3, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 10.87, - "duree_extraction_s": 44.94, + "duree_identification_s": 10.8, + "duree_extraction_s": 55.93, "statut": "ok", "erreur": null }, { "page": 4, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 11.68, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 11.91, + "duree_extraction_s": 42.49, + "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 8.19, - "duree_extraction_s": 31.99, + "duree_identification_s": 8.55, + "duree_extraction_s": 23.67, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 8.74, - "duree_extraction_s": 36.54, + "duree_identification_s": 8.72, + "duree_extraction_s": 20.67, "statut": "ok", "erreur": null } @@ -661,23 +923,41 @@ }, { "fichier": "OGC 425.pdf", - "debut": "2026-04-21T11:13:01.615261", - "fin": "2026-04-21T11:16:55.314927", - "duree_totale_s": 233.7, + "debut": "2026-04-27T12:10:25.055092", + "fin": "2026-04-27T12:33:21.597961", + "duree_totale_s": 1376.54, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 16.2, - "duree_extraction_s": 83.81, + "duree_identification_s": 16.34, + "duree_extraction_s": 1109.96, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 71.03 + }, + { + "zone": 2, + "duree_s": 15.51 + }, + { + "zone": 3, + "duree_s": 998.32 + }, + { + "zone": 4, + "duree_s": 25.1 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 7.65, + "duree_identification_s": 13.6, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -685,32 +965,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 9.84, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 11.22, + "duree_extraction_s": 47.67, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 8.8, - "duree_extraction_s": 37.99, + "duree_identification_s": 15.73, + "duree_extraction_s": 77.32, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 9.78, - "duree_extraction_s": 19.28, + "duree_identification_s": 16.15, + "duree_extraction_s": 32.06, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 14.47, - "duree_extraction_s": 24.91, + "duree_identification_s": 9.71, + "duree_extraction_s": 25.29, "statut": "ok", "erreur": null } @@ -721,23 +1001,41 @@ }, { "fichier": "OGC 429.pdf", - "debut": "2026-04-21T11:16:55.318401", - "fin": "2026-04-21T11:20:58.656749", - "duree_totale_s": 243.34, + "debut": "2026-04-27T12:33:21.599785", + "fin": "2026-04-27T12:39:28.513802", + "duree_totale_s": 366.92, "nb_pages_total": 6, "pages": [ { "page": 1, "type": "FICHE_RECUEIL", - "duree_identification_s": 10.55, - "duree_extraction_s": 71.53, + "duree_identification_s": 14.04, + "duree_extraction_s": 159.98, "statut": "ok", - "erreur": null + "erreur": null, + "zones_timing": [ + { + "zone": 1, + "duree_s": 38.01 + }, + { + "zone": 2, + "duree_s": 46.84 + }, + { + "zone": 3, + "duree_s": 51.66 + }, + { + "zone": 4, + "duree_s": 23.47 + } + ] }, { "page": 2, "type": "FICHE_CONCERTATION_VIDE", - "duree_identification_s": 10.12, + "duree_identification_s": 9.5, "duree_extraction_s": null, "statut": "ignoree", "erreur": null @@ -745,32 +1043,32 @@ { "page": 3, "type": "SEJOUR_MANUSCRIT", - "duree_identification_s": 10.72, - "duree_extraction_s": null, - "statut": "ignoree", + "duree_identification_s": 11.43, + "duree_extraction_s": 37.44, + "statut": "ok", "erreur": null }, { "page": 4, "type": "ELEMENTS_PREUVE", - "duree_identification_s": 10.83, - "duree_extraction_s": 37.92, + "duree_identification_s": 7.57, + "duree_extraction_s": 52.76, "statut": "ok", "erreur": null }, { "page": 5, "type": "FICHE_ADMIN_1_2", - "duree_identification_s": 12.02, - "duree_extraction_s": 27.99, + "duree_identification_s": 9.47, + "duree_extraction_s": 25.34, "statut": "ok", "erreur": null }, { "page": 6, "type": "FICHE_ADMIN_2_2", - "duree_identification_s": 7.75, - "duree_extraction_s": 43.06, + "duree_identification_s": 6.61, + "duree_extraction_s": 31.78, "statut": "ok", "erreur": null }