chore: add .gitignore

This commit is contained in:
dom
2026-03-05 00:37:34 +01:00
parent da34bdc8d7
commit d2e0fec97d
2087 changed files with 1485338 additions and 14 deletions

View File

@@ -0,0 +1,32 @@
# Règles métier T2A — Connaissances critiques
## 1. Index alphabétique CIM-10
- Ne pas se contenter de vectoriser les codes (liste analytique)
- Vectoriser les **index alphabétiques** : un médecin cherche "Gastrite", pas "K29.7"
- Le lien langage naturel → code est bien plus riche dans l'index alphabétique
## 2. Validité temporelle des codes CCAM
- Chaque code CCAM a une date de début et de fin de validité
- Si un acte est hors période de validité (supprimé ou remplacé dans une version), le **groupage plantera**
- Le RAG doit toujours vérifier les dates de validité des codes dans les tables de référence
- Version actuelle : CCAM V4 2025
## 3. Diagnostics d'exclusion (piège IA classique)
- Si le patient a un symptôme (R10.4 "Douleur abdominale") ET un diagnostic précis (K35.8 "Appendicite"),
le symptôme est **exclu** au profit du diagnostic précis
- Règle : les codes **Chapitres I à XIV** de la CIM-10 priment sur les codes **Chapitre XVIII** (symptômes)
- Le reranker doit implémenter cette priorisation
## 4. Hiérarchie des actes CCAM (non-cumul)
- La CCAM n'est pas que du texte, c'est de la **combinatoire**
- Règles de non-cumul : deux actes anatomiquement incompatibles ou inclus l'un dans l'autre → **alerte**
- Doit être vérifié selon le référentiel CCAM
## 5. Sévérité CMA/CMS (nerf de la guerre GHM)
- CMA = Complications ou Morbidités Associées
- CMS = Complications ou Morbidités Associées Sévères
- La détection des CMA/CMS détermine le passage du **niveau 1 au niveau 4 du GHM**
- Différence de valorisation financière énorme
- Le NLP doit chercher spécifiquement les **marqueurs de sévérité**
- Ex: "Insuffisance rénale **aiguë**" vs "**chronique**" → codes et niveaux différents
- Ex: "Dénutrition **sévère**" vs "modérée"

81
.gitignore vendored
View File

@@ -1,23 +1,76 @@
# Python
.venv/
# === Python ===
__pycache__/
*.pyc
*.py[cod]
*.pyo
*.egg-info/
.pytest_cache/
.hypothesis/
*.egg
dist/
build/
*.whl
# Données générées
output/
input/
data/
# === Virtual environments ===
.venv/
venv/
venv_*/
env/
# Référentiels (volumineux, non versionnés)
# === ML Models & Data ===
*.pt
*.pth
*.onnx
*.bin
*.safetensors
*.h5
*.hdf5
*.pkl
*.pickle
*.npy
*.npz
*.faiss
models/
*.tar.gz
*.zip
# === Documents & Media ===
*.pdf
*.xls
*.docx
*.xlsx
*.csv
*.png
*.jpg
*.jpeg
*.gif
*.mp3
*.wav
*.mp4
# Configuration locale
# === IDE ===
.idea/
.vscode/
*.swp
*.swo
*~
# === OS ===
.DS_Store
Thumbs.db
.~lock.*
# === Secrets ===
.env
*.env
credentials.json
token.pickle
# IDE / outils
.claude/
# === Logs & Cache ===
*.log
logs/
.pytest_cache/
.mypy_cache/
.ruff_cache/
htmlcov/
.coverage
# === Backups ===
*_backup_*
backups/

BIN
CCAM_V81.xls Normal file

Binary file not shown.

472
compare_cpam_models.py Normal file
View File

@@ -0,0 +1,472 @@
#!/usr/bin/env python3
"""Comparaison qualité CPAM : multi-modèles sur 3 dossiers.
Génère la contre-argumentation CPAM avec plusieurs modèles et compare :
- Longueur et densité des arguments
- Présence des 3 axes (médical, asymétrie, réglementaire)
- Citations de preuves du dossier
- Références aux sources RAG
- Mots-clés d'asymétrie d'information
"""
import json
import re
import sys
import time
from pathlib import Path
import requests
STRUCTURED_DIR = Path("output/structured")
OLLAMA_URL = "http://localhost:11434"
MODELS = ["gemma3:12b-v2"] # 12b avec nouveau prompt nuancé
TIMEOUTS = {
"gemma3:12b": 120,
"gemma3:27b": 300,
"qwen3:14b": 180,
"mistral-small3.2:24b": 300,
}
# 3 dossiers variés : DP+DA, DAS long, DP court
TEST_DOSSIERS = [
"183_23087212", # DP+DA contestés
"228_23176885", # DAS seul, arg long (1921c)
"153_23102610", # DP seul, arg court
]
def load_dossier(dossier_name: str) -> dict | None:
dossier_dir = STRUCTURED_DIR / dossier_name
if not dossier_dir.exists():
return None
for f in list(dossier_dir.glob("*_fusionne_cim10.json")) + sorted(dossier_dir.glob("*_cim10.json")):
return json.loads(f.read_text())
return None
def build_prompt(data: dict, controle: dict, sources: list[dict]) -> str:
"""Reconstruit le prompt CPAM (identique au pipeline)."""
# Import du vrai builder pour garantir la cohérence
sys.path.insert(0, str(Path(__file__).parent))
from src.config import ControleCPAM, DossierMedical
from src.control.cpam_response import _build_cpam_prompt
dossier = DossierMedical.model_validate(data)
ctrl = ControleCPAM.model_validate(controle)
return _build_cpam_prompt(dossier, ctrl, sources)
# Modèles incompatibles avec format:json d'Ollama (mode thinking)
NO_FORMAT_JSON_MODELS = {"qwen3:14b", "qwen3:8b", "qwen3:32b"}
def _parse_json_from_text(raw: str) -> dict | None:
"""Parse du JSON depuis une réponse brute (avec ou sans markdown)."""
text = raw.strip()
# Retirer bloc markdown ```json ... ```
if text.startswith("```"):
first_nl = text.find("\n")
if first_nl != -1:
text = text[first_nl + 1:]
if text.rstrip().endswith("```"):
text = text.rstrip()[:-3]
text = text.strip()
# Essayer tel quel
try:
return json.loads(text)
except json.JSONDecodeError:
pass
# Trouver le premier { ... dernier }
brace_start = text.find("{")
brace_end = text.rfind("}")
if brace_start != -1 and brace_end > brace_start:
try:
return json.loads(text[brace_start:brace_end + 1])
except json.JSONDecodeError:
pass
return None
def call_ollama(prompt: str, model: str) -> tuple[dict | None, float, str]:
"""Appelle Ollama et retourne (parsed_json, duration_s, raw_text)."""
timeout = TIMEOUTS.get(model, 180)
use_format_json = model not in NO_FORMAT_JSON_MODELS
# Pour Qwen3 : ajouter /no_think pour désactiver le mode thinking
actual_prompt = prompt
if model in NO_FORMAT_JSON_MODELS:
actual_prompt = prompt + "\n/no_think"
payload = {
"model": model,
"prompt": actual_prompt,
"stream": False,
"options": {
"temperature": 0.1,
"num_predict": 4000,
},
}
if use_format_json:
payload["format"] = "json"
t0 = time.time()
try:
response = requests.post(
f"{OLLAMA_URL}/api/generate",
json=payload,
timeout=timeout,
)
response.raise_for_status()
duration = time.time() - t0
raw = response.json().get("response", "")
parsed = _parse_json_from_text(raw)
return parsed, duration, raw
except json.JSONDecodeError:
duration = time.time() - t0
return None, duration, raw
except Exception as e:
duration = time.time() - t0
return None, duration, str(e)
def compute_metrics(parsed: dict | None) -> dict:
"""Calcule les métriques de qualité."""
if parsed is None:
return {"valid_json": False}
full_text = json.dumps(parsed, ensure_ascii=False)
# 3 axes présents ?
has_med = bool(parsed.get("contre_arguments_medicaux"))
has_asym = bool(parsed.get("contre_arguments_asymetrie"))
has_regl = bool(parsed.get("contre_arguments_reglementaires"))
has_3axes = has_med and has_asym and has_regl
# Longueurs par axe
len_med = len(str(parsed.get("contre_arguments_medicaux", "")))
len_asym = len(str(parsed.get("contre_arguments_asymetrie", "")))
len_regl = len(str(parsed.get("contre_arguments_reglementaires", "")))
len_total_args = len_med + len_asym + len_regl
# Fallback ancien format
if not has_3axes:
len_total_args = max(len_total_args, len(str(parsed.get("contre_arguments", ""))))
# Preuves du dossier
preuves = parsed.get("preuves_dossier", [])
n_preuves = len(preuves) if isinstance(preuves, list) else 0
# Références structurées
refs = parsed.get("references", [])
n_refs = len(refs) if isinstance(refs, list) else 0
# Références avec citation verbatim
n_refs_citation = 0
if isinstance(refs, list):
for r in refs:
if isinstance(r, dict) and r.get("citation") and len(str(r["citation"])) > 20:
n_refs_citation += 1
# Mots-clés d'asymétrie
full_lower = full_text.lower()
asymetrie_kw = [
"biologie", "imagerie", "scanner", "irm", "échographie",
"traitement", "médicament", "posologie",
"asymétrie", "non transmis", "n'avait pas", "n'a pas eu accès",
"imc", "antécédent", "crp", "hémoglobine", "leucocytes",
]
n_asymetrie = sum(1 for kw in asymetrie_kw if kw in full_lower)
# Points d'accord réels
accord = str(parsed.get("points_accord", ""))
accord_real = bool(accord) and accord.lower().strip() not in ("aucun", "aucun.", "n/a", "")
# Conclusion non vide
conclusion = str(parsed.get("conclusion", ""))
has_conclusion = len(conclusion) > 20
return {
"valid_json": True,
"has_3axes": has_3axes,
"len_med": len_med,
"len_asym": len_asym,
"len_regl": len_regl,
"len_total_args": len_total_args,
"n_preuves": n_preuves,
"n_refs": n_refs,
"n_refs_citation": n_refs_citation,
"n_asymetrie": n_asymetrie,
"accord_real": accord_real,
"has_conclusion": has_conclusion,
"total_len": len(full_text),
}
def model_key(model: str) -> str:
"""Clé courte pour un modèle (ex: 'gemma3:12b''gemma3_12b')."""
return model.replace(":", "_").replace(".", "_")
def print_multi_model(results: list[dict], models: list[str]):
"""Affiche la comparaison multi-modèles."""
W = 140
col_w = 18
print("\n" + "=" * W)
print(f"COMPARAISON CPAM : {' vs '.join(models)}")
print("=" * W)
metric_labels = [
("Durée (s)", "duration", True),
("3 axes", "has_3axes", False),
("Args médicaux", "len_med", False),
("Args asymétrie", "len_asym", False),
("Args réglementaires", "len_regl", False),
("Total args (car.)", "len_total_args", False),
("Preuves structurées", "n_preuves", False),
("Références RAG", "n_refs", False),
("Refs verbatim", "n_refs_citation", False),
("Mots-clés asymétrie", "n_asymetrie", False),
("Points d'accord", "accord_real", False),
("Conclusion étayée", "has_conclusion", False),
("Longueur totale", "total_len", False),
]
for r in results:
print(f"\n{'' * W}")
print(f" {r['dossier']} / OGC {r['ogc']}{r['titre']}")
print(f" Argument CPAM : {r['arg_len']} car. | Prompt : {r['prompt_len']} car.")
print(f"{'' * W}")
# Vérifier validité
all_valid = True
for m in models:
mk = model_key(m)
metrics = r.get(f"metrics_{mk}", {})
if not metrics.get("valid_json", False):
dur = r.get(f"duration_{mk}", 0)
print(f" {m} : JSON INVALIDE ({dur:.1f}s)")
all_valid = False
if not all_valid:
continue
# Header
header = f" {'Métrique':<25}"
for m in models:
short = m.split(":")[0][:6] + ":" + m.split(":")[-1] if ":" in m else m[:col_w]
header += f" {short:>{col_w}}"
print(header)
print(f" {'' * (25 + (col_w + 1) * len(models))}")
for label, key, is_duration in metric_labels:
row = f" {label:<25}"
for m in models:
mk = model_key(m)
if is_duration:
val = r.get(f"duration_{mk}", 0)
row += f" {val:>{col_w - 1}.1f}s"
else:
metrics = r.get(f"metrics_{mk}", {})
val = metrics.get(key, 0)
if isinstance(val, bool):
row += f" {'Oui' if val else 'Non':>{col_w}}"
else:
row += f" {val:>{col_w}}"
print(row)
# Synthèse globale
print(f"\n{'=' * W}")
print("SYNTHÈSE GLOBALE")
print(f"{'=' * W}")
# Filtrer les résultats valides pour tous les modèles
valid = []
for r in results:
all_ok = all(r.get(f"metrics_{model_key(m)}", {}).get("valid_json", False) for m in models)
if all_ok:
valid.append(r)
if not valid:
print(" Aucun résultat valide pour tous les modèles.")
return
n = len(valid)
print(f" Dossiers comparés : {n}")
# Header synthèse
header = f"\n {'Métrique':<25}"
for m in models:
short = m.split(":")[0][:6] + ":" + m.split(":")[-1] if ":" in m else m[:col_w]
header += f" {short:>{col_w}}"
header += f" {'Meilleur':>{col_w}}"
print(header)
print(f" {'' * (25 + (col_w + 1) * (len(models) + 1))}")
# Durée
row = f" {'Durée moy. (s)':<25}"
dur_vals = {}
for m in models:
mk = model_key(m)
avg_dur = sum(r.get(f"duration_{mk}", 0) for r in valid) / n
dur_vals[m] = avg_dur
row += f" {avg_dur:>{col_w - 1}.1f}s"
best = min(dur_vals, key=dur_vals.get)
row += f" {best:>{col_w}}"
print(row)
# Métriques (higher is better)
for label, key in [
("Total args (car.)", "len_total_args"),
("Preuves structurées", "n_preuves"),
("Références RAG", "n_refs"),
("Refs verbatim", "n_refs_citation"),
("Mots-clés asymétrie", "n_asymetrie"),
]:
row = f" {label:<25}"
vals = {}
for m in models:
mk = model_key(m)
avg_val = sum(r.get(f"metrics_{mk}", {}).get(key, 0) for r in valid) / n
vals[m] = avg_val
row += f" {avg_val:>{col_w}.1f}"
best = max(vals, key=vals.get)
row += f" {best:>{col_w}}"
print(row)
# Booléens (count True)
for label, key in [
("3 axes", "has_3axes"),
("Points d'accord", "accord_real"),
]:
row = f" {label:<25}"
vals = {}
for m in models:
mk = model_key(m)
cnt = sum(1 for r in valid if r.get(f"metrics_{mk}", {}).get(key, False))
vals[m] = cnt
row += f" {f'{cnt}/{n}':>{col_w}}"
best = max(vals, key=vals.get)
row += f" {best:>{col_w}}"
print(row)
# Durées totales
print()
fastest = min(models, key=lambda m: sum(r.get(f"duration_{model_key(m)}", 0) for r in valid))
fastest_dur = sum(r.get(f"duration_{model_key(fastest)}", 0) for r in valid)
for m in models:
mk = model_key(m)
total = sum(r.get(f"duration_{mk}", 0) for r in valid)
ratio = total / fastest_dur if fastest_dur > 0 else 0
print(f" {m:<25} total={total:.0f}s (x{ratio:.1f})")
print()
def main():
# Charger les résultats précédents (all_models)
prev_file = Path("output/compare_cpam_all_models.json")
prev_data = {}
if prev_file.exists():
for entry in json.loads(prev_file.read_text()):
prev_data[entry["dossier"]] = entry
# On compare l'ancien 12b (ancien prompt) vs le nouveau 12b-v2 (nouveau prompt nuancé)
# + 27b comme référence nuance
ref_models = ["gemma3:12b", "gemma3:27b"]
all_models = ref_models + MODELS
print("=" * 100)
print(f"Comparaison qualité CPAM : {' / '.join(all_models)}")
print(f"Dossiers : {', '.join(TEST_DOSSIERS)}")
print(f"Test : gemma3:12b avec NOUVEAU prompt nuancé (v2)")
print(f"Résultats précédents : {'oui' if prev_data else 'non'}")
print("=" * 100)
results = []
for dossier_name in TEST_DOSSIERS:
data = load_dossier(dossier_name)
if not data:
print(f"\nERREUR : {dossier_name} non trouvé")
continue
controles = [c for c in data.get("controles_cpam", []) if c.get("arg_ucr")]
if not controles:
print(f"\nERREUR : {dossier_name} — pas de contrôle CPAM")
continue
controle = controles[0]
sources = [
{
"document": s.get("document", ""),
"page": s.get("page"),
"code": s.get("code"),
"extrait": s.get("extrait", ""),
}
for s in controle.get("sources_reponse", [])
]
prompt = build_prompt(data, controle, sources)
print(f"\n[{dossier_name}] OGC {controle['numero_ogc']}{controle.get('titre', '')}")
print(f" Prompt : {len(prompt)} car. | Arg CPAM : {len(controle.get('arg_ucr', ''))} car.")
result = {
"dossier": dossier_name,
"ogc": controle["numero_ogc"],
"titre": controle.get("titre", ""),
"arg_len": len(controle.get("arg_ucr", "")),
"prompt_len": len(prompt),
}
# Réutiliser les résultats précédents pour les modèles de référence
prev = prev_data.get(dossier_name)
if prev:
for old_model in ref_models:
mk = model_key(old_model)
result[f"duration_{mk}"] = prev.get(f"duration_{mk}", 0)
result[f"metrics_{mk}"] = prev.get(f"metrics_{mk}", {})
result[f"response_{mk}"] = prev.get(f"response_{mk}")
dur = result[f"duration_{mk}"]
is_valid = result[f"metrics_{mk}"].get("valid_json", False)
print(f"{old_model} ... (précédent) {'OK' if is_valid else 'FAIL'} ({dur:.1f}s)")
# Tester le 12b-v2 (nouveau prompt) — appelle gemma3:12b avec le prompt modifié
for model_label in MODELS:
mk = model_key(model_label)
actual_model = "gemma3:12b" # même modèle, nouveau prompt
print(f"{model_label} (nouveau prompt) ...", end=" ", flush=True)
parsed, dur, raw = call_ollama(prompt, actual_model)
status = "OK" if parsed else "FAIL"
print(f"{status} ({dur:.1f}s)")
result[f"duration_{mk}"] = dur
result[f"metrics_{mk}"] = compute_metrics(parsed)
result[f"response_{mk}"] = parsed
results.append(result)
# Affichage
print_multi_model(results, all_models)
# Sauvegarde
output_file = Path("output/compare_cpam_prompt_v2.json")
output_file.parent.mkdir(parents=True, exist_ok=True)
save_data = []
for r in results:
entry = {
"dossier": r["dossier"],
"ogc": r["ogc"],
"titre": r["titre"],
}
for m in all_models:
mk = model_key(m)
entry[f"duration_{mk}"] = r.get(f"duration_{mk}", 0)
entry[f"metrics_{mk}"] = r.get(f"metrics_{mk}", {})
entry[f"response_{mk}"] = r.get(f"response_{mk}")
save_data.append(entry)
output_file.write_text(json.dumps(save_data, ensure_ascii=False, indent=2))
print(f"Résultats sauvegardés dans {output_file}")
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load Diff

