z230
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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ě 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 `^<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/.
|
||||
Reference in New Issue
Block a user