z230
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# download_lab_reports_v1.0.py
|
||||
|
||||
**Verze:** 1.0 | **Datum:** 2026-06-16
|
||||
|
||||
Stahuje PDF **Lab Reports** ze `xsp.labcorp.com` pro studii **77242113UCO3001**
|
||||
(interní číslo `36940`), filtrovaně na **10 českých center**.
|
||||
|
||||
## Princip
|
||||
Stejný jako `download_test_results` — Playwright + perzistentní profil
|
||||
(`browser_profile/`), jednorázový login (email → Next → heslo → Verify, jinak se
|
||||
přeskočí), stahování **přes UI**: klik na odkaz **„English"** ve sloupci Download
|
||||
→ `POST /api/download/documentFile` → `expect_download`.
|
||||
|
||||
Lab Reports je **AG Grid s virtuálním renderem** (~50 z 298 řádků v DOM).
|
||||
Skript proto scrolluje viewport po indexech (`row-index`), u každého řádku
|
||||
přečte metadata z buněk (`col-id`: `subjectId`, `accessionNumber`, `visit`,
|
||||
`visitCollectionDate`, `siteNum`, `postedDateTime`; zdvojený text se odstraní)
|
||||
a klikne na „English".
|
||||
|
||||
## Název PDF
|
||||
Mezery místo podtržítek; první datum = **odběr** (`visitCollectionDate`),
|
||||
`posted` = **datum vystavení** (`postedDateTime`, jen datum) — odliší reissue
|
||||
stejného reportu (stejný accession, různé Posted):
|
||||
|
||||
```
|
||||
77242113UCO3001 {odběr} {Site} {Subject} {Visit} {Accession} posted {posted}.pdf
|
||||
```
|
||||
Příklad: `77242113UCO3001 2026-06-11 CZ10009 CZ100092003 Screening 6227323331 posted 2026-06-15.pdf`
|
||||
|
||||
Při zbylé kolizi názvu se přidá ` (2)`, ` (3)`, …
|
||||
|
||||
## Spuštění
|
||||
```
|
||||
python download_lab_reports_v1.0.py --dry-run # jen vypíše názvy, nestahuje
|
||||
python download_lab_reports_v1.0.py --limit 5 # stáhne jen prvních 5 (test)
|
||||
python download_lab_reports_v1.0.py # stáhne vše (~298)
|
||||
```
|
||||
|
||||
**Výstup:** `U:\PythonProject\Janssen\Covance\LabReports\`
|
||||
|
||||
## Konfigurace (v hlavičce skriptu)
|
||||
- `SITES` — 10 interních ID center (z „GO TO LINK" URL).
|
||||
- `STUDY` = `36940`, `STUDY_CODE` = `77242113UCO3001`.
|
||||
- `OUT_DIR`, `LOGIN_URL`, `PROFILE_DIR`.
|
||||
|
||||
## TODO / k doladění
|
||||
- Cílový adresář (možná Dropbox / per-studie podsložka).
|
||||
- Případně přeskakovat už stažené (teď se přidává `(2)`).
|
||||
|
||||
## Pozn. ke spuštění
|
||||
Skript otevírá viditelné GUI Chrome (Playwright) — musí běžet z **terminálu
|
||||
uživatele s desktop session** (PowerShell / dvojklik), ne z headless/agent
|
||||
prostředí (tam Chromium spadne s `exitCode 2147483651`).
|
||||
Reference in New Issue
Block a user