"""Fixtures partagées pour les tests T2A.""" from __future__ import annotations import pytest from src.config import ( ActeCCAM, Antecedent, BiologieCle, Complication, ControleCPAM, Diagnostic, DossierMedical, Imagerie, Sejour, Traitement, ) @pytest.fixture def dossier_minimal() -> DossierMedical: """Dossier médical minimal : DP seul, pas de DAS/bio/imagerie.""" return DossierMedical( source_file="test_minimal.pdf", document_type="crh", sejour=Sejour(sexe="M", age=65, duree_sejour=5), diagnostic_principal=Diagnostic( texte="Cholécystite aiguë", cim10_suggestion="K81.0", ), ) @pytest.fixture def dossier_complet() -> DossierMedical: """Dossier médical enrichi : DP + DAS + bio + imagerie + traitements.""" return DossierMedical( source_file="test_complet.pdf", document_type="crh", sejour=Sejour(sexe="M", age=65, duree_sejour=5, imc=31.2), diagnostic_principal=Diagnostic( texte="Cholécystite aiguë", cim10_suggestion="K81.0", ), diagnostics_associes=[ Diagnostic(texte="Iléus réflexe", cim10_suggestion="K56.0"), ], actes_ccam=[ ActeCCAM(texte="Cholécystectomie", code_ccam_suggestion="HMFC004"), ], biologie_cle=[ BiologieCle(test="CRP", valeur="180", anomalie=True), BiologieCle(test="Créatinine", valeur="450", anomalie=True), ], imagerie=[ Imagerie(type="Scanner abdominal", conclusion="Lithiase cholédocienne confirmée"), ], traitements_sortie=[ Traitement(medicament="Augmentin IV", posologie="3g/j"), Traitement(medicament="Morphine SC"), ], antecedents=[ Antecedent(texte="HTA"), Antecedent(texte="Diabète type 2"), ], ) @pytest.fixture def controle_cpam() -> ControleCPAM: """Contrôle CPAM de test avec codes contestés.""" return ControleCPAM( numero_ogc=12345, titre="Contestation du codage CIM-10", arg_ucr="Le codage du DP K81.0 est contesté, proposition K80.2", decision_ucr="Modification du DP", dp_ucr="K80.2", da_ucr="K56.0", )