# download_lab_reports_v1.4.py **Verze:** 1.4  |  **Datum:** 2026-06-16 Stahuje PDF **Lab Reports** ze `xsp.labcorp.com` do **MongoDB** (`covance.labreports`) — metadata + skutečné PDF (inline Binary). **Na disk neukládá.** ## Více studií — seznam `STUDIES` nahoře ```python STUDIES = [ {"enabled": True, "note": "77242113UCO3001 (UC)", "link": "…/study/36940/lab-reports?site=[…]"}, {"enabled": True, "note": "42847922MDD3003 (MDD)", "link": "…/study/35472/lab-reports?site=[…]"}, ] ``` Skript zpracuje **všechny `enabled=True`**. Z každého **linku** odvodí: - **interní číslo studie** z `/study/{N}/`, - **množinu center** z `site=[…]`. **Kód studie** (např. `77242113UCO3001`) se čte z **hlavičky portálu** → do Monga se píše `study` (interní) + `studyCode` (z hlavičky). Přidání další studie = další řádek do `STUDIES`. Vypnutí = `enabled: False`. ## Klíč `record_id = reportId` Stabilní 32-hex ID dokumentu z dat AG Gridu, globálně unikátní a perzistentní. **Jedna kolekce** pro všechny studie; delta filtruje per `study`. ## Pojistka center Zpracují se jen řádky, jejichž **`siteId` je v množině center z linku** (study/země-agnostické — nahradilo dřívější „siteNum začíná CZ"). ## `HEADLESS` (proměnná nahoře) `HEADLESS = False` → viditelné okno; `True` → bez okna (headless). Pozn.: session/login běží přes perzistentní profil; v headlessu ověř, že login projde. ## Režim `SYNC_MODE` (proměnná nahoře) - **delta** — jen nové přes `reportId` (stop-at-known; list Posted DESC). - **fullsync** — projít vše, doplnit chybějící/změněné. CLI přepíše: `--delta` / `--fullsync`. Dále `--dry-run`, `--limit N` (na studii). ## MongoDB dokument `record_id`(=reportId), `study`, `studyCode`, `type`, `site`, `subject`, `accession` (doslova), `visit`, `collected`, `posted`, `postedIso`, `fileId`, `serverFileName`, `fields`, `fileName`, **`pdf`** (Binary), `pdfSize`, `pdfSha256`, `firstSeen`, `lastSeen`, `history[]`. ## Spuštění (z terminálu uživatele — GUI Chrome) ``` python download_lab_reports_v1.4.py # všechny enabled, dle SYNC_MODE python download_lab_reports_v1.4.py --fullsync python download_lab_reports_v1.4.py --dry-run python download_lab_reports_v1.4.py --limit 5 ``` ## Zmeny v1.4 - Seznam `STUDIES` (link + enabled) místo pevného `STUDY`/`SITES`/`STUDY_CODE`. - `studyCode` z hlavičky portálu; site-pojistka přes `siteId` z linku. - Přidána studie 42847922MDD3003 (interní 35472, 5 center). ## Nahrazuje `download_lab_reports_v1.3.py` → `Trash/`.