diff --git a/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py b/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py index 35fd17a..3f967ac 100644 --- a/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py +++ b/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py @@ -9,6 +9,15 @@ Full Medevio Report: - Vaccine sheets (from merged data) """ +import sys +try: + sys.stdout.reconfigure(encoding="utf-8") + sys.stderr.reconfigure(encoding="utf-8") +except AttributeError: + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8") + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8") + import re import json import pymysql @@ -38,7 +47,7 @@ DB_CONFIG = { "cursorclass": pymysql.cursors.DictCursor, } -EXPORT_DIR = Path(r"u:\Dropbox\Ordinace\Reporty") +EXPORT_DIR = Path(r"u:\Dropbox\!!!Days\Downloads Z230") EXPORT_DIR.mkdir(exist_ok=True, parents=True) # Delete previous reports @@ -143,9 +152,9 @@ payload = { }""", } -r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) -r.raise_for_status() -resp = r.json() +response = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +response.raise_for_status() +resp = response.json() if "errors" in resp or "data" not in resp: print("❌ API response:") print(json.dumps(resp, indent=2, ensure_ascii=False)) @@ -245,12 +254,15 @@ df_agenda["Source"] = "Agenda" df_open["Source"] = "Open" df_merged = pd.concat([df_agenda, df_open], ignore_index=True).fillna("") +# "Agenda" < "Open" alphabetically → Agenda rows come first after sort df_merged = df_merged.sort_values(["Source"], ascending=[True]) -# drop duplicates — prefer Agenda if same Request_ID or same (Patient+Title) -df_merged = df_merged.drop_duplicates( - subset=["Request_ID", "Patient", "Title"], keep="first" -) +# Deduplicate by Request_ID only where non-empty (Agenda preferred over Open) +# Rows without Request_ID (pure reservations) are always kept as-is +mask_has_id = df_merged["Request_ID"] != "" +df_with_id = df_merged[mask_has_id].drop_duplicates(subset=["Request_ID"], keep="first") +df_no_id = df_merged[~mask_has_id] +df_merged = pd.concat([df_with_id, df_no_id], ignore_index=True) df_merged = df_merged.drop(columns=["Source"], errors="ignore") df_merged = df_merged.sort_values(["Date", "Time"], na_position="last").reset_index(