Files
janssen/VTMFDownloadFiles/export_from_seaweed_v1.2.md
2026-06-15 16:43:46 +02:00

70 lines
2.8 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.
# export_from_seaweed_v1.2 — sestavení stromu dokumentů ze SeaweedFS
**Verze:** 1.2 · **Datum:** 2026-06-15
Sestaví na disk strom dokumentů studie z **Mongo `VTMF.documents` + objektů
v SeaweedFS Fileru**. Náhrada za dřívější ukládání do Dropboxu — pipeline
ukládá jen do SeaweedFS, tenhle skript kdykoli „vytáhne aktuální verzi"
čehokoli na disk pod čitelnými jmény.
## ⚠️ Pravidlo příslušnosti ke studii = `scopes[]`, NE `studies[]`
Tohle je klíčové a platí pro každý dotaz „co je ve VTMF na study/country/site
úrovni studie X":
- **`scopes[]`** = `"<level>|<study>|<country>"` — odkud jsme dokument reálně
natáhli (který report/úroveň). **Tohle určuje příslušnost** k TMF studie.
- **`studies[]`** = jen M:N reference — kam všude je dokument ve Vaultu
přilinkovaný (klidně 812 studií). Pro výběr „TMF studie X" se NEpoužívá.
Příklad: dokument sdílený s CRD3001/MDD3003 je má v `studies[]`, ale když má
`scopes=['study|77242113UCO3001|']`, patří do TMF **UCO3001**, ne CRD3001.
Skript proto vybírá přes scopes (regex `^<level>\|<study>\|`); studie, která
přes scopes nemá nic (neproběhla pro ni pipeline), se přeskočí.
## Pojmenování a struktura
Podle původních Dropbox pravidel (pipeline v1.5):
```
<OUTPUT_ROOT>\<základní podadresář>\<Type>\<Subtype>\
"YYYY-MM-DD Description [VTMF-xxx] [v1.0].<přípona>"
```
Základní podadresář podle úrovně:
| Úroveň | Podadresář | Poznámka |
|---|---|---|
| study | `STUDY` | |
| country | `COUNTRY` | |
| site | `<číslo centra>` | dokument se zapíše do složky **každého** centra ve `sites[]` (sdílený dokument = víc kopií → browsable strom po centrech) |
Datum / verze se z názvu vynechají, když chybí. `Type`/`Subtype` prázdné → `_`.
## Rychlé nastavení (nahoře ve skriptu)
```python
STUDIES = ["77242113UCO3001", "77242113UCO3002",
"77242113CRD3001", "42847922MDD3003"] # víc najednou
OUTPUT_ROOT_TMPL = r"U:\{study}" # {study} = kód studie
EXPORT = {"study": True, "country": True, "site": True} # True/False
OVERWRITE = False # True = přepsat existující
```
## Chování
- Stahuje jen `deleted=False, downloaded=True, placeholder!=True, seaweed_path!=None`.
- **Idempotentní** — existující soubory přeskakuje (resume). Lze pouštět
opakovaně pro „aktuální stav".
- Stáhne obsah jednoho dokumentu jednou, u site-level ho zapíše do všech
cílových složek center.
- Studie bez scopes se přeskočí s hláškou (pipeline pro ni ještě neběžela).
## Spuštění
```powershell
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\export_from_seaweed_v1.2.py"
```
Předchůdci: v1.0 (jen study, pevně), v1.1 (přepínače, filtr přes studies[]) — v TRASH/.