z230
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# 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/`.
|
||||
Reference in New Issue
Block a user