z230
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# =============================================================================
|
||||
# Nazev: fix_email_podruhe_v1.0.py
|
||||
# Verze: 1.0
|
||||
# Datum: 2026-06-10
|
||||
# Popis: U center v KROK 1, jejichz STATUS obsahuje "Email odeslán podruhé",
|
||||
# nahradi tento text za "1. připomínka odeslaná" (= 2. email byl
|
||||
# fakticky 1. pripominka). Po zapisu spustit classify_krok --apply
|
||||
# (centra prejdou na KROK 2). Idempotentni.
|
||||
# Pouziti: python fix_email_podruhe_v1.0.py (dry-run)
|
||||
# python fix_email_podruhe_v1.0.py --apply (zapise)
|
||||
# =============================================================================
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pymongo import MongoClient
|
||||
|
||||
MONGO_URI = os.environ.get("MONGO_URI", "mongodb://192.168.1.76:27017")
|
||||
OLD = "Email odeslán podruhé"
|
||||
NEW = "1. připomínka odeslaná"
|
||||
|
||||
|
||||
def main():
|
||||
apply = "--apply" in sys.argv
|
||||
client = MongoClient(MONGO_URI)
|
||||
col = client["feasibility"]["investigators"]
|
||||
|
||||
docs = list(col.find(
|
||||
{"KROK": {"$regex": "^1"}, "STATUS": {"$regex": "odeslán podruhé"}},
|
||||
{"prijmeni": 1, "jmeno": 1, "STATUS": 1},
|
||||
))
|
||||
print(f"Nalezeno {len(docs)} center v KROK 1 s '{OLD}'.\n")
|
||||
|
||||
n = 0
|
||||
for d in docs:
|
||||
status = d.get("STATUS", "") or ""
|
||||
new_status = status.replace(OLD, NEW)
|
||||
if new_status == status:
|
||||
print(f"[SKIP] {d.get('prijmeni')} {d.get('jmeno')}: text nenalezen")
|
||||
continue
|
||||
print(f"[OK] {d.get('prijmeni')} {d.get('jmeno')}:")
|
||||
print(f" '{status.splitlines()[0]}' -> '{new_status.splitlines()[0]}'")
|
||||
if apply:
|
||||
res = col.update_one({"_id": d["_id"]}, {"$set": {"STATUS": new_status}})
|
||||
n += res.modified_count
|
||||
|
||||
print()
|
||||
if apply:
|
||||
print(f">>> ZAPSANO: {n} zaznamu. Ted spust classify_krok_v1.0.py --apply")
|
||||
else:
|
||||
print(">>> DRY-RUN. Pro zapis spust s --apply")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,39 @@
|
||||
<!--
|
||||
=============================================================================
|
||||
Nazev: sipiq_email_template_v1.0.html
|
||||
Verze: 1.0
|
||||
Datum: 2026-06-10
|
||||
Popis: Schvalena sablona SIPIQ feasibility e-mailu (studie 77242113UCO3002 / DAWN).
|
||||
Pouziti pres MCP vbcz-email create_draft_eml.
|
||||
Placeholdery (nahradit pred generovanim draftu):
|
||||
{{LINK}} - jedinecny SIPIQ Qualtrics odkaz centra (z Trilium note "SIPIQ", noteId hAMNUnUQdCRn)
|
||||
POZOR: v <a href="..."> musi byt & jako &
|
||||
{{DEADLINE}} - termin vyplneni, format DD-MON-YYYY (napr. 17-JUN-2026); pravidlo = den odeslani + 7 dni
|
||||
|
||||
Fixni parametry create_draft_eml:
|
||||
to = adresa lekare (overit z realne korespondence v JNJ schrance vbuzalka@its.jnj.com)
|
||||
cc = AKocourk@ITS.JNJ.com, EBartoso@its.jnj.com
|
||||
subject = 77242113UCO3002/Feasibility dotaznik
|
||||
add_signature = false (podpis je primo v tele nize)
|
||||
from_addr = vychozi (vbuzalka@its.jnj.com; na JNJ PC se doplni automaticky)
|
||||
output_dir = u:\Dropbox\!!!Days\Downloads Z230\UploadToJNJ
|
||||
filename = sipiq_<prijmeni>_<DDMONYYYY>.eml
|
||||
|
||||
Po odeslani -> zapis do Mongo feasibility.investigators (per _id):
|
||||
KROK = "6 - SIPIQ odeslan"
|
||||
sipiq.link, sipiq.link_token (cast Q_DL), sipiq.link_stored_at, sipiq.link_source="Trilium SIPIQ note"
|
||||
STATUS prepend: "<DDMONYYYY>: SIPIQ odeslan (deadline {{DEADLINE}}; <adresa>)"
|
||||
|
||||
Specialni pravidlo: Stepek -> posilat na OBA jeho e-maily.
|
||||
=============================================================================
|
||||
-->
|
||||
<p>Dobrý den,</p>
|
||||
<p>ve společnosti Johnson & Johnson posuzujeme centra zvažovaná pro studie rané fáze vývoje. Prvním krokem je vyplnění dotazníku SIPIQ (Site Interest Protocol Information Questionnaire), díky kterému lépe porozumíme postupům, zásadám a možnostem vašeho centra.</p>
|
||||
<p>Níže najdete odkaz na dotazník SIPIQ specifický pro Vaše centrum. Vyplněný dotazník prosím odešlete do <b>{{DEADLINE}}</b>.</p>
|
||||
<p>Odkaz: <a href="{{LINK}}">{{LINK}}</a></p>
|
||||
<p>Moc prosím vyplňte formulář pečlivě, neuvádějte ani příliš optimistická, ani příliš pesimistická čísla. Na konci dotazníku jsou dotazy na etickou komisi — tyto s přehledem ignorujte, protože situace stran etické komise je nám jasná; vše se podává v rámci centralizovaného EU podání, jehož součástí je i centrální etická komise příslušné země.</p>
|
||||
<p>Naopak nás velice zajímá dotaz ke konci, jak dlouho odhadujete, že bude trvat vyjednávání smlouvy — uveďte to prosím na základě svých zkušeností z předchozích studií.</p>
|
||||
<p>Po vyplnění bude následovat hodnoticí návštěva v centru a finální rozhodnutí o výběru centra.</p>
|
||||
<p>V případě dotazů se na nás neváhejte obrátit.</p>
|
||||
<p>S pozdravem,</p>
|
||||
<p>MUDr. Vladimír BUZALKA<br>ICON plc<br>Performing Local Trial Management Services for Janssen – Cilag s.r.o.<br>Global Clinical Operations<br>Mobile: +420 775 735 276<br>Fax: +420 227 012 284<br>E-mail: vbuzalka@its.jnj.com, vladimir.buzalka@iconplc.com</p>
|
||||
Reference in New Issue
Block a user