738
cpam/extract_t2a_llm.py Normal file
View File

@@ -0,0 +1,738 @@
#!/usr/bin/env python3
"""
extract_t2a_llm.py — Extracteur T2A généraliste via OCR + LLM (Ollama)
Entrée : PDF (scanné ou natif) de document T2A (décision UCR, notification CPAM, rapport ARS…)
Sortie : Fichier Excel (.xlsx) avec les données structurées
Architecture :
PDF → OCR/texte natif → Détection type (1 appel LLM) → Extraction bloc par bloc (N appels LLM) → Excel
Usage :
python extract_t2a_llm.py FICHIER.pdf [--model gemma3:27b-it-qat] [--output out.xlsx] [--verbose]
"""
from __future__ import annotations
import argparse
import json
import re
import sys
import time
from pathlib import Path
import pymupdf
import requests
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
# ---------------------------------------------------------------------------
# 0. Normalisation texte OCR
# ---------------------------------------------------------------------------
def normalize_text(text: str) -> str:
"""Normalise les apostrophes, guillemets et espaces issus de l'OCR."""
text = text.replace("\u2018", "'").replace("\u2019", "'")
text = text.replace("\u201C", '"').replace("\u201D", '"')
text = text.replace("\u00AB", '"').replace("\u00BB", '"')
text = text.replace("''", "'")
text = text.replace("\u00A0", " ").replace("\u202F", " ")
text = re.sub(r"\bF'UCR\b", "l'UCR", text)
text = re.sub(r"\bl''UCR\b", "l'UCR", text)
return text
# ---------------------------------------------------------------------------
# 1. OCR / Extraction texte (docTR — deep learning, GPU)
# ---------------------------------------------------------------------------
_doctr_model = None
def _get_doctr_model():
"""Lazy-init du modèle docTR (chargé une seule fois, GPU si VRAM libre, sinon CPU)."""
global _doctr_model
if _doctr_model is not None:
return _doctr_model
from doctr.models import ocr_predictor
print(" Chargement du modèle docTR (première utilisation)...")
t0 = time.time()
_doctr_model = ocr_predictor(
det_arch="db_resnet50",
reco_arch="crnn_vgg16_bn",
pretrained=True,
)
# Déplacer sur GPU si disponible et assez de VRAM libre
try:
import torch
if torch.cuda.is_available():
free_vram = torch.cuda.mem_get_info()[0] / (1024 ** 3)
if free_vram > 1.0:
try:
_doctr_model = _doctr_model.cuda()
print(f" docTR sur GPU ({torch.cuda.get_device_name(0)}, "
f"{free_vram:.1f} Go libres) — {time.time() - t0:.1f}s")
except torch.cuda.OutOfMemoryError:
_doctr_model = _doctr_model.cpu()
torch.cuda.empty_cache()
print(f" GPU VRAM insuffisante, docTR sur CPU — {time.time() - t0:.1f}s")
else:
print(f" GPU VRAM trop basse ({free_vram:.1f} Go libres, Ollama ?), "
f"docTR sur CPU — {time.time() - t0:.1f}s")
else:
print(f" docTR sur CPU — {time.time() - t0:.1f}s")
except ImportError:
print(f" docTR sur CPU — {time.time() - t0:.1f}s")
return _doctr_model
def ocr_pdf(pdf_path: str, dpi: int = 300) -> str:
"""Extrait le texte du PDF : texte natif si disponible, sinon OCR docTR (GPU)."""
doc = pymupdf.open(pdf_path)
total = len(doc)
# Détection : texte natif vs scanné (sur la première page)
first_page_text = doc[0].get_text() if total > 0 else ""
is_native = len(first_page_text.strip()) > 100
if is_native:
print(" Mode : extraction texte natif (pymupdf)")
full_text = []
for i, page in enumerate(doc):
print(f" Extraction page {i+1}/{total}...", end="\r")
full_text.append(page.get_text())
print(f" Extraction terminée : {total} pages. ")
return normalize_text("\n\n".join(full_text))
# OCR docTR
print(" Mode : OCR docTR (deep learning, GPU)")
from doctr.io import DocumentFile
model = _get_doctr_model()
print(f" Lecture du PDF ({total} pages)...")
doc_pages = DocumentFile.from_pdf(pdf_path)
print(f" OCR en cours sur {len(doc_pages)} pages...")
t0 = time.time()
result = model(doc_pages)
elapsed = time.time() - t0
print(f" OCR terminé : {total} pages en {elapsed:.1f}s "
f"({elapsed/total:.1f}s/page)")
full_text = result.render()
return normalize_text(full_text)
# ---------------------------------------------------------------------------
# 2. Client Ollama
# ---------------------------------------------------------------------------
NO_FORMAT_JSON_PREFIXES = ("qwen3", "qwen2.5")
OLLAMA_URL = "http://localhost:11434"
def parse_json_response(raw: str) -> dict | list | None:
"""Parse une réponse JSON, en gérant les blocs markdown et le texte parasite."""
text = raw.strip()
# Supprimer les blocs <think>...</think> (Qwen3)
text = re.sub(r"<think>.*?</think>", "", text, flags=re.DOTALL).strip()
# Supprimer les blocs markdown ```json ... ```
if text.startswith("```"):
first_nl = text.find("\n")
if first_nl != -1:
text = text[first_nl + 1:]
if text.rstrip().endswith("```"):
text = text.rstrip()[:-3]
text = text.strip()
# Tentative directe
try:
return json.loads(text)
except json.JSONDecodeError:
pass
# Extraire le premier objet ou tableau JSON
for start_char, end_char in [("{", "}"), ("[", "]")]:
start = text.find(start_char)
if start == -1:
continue
depth = 0
for i in range(start, len(text)):
if text[i] == start_char:
depth += 1
elif text[i] == end_char:
depth -= 1
if depth == 0:
try:
return json.loads(text[start:i + 1])
except json.JSONDecodeError:
break
return None
def call_ollama(
prompt: str,
model: str,
temperature: float = 0.1,
max_tokens: int = 4000,
timeout: int = 120,
verbose: bool = False,
) -> dict | list | None:
"""Appelle Ollama. Utilise l'API chat avec think=false pour Qwen3."""
is_qwen = any(model.startswith(p) for p in NO_FORMAT_JSON_PREFIXES)
if is_qwen:
# API chat + think:false pour Qwen3 (pas de format JSON natif)
endpoint = f"{OLLAMA_URL}/api/chat"
body = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False,
"think": False,
"options": {
"temperature": temperature,
"num_predict": max_tokens,
},
}
else:
# API generate + format JSON natif pour les autres modèles
endpoint = f"{OLLAMA_URL}/api/generate"
body = {
"model": model,
"prompt": prompt,
"stream": False,
"format": "json",
"options": {
"temperature": temperature,
"num_predict": max_tokens,
},
}
if verbose:
print(f"\n--- PROMPT ({model}) ---")
print(prompt[:500] + ("..." if len(prompt) > 500 else ""))
print("--- FIN PROMPT ---\n")
for attempt in range(2):
try:
t0 = time.time()
response = requests.post(endpoint, json=body, timeout=timeout)
elapsed = time.time() - t0
response.raise_for_status()
data = response.json()
# Extraire le texte de la réponse selon l'API utilisée
if is_qwen:
raw = data.get("message", {}).get("content", "")
else:
raw = data.get("response", "")
if verbose:
print(f"--- RÉPONSE ({elapsed:.1f}s) ---")
print(raw[:500] + ("..." if len(raw) > 500 else ""))
print("--- FIN RÉPONSE ---\n")
result = parse_json_response(raw)
if result is not None:
return result
if attempt == 0:
print(f" [warn] JSON invalide, retry... (raw: {raw[:100]})")
except requests.ConnectionError:
print("[ERREUR] Ollama non disponible sur localhost:11434")
sys.exit(1)
except requests.Timeout:
print(f" [warn] Timeout ({timeout}s) — tentative {attempt + 1}/2")
if attempt == 1:
return None
except requests.RequestException as e:
print(f" [warn] Erreur requête : {e}")
return None
return None
# ---------------------------------------------------------------------------
# 3. Phase 1 — Détection du type de document
# ---------------------------------------------------------------------------
PROMPT_PHASE1 = """\
Tu es un expert en codage PMSI et contrôle T2A. Analyse le début de ce document et identifie sa structure.
TEXTE (début du document) :
---
{text_preview}
---
Réponds UNIQUEMENT en JSON avec ces champs :
{{
"type_document": "decision_ucr | notification_cpam | rapport_controle | autre",
"organisme": "nom de l'organisme (CPAM, UCR, ARS...)",
"date_document": "date au format YYYY-MM-DD si trouvée, sinon vide",
"objet": "résumé en une phrase de l'objet du document",
"separateur_blocs": "regex Python pour séparer les dossiers individuels (ex: OGC \\\\d+ :)",
"colonnes_detectees": ["liste des champs/colonnes détectés dans la structure"]
}}
IMPORTANT :
- Le separateur_blocs doit être un regex Python valide
- Il doit capturer le motif qui sépare chaque dossier/cas individuel
- Si c'est un document UCR, le séparateur est typiquement "OGC \\\\d+ :"
- Si tu ne trouves pas de séparateur clair, mets une chaîne vide ""
"""
def detect_document_type(full_text: str, model: str, timeout: int, verbose: bool) -> dict:
"""Phase 1 : détection du type de document via LLM."""
preview = full_text[:3000]
prompt = PROMPT_PHASE1.format(text_preview=preview)
result = call_ollama(prompt, model=model, timeout=timeout, verbose=verbose)
if result is None:
print(" [warn] Phase 1 : détection échouée, utilisation des valeurs par défaut")
return {
"type_document": "autre",
"organisme": "",
"date_document": "",
"objet": "",
"separateur_blocs": "",
"colonnes_detectees": [],
}
return result
# ---------------------------------------------------------------------------
# 4. Découpage en blocs
# ---------------------------------------------------------------------------
def split_into_blocks(full_text: str, separator_pattern: str) -> list[str]:
"""Découpe le texte en blocs logiques (dossiers individuels)."""
blocks = []
# Tentative avec le séparateur détecté par le LLM
if separator_pattern:
try:
regex = re.compile(separator_pattern, re.MULTILINE | re.IGNORECASE)
parts = regex.split(full_text)
# Recombiner : le séparateur fait partie du bloc suivant
matches = list(regex.finditer(full_text))
if len(matches) >= 3:
for i, match in enumerate(matches):
start = match.start()
end = matches[i + 1].start() if i + 1 < len(matches) else len(full_text)
block = full_text[start:end].strip()
if block:
blocks.append(block)
print(f" Découpage par séparateur : {len(blocks)} blocs trouvés")
return blocks
else:
print(f" [warn] Séparateur '{separator_pattern}' → seulement {len(matches)} blocs, fallback")
except re.error as e:
print(f" [warn] Regex invalide '{separator_pattern}' : {e}, fallback")
# Fallback : découpage par taille (~6000 chars, chevauchement 500)
chunk_size = 6000
overlap = 500
text_len = len(full_text)
if text_len <= chunk_size:
return [full_text]
pos = 0
while pos < text_len:
end = min(pos + chunk_size, text_len)
# Essayer de couper à une fin de ligne
if end < text_len:
newline_pos = full_text.rfind("\n", pos + chunk_size - 200, end + 200)
if newline_pos > pos:
end = newline_pos
blocks.append(full_text[pos:end].strip())
pos = end - overlap if end < text_len else text_len
print(f" Découpage par taille : {len(blocks)} blocs ({chunk_size} chars, chevauchement {overlap})")
return blocks
# ---------------------------------------------------------------------------
# 5. Phase 2 — Extraction bloc par bloc
# ---------------------------------------------------------------------------
SCHEMA_FIELDS = """\
Champs à extraire (JSON) — remplis chaque champ ou laisse une chaîne vide "" si non trouvé :
- "champ": numéro de champ (entier, 0 si non trouvé)
- "ogc": numéro OGC / numéro de dossier (entier, 0 si non trouvé)
- "type_desaccord": type de désaccord — "DP", "DAS", "DP + DAS", ou ""
- "code_etablissement": code(s) CIM-10 de l'établissement (ex: "G40.0 + F10.2")
- "libelle_etablissement": libellé(s) correspondant aux codes établissement
- "code_controleurs": code(s) CIM-10 des contrôleurs (ou "non repris")
- "libelle_controleurs": libellé(s) correspondant aux codes contrôleurs
- "codes_retenus_final": code(s) finalement retenus par l'UCR/la décision
- "decision": classification — "Favorable établissement", "Défavorable établissement", "Mixte", ou "Indéterminé"
* "Favorable établissement" = la décision retient l'avis/le codage de l'établissement
* "Défavorable établissement" = la décision confirme l'avis des contrôleurs
* "Mixte" = partiellement favorable et partiellement défavorable
* "Indéterminé" = impossible à classifier clairement
- "texte_decision_complet": texte intégral de la décision/conclusion
- "resume_motif": résumé en 1-2 phrases du motif de la décision
- "regles_citees": règles de codage citées (ex: "T3, T7")
- "references_guide": références documentaires (guide méthodologique, fascicules ATIH, avis Agora…)
- "ghm_mentionne": tous les GHM mentionnés (ex: "05M09 / 05M092")
- "ghs_mentionne": tous les GHS mentionnés
- "ghm_final": le GHM final retenu
- "ghs_final": le GHS final retenu
- "impact_groupage": impact sur le groupage — "Mieux valorisé", "Pas de changement", ou ""
"""
PROMPT_PHASE2 = """\
Tu es un expert en codage PMSI et contrôle T2A.
CONTEXTE DOCUMENT :
- Type : {type_document}
- Organisme : {organisme}
- Objet : {objet}
BLOC DE TEXTE À ANALYSER :
---
{block_text}
---
CONSIGNES :
1. Extrais les informations de chaque dossier/cas présent dans ce bloc.
2. Si le bloc contient UN SEUL dossier, retourne un objet JSON.
3. Si le bloc contient PLUSIEURS dossiers, retourne une LISTE d'objets JSON.
4. Si le bloc ne contient aucun dossier exploitable (en-tête, pied de page, texte administratif sans cas individuel), retourne : {{"skip": true}}
{schema}
IMPORTANT :
- Sois précis sur les codes CIM-10 (format X00.0)
- Pour la décision, analyse attentivement le texte : "retient l'avis de l'établissement" = Favorable, "confirme l'avis des contrôleurs" = Défavorable
- Ne laisse aucun champ sans clé, utilise "" pour les valeurs inconnues
- Retourne UNIQUEMENT du JSON valide, sans texte avant ou après
"""
def extract_block(
block_text: str,
doc_info: dict,
model: str,
timeout: int,
verbose: bool,
) -> list[dict]:
"""Extrait les données d'un bloc via LLM. Retourne une liste de dossiers."""
prompt = PROMPT_PHASE2.format(
type_document=doc_info.get("type_document", "autre"),
organisme=doc_info.get("organisme", ""),
objet=doc_info.get("objet", ""),
block_text=block_text[:8000], # Limiter la taille
schema=SCHEMA_FIELDS,
)
result = call_ollama(prompt, model=model, max_tokens=4000, timeout=timeout, verbose=verbose)
if result is None:
return []
# Skip
if isinstance(result, dict) and result.get("skip"):
return []
# Normaliser en liste
if isinstance(result, dict):
items = [result]
elif isinstance(result, list):
items = [r for r in result if isinstance(r, dict) and not r.get("skip")]
else:
return []
return items
# ---------------------------------------------------------------------------
# 6. Fusion et dédoublonnage
# ---------------------------------------------------------------------------
# Mapping clés LLM (snake_case) → clés Excel (TitleCase)
KEY_MAP = {
"champ": "Champ",
"ogc": "OGC",
"type_desaccord": "Type_desaccord",
"code_etablissement": "Code_etablissement",
"libelle_etablissement": "Libelle_etablissement",
"code_controleurs": "Code_controleurs",
"libelle_controleurs": "Libelle_controleurs",
"codes_retenus_final": "Codes_retenus_final",
"decision": "Decision",
"texte_decision_complet": "Texte_decision_complet",
"resume_motif": "Resume_motif",
"regles_citees": "Regles_citees",
"references_guide": "References_guide",
"ghm_mentionne": "GHM_mentionne",
"ghs_mentionne": "GHS_mentionne",
"ghm_final": "GHM_final",
"ghs_final": "GHS_final",
"impact_groupage": "Impact_groupage",
}
def normalize_row(raw: dict) -> dict:
"""Convertit les clés LLM en clés Excel et normalise les types."""
row = {}
for llm_key, excel_key in KEY_MAP.items():
val = raw.get(llm_key, raw.get(excel_key, ""))
# Convertir en int pour Champ et OGC
if excel_key in ("Champ", "OGC"):
try:
val = int(val) if val else 0
except (ValueError, TypeError):
val = 0
elif not isinstance(val, str):
val = str(val) if val is not None else ""
row[excel_key] = val
return row
def merge_and_deduplicate(all_items: list[dict]) -> list[dict]:
"""Fusionne, déduplique par OGC, et trie les résultats."""
rows = [normalize_row(item) for item in all_items]
# Filtrer les lignes sans contenu utile
rows = [r for r in rows if r["OGC"] > 0 or r["Code_etablissement"] or r["Decision"]]
# Dédoublonnage par OGC (garder la version la plus complète)
seen: dict[int, dict] = {}
deduped: list[dict] = []
for r in rows:
key = r["OGC"]
if key == 0:
deduped.append(r)
continue
if key in seen:
old = seen[key]
old_score = sum(1 for v in old.values() if v and v != 0)
new_score = sum(1 for v in r.values() if v and v != 0)
if new_score > old_score:
deduped = [x for x in deduped if x["OGC"] != key]
deduped.append(r)
seen[key] = r
else:
seen[key] = r
deduped.append(r)
deduped.sort(key=lambda r: (r["Champ"], r["OGC"]))
return deduped
# ---------------------------------------------------------------------------
# 7. Export Excel
# ---------------------------------------------------------------------------
HEADERS = [
"Champ", "OGC", "Type_desaccord",
"Code_etablissement", "Libelle_etablissement",
"Code_controleurs", "Libelle_controleurs",
"Codes_retenus_final",
"Decision", "Texte_decision_complet", "Resume_motif",
"Regles_citees", "References_guide",
"GHM_mentionne", "GHS_mentionne", "GHM_final", "GHS_final",
"Impact_groupage",
]
HEADER_LABELS = [
"Champ", "N° OGC", "Type désaccord",
"Code(s) Établissement", "Libellé Établissement",
"Code(s) Contrôleurs", "Libellé Contrôleurs",
"Code(s) retenus (final)",
"Décision UCR", "Texte décision complet", "Résumé du motif",
"Règles codage citées", "Références (guide, fascicules, avis)",
"GHM mentionné(s)", "GHS mentionné(s)", "GHM final", "GHS final",
"Impact groupage",
]
def write_excel(rows: list[dict], output_path: str):
"""Écrit les résultats dans un fichier Excel (feuille unique)."""
wb = Workbook()
ws = wb.active
ws.title = "Décisions UCR"
# Styles
header_font = Font(bold=True, color="FFFFFF", size=11)
header_fill = PatternFill(start_color="2F5496", end_color="2F5496", fill_type="solid")
header_align = Alignment(horizontal="center", vertical="center", wrap_text=True)
thin_border = Border(
left=Side(style="thin"), right=Side(style="thin"),
top=Side(style="thin"), bottom=Side(style="thin"),
)
fav_fill = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
defav_fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")
mixte_fill = PatternFill(start_color="FFEB9C", end_color="FFEB9C", fill_type="solid")
# En-têtes
for col, label in enumerate(HEADER_LABELS, 1):
cell = ws.cell(row=1, column=col, value=label)
cell.font = header_font
cell.fill = header_fill
cell.alignment = header_align
cell.border = thin_border
# Données
for row_idx, data in enumerate(rows, 2):
for col_idx, key in enumerate(HEADERS, 1):
val = data.get(key, "")
cell = ws.cell(row=row_idx, column=col_idx, value=val)
cell.border = thin_border
cell.alignment = Alignment(vertical="top", wrap_text=True)
# Colorer la colonne Décision
dec_col = HEADERS.index("Decision") + 1
decision_cell = ws.cell(row=row_idx, column=dec_col)
dv = str(decision_cell.value or "")
if "Favorable" in dv and "Défavorable" not in dv:
decision_cell.fill = fav_fill
elif "Défavorable" in dv:
decision_cell.fill = defav_fill
elif "Mixte" in dv:
decision_cell.fill = mixte_fill
# Largeurs de colonnes
col_widths = {
"Champ": 8, "OGC": 8, "Type_desaccord": 14,
"Code_etablissement": 22, "Libelle_etablissement": 40,
"Code_controleurs": 22, "Libelle_controleurs": 40,
"Codes_retenus_final": 22,
"Decision": 24, "Texte_decision_complet": 80,
"Resume_motif": 60,
"Regles_citees": 16, "References_guide": 50,
"GHM_mentionne": 16, "GHS_mentionne": 16,
"GHM_final": 12, "GHS_final": 10,
"Impact_groupage": 20,
}
for i, key in enumerate(HEADERS, 1):
ws.column_dimensions[ws.cell(row=1, column=i).column_letter].width = col_widths.get(key, 15)
# Filtre automatique + freeze
last_col_letter = ws.cell(row=1, column=len(HEADERS)).column_letter
ws.auto_filter.ref = f"A1:{last_col_letter}{len(rows)+1}"
ws.freeze_panes = "A2"
wb.save(output_path)
print(f"Excel enregistré : {output_path}")
# ---------------------------------------------------------------------------
# 8. CLI / Main
# ---------------------------------------------------------------------------
def main():
parser = argparse.ArgumentParser(
description="Extracteur T2A généraliste via OCR + LLM (Ollama)",
)
parser.add_argument("pdf", help="Fichier PDF à traiter")
parser.add_argument("--model", default="gemma3:27b-it-qat",
help="Modèle Ollama (défaut: gemma3:27b-it-qat)")
parser.add_argument("--timeout", type=int, default=120,
help="Timeout par appel LLM en secondes (défaut: 120)")
parser.add_argument("--output", default=None,
help="Fichier Excel de sortie (défaut: <nom>_llm.xlsx)")
parser.add_argument("--dpi", type=int, default=300,
help="Résolution OCR (défaut: 300)")
parser.add_argument("--no-cache", action="store_true",
help="Désactiver le cache texte OCR")
parser.add_argument("--verbose", action="store_true",
help="Afficher les prompts/réponses LLM")
args = parser.parse_args()
pdf_path = args.pdf
if not Path(pdf_path).exists():
print(f"[ERREUR] Fichier non trouvé : {pdf_path}")
sys.exit(1)
output_path = args.output or str(Path(pdf_path).with_name(
Path(pdf_path).stem + "_llm.xlsx"
))
print(f"Fichier PDF : {pdf_path}")
print(f"Modèle LLM : {args.model}")
print(f"Sortie Excel : {output_path}")
print()
# --- Étape 1 : OCR ---
txt_cache = Path(pdf_path).with_suffix(".txt")
if txt_cache.exists() and not args.no_cache:
print("Étape 1/4 : Chargement du texte depuis le cache...")
full_text = txt_cache.read_text(encoding="utf-8")
full_text = normalize_text(full_text)
print(f" {len(full_text)} caractères chargés depuis {txt_cache}")
else:
print("Étape 1/4 : OCR du document...")
full_text = ocr_pdf(pdf_path, dpi=args.dpi)
if not args.no_cache:
txt_cache.write_text(full_text, encoding="utf-8")
print(f" Cache texte sauvegardé : {txt_cache}")
print(f" Longueur du texte : {len(full_text)} caractères")
print()
# --- Étape 2 : Détection du type de document ---
print("Étape 2/4 : Détection du type de document...")
t0 = time.time()
doc_info = detect_document_type(full_text, model=args.model, timeout=args.timeout, verbose=args.verbose)
print(f" Type : {doc_info.get('type_document', '?')}")
print(f" Organisme : {doc_info.get('organisme', '?')}")
print(f" Objet : {doc_info.get('objet', '?')}")
print(f" Séparateur: {doc_info.get('separateur_blocs', '(aucun)')}")
print(f" Colonnes : {doc_info.get('colonnes_detectees', [])}")
print(f" ({time.time() - t0:.1f}s)")
print()
# --- Étape 3 : Découpage et extraction ---
print("Étape 3/4 : Découpage en blocs et extraction LLM...")
separator = doc_info.get("separateur_blocs", "")
blocks = split_into_blocks(full_text, separator)
print(f" {len(blocks)} blocs à traiter")
all_items = []
t0 = time.time()
for i, block in enumerate(blocks):
print(f" Bloc {i+1}/{len(blocks)}...", end="\r")
items = extract_block(block, doc_info, model=args.model, timeout=args.timeout, verbose=args.verbose)
all_items.extend(items)
# Progression
elapsed = time.time() - t0
avg = elapsed / (i + 1)
remaining = avg * (len(blocks) - i - 1)
print(f" Bloc {i+1}/{len(blocks)}{len(items)} dossier(s) "
f"[{elapsed:.0f}s écoulé, ~{remaining:.0f}s restant] ")
total_elapsed = time.time() - t0
print(f" Extraction terminée : {len(all_items)} dossiers bruts en {total_elapsed:.0f}s")
print()
# --- Étape 4 : Fusion et export ---
print("Étape 4/4 : Fusion, dédoublonnage et export Excel...")
rows = merge_and_deduplicate(all_items)
print(f" {len(rows)} dossiers après dédoublonnage")
# Statistiques
fav = sum(1 for r in rows if "Favorable" in r.get("Decision", "") and "Défavorable" not in r.get("Decision", ""))
defav = sum(1 for r in rows if "Défavorable" in r.get("Decision", ""))
mixte = sum(1 for r in rows if "Mixte" in r.get("Decision", ""))
indet = sum(1 for r in rows if r.get("Decision", "") in ("Indéterminé", ""))
print(f" Favorable établissement : {fav}")
print(f" Défavorable établissement : {defav}")
print(f" Mixte : {mixte}")
print(f" Indéterminé : {indet}")
write_excel(rows, output_path)
print()
print("Terminé.")
if __name__ == "__main__":
main()

