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

2.8 KiB
Raw Permalink Blame History

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)

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í

& "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/.