46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# 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.
|