690
cpam/parse_decision_ucr.py Normal file
View File

@@ -0,0 +1,690 @@
#!/usr/bin/env python3
"""
parse_decision_ucr.py — Extraction des décisions UCR depuis un PDF scanné (contrôle T2A)
Entrée : PDF scanné de décision UCR (CPAM / Assurance Maladie)
Sortie : Fichier Excel (.xlsx) avec une feuille unique
Colonnes extraites (enrichies pour analyse IA) :
Champ, OGC, Type_desaccord,
Code_etablissement, Libelle_etablissement,
Code_controleurs, Libelle_controleurs,
Codes_retenus_final,
Decision, Texte_decision_complet, Resume_motif,
Regles_citees, References_guide,
GHM_mentionne, GHS_mentionne, GHM_final, GHS_final,
Impact_groupage
"""
from __future__ import annotations
import re
import sys
from pathlib import Path
import pymupdf
import pytesseract
from PIL import Image
import io
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
import unicodedata
# ---------------------------------------------------------------------------
# 0. Normalisation texte OCR
# ---------------------------------------------------------------------------
def normalize_text(text: str) -> str:
"""Normalise les apostrophes, guillemets et espaces issus de l'OCR."""
text = text.replace("\u2018", "'").replace("\u2019", "'")
text = text.replace("\u201C", '"').replace("\u201D", '"')
text = text.replace("\u00AB", '"').replace("\u00BB", '"')
text = text.replace("''", "'")
text = text.replace("\u00A0", " ").replace("\u202F", " ")
# Erreurs OCR courantes
text = re.sub(r"\bF'UCR\b", "l'UCR", text)
text = re.sub(r"\bl''UCR\b", "l'UCR", text)
return text
# ---------------------------------------------------------------------------
# 1. OCR
# ---------------------------------------------------------------------------
def ocr_pdf(pdf_path: str, dpi: int = 300) -> str:
"""Extrait le texte de toutes les pages du PDF via Tesseract OCR."""
doc = pymupdf.open(pdf_path)
full_text = []
total = len(doc)
for i, page in enumerate(doc):
print(f" OCR page {i+1}/{total}...", end="\r")
mat = pymupdf.Matrix(dpi / 72, dpi / 72)
pix = page.get_pixmap(matrix=mat)
img = Image.open(io.BytesIO(pix.tobytes("png")))
text = pytesseract.image_to_string(img, lang="fra")
full_text.append(text)
print(f" OCR terminé : {total} pages. ")
return normalize_text("\n\n".join(full_text))
# ---------------------------------------------------------------------------
# 2. Parsing — Regex
# ---------------------------------------------------------------------------
RE_CHAMP = re.compile(
r"Champ\s*(?:n°\s*)?(\d+)\s*[:\-—]?\s*(?:Séjours|:)",
re.IGNORECASE,
)
RE_OGC_HEADER = re.compile(
r"(?:^|\n)\s*OGC\s+(\d+)\s*:",
re.MULTILINE,
)
RE_TYPE_DESACCORD = re.compile(
r"(?:désaccord|discussion)\s+porte\s+(?:sur\s+)?(?:le\s+|les\s+)?(DP\s+et\s+(?:le\s+)?DAS|DP\s+et\s+DAS|DP|DAS)",
re.IGNORECASE,
)
RE_CIM10 = re.compile(r"\b([A-Z]\d{2}(?:\.\d{1,2})?)\b")
RE_CODAGE_ETS = re.compile(
r"Codage\s+[ée]tablissement\s*:\s*(.*?)(?=Codage\s+contr[ôo]leurs)",
re.IGNORECASE | re.DOTALL,
)
RE_CODAGE_CTRL = re.compile(
r"Codage\s+contr[ôo]leurs\s*:\s*(.*?)(?=D[EÉ]C[I1]?SION\s+UCR|PROPOSITION\s+UCR)",
re.IGNORECASE | re.DOTALL,
)
RE_DECISION = re.compile(
r"(?:D[EÉ]C[I1]?SION|PROPOSITION)\s+UCR\s*:?\s*(.*)",
re.IGNORECASE | re.DOTALL,
)
# --- Classification ---
RE_FAVORABLE = re.compile(
r"(?:"
r"retient\s+(?:la\s+demande|le\s+codage|l'avis)\s+(?:de\s+)?l'[ée]tablissement"
r"|retient\s+en\s+D[PA]S\s+le\s+code"
r"|retient\s+le\s+codage\s+du\s+DP\s+de\s+l'[ée]tablissement"
r"|l'UCR\s+retient\s+l'avis\s+de\s+l'[ée]tablissement"
r"|confirme\s+l'avis\s+(?:de\s+)?l'[ée]tablissement"
r")",
re.IGNORECASE,
)
RE_DEFAVORABLE = re.compile(
r"confirme\s+l'avis\s+des\s+(?:m[ée]decins\s+)?contr[oô]leurs",
re.IGNORECASE,
)
RE_UCR_RETIENT = re.compile(r"l'UCR\s+retient\b", re.IGNORECASE)
RE_UCR_PROPOSE = re.compile(r"l'UCR\s+propose\b", re.IGNORECASE)
RE_NE_RETIENT_PAS = re.compile(r"ne\s+retient\s+pas", re.IGNORECASE)
# --- GHM / GHS ---
RE_GHM = re.compile(r"GHM\s+([A-Z0-9]{5,7})", re.IGNORECASE)
RE_GHS = re.compile(r"GHS\s+(\d{3,5})", re.IGNORECASE)
RE_MIEUX_VALORISE = re.compile(r"mieux\s+valoris[ée]", re.IGNORECASE)
RE_PAS_MODIFIE = re.compile(
r"(?:ne\s+modifie\s+pas|ne\s+change(?:nt)?\s+pas|pas\s+de\s+changement|reste\s+group[ée])",
re.IGNORECASE,
)
# --- Règles et références ---
# Pages du guide méthodologique
RE_GUIDE_PAGE = re.compile(
r"(?:guide\s+m[ée]thodologique|guide)\s*(?:p\.?|page)\s*(\d{1,3})",
re.IGNORECASE,
)
RE_PAGE_GUIDE = re.compile(
r"(?:p\.?|page)\s*(\d{1,3})\s+du\s+guide",
re.IGNORECASE,
)
# Règles T (T3, T7, etc.)
RE_REGLE_T = re.compile(
r"r[èe]gle\s+(T\d+)",
re.IGNORECASE,
)
# Fascicules ATIH
RE_FASCICULE = re.compile(
r"fascicule\s+(?:ATIH\s+)?(?:de\s+codage\s+)?(?:PMSI\s+)?(?:n°\s*)?(\d{1,2})?\s*(?:[-]\s*)?([A-ZÀ-Üa-zà-ü\s]+?)(?:\s+(?:de\s+)?(\d{4}))?(?:\s*(?:,\s*)?(?:p\.?\s*|page\s*)(\d+))?",
re.IGNORECASE,
)
# Avis Agora
RE_AVIS_AGORA = re.compile(
r"avis\s+(?:agora|AGORA)\s*(?:n°\s*)?(\d+)",
re.IGNORECASE,
)
# Consignes de codage avec page
RE_CONSIGNES_CODAGE = re.compile(
r"consignes?\s+de\s+codage\s*(?:p\.?\s*|page\s*)(\d+)",
re.IGNORECASE,
)
# Codage retenu / DP retenu / DAS retenu
RE_CODAGE_RETENU = re.compile(
r"(?:codage\s+retenu|DP\s*(?:retenu|=)|DAS\s*(?:retenu|=)|code\s+retenu|est\s+cod[ée]\s+en|se\s+code)\s*(?:est\s+)?(?::?\s*)([A-Z]\d{2}(?:\.\d{1,2})?)",
re.IGNORECASE,
)
# "est ajouté en DAS" / "ajout du code X"
RE_CODE_AJOUTE = re.compile(
r"(?:est\s+ajout[ée]\s+en\s+D[PA]S|ajout(?:er)?\s+(?:du\s+|en\s+D[PA]S\s+(?:le\s+)?)?(?:code\s+)?)\s*(?::?\s*)([A-Z]\d{2}(?:\.\d{1,2})?)",
re.IGNORECASE,
)
# ---------------------------------------------------------------------------
# 2b. Fonctions d'extraction
# ---------------------------------------------------------------------------
def extract_codes_and_label(text: str) -> tuple[str, str]:
"""Extrait les codes CIM-10 et le libellé depuis un bloc de codage."""
codes = RE_CIM10.findall(text)
labels = re.findall(r'"](.*?)[»"]', text)
code_str = " + ".join(codes) if codes else ""
label_str = " | ".join(labels) if labels else text.strip()[:120]
label_str = re.sub(r"\s+", " ", label_str).strip()
return code_str, label_str
def extract_codes_retenus(decision_text: str) -> str:
"""Extrait les codes finalement retenus par l'UCR."""
codes = set()
for m in RE_CODAGE_RETENU.finditer(decision_text):
codes.add(m.group(1))
for m in RE_CODE_AJOUTE.finditer(decision_text):
codes.add(m.group(1))
return " + ".join(sorted(codes)) if codes else ""
def extract_regles(text: str) -> str:
"""Extrait les règles de codage citées (T3, T7, etc.)."""
regles = set()
for m in RE_REGLE_T.finditer(text):
regles.add(m.group(1).upper())
return ", ".join(sorted(regles)) if regles else ""
def extract_references(text: str) -> str:
"""Extrait toutes les références (guide, fascicules, avis Agora, consignes)."""
refs = []
# Pages du guide méthodologique
pages_guide = set()
for m in RE_GUIDE_PAGE.finditer(text):
pages_guide.add(m.group(1))
for m in RE_PAGE_GUIDE.finditer(text):
pages_guide.add(m.group(1))
if pages_guide:
refs.append("Guide méthodologique p." + ", p.".join(sorted(pages_guide, key=int)))
# Fascicules ATIH
for m in RE_FASCICULE.finditer(text):
num = m.group(1) or ""
sujet = (m.group(2) or "").strip()
annee = m.group(3) or ""
page = m.group(4) or ""
ref = "Fascicule"
if num:
ref += f" {num}"
if sujet:
ref += f" {sujet}"
if annee:
ref += f" ({annee})"
if page:
ref += f" p.{page}"
refs.append(ref.strip())
# Avis Agora
for m in RE_AVIS_AGORA.finditer(text):
refs.append(f"Avis Agora n°{m.group(1)}")
# Consignes de codage
for m in RE_CONSIGNES_CODAGE.finditer(text):
refs.append(f"Consignes de codage p.{m.group(1)}")
# Dédupliquer
seen = set()
unique = []
for r in refs:
r_lower = r.lower()
if r_lower not in seen:
seen.add(r_lower)
unique.append(r)
return " ; ".join(unique) if unique else ""
def extract_ghm_ghs_all(text: str) -> tuple[list[str], list[str]]:
"""Extrait tous les GHM et GHS mentionnés."""
ghms = []
for m in RE_GHM.finditer(text):
v = m.group(1).upper()
if v not in ghms:
ghms.append(v)
ghss = []
for m in RE_GHS.finditer(text):
v = m.group(1)
if v not in ghss:
ghss.append(v)
return ghms, ghss
def classify_decision(decision_text: str) -> str:
"""Classifie la décision : Favorable / Défavorable / Mixte / Indéterminé."""
text = normalize_text(decision_text)
fav = bool(RE_FAVORABLE.search(text))
defav = bool(RE_DEFAVORABLE.search(text))
ucr_retient = bool(RE_UCR_RETIENT.search(text))
ucr_propose = bool(RE_UCR_PROPOSE.search(text))
ne_retient_pas = bool(RE_NE_RETIENT_PAS.search(text))
if ucr_retient and not ne_retient_pas:
fav = True
if ucr_propose and not defav:
fav = True
if (ucr_retient or fav) and defav:
return "Mixte"
if fav and defav:
return "Mixte"
elif fav:
return "Favorable établissement"
elif defav:
return "Défavorable établissement"
else:
return "Indéterminé"
def clean_decision_text(text: str) -> str:
"""Nettoie le texte de décision (supprime artifacts OCR en fin de bloc)."""
# Supprimer les lignes de pied de page UCR
text = re.sub(r"\n\s*(?:UCR\s+NA|CONFIDENTIEL|Page\s+\d+).*$", "", text, flags=re.MULTILINE | re.IGNORECASE)
# Supprimer les artefacts OCR de fin (séquences de caractères isolés)
text = re.sub(r"\n\s*[A-Z]{1,4}\s*(?:—|—|-)\s*[a-zA-Z]{0,3}\s*$", "", text, flags=re.MULTILINE)
text = re.sub(r"\n\s*(?:EE|ESS|2 ae|A D ES|EE nd)\s*$", "", text, flags=re.MULTILINE | re.IGNORECASE)
# Normaliser les espaces
text = re.sub(r"[ \t]+", " ", text)
text = re.sub(r"\n{3,}", "\n\n", text)
return text.strip()
# ---------------------------------------------------------------------------
# 2c. Parsing des blocs
# ---------------------------------------------------------------------------
def parse_ogc_block(block_text: str, champ: int, ogc_num: int) -> dict:
"""Parse un bloc OGC et retourne un dictionnaire structuré enrichi."""
result = {
"Champ": champ,
"OGC": ogc_num,
"Type_desaccord": "",
"Code_etablissement": "",
"Libelle_etablissement": "",
"Code_controleurs": "",
"Libelle_controleurs": "",
"Codes_retenus_final": "",
"Decision": "",
"Texte_decision_complet": "",
"Resume_motif": "",
"Regles_citees": "",
"References_guide": "",
"GHM_mentionne": "",
"GHS_mentionne": "",
"GHM_final": "",
"GHS_final": "",
"Impact_groupage": "",
}
# Type de désaccord
m = RE_TYPE_DESACCORD.search(block_text)
if m:
raw = m.group(1).upper().strip()
raw = re.sub(r"\s+", " ", raw)
if "DP" in raw and "DAS" in raw:
result["Type_desaccord"] = "DP + DAS"
elif "DAS" in raw:
result["Type_desaccord"] = "DAS"
elif "DP" in raw:
result["Type_desaccord"] = "DP"
# Codage établissement
m = RE_CODAGE_ETS.search(block_text)
if m:
raw_ets = m.group(1).strip()
result["Code_etablissement"], result["Libelle_etablissement"] = extract_codes_and_label(raw_ets)
# Codage contrôleurs
m = RE_CODAGE_CTRL.search(block_text)
if m:
raw_ctrl = m.group(1).strip()
if re.search(r"non\s+repris", raw_ctrl, re.IGNORECASE):
result["Code_controleurs"] = "non repris"
result["Libelle_controleurs"] = ""
else:
result["Code_controleurs"], result["Libelle_controleurs"] = extract_codes_and_label(raw_ctrl)
# Décision UCR — TEXTE COMPLET
m = RE_DECISION.search(block_text)
if m:
decision_text = m.group(1).strip()
decision_clean = clean_decision_text(decision_text)
result["Decision"] = classify_decision(decision_clean)
result["Texte_decision_complet"] = decision_clean
# Résumé court (première phrase significative)
resume = re.sub(r"\s+", " ", decision_clean)[:300].strip()
# Couper à la dernière phrase complète
last_dot = resume.rfind(".")
if last_dot > 100:
resume = resume[:last_dot + 1]
result["Resume_motif"] = resume
# Codes finalement retenus
result["Codes_retenus_final"] = extract_codes_retenus(decision_clean)
# Règles citées (T3, T7, etc.)
result["Regles_citees"] = extract_regles(block_text)
# Références (guide, fascicules, avis Agora)
result["References_guide"] = extract_references(block_text)
# GHM / GHS — tous ceux mentionnés et le dernier (= final)
ghms, ghss = extract_ghm_ghs_all(block_text)
if ghms:
result["GHM_mentionne"] = " / ".join(ghms)
result["GHM_final"] = ghms[-1] # Le dernier mentionné est souvent le final
if ghss:
result["GHS_mentionne"] = " / ".join(ghss)
result["GHS_final"] = ghss[-1]
# Impact groupage
if RE_MIEUX_VALORISE.search(block_text):
result["Impact_groupage"] = "Mieux valorisé"
elif RE_PAS_MODIFIE.search(block_text):
result["Impact_groupage"] = "Pas de changement"
return result
def parse_grouped_ogcs(text_block: str, champ: int, ogc_nums: list[int]) -> list[dict]:
"""Parse un bloc groupé (ex: OGC 14,19,46,50 traités ensemble)."""
template = parse_ogc_block(text_block, champ, ogc_nums[0])
results = []
for num in ogc_nums:
row = dict(template)
row["OGC"] = num
results.append(row)
return results
def parse_document(full_text: str) -> list[dict]:
"""Parse le texte OCR complet et retourne la liste des dossiers."""
rows = []
champ_positions = [(m.start(), int(m.group(1))) for m in RE_CHAMP.finditer(full_text)]
ogc_positions = [(m.start(), int(m.group(1))) for m in RE_OGC_HEADER.finditer(full_text)]
def get_champ_for_position(pos: int) -> int:
ch = 0
for cp, cn in champ_positions:
if cp <= pos:
ch = cn
else:
break
return ch
# Blocs groupés
RE_GROUPED = re.compile(
r"(?:Concernant|Pour)\s+les\s+OGC\s+([\d,\s]+)",
re.IGNORECASE,
)
grouped_ogcs = set()
for m in RE_GROUPED.finditer(full_text):
nums = [int(n.strip()) for n in m.group(1).split(",") if n.strip().isdigit()]
if len(nums) > 1:
start = m.start()
end = len(full_text)
for op, on in ogc_positions:
if op > start + 50 and on not in nums:
end = op
break
block = full_text[start:end]
champ = get_champ_for_position(start)
group_rows = parse_grouped_ogcs(block, champ, nums)
rows.extend(group_rows)
grouped_ogcs.update(nums)
# OGC individuels
for idx, (pos, ogc_num) in enumerate(ogc_positions):
champ = get_champ_for_position(pos)
end = len(full_text)
for next_pos, _ in ogc_positions[idx + 1:]:
if next_pos > pos + 20:
end = next_pos
break
for cp, _ in champ_positions:
if pos < cp < end:
end = cp
break
block = full_text[pos:end]
row = parse_ogc_block(block, champ, ogc_num)
if ogc_num in grouped_ogcs:
if row["Code_etablissement"] and row["Decision"]:
rows = [r for r in rows if r["OGC"] != ogc_num]
rows.append(row)
else:
if row["Code_etablissement"] or row["Decision"]:
rows.append(row)
rows.sort(key=lambda r: (r["Champ"], r["OGC"]))
# Dédupliquer
seen = {}
deduped = []
for r in rows:
key = r["OGC"]
if key in seen:
old = seen[key]
old_score = sum(1 for v in old.values() if v)
new_score = sum(1 for v in r.values() if v)
if new_score > old_score:
deduped = [x for x in deduped if x["OGC"] != key]
deduped.append(r)
seen[key] = r
else:
seen[key] = r
deduped.append(r)
deduped.sort(key=lambda r: (r["Champ"], r["OGC"]))
return deduped
# ---------------------------------------------------------------------------
# 3. Export Excel
# ---------------------------------------------------------------------------
HEADERS = [
"Champ",
"OGC",
"Type_desaccord",
"Code_etablissement",
"Libelle_etablissement",
"Code_controleurs",
"Libelle_controleurs",
"Codes_retenus_final",
"Decision",
"Texte_decision_complet",
"Resume_motif",
"Regles_citees",
"References_guide",
"GHM_mentionne",
"GHS_mentionne",
"GHM_final",
"GHS_final",
"Impact_groupage",
]
HEADER_LABELS = [
"Champ",
"N° OGC",
"Type désaccord",
"Code(s) Établissement",
"Libellé Établissement",
"Code(s) Contrôleurs",
"Libellé Contrôleurs",
"Code(s) retenus (final)",
"Décision UCR",
"Texte décision complet",
"Résumé du motif",
"Règles codage citées",
"Références (guide, fascicules, avis)",
"GHM mentionné(s)",
"GHS mentionné(s)",
"GHM final",
"GHS final",
"Impact groupage",
]
def write_excel(rows: list[dict], output_path: str):
"""Écrit les résultats dans un fichier Excel (feuille unique)."""
wb = Workbook()
ws = wb.active
ws.title = "Décisions UCR"
# Styles
header_font = Font(bold=True, color="FFFFFF", size=11)
header_fill = PatternFill(start_color="2F5496", end_color="2F5496", fill_type="solid")
header_align = Alignment(horizontal="center", vertical="center", wrap_text=True)
thin_border = Border(
left=Side(style="thin"),
right=Side(style="thin"),
top=Side(style="thin"),
bottom=Side(style="thin"),
)
fav_fill = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
defav_fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")
mixte_fill = PatternFill(start_color="FFEB9C", end_color="FFEB9C", fill_type="solid")
# En-têtes
for col, label in enumerate(HEADER_LABELS, 1):
cell = ws.cell(row=1, column=col, value=label)
cell.font = header_font
cell.fill = header_fill
cell.alignment = header_align
cell.border = thin_border
# Données
for row_idx, data in enumerate(rows, 2):
for col_idx, key in enumerate(HEADERS, 1):
val = data.get(key, "")
cell = ws.cell(row=row_idx, column=col_idx, value=val)
cell.border = thin_border
cell.alignment = Alignment(vertical="top", wrap_text=True)
# Colorer la colonne Décision
dec_col = HEADERS.index("Decision") + 1
decision_cell = ws.cell(row=row_idx, column=dec_col)
dv = str(decision_cell.value or "")
if "Favorable" in dv and "Défavorable" not in dv:
decision_cell.fill = fav_fill
elif "Défavorable" in dv:
decision_cell.fill = defav_fill
elif "Mixte" in dv:
decision_cell.fill = mixte_fill
# Largeurs de colonnes
col_widths = {
"Champ": 8, "OGC": 8, "Type_desaccord": 14,
"Code_etablissement": 22, "Libelle_etablissement": 40,
"Code_controleurs": 22, "Libelle_controleurs": 40,
"Codes_retenus_final": 22,
"Decision": 24, "Texte_decision_complet": 80,
"Resume_motif": 60,
"Regles_citees": 16, "References_guide": 50,
"GHM_mentionne": 16, "GHS_mentionne": 16,
"GHM_final": 12, "GHS_final": 10,
"Impact_groupage": 20,
}
for i, key in enumerate(HEADERS, 1):
ws.column_dimensions[ws.cell(row=1, column=i).column_letter].width = col_widths.get(key, 15)
# Filtre automatique
last_col_letter = ws.cell(row=1, column=len(HEADERS)).column_letter
ws.auto_filter.ref = f"A1:{last_col_letter}{len(rows)+1}"
# Figer la première ligne
ws.freeze_panes = "A2"
wb.save(output_path)
print(f"Excel enregistré : {output_path}")
# ---------------------------------------------------------------------------
# Main
# ---------------------------------------------------------------------------
def main():
if len(sys.argv) < 2:
pdf_path = str(Path(__file__).parent / "SPHO-FINANC26020915121.pdf")
else:
pdf_path = sys.argv[1]
output_path = str(Path(pdf_path).with_suffix(".xlsx"))
print(f"Fichier PDF : {pdf_path}")
print("Étape 1/3 : OCR du document...")
full_text = ocr_pdf(pdf_path)
txt_path = str(Path(pdf_path).with_suffix(".txt"))
Path(txt_path).write_text(full_text, encoding="utf-8")
print(f" Texte brut sauvegardé : {txt_path}")
print("Étape 2/3 : Extraction des décisions...")
rows = parse_document(full_text)
print(f" {len(rows)} dossiers OGC extraits.")
fav = sum(1 for r in rows if "Favorable" in r.get("Decision", "") and "Défavorable" not in r.get("Decision", ""))
defav = sum(1 for r in rows if "Défavorable" in r.get("Decision", ""))
mixte = sum(1 for r in rows if "Mixte" in r.get("Decision", ""))
indet = sum(1 for r in rows if r.get("Decision", "") in ("Indéterminé", ""))
refs_count = sum(1 for r in rows if r.get("References_guide"))
codes_ret = sum(1 for r in rows if r.get("Codes_retenus_final"))
regles = sum(1 for r in rows if r.get("Regles_citees"))
print(f" Favorable établissement : {fav}")
print(f" Défavorable établissement : {defav}")
print(f" Mixte : {mixte}")
print(f" Indéterminé : {indet}")
print(f" Avec références citées : {refs_count}")
print(f" Avec codes retenus : {codes_ret}")
print(f" Avec règles T : {regles}")
print("Étape 3/3 : Génération du fichier Excel...")
write_excel(rows, output_path)
print("Terminé.")
if __name__ == "__main__":
main()

