Files
janssen/Feasibility/TRASH/store_cda_seaweed_v1.0.md
2026-06-19 14:28:54 +02:00

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 + 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.