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

46 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# materialize_lab_reports_v1.0.py
**Verze:** 1.0  |  **Datum:** 2026-06-16
Materializuje **Lab Reports** z MongoDB (`covance.labreports`) do **Dropboxu**.
Cíl: adresář = **identická kopie Monga** (plné zrcadlo) — doplní chybějící PDF
a **smaže přebytečné**. Žádná jiná ambice. (Opak download skriptu, který plní
Mongo z portálu.)
## Cílové cesty (klíč = `studyCode`)
```
77242113UCO3001 -> u:\Dropbox\!77242113UCO3001\#020 Reporty\LabCorp
42847922MDD3003 -> u:\Dropbox\!!42847922MDD3003\#000 Reports\LabCorp
```
## Struktura
`<base studie>\<centrum siteNum>\<fileName>.pdf` — podsložka **per centrum**
(`CZ10003\`, …), do ní všechna PDF toho centra.
## Název souboru
= `doc.fileName` z Monga. Když víc **různých** reportů (různé `reportId`) má
v jednom centru **stejný** název, přidá se ke všem z té skupiny ` [<reportId[:8]>]`
→ vždy unikátní a stabilní (idempotentní zrcadlo). Běžné případy (liší se datum
Posted) zůstávají s čistým názvem.
## Zrcadlení
- **+ zapsat** chybějící (PDF binárka se z Monga tahá až teď, jen pro chybějící;
existující se shodnou velikostí se přeskočí — obsah reportu je v čase neměnný).
- ** smazat** PDF, které v Mongu nejsou; odstranit prázdné podsložky center.
- Mazání **naostro** (žádný potvrzovací krok) — je to čistý mirror.
- **Pojistka:** pokud Mongo vrátí pro studii 0 dokumentů, studie se **přeskočí**
(nesmaže celý adresář kvůli výpadku DB) — obejde `--allow-empty`.
## Spuštění (čistá Mongo+FS operace, GUI netřeba)
```
python materialize_lab_reports_v1.0.py --dry-run # jen náhled (+X/Y), nic nezapíše
python materialize_lab_reports_v1.0.py # zrcadlí naostro
python materialize_lab_reports_v1.0.py --verify # u existujících porovná i sha256
python materialize_lab_reports_v1.0.py --study 42847922MDD3003 # jen jedna studie
```
## Návaznost
Plní [[project_covance_labreports]] download_lab_reports_v1.4 (portál → Mongo),
tento skript dělá druhý směr (Mongo → Dropbox). Idempotentní — lze pouštět
opakovaně / na konci download běhu.