Files
janssen/Covance/create_lab_results_report_v1.0.md
administrator 8c01fd6e1a Pridani novych skriptu, reportu a zpracovanych dat
- 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>
2026-06-09 15:10:21 +02:00

3.8 KiB
Raw Permalink Blame History

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, db covance, kolekce results.
  • Výstup: U:/Dropbox/!!!Days/Downloads Z230/{YYYY-MM-DD_HHMMSS} Covance lab results report.xlsx (verzovaný timestampem; starší výstupy ručně do TRASH/).

Listy (10)

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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").
  6. Zrusene testy — pivot důvodů + výpis (292+ zrušených); ztracený vzorek (no specimen/QNS/…) červeně.
  7. Mikrobiologie — kultivace; verdikt + auto-flag první pozitivní.
  8. Datove mezery — „Required testing unavailable" / „Unable to calc due to LOQ" + prázdné hodnoty v klíčových panelech.
  9. Zdroj — plochý výpis všech standardních výsledků (kotva pro hyperlinky), abnormální Příznak zvýrazněn.
  10. 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<2XULN nikdy 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.