# store_cda_seaweed_v1.0.py **Verze:** 1.0 · **Datum:** 2026-06-17 ## Účel Uloží podepsané CDA (PDF) z e-mailů asistentek (CTA) do Mongo `feasibility.investigators` do pole `cda.*` a posune lékaře na `KROK "5 - CDA podepsano"`. Na rozdíl od `store_cda_batch` (stahuje `.msg` přes SFTP z Toweru a tahá přílohu přes `extract_msg`) tahle verze stahuje PDF **přímo ze SeaweedFS** přes `seaweed_url`, který parser ukládá k příloze v `emaily."vbuzalka@its.jnj.com"` (`attachments[].seaweed_url` + `sha256`). Jednodušší, bez SFTP. ## Jak to funguje - `MAPPING` = explicitní párování `investigator _id → (seaweed_url, filename, sha256, size, source_msg_id)`. - Pro každý záznam: stáhne PDF (urllib), ověří **SHA256 + velikost + PDF hlavičku**, base64-zakóduje a uloží do `cda`: `data_base64, data_sha256, data_filename, data_mime, data_size, data_stored_at, data_source_msg` + metadata `stav="podepsano", soubor, zdroj`. - Nastaví `KROK = "5 - CDA podepsano"` a předřadí řádek do `STATUS`. - `_id` se konvertuje na `ObjectId` (čisté pymongo nekonvertuje string→ObjectId samo). ## Použití ``` .venv\Scripts\python.exe Feasibility\store_cda_seaweed_v1.0.py # dry-run (ověří stažení+SHA, nezapisuje) .venv\Scripts\python.exe Feasibility\store_cda_seaweed_v1.0.py --apply # zapíše do Mongo ``` ## Běh 17JUN2026 (--apply) Uloženo 5/5 (všechny SHA256 OK), KROK 4 → 5: Závada Filip, Bruncák Michal (FNsP B. Bystrica), Machytka Evžen (Asclepiades), Pumprla Jiří (PreventaMed), Zapotocká Júlia (PAV-MED). GASTROMART/Molnár přeskočen (už KROK 6, CDA dříve uloženo). ## Závislosti `pymongo`, `bson` (+ stdlib). SeaweedFS volume server `192.168.1.50:8888`. Mongo `192.168.1.76:27017`.