49544
data/ccam_dict.json Normal file

File diff suppressed because it is too large Load Diff

10895
data/cim10_dict.json Normal file

File diff suppressed because it is too large Load Diff

2738
data/cma_levels.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,198 @@
{
"dossier_id": "103_23056749/103_23056749_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Hallucinations",
"code_pipeline": "F06.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Et cardiaque",
"code_pipeline": "R00",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Goutte",
"code_pipeline": "M10.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Syndrome anxio-dépressif",
"code_pipeline": "F33.3",
"confidence": "medium",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Apragmatisme, aboulie, clinophilie, troubles cognitifs",
"code_pipeline": "R48.8",
"confidence": "high",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Thrombose veineuse profonde",
"code_pipeline": "I80.2",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Maladie de parkinson",
"code_pipeline": "G20",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Examen complémentaire",
"code_pipeline": "Z04.8",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Anorexie",
"code_pipeline": "R63.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Troubles du sommeil",
"code_pipeline": "F51.0",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Troubles de l'alimentation",
"code_pipeline": "F50.9",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Hépatite b",
"code_pipeline": "B16.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Hépatite c",
"code_pipeline": "B18.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Anémie",
"code_pipeline": "D50",
"confidence": "medium",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Perte d'autonomie",
"code_pipeline": "Z73.6",
"confidence": "medium",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Douleur abdominale",
"code_pipeline": "R10",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,108 @@
{
"dossier_id": "113_23065949/trackare-18022356-23065949_18022356_23065949_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Diverticulose du côlon et de l'intestin grêle, (sans perforation ni abcès)",
"code_pipeline": "K57.5",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Diverticulose du côlon",
"code_pipeline": "K57.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Pathologique",
"code_pipeline": "F07.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Colite gauche",
"code_pipeline": "K51.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Nausées et vomissements",
"code_pipeline": "R11",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Infection post-opératoire/Abcès",
"code_pipeline": "T81.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,78 @@
{
"dossier_id": "115_23066188/115_23066188_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Méningite à entérovirus",
"code_pipeline": "A87.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Migraine",
"code_pipeline": "G43.9",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Céphalées",
"code_pipeline": "R51",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Éruption cutanée médicamenteuse",
"code_pipeline": "L27.9",
"confidence": "medium",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Céphalées",
"code_pipeline": "G44.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Constipation",
"code_pipeline": "K59.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Méningite, sans précision",
"code_pipeline": "G03.9",
"confidence": "high",
"source": "trackare",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,14 @@
{
"commentaire_general": "",
"das": [],
"das_ajoutes": [],
"dossier_id": "116_23065570/116_23065570_fusionne_cim10",
"dp": {
"code_corrige": null,
"commentaire": "",
"statut": "correct"
},
"statut": "non_commence",
"validateur": "",
"date_validation": "2026-02-17T21:38:39"
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "118_23042633/118_23042633_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "X 2 en 2013",
"code_pipeline": "X20.13",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Strabisme ",
"code_pipeline": "H50.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Examen général",
"code_pipeline": "Z00.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Myocardiopathie",
"code_pipeline": "I42.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Cardiopathie ischémique",
"code_pipeline": "I25.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale chronique modérée",
"code_pipeline": "N18.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Lésion du nerf optique droit avec cécité quasi complète",
"code_pipeline": "H47.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Dissection de l'",
"code_pipeline": "I71.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Ventilationventilationventilationventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "119_23062819/119_23062819_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Hepatomegalie,",
"code_pipeline": "R48.10",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Cryoglobulinémie",
"code_pipeline": "D89.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Neuropathie périphérique",
"code_pipeline": "G60.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Cyanose",
"code_pipeline": "R23.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Examen général",
"code_pipeline": "Z00.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Polype vésical bourgeonnant",
"code_pipeline": "C67.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Lésion endovésicale volumineuse",
"code_pipeline": "R19.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Pneumonie",
"code_pipeline": "J18.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Bmr",
"code_pipeline": "M71.9",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,78 @@
{
"dossier_id": "122_23070126/122_23070126_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Céphalées",
"code_pipeline": "G44.2",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension in",
"code_pipeline": "I15.9",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Hypertension intracrânienne",
"code_pipeline": "G93.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Insuffisance rénale",
"code_pipeline": "N19",
"confidence": "medium",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Douleur : douleur",
"code_pipeline": "R52.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Désorientation",
"code_pipeline": "R41.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,98 @@
{
"dossier_id": "125_23074494/125_23074494_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Fracture pertrochantérienne",
"code_pipeline": "S72.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Insuffisance rénale",
"code_pipeline": "N19",
"confidence": "medium",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Anémie",
"code_pipeline": "D64.9",
"confidence": "medium",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Fracture fermée d'",
"code_pipeline": "T14.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Ostéoporose",
"code_pipeline": "M81.8",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Palpation de la hanche",
"code_pipeline": "S70",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Malaise",
"code_pipeline": "R45.2",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Fracture du col",
"code_pipeline": "S72.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Fracture fermée d'autres vertèbres cervicales précisées",
"code_pipeline": "S12.2",
"confidence": "high",
"source": "trackare",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,278 @@
{
"dossier_id": "132_23080179/132_23080179_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Adénopathie",
"code_pipeline": "R59.9",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Dyspnée",
"code_pipeline": "R06.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Autres atteintes",
"code_pipeline": "T06",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Lymphome diffus à grandes",
"code_pipeline": "C83.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Ostéolyse",
"code_pipeline": "M89.5",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Syndrome de",
"code_pipeline": "Q91.3",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Troubles du rythme supra-ventriculaire",
"code_pipeline": "I47.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Phlébites à répétition des membres inférieurs avec maladie post-phlébitique",
"code_pipeline": "I87.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Asthénie post-COVID-19",
"code_pipeline": "G93.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Tassement vertébral",
"code_pipeline": "M48.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Obésité (IMC 31.733)",
"code_pipeline": "E66.04",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Dysphagie",
"code_pipeline": "R13",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Adénopathies",
"code_pipeline": "R59.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Hypokaliémie",
"code_pipeline": "E87.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Nausées et vomissement",
"code_pipeline": "R11",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Dorsalgie",
"code_pipeline": "M54.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Sciatique",
"code_pipeline": "M54.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 20,
"texte_original": "Chimiothérapie",
"code_pipeline": "Z51.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 21,
"texte_original": "Épanchement pleural",
"code_pipeline": "J90",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 22,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 23,
"texte_original": "Leucocytose",
"code_pipeline": "D72.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 24,
"texte_original": "Thrombocytose",
"code_pipeline": "D69.6",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 25,
"texte_original": "Ventilation ventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,158 @@
{
"dossier_id": "134_23050890/134_23050890_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Epispadia",
"code_pipeline": "Q54.2",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypota orthostatique",
"code_pipeline": "I95.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Examen général",
"code_pipeline": "Z00.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Obésité",
"code_pipeline": "E66.99",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Dépression, trouble du mental",
"code_pipeline": "F32.30",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Dysplasie de hanche",
"code_pipeline": "Q65.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Extrophie vésicale",
"code_pipeline": "Q64.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Dysraphie antérieure",
"code_pipeline": "Q71.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Épispadias",
"code_pipeline": "Q64.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Coxarthrose",
"code_pipeline": "M16",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Obésité (IMC 36.731)",
"code_pipeline": "E66.05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Ventilationventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,158 @@
{
"dossier_id": "143_23096917/143_23096917_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Appendicite aigue",
"code_pipeline": "K35.8",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Péritonite",
"code_pipeline": "K65.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Infection à E.Coli",
"code_pipeline": "A04.4",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Epanchement intra-abdominal",
"code_pipeline": "R19.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Appendicite abcédée et suppurée",
"code_pipeline": "K35.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Éruption cutanée médicamenteuse",
"code_pipeline": "L24.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Appendicite aigüe",
"code_pipeline": "K35.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Pathologique",
"code_pipeline": "F07.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "C fc 104",
"code_pipeline": "C10.4",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Insuffisance hépatique aiguë",
"code_pipeline": "K71.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,138 @@
{
"dossier_id": "145_23057452/145_23057452_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Isolement",
"code_pipeline": "Z29.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Glaucome",
"code_pipeline": "H40",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hydrocéphalie",
"code_pipeline": "G91.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Troubles de la",
"code_pipeline": "F43.2",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Goutte",
"code_pipeline": "M10.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Insuffisance rénale chronique",
"code_pipeline": "N18.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Diabète de type 2 non équilibré",
"code_pipeline": "E11.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Examen général",
"code_pipeline": "Z04",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Leucocytose",
"code_pipeline": "D72.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,188 @@
{
"dossier_id": "153_23102610/153_23102610_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Cétonurie",
"code_pipeline": "R82.4",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Bactériurie due à Citrobacter koseri",
"code_pipeline": "A49.1",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "À 15",
"code_pipeline": "Z03.8",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Diabète de type 2",
"code_pipeline": "E11.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Pathologique",
"code_pipeline": "F07.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Insuffisance rénale chronique stade 3a",
"code_pipeline": "N18.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Troubles de la fonction sexuelle, hypogonadisme masculin",
"code_pipeline": "E29.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "C 9.4",
"code_pipeline": "C94",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Effets indésirables",
"code_pipeline": "Y88.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Hernie ombilicale",
"code_pipeline": "K42.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Acanthosis nigricans",
"code_pipeline": "L83",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Adénopathie",
"code_pipeline": "R59.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Perte de poids a",
"code_pipeline": "R63.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Insuffisance hépatique chronique",
"code_pipeline": "K72.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Infection sévère",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,248 @@
{
"dossier_id": "159_23107113/trackare-00270032-23107113_00270032_23107113_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "100 100 100 100",
"code_pipeline": "Y90.4",
"confidence": "medium",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Éruption cutanée médicamenteuse",
"code_pipeline": "L24.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Embolie pulmonaire",
"code_pipeline": "I26.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Dénutrition",
"code_pipeline": "E43",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Pneumopathie",
"code_pipeline": "J18.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Toxoplasmose congénitale",
"code_pipeline": "P37.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Reflux gastro-oesophagien",
"code_pipeline": "K21.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Adénopathie",
"code_pipeline": "R59.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Rubéole",
"code_pipeline": "B06",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Fièvre q",
"code_pipeline": "A78",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Toxoplasmose",
"code_pipeline": "B58.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Neuropathique",
"code_pipeline": "R52.10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Rougeole",
"code_pipeline": "B05.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Bartonelle",
"code_pipeline": "A44.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Varicelle",
"code_pipeline": "B01.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Pneumopathie varicelleuse",
"code_pipeline": "B01",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 20,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 21,
"texte_original": "Anémie ferriprive",
"code_pipeline": "D50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 22,
"texte_original": "Insuffisance hépatique chronique",
"code_pipeline": "K72.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "160_23099448/160_23099448_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Isolement",
"code_pipeline": "Z29.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Lipodystrophie",
"code_pipeline": "E88.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Troubles du comportement alimentaire (restriction alimentaire, gouter sucré quotidien)",
"code_pipeline": "F50.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "C 6.3",
"code_pipeline": "C63",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Diabète de type 1",
"code_pipeline": "O24.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Urticaire",
"code_pipeline": "L50.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Polytraumatisme suite à un accident de moto",
"code_pipeline": "V29.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Allergie au pollen",
"code_pipeline": "J30.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,88 @@
{
"dossier_id": "167_23104446/167_23104446_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Gynécologique",
"code_pipeline": "Z01.4",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Convalescence",
"code_pipeline": "Z54.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Constipation",
"code_pipeline": "K59.0",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "H / 220",
"code_pipeline": "N43",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Hta",
"code_pipeline": "I10",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,108 @@
{
"dossier_id": "170_23077016/170_23077016_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "À 38",
"code_pipeline": "S38.10",
"confidence": "medium",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Retard excrétoire post-opératoire",
"code_pipeline": "R62",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Constipation",
"code_pipeline": "K59.0",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Malaise",
"code_pipeline": "R53",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Pâleur",
"code_pipeline": "R23.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Polyarthrite rhumatoïde",
"code_pipeline": "M06.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Ventilation ventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "173_23069373/173_23069373_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Goitre multinodulaire",
"code_pipeline": "E04.2",
"confidence": null,
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Dyspnée",
"code_pipeline": "R06.0",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Examen général",
"code_pipeline": "Z00.0",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Apnées du sommeil",
"code_pipeline": "G47.3",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Autre migraines",
"code_pipeline": "G43.8",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "À 08",
"code_pipeline": "A08",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Obésité (IMC 47.438)",
"code_pipeline": "E66.0",
"confidence": "",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Dysphonie",
"code_pipeline": "R49.0",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Dysphagie",
"code_pipeline": "R13",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Ventilationventilationventilation",
"code_pipeline": "R06.4",
"confidence": "",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,268 @@
{
"dossier_id": "176_23124187/176_23124187_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Hta",
"code_pipeline": "I10",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Pneumopathie",
"code_pipeline": "J18.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Tabagisme",
"code_pipeline": "T65.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Douleurs articulaires",
"code_pipeline": "M25.5",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Toux",
"code_pipeline": "R05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Cardiopathie",
"code_pipeline": "I25.1",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Hypokaliémie",
"code_pipeline": "E87.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Arthralgie diffuse",
"code_pipeline": "M19.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Hippocratisme digital",
"code_pipeline": "R68.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Adénopathies cervicales",
"code_pipeline": "R73.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Insuffisance rénale chronique",
"code_pipeline": "N18.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Sepsis",
"code_pipeline": "R65.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Adénopathies",
"code_pipeline": "R59.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Agitation",
"code_pipeline": "R45.4",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Syndrome de",
"code_pipeline": "Q91.3",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Épanchement pleural",
"code_pipeline": "J90",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Bronchectasies",
"code_pipeline": "J47",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 20,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 21,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 22,
"texte_original": "Méningite bactérienne",
"code_pipeline": "G00",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 23,
"texte_original": "Carcinome épidermoïde du poumon",
"code_pipeline": "C34.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 24,
"texte_original": "Hypercalcémie",
"code_pipeline": "E83.50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,138 @@
{
"dossier_id": "179_23126805/trackare-23005591-23126805_23005591_23126805_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Allergies allergie",
"code_pipeline": "Z00.0",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Éruption cutanée médicamenteuse",
"code_pipeline": "L24.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Obésité (IMC 32.583)",
"code_pipeline": "E66.05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Allergie à la pénicilline",
"code_pipeline": "Z88.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Uriticaire",
"code_pipeline": "L50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "U du 12",
"code_pipeline": "D51",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "U du 09",
"code_pipeline": "U09.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Anémie ferriprive",
"code_pipeline": "D50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,228 @@
{
"dossier_id": "17_23100690/17_23100690_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Pancréatite aiguë",
"code_pipeline": "K85.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Éthylisme",
"code_pipeline": "F10.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Douleurs neuropathiques",
"code_pipeline": "R52.10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Pancréatite aigue",
"code_pipeline": "K85.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Transit",
"code_pipeline": "F95.0",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Diabète",
"code_pipeline": "E14",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cystites récidivantes",
"code_pipeline": "N30.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Plastie mammaire",
"code_pipeline": "Z42.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Lithiase vésiculaire",
"code_pipeline": "K80.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Angiocholite",
"code_pipeline": "K83.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Obésité (IMC 30.302)",
"code_pipeline": "E66.94",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Cholécystite",
"code_pipeline": "K80.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Adhérences péri",
"code_pipeline": "K66.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Iléus",
"code_pipeline": "K56.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 20,
"texte_original": "Pancréatite aiguë, sans précision",
"code_pipeline": "K85.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,88 @@
{
"dossier_id": "183_23087212/183_23087212_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Ventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Bricker fragile et endommagé",
"code_pipeline": "Q61.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Obésité (IMC 31.231)",
"code_pipeline": "E66.94",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Colostomie",
"code_pipeline": "Z93.3",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Pyélonéphrite aiguë droite",
"code_pipeline": "N10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "186_23105969/186_23105969_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Prostatite aig",
"code_pipeline": "N41.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Fibrillation auriculaire",
"code_pipeline": "I48.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hypercholestérolémie",
"code_pipeline": "E78.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Trouble de la coagulation (TP abaissé)",
"code_pipeline": "D68.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Réaction transfusionnelle (RAI positive pour anti KEL 1)",
"code_pipeline": "T80.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Examen général",
"code_pipeline": "Z04",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Rétention urinaire aiguë",
"code_pipeline": "N13.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Hypertrophie bénigne de la prostate",
"code_pipeline": "N40",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Sur activité",
"code_pipeline": "Z53.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,228 @@
{
"dossier_id": "187_23133268/187_23133268_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Épisclerite",
"code_pipeline": "H15.1",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Dysphagie",
"code_pipeline": "R13",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Douleur au niveau de",
"code_pipeline": "R52.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Toux",
"code_pipeline": "R05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Thrombose veineuse",
"code_pipeline": "I82.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Douleurs articulaires",
"code_pipeline": "M25.5",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Maladie de",
"code_pipeline": "Z22.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Gynécologique",
"code_pipeline": "Z01.4",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Dysthyroïdie",
"code_pipeline": "E06.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Aphtose récurrente",
"code_pipeline": "K12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Fièvre",
"code_pipeline": "R50.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Perte de poids",
"code_pipeline": "R63.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Obésité (IMC 31.616)",
"code_pipeline": "E66.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Épisclérites",
"code_pipeline": "H15.1",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Hépatite b",
"code_pipeline": "B16.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Hépatite c",
"code_pipeline": "B17.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 20,
"texte_original": "Douleur abdominale",
"code_pipeline": "R10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,98 @@
{
"dossier_id": "193_23123388/193_23123388_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Ventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Paraparésie spastique",
"code_pipeline": "G82.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Evolution postopératoire",
"code_pipeline": "Z54.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sclérose en plaques",
"code_pipeline": "G35",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Pneumothorax",
"code_pipeline": "J93.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Bmr",
"code_pipeline": "U83.71",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,148 @@
{
"dossier_id": "208_23151988/208_23151988_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Cholécystite aigue",
"code_pipeline": "K81.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Cholécystite aiguë",
"code_pipeline": "K81.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Adhérences péri",
"code_pipeline": "K66.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Calculs biliaires intra-vésiculaires",
"code_pipeline": "K80.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Inflammation du lit vésiculaire",
"code_pipeline": "K81.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Thrombose veineuse profonde",
"code_pipeline": "I80.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Ulcère d'estomac",
"code_pipeline": "K25",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Cholécystite, sans précision",
"code_pipeline": "K81.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Cholécystite",
"code_pipeline": "K80.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Hydrocholécyste",
"code_pipeline": "K82.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Hémorragie",
"code_pipeline": "I62.1",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,48 @@
{
"dossier_id": "213_23156193/trackare-11010227-23156193_11010227_23156193_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Colique néphrétique, sans précision",
"code_pipeline": "N23",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Et gynécologique",
"code_pipeline": "Z01.4",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Allergie à la pénicilline",
"code_pipeline": "Z88.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,118 @@
{
"dossier_id": "218_23164383/trackare-23022580-23164383_23022580_23164383_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Neuronite (névrite) vestibulaire",
"code_pipeline": "H81.2",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Malaise",
"code_pipeline": "R53",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Asthme",
"code_pipeline": "J45.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Migraine",
"code_pipeline": "G43.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Cervicalgie",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Névrite vestibulaire",
"code_pipeline": "H81.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Nausées et des vomissements",
"code_pipeline": "R11",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Système vertébro-basilaire",
"code_pipeline": "G45.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,168 @@
{
"dossier_id": "21_23111304/21_23111304_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Pancreatite aigue lithiasique",
"code_pipeline": "K85.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Cystite",
"code_pipeline": "N30.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Bactériémie à Escherichia coli",
"code_pipeline": "B96.2",
"confidence": "high",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "À 09",
"code_pipeline": "A41.9",
"confidence": "medium",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Lithiase vésiculaire",
"code_pipeline": "K80.2",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Cholangite",
"code_pipeline": "K81.0",
"confidence": "high",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Distension vésiculaire significative",
"code_pipeline": "K80.8",
"confidence": "medium",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Lésion hépatique gauche",
"code_pipeline": "K71.8",
"confidence": "medium",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Adhérences péri",
"code_pipeline": "K66.0",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Cholécystite lithiasique",
"code_pipeline": "K80.1",
"confidence": "high",
"source": "llm_das",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Pancreatite aigue",
"code_pipeline": "K85.0",
"confidence": "high",
"source": "regex",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Prophylactique",
"code_pipeline": "Z29.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Goute",
"code_pipeline": "M10.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Hernie ombilicale",
"code_pipeline": "K42.9",
"confidence": "high",
"source": "edsnlp",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Pancréatite aiguë, sans précision",
"code_pipeline": "K85.9",
"confidence": "high",
"source": "trackare",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,158 @@
{
"dossier_id": "221_23167859/trackare-23023011-23167859_23023011_23167859_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Hémorragie sous-durale non traumatique",
"code_pipeline": "I62.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Obésité (IMC 30.062)",
"code_pipeline": "E66.94",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Céphalée",
"code_pipeline": "G44",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Goutte",
"code_pipeline": "M10.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Colique néphrétique",
"code_pipeline": "N23",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Épilepsie",
"code_pipeline": "G40.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Ataxie cérébelleuse",
"code_pipeline": "G11.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Surveillance de la surveillance",
"code_pipeline": "Z74.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Insuffisance rénale chronique",
"code_pipeline": "N18.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Hyperthermie",
"code_pipeline": "R50.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Faiblesse des membres / déficit",
"code_pipeline": "R20.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,218 @@
{
"dossier_id": "223_23169043/223_23169043_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Pancreatite aigue",
"code_pipeline": "K85.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hépatocellulaire",
"code_pipeline": "K76.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Hépatite aig",
"code_pipeline": "B17.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Pancréatite aiguë, sans précision",
"code_pipeline": "K85.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Incontinence urinaire",
"code_pipeline": "R32",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Diabète type",
"code_pipeline": "O24.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Pancréatique chronique",
"code_pipeline": "K86.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Hypertrophie de la",
"code_pipeline": "N90.6",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cirrhose hépatique",
"code_pipeline": "K74.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Arthrose diffuse",
"code_pipeline": "M15.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Syndrome inflammatoire",
"code_pipeline": "R65.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Diabète de type 2",
"code_pipeline": "E11.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Pancréatite chronique",
"code_pipeline": "K86.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Diabète type 2",
"code_pipeline": "E11.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 19,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,68 @@
{
"dossier_id": "225_23160703/225_23160703_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Ventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Adhérences abdominales",
"code_pipeline": "K56.3",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Globe vésical",
"code_pipeline": "C67.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Leucocytose",
"code_pipeline": "D72.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "226_23175167/226_23175167_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Embolie et thrombose des artères des membres inférieurs",
"code_pipeline": "I74.3",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Antécédent de thrombose du pontage fémoro-distal",
"code_pipeline": "T82.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "X 20",
"code_pipeline": "X20",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Embolie et thrombose",
"code_pipeline": "I74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Kyste rein",
"code_pipeline": "N28.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Anesthésie cutanée",
"code_pipeline": "R20.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Hypoesthésie",
"code_pipeline": "R20.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Goutte",
"code_pipeline": "M10.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Infection",
"code_pipeline": "A49.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,208 @@
{
"dossier_id": "228_23176885/228_23176885_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Diabète de type 2",
"code_pipeline": "E11.8",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Agalactiae",
"code_pipeline": "O92.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Infection urinaire à Streptococcus agalactiae",
"code_pipeline": "N39.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "À 09",
"code_pipeline": "K09.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Diabète de type 2",
"code_pipeline": "E11.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Lésion de l'épaule",
"code_pipeline": "M75.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Ldl 0.4",
"code_pipeline": "L43.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Dyslipidémie",
"code_pipeline": "E78.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Obésité",
"code_pipeline": "E66.99",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Cancer du pancréas (antécédent familial)",
"code_pipeline": "C25.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Leucémie (antécédent familial)",
"code_pipeline": "Z80.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Thérapeutiques pour thérapeutiques",
"code_pipeline": "Z41.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Bmr",
"code_pipeline": "U83.71",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 17,
"texte_original": "Bursite",
"code_pipeline": "M71.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 18,
"texte_original": "Cétonurie",
"code_pipeline": "R82.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,178 @@
{
"dossier_id": "230_23167769/230_23167769_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Dyspnée",
"code_pipeline": "R06.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Pneumopathie",
"code_pipeline": "J18.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Toux",
"code_pipeline": "R05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Examen général",
"code_pipeline": "Z00.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Asthme",
"code_pipeline": "J45.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Maladie de",
"code_pipeline": "Z22.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Cervicale",
"code_pipeline": "M54.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Insuffisance rénale chronique sévère mixte",
"code_pipeline": "N18.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Insuffisance cardiaque",
"code_pipeline": "I11.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Éventration",
"code_pipeline": "K42.0",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Insuffisance respiratoire",
"code_pipeline": "J96.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Colostomie",
"code_pipeline": "Z43.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Goutte",
"code_pipeline": "M10.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Leucocytose",
"code_pipeline": "D72.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Allergies allergie",
"code_pipeline": "Z00.0",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,98 @@
{
"dossier_id": "234_23174515/234_23174515_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Épilepsie",
"code_pipeline": "G40.9",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Pathologique",
"code_pipeline": "F07.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Gliome",
"code_pipeline": "C70.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Tabagisme",
"code_pipeline": "T65.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Céphalées",
"code_pipeline": "G44",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Leucocytose",
"code_pipeline": "D72.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Risque de déséquilibre de l'épilepsie",
"code_pipeline": "G41.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Isolement",
"code_pipeline": "Z29.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,138 @@
{
"dossier_id": "236_23116794/236_23116794_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Fistule colo-vaginale",
"code_pipeline": "N82.3",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "À 15",
"code_pipeline": "Z03.8",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sigmoïdite",
"code_pipeline": "K51.9",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Diverticule pan colique",
"code_pipeline": "K51.8",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Obésité (IMC 32.258)",
"code_pipeline": "E66.04",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Fistule",
"code_pipeline": "N82.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Convalescence",
"code_pipeline": "Z54.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Nausées et vomissements",
"code_pipeline": "R11",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Goutte",
"code_pipeline": "M10.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Insuffisance cardiaque",
"code_pipeline": "I11.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Ventilation ventilation ventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,178 @@
{
"dossier_id": "240_23171519/240_23171519_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Chimiothérapie",
"code_pipeline": "Z51.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Adénocarcinome sigmoïdien métastatique hépatique",
"code_pipeline": "C78.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Embolisation portale",
"code_pipeline": "K92.8",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "F 23",
"code_pipeline": "F23",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Éruption cutanée médicamenteuse",
"code_pipeline": "L24.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Hypokaliémie",
"code_pipeline": "E87.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Syndrome main-pied",
"code_pipeline": "M71.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Alopécie chimio-induite",
"code_pipeline": "C76.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Hépatalgies",
"code_pipeline": "K71.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "N 2.5",
"code_pipeline": "N25",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Hépatite",
"code_pipeline": "K70",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Ventilationventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,128 @@
{
"dossier_id": "245_23193113/trackare-03017963-23193113_03017963_23193113_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Prostatite aiguë (infection urinaire masculine)",
"code_pipeline": "N41.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Sepsis",
"code_pipeline": "R65.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Obésité (IMC 31.02)",
"code_pipeline": "E66.99",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Prostatite aiguë",
"code_pipeline": "N41.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Colique néphrétique",
"code_pipeline": "N23",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Hypotension",
"code_pipeline": "I95.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Diverticulite",
"code_pipeline": "K57.3",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,88 @@
{
"dossier_id": "246_23193699/246_23193699_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Fractures ouvertes d'autres parties de la jambe",
"code_pipeline": "S82.8",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Fracture du",
"code_pipeline": "S72.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Anesthésie : anesthésie",
"code_pipeline": "T41.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Infection post-opératoire de la fracture ouverte",
"code_pipeline": "T84.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Fracture ouverte",
"code_pipeline": "T14.2",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Fracture ouverte de",
"code_pipeline": "S22.31",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Fractures ouvertes d'autres",
"code_pipeline": "S92.21",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,118 @@
{
"dossier_id": "37_23158940/37_23158940_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Cholécystite aiguë",
"code_pipeline": "K81.0",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Cholécystite aiguë",
"code_pipeline": "K81.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Calcul vésiculaire",
"code_pipeline": "K80.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Polype vésiculaire",
"code_pipeline": "N84.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Angiocholite",
"code_pipeline": "K83.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Insuffisance rénale aigue",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Hépatite astreignante",
"code_pipeline": "K71.5",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Calcul des canaux biliaires (sans angiocholite ni cholécystite)",
"code_pipeline": "K80.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,188 @@
{
"dossier_id": "38_23162619/trackare-13029354-23162619_13029354_23162619_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Cholécystite, sans précision",
"code_pipeline": "K81.9",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Cholécystite aiguë",
"code_pipeline": "K81.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Hypertension artérielle",
"code_pipeline": "I10",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sepsis",
"code_pipeline": "R65.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Obésité (IMC 33.659)",
"code_pipeline": "E66.05",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Cholécystite, sans précision",
"code_pipeline": "K81.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Cholécystite aigue",
"code_pipeline": "K80.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cholécystite",
"code_pipeline": "K80.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Stimulateur",
"code_pipeline": "Y50.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Douleur aiguë",
"code_pipeline": "R52.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Méningite bactérienne",
"code_pipeline": "G00",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Sur activité",
"code_pipeline": "Z53.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Adhérences péri",
"code_pipeline": "K66.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Insuffisance rénale aiguë",
"code_pipeline": "N17.8",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 16,
"texte_original": "Infection post-opératoire",
"code_pipeline": "T84.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,178 @@
{
"dossier_id": "54_23230165/54_23230165_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Cholecystite chronique",
"code_pipeline": "K81.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Ganglion du collet réactionnel",
"code_pipeline": "C77.8",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Pathologique",
"code_pipeline": "F07.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Cholélithiasis (épisode précédent)",
"code_pipeline": "K80.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Pancréatite aig",
"code_pipeline": "K85.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Lithiase vésiculaire",
"code_pipeline": "K80.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Tabagisme",
"code_pipeline": "T65.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Obésité (IMC 30.508)",
"code_pipeline": "E66.04",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Pancréatite aiguë",
"code_pipeline": "K85.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Plaie des voies biliaires",
"code_pipeline": "K83.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 10,
"texte_original": "Fibrose hépatique",
"code_pipeline": "K74.2",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 11,
"texte_original": "Thrombopénie",
"code_pipeline": "D69.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 12,
"texte_original": "Musculaire - masse musculaire",
"code_pipeline": "M62.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 13,
"texte_original": "Bmr",
"code_pipeline": "U83.71",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 14,
"texte_original": "Cholangite aiguë",
"code_pipeline": "K81.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 15,
"texte_original": "Abcès hépatique",
"code_pipeline": "K76.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,88 @@
{
"dossier_id": "66_23001636/trackare-20018892-23001636_20018892_23001636_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Ventilationventilationventilationventilationventilationventilationventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Dénutrition",
"code_pipeline": "E43",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Sepsis",
"code_pipeline": "R65.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Gastrostomie",
"code_pipeline": "Z93.1",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Cachexie",
"code_pipeline": "R64",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Perte de poids +",
"code_pipeline": "R63.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Anémie ferriprive",
"code_pipeline": "D50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,88 @@
{
"dossier_id": "68_23046068/trackare--23046068__23046068_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Bmr",
"code_pipeline": "M71.9",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Dénutrition",
"code_pipeline": "E43",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Infection urinaire",
"code_pipeline": "N39.0",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Blastose",
"code_pipeline": "B40.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Perte de poids",
"code_pipeline": "R63.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Effets indésirables",
"code_pipeline": "Y88.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Ankylosé",
"code_pipeline": "M48.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,58 @@
{
"dossier_id": "73_23139637/trackare-05001391-23139637_05001391_23139637_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "À\n19",
"code_pipeline": "D19.7",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Ventilation ventilationventilation",
"code_pipeline": "Z99.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Dyspnée",
"code_pipeline": "R06.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Hématome",
"code_pipeline": "N85.7",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Troubles anxieux",
"code_pipeline": "F41.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,118 @@
{
"dossier_id": "78_23187785/trackare-03017203-23187785_03017203_23187785_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Bmr",
"code_pipeline": "M71.9",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Obésité (IMC 34.651)",
"code_pipeline": "E66.95",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "À la 03",
"code_pipeline": "N30.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sarm",
"code_pipeline": "U82.10",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Soins palliatif",
"code_pipeline": "Z51.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Encephalopathie",
"code_pipeline": "C71.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Prurit",
"code_pipeline": "L29.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cirrhose hépatique",
"code_pipeline": "K74.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance hépato-ciliaire (CHC)",
"code_pipeline": "K76.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Ictère",
"code_pipeline": "K81.9",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,118 @@
{
"dossier_id": "79_23187785/79_23187785_fusionne_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Bmr",
"code_pipeline": "M71.9",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Obésité (IMC 34.651)",
"code_pipeline": "E66.95",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "À la 03",
"code_pipeline": "N30.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sarm",
"code_pipeline": "U82.10",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Soins palliatif",
"code_pipeline": "Z51.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Encephalopathie",
"code_pipeline": "C71.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Prurit",
"code_pipeline": "L29.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cirrhose hépatique",
"code_pipeline": "K74.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance hépato-ciliaire (CHC)",
"code_pipeline": "K76.6",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 9,
"texte_original": "Ictère",
"code_pipeline": "K81.9",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,108 @@
{
"dossier_id": "83_23187785/trackcare_82_23187785_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Bmr",
"code_pipeline": "M71.9",
"confidence": "low",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Obésité (IMC 34.651)",
"code_pipeline": "E66.95",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "À la 03",
"code_pipeline": "N30.3",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Sarm",
"code_pipeline": "U82.10",
"confidence": "low",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Ascite",
"code_pipeline": "R18",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Soins palliatif",
"code_pipeline": "Z51.5",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Encephalopathie",
"code_pipeline": "C71.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 6,
"texte_original": "Prurit",
"code_pipeline": "L29.9",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 7,
"texte_original": "Cirrhose",
"code_pipeline": "K74",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 8,
"texte_original": "Insuffisance hépatique chronique (CHC)",
"code_pipeline": "K72.1",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,78 @@
{
"dossier_id": "84_23215994/trackare-16014215-23215994_16014215_23215994_cim10",
"validateur": "",
"date_validation": "",
"statut": "non_commence",
"dp": {
"texte_original": "Urticaire",
"code_pipeline": "L50.1",
"confidence": "high",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
"das": [
{
"index": 0,
"texte_original": "Insuffisance rénale",
"code_pipeline": "I12.0",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 1,
"texte_original": "Anémie",
"code_pipeline": "D55.9",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 2,
"texte_original": "Anémie par carence",
"code_pipeline": "D50",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 3,
"texte_original": "Blastose",
"code_pipeline": "B40.8",
"confidence": "medium",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 4,
"texte_original": "Faux anévrisme huméral gauche",
"code_pipeline": "I72.4",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
},
{
"index": 5,
"texte_original": "Pose de VVP (Voie de Veinoportée)",
"code_pipeline": "Z95.80",
"confidence": "high",
"source": "",
"statut": "correct",
"code_corrige": null,
"commentaire": ""
}
],
"das_ajoutes": [],
"commentaire_general": ""
}

View File

@@ -0,0 +1,58 @@
{
"date_selection": "2026-02-17T21:35:32",
"total": 50,
"cpam": 25,
"non_cpam": 25,
"dossiers": [
"116_23065570/116_23065570_fusionne_cim10",
"132_23080179/132_23080179_fusionne_cim10",
"134_23050890/134_23050890_fusionne_cim10",
"143_23096917/143_23096917_fusionne_cim10",
"145_23057452/145_23057452_fusionne_cim10",
"153_23102610/153_23102610_fusionne_cim10",
"170_23077016/170_23077016_fusionne_cim10",
"176_23124187/176_23124187_fusionne_cim10",
"17_23100690/17_23100690_fusionne_cim10",
"183_23087212/183_23087212_fusionne_cim10",
"186_23105969/186_23105969_fusionne_cim10",
"193_23123388/193_23123388_fusionne_cim10",
"208_23151988/208_23151988_fusionne_cim10",
"21_23111304/21_23111304_fusionne_cim10",
"223_23169043/223_23169043_fusionne_cim10",
"225_23160703/225_23160703_fusionne_cim10",
"226_23175167/226_23175167_fusionne_cim10",
"228_23176885/228_23176885_fusionne_cim10",
"230_23167769/230_23167769_fusionne_cim10",
"234_23174515/234_23174515_fusionne_cim10",
"236_23116794/236_23116794_fusionne_cim10",
"240_23171519/240_23171519_fusionne_cim10",
"246_23193699/246_23193699_fusionne_cim10",
"37_23158940/37_23158940_fusionne_cim10",
"54_23230165/54_23230165_fusionne_cim10",
"122_23070126/122_23070126_fusionne_cim10",
"218_23164383/trackare-23022580-23164383_23022580_23164383_cim10",
"221_23167859/trackare-23023011-23167859_23023011_23167859_cim10",
"113_23065949/trackare-18022356-23065949_18022356_23065949_cim10",
"38_23162619/trackare-13029354-23162619_13029354_23162619_cim10",
"83_23187785/trackcare_82_23187785_cim10",
"84_23215994/trackare-16014215-23215994_16014215_23215994_cim10",
"173_23069373/173_23069373_fusionne_cim10",
"213_23156193/trackare-11010227-23156193_11010227_23156193_cim10",
"245_23193113/trackare-03017963-23193113_03017963_23193113_cim10",
"73_23139637/trackare-05001391-23139637_05001391_23139637_cim10",
"115_23066188/115_23066188_fusionne_cim10",
"103_23056749/103_23056749_fusionne_cim10",
"125_23074494/125_23074494_fusionne_cim10",
"66_23001636/trackare-20018892-23001636_20018892_23001636_cim10",
"159_23107113/trackare-00270032-23107113_00270032_23107113_cim10",
"160_23099448/160_23099448_fusionne_cim10",
"187_23133268/187_23133268_fusionne_cim10",
"179_23126805/trackare-23005591-23126805_23005591_23126805_cim10",
"118_23042633/118_23042633_fusionne_cim10",
"119_23062819/119_23062819_fusionne_cim10",
"78_23187785/trackare-03017203-23187785_03017203_23187785_cim10",
"79_23187785/79_23187785_fusionne_cim10",
"167_23104446/167_23104446_fusionne_cim10",
"68_23046068/trackare--23046068__23046068_cim10"
]
}

2492
data/ollama_cache.json Normal file

File diff suppressed because it is too large Load Diff

15131
data/ollama_cache_gemma3.bak Normal file

File diff suppressed because it is too large Load Diff

BIN
data/rag_index/faiss.index Normal file

Binary file not shown.

131156
data/rag_index/metadata.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

View File

@@ -0,0 +1 @@
test content

Some files were not shown because too many files have changed in this diff Show More