carepath-api / interpreter /tests /test_glossary.py
tranth3truong's picture
Deploy public Scribe-only CarePath Space
cc678b9
Raw
History Blame Contribute Delete
1.5 kB
import json
from app.glossary import lookup_glossary, seed_glossary
from app.risk.engine import LEXICON_DIR
def test_seed_glossary_loads_clinician_editable_csv(db_session) -> None:
inserted = seed_glossary(db_session)
assert inserted >= 150
assert seed_glossary(db_session) == 0
def test_lookup_glossary_exact_folded_fuzzy_and_lasa(db_session) -> None:
seed_glossary(db_session)
folded = lookup_glossary(db_session, "benh nhan di ung thuoc khang sinh")
fuzzy = lookup_glossary(db_session, "Uong Augmentn sau an")
lasa = lookup_glossary(db_session, "Dang dung Lasix")
assert any(entry.term_vi == "thuốc kháng sinh" for entry in folded)
assert any(entry.term_vi == "Augmentin" for entry in fuzzy)
assert any(entry.lasa_group == "Lasix" for entry in lasa)
def test_required_lexicon_files_are_clinician_editable_data() -> None:
expected = {
"red_flags.json",
"negation_cues.json",
"units_forms.json",
"routes.json",
"laterality.json",
"pregnancy.json",
"lasa_pairs.json",
"abbreviations_vi.json",
"pronoun_cues.json",
"subject_omission.json",
"symptom_severity.json",
"medical_history.json",
"body_locations.json",
}
assert expected == {path.name for path in LEXICON_DIR.glob("*.json")}
abbreviations = json.loads((LEXICON_DIR / "abbreviations_vi.json").read_text(encoding="utf-8"))
assert abbreviations["HA"] == "huyết áp"