Files
janssen/Covance/download_lab_reports_v1.4.md
2026-06-16 14:32:28 +02:00

61 lines
2.6 KiB
Markdown

# 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/`.