z230
This commit is contained in:
+656
File diff suppressed because one or more lines are too long
@@ -0,0 +1,63 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# =============================================================================
|
||||
# Nazev: promote_sipiq_submitted_v1.0.py
|
||||
# Verze: 1.0
|
||||
# Datum: 2026-06-17
|
||||
# Popis: Posune dane investigatory (KROK 6 - SIPIQ odeslan) na
|
||||
# KROK "7 - SIPIQ vyplneny" na zaklade Illuminator exportu
|
||||
# (status "SIPIQ Submitted"). Illuminator = ultimatni zdroj, protoze
|
||||
# lekar vyplneni SIPIQ nemusi oznamit e-mailem. Predřadi radek do STATUS.
|
||||
# Pouziti: python promote_sipiq_submitted_v1.0.py (dry-run)
|
||||
# python promote_sipiq_submitted_v1.0.py --apply
|
||||
# =============================================================================
|
||||
import sys
|
||||
from pymongo import MongoClient
|
||||
from bson import ObjectId
|
||||
|
||||
MONGO_URI = "mongodb://192.168.1.76:27017"
|
||||
LINE = ("17JUN2026: SIPIQ VYPLNENY — dle Illuminator exportu (status „SIPIQ "
|
||||
"Submitted“); lekar vyplneni neoznamil, Illuminator = ultimatni zdroj. KROK 7.")
|
||||
|
||||
# 13 investigatoru se SIPIQ Submitted v Illuminatoru, v Mongo zatim KROK 6
|
||||
IDS = [
|
||||
("6a19832b5fc2213518257969", "Durina Juraj"),
|
||||
("6a19832b5fc221351825796e", "Falc Matej"),
|
||||
("6a19832b5fc2213518257954", "Fedurco Miroslav"),
|
||||
("6a19832b5fc221351825796c", "Gregar Jan"),
|
||||
("6a19832b5fc221351825794f", "Hlavaty Tibor"),
|
||||
("6a19832b5fc2213518257973", "Horvath Frantisek"),
|
||||
("6a19832b5fc221351825796f", "Konecny Michal"),
|
||||
("6a19832b5fc2213518257972", "Konecny Stefan"),
|
||||
("6a1c4275aa46d8b608065cec", "Lukac Ludovit"),
|
||||
("6a19832b5fc2213518257958", "Mihalkanin Lubomir"),
|
||||
("6a198b661218c31ab0f5ba41", "Pesta Martin"),
|
||||
("6a19832b5fc221351825795e", "Stepek David"),
|
||||
("6a198b661218c31ab0f5ba43", "Tichy Michal"),
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
apply = "--apply" in sys.argv
|
||||
col = MongoClient(MONGO_URI)["feasibility"]["investigators"]
|
||||
n = 0
|
||||
for hid, label in IDS:
|
||||
oid = ObjectId(hid)
|
||||
d = col.find_one({"_id": oid}, {"STATUS": 1, "KROK": 1})
|
||||
if not d:
|
||||
print(f" !! {label}: NENALEZEN"); continue
|
||||
krok = d.get("KROK", "")
|
||||
if not krok.startswith("6"):
|
||||
print(f" ~~ {label}: KROK={krok} (neni 6) -> preskakuji"); continue
|
||||
print(f" [{label}] KROK {krok} -> 7 - SIPIQ vyplneny")
|
||||
if apply:
|
||||
new_status = LINE + "\n" + (d.get("STATUS", "") or "")
|
||||
col.update_one({"_id": oid}, {"$set": {
|
||||
"KROK": "7 - SIPIQ vyplneny", "STATUS": new_status}})
|
||||
n += 1
|
||||
print(f"\n{'ZAPSANO' if apply else 'DRY-RUN'}: {n if apply else len(IDS)}/{len(IDS)}")
|
||||
if not apply:
|
||||
print(">>> Pro zapis spust s --apply")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
@@ -0,0 +1,63 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# =============================================================================
|
||||
# Nazev: promote_sipiq_submitted_v1.1.py
|
||||
# Verze: 1.1
|
||||
# Datum: 2026-06-20
|
||||
# Popis: Posune investigatory z KROK "6 - SIPIQ odeslan" na "7 - SIPIQ vyplneny"
|
||||
# AUTOMATICKY podle pritomnosti odpovedi v sipiq_responses
|
||||
# (investigator_oid == _id; pole je ObjectId). Predřadi radek do STATUS.
|
||||
# v1.0 melo napevno zadany seznam ID z Illuminator exportu (17JUN) -> TRASH.
|
||||
# Pouziti: python promote_sipiq_submitted_v1.1.py (dry-run)
|
||||
# python promote_sipiq_submitted_v1.1.py --apply
|
||||
# Pozn.: Povysuje JEN z KROK 6 (KROK 0/3.2 se SIPIQ odpovedi necha byt -> reportuje
|
||||
# jako upozorneni, rozhodne uzivatel).
|
||||
# =============================================================================
|
||||
import sys
|
||||
from datetime import date
|
||||
from pymongo import MongoClient
|
||||
|
||||
MONGO_URI = "mongodb://192.168.1.76:27017"
|
||||
MON = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]
|
||||
_t = date.today()
|
||||
DD = _t.strftime("%d") + MON[_t.month - 1] + _t.strftime("%Y")
|
||||
LINE = (f"{DD}: SIPIQ VYPLNENY — odpoved zaznamenana v sipiq_responses (import). KROK 7.")
|
||||
|
||||
|
||||
def main():
|
||||
apply = "--apply" in sys.argv
|
||||
db = MongoClient(MONGO_URI)["feasibility"]
|
||||
col = db["investigators"]
|
||||
|
||||
resp_oids = {r.get("investigator_oid") for r in db["sipiq_responses"].find({}, {"investigator_oid": 1})}
|
||||
|
||||
to_promote = [] # KROK 6 se odpovedi
|
||||
anomalie = [] # ma odpoved, ale neni KROK 6 ani 7
|
||||
for oid in resp_oids:
|
||||
d = col.find_one({"_id": oid}, {"prijmeni": 1, "jmeno": 1, "KROK": 1, "STATUS": 1})
|
||||
if not d:
|
||||
continue
|
||||
krok = str(d.get("KROK", "") or "")
|
||||
label = f"{d.get('prijmeni')} {d.get('jmeno')}"
|
||||
if krok.startswith("6"):
|
||||
to_promote.append((d, label))
|
||||
elif not krok.startswith("7"):
|
||||
anomalie.append((label, krok))
|
||||
|
||||
print(f"== K POVYSENI (KROK 6 -> 7): {len(to_promote)} ==")
|
||||
for d, label in sorted(to_promote, key=lambda x: x[1]):
|
||||
print(f" [{label}] {d.get('KROK')} -> 7 - SIPIQ vyplneny")
|
||||
if apply:
|
||||
new_status = LINE + "\n" + (d.get("STATUS", "") or "")
|
||||
col.update_one({"_id": d["_id"]}, {"$set": {
|
||||
"KROK": "7 - SIPIQ vyplneny", "STATUS": new_status}})
|
||||
|
||||
if anomalie:
|
||||
print(f"\n== UPOZORNENI: ma SIPIQ odpoved, ale NENI KROK 6 ani 7 (NEMENIM): {len(anomalie)} ==")
|
||||
for label, krok in sorted(anomalie):
|
||||
print(f" {label} [{krok}]")
|
||||
|
||||
print(f"\n{'ZAPSANO' if apply else 'DRY-RUN'}: {len(to_promote)} povyseno" + ("" if apply else " (spust s --apply)"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -95,7 +95,7 @@ def main():
|
||||
today_cz = f"{today.day}. {CZ_MON[today.month]} {today.year}"
|
||||
print(f" {d.get('jmeno')} {d['prijmeni']} | To: {to} | Cc: {CC}")
|
||||
print(f" Link: {args.link}")
|
||||
print(f" KROK: {d.get('KROK')} -> 6 - SIPIQ odeslán")
|
||||
print(f" KROK: {d.get('KROK')} -> 6 - SIPIQ odeslan")
|
||||
|
||||
if not args.apply:
|
||||
print("\n[DRY-RUN] nic nezapsáno. Ostrý: --apply"); return
|
||||
@@ -121,7 +121,7 @@ def main():
|
||||
new_line = (f"{DD}: SIPIQ ROZESLÁN — odkaz specifický pro centrum zaslán lékaři "
|
||||
f"(.eml draft {fn}, Cc koordinátorky). KROK 6.")
|
||||
db.investigators.update_one({"_id": d["_id"]}, {"$set": {
|
||||
"KROK": "6 - SIPIQ odeslán",
|
||||
"KROK": "6 - SIPIQ odeslan",
|
||||
"STATUS": new_line + "\n" + old_status,
|
||||
"sipiq.link": args.link,
|
||||
"sipiq.odeslano": today_cz,
|
||||
|
||||
@@ -26,16 +26,16 @@ from bson import ObjectId
|
||||
|
||||
MONGO_URI = "mongodb://192.168.1.76:27017"
|
||||
DBN, COL = "feasibility", "investigators"
|
||||
DATE = "19JUN2026"
|
||||
DATE = "23JUN2026"
|
||||
|
||||
# (investigator _id, seaweed_url, filename, sha256, size, source_msg_id, label)
|
||||
MAPPING = [
|
||||
("6a268cdeb84bf5597759b478",
|
||||
"http://192.168.1.50:8888/mail-attachments/b5/c8/b5c8677c335f77e2b3184aca71628393bf30bd843334edfdecd32b544e91882d",
|
||||
"CZ_CDA PI_MUDr. Stanislav Reif_ICO_fully signed_18Jun2026.pdf",
|
||||
"b5c8677c335f77e2b3184aca71628393bf30bd843334edfdecd32b544e91882d",
|
||||
476306, "<CH2PR07MB7190C02CBCFF82E500D792B980E32@CH2PR07MB7190.namprd07.prod.outlook.com>",
|
||||
"Reif Stanislav"),
|
||||
("6a1987481218c31ab0f5ba34",
|
||||
"http://192.168.1.50:8888/mail-attachments/78/84/7884dc83397fc7ece5905b6db81052fcf88bae05e19fe9501725ef5f1d406f04",
|
||||
"CZ_CDA PI_MUDr.Mináriková,Ph.D._fully signed_22Jun2026.pdf",
|
||||
"7884dc83397fc7ece5905b6db81052fcf88bae05e19fe9501725ef5f1d406f04",
|
||||
460117, "<CH2PR07MB7190E9DB28249DF31195D21380EE2@CH2PR07MB7190.namprd07.prod.outlook.com>",
|
||||
"Minarikova Petra"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user