8c01fd6e1a
- EmailsImport: jnj_mailbox_sync_v1.0 (sync JNJ schranky) - Covance: create_lab_results_report_v1.0 + zpracovane CSV (samples/kits/equeries/test-results), browser profily - Feasibility UCO2001: store_cda_*, store_sipiq_links, classify_krok, mark_sipiq_sent, report v1.1 (stary report do TRASH) - IWRS/Drugs: pregenerovane onsite inventory / shipment reporty - TrilliumMCP server + trilium upload/diacritics skripty - .mcp.json Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
create_lab_results_report_v1.0
Verze: 1.0 — 2026-06-09
Skript: U:\PythonProject\Janssen\Covance\create_lab_results_report_v1.0.py
Stav: samostatný (standalone) — později se sloučí do hlavního create_report_v2.0.py.
Účel
Generuje „pěkný" Excel report laboratorních výsledků obou studií Covance/Labcorp
(36940 = UCO3001, 35472 = MDD3003) ze zdroje MongoDB covance.results
(standard + microbiology). Styl odpovídá hlavnímu reportu (modré hlavičky 4472C4,
rámečky, freeze panes, autofiltr, skutečné Excel datumy DD-MMM-YYYY, hyperlinky
mezi listy, barevné souhrny).
Vstup / výstup
- Vstup:
mongodb://192.168.1.76:27017, dbcovance, kolekceresults. - Výstup:
U:/Dropbox/!!!Days/Downloads Z230/{YYYY-MM-DD_HHMMSS} Covance lab results report.xlsx(verzovaný timestampem; starší výstupy ručně doTRASH/).
Listy (10)
- PREHLED — KPI dashboard; každé číslo je hyperlink do detailu. Bezpečnostní dlaždice (Hyův zákon, mikrobiologie) se přebarvují zeleně (0) / červeně (>0).
- SOUHRN CENTER — rollup per (studie, centrum, pacient): počty výsledků, abnormálních, kritických, mezer, zrušených, revizí + první/poslední sběr. Mezisoučty per centrum + CELKEM. Pacient → odkaz do Abnormality.
- DILI Hyuv zakon — verdikt (zelený/červený) + výpis všech 5 DILI kritérií.
„Criteria Met" na ALT/AST≥3xULN (a kombo s TBIL) = červeně;
ALP<2XULN„Criteria Met" jen žlutě (samo o sobě NENÍ pozitivní). Pozitivní = konjunkce transamináza ∧ TBIL kombo. - Abnormality — pracovní seznam všech výsledků mimo rozmezí (705), řazeno nejhorší první (závažnost → „Mimo o %"). Kritická = červený řádek, Vysoká = žlutý, Mírná = červené písmo hodnoty. Accession → Zdroj, Pacient → Souhrn.
- Matice pokryti — pacient × návštěva, buňka = počet výsledků + stav barvou (kritická/abnormální/zrušená/ok). Prázdná buňka je neutrální (bez plánu návštěv per pacient nelze rozlišit „chybí" od „neočekáváno").
- Zrusene testy — pivot důvodů + výpis (292+ zrušených); ztracený vzorek (no specimen/QNS/…) červeně.
- Mikrobiologie — kultivace; verdikt + auto-flag první pozitivní.
- Datove mezery — „Required testing unavailable" / „Unable to calc due to LOQ" + prázdné hodnoty v klíčových panelech.
- Zdroj — plochý výpis všech standardních výsledků (kotva pro hyperlinky), abnormální Příznak zvýrazněn.
- LEGENDA — vysvětlení flagů, závažnosti, barev, Hyova zákona, studií.
Klíčová logika (helpers)
parse_flags— H/L směr + kvalifikátory (T = panic, SF, RX).out_by_pct— % za hranicí rozmezí (normalizováno šířkou rozmezí).severity— 3 Kritická (T / ≥100 % / jaterní H / cytopenie L), 2 Vysoká (≥50 %), 1 Mírná.hys_positive— Hyův zákon jako konjunkce (transamináza ∧ TBIL kombo);ALP<2XULNnikdy netriggeruje.micro_positive— Organism/Growth nebo Test Result ≠ negativní fráze (future-proof, aktuálně 0).rev_flags— Subject/Visit/Result Data Revision == „R".
Aktuální čísla (běh 2026-06-09)
- 11 849 výsledků (standard 11 823, micro 26), 15 center, 58 pacientů.
- Abnormálních 705 (kritických 122), zrušených 292, mezer 15, revizí 767.
- Hyův zákon pozitivních 0, mikrobiologie pozitivních 0.
TODO / nápady na iteraci
- Plná česká diakritika v názvech listů a popiscích (teď ASCII kvůli jistotě).
- List Revize dat (history[] je zatím prázdná, jen Data Revision flagy).
- Sloučit do hlavního
create_report.py(sdílet styly + helpers). - Volitelně filtr na jednu studii / parametr CLI.