1.7 KiB
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+ metadatastav="podepsano", soubor, zdroj. - Nastaví
KROK = "5 - CDA podepsano"a předřadí řádek doSTATUS. _idse konvertuje naObjectId(č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.