#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
sipiq_send_v1.0.py
==================
Verze: 1.0
Datum: 2026-06-19
Autor: Claude Code (pro MUDr. Vladimíra Buzalku)
Popis
-----
Vygeneruje .eml draft PRVNÍHO ROZESLÁNÍ feasibility dotazníku SIPIQ ke studii
77242113UCO3002 (DAWN, icotrokinra, ulcerózní kolitida) lékaři, který podepsal CDA
(KROK 5). Tělo: poděkování za podpis CDA + zaslání odkazu na dotazník specifický
pro centrum (link z Trilia / argumentu) + nabídka pomoci.
Zároveň (s --apply):
- uloží odkaz do investigators.sipiq.link (aby fungovaly pozdější připomínky),
- posune lékaře na KROK "6 - SIPIQ odeslán" a předřadí řádek do STATUS.
To = email + email2 (dd-proxy vynechány), Cc = koordinátorky, BEZ hlavičky From
(JNJ Outlook doplní odesílatele z GAL a odešle přes JNJ Exchange). Tělo BASE64.
Draft ≠ odesláno — STATUS / KROK 6 se ale na přání píše rovnou (uživatel link odešle ručně).
Použití:
python sipiq_send_v1.0.py --name Leksa --link "https://...." # dry-run
python sipiq_send_v1.0.py --name Leksa --link "https://...." --apply # .eml + Mongo
Mongo 192.168.1.76:27017, bez auth, pymongo.
"""
import argparse
import os
import unicodedata
from datetime import date
from email.message import EmailMessage
from pymongo import MongoClient
OUT_DIR = r"u:\Dropbox\!!!Days\Downloads Z230\UploadToJNJ"
CC = "AKocourk@ITS.JNJ.com, EBartoso@its.jnj.com"
SIG = ("MUDr. Vladimír BUZALKA
"
"ICON plc / Performing Local Trial Management Services for Janssen – Cilag s.r.o. "
"/ Global Clinical Operations
"
"Mobile: +420 775 735 276 / Fax: +420 227 012 284
"
"E-mail: vbuzalka@its.jnj.com, vladimir.buzalka@iconplc.com")
CZ_MON = {1: "ledna", 2: "února", 3: "března", 4: "dubna", 5: "května", 6: "června",
7: "července", 8: "srpna", 9: "září", 10: "října", 11: "listopadu", 12: "prosince"}
def ascii_slug(s):
return "".join(c for c in unicodedata.normalize("NFKD", str(s or ""))
if not unicodedata.combining(c)).lower().replace(" ", "")
def is_female(prijmeni):
p = (prijmeni or "").lower()
return p.endswith("ová") or p.endswith("ova") or p.endswith("á")
def build_body(prijmeni, link):
f = is_female(prijmeni)
greet = "Vážená paní doktorko," if f else "Vážený pane doktore,"
return (
f'
{greet}
' f'velmi děkuji za podpis dohody o mlčenlivosti (CDA) ke studii ' f'77242113UCO3002 (DAWN) (přípravek icotrokinra, ulcerózní kolitida).
' f'Dovoluji si Vám nyní zaslat feasibility dotazník SIPIQ, který je ' f'klíčový pro posouzení vhodnosti Vašeho centra a další postup. Níže najdete ' f'odkaz na dotazník specifický pro Vaše centrum:
' f'' f'Budu velmi rád za jeho vyplnění v co nejkratším termínu. V případě ' f'jakýchkoli dotazů (např. potíže s odkazem) jsem Vám plně k dispozici.
' f'Předem děkuji za Váš čas a vstřícnost.
' f'S pozdravem,
{SIG}