61 lines
2.6 KiB
Markdown
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/`.
|