# 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[]`** = `"||"` — 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ě 8–12 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 `^\|\|`); 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): ``` \\\\ "YYYY-MM-DD Description [VTMF-xxx] [v1.0]." ``` 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/.