feat: interface admin regles, refactoring viewer, README, pyproject.toml
- Nouveau module rules_manager.py : CRUD YAML pour les regles metier - Nouveau blueprint bp_rules.py + template admin_rules.html : interface web pour activer/desactiver/ajouter/supprimer des regles - Extraction helpers.py depuis app.py (filtres Jinja2, statistiques, scan dossiers, status systeme) — app.py passe de 1585 a 482 lignes - Suppression backward-compat re-exports dans cim10_extractor et cpam_response (imports corriges dans les tests) - README.md : architecture, modules, installation, utilisation - pyproject.toml : dependencies completes, config ruff, pytest, coverage Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,28 +19,32 @@ from src.config import (
|
||||
Traitement,
|
||||
)
|
||||
from src.control.cpam_response import (
|
||||
_assess_dossier_strength,
|
||||
_build_bio_confrontation,
|
||||
_build_bio_summary,
|
||||
_build_correction_prompt,
|
||||
_build_cpam_prompt,
|
||||
_build_tagged_context,
|
||||
_BIO_THRESHOLDS,
|
||||
_check_das_bio_coherence,
|
||||
_extraction_pass,
|
||||
_format_response,
|
||||
_fuzzy_match_ref,
|
||||
_get_cim10_definitions,
|
||||
_get_code_label,
|
||||
_sanitize_unauthorized_codes,
|
||||
_search_rag_for_control,
|
||||
_validate_adversarial,
|
||||
_validate_codes_in_response,
|
||||
_validate_grounding,
|
||||
_validate_references,
|
||||
_assess_quality_tier,
|
||||
generate_cpam_response,
|
||||
)
|
||||
from src.control.cpam_context import (
|
||||
_assess_dossier_strength,
|
||||
_build_bio_confrontation,
|
||||
_build_bio_summary,
|
||||
_BIO_THRESHOLDS,
|
||||
_check_das_bio_coherence,
|
||||
_get_cim10_definitions,
|
||||
_get_code_label,
|
||||
)
|
||||
from src.control.cpam_validation import (
|
||||
_assess_quality_tier,
|
||||
_fuzzy_match_ref,
|
||||
_sanitize_unauthorized_codes,
|
||||
_validate_adversarial,
|
||||
)
|
||||
|
||||
|
||||
def _make_dossier() -> DossierMedical:
|
||||
|
||||
@@ -176,8 +176,8 @@ class TestBioNormesInContext:
|
||||
assert "[N: min-max]" in prompt
|
||||
|
||||
def test_bio_normals_exported(self):
|
||||
"""BIO_NORMALS est bien exporté depuis cim10_extractor."""
|
||||
from src.medical.cim10_extractor import BIO_NORMALS
|
||||
"""BIO_NORMALS est bien exporté depuis bio_normals."""
|
||||
from src.medical.bio_normals import BIO_NORMALS
|
||||
|
||||
assert "Créatinine" in BIO_NORMALS
|
||||
assert BIO_NORMALS["Créatinine"] == (50, 120)
|
||||
|
||||
@@ -3,12 +3,10 @@
|
||||
import pytest
|
||||
|
||||
from src.config import DossierMedical, Diagnostic, Antecedent, Complication
|
||||
from src.medical.cim10_extractor import (
|
||||
extract_medical_info,
|
||||
_lookup_cim10,
|
||||
_is_abnormal,
|
||||
_is_valid_antecedent,
|
||||
)
|
||||
from src.medical.cim10_extractor import extract_medical_info
|
||||
from src.medical.diagnostic_extraction import _lookup_cim10
|
||||
from src.medical.bio_normals import _is_abnormal
|
||||
from src.medical.cim10_extractor import _is_valid_antecedent
|
||||
from src.medical.cim10_dict import normalize_text, load_dict, lookup, reset_cache
|
||||
from src.extraction.document_classifier import classify, classify_with_confidence
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ import pytest
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
|
||||
from src.viewer.app import create_app, compute_group_stats, severity_badge, format_duration, format_cpam_text
|
||||
from src.viewer.app import create_app
|
||||
from src.viewer.helpers import compute_group_stats, severity_badge, format_duration, format_cpam_text
|
||||
from src.viewer.pdf_redactor import load_entities_from_report, redact_pdf, highlight_text
|
||||
from src.config import DossierMedical, Diagnostic, ActeCCAM
|
||||
|
||||
|
||||
Reference in New Issue
Block a user