From daad4adeab410d4ee045555c4562ff6282dfc15a Mon Sep 17 00:00:00 2001 From: Vladimir Buzalka Date: Wed, 29 Apr 2026 06:55:23 +0200 Subject: [PATCH] notebookvb --- Medevio/.env | 1 + Medevio/.gitignore | 16 + Medevio/10ReadPozadavky/01 Read pozadavky.py | 203 ++++++ .../02 Start query creation.py | 104 ++++ .../03 Read pozadavek simple.py | 96 +++ Medevio/10ReadPozadavky/04 Dalsi.py | 101 +++ Medevio/10ReadPozadavky/05 Další.py | 85 +++ .../06 Načti všechny požadavky do mySQL.py | 182 ++++++ ...unkční stáhne všechny požadavky do mySQl.py | 224 +++++++ ...07 Ulož přílohy požadavku do filesystem.py | 92 +++ Medevio/10ReadPozadavky/0701 test.py | 59 ++ ... Plně funkční uložení přílohyfilesystem.py | 204 +++++++ .../0704 Plne funkční uložení do mysql.py | 209 +++++++ .../10ReadPozadavky/08 Read communication.py | 208 +++++++ Medevio/10ReadPozadavky/09 Read dotaznik.py | 194 ++++++ .../10 ReportpozadavkyExcel.py | 59 ++ .../10 UpdateMessageswithJmeno.py | 153 +++++ Medevio/10ReadPozadavky/10 test2.py | 179 ++++++ .../705 Plně funkční uložení do mysql.py | 228 +++++++ .../PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py | 240 ++++++++ .../PRAVIDELNE_1_ReadLast300DonePozadavku.py | 210 +++++++ .../PRAVIDELNE_2_ReadPoznamky.py | 227 +++++++ .../PRAVIDELNE_3_StahniKomunikaci.py | 287 +++++++++ .../PRAVIDELNE_3_StahniKomunikaciDELTA.py | 293 +++++++++ .../PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py | 246 ++++++++ ...AVIDELNE_5_SaveToFileSystem incremental.py | 252 ++++++++ ...VIDELNE_5_SaveToFileSystem incremental1.py | 224 +++++++ ...VIDELNE_5_SaveToFileSystem incremental2.py | 193 ++++++ ...AVIDELNE_5_SaveToFileSystem single step.py | 146 +++++ .../10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py | 108 ++++ Medevio/10ReadPozadavky/PRAVIDELNE_log.txt | 29 + Medevio/10ReadPozadavky/test.py | 136 +++++ .../x0703 Plne funkční uložení do mysql.py | 196 ++++++ .../10 Readallpozadavkyinbatches.py | 239 ++++++++ .../PRAVIDELNE_3_StahniKomunikacifull.py | 279 +++++++++ .../12 Readallinbatches/medevio_storage.json | 1 + Medevio/12 Tower1/10 ReadAllActive.py | 214 +++++++ Medevio/12 Tower1/12 ReadAllinBatches.py | 239 ++++++++ Medevio/12 Tower1/20 ReadPoznamky.py | 217 +++++++ Medevio/12 Tower1/30 ReadConversation.py | 148 +++++ Medevio/12 Tower1/40 DownloadPrilohy.py | 177 ++++++ .../50 SaveToFileSystem incremental.py | 232 +++++++ .../50 SaveToFileSystem single step.py | 146 +++++ .../20SaveDownloads/10 SaveToFilesystem.py | 101 +++ .../20SaveDownloads/20 SaveToFileSystem.py | 113 ++++ .../100 JednoducheCteni1poznamky.py | 92 +++ .../101 JednoducheDoplneniInterniPoznamky.py | 121 ++++ ...uest do nejnovějšího otevřeného požadavku.py | 261 ++++++++ .../Report_AgendaPozadavky.py | 313 ++++++++++ Medevio/40 agenda a požadavky/check_mysql.py | 33 + .../40 agenda a požadavky/check_request.py | 63 ++ .../medevio_storage.json | 1 + .../sync_open_requests.py | 176 ++++++ .../10 RenameFoldersTriangles.py | 46 ++ .../MinimizeOptimizePDF/compress_pdf.py | 111 ++++ .../MinimizeOptimizePDF/compress_variants.py | 60 ++ Medevio/60 ScansProcessing/CLAUDE.md | 46 ++ .../Testy/extract_patient_info.py | 577 ++++++++++++++++++ .../affd3ab5-fa29-4e8c-8555-c1374d4d9cc8.jpeg | Bin 0 -> 1415371 bytes Medevio/60 ScansProcessing/corrections.json | 538 ++++++++++++++++ .../extract_patient_info_novy.py | 468 ++++++++++++++ Medevio/60 ScansProcessing/jpg_to_pdf.py | 101 +++ Medevio/60 ScansProcessing/naming_rules.md | 26 + Medevio/60 ScansProcessing/preview_viewer.py | 111 ++++ Medevio/60 ScansProcessing/rename_dialog.py | 105 ++++ Medevio/60 ScansProcessing/variant_picker.py | 148 +++++ Medevio/86 Agenda měsíc dopředu.py | 205 +++++++ Medevio/Emailtest/10 EmailTest.py | 29 + Medevio/Functions.py | 98 +++ Medevio/Knihovny/__init__.py | 0 Medevio/Knihovny/najdi_dropbox.py | 62 ++ Medevio/Knihovny/najdi_medicus.py | 49 ++ Medevio/Testy/01 Test | 271 ++++++++ Medevio/Testy/07VytvorPozadavekChripka.py | 125 ++++ Medevio/Testy/07VytvorPozadavekChripka01.py | 189 ++++++ .../07VytvorPozadavekChripka02majiucet.py | 207 +++++++ ...07VytvorPozadavekChripka03Checkexisting.py | 322 ++++++++++ Medevio/Testy/20 Test.py | 239 ++++++++ Medevio/Testy/8 medevio read calendar.py | 80 +++ Medevio/Testy/81 Read agenda and give 1.py | 104 ++++ Medevio/Testy/82 test.py | 44 ++ Medevio/Testy/83_capture_graphql.py | 41 ++ Medevio/Testy/84 test.py | 100 +++ Medevio/Testy/85 test.py | 176 ++++++ Medevio/Testy/861 improvement formatting.py | 299 +++++++++ .../87 read open in same format as agenda.py | 117 ++++ Medevio/Testy/Medevio1.py | 98 +++ Medevio/Testy/Medevio1_newrid.py | 98 +++ Medevio/Testy/Medevio2.py | 249 ++++++++ Medevio/Testy/Medevio3CapturePatients.py | 111 ++++ Medevio/Testy/Medevio3CapturePatients01.py | 101 +++ .../Testy/Medevio4-readandsavekartoteka.py | 177 ++++++ Medevio/Testy/Medevio4.py | 262 ++++++++ Medevio/Testy/Medevio4_newrid.py | 258 ++++++++ .../Medevio5_ReadNamesFromKartoteka_html.py | 110 ++++ Medevio/Testy/Medevio6 ReadPatientCards.py | 0 .../Merevio05ReadWhetherRegisteredMedevio.py | 188 ++++++ .../ScrapePozadavkyJustManualScrolling.py | 118 ++++ Medevio/Testy/ScrapePozadavkyPrint01.py | 236 +++++++ Medevio/Testy/ScrapePozadavkyZmenJeden.py | 41 ++ Medevio/Testy/activate_this.py | 36 ++ .../detail.html | 12 + .../detail.png | Bin 0 -> 34290 bytes Medevio/Testy/dddddd.py | 315 ++++++++++ Medevio/Testy/diafaan.py | 23 + Medevio/Testy/medevio.py | 18 + Medevio/Testy/patient_detail.graphql | 201 ++++++ .../Medevio_agenda_2025-11-02 07-52-00.xlsx | Bin 0 -> 29184 bytes Medevio/graphql_capture_1760777115.jsonl | 17 + Medevio/medevio_api_notes.md | 135 ++++ Medevio/medevio_api_notes.txt | 113 ++++ Medevio/medevio_storage.json | 1 + Medevio/token.txt | 1 + 113 files changed, 16563 insertions(+) create mode 100644 Medevio/.env create mode 100644 Medevio/.gitignore create mode 100644 Medevio/10ReadPozadavky/01 Read pozadavky.py create mode 100644 Medevio/10ReadPozadavky/02 Start query creation.py create mode 100644 Medevio/10ReadPozadavky/03 Read pozadavek simple.py create mode 100644 Medevio/10ReadPozadavky/04 Dalsi.py create mode 100644 Medevio/10ReadPozadavky/05 Další.py create mode 100644 Medevio/10ReadPozadavky/06 Načti všechny požadavky do mySQL.py create mode 100644 Medevio/10ReadPozadavky/0601 Plně funkční stáhne všechny požadavky do mySQl.py create mode 100644 Medevio/10ReadPozadavky/07 Ulož přílohy požadavku do filesystem.py create mode 100644 Medevio/10ReadPozadavky/0701 test.py create mode 100644 Medevio/10ReadPozadavky/0702 Plně funkční uložení přílohyfilesystem.py create mode 100644 Medevio/10ReadPozadavky/0704 Plne funkční uložení do mysql.py create mode 100644 Medevio/10ReadPozadavky/08 Read communication.py create mode 100644 Medevio/10ReadPozadavky/09 Read dotaznik.py create mode 100644 Medevio/10ReadPozadavky/10 ReportpozadavkyExcel.py create mode 100644 Medevio/10ReadPozadavky/10 UpdateMessageswithJmeno.py create mode 100644 Medevio/10ReadPozadavky/10 test2.py create mode 100644 Medevio/10ReadPozadavky/705 Plně funkční uložení do mysql.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_1_ReadLast300DonePozadavku.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_2_ReadPoznamky.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaci.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaciDELTA.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental1.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental2.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem single step.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py create mode 100644 Medevio/10ReadPozadavky/PRAVIDELNE_log.txt create mode 100644 Medevio/10ReadPozadavky/test.py create mode 100644 Medevio/10ReadPozadavky/x0703 Plne funkční uložení do mysql.py create mode 100644 Medevio/12 Readallinbatches/10 Readallpozadavkyinbatches.py create mode 100644 Medevio/12 Readallinbatches/PRAVIDELNE_3_StahniKomunikacifull.py create mode 100644 Medevio/12 Readallinbatches/medevio_storage.json create mode 100644 Medevio/12 Tower1/10 ReadAllActive.py create mode 100644 Medevio/12 Tower1/12 ReadAllinBatches.py create mode 100644 Medevio/12 Tower1/20 ReadPoznamky.py create mode 100644 Medevio/12 Tower1/30 ReadConversation.py create mode 100644 Medevio/12 Tower1/40 DownloadPrilohy.py create mode 100644 Medevio/12 Tower1/50 SaveToFileSystem incremental.py create mode 100644 Medevio/12 Tower1/50 SaveToFileSystem single step.py create mode 100644 Medevio/20SaveDownloads/10 SaveToFilesystem.py create mode 100644 Medevio/20SaveDownloads/20 SaveToFileSystem.py create mode 100644 Medevio/30 ManipulacePoznámek/100 JednoducheCteni1poznamky.py create mode 100644 Medevio/30 ManipulacePoznámek/101 JednoducheDoplneniInterniPoznamky.py create mode 100644 Medevio/30 ManipulacePoznámek/102 Zapiš ID request do nejnovějšího otevřeného požadavku.py create mode 100644 Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py create mode 100644 Medevio/40 agenda a požadavky/check_mysql.py create mode 100644 Medevio/40 agenda a požadavky/check_request.py create mode 100644 Medevio/40 agenda a požadavky/medevio_storage.json create mode 100644 Medevio/40 agenda a požadavky/sync_open_requests.py create mode 100644 Medevio/50 Různé testy/10 RenameFoldersTriangles.py create mode 100644 Medevio/50 Různé testy/MinimizeOptimizePDF/compress_pdf.py create mode 100644 Medevio/50 Různé testy/MinimizeOptimizePDF/compress_variants.py create mode 100644 Medevio/60 ScansProcessing/CLAUDE.md create mode 100644 Medevio/60 ScansProcessing/Testy/extract_patient_info.py create mode 100644 Medevio/60 ScansProcessing/affd3ab5-fa29-4e8c-8555-c1374d4d9cc8.jpeg create mode 100644 Medevio/60 ScansProcessing/corrections.json create mode 100644 Medevio/60 ScansProcessing/extract_patient_info_novy.py create mode 100644 Medevio/60 ScansProcessing/jpg_to_pdf.py create mode 100644 Medevio/60 ScansProcessing/naming_rules.md create mode 100644 Medevio/60 ScansProcessing/preview_viewer.py create mode 100644 Medevio/60 ScansProcessing/rename_dialog.py create mode 100644 Medevio/60 ScansProcessing/variant_picker.py create mode 100644 Medevio/86 Agenda měsíc dopředu.py create mode 100644 Medevio/Emailtest/10 EmailTest.py create mode 100644 Medevio/Functions.py create mode 100644 Medevio/Knihovny/__init__.py create mode 100644 Medevio/Knihovny/najdi_dropbox.py create mode 100644 Medevio/Knihovny/najdi_medicus.py create mode 100644 Medevio/Testy/01 Test create mode 100644 Medevio/Testy/07VytvorPozadavekChripka.py create mode 100644 Medevio/Testy/07VytvorPozadavekChripka01.py create mode 100644 Medevio/Testy/07VytvorPozadavekChripka02majiucet.py create mode 100644 Medevio/Testy/07VytvorPozadavekChripka03Checkexisting.py create mode 100644 Medevio/Testy/20 Test.py create mode 100644 Medevio/Testy/8 medevio read calendar.py create mode 100644 Medevio/Testy/81 Read agenda and give 1.py create mode 100644 Medevio/Testy/82 test.py create mode 100644 Medevio/Testy/83_capture_graphql.py create mode 100644 Medevio/Testy/84 test.py create mode 100644 Medevio/Testy/85 test.py create mode 100644 Medevio/Testy/861 improvement formatting.py create mode 100644 Medevio/Testy/87 read open in same format as agenda.py create mode 100644 Medevio/Testy/Medevio1.py create mode 100644 Medevio/Testy/Medevio1_newrid.py create mode 100644 Medevio/Testy/Medevio2.py create mode 100644 Medevio/Testy/Medevio3CapturePatients.py create mode 100644 Medevio/Testy/Medevio3CapturePatients01.py create mode 100644 Medevio/Testy/Medevio4-readandsavekartoteka.py create mode 100644 Medevio/Testy/Medevio4.py create mode 100644 Medevio/Testy/Medevio4_newrid.py create mode 100644 Medevio/Testy/Medevio5_ReadNamesFromKartoteka_html.py create mode 100644 Medevio/Testy/Medevio6 ReadPatientCards.py create mode 100644 Medevio/Testy/Merevio05ReadWhetherRegisteredMedevio.py create mode 100644 Medevio/Testy/ScrapePozadavkyJustManualScrolling.py create mode 100644 Medevio/Testy/ScrapePozadavkyPrint01.py create mode 100644 Medevio/Testy/ScrapePozadavkyZmenJeden.py create mode 100644 Medevio/Testy/activate_this.py create mode 100644 Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.html create mode 100644 Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.png create mode 100644 Medevio/Testy/dddddd.py create mode 100644 Medevio/Testy/diafaan.py create mode 100644 Medevio/Testy/medevio.py create mode 100644 Medevio/Testy/patient_detail.graphql create mode 100644 Medevio/exports/Medevio_agenda_2025-11-02 07-52-00.xlsx create mode 100644 Medevio/graphql_capture_1760777115.jsonl create mode 100644 Medevio/medevio_api_notes.md create mode 100644 Medevio/medevio_api_notes.txt create mode 100644 Medevio/medevio_storage.json create mode 100644 Medevio/token.txt diff --git a/Medevio/.env b/Medevio/.env new file mode 100644 index 0000000..037f15b --- /dev/null +++ b/Medevio/.env @@ -0,0 +1 @@ +ANTHROPIC_API_KEY=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 diff --git a/Medevio/.gitignore b/Medevio/.gitignore new file mode 100644 index 0000000..26397e5 --- /dev/null +++ b/Medevio/.gitignore @@ -0,0 +1,16 @@ +# Virtual environment +.venv/ + +# Python +__pycache__/ +*.pyc + +# PyCharm / IDE +.idea/ + +# Claude worktrees +.claude/worktrees/ + +# OS +.DS_Store +Thumbs.db diff --git a/Medevio/10ReadPozadavky/01 Read pozadavky.py b/Medevio/10ReadPozadavky/01 Read pozadavky.py new file mode 100644 index 0000000..99423e4 --- /dev/null +++ b/Medevio/10ReadPozadavky/01 Read pozadavky.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Fetch Medevio pending (ACTIVE) patient requests and return a pandas DataFrame. +Reads Bearer token from token.txt (single line, token only). +""" + +import requests +import pandas as pd +import time +from pathlib import Path +from typing import List, Dict, Any + +# CONFIG --------------------------------------------------------------------- +TOKEN_FILE = str(Path(__file__).resolve().parent.parent / "token.txt") # centralized token +GRAPHQL_URL = "https://app.medevio.cz/graphql" +CLINIC_SLUG = "mudr-buzalkova" # adjust if needed +LOCALE = "cs" +PAGE_SIZE = 50 # how many items to request per page +REQUEST_WAIT = 0.2 # seconds between requests to be polite +# --------------------------------------------------------------------------- + +GRAPHQL_QUERY = r""" +query ClinicLegacyRequestList_ListPatientRequestsForClinic( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requests: listPatientRequestsForClinic( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + id + createdAt + dueDate + displayTitle(locale: $locale) + doneAt + removedAt + priority + evaluationResult(locale: $locale) { + fields { + name + value + } + } + clinicId + extendedPatient { + id + identificationNumber + kind + name + note + owner { name surname } + key + status + surname + type + user { id name surname } + isUnknownPatient + } + lastMessage { + createdAt + id + readAt + sender { id name surname clinicId } + text + } + queue { id name } + reservations { id canceledAt done start } + tags(onlyImportant: true) { id name color icon } + priceWhenCreated + currencyWhenCreated + } +} +""" + +def read_token(path: str) -> str: + with open(path, "r", encoding="utf-8") as f: + t = f.read().strip() + if t.startswith("Bearer "): + t = t.split(" ", 1)[1] + return t + +def fetch_requests(token: str, + clinic_slug: str = CLINIC_SLUG, + locale: str = LOCALE, + page_size: int = PAGE_SIZE) -> List[Dict[str, Any]]: + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + all_items: List[Dict[str, Any]] = [] + offset = 0 + + while True: + variables = { + "clinicSlug": clinic_slug, + "queueId": None, + "queueAssignment": "ANY", + "state": "ACTIVE", + "pageInfo": {"first": page_size, "offset": offset}, + "locale": locale, + } + payload = {"query": GRAPHQL_QUERY, "variables": variables, "operationName": "ClinicLegacyRequestList_ListPatientRequestsForClinic"} + + r = requests.post(GRAPHQL_URL, json=payload, headers=headers, timeout=30) + r.raise_for_status() + js = r.json() + + # Basic error handling + if "errors" in js: + raise RuntimeError(f"GraphQL returned errors: {js['errors']}") + + items = js.get("data", {}).get("requests", []) + if not items: + break + + all_items.extend(items) + + # If fewer than requested, we are at the end + if len(items) < page_size: + break + + offset += page_size + time.sleep(REQUEST_WAIT) + + return all_items + +def flatten_item(item: Dict[str, Any]) -> Dict[str, Any]: + patient = item.get("extendedPatient") or {} + last_msg = item.get("lastMessage") or {} + queue = item.get("queue") or {} + + # evaluationResult fields -> map of name:value (if exists) + eval_map = {} + eval_block = item.get("evaluationResult") or {} + for fld in (eval_block.get("fields") or []): + name = fld.get("name") + value = fld.get("value") + if name: + eval_map[name] = value + + flat = { + "id": item.get("id"), + "createdAt": item.get("createdAt"), + "dueDate": item.get("dueDate"), + "displayTitle": item.get("displayTitle"), + "doneAt": item.get("doneAt"), + "removedAt": item.get("removedAt"), + "priority": item.get("priority"), + "clinicId": item.get("clinicId"), + "patient_id": patient.get("id"), + "patient_identificationNumber": patient.get("identificationNumber"), + "patient_name": patient.get("name"), + "patient_surname": patient.get("surname"), + "patient_status": patient.get("status"), + "lastMessage_id": last_msg.get("id"), + "lastMessage_createdAt": last_msg.get("createdAt"), + "lastMessage_text": last_msg.get("text"), + "queue_id": queue.get("id"), + "queue_name": queue.get("name"), + "priceWhenCreated": item.get("priceWhenCreated"), + "currencyWhenCreated": item.get("currencyWhenCreated"), + } + + # merge evaluation fields (if any) prefixed by "eval_" + for k, v in eval_map.items(): + flat[f"eval_{k}"] = v + + return flat + +def to_dataframe(items: List[Dict[str, Any]]) -> pd.DataFrame: + rows = [flatten_item(it) for it in items] + df = pd.DataFrame(rows) + # try parsing dates + for col in ("createdAt", "dueDate", "doneAt", "lastMessage_createdAt", "removedAt"): + if col in df.columns: + df[col] = pd.to_datetime(df[col], errors="coerce") + return df + +def main(): + token = read_token(TOKEN_FILE) + print("Fetching pending (ACTIVE) requests from Medevio...") + items = fetch_requests(token) + print(f"Fetched {len(items)} items.") + df = to_dataframe(items) + pd.set_option("display.max_rows", 20) + pd.set_option("display.max_colwidth", 160) + print(df.head(50)) + # optionally save + df.to_excel("medevio_pending_requests.xlsx", index=False) + print("Saved medevio_pending_requests.xlsx") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/02 Start query creation.py b/Medevio/10ReadPozadavky/02 Start query creation.py new file mode 100644 index 0000000..7e87095 --- /dev/null +++ b/Medevio/10ReadPozadavky/02 Start query creation.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +from pathlib import Path +import requests # 👈 this is new + +# --- Settings ---------------------------------------------------- +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +SHOW_FULL_TOKEN = False # set True if you want to print the full token +# ----------------------------------------------------------------- + +GRAPHQL_QUERY = r""" +query ClinicLegacyRequestList_ListPatientRequestsForClinic( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requests: listPatientRequestsForClinic( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + id + createdAt + dueDate + displayTitle(locale: $locale) + doneAt + removedAt + priority + evaluationResult(locale: $locale) { fields { name value } } + clinicId + extendedPatient { + id + identificationNumber + kind + name + surname + status + isUnknownPatient + } + lastMessage { id text createdAt } + queue { id name } + reservations { id canceledAt done start } + tags(onlyImportant: true) { id name color icon } + priceWhenCreated + currencyWhenCreated + } +} +""" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +def main(): + token = read_token(TOKEN_PATH) + + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "state": "ACTIVE", # pending / nevyřízené + "pageInfo": {"first": 30, "offset": 0}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicLegacyRequestList_ListPatientRequestsForClinic", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + # === Actually call Medevio API ================================== + print("📡 Querying Medevio GraphQL API...\n") + url = "https://api.medevio.cz/graphql" + r = requests.post(url, json=payload, headers=headers) + print(f"HTTP status: {r.status_code}\n") + + # --- Try to decode JSON + try: + data = r.json() + print("=== Raw JSON response ===") + print(json.dumps(data, indent=2, ensure_ascii=False)) + except Exception as e: + print("❌ Failed to decode JSON:", e) + print("Raw text:\n", r.text) + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/03 Read pozadavek simple.py b/Medevio/10ReadPozadavky/03 Read pozadavek simple.py new file mode 100644 index 0000000..4025479 --- /dev/null +++ b/Medevio/10ReadPozadavky/03 Read pozadavek simple.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +from pathlib import Path +import requests + +# --- Settings ---------------------------------------------------- +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +# ----------------------------------------------------------------- + +GRAPHQL_QUERY = r""" +query ClinicLegacyRequestList_ListPatientRequestsForClinic( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requests: listPatientRequestsForClinic( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + id + displayTitle(locale: $locale) + extendedPatient { + name + surname + identificationNumber + } + } +} +""" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +def main(): + token = read_token(TOKEN_PATH) + + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "state": "ACTIVE", # pending / nevyřízené + "pageInfo": {"first": 30, "offset": 0}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicLegacyRequestList_ListPatientRequestsForClinic", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + url = "https://api.medevio.cz/graphql" + print("📡 Querying Medevio GraphQL API...\n") + r = requests.post(url, json=payload, headers=headers) + print(f"HTTP status: {r.status_code}\n") + + # --- Parse JSON safely + try: + data = r.json() + except Exception as e: + print("❌ Failed to decode JSON:", e) + print("Raw text:\n", r.text) + return + + requests_data = data.get("data", {}).get("requests", []) + if not requests_data: + print("⚠️ No requests found or invalid response.") + return + + print(f"📋 Found {len(requests_data)} active requests:\n") + for req in requests_data: + patient = req.get("extendedPatient", {}) + print(f"- {patient.get('surname','')} {patient.get('name','')} " + f"({patient.get('identificationNumber','')}) " + f"→ {req.get('displayTitle','')} [ID: {req.get('id')}]") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/04 Dalsi.py b/Medevio/10ReadPozadavky/04 Dalsi.py new file mode 100644 index 0000000..944254a --- /dev/null +++ b/Medevio/10ReadPozadavky/04 Dalsi.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +from pathlib import Path +import requests + +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +# --- Try including `updatedAt` field directly --- +GRAPHQL_QUERY = r""" +query ClinicRequestGrid_ListPatientRequestsForClinic2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + createdAt + updatedAt # 👈 TESTUJEME, jestli Medevio toto pole podporuje + doneAt + removedAt + displayTitle(locale: $locale) + lastMessage { createdAt } + extendedPatient { + name + surname + identificationNumber + } + } + } +} +""" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + + +def main(): + token = read_token(TOKEN_PATH) + + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": 3, "offset": 0}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicRequestGrid_ListPatientRequestsForClinic2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + url = "https://api.medevio.cz/graphql" + print("📡 Querying Medevio GraphQL API (testing `updatedAt` field)...\n") + + r = requests.post(url, json=payload, headers=headers) + print(f"HTTP status: {r.status_code}\n") + + try: + data = r.json() + except Exception as e: + print("❌ Failed to parse JSON:", e) + print("Raw text:\n", r.text) + return + + print("=== JSON response ===") + print(json.dumps(data, indent=2, ensure_ascii=False)) + + # Quick check: did it return an error message about updatedAt? + errors = data.get("errors") + if errors: + print("\n⚠️ Medevio returned GraphQL error:") + for e in errors: + print(f" → {e.get('message')}") + else: + print("\n✅ No errors, `updatedAt` might exist in schema!") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/05 Další.py b/Medevio/10ReadPozadavky/05 Další.py new file mode 100644 index 0000000..5596579 --- /dev/null +++ b/Medevio/10ReadPozadavky/05 Další.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +from pathlib import Path +import requests + +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +GRAPHQL_QUERY = r""" +query ClinicRequestGrid_ListPatientRequestsForClinic2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug + queueId: $queueId + queueAssignment: $queueAssignment + pageInfo: $pageInfo + ) { + count + patientRequests { + id + createdAt + doneAt + displayTitle(locale: $locale) + extendedPatient { + name + surname + identificationNumber + } + } + } +} +""" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +def main(): + token = read_token(TOKEN_PATH) + + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + # 👇 state zcela vynechán + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": 10, "offset": 0}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicRequestGrid_ListPatientRequestsForClinic2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + url = "https://api.medevio.cz/graphql" + print("📡 Querying Medevio GraphQL API (no state argument)...\n") + r = requests.post(url, json=payload, headers=headers) + print(f"HTTP status: {r.status_code}\n") + + try: + data = r.json() + print("=== JSON response ===") + print(json.dumps(data, indent=2, ensure_ascii=False)) + except Exception as e: + print("❌ Failed to parse JSON:", e) + print("Raw text:\n", r.text) + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/06 Načti všechny požadavky do mySQL.py b/Medevio/10ReadPozadavky/06 Načti všechny požadavky do mySQL.py new file mode 100644 index 0000000..da23380 --- /dev/null +++ b/Medevio/10ReadPozadavky/06 Načti všechny požadavky do mySQL.py @@ -0,0 +1,182 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import time +import pymysql +import requests +from pathlib import Path +from datetime import datetime + +# ================================ +# 🔧 CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BATCH_SIZE = 100 +STATES = ["ACTIVE", "DONE"] # optionally add "REMOVED" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestGrid_ListPatientRequestsForClinic2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $pageInfo: PageInfo!, + $locale: Locale!, + $state: PatientRequestState +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + pageInfo: $pageInfo, + state: $state + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + } + } +} +""" + +# ================================ +# 🔑 TOKEN +# ================================ +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ================================ +# 🕒 DATETIME CONVERSION +# ================================ +def to_mysql_dt(iso_str): + """Convert ISO 8601 (with Z) to MySQL DATETIME.""" + if not iso_str: + return None + try: + dt = datetime.fromisoformat(iso_str.replace("Z", "+00:00")) + return dt.strftime("%Y-%m-%d %H:%M:%S") + except Exception: + return None + +# ================================ +# 💾 UPSERT TO MYSQL +# ================================ +def upsert(conn, r): + p = (r.get("extendedPatient") or {}) + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + to_mysql_dt(r.get("updatedAt")), + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + +# ================================ +# 📡 FETCH ONE BATCH +# ================================ +def fetch_batch(headers, state, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + "state": state, + } + payload = { + "operationName": "ClinicRequestGrid_ListPatientRequestsForClinic2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + data = r.json().get("data", {}).get("requestsResponse", {}) + return data.get("patientRequests", []), data.get("count", 0) + +# ================================ +# 🧠 MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + total_downloaded = 0 + total_upserted = 0 + + for state in STATES: + print(f"\n📡 STATE = {state}") + offset = 0 + state_total = None + while True: + batch, count_total = fetch_batch(headers, state, offset) + if state_total is None: + state_total = count_total + print(f" • Total from server: {state_total}") + if not batch: + break + print(f" • Offset {offset:>5}: got {len(batch)}") + for r in batch: + upsert(conn, r) + total_upserted += 1 + total_downloaded += len(batch) + offset += BATCH_SIZE + if offset >= state_total: + break + time.sleep(0.4) # respect API + + conn.close() + print(f"\n✅ Done. Downloaded {total_downloaded} items, upserted {total_upserted} rows (states: {', '.join(STATES)}).") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/0601 Plně funkční stáhne všechny požadavky do mySQl.py b/Medevio/10ReadPozadavky/0601 Plně funkční stáhne všechny požadavky do mySQl.py new file mode 100644 index 0000000..f4fb0a2 --- /dev/null +++ b/Medevio/10ReadPozadavky/0601 Plně funkční stáhne všechny požadavky do mySQl.py @@ -0,0 +1,224 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import time +import pymysql +import requests +from pathlib import Path +from datetime import datetime + +# ================================ +# 🔧 CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BATCH_SIZE = 1000 +STATES = ["ACTIVE", "DONE"] # optionally add "REMOVED" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestGrid_ListPatientRequestsForClinic2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $pageInfo: PageInfo!, + $locale: Locale!, + $state: PatientRequestState +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + pageInfo: $pageInfo, + state: $state + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + } + } +} +""" + +# ================================ +# 🔑 TOKEN +# ================================ +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ================================ +# 🕒 DATETIME CONVERSION +# ================================ +def to_mysql_dt(iso_str): + """Convert ISO 8601 (with Z) to MySQL DATETIME.""" + if not iso_str: + return None + try: + dt = datetime.fromisoformat(iso_str.replace("Z", "+00:00")) + return dt.strftime("%Y-%m-%d %H:%M:%S") + except Exception: + return None + + + + +# ================================ +# 💾 UPSERT TO MYSQL +# ================================ +def upsert_many(conn, batch): + """Upsert multiple records in one commit.""" + if not batch: + return + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + vals = [] + for r in batch: + p = (r.get("extendedPatient") or {}) + vals.append(( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + to_mysql_dt(r.get("updatedAt")), + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + )) + + with conn.cursor() as cur: + cur.executemany(sql, vals) + conn.commit() + +def upsert(conn, r): + p = (r.get("extendedPatient") or {}) + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + to_mysql_dt(r.get("updatedAt")), + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + +# ================================ +# 📡 FETCH ONE BATCH +# ================================ +def fetch_batch(headers, state, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + "state": state, + } + payload = { + "operationName": "ClinicRequestGrid_ListPatientRequestsForClinic2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + data = r.json().get("data", {}).get("requestsResponse", {}) + return data.get("patientRequests", []), data.get("count", 0) + +# ================================ +# 🧠 MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + total_downloaded = 0 + total_upserted = 0 + + for state in STATES: + print(f"\n📡 STATE = {state}") + offset = 0 + state_total = None + while True: + batch, count_total = fetch_batch(headers, state, offset) + if state_total is None: + state_total = count_total + print(f" • Total from server: {state_total}") + if not batch: + break + print(f" • Offset {offset:>5}: got {len(batch)}") + + # Perform one efficient upsert for the entire batch + upsert_many(conn, batch) + + total_upserted += len(batch) + total_downloaded += len(batch) + offset += BATCH_SIZE + if offset >= state_total: + break + time.sleep(10) # respect API + + conn.close() + print(f"\n✅ Done. Downloaded {total_downloaded} items, upserted {total_upserted} rows (states: {', '.join(STATES)}).") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/07 Ulož přílohy požadavku do filesystem.py b/Medevio/10ReadPozadavky/07 Ulož přílohy požadavku do filesystem.py new file mode 100644 index 0000000..a3be66b --- /dev/null +++ b/Medevio/10ReadPozadavky/07 Ulož přílohy požadavku do filesystem.py @@ -0,0 +1,92 @@ +import requests +import json +from pathlib import Path + +# === Nastavení === +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +REQUEST_ID = "092a0c63-28be-4c6b-ab3b-204e1e2641d4" +OUTPUT_DIR = Path(r"u:\Dropbox\!!!Days\Downloads Z230\Medevio_přílohy") + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2( + $requestId: UUID!, + $isDoctor: Boolean! +) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient @include(if: $isDoctor) + } + } +} +""" + +variables = { + "isDoctor": True, + "requestId": REQUEST_ID, +} + +headers = { + "Authorization": f"Bearer {read_token(TOKEN_PATH)}", + "Content-Type": "application/json", + "Accept": "application/json", +} + +payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, +} + +print("📡 Querying Medevio API for attachments...\n") +r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) +print(f"HTTP status: {r.status_code}\n") + +data = r.json() +records = data.get("data", {}).get("patientRequestMedicalRecords", []) +if not records: + print("⚠️ No attachments found.") + exit() + +# === Uložení === +OUTPUT_DIR.mkdir(parents=True, exist_ok=True) +print(f"📂 Saving {len(records)} attachments to: {OUTPUT_DIR}\n") + +for rec in records: + med = rec.get("medicalRecord", {}) + url = med.get("downloadUrl") + name = med.get("description", med.get("id")) or "unknown.pdf" + + if not url: + print(f"❌ Skipped {name} (no download URL)") + continue + + safe_name = name.replace("/", "_").replace("\\", "_") + out_path = OUTPUT_DIR / safe_name + + print(f"⬇️ Downloading: {safe_name}") + try: + file_data = requests.get(url, timeout=30) + file_data.raise_for_status() + out_path.write_bytes(file_data.content) + print(f"✅ Saved: {out_path.name} ({len(file_data.content)/1024:.1f} KB)") + except Exception as e: + print(f"❌ Error saving {safe_name}: {e}") + +print("\n🎉 Done!") diff --git a/Medevio/10ReadPozadavky/0701 test.py b/Medevio/10ReadPozadavky/0701 test.py new file mode 100644 index 0000000..a0dc452 --- /dev/null +++ b/Medevio/10ReadPozadavky/0701 test.py @@ -0,0 +1,59 @@ +import requests +import json +from pathlib import Path + +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +REQUEST_ID = "092a0c63-28be-4c6b-ab3b-204e1e2641d4" +CLINIC_SLUG = "mudr-buzalkova" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2( + $requestId: UUID!, + +) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + + +variables = { + "requestId": REQUEST_ID, + } + +headers = { + "Authorization": f"Bearer {read_token(TOKEN_PATH)}", + "Content-Type": "application/json", + "Accept": "application/json", +} + +payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, +} + +print("📡 Querying Medevio API...\n") +r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) +print(f"HTTP status: {r.status_code}\n") +print(json.dumps(r.json(), indent=2, ensure_ascii=False)) diff --git a/Medevio/10ReadPozadavky/0702 Plně funkční uložení přílohyfilesystem.py b/Medevio/10ReadPozadavky/0702 Plně funkční uložení přílohyfilesystem.py new file mode 100644 index 0000000..6355aa9 --- /dev/null +++ b/Medevio/10ReadPozadavky/0702 Plně funkční uložení přílohyfilesystem.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os,zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import shutil + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BASE_DIR = Path(r"u:\Dropbox\ordinace\Dokumentace_ke_zpracování\Medevio_přílohy") +BASE_DIR.mkdir(parents=True, exist_ok=True) + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2( + $requestId: UUID!, +) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + +def short_crc8(uuid_str: str) -> str: + """Return deterministic 8-char hex string from any input string (CRC32).""" + return f"{zlib.crc32(uuid_str.encode('utf-8')) & 0xffffffff:08x}" + +def extract_filename_from_url(url: str) -> str: + """Extracts filename from S3-style URL (between last '/' and first '?').""" + try: + filename = url.split("/")[-1].split("?")[0] + return filename + except Exception: + return "unknown_filename" + +def safe_rename(src: Path, dst: Path, retries: int = 5, delay: float = 3.0): + """Rename a folder with retries to avoid Dropbox/OneDrive sync lock issues.""" + for attempt in range(1, retries + 1): + try: + src.rename(dst) + return # success + except PermissionError as e: + print(f" ⚠️ Rename attempt {attempt}/{retries} failed ({e}) — waiting {delay}s...") + time.sleep(delay) + except Exception as e: + print(f" ❌ Unexpected rename error: {e}") + break + print(f" 🚫 Failed to rename '{src}' → '{dst}' after {retries} attempts.") + +# ============================== +# 🔑 TOKEN +# ============================== +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ============================== +# 💾 DOWNLOAD FILE +# ============================== +def download_file(url: str, out_path: Path): + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + out_path.parent.mkdir(parents=True, exist_ok=True) + with open(out_path, "wb") as f: + f.write(r.content) + print(f" 💾 Saved: {out_path.relative_to(BASE_DIR)}") + except Exception as e: + print(f" ⚠️ Failed to download {out_path.name}: {e}") + +# ============================== +# 📡 FETCH ATTACHMENTS +# ============================== +def fetch_attachments(headers, request_id): + variables = { + "requestId": request_id, + } + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code}") + return [] + data = r.json().get("data", {}).get("patientRequestMedicalRecords", []) + return data + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + with conn.cursor() as cur: + cur.execute(""" + SELECT id, displayTitle, pacient_prijmeni, pacient_jmeno, createdAt + FROM pozadavky + WHERE displayTitle = 'Odeslat lékařskou zprávu' + """) + rows = cur.fetchall() + + print(f"📋 Found {len(rows)} 'Odeslat lékařskou zprávu' requests") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + print(req_id) + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + jmeno = row.get("pacient_jmeno") or "" + created = row.get("createdAt") + created_date = None + if created: + try: + created_date = datetime.strptime(str(created), "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d") + except Exception: + created_date = "unknown" + + patient_dir = BASE_DIR / f"{prijmeni}, {jmeno}" / created_date + print(f"\n[{i}/{len(rows)}] 📂 {patient_dir.relative_to(BASE_DIR)}") + + attachments = fetch_attachments(headers, req_id) + # print(attachments) + + + if not attachments: + print(" ⚠️ No attachments") + continue + + + # vytvoř krátký CRC32 hash z UUID + uuid_short = short_crc8(str(req_id)) + + # Dočasná složka bez počtu + temp_dir = BASE_DIR / f"{prijmeni}, {jmeno}" / f"{created_date} {uuid_short}" + temp_dir.mkdir(parents=True, exist_ok=True) + + for a in attachments: + m = a.get("medicalRecord") or {} + # fname = m.get("description") or f"{m.get('id')}.bin" + url = m.get("downloadUrl") + fname = extract_filename_from_url(url) + + if url: + out_path = temp_dir / fname + download_file(url, out_path) + + + # Po stažení všech příloh spočítej skutečné soubory + real_count = len([f for f in temp_dir.iterdir() if f.is_file()]) + + # Přejmenuj složku na finální název s počtem + final_dir = temp_dir.parent / f"{temp_dir.name} ({real_count})" + if real_count != 0: + safe_rename(temp_dir, final_dir) + print(f" 📎 Saved {real_count} attachments → {final_dir.relative_to(BASE_DIR)}") + else: + print(f" ⚠️ No attachments for {temp_dir.name}") + temp_dir.rmdir() # smaž prázdnou složku + + + conn.close() + print("\n✅ Done!") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/0704 Plne funkční uložení do mysql.py b/Medevio/10ReadPozadavky/0704 Plne funkční uložení do mysql.py new file mode 100644 index 0000000..8dbb117 --- /dev/null +++ b/Medevio/10ReadPozadavky/0704 Plne funkční uložení do mysql.py @@ -0,0 +1,209 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download all 'Odeslat lékařskou zprávu' attachments from Medevio API +and store them (including binary content) directly into MySQL table `medevio_downloads`. + +Each attachment (PDF, image, etc.) is fetched once and saved as LONGBLOB. +Duplicate protection is ensured via UNIQUE KEY on `attachment_id`. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + +# ============================== +# 🧮 HELPERS +# ============================== +def short_crc8(uuid_str: str) -> str: + """Return deterministic 8-char hex string from any input string (CRC32).""" + return f"{zlib.crc32(uuid_str.encode('utf-8')) & 0xffffffff:08x}" + +def extract_filename_from_url(url: str) -> str: + """Extracts filename from S3-style URL (between last '/' and first '?').""" + try: + return url.split("/")[-1].split("?")[0] + except Exception: + return "unknown_filename" + +def read_token(p: Path) -> str: + """Read Bearer token from file.""" + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ============================== +# 📡 FETCH ATTACHMENTS +# ============================== +def fetch_attachments(headers, request_id): + variables = {"requestId": request_id} + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + data = r.json().get("data", {}).get("patientRequestMedicalRecords", []) + return data + +# ============================== +# 💾 SAVE TO MYSQL (with skip) +# ============================== +def insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date, existing_ids): + attachment_id = a.get("id") + if attachment_id in existing_ids: + print(f" ⏭️ Skipping already downloaded attachment {attachment_id}") + return + + url = m.get("downloadUrl") + if not url: + print(" ⚠️ No download URL") + return + + filename = extract_filename_from_url(url) + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + content = r.content + except Exception as e: + print(f" ⚠️ Failed to download {url}: {e}") + return + + file_size = len(content) + attachment_type = a.get("attachmentType") + content_type = m.get("contentType") + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, filename, + content_type, file_size, pacient_jmeno, pacient_prijmeni, + created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + attachment_type, + filename, + content_type, + file_size, + jmeno, + prijmeni, + created_date, + content + )) + print(f" 💾 Saved {filename} ({file_size/1024:.1f} kB)") + existing_ids.add(attachment_id) # add to skip list + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + print("📦 Loading list of already downloaded attachments...") + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + print(f"✅ Found {len(existing_ids)} attachments already saved.") + + + with conn.cursor() as cur: + cur.execute(""" + SELECT id, displayTitle, pacient_prijmeni, pacient_jmeno, createdAt + FROM pozadavky + WHERE displayTitle = 'Odeslat lékařskou zprávu' + """) + rows = cur.fetchall() + + print(f"📋 Found {len(rows)} 'Odeslat lékařskou zprávu' requests") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + jmeno = row.get("pacient_jmeno") or "" + created = row.get("createdAt") + + try: + created_date = datetime.strptime(str(created), "%Y-%m-%d %H:%M:%S") + except Exception: + created_date = None + + print(f"\n[{i}/{len(rows)}] 🧾 {prijmeni}, {jmeno} ({req_id})") + + attachments = fetch_attachments(headers, req_id) + if not attachments: + print(" ⚠️ No attachments") + continue + + with conn.cursor() as cur: + for a in attachments: + m = a.get("medicalRecord") or {} + insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date, existing_ids) + conn.commit() + + print(f" ✅ {len(attachments)} attachments saved for {prijmeni}, {jmeno}") + time.sleep(0.5) # be nice to the API + + conn.close() + print("\n✅ Done! All attachments stored in MySQL table `medevio_downloads`.") + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/08 Read communication.py b/Medevio/10ReadPozadavky/08 Read communication.py new file mode 100644 index 0000000..b226794 --- /dev/null +++ b/Medevio/10ReadPozadavky/08 Read communication.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Fetch communication threads (messages) from Medevio API +for pozadavky where communicationprocessed IS NULL or outdated, +optionally filtered by creation date. +Stores results in MySQL table `medevio_messages`. +""" + +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +# ✅ Optional: Only process requests created after this date +# Leave empty ("") to process all +CREATED_AFTER = "2025-11-09" # 🕓 Adjust freely, or set to "" for no limit + +# ============================== +# 🔐 TOKEN +# ============================== +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + + +headers = { + "Authorization": f"Bearer {read_token(TOKEN_PATH)}", + "Content-Type": "application/json", +} + +# ============================== +# 🧩 GRAPHQL QUERY +# ============================== +GRAPHQL_QUERY = """ +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages( + patientRequestId: $requestId + updatedSince: $updatedSince + ) { + id + createdAt + text + updatedAt + readAt + sender { id name surname clinicId } + medicalRecord { downloadUrl description contentType } + } +} +""" + +# ============================== +# 🧮 HELPERS +# ============================== +def normalize_ts(ts: str): + """Convert ISO 8601 string to MySQL DATETIME format.""" + if not ts: + return None + ts = ts.replace("T", " ").replace("Z", "") + if "." in ts: + ts = ts.split(".")[0] + return ts + + +# ============================== +# 📡 FETCH MESSAGES +# ============================== +def fetch_messages(request_id): + payload = { + "operationName": "UseMessages_ListMessages", + "variables": {"requestId": request_id, "updatedSince": None}, + "query": GRAPHQL_QUERY, + } + r = requests.post(GRAPHQL_URL, headers=headers, json=payload, timeout=30) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code}: {r.text}") + return [] + return r.json().get("data", {}).get("messages", []) or [] + + +# ============================== +# 💾 CREATE TABLE IF NEEDED +# ============================== +def ensure_table_exists(conn): + with conn.cursor() as cur: + cur.execute(""" + CREATE TABLE IF NOT EXISTS medevio_messages ( + id VARCHAR(64) PRIMARY KEY, + request_id VARCHAR(64), + sender_name VARCHAR(255), + sender_id VARCHAR(64), + sender_clinic_id VARCHAR(64), + text TEXT, + created_at DATETIME NULL, + read_at DATETIME NULL, + updated_at DATETIME NULL, + attachment_url TEXT, + attachment_description TEXT, + attachment_content_type VARCHAR(128), + inserted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + """) + conn.commit() + + +# ============================== +# 💾 INSERT MESSAGE +# ============================== +def insert_message(cur, req_id, msg): + sender = msg.get("sender") or {} + medrec = msg.get("medicalRecord") or {} + + cur.execute(""" + REPLACE INTO medevio_messages ( + id, request_id, sender_name, sender_id, sender_clinic_id, text, + created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + """, ( + msg.get("id"), + req_id, + f"{sender.get('name','')} {sender.get('surname','')}".strip(), + sender.get("id"), + sender.get("clinicId"), + msg.get("text"), + normalize_ts(msg.get("createdAt")), + normalize_ts(msg.get("readAt")), + normalize_ts(msg.get("updatedAt")), + medrec.get("downloadUrl"), + medrec.get("description"), + medrec.get("contentType") + )) + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + conn = pymysql.connect(**DB_CONFIG) + ensure_table_exists(conn) + + with conn.cursor() as cur: + sql = """ + SELECT id, createdAt, updatedAt, communicationprocessed + FROM pozadavky + WHERE (communicationprocessed IS NULL OR communicationprocessed < updatedAt) + """ + if CREATED_AFTER: + sql += " AND createdAt >= %s" + cur.execute(sql, (CREATED_AFTER,)) + else: + cur.execute(sql) + + rows = cur.fetchall() + + if not rows: + print("✅ No pending communication updates.") + return + + print(f"📋 Found {len(rows)} requests needing communication check.") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + print(f"\n[{i}/{len(rows)}] 🔍 Fetching communication for {req_id} ...") + + messages = fetch_messages(req_id) + print(f" 💬 {len(messages)} messages found.") + + # Update timestamp even if none found + with conn.cursor() as cur: + if messages: + for msg in messages: + insert_message(cur, req_id, msg) + cur.execute(""" + UPDATE pozadavky + SET communicationprocessed = NOW() + WHERE id = %s + """, (req_id,)) + conn.commit() + + print(f" ✅ Processed {len(messages)} messages for {req_id}") + time.sleep(0.5) # avoid hammering the API + + conn.close() + print("\n✅ All communication threads processed and timestamps updated.") + + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/09 Read dotaznik.py b/Medevio/10ReadPozadavky/09 Read dotaznik.py new file mode 100644 index 0000000..c017c99 --- /dev/null +++ b/Medevio/10ReadPozadavky/09 Read dotaznik.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download and store Medevio questionnaires (userNote + eCRF) for all patient requests. +Uses the verified working query "GetPatientRequest2". +""" + +import json +import requests +import pymysql +from datetime import datetime +from pathlib import Path +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + + +from datetime import datetime + +def fix_datetime(dt_str): + """Convert ISO 8601 string with 'Z' or ms into MySQL DATETIME format.""" + if not dt_str: + return None + try: + # Remove trailing Z and parse flexible ISO format + return datetime.fromisoformat(dt_str.replace("Z", "").replace("+00:00", "")) + except Exception: + return None + +# ✅ Optional: limit which requests to process +CREATED_AFTER = "2025-11-09" # set "" to disable + +# ============================== +# 🧮 HELPERS +# ============================== +def read_token(p: Path) -> str: + """Read Bearer token from file.""" + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + + +GRAPHQL_QUERY = r""" +query GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $locale: Locale!) { + request: getPatientRequest2(patientRequestId: $requestId, clinicSlug: $clinicSlug) { + id + displayTitle(locale: $locale) + createdAt + updatedAt + userNote + eventType + extendedPatient(clinicSlug: $clinicSlug) { + name + surname + identificationNumber + } + ecrfFilledData(locale: $locale) { + name + groups { + label + fields { + name + label + type + value + } + } + } + } +} +""" + + +def fetch_questionnaire(headers, request_id, clinic_slug): + """Fetch questionnaire for given request ID.""" + payload = { + "operationName": "GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": { + "requestId": request_id, + "clinicSlug": clinic_slug, + "locale": "cs", + }, + } + r = requests.post(GRAPHQL_URL, json=payload, headers=headers, timeout=40) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code} for {request_id}: {r.text}") + return None + return r.json().get("data", {}).get("request") + + +def insert_questionnaire(cur, req): + """Insert questionnaire data into MySQL.""" + if not req: + return + + patient = req.get("extendedPatient") or {} + ecrf_data = req.get("ecrfFilledData") + + created_at = fix_datetime(req.get("createdAt")) + updated_at = fix_datetime(req.get("updatedAt")) + + cur.execute(""" + INSERT INTO medevio_questionnaires ( + request_id, patient_name, patient_surname, patient_identification, + created_at, updated_at, user_note, ecrf_json + ) + VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + updated_at = VALUES(updated_at), + user_note = VALUES(user_note), + ecrf_json = VALUES(ecrf_json), + updated_local = NOW() + """, ( + req.get("id"), + patient.get("name"), + patient.get("surname"), + patient.get("identificationNumber"), + created_at, + updated_at, + req.get("userNote"), + json.dumps(ecrf_data, ensure_ascii=False), + )) + print(f" 💾 Stored questionnaire for {patient.get('surname','')} {patient.get('name','')}") + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + with conn.cursor() as cur: + sql = """ + SELECT id, pacient_jmeno, pacient_prijmeni, createdAt, updatedAt, questionnaireprocessed + FROM pozadavky + WHERE (questionnaireprocessed IS NULL OR questionnaireprocessed < updatedAt) + """ + if CREATED_AFTER: + sql += " AND createdAt >= %s" + cur.execute(sql, (CREATED_AFTER,)) + else: + cur.execute(sql) + + rows = cur.fetchall() + + print(f"📋 Found {len(rows)} requests needing questionnaire check.") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + print(f"\n[{i}/{len(rows)}] 🔍 Fetching questionnaire for {req_id} ...") + + req = fetch_questionnaire(headers, req_id, CLINIC_SLUG) + if not req: + print(" ⚠️ No questionnaire data found.") + continue + + with conn.cursor() as cur: + insert_questionnaire(cur, req) + cur.execute("UPDATE pozadavky SET questionnaireprocessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + time.sleep(0.4) # polite pacing + + conn.close() + print("\n✅ Done! All questionnaires stored in MySQL table `medevio_questionnaires`.") + + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/10 ReportpozadavkyExcel.py b/Medevio/10ReadPozadavky/10 ReportpozadavkyExcel.py new file mode 100644 index 0000000..ff5dd4e --- /dev/null +++ b/Medevio/10ReadPozadavky/10 ReportpozadavkyExcel.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pandas as pd +import pymysql +from datetime import datetime, timedelta + +# ================================ +# ⚙️ CONFIGURATION +# ================================ +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +# kam uložit výstup +OUTPUT_DIR = r"U:\Dropbox\!!!Days\Downloads Z230" +DAYS_BACK = 700 # posledních X dní + +# ================================ +# 📘 SQL dotaz +# ================================ +SQL = f""" +SELECT + m.id AS Message_ID, + m.request_id AS Request_ID, + m.created_at AS Datum_vytvoření, + m.sender_name AS Odesílatel, + m.text AS Text_zprávy, + m.pacient_jmeno AS Pacient_jméno, + m.pacient_prijmeni AS Pacient_příjmení, + m.pacient_rodnecislo AS Rodné_číslo +FROM medevio_messages m +WHERE m.created_at >= NOW() - INTERVAL {DAYS_BACK} DAY +ORDER BY m.created_at DESC; +""" + +# ================================ +# 🧠 MAIN +# ================================ +def main(): + conn = pymysql.connect(**DB_CONFIG) + df = pd.read_sql(SQL, conn) + conn.close() + + today = datetime.now().strftime("%Y-%m-%d") + output_path = f"{OUTPUT_DIR}\\Medevio_messages_report_{today}.xlsx" + + df.to_excel(output_path, index=False) + + print(f"✅ Export hotov: {output_path}") + print(f"📄 Počet řádků: {len(df)}") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/10 UpdateMessageswithJmeno.py b/Medevio/10ReadPozadavky/10 UpdateMessageswithJmeno.py new file mode 100644 index 0000000..8cc9a60 --- /dev/null +++ b/Medevio/10ReadPozadavky/10 UpdateMessageswithJmeno.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from datetime import datetime +from pathlib import Path +import time, socket + +# =============================== +# ⚙️ CONFIG +# =============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetMessages( + $clinicSlug: String!, + $requestId: ID! +) { + clinicRequestDetail_GetPatientRequestMessages( + clinicSlug: $clinicSlug, + requestId: $requestId + ) { + id + text + createdAt + sender { + id + name + } + extendedPatient { + name + surname + identificationNumber + } + } +} +""" + +# =============================== +# 🔑 Token reader +# =============================== +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + +# =============================== +# 🕒 Helper +# =============================== +def to_mysql_dt(iso_str): + if not iso_str: + return None + try: + dt = datetime.fromisoformat(iso_str.replace("Z", "+00:00")) + return dt.strftime("%Y-%m-%d %H:%M:%S") + except Exception: + return None + +# =============================== +# 💾 Upsert +# =============================== +def upsert_message(conn, msg, request_id): + s = msg.get("sender") or {} + p = msg.get("extendedPatient") or {} + + sql = """ + INSERT INTO medevio_messages ( + id, request_id, sender_name, sender_id, text, created_at, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + text=VALUES(text), + created_at=VALUES(created_at), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + msg.get("id"), + request_id, + s.get("name"), + s.get("id"), + msg.get("text"), + to_mysql_dt(msg.get("createdAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + +# =============================== +# 📡 Fetch messages for one request +# =============================== +def fetch_messages(headers, request_id): + payload = { + "operationName": "ClinicRequestDetail_GetMessages", + "query": GRAPHQL_QUERY, + "variables": {"clinicSlug": CLINIC_SLUG, "requestId": request_id}, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + data = r.json().get("data", {}).get("clinicRequestDetail_GetPatientRequestMessages", []) + return data + +# =============================== +# 🧠 Main +# =============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + cur = conn.cursor() + + # vezmeme všechny request_id z tabulky pozadavky + cur.execute("SELECT id FROM pozadavky ORDER BY updatedAt DESC") + request_ids = [r["id"] for r in cur.fetchall()] + print(f"📋 Found {len(request_ids)} požadavků.") + + for i, rid in enumerate(request_ids, 1): + try: + msgs = fetch_messages(headers, rid) + for msg in msgs: + upsert_message(conn, msg, rid) + print(f"[{i}/{len(request_ids)}] {rid} → {len(msgs)} zpráv uloženo.") + time.sleep(0.4) + except Exception as e: + print(f"❌ Chyba při načítání {rid}: {e}") + + conn.close() + print("\n✅ Hotovo, všechny zprávy synchronizovány.") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/10 test2.py b/Medevio/10ReadPozadavky/10 test2.py new file mode 100644 index 0000000..f0f2605 --- /dev/null +++ b/Medevio/10ReadPozadavky/10 test2.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime +import time + +# ================================ +# ⚙️ CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BATCH_SIZE = 100 + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestGrid_ListPatientRequestsForClinic2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $pageInfo: PageInfo!, + $locale: Locale!, + $state: PatientRequestState +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + pageInfo: $pageInfo, + state: $state + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + } + } +} +""" + +# ================================ +# 🔑 TOKEN +# ================================ +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + +# ================================ +# 📡 FETCH FUNCTION +# ================================ +def fetch_requests(headers, state, offset=0): + """Fetch a batch of patient requests for a given state.""" + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + "state": state, + } + payload = { + "operationName": "ClinicRequestGrid_ListPatientRequestsForClinic2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + for attempt in range(3): # up to 3 attempts + try: + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + r.raise_for_status() + resp = r.json().get("data", {}).get("requestsResponse", {}) + return resp.get("patientRequests", []), resp.get("count", 0) + except requests.exceptions.RequestException as e: + print(f"⚠️ Chyba při načítání (pokus {attempt+1}/3): {e}") + time.sleep(5) + return [], 0 + +# ================================ +# 💾 UPDATE ALL MESSAGES BY PATIENT DATA +# ================================ +def update_all_messages(conn, patient): + """Update all messages belonging to this request with patient data.""" + p = patient.get("extendedPatient") or {} + if not p: + return 0 + + sql = """ + UPDATE medevio_messages + SET pacient_jmeno=%s, + pacient_prijmeni=%s, + pacient_rodnecislo=%s + WHERE request_id=%s + """ + vals = (p.get("name"), p.get("surname"), p.get("identificationNumber"), patient.get("id")) + with conn.cursor() as cur: + cur.execute(sql, vals) + affected = cur.rowcount + conn.commit() + return affected + +# ================================ +# 🧠 MAIN +# ================================ +def process_state(conn, headers, state): + print(f"\n=== 🟦 Zpracovávám {state} požadavky ===") + offset = 0 + total_processed = 0 + total_updated = 0 + + while True: + batch, total_count = fetch_requests(headers, state, offset) + if not batch: + break + + print(f"📦 Dávka od offsetu {offset} ({len(batch)} záznamů z {total_count})") + for r in batch: + updated = update_all_messages(conn, r) + total_processed += 1 + total_updated += updated + if updated: + print(f" ↳ {r.get('id')} → {updated} zpráv aktualizováno") + + offset += BATCH_SIZE + if offset >= total_count: + break + + time.sleep(0.4) + + print(f"✅ {state}: zpracováno {total_processed} požadavků, aktualizováno {total_updated} zpráv.") + return total_processed, total_updated + +# ================================ +# 🚀 ENTRY POINT +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + print(f"\n=== Medevio mass patient sync @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + total_p, total_u = process_state(conn, headers, "ACTIVE") + done_p, done_u = process_state(conn, headers, "DONE") + + conn.close() + + print("\n=== 🧾 SOUHRN ===") + print(f"ACTIVE: {total_p} požadavků, {total_u} zpráv aktualizováno") + print(f"DONE: {done_p} požadavků, {done_u} zpráv aktualizováno") + print("===========================================") + print(f"CELKEM: {total_p + done_p} požadavků, {total_u + done_u} zpráv aktualizováno ✅") + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/705 Plně funkční uložení do mysql.py b/Medevio/10ReadPozadavky/705 Plně funkční uložení do mysql.py new file mode 100644 index 0000000..25be2c7 --- /dev/null +++ b/Medevio/10ReadPozadavky/705 Plně funkční uložení do mysql.py @@ -0,0 +1,228 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download all attachments for pozadavky where attachmentsProcessed IS NULL +and (optionally) createdAt is newer than a configurable cutoff date. +Store them in MySQL table `medevio_downloads`, and update pozadavky.attachmentsProcessed = NOW(). +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +# ✅ Optional: Only process requests created after this date +# Leave empty ("") to process all +CREATED_AFTER = "2025-01-01" # 🕓 Adjust freely, or set to "" for no limit + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + +# ============================== +# 🧮 HELPERS +# ============================== +def short_crc8(uuid_str: str) -> str: + """Return deterministic 8-char hex string from any input string (CRC32).""" + return f"{zlib.crc32(uuid_str.encode('utf-8')) & 0xffffffff:08x}" + +def extract_filename_from_url(url: str) -> str: + """Extracts filename from S3-style URL (between last '/' and first '?').""" + try: + return url.split("/")[-1].split("?")[0] + except Exception: + return "unknown_filename" + +def read_token(p: Path) -> str: + """Read Bearer token from file.""" + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ============================== +# 📡 FETCH ATTACHMENTS +# ============================== +def fetch_attachments(headers, request_id): + variables = {"requestId": request_id} + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + data = r.json().get("data", {}).get("patientRequestMedicalRecords", []) + return data + +# ============================== +# 💾 SAVE TO MYSQL (with skip) +# ============================== +def insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date, existing_ids): + attachment_id = a.get("id") + if attachment_id in existing_ids: + print(f" ⏭️ Skipping already downloaded attachment {attachment_id}") + return False + + url = m.get("downloadUrl") + if not url: + print(" ⚠️ No download URL") + return False + + filename = extract_filename_from_url(url) + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + content = r.content + except Exception as e: + print(f" ⚠️ Failed to download {url}: {e}") + return False + + file_size = len(content) + attachment_type = a.get("attachmentType") + content_type = m.get("contentType") + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, filename, + content_type, file_size, pacient_jmeno, pacient_prijmeni, + created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + attachment_type, + filename, + content_type, + file_size, + jmeno, + prijmeni, + created_date, + content + )) + existing_ids.add(attachment_id) + print(f" 💾 Saved {filename} ({file_size/1024:.1f} kB)") + return True + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + print("📦 Loading list of already downloaded attachments...") + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + print(f"✅ Found {len(existing_ids)} attachments already saved.") + + # ✅ Dynamic SQL with optional createdAt filter + sql = """ + SELECT id, displayTitle, pacient_prijmeni, pacient_jmeno, createdAt + FROM pozadavky + WHERE attachmentsProcessed IS NULL + """ + params = [] + if CREATED_AFTER: + sql += " AND createdAt >= %s" + params.append(CREATED_AFTER) + + with conn.cursor() as cur: + cur.execute(sql, params) + rows = cur.fetchall() + + print(f"📋 Found {len(rows)} pozadavky to process (attachmentsProcessed IS NULL" + + (f", created >= {CREATED_AFTER}" if CREATED_AFTER else "") + ")") + + for i, row in enumerate(rows, 1): + time.sleep(1) # polite API delay + req_id = row["id"] + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + jmeno = row.get("pacient_jmeno") or "" + created = row.get("createdAt") + + try: + created_date = datetime.strptime(str(created), "%Y-%m-%d %H:%M:%S") + except Exception: + created_date = None + + print(f"\n[{i}/{len(rows)}] 🧾 {prijmeni}, {jmeno} ({req_id})") + + attachments = fetch_attachments(headers, req_id) + if not attachments: + print(" ⚠️ No attachments found") + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + continue + + with conn.cursor() as cur: + for a in attachments: + m = a.get("medicalRecord") or {} + insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date, existing_ids) + conn.commit() + + # ✅ mark processed + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + print(f" ✅ {len(attachments)} attachments processed for {prijmeni}, {jmeno}") + time.sleep(0.3) # polite API delay + + conn.close() + print("\n✅ Done! All new attachments processed and pozadavky updated.") + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py b/Medevio/10ReadPozadavky/PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py new file mode 100644 index 0000000..d6e613c --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime, timezone +import time +from dateutil import parser + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + + +# ================================ +# 🔧 CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BATCH_SIZE = 100 + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +# ⭐ NOVÝ TESTOVANÝ DOTAZ – obsahuje lastMessage.createdAt +GRAPHQL_QUERY = r""" +query ClinicRequestList2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + lastMessage { + createdAt + } + } + } +} +""" + + +# ================================ +# 🧿 SAFE DATETIME PARSER (ALWAYS UTC → LOCAL) +# ================================ +def to_mysql_dt_utc(iso_str): + """ + Parse Medevio timestamps safely. + Treat timestamps WITHOUT timezone as UTC. + Convert to local time before saving to MySQL. + """ + if not iso_str: + return None + try: + dt = parser.isoparse(iso_str) + + # If tz is missing → assume UTC + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + + # Convert to local timezone + dt_local = dt.astimezone() + + return dt_local.strftime("%Y-%m-%d %H:%M:%S") + except: + return None + + +# ================================ +# 🔑 TOKEN +# ================================ +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + + +# ================================ +# 💾 UPSERT (včetně správného updatedAt) +# ================================ +def upsert(conn, r): + p = r.get("extendedPatient") or {} + + # raw timestamps z API – nyní přes nový parser + api_updated = to_mysql_dt_utc(r.get("updatedAt")) + + last_msg = r.get("lastMessage") or {} + msg_updated = to_mysql_dt_utc(last_msg.get("createdAt")) + + # nejnovější změna + def max_dt(a, b): + if a and b: + return max(a, b) + return a or b + + final_updated = max_dt(api_updated, msg_updated) + + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt_utc(r.get("createdAt")), + final_updated, + to_mysql_dt_utc(r.get("doneAt")), + to_mysql_dt_utc(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + + +# ================================ +# 📡 FETCH ACTIVE PAGE +# ================================ +def fetch_active(headers, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + "state": "ACTIVE", + } + + payload = { + "operationName": "ClinicRequestList2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + + data = r.json().get("data", {}).get("requestsResponse", {}) + return data.get("patientRequests", []), data.get("count", 0) + + +# ================================ +# 🧠 MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + print(f"\n=== Sync ACTIVE požadavků @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + offset = 0 + total_processed = 0 + total_count = None + + while True: + batch, count = fetch_active(headers, offset) + + if total_count is None: + total_count = count + print(f"📡 Celkem ACTIVE v Medevio: {count}") + + if not batch: + break + + for r in batch: + upsert(conn, r) + + total_processed += len(batch) + print(f" • {total_processed}/{total_count} ACTIVE processed") + + if offset + BATCH_SIZE >= count: + break + + offset += BATCH_SIZE + time.sleep(0.4) + + conn.close() + print("\n✅ ACTIVE sync hotovo!\n") + + +# ================================ +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_1_ReadLast300DonePozadavku.py b/Medevio/10ReadPozadavky/PRAVIDELNE_1_ReadLast300DonePozadavku.py new file mode 100644 index 0000000..c7663d8 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_1_ReadLast300DonePozadavku.py @@ -0,0 +1,210 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime +from dateutil import parser + +# ================================ +# 🔧 CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +LIMIT = 500 # batch size / number of records +FULL_DOWNLOAD = False # 🔥 TOGGLE: False = last X, True = ALL batches + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +# ⭐ Query with lastMessage +GRAPHQL_QUERY = r""" +query ClinicRequestList2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + lastMessage { + createdAt + } + } + } +} +""" + +# ================================ +# TOKEN +# ================================ +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + +# ================================ +# DATETIME PARSER (UTC → MySQL) +# ================================ +def to_mysql_dt(iso_str): + if not iso_str: + return None + try: + dt = parser.isoparse(iso_str) # ISO8601 → aware datetime (UTC) + dt = dt.astimezone() # convert to local timezone + return dt.strftime("%Y-%m-%d %H:%M:%S") + except: + return None + +# ================================ +# UPSERT REQUEST +# ================================ +def upsert(conn, r): + p = r.get("extendedPatient") or {} + + api_updated = to_mysql_dt(r.get("updatedAt")) + last_msg = r.get("lastMessage") or {} + msg_at = to_mysql_dt(last_msg.get("createdAt")) + + def max_dt(a, b): + if a and b: + return max(a, b) + return a or b + + final_updated = max_dt(api_updated, msg_at) + + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + r["id"], + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + final_updated, + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + + conn.commit() + +# ================================ +# FETCH DONE REQUESTS (one batch) +# ================================ +def fetch_done(headers, offset): + vars = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": LIMIT, "offset": offset}, + "locale": "cs", + "state": "DONE", + } + + payload = { + "operationName": "ClinicRequestList2", + "query": GRAPHQL_QUERY, + "variables": vars, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + + data = r.json()["data"]["requestsResponse"] + return data.get("patientRequests", []), data.get("count", 0) + +# ================================ +# MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + print(f"\n=== Sync CLOSED requests @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + offset = 0 + total_count = None + total_processed = 0 + + while True: + batch, count = fetch_done(headers, offset) + + if total_count is None: + total_count = count + print(f"📡 Total DONE in Medevio: {count}") + + if not batch: + break + + print(f" • Processing batch offset={offset} size={len(batch)}") + + for r in batch: + upsert(conn, r) + total_processed += len(batch) + + if not FULL_DOWNLOAD: + # process only last LIMIT records + break + + # FULL DOWNLOAD → fetch next batch + offset += LIMIT + if offset >= count: + break + + conn.close() + print(f"\n✅ DONE — {total_processed} requests synced.\n") + + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_2_ReadPoznamky.py b/Medevio/10ReadPozadavky/PRAVIDELNE_2_ReadPoznamky.py new file mode 100644 index 0000000..9913ce2 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_2_ReadPoznamky.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download and store Medevio questionnaires (userNote + eCRF) for all patient requests. +Uses the verified working query "GetPatientRequest2". +""" + +import json +import requests +import pymysql +from datetime import datetime +from pathlib import Path +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + # strip emoji + anything above BMP + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + # final ASCII fallback + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + + +# ============================== +# 🕒 DATETIME FIXER +# ============================== +def fix_datetime(dt_str): + """Convert ISO 8601 string with 'Z' or ms into MySQL DATETIME format.""" + if not dt_str: + return None + try: + return datetime.fromisoformat(dt_str.replace("Z", "").replace("+00:00", "")) + except Exception: + return None + + +# Optional filter +CREATED_AFTER = "2025-01-01" + + +# ============================== +# 🧮 HELPERS +# ============================== +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + + +GRAPHQL_QUERY = r""" +query GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $locale: Locale!) { + request: getPatientRequest2(patientRequestId: $requestId, clinicSlug: $clinicSlug) { + id + displayTitle(locale: $locale) + createdAt + updatedAt + userNote + eventType + extendedPatient(clinicSlug: $clinicSlug) { + name + surname + identificationNumber + } + ecrfFilledData(locale: $locale) { + name + groups { + label + fields { + name + label + type + value + } + } + } + } +} +""" + + +def fetch_questionnaire(headers, request_id, clinic_slug): + """Fetch questionnaire for given request ID.""" + payload = { + "operationName": "GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": { + "requestId": request_id, + "clinicSlug": clinic_slug, + "locale": "cs", + }, + } + r = requests.post(GRAPHQL_URL, json=payload, headers=headers, timeout=40) + if r.status_code != 200: + safe_print(f"❌ HTTP {r.status_code} for {request_id}: {r.text}") + return None + return r.json().get("data", {}).get("request") + + +def insert_questionnaire(cur, req): + """Insert questionnaire data into MySQL.""" + if not req: + return + + patient = req.get("extendedPatient") or {} + ecrf_data = req.get("ecrfFilledData") + + created_at = fix_datetime(req.get("createdAt")) + updated_at = fix_datetime(req.get("updatedAt")) + + cur.execute(""" + INSERT INTO medevio_questionnaires ( + request_id, created_at, updated_at, user_note, ecrf_json + ) + VALUES (%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + updated_at = VALUES(updated_at), + user_note = VALUES(user_note), + ecrf_json = VALUES(ecrf_json), + updated_local = NOW() + """, ( + req.get("id"), + created_at, + updated_at, + req.get("userNote"), + json.dumps(ecrf_data, ensure_ascii=False), + )) + + safe_print(f" 💾 Stored questionnaire for {patient.get('surname','')} {patient.get('name','')}") + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # load list of requests + with conn.cursor() as cur: + sql = """ + SELECT id, pacient_jmeno, pacient_prijmeni, createdAt, updatedAt, questionnaireprocessed + FROM pozadavky + WHERE (questionnaireprocessed IS NULL OR questionnaireprocessed < updatedAt) + """ + if CREATED_AFTER: + sql += " AND createdAt >= %s" + cur.execute(sql, (CREATED_AFTER,)) + else: + cur.execute(sql) + + rows = cur.fetchall() + + safe_print(f"📋 Found {len(rows)} requests needing questionnaire check.") + + # process each one + for i, row in enumerate(rows, 1): + req_id = row["id"] + safe_print(f"\n[{i}/{len(rows)}] 🔍 Fetching questionnaire for {req_id} ...") + + req = fetch_questionnaire(headers, req_id, CLINIC_SLUG) + if not req: + safe_print(" ⚠️ No questionnaire data found.") + continue + + with conn.cursor() as cur: + insert_questionnaire(cur, req) + cur.execute( + "UPDATE pozadavky SET questionnaireprocessed = NOW() WHERE id = %s", + (req_id,) + ) + conn.commit() + + time.sleep(0.6) + + conn.close() + safe_print("\n✅ Done! All questionnaires stored in MySQL table `medevio_questionnaires`.") + + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaci.py b/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaci.py new file mode 100644 index 0000000..97712b0 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaci.py @@ -0,0 +1,287 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Stáhne konverzaci pro požadavky, kde: +messagesProcessed IS NULL OR messagesProcessed < updatedAt. + +Vloží do medevio_conversation a přílohy do medevio_downloads. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc or not enc.lower().startswith("utf"): + # strip emoji + characters outside BMP for Task Scheduler (CP1250) + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + # fallback pure ASCII + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY_MESSAGES = r""" +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages(patientRequestId: $requestId, updatedSince: $updatedSince) { + id + createdAt + updatedAt + readAt + text + type + sender { + id + name + surname + clinicId + } + medicalRecord { + id + description + contentType + url + downloadUrl + token + createdAt + updatedAt + } + } +} +""" + +# ============================== +# ⏱ DATETIME PARSER +# ============================== +def parse_dt(s): + if not s: + return None + try: + return datetime.fromisoformat(s.replace("Z", "+00:00")) + except: + pass + try: + return datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S") + except: + return None + +# ============================== +# 🔐 TOKEN +# ============================== +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.replace("Bearer ", "") + +# ============================== +# 📡 FETCH MESSAGES +# ============================== +def fetch_messages(headers, request_id): + payload = { + "operationName": "UseMessages_ListMessages", + "query": GRAPHQL_QUERY_MESSAGES, + "variables": {"requestId": request_id, "updatedSince": None}, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + safe_print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + return r.json().get("data", {}).get("messages", []) or [] + + +# ============================== +# 💾 SAVE MESSAGE +# ============================== +def insert_message(cur, req_id, msg): + + sender = msg.get("sender") or {} + sender_name = " ".join( + x for x in [sender.get("name"), sender.get("surname")] if x + ) or None + + sql = """ + INSERT INTO medevio_conversation ( + id, request_id, + sender_name, sender_id, sender_clinic_id, + text, created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + sender_name = VALUES(sender_name), + sender_id = VALUES(sender_id), + sender_clinic_id = VALUES(sender_clinic_id), + text = VALUES(text), + created_at = VALUES(created_at), + read_at = VALUES(read_at), + updated_at = VALUES(updated_at), + attachment_url = VALUES(attachment_url), + attachment_description = VALUES(attachment_description), + attachment_content_type = VALUES(attachment_content_type) + """ + + mr = msg.get("medicalRecord") or {} + + cur.execute(sql, ( + msg.get("id"), + req_id, + sender_name, + sender.get("id"), + sender.get("clinicId"), + msg.get("text"), + parse_dt(msg.get("createdAt")), + parse_dt(msg.get("readAt")), + parse_dt(msg.get("updatedAt")), + mr.get("downloadUrl") or mr.get("url"), + mr.get("description"), + mr.get("contentType") + )) + + +# ============================== +# 💾 DOWNLOAD MESSAGE ATTACHMENT +# ============================== +def insert_download(cur, req_id, msg, existing_ids): + + mr = msg.get("medicalRecord") or {} + attachment_id = mr.get("id") + if not attachment_id: + return + + if attachment_id in existing_ids: + return + + url = mr.get("downloadUrl") or mr.get("url") + if not url: + return + + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + data = r.content + except Exception as e: + safe_print(f"⚠️ Failed to download: {e}") + return + + filename = url.split("/")[-1].split("?")[0] + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + "MESSAGE_ATTACHMENT", + filename, + mr.get("contentType"), + len(data), + parse_dt(msg.get("createdAt")), + data + )) + + existing_ids.add(attachment_id) + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # ---- Load existing attachments + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + + safe_print(f"📦 Already downloaded attachments: {len(existing_ids)}\n") + + # ---- Select pozadavky needing message sync + sql = """ + SELECT id + FROM pozadavky + WHERE messagesProcessed IS NULL + OR messagesProcessed < updatedAt + """ + with conn.cursor() as cur: + cur.execute(sql) + requests_to_process = cur.fetchall() + + safe_print(f"📋 Found {len(requests_to_process)} pozadavků requiring message sync.\n") + + # ---- Process each record + for idx, row in enumerate(requests_to_process, 1): + req_id = row["id"] + safe_print(f"[{idx}/{len(requests_to_process)}] Processing {req_id} …") + + messages = fetch_messages(headers, req_id) + + with conn.cursor() as cur: + for msg in messages: + insert_message(cur, req_id, msg) + insert_download(cur, req_id, msg, existing_ids) + conn.commit() + + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + safe_print(f" ✅ {len(messages)} messages saved\n") + time.sleep(0.25) + + conn.close() + safe_print("🎉 Done!") + + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaciDELTA.py b/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaciDELTA.py new file mode 100644 index 0000000..fb2c3cb --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_3_StahniKomunikaciDELTA.py @@ -0,0 +1,293 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Delta sync Medevio communication. +Stáhne pouze zprávy změněné po messagesProcessed pro každý požadavek. +""" + +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import sys + +# ============================== +# UTF-8 SAFE OUTPUT +# ============================== +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') + + +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# CONFIG +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY_MESSAGES = r""" +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages( + patientRequestId: $requestId, + updatedSince: $updatedSince + ) { + id + createdAt + updatedAt + readAt + text + type + sender { + id + name + surname + clinicId + } + medicalRecord { + id + description + contentType + url + downloadUrl + createdAt + updatedAt + } + } +} +""" + + +# ============================== +# HELPERS +# ============================== +def parse_dt(s): + if not s: + return None + try: + return datetime.fromisoformat(s.replace("Z", "+00:00")) + except Exception: + return None + + +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.replace("Bearer ", "") + + +# ============================== +# FETCH MESSAGES (DELTA) +# ============================== +def fetch_messages(headers, request_id, updated_since): + payload = { + "operationName": "UseMessages_ListMessages", + "query": GRAPHQL_QUERY_MESSAGES, + "variables": { + "requestId": request_id, + "updatedSince": updated_since, + }, + } + + r = requests.post( + "https://api.medevio.cz/graphql", + json=payload, + headers=headers, + timeout=30 + ) + + if r.status_code != 200: + safe_print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + + j = r.json() + if "errors" in j: + safe_print(f"❌ GraphQL error for {request_id}: {j['errors']}") + return [] + + return j.get("data", {}).get("messages", []) or [] + + +# ============================== +# INSERT MESSAGE +# ============================== +def insert_message(cur, req_id, msg): + sender = msg.get("sender") or {} + sender_name = " ".join( + x for x in [sender.get("name"), sender.get("surname")] if x + ) or None + + mr = msg.get("medicalRecord") or {} + + sql = """ + INSERT INTO medevio_conversation ( + id, request_id, + sender_name, sender_id, sender_clinic_id, + text, created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + sender_name = VALUES(sender_name), + sender_id = VALUES(sender_id), + sender_clinic_id = VALUES(sender_clinic_id), + text = VALUES(text), + created_at = VALUES(created_at), + read_at = VALUES(read_at), + updated_at = VALUES(updated_at), + attachment_url = VALUES(attachment_url), + attachment_description = VALUES(attachment_description), + attachment_content_type = VALUES(attachment_content_type) + """ + + cur.execute(sql, ( + msg.get("id"), + req_id, + sender_name, + sender.get("id"), + sender.get("clinicId"), + msg.get("text"), + parse_dt(msg.get("createdAt")), + parse_dt(msg.get("readAt")), + parse_dt(msg.get("updatedAt")), + mr.get("downloadUrl") or mr.get("url"), + mr.get("description"), + mr.get("contentType") + )) + + +# ============================== +# INSERT ATTACHMENT (DEDUP) +# ============================== +def insert_download(cur, req_id, msg, existing_ids): + mr = msg.get("medicalRecord") or {} + attachment_id = mr.get("id") + if not attachment_id or attachment_id in existing_ids: + return + + url = mr.get("downloadUrl") or mr.get("url") + if not url: + return + + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + data = r.content + except Exception as e: + safe_print(f"⚠️ Attachment download failed: {e}") + return + + filename = url.split("/")[-1].split("?")[0] + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + "MESSAGE_ATTACHMENT", + filename, + mr.get("contentType"), + len(data), + parse_dt(msg.get("createdAt")), + data + )) + + existing_ids.add(attachment_id) + + +# ============================== +# MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # existing attachments + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {r["attachment_id"] for r in cur.fetchall()} + + # select requests needing sync + with conn.cursor() as cur: + cur.execute(""" + SELECT id, messagesProcessed + FROM pozadavky + WHERE messagesProcessed IS NULL + OR messagesProcessed < updatedAt + """) + rows = cur.fetchall() + + safe_print(f"📋 Found {len(rows)} requests for message delta-sync\n") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + updated_since = row["messagesProcessed"] + if updated_since: + updated_since = updated_since.replace(microsecond=0).isoformat() + "Z" + + safe_print(f"[{i}/{len(rows)}] {req_id}") + + messages = fetch_messages(headers, req_id, updated_since) + if not messages: + safe_print(" ⏭ No new messages") + else: + with conn.cursor() as cur: + for msg in messages: + insert_message(cur, req_id, msg) + insert_download(cur, req_id, msg, existing_ids) + conn.commit() + safe_print(f" ✅ {len(messages)} new/updated messages") + + with conn.cursor() as cur: + cur.execute( + "UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", + (req_id,) + ) + conn.commit() + + time.sleep(0.25) + + conn.close() + safe_print("\n🎉 Delta message sync DONE") + + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py b/Medevio/10ReadPozadavky/PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py new file mode 100644 index 0000000..4b8fad9 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download all attachments for pozadavky where attachmentsProcessed IS NULL +and (optionally) createdAt is newer than a cutoff date. +Store them in MySQL table `medevio_downloads`, and update pozadavky.attachmentsProcessed. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc or not enc.lower().startswith("utf"): + # strip emoji + characters outside BMP + text = ''.join(ch for ch in text if ord(ch) < 65536) + + try: + print(text) + except UnicodeEncodeError: + # ASCII fallback + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +CREATED_AFTER = "2024-12-01" # optional filter + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + +# ============================== +# 🧮 HELPERS +# ============================== +def extract_filename_from_url(url: str) -> str: + try: + return url.split("/")[-1].split("?")[0] + except: + return "unknown_filename" + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + + +# ============================== +# 📡 FETCH ATTACHMENTS +# ============================== +def fetch_attachments(headers, request_id): + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": {"requestId": request_id}, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + safe_print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + return r.json().get("data", {}).get("patientRequestMedicalRecords", []) + + +# ============================== +# 💾 SAVE TO MYSQL +# ============================== +def insert_download(cur, req_id, a, m, created_date, existing_ids): + + attachment_id = a.get("id") + if attachment_id in existing_ids: + safe_print(f" ⏭️ Already downloaded {attachment_id}") + return False + + url = m.get("downloadUrl") + if not url: + safe_print(" ⚠️ Missing download URL") + return False + + filename = extract_filename_from_url(url) + + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + content = r.content + except Exception as e: + safe_print(f" ⚠️ Download failed {url}: {e}") + return False + + file_size = len(content) + attachment_type = a.get("attachmentType") + content_type = m.get("contentType") + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, + created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + attachment_type, + filename, + content_type, + file_size, + created_date, + content, + )) + + existing_ids.add(attachment_id) + safe_print(f" 💾 Saved {filename} ({file_size/1024:.1f} kB)") + return True + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # Load existing attachments + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + + safe_print(f"✅ {len(existing_ids)} attachments already saved.") + + # Build query for pozadavky + sql = """ + SELECT id, pacient_prijmeni, pacient_jmeno, createdAt, updatedAt, attachmentsProcessed + FROM pozadavky + WHERE attachmentsProcessed IS NULL + OR updatedAt > attachmentsProcessed + """ + params = [] + if CREATED_AFTER: + sql += " AND createdAt >= %s" + params.append(CREATED_AFTER) + + with conn.cursor() as cur: + cur.execute(sql, params) + req_rows = cur.fetchall() + + safe_print(f"📋 Found {len(req_rows)} pozadavky to process.") + + # Process each pozadavek + for i, row in enumerate(req_rows, 1): + req_id = row["id"] + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + jmeno = row.get("pacient_jmeno") or "" + created_date = row.get("createdAt") or datetime.now() + + safe_print(f"\n[{i}/{len(req_rows)}] 🧾 {prijmeni}, {jmeno} ({req_id})") + + attachments = fetch_attachments(headers, req_id) + + if not attachments: + safe_print(" ⚠️ No attachments found") + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + continue + + with conn.cursor() as cur: + for a in attachments: + m = a.get("medicalRecord") or {} + insert_download(cur, req_id, a, m, created_date, existing_ids) + conn.commit() + + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + safe_print(f" ✅ Done ({len(attachments)} attachments)") + time.sleep(0.3) + + conn.close() + safe_print("\n🎯 All attachments processed.") + + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental.py b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental.py new file mode 100644 index 0000000..f4225cb --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental.py @@ -0,0 +1,252 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str = ""): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + # Strip emoji and characters outside BMP for Task Scheduler + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + # ASCII fallback + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def make_abbrev(title: str) -> str: + if not title: + return "" + words = re.findall(r"[A-Za-zÁ-Žá-ž0-9]+", title) + abbr = "" + for w in words: + if w.isdigit(): + abbr += w + else: + abbr += w[0] + return abbr.upper() + + +# ============================== +# 🧹 DELETE UNEXPECTED FILES +# ============================== +def clean_folder(folder: Path, valid_files: set): + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file(): + if f.name.startswith("▲"): + continue + sanitized = sanitize_name(f.name) + if sanitized not in valid_files: + safe_print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + safe_print(f"⚠️ Could not delete {f}: {e}") + + +# ============================== +# 📦 DB CONNECTION +# ============================== +conn = pymysql.connect(**DB_CONFIG) + +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +safe_print("🔍 Loading metadata from DB (FAST)…") + +cur_meta.execute(""" + SELECT d.id AS download_id, + d.request_id, + d.filename, + d.created_at, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni, + p.displayTitle + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + ORDER BY p.updatedAt DESC +""") + +rows = cur_meta.fetchall() +safe_print(f"📋 Found {len(rows)} attachment records.\n") + +# ============================== +# 🧠 MAIN LOOP WITH PROGRESS +# ============================== + +unique_request_ids = [] +seen = set() +for r in rows: + req_id = r["request_id"] + if req_id not in seen: + unique_request_ids.append(req_id) + seen.add(req_id) + +total_requests = len(unique_request_ids) +safe_print(f"🔄 Processing {total_requests} unique requests...\n") + +processed_requests = set() +current_index = 0 + +for r in rows: + req_id = r["request_id"] + + if req_id in processed_requests: + continue + processed_requests.add(req_id) + + current_index += 1 + percent = (current_index / total_requests) * 100 + + safe_print(f"\n[ {percent:5.1f}% ] Processing request {current_index} / {total_requests} → {req_id}") + + # ========== FETCH VALID FILENAMES ========== + cur_meta.execute( + "SELECT filename FROM medevio_downloads WHERE request_id=%s", + (req_id,) + ) + valid_files = {sanitize_name(row["filename"]) for row in cur_meta.fetchall()} + + # ========== BUILD FOLDER NAME ========== + updated_at = r["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(r["prijmeni"] or "Unknown") + jmeno = sanitize_name(r["jmeno"] or "") + title = r.get("displayTitle") or "" + abbr = make_abbrev(title) + + clean_folder_name = sanitize_name( + f"{date_str} {prijmeni}, {jmeno} [{abbr}] {req_id}" + ) + + # ========== DETECT EXISTING FOLDER ========== + existing_folder = None + + for f in BASE_DIR.iterdir(): + if f.is_dir() and req_id in f.name: + existing_folder = f + break + + main_folder = existing_folder if existing_folder else BASE_DIR / clean_folder_name + + # ========== MERGE DUPLICATES ========== + possible_dups = [ + f for f in BASE_DIR.iterdir() + if f.is_dir() and req_id in f.name and f != main_folder + ] + + for dup in possible_dups: + safe_print(f"♻️ Merging duplicate folder: {dup.name}") + + clean_folder(dup, valid_files) + main_folder.mkdir(parents=True, exist_ok=True) + + for f in dup.iterdir(): + if f.is_file(): + target = main_folder / f.name + if not target.exists(): + f.rename(target) + + shutil.rmtree(dup, ignore_errors=True) + + # ========== CLEAN MAIN FOLDER ========== + clean_folder(main_folder, valid_files) + + # ========== DOWNLOAD MISSING FILES ========== + added_new_file = False + main_folder.mkdir(parents=True, exist_ok=True) + + for filename in valid_files: + dest_plain = main_folder / filename + dest_marked = main_folder / ("▲" + filename) + + if dest_plain.exists() or dest_marked.exists(): + continue + + added_new_file = True + + cur_blob.execute( + "SELECT file_content FROM medevio_downloads " + "WHERE request_id=%s AND filename=%s", + (req_id, filename) + ) + row = cur_blob.fetchone() + if not row: + continue + + content = row[0] + if not content: + continue + + with open(dest_plain, "wb") as f: + f.write(content) + + safe_print(f"💾 Wrote: {dest_plain.relative_to(BASE_DIR)}") + + # ========== REMOVE ▲ FLAG IF NEW FILES ADDED ========== + if added_new_file and "▲" in main_folder.name: + new_name = main_folder.name.replace("▲", "").strip() + new_path = main_folder.parent / new_name + + if new_path != main_folder: + try: + main_folder.rename(new_path) + safe_print(f"🔄 Folder flag ▲ removed → {new_name}") + main_folder = new_path + except Exception as e: + safe_print(f"⚠️ Could not rename folder: {e}") + +safe_print("\n🎯 Export complete.\n") + +cur_blob.close() +cur_meta.close() +conn.close() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental1.py b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental1.py new file mode 100644 index 0000000..ca07716 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental1.py @@ -0,0 +1,224 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime +from collections import defaultdict + +# ============================== +# ⚙️ CONFIGURATION +# ============================== + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +# ============================== +# 🔧 HELPERS +# ============================== + +def sanitize_name(name: str) -> str: + """Replace invalid Windows filename characters.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def make_abbrev(title: str) -> str: + """Create abbreviation from title.""" + if not title: + return "" + words = re.findall(r"[A-Za-zÁ-Žá-ž0-9]+", title) + abbr = "" + for w in words: + if w.isdigit(): + abbr += w + else: + abbr += w[0] + return abbr.upper() + + +def clean_folder(folder: Path, valid_files: set): + """Remove unexpected files except ▲ files.""" + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file(): + if f.name.startswith("▲"): + continue + sanitized = sanitize_name(f.name) + if sanitized not in valid_files: + print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + print(f"⚠️ Could not delete {f}: {e}") + + +# ============================== +# 📦 DB CONNECTION +# ============================== + +conn = pymysql.connect(**DB_CONFIG) +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +print("🔍 Loading only requests with NEW attachments…") + +cur_meta.execute(""" + SELECT + p.id AS request_id, + p.displayTitle, + p.pacient_jmeno, + p.pacient_prijmeni, + p.updatedAt, + p.attachmentsProcessed, + d.filename, + d.created_at + FROM pozadavky p + JOIN medevio_downloads d ON d.request_id = p.id + LEFT JOIN ( + SELECT request_id, MAX(created_at) AS last_attachment_ts + FROM medevio_downloads + GROUP BY request_id + ) x ON x.request_id = p.id + WHERE p.attachmentsProcessed IS NULL + OR p.attachmentsProcessed < x.last_attachment_ts + ORDER BY p.updatedAt DESC; +""") + +rows = cur_meta.fetchall() +print(f"📋 Found {len(rows)} attachment rows belonging to requests needing processing.\n") + +# ============================== +# 🧠 PREPARE REQUEST GROUPING +# ============================== + +grouped = defaultdict(list) +for r in rows: + grouped[r["request_id"]].append(r) + +unique_request_ids = list(grouped.keys()) +total_requests = len(unique_request_ids) + +print(f"🔄 Processing {total_requests} requests needing updates…\n") + +# ============================== +# 🧠 MAIN LOOP +# ============================== + +index = 0 + +for req_id in unique_request_ids: + index += 1 + pct = (index / total_requests) * 100 + + print(f"\n[ {pct:5.1f}% ] Processing request {index}/{total_requests} → {req_id}") + + req_rows = grouped[req_id] + first = req_rows[0] + + # Build folder name + updated_at = first["updatedAt"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(first["pacient_prijmeni"] or "Unknown") + jmeno = sanitize_name(first["pacient_jmeno"] or "") + abbr = make_abbrev(first["displayTitle"]) + + desired_folder_name = sanitize_name(f"{date_str} {prijmeni}, {jmeno} [{abbr}] {req_id}") + + # Detect existing folder for request + main_folder = None + for f in BASE_DIR.iterdir(): + if f.is_dir() and req_id in f.name: + main_folder = f + break + + if not main_folder: + main_folder = BASE_DIR / desired_folder_name + + main_folder.mkdir(parents=True, exist_ok=True) + + # Build valid filename set + valid_files = {sanitize_name(r["filename"]) for r in req_rows} + + # Clean unexpected non-▲ files + clean_folder(main_folder, valid_files) + + # Track if ANY new files were downloaded + added_new_file = False + + # DOWNLOAD MISSING FILES + for r in req_rows: + filename = sanitize_name(r["filename"]) + dest_plain = main_folder / filename + dest_flag = main_folder / ("▲" + filename) + + # Skip if file already exists (plain or ▲) + if dest_plain.exists() or dest_flag.exists(): + continue + + # Fetch content + cur_blob.execute(""" + SELECT file_content + FROM medevio_downloads + WHERE request_id=%s AND filename=%s + """, (req_id, r["filename"])) + + row = cur_blob.fetchone() + if not row or not row[0]: + continue + + with open(dest_plain, "wb") as f: + f.write(row[0]) + + print(f"💾 Wrote: {dest_plain.relative_to(BASE_DIR)}") + added_new_file = True + + # ------------------------------------ + # 🟦 FOLDER ▲ LOGIC (IMPORTANT) + # ------------------------------------ + if added_new_file: + # If folder contains ▲ in its name → remove it + if "▲" in main_folder.name: + new_name = main_folder.name.replace("▲", "").strip() + new_path = main_folder.parent / new_name + + try: + main_folder.rename(new_path) + print(f"🔄 Folder flag ▲ removed → {new_name}") + main_folder = new_path + except Exception as e: + print(f"⚠️ Could not rename folder: {e}") + else: + # NO new files → NEVER rename folder + pass + + # Mark request as processed + cur_meta.execute( + "UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id=%s", + (req_id,) + ) + conn.commit() + +# ============================== +# 🏁 DONE +# ============================== + +print("\n🎯 Export complete.\n") +cur_blob.close() +cur_meta.close() +conn.close() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental2.py b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental2.py new file mode 100644 index 0000000..5d2b313 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem incremental2.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def make_abbrev(title: str) -> str: + """Create abbreviation from displayTitle.""" + if not title: + return "" + words = re.findall(r"[A-Za-zÁ-Žá-ž0-9]+", title) + abbr = "" + for w in words: + abbr += w if w.isdigit() else w[0] + return abbr.upper() + + +# ============================== +# 🧹 DELETE UNEXPECTED FILES +# ============================== +def clean_folder(folder: Path, valid_files: set): + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file(): + if f.name.startswith("▲"): + continue + sanitized = sanitize_name(f.name) + if sanitized not in valid_files: + print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + print(f"⚠️ Could not delete {f}: {e}") + + +# ============================== +# 📦 DB CONNECTION +# ============================== +conn = pymysql.connect(**DB_CONFIG) +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +print("🔍 Loading ALL metadata without file_content…") + +# ⭐ Load ALL metadata once (NO BLOBs) +cur_meta.execute(""" + SELECT + d.request_id, + d.filename, + d.created_at, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni, + p.displayTitle + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + ORDER BY p.updatedAt DESC; +""") + +rows = cur_meta.fetchall() +print(f"📋 Found {len(rows)} metadata rows.\n") + +# ============================== +# 🧠 PRE-GROUP METADATA +# ============================== + +# Build dictionary: request_id → all metadata rows for that request +grouped = {} +for row in rows: + grouped.setdefault(row["request_id"], []).append(row) + +unique_request_ids = list(grouped.keys()) +total_requests = len(unique_request_ids) + +print(f"🔄 Processing {total_requests} unique requests…\n") + +# ============================== +# 🧠 MAIN LOOP +# ============================== + +for idx, req_id in enumerate(unique_request_ids, start=1): + pct = (idx / total_requests) * 100 + req_rows = grouped[req_id] + first = req_rows[0] + + print(f"\n[ {pct:5.1f}% ] Processing request {idx}/{total_requests} → {req_id}") + + # ====================== + # Build folder name + # ====================== + updated_at = first["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + prijmeni = sanitize_name(first["prijmeni"] or "Unknown") + jmeno = sanitize_name(first["jmeno"] or "") + abbr = make_abbrev(first["displayTitle"] or "") + + clean_folder_name = sanitize_name(f"{date_str} {prijmeni}, {jmeno} [{abbr}] {req_id}") + + # Detect existing folder + existing_folder = None + for f in BASE_DIR.iterdir(): + if f.is_dir() and req_id in f.name: + existing_folder = f + break + + main_folder = existing_folder if existing_folder else BASE_DIR / clean_folder_name + main_folder.mkdir(parents=True, exist_ok=True) + + # ====================== + # Valid files for this request + # ====================== + valid_files = {sanitize_name(r["filename"]) for r in req_rows} + + # Clean unexpected files + clean_folder(main_folder, valid_files) + + # ====================== + # DOWNLOAD MISSING FILES → only now load BLOBs + # ====================== + added_new_file = False + + for r in req_rows: + filename = sanitize_name(r["filename"]) + dest_plain = main_folder / filename + dest_marked = main_folder / ("▲" + filename) + + if dest_plain.exists() or dest_marked.exists(): + continue + + added_new_file = True + + # ⭐ Load BLOB only when needed + cur_blob.execute(""" + SELECT file_content + FROM medevio_downloads + WHERE request_id=%s AND filename=%s + """, (req_id, r["filename"])) + + row = cur_blob.fetchone() + if not row or not row[0]: + continue + + with open(dest_plain, "wb") as f: + f.write(row[0]) + + print(f"💾 Wrote: {dest_plain.relative_to(BASE_DIR)}") + + # ====================== + # Folder-level ▲ logic + # ====================== + if added_new_file and "▲" in main_folder.name: + new_name = main_folder.name.replace("▲", "").strip() + new_path = main_folder.parent / new_name + + try: + main_folder.rename(new_path) + main_folder = new_path + print(f"🔄 Folder flag ▲ removed → {new_name}") + except Exception as e: + print(f"⚠️ Could not rename folder: {e}") + +cur_blob.close() +cur_meta.close() +conn.close() + +print("\n🎯 Export complete.\n") diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem single step.py b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem single step.py new file mode 100644 index 0000000..dba54c1 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_5_SaveToFileSystem single step.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def clean_folder(folder: Path, valid_files: set): + """Remove files that do NOT exist in MySQL for this request.""" + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file() and sanitize_name(f.name) not in valid_files: + print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + print(f"⚠️ Cannot delete {f}: {e}") + + +# ============================== +# 📥 LOAD EVERYTHING IN ONE QUERY +# ============================== +conn = pymysql.connect(**DB_CONFIG) +cur = conn.cursor(pymysql.cursors.DictCursor) + +print("📥 Loading ALL metadata + BLOBs with ONE MySQL query…") + +cur.execute(""" + SELECT + d.id AS download_id, + d.request_id, + d.filename, + d.file_content, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + ORDER BY p.updatedAt DESC, d.created_at ASC +""") + +rows = cur.fetchall() +print(f"📦 Loaded {len(rows)} total file rows.\n") + +conn.close() + +# ============================== +# 🔄 ORGANIZE ROWS PER REQUEST +# ============================== +requests = {} # req_id → list of file dicts + +for r in rows: + req_id = r["request_id"] + if req_id not in requests: + requests[req_id] = [] + requests[req_id].append(r) + +print(f"📌 Unique requests: {len(requests)}\n") + +# ============================== +# 🧠 MAIN LOOP – SAME LOGIC AS BEFORE +# ============================== +for req_id, filelist in requests.items(): + + # ========== GET UPDATEDAT (same logic) ========== + any_row = filelist[0] + updated_at = any_row["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(any_row["prijmeni"] or "Unknown") + jmeno = sanitize_name(any_row["jmeno"] or "") + + folder_name = sanitize_name(f"{date_str} {prijmeni}, {jmeno} {req_id}") + main_folder = BASE_DIR / folder_name + + # ========== VALID FILES ========== + valid_files = {sanitize_name(r["filename"]) for r in filelist} + + # ========== FIND OLD FOLDERS ========== + possible_dups = [ + f for f in BASE_DIR.iterdir() + if f.is_dir() and req_id in f.name and f != main_folder + ] + + # ========== MERGE OLD FOLDERS ========== + for dup in possible_dups: + print(f"♻️ Merging folder: {dup.name}") + + clean_folder(dup, valid_files) + main_folder.mkdir(parents=True, exist_ok=True) + + for f in dup.iterdir(): + if f.is_file(): + target = main_folder / f.name + if not target.exists(): + f.rename(target) + + shutil.rmtree(dup, ignore_errors=True) + + # ========== CLEAN MAIN FOLDER ========== + main_folder.mkdir(parents=True, exist_ok=True) + clean_folder(main_folder, valid_files) + + # ========== SAVE FILES (fast now) ========== + for r in filelist: + filename = sanitize_name(r["filename"]) + dest = main_folder / filename + + if dest.exists(): + continue + + content = r["file_content"] + if not content: + continue + + with open(dest, "wb") as f: + f.write(content) + + print(f"💾 Saved: {dest.relative_to(BASE_DIR)}") + +print("\n🎯 Export complete.\n") diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py b/Medevio/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py new file mode 100644 index 0000000..65c1f78 --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import importlib.util +import sys +from pathlib import Path + +# Load FunctionsLoader +FUNCTIONS_LOADER_PATH = Path(r"C:\Reporting\Functions\FunctionsLoader.py") +spec = importlib.util.spec_from_file_location("FunctionsLoader", FUNCTIONS_LOADER_PATH) +FunctionsLoader = importlib.util.module_from_spec(spec) +sys.modules["FunctionsLoader"] = FunctionsLoader +spec.loader.exec_module(FunctionsLoader) + +""" +Spustí všechny PRAVIDELNÉ skripty v daném pořadí: + +0) PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py +1) PRAVIDELNE_1_ReadLast300DonePozadavku.py +2) PRAVIDELNE_2_ReadPoznamky.py +3) PRAVIDELNE_3_StahniKomunikaci.py +4) PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py +5) PRAVIDELNE_5_SaveToFileSystem incremental.py +""" + +import time, socket +for _ in range(30): + try: + socket.create_connection(("192.168.1.76", 3307), timeout=3).close() + break + except OSError: + time.sleep(10) + +import sys +import subprocess +from pathlib import Path +from datetime import datetime + +# složka, kde leží tento skript i všechny PRAVIDELNE_*.py +BASE_DIR = Path(__file__).resolve().parent + +SCRIPTS_IN_ORDER = [ + "PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py", + "PRAVIDELNE_1_ReadLast300DonePozadavku.py", + "PRAVIDELNE_2_ReadPoznamky.py", + "PRAVIDELNE_3_StahniKomunikaci.py", + "PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py", + "PRAVIDELNE_5_SaveToFileSystem incremental.py", # má mezeru v názvu, ale v listu je to OK +] + +LOG_FILE = BASE_DIR / "PRAVIDELNE_log.txt" + + +def log(msg: str): + """Zapíše zprávu do log souboru i na konzoli.""" + ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + line = f"[{ts}] {msg}" + print(line) + try: + with LOG_FILE.open("a", encoding="utf-8") as f: + f.write(line + "\n") + except Exception: + # log nesmí shodit běh + pass + + +def main(): + log("=== START pravidelného běhu ===") + + for script_name in SCRIPTS_IN_ORDER: + script_path = BASE_DIR / script_name + + if not script_path.exists(): + log(f"❌ Skript nenalezen: {script_path}") + continue + + log(f"▶ Spouštím: {script_path.name}") + + # spustíme stejným interpretem, kterým běží tento orchestr + try: + result = subprocess.run( + [sys.executable, str(script_path)], + cwd=str(BASE_DIR), + capture_output=True, + text=True, + encoding="utf-8", + errors="ignore", # NEZKAZÍ SE, NEZBOŘÍ SE, PROSTĚ IGNORUJE CP1252 NEZÁKONNÉ BYTES + ) + except Exception as e: + log(f" 💥 Chyba při spouštění {script_path.name}: {e}") + continue + + # vypíšeme návratový kód + log(f" ↳ return code: {result.returncode}") + + # pokud něco skript vypsal na stderr, logneme + if result.stderr: + log(f" ⚠ stderr {script_path.name}:\n{result.stderr.strip()}") + + # stdout můžeš podle chuti také logovat (někdy je toho moc): + # if result.stdout: + # log(f" ℹ stdout {script_path.name}:\n{result.stdout.strip()}") + + log("=== KONEC pravidelného běhu ===\n") + + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/PRAVIDELNE_log.txt b/Medevio/10ReadPozadavky/PRAVIDELNE_log.txt new file mode 100644 index 0000000..663cf6d --- /dev/null +++ b/Medevio/10ReadPozadavky/PRAVIDELNE_log.txt @@ -0,0 +1,29 @@ +[2025-12-01 06:37:41] === START pravidelného běhu === +[2025-12-01 06:37:42] ▶ Spouštím: PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py +[2025-12-01 06:37:44] ↳ PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py return code: 0 +[2025-12-01 06:37:44] ▶ Spouštím: PRAVIDELNE_1_ReadLast300DonePozadavku.py +[2025-12-01 06:37:48] ↳ PRAVIDELNE_1_ReadLast300DonePozadavku.py return code: 0 +[2025-12-01 06:37:48] ▶ Spouštím: PRAVIDELNE_2_ReadPoznamky.py +[2025-12-01 06:37:49] ↳ PRAVIDELNE_2_ReadPoznamky.py return code: 0 +[2025-12-01 06:37:50] ▶ Spouštím: PRAVIDELNE_3_StahniKomunikaci.py +[2025-12-01 06:37:51] ↳ PRAVIDELNE_3_StahniKomunikaci.py return code: 0 +[2025-12-01 06:37:52] ▶ Spouštím: PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py +[2025-12-01 06:37:53] ↳ PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py return code: 0 +[2025-12-01 06:37:53] ▶ Spouštím: PRAVIDELNE_5_SaveToFileSystem incremental.py +[2025-12-01 06:38:42] ↳ PRAVIDELNE_5_SaveToFileSystem incremental.py return code: 0 +[2025-12-01 06:38:43] === KONEC pravidelného běhu === +[2025-12-02 07:04:34] === START pravidelného běhu === +[2025-12-02 07:04:34] ▶ Spouštím: PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py +[2025-12-02 07:04:35] ↳ return code: 0 +[2025-12-02 07:04:35] ▶ Spouštím: PRAVIDELNE_1_ReadLast300DonePozadavku.py +[2025-12-02 07:04:39] ↳ return code: 0 +[2025-12-02 07:04:39] ▶ Spouštím: PRAVIDELNE_2_ReadPoznamky.py +[2025-12-02 07:04:40] ↳ return code: 0 +[2025-12-02 07:04:40] ▶ Spouštím: PRAVIDELNE_3_StahniKomunikaci.py +[2025-12-02 07:04:40] ↳ return code: 0 +[2025-12-02 07:04:40] ▶ Spouštím: PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py +[2025-12-02 07:04:40] ↳ return code: 0 +[2025-12-02 07:04:40] ▶ Spouštím: PRAVIDELNE_5_SaveToFileSystem incremental.py +[2025-12-02 07:05:28] ↳ return code: 0 +[2025-12-02 07:05:28] === KONEC pravidelného běhu === + diff --git a/Medevio/10ReadPozadavky/test.py b/Medevio/10ReadPozadavky/test.py new file mode 100644 index 0000000..60efc51 --- /dev/null +++ b/Medevio/10ReadPozadavky/test.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Orchestrator for all PRAVIDELNE scripts in exact order. +""" + +import time, socket +for _ in range(30): + try: + socket.create_connection(("192.168.1.76", 3307), timeout=3).close() + break + except OSError: + time.sleep(10) + +import sys +import subprocess +from pathlib import Path +from datetime import datetime + +# ===================================================================== +# Import EXACT Functions.py from: C:\Reporting\Fio\Functions.py +# This bypasses all other Functions.py files in the system. +# ===================================================================== + +import importlib.util + +FUNCTIONS_FILE = Path(r"C:\Reporting\Fio\Functions.py") + +spec = importlib.util.spec_from_file_location("Functions_FIO", FUNCTIONS_FILE) +Functions_FIO = importlib.util.module_from_spec(spec) +sys.modules["Functions_FIO"] = Functions_FIO +spec.loader.exec_module(Functions_FIO) + +# correct WhatsApp function +SendWhatsAppMessage = Functions_FIO.SendWhatsAppMessage + + +# ===================================================================== +# General Orchestrator Settings +# ===================================================================== + +# folder where orchestrator + sub-scripts live +BASE_DIR = Path(__file__).resolve().parent + +SCRIPTS_IN_ORDER = [ + "PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py", + "PRAVIDELNE_1_ReadLast300DonePozadavku.py", + "PRAVIDELNE_2_ReadPoznamky.py", + "PRAVIDELNE_3_StahniKomunikaci.py", + "PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py", + "PRAVIDELNE_5_SaveToFileSystem incremental.py", +] + +LOG_FILE = BASE_DIR / "PRAVIDELNE_log.txt" + + +# ===================================================================== +# Logging + WhatsApp wrappers +# ===================================================================== + +def log(msg: str): + ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + line = f"[{ts}] {msg}" + print(line) + try: + with LOG_FILE.open("a", encoding="utf-8") as f: + f.write(line + "\n") + except: + pass + + +def whatsapp_notify(text: str): + """WhatsApp message wrapper — never allowed to crash orchestrator""" + try: + SendWhatsAppMessage(text) + except: + pass + + +# ===================================================================== +# Main orchestrator +# ===================================================================== + +def main(): + log("=== START pravidelného běhu ===") + whatsapp_notify("🏁 *PRAVIDELNÉ skripty: START*") + + for script_name in SCRIPTS_IN_ORDER: + script_path = BASE_DIR / script_name + + if not script_path.exists(): + err = f"❌ Skript nenalezen: {script_path}" + log(err) + whatsapp_notify(err) + continue + + log(f"▶ Spouštím: {script_path.name}") + whatsapp_notify(f"▶ *Spouštím:* {script_path.name}") + + try: + result = subprocess.run( + [sys.executable, str(script_path)], + cwd=str(BASE_DIR), + capture_output=True, + text=True, + encoding="utf-8", + errors="ignore", + ) + except Exception as e: + err = f"💥 Chyba při spouštění {script_path.name}: {e}" + log(err) + whatsapp_notify(err) + continue + + # return code + rc_msg = f"↳ {script_path.name} return code: {result.returncode}" + log(rc_msg) + whatsapp_notify(rc_msg) + + # stderr (warnings/errors) + if result.stderr: + err_msg = f"⚠ stderr v {script_path.name}:\n{result.stderr.strip()}" + log(err_msg) + whatsapp_notify(err_msg) + + log("=== KONEC pravidelného běhu ===") + whatsapp_notify("✅ *PRAVIDELNÉ skripty: KONEC*\n") + + +# ===================================================================== +# Entry point +# ===================================================================== + +if __name__ == "__main__": + main() diff --git a/Medevio/10ReadPozadavky/x0703 Plne funkční uložení do mysql.py b/Medevio/10ReadPozadavky/x0703 Plne funkční uložení do mysql.py new file mode 100644 index 0000000..2a22478 --- /dev/null +++ b/Medevio/10ReadPozadavky/x0703 Plne funkční uložení do mysql.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download all 'Odeslat lékařskou zprávu' attachments from Medevio API +and store them (including binary content) directly into MySQL table `medevio_downloads`. + +Each attachment (PDF, image, etc.) is fetched once and saved as LONGBLOB. +Duplicate protection is ensured via UNIQUE KEY on `attachment_id`. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + +# ============================== +# 🧮 HELPERS +# ============================== +def short_crc8(uuid_str: str) -> str: + """Return deterministic 8-char hex string from any input string (CRC32).""" + return f"{zlib.crc32(uuid_str.encode('utf-8')) & 0xffffffff:08x}" + +def extract_filename_from_url(url: str) -> str: + """Extracts filename from S3-style URL (between last '/' and first '?').""" + try: + return url.split("/")[-1].split("?")[0] + except Exception: + return "unknown_filename" + +def read_token(p: Path) -> str: + """Read Bearer token from file.""" + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + tok = tok.split(" ", 1)[1] + return tok + +# ============================== +# 📡 FETCH ATTACHMENTS +# ============================== +def fetch_attachments(headers, request_id): + variables = {"requestId": request_id} + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + print(f"❌ HTTP {r.status_code} for request {request_id}") + return [] + data = r.json().get("data", {}).get("patientRequestMedicalRecords", []) + return data + +# ============================== +# 💾 SAVE TO MYSQL +# ============================== +def insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date): + url = m.get("downloadUrl") + if not url: + print(" ⚠️ No download URL") + return + + try: + r = requests.get(url, timeout=45) + r.raise_for_status() + content = r.content + except Exception as e: + print(f" ⚠️ Failed to download {url}: {e}") + return + + file_size = len(content) + filename = extract_filename_from_url(url) + attachment_id = a.get("id") + attachment_type = a.get("attachmentType") + content_type = m.get("contentType") + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, filename, + content_type, file_size, pacient_jmeno, pacient_prijmeni, + created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + attachment_type, + filename, + content_type, + file_size, + jmeno, + prijmeni, + created_date, + content + )) + print(f" 💾 Saved {filename} ({file_size/1024:.1f} kB)") + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + with conn.cursor() as cur: + cur.execute(""" + SELECT id, displayTitle, pacient_prijmeni, pacient_jmeno, createdAt + FROM pozadavky + WHERE displayTitle = 'Odeslat lékařskou zprávu' + """) + rows = cur.fetchall() + + print(f"📋 Found {len(rows)} 'Odeslat lékařskou zprávu' requests") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + jmeno = row.get("pacient_jmeno") or "" + created = row.get("createdAt") + + try: + created_date = datetime.strptime(str(created), "%Y-%m-%d %H:%M:%S") + except Exception: + created_date = None + + print(f"\n[{i}/{len(rows)}] 🧾 {prijmeni}, {jmeno} ({req_id})") + + attachments = fetch_attachments(headers, req_id) + if not attachments: + print(" ⚠️ No attachments") + continue + + with conn.cursor() as cur: + for a in attachments: + m = a.get("medicalRecord") or {} + insert_download(cur, req_id, a, m, jmeno, prijmeni, created_date) + conn.commit() + + print(f" ✅ {len(attachments)} attachments saved for {prijmeni}, {jmeno}") + time.sleep(0.5) # be nice to the API + + conn.close() + print("\n✅ Done! All attachments stored in MySQL table `medevio_downloads`.") + +# ============================== +if __name__ == "__main__": + main() diff --git a/Medevio/12 Readallinbatches/10 Readallpozadavkyinbatches.py b/Medevio/12 Readallinbatches/10 Readallpozadavkyinbatches.py new file mode 100644 index 0000000..f767de5 --- /dev/null +++ b/Medevio/12 Readallinbatches/10 Readallpozadavkyinbatches.py @@ -0,0 +1,239 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime +from dateutil import parser +import time +import sys + +# ================================ +# UTF-8 SAFE OUTPUT (Windows friendly) +# ================================ +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') + + +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ================================ +# 🔧 CONFIG +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +BATCH_SIZE = 500 +STATES = ["ACTIVE", "DONE"] # explicitně – jinak API vrací jen ACTIVE + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestList2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + lastMessage { + createdAt + } + } + } +} +""" + + +# ================================ +# TOKEN +# ================================ +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + + +# ================================ +# DATETIME PARSER +# ================================ +def to_mysql_dt(iso_str): + if not iso_str: + return None + try: + dt = parser.isoparse(iso_str) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=datetime.now().astimezone().tzinfo) + return dt.astimezone().strftime("%Y-%m-%d %H:%M:%S") + except Exception: + return None + + +# ================================ +# UPSERT +# ================================ +def upsert(conn, r): + p = r.get("extendedPatient") or {} + + api_updated = to_mysql_dt(r.get("updatedAt")) + msg_updated = to_mysql_dt((r.get("lastMessage") or {}).get("createdAt")) + + final_updated = max(filter(None, [api_updated, msg_updated]), default=None) + + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + final_updated, + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + + +# ================================ +# FETCH PAGE (per state) +# ================================ +def fetch_state(headers, state, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "state": state, + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicRequestList2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + + data = r.json()["data"]["requestsResponse"] + return data.get("patientRequests", []), data.get("count", 0) + + +# ================================ +# MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + safe_print(f"\n=== FULL Medevio READ-ALL sync @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + grand_total = 0 + + for state in STATES: + safe_print(f"\n🔁 STATE = {state}") + offset = 0 + total = None + processed = 0 + + while True: + batch, count = fetch_state(headers, state, offset) + + if total is None: + total = count + safe_print(f"📡 {state}: celkem {total}") + + if not batch: + break + + for r in batch: + upsert(conn, r) + + processed += len(batch) + safe_print(f" • {processed}/{total}") + + offset += BATCH_SIZE + if offset >= count: + break + + time.sleep(0.4) + + grand_total += processed + + conn.close() + safe_print(f"\n✅ HOTOVO – celkem zpracováno {grand_total} požadavků\n") + + +# ================================ +if __name__ == "__main__": + main() diff --git a/Medevio/12 Readallinbatches/PRAVIDELNE_3_StahniKomunikacifull.py b/Medevio/12 Readallinbatches/PRAVIDELNE_3_StahniKomunikacifull.py new file mode 100644 index 0000000..bcf4102 --- /dev/null +++ b/Medevio/12 Readallinbatches/PRAVIDELNE_3_StahniKomunikacifull.py @@ -0,0 +1,279 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Fetches messages from Medevio API. + +Modes: +- Incremental (default): Only requests where messagesProcessed IS NULL or < updatedAt +- Full resync (--full): Fetches ALL messages for ALL pozadavky +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import argparse + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY_MESSAGES = r""" +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages(patientRequestId: $requestId, updatedSince: $updatedSince) { + id + createdAt + updatedAt + readAt + text + type + sender { + id + name + surname + clinicId + } + medicalRecord { + id + description + contentType + url + downloadUrl + token + createdAt + updatedAt + } + } +} +""" + +# ============================== +# ⏱ DATETIME PARSER +# ============================== +def parse_dt(s): + if not s: + return None + try: + return datetime.fromisoformat(s.replace("Z", "+00:00")) + except: + pass + try: + return datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S") + except: + return None + +# ============================== +# 🔐 TOKEN +# ============================== +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.replace("Bearer ", "") + +# ============================== +# 📡 FETCH MESSAGES +# ============================== +def fetch_messages(headers, request_id): + payload = { + "operationName": "UseMessages_ListMessages", + "query": GRAPHQL_QUERY_MESSAGES, + "variables": {"requestId": request_id, "updatedSince": None}, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + print("❌ HTTP", r.status_code, "for request", request_id) + return [] + return r.json().get("data", {}).get("messages", []) or [] + +# ============================== +# 💾 SAVE MESSAGE +# ============================== +def insert_message(cur, req_id, msg): + + sender = msg.get("sender") or {} + sender_name = " ".join( + x for x in [sender.get("name"), sender.get("surname")] if x + ) or None + + sql = """ + INSERT INTO medevio_conversation ( + id, request_id, + sender_name, sender_id, sender_clinic_id, + text, created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + sender_name = VALUES(sender_name), + sender_id = VALUES(sender_id), + sender_clinic_id = VALUES(sender_clinic_id), + text = VALUES(text), + created_at = VALUES(created_at), + read_at = VALUES(read_at), + updated_at = VALUES(updated_at), + attachment_url = VALUES(attachment_url), + attachment_description = VALUES(attachment_description), + attachment_content_type = VALUES(attachment_content_type) + """ + + mr = msg.get("medicalRecord") or {} + + cur.execute(sql, ( + msg.get("id"), + req_id, + sender_name, + sender.get("id"), + sender.get("clinicId"), + msg.get("text"), + parse_dt(msg.get("createdAt")), + parse_dt(msg.get("readAt")), + parse_dt(msg.get("updatedAt")), + mr.get("downloadUrl") or mr.get("url"), + mr.get("description"), + mr.get("contentType") + )) + +# ============================== +# 💾 DOWNLOAD MESSAGE ATTACHMENT +# ============================== +def insert_download(cur, req_id, msg, existing_ids): + + mr = msg.get("medicalRecord") or {} + attachment_id = mr.get("id") + if not attachment_id: + return + + if attachment_id in existing_ids: + return # skip duplicates + + url = mr.get("downloadUrl") or mr.get("url") + if not url: + return + + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + data = r.content + except Exception as e: + print("⚠️ Failed to download:", e) + return + + filename = url.split("/")[-1].split("?")[0] + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + "MESSAGE_ATTACHMENT", + filename, + mr.get("contentType"), + len(data), + parse_dt(msg.get("createdAt")), + data + )) + + existing_ids.add(attachment_id) + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument("--full", action="store_true", help="Load messages for ALL pozadavky") + # Force full mode ON + args = parser.parse_args(args=["--full"]) + # args = parser.parse_args() + + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # ---- Load existing attachments + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + + print(f"📦 Already downloaded attachments: {len(existing_ids)}\n") + + # ---- Select pozadavky to process + with conn.cursor() as cur: + if args.full: + print("🔁 FULL REFRESH MODE: Fetching messages for ALL pozadavky!\n") + cur.execute("SELECT id FROM pozadavky") + else: + print("📥 Incremental mode: Only syncing updated pozadavky.\n") + cur.execute(""" + SELECT id FROM pozadavky + WHERE messagesProcessed IS NULL + OR messagesProcessed < updatedAt + """) + requests_to_process = cur.fetchall() + + # ================================= + # ⏩ SKIP FIRST 3100 AS YESTERDAY + # ================================= + + SKIP = 3100 + if len(requests_to_process) > SKIP: + print(f"⏩ Skipping first {SKIP} pozadavky (already processed yesterday).") + requests_to_process = requests_to_process[SKIP:] + else: + print("⚠️ Not enough pozadavky to skip!") + + + print(f"📋 Requests to process: {len(requests_to_process)}\n") + + # ---- Process each request + for idx, row in enumerate(requests_to_process, 1): + req_id = row["id"] + print(f"[{idx}/{len(requests_to_process)}] Processing {req_id} …") + + messages = fetch_messages(headers, req_id) + + with conn.cursor() as cur: + for msg in messages: + insert_message(cur, req_id, msg) + insert_download(cur, req_id, msg, existing_ids) + conn.commit() + + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + print(f" ✅ {len(messages)} messages saved\n") + time.sleep(0.25) + + conn.close() + print("🎉 Done!") + + +if __name__ == "__main__": + main() diff --git a/Medevio/12 Readallinbatches/medevio_storage.json b/Medevio/12 Readallinbatches/medevio_storage.json new file mode 100644 index 0000000..a0dc794 --- /dev/null +++ b/Medevio/12 Readallinbatches/medevio_storage.json @@ -0,0 +1 @@ +{"cookies": [{"name": "gateway-access-token", "value": "YwBgkf8McREDKs7vCZj0EZD2fJsuV8RyDPtYx7WiDoz0nFJ9kxId8kcNEPBLFSwM+Tiz80+SOdFwo+oj", "domain": "my.medevio.cz", "path": "/", "expires": 1763372319, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "aws-waf-token", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c6zAAAA:OYwXLY5OyitSQPl5v2oIlS+hIxsrb5LxV4VjCyE2gJCFFE5PQu+0Zbxse2ZIofrNv5QKs0TYUDTmxPhZyTr9Qtjnq2gsVQxWHXzrbebv3Z7RbzB63u6Ymn3Fo8IbDev3CfCNcNuxCKltFEXLqSCjI2vqNY+7HZkgQBIqy2wMgzli3aSLq0w8lWYtZzyyot7q8RPXWMGTfaBUo2reY0SOSffm9rAivE9PszNfPid71CvNrGAAoxRbwb25eVujlyIcDVWe5vZ9Iw==", "domain": ".my.medevio.cz", "path": "/", "expires": 1761125920, "httpOnly": false, "secure": true, "sameSite": "Lax"}], "origins": [{"origin": "https://my.medevio.cz", "localStorage": [{"name": "awswaf_token_refresh_timestamp", "value": "1760780309860"}, {"name": "awswaf_session_storage", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c+zAAAA:+vw//1NzmePjPpbGCJzUB+orCRivtJd098DbDX4AnABiGRw/+ql6ShqvFY4YdCY7w2tegb5mEPBdAmc4sNi22kNR9BuEoAgCUiMhkU1AZWfzM51zPfTh7SveCrREZ7xdvxcqKPMmfVLRYX5E4+UWh22z/LKQ7+d9VERp3J+wWCUW3dFFirkezy3N7b2FVjTlY/RxsZwhejQziTG/L3CkIFFP3mOReNgBvDpj7aKoM1knY4IL4TZ8E7zNv3nTsvzACLYvnUutVOUcofN1TfOzwZshSKsEXsMzrQn8PzLccX1jM5VSzce7gfEzl0zSPsT8NB3Sna+rhMIttDNYgvbW1HsfG2LIeKMR27Zf8hkslDRVVkcU/Kp2jLOEdhhrBKGjKY2o9/uX3NExdzh5MEKQSSRtmue01BpWYILPH23rMsz4YSmF+Ough5OeQoC95rkcYwVXMhwvUN9Zfp9UZ4xCNfFUex5dOrg9aJntYRnaceeocGUttNI5AdT0i3+osV6XHXzKxeqO8zLCS9BIsCzxaHfdqqem5DorMceuGKz+QqksatIQAA=="}, {"name": "Application.Intl.locale", "value": "cs"}, {"name": "Password.prefill", "value": "{\"username\":\"vladimir.buzalka@buzalka.cz\",\"type\":\"email\"}"}]}]} \ No newline at end of file diff --git a/Medevio/12 Tower1/10 ReadAllActive.py b/Medevio/12 Tower1/10 ReadAllActive.py new file mode 100644 index 0000000..5b4b161 --- /dev/null +++ b/Medevio/12 Tower1/10 ReadAllActive.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime, timezone +import time +from dateutil import parser +import sys + +# Force UTF-8 output +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') + +# ================================ +# 🔧 CONFIGURATION +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +BATCH_SIZE = 100 + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +# ⭐ NOVÝ TESTOVANÝ DOTAZ – obsahuje lastMessage.createdAt +GRAPHQL_QUERY = r""" +query ClinicRequestList2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + lastMessage { + createdAt + } + } + } +} +""" + +# ================================ +# 🧿 SAFE DATETIME PARSER (ALWAYS UTC → LOCAL) +# ================================ +def to_mysql_dt_utc(iso_str): + if not iso_str: + return None + try: + dt = parser.isoparse(iso_str) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + dt_local = dt.astimezone() + return dt_local.strftime("%Y-%m-%d %H:%M:%S") + except: + return None + +# ================================ +# 🔑 TOKEN +# ================================ +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + +# ================================ +# 💾 UPSERT +# ================================ +def upsert(conn, r): + p = r.get("extendedPatient") or {} + api_updated = to_mysql_dt_utc(r.get("updatedAt")) + last_msg = r.get("lastMessage") or {} + msg_updated = to_mysql_dt_utc(last_msg.get("createdAt")) + + def max_dt(a, b): + if a and b: + return max(a, b) + return a or b + + final_updated = max_dt(api_updated, msg_updated) + + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt_utc(r.get("createdAt")), + final_updated, + to_mysql_dt_utc(r.get("doneAt")), + to_mysql_dt_utc(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + +# ================================ +# 📡 FETCH ACTIVE PAGE +# ================================ +def fetch_active(headers, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + "state": "ACTIVE", + } + + payload = { + "operationName": "ClinicRequestList2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + data = r.json().get("data", {}).get("requestsResponse", {}) + return data.get("patientRequests", []), data.get("count", 0) + +# ================================ +# 🧠 MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + print(f"\n=== Sync ACTIVE požadavků @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + offset = 0 + total_processed = 0 + total_count = None + + while True: + batch, count = fetch_active(headers, offset) + if total_count is None: + total_count = count + print(f"📡 Celkem ACTIVE v Medevio: {count}") + + if not batch: + break + + for r in batch: + upsert(conn, r) + + total_processed += len(batch) + print(f" • {total_processed}/{total_count} ACTIVE processed") + + if offset + BATCH_SIZE >= count: + break + + offset += BATCH_SIZE + time.sleep(0.4) + + conn.close() + print("\n✅ ACTIVE sync hotovo!\n") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/12 Tower1/12 ReadAllinBatches.py b/Medevio/12 Tower1/12 ReadAllinBatches.py new file mode 100644 index 0000000..fc7fee7 --- /dev/null +++ b/Medevio/12 Tower1/12 ReadAllinBatches.py @@ -0,0 +1,239 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import pymysql +import requests +from pathlib import Path +from datetime import datetime +from dateutil import parser +import time +import sys + +# ================================ +# UTF-8 SAFE OUTPUT (Windows friendly) +# ================================ +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') + + +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ================================ +# 🔧 CONFIG +# ================================ +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +BATCH_SIZE = 500 +STATES = ["ACTIVE", "DONE"] # explicitně – jinak API vrací jen ACTIVE + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY = r""" +query ClinicRequestList2( + $clinicSlug: String!, + $queueId: String, + $queueAssignment: QueueAssignmentFilter!, + $state: PatientRequestState, + $pageInfo: PageInfo!, + $locale: Locale! +) { + requestsResponse: listPatientRequestsForClinic2( + clinicSlug: $clinicSlug, + queueId: $queueId, + queueAssignment: $queueAssignment, + state: $state, + pageInfo: $pageInfo + ) { + count + patientRequests { + id + displayTitle(locale: $locale) + createdAt + updatedAt + doneAt + removedAt + extendedPatient { + name + surname + identificationNumber + } + lastMessage { + createdAt + } + } + } +} +""" + + +# ================================ +# TOKEN +# ================================ +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + + +# ================================ +# DATETIME PARSER +# ================================ +def to_mysql_dt(iso_str): + if not iso_str: + return None + try: + dt = parser.isoparse(iso_str) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=datetime.now().astimezone().tzinfo) + return dt.astimezone().strftime("%Y-%m-%d %H:%M:%S") + except Exception: + return None + + +# ================================ +# UPSERT +# ================================ +def upsert(conn, r): + p = r.get("extendedPatient") or {} + + api_updated = to_mysql_dt(r.get("updatedAt")) + msg_updated = to_mysql_dt((r.get("lastMessage") or {}).get("createdAt")) + + final_updated = max(filter(None, [api_updated, msg_updated]), default=None) + + sql = """ + INSERT INTO pozadavky ( + id, displayTitle, createdAt, updatedAt, doneAt, removedAt, + pacient_jmeno, pacient_prijmeni, pacient_rodnecislo + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + displayTitle=VALUES(displayTitle), + updatedAt=VALUES(updatedAt), + doneAt=VALUES(doneAt), + removedAt=VALUES(removedAt), + pacient_jmeno=VALUES(pacient_jmeno), + pacient_prijmeni=VALUES(pacient_prijmeni), + pacient_rodnecislo=VALUES(pacient_rodnecislo) + """ + + vals = ( + r.get("id"), + r.get("displayTitle"), + to_mysql_dt(r.get("createdAt")), + final_updated, + to_mysql_dt(r.get("doneAt")), + to_mysql_dt(r.get("removedAt")), + p.get("name"), + p.get("surname"), + p.get("identificationNumber"), + ) + + with conn.cursor() as cur: + cur.execute(sql, vals) + conn.commit() + + +# ================================ +# FETCH PAGE (per state) +# ================================ +def fetch_state(headers, state, offset): + variables = { + "clinicSlug": CLINIC_SLUG, + "queueId": None, + "queueAssignment": "ANY", + "state": state, + "pageInfo": {"first": BATCH_SIZE, "offset": offset}, + "locale": "cs", + } + + payload = { + "operationName": "ClinicRequestList2", + "query": GRAPHQL_QUERY, + "variables": variables, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers) + r.raise_for_status() + + data = r.json()["data"]["requestsResponse"] + return data.get("patientRequests", []), data.get("count", 0) + + +# ================================ +# MAIN +# ================================ +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + safe_print(f"\n=== FULL Medevio READ-ALL sync @ {datetime.now():%Y-%m-%d %H:%M:%S} ===") + + grand_total = 0 + + for state in STATES: + safe_print(f"\n🔁 STATE = {state}") + offset = 0 + total = None + processed = 0 + + while True: + batch, count = fetch_state(headers, state, offset) + + if total is None: + total = count + safe_print(f"📡 {state}: celkem {total}") + + if not batch: + break + + for r in batch: + upsert(conn, r) + + processed += len(batch) + safe_print(f" • {processed}/{total}") + + offset += BATCH_SIZE + if offset >= count: + break + + time.sleep(0.4) + + grand_total += processed + + conn.close() + safe_print(f"\n✅ HOTOVO – celkem zpracováno {grand_total} požadavků\n") + + +# ================================ +if __name__ == "__main__": + main() diff --git a/Medevio/12 Tower1/20 ReadPoznamky.py b/Medevio/12 Tower1/20 ReadPoznamky.py new file mode 100644 index 0000000..f74fdbf --- /dev/null +++ b/Medevio/12 Tower1/20 ReadPoznamky.py @@ -0,0 +1,217 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download and store Medevio questionnaires (userNote + eCRF) for all patient requests. +Uses the verified working query "GetPatientRequest2". +""" + +import json +import requests +import pymysql +from datetime import datetime +from pathlib import Path +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +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') + + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# 🔧 CONFIGURATION (UPDATED TO 192.168.1.50) +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + + +# ============================== +# 🕒 DATETIME FIXER +# ============================== +def fix_datetime(dt_str): + if not dt_str: + return None + try: + return datetime.fromisoformat(dt_str.replace("Z", "").replace("+00:00", "")) + except Exception: + return None + + +# Optional filter +CREATED_AFTER = "2025-01-01" + + +# ============================== +# 🧮 HELPERS +# ============================== +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + if tok.startswith("Bearer "): + return tok.split(" ", 1)[1] + return tok + + +GRAPHQL_QUERY = r""" +query GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $locale: Locale!) { + request: getPatientRequest2(patientRequestId: $requestId, clinicSlug: $clinicSlug) { + id + displayTitle(locale: $locale) + createdAt + updatedAt + userNote + eventType + extendedPatient(clinicSlug: $clinicSlug) { + name + surname + identificationNumber + } + ecrfFilledData(locale: $locale) { + name + groups { + label + fields { + name + label + type + value + } + } + } + } +} +""" + + +def fetch_questionnaire(headers, request_id, clinic_slug): + payload = { + "operationName": "GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": { + "requestId": request_id, + "clinicSlug": clinic_slug, + "locale": "cs", + }, + } + r = requests.post(GRAPHQL_URL, json=payload, headers=headers, timeout=40) + if r.status_code != 200: + safe_print(f"❌ HTTP {r.status_code} for {request_id}: {r.text}") + return None + return r.json().get("data", {}).get("request") + + +def insert_questionnaire(cur, req): + if not req: + return + + patient = req.get("extendedPatient") or {} + ecrf_data = req.get("ecrfFilledData") + created_at = fix_datetime(req.get("createdAt")) + updated_at = fix_datetime(req.get("updatedAt")) + + cur.execute(""" + INSERT INTO medevio_questionnaires ( + request_id, created_at, updated_at, user_note, ecrf_json + ) + VALUES (%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + updated_at = VALUES(updated_at), + user_note = VALUES(user_note), + ecrf_json = VALUES(ecrf_json), + updated_local = NOW() + """, ( + req.get("id"), + created_at, + updated_at, + req.get("userNote"), + json.dumps(ecrf_data, ensure_ascii=False), + )) + + safe_print(f" 💾 Stored questionnaire for {patient.get('surname','')} {patient.get('name','')}") + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # load list of requests from the table we just filled + with conn.cursor() as cur: + sql = """ + SELECT id, pacient_jmeno, pacient_prijmeni, createdAt, updatedAt, questionnaireprocessed + FROM pozadavky + WHERE (questionnaireprocessed IS NULL OR questionnaireprocessed < updatedAt) + """ + if CREATED_AFTER: + sql += " AND createdAt >= %s" + cur.execute(sql, (CREATED_AFTER,)) + else: + cur.execute(sql) + + rows = cur.fetchall() + + safe_print(f"📋 Found {len(rows)} requests needing questionnaire check.") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + safe_print(f"\n[{i}/{len(rows)}] 🔍 Fetching questionnaire for {req_id} ...") + + req = fetch_questionnaire(headers, req_id, CLINIC_SLUG) + if not req: + safe_print(" ⚠️ No questionnaire data found.") + continue + + with conn.cursor() as cur: + insert_questionnaire(cur, req) + cur.execute( + "UPDATE pozadavky SET questionnaireprocessed = NOW() WHERE id = %s", + (req_id,) + ) + conn.commit() + + time.sleep(0.6) + + conn.close() + safe_print("\n✅ Done! All questionnaires stored in MySQL table `medevio_questionnaires`.") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/12 Tower1/30 ReadConversation.py b/Medevio/12 Tower1/30 ReadConversation.py new file mode 100644 index 0000000..e1d73e9 --- /dev/null +++ b/Medevio/12 Tower1/30 ReadConversation.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import sys + +# UTF-8 SAFE OUTPUT +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + pass + +# ============================== +# CONFIG (.50) +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY_MESSAGES = r""" +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages(patientRequestId: $requestId, updatedSince: $updatedSince) { + id createdAt updatedAt readAt text type + sender { id name surname clinicId } + medicalRecord { id description contentType url downloadUrl createdAt updatedAt } + } +} +""" + +def parse_dt(s): + if not s: return None + try: return datetime.fromisoformat(s.replace("Z", "+00:00")) + except: return None + +def read_token(path: Path) -> str: + return path.read_text(encoding="utf-8").strip().replace("Bearer ", "") + +def main(): + token = read_token(TOKEN_PATH) + headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} + conn = pymysql.connect(**DB_CONFIG) + + # 1. Seznam již stažených příloh (prevence duplicit) + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {r["attachment_id"] for r in cur.fetchall()} + + # 2. Seznam požadavků k synchronizaci + with conn.cursor() as cur: + cur.execute(""" + SELECT id, messagesProcessed FROM pozadavky + WHERE messagesProcessed IS NULL OR messagesProcessed < updatedAt + """) + rows = cur.fetchall() + + print(f"📋 Počet požadavků k synchronizaci zpráv: {len(rows)}") + + for i, row in enumerate(rows, 1): + req_id = row["id"] + updated_since = row["messagesProcessed"] + if updated_since: + updated_since = updated_since.replace(microsecond=0).isoformat() + "Z" + + print(f"[{i}/{len(rows)}] Synchronizuji: {req_id}") + + payload = { + "operationName": "UseMessages_ListMessages", + "query": GRAPHQL_QUERY_MESSAGES, + "variables": {"requestId": req_id, "updatedSince": updated_since} + } + + try: + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + messages = r.json().get("data", {}).get("messages", []) or [] + + if messages: + with conn.cursor() as cur: + for msg in messages: + # Uložení zprávy + sender = msg.get("sender") or {} + sender_name = " ".join(filter(None, [sender.get("name"), sender.get("surname")])) + mr = msg.get("medicalRecord") or {} + + cur.execute(""" + INSERT INTO medevio_conversation ( + id, request_id, sender_name, sender_id, sender_clinic_id, + text, created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + text = VALUES(text), updated_at = VALUES(updated_at), read_at = VALUES(read_at) + """, ( + msg.get("id"), req_id, sender_name, sender.get("id"), sender.get("clinicId"), + msg.get("text"), parse_dt(msg.get("createdAt")), parse_dt(msg.get("readAt")), + parse_dt(msg.get("updatedAt")), mr.get("downloadUrl") or mr.get("url"), + mr.get("description"), mr.get("contentType") + )) + + # Uložení přílohy (pokud existuje a nemáme ji) + attachment_id = mr.get("id") + if attachment_id and attachment_id not in existing_ids: + url = mr.get("downloadUrl") or mr.get("url") + if url: + att_r = requests.get(url, timeout=30) + if att_r.status_code == 200: + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + """, ( + req_id, attachment_id, "MESSAGE_ATTACHMENT", + url.split("/")[-1].split("?")[0], mr.get("contentType"), + len(att_r.content), parse_dt(msg.get("createdAt")), att_r.content + )) + existing_ids.add(attachment_id) + + cur.execute("UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + else: + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + time.sleep(0.3) + except Exception as e: + print(f" ❌ Chyba u {req_id}: {e}") + + conn.close() + print("\n🎉 Delta sync zpráv a příloh DOKONČEN") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/12 Tower1/40 DownloadPrilohy.py b/Medevio/12 Tower1/40 DownloadPrilohy.py new file mode 100644 index 0000000..cd3d539 --- /dev/null +++ b/Medevio/12 Tower1/40 DownloadPrilohy.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Download all attachments for pozadavky where attachmentsProcessed IS NULL +Store them in MySQL table `medevio_downloads` on 192.168.1.50. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time +import sys + +# Force UTF-8 output +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + pass + + +# ============================== +# 🛡 SAFE PRINT +# ============================== +def safe_print(text: str): + enc = sys.stdout.encoding or "" + if not enc or not enc.lower().startswith("utf"): + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# 🔧 CONFIGURATION (.50) +# ============================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +CREATED_AFTER = "2024-12-01" + +GRAPHQL_QUERY = r""" +query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!) { + patientRequestMedicalRecords: listMedicalRecordsForPatientRequest( + attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT] + patientRequestId: $requestId + pageInfo: {first: 100, offset: 0} + ) { + attachmentType + id + medicalRecord { + contentType + description + downloadUrl + id + url + visibleToPatient + } + } +} +""" + + +def extract_filename_from_url(url: str) -> str: + try: + return url.split("/")[-1].split("?")[0] + except: + return "unknown_filename" + + +def read_token(p: Path) -> str: + tok = p.read_text(encoding="utf-8").strip() + return tok.split(" ", 1)[1] if tok.startswith("Bearer ") else tok + + +def main(): + token = read_token(TOKEN_PATH) + headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} + conn = pymysql.connect(**DB_CONFIG) + + # 1. Načtení ID již stažených příloh + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + + safe_print(f"✅ V databázi již máme {len(existing_ids)} příloh.") + + # 2. Výběr požadavků ke zpracování + sql = "SELECT id, pacient_prijmeni, pacient_jmeno, createdAt FROM pozadavky WHERE attachmentsProcessed IS NULL" + params = [] + if CREATED_AFTER: + sql += " AND createdAt >= %s" + params.append(CREATED_AFTER) + + with conn.cursor() as cur: + cur.execute(sql, params) + req_rows = cur.fetchall() + + safe_print(f"📋 Počet požadavků ke stažení příloh: {len(req_rows)}") + + for i, row in enumerate(req_rows, 1): + req_id = row["id"] + prijmeni = row.get("pacient_prijmeni") or "Neznamy" + created_date = row.get("createdAt") or datetime.now() + + safe_print(f"\n[{i}/{len(req_rows)}] 🧾 {prijmeni} ({req_id})") + + payload = { + "operationName": "ClinicRequestDetail_GetPatientRequest2", + "query": GRAPHQL_QUERY, + "variables": {"requestId": req_id}, + } + + try: + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + attachments = r.json().get("data", {}).get("patientRequestMedicalRecords", []) + + if attachments: + with conn.cursor() as cur: + for a in attachments: + m = a.get("medicalRecord") or {} + att_id = a.get("id") + + if att_id in existing_ids: + continue + + url = m.get("downloadUrl") + if url: + att_r = requests.get(url, timeout=30) + if att_r.status_code == 200: + content = att_r.content + filename = extract_filename_from_url(url) + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, + created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + """, (req_id, att_id, a.get("attachmentType"), filename, + m.get("contentType"), len(content), created_date, content)) + existing_ids.add(att_id) + safe_print(f" 💾 Uloženo: {filename} ({len(content) / 1024:.1f} kB)") + + conn.commit() + + # Označíme jako zpracované i když nebyly nalezeny žádné přílohy + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET attachmentsProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + time.sleep(0.3) + except Exception as e: + print(f" ❌ Chyba u {req_id}: {e}") + + conn.close() + safe_print("\n🎯 Všechny přílohy byly zpracovány.") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/12 Tower1/50 SaveToFileSystem incremental.py b/Medevio/12 Tower1/50 SaveToFileSystem incremental.py new file mode 100644 index 0000000..ee6925a --- /dev/null +++ b/Medevio/12 Tower1/50 SaveToFileSystem incremental.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime +from collections import defaultdict +import time +import sys + +# Force UTF-8 output even under Windows Task Scheduler +import sys +try: + sys.stdout.reconfigure(encoding='utf-8') + sys.stderr.reconfigure(encoding='utf-8') +except AttributeError: + # Python < 3.7 fallback (not needed for you, but safe) + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + +# ============================== +# 🛡 SAFE PRINT FOR CP1250 / EMOJI +# ============================== +def safe_print(text: str = ""): + enc = sys.stdout.encoding or "" + if not enc.lower().startswith("utf"): + # Strip emoji and characters outside BMP for Task Scheduler + text = ''.join(ch for ch in text if ord(ch) < 65536) + try: + print(text) + except UnicodeEncodeError: + # ASCII fallback + text = ''.join(ch for ch in text if ord(ch) < 128) + print(text) + + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def make_abbrev(title: str) -> str: + if not title: + return "" + words = re.findall(r"[A-Za-zÁ-Žá-ž0-9]+", title) + abbr = "" + for w in words: + if w.isdigit(): + abbr += w + else: + abbr += w[0] + return abbr.upper() + + +# ============================== +# 🧹 DELETE UNEXPECTED FILES +# ============================== +def clean_folder(folder: Path, valid_files: set): + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file(): + if f.name.startswith("▲"): + continue + sanitized = sanitize_name(f.name) + if sanitized not in valid_files: + safe_print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + safe_print(f"⚠️ Could not delete {f}: {e}") + + +# ============================== +# 📦 DB CONNECTION +# ============================== +conn = pymysql.connect(**DB_CONFIG) + +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +safe_print("🔍 Loading metadata from DB (FAST)…") + +cur_meta.execute(""" + SELECT d.id AS download_id, + d.request_id, + d.filename, + d.created_at, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni, + p.displayTitle + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + WHERE p.updatedAt >= DATE_SUB(NOW(), INTERVAL 14 DAY) + ORDER BY p.updatedAt DESC +""") + +rows = cur_meta.fetchall() +safe_print(f"📋 Found {len(rows)} attachment records.\n") + +# ============================== +# 🧠 MAIN LOOP WITH PROGRESS +# ============================== + +# Group rows by request_id in Python — avoids N extra SELECT filename queries +rows_by_request = defaultdict(list) +for r in rows: + rows_by_request[r["request_id"]].append(r) + +total_requests = len(rows_by_request) +safe_print(f"🔄 Processing {total_requests} unique requests...\n") + +# Pre-index BASE_DIR once — avoids iterdir() called twice per request +folder_list = [(f, f.name) for f in BASE_DIR.iterdir() if f.is_dir()] + +for current_index, (req_id, req_rows) in enumerate(rows_by_request.items(), 1): + percent = (current_index / total_requests) * 100 + safe_print(f"\n[ {percent:5.1f}% ] Processing request {current_index} / {total_requests} → {req_id}") + + # ========== VALID FILENAMES from already-loaded rows ========== + # original filename → sanitized name (needed for DB query later) + file_map = {sanitize_name(r["filename"]): r["filename"] for r in req_rows} + valid_files = set(file_map.keys()) + + # ========== BUILD FOLDER NAME ========== + r = req_rows[0] + updated_at = r["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(r["prijmeni"] or "Unknown") + jmeno = sanitize_name(r["jmeno"] or "") + title = r.get("displayTitle") or "" + abbr = make_abbrev(title) + + clean_folder_name = sanitize_name( + f"{date_str} {prijmeni}, {jmeno} [{abbr}] {req_id}" + ) + + # ========== DETECT EXISTING FOLDER from pre-built index ========== + req_id_str = str(req_id) + matching = [f for f, name in folder_list if req_id_str in name] + existing_folder = matching[0] if matching else None + + main_folder = existing_folder if existing_folder else BASE_DIR / clean_folder_name + + # ========== MERGE DUPLICATES ========== + possible_dups = [f for f, name in folder_list if req_id_str in name and f != main_folder] + + for dup in possible_dups: + safe_print(f"♻️ Merging duplicate folder: {dup.name}") + + clean_folder(dup, valid_files) + main_folder.mkdir(parents=True, exist_ok=True) + + for f in dup.iterdir(): + if f.is_file(): + target = main_folder / f.name + if not target.exists(): + f.rename(target) + + shutil.rmtree(dup, ignore_errors=True) + + # ========== CLEAN MAIN FOLDER ========== + clean_folder(main_folder, valid_files) + + # ========== DOWNLOAD MISSING FILES (batch blob fetch per request) ========== + main_folder.mkdir(parents=True, exist_ok=True) + added_new_file = False + + missing_san = [ + fn for fn in valid_files + if not (main_folder / fn).exists() and not (main_folder / ("▲" + fn)).exists() + ] + + if missing_san: + # Fetch all missing blobs in a single query instead of one per file + missing_orig = [file_map[fn] for fn in missing_san] + placeholders = ",".join(["%s"] * len(missing_orig)) + cur_blob.execute( + f"SELECT filename, file_content FROM medevio_downloads " + f"WHERE request_id=%s AND filename IN ({placeholders})", + [req_id] + missing_orig, + ) + for blob_filename, content in cur_blob.fetchall(): + if not content: + continue + dest_plain = main_folder / sanitize_name(blob_filename) + with open(dest_plain, "wb") as fh: + fh.write(content) + safe_print(f"💾 Wrote: {dest_plain.relative_to(BASE_DIR)}") + added_new_file = True + + # ========== REMOVE ▲ FLAG IF NEW FILES ADDED ========== + if added_new_file and "▲" in main_folder.name: + new_name = main_folder.name.replace("▲", "").strip() + new_path = main_folder.parent / new_name + + if new_path != main_folder: + try: + main_folder.rename(new_path) + safe_print(f"🔄 Folder flag ▲ removed → {new_name}") + main_folder = new_path + except Exception as e: + safe_print(f"⚠️ Could not rename folder: {e}") + +safe_print("\n🎯 Export complete.\n") + +cur_blob.close() +cur_meta.close() +conn.close() diff --git a/Medevio/12 Tower1/50 SaveToFileSystem single step.py b/Medevio/12 Tower1/50 SaveToFileSystem single step.py new file mode 100644 index 0000000..be2a042 --- /dev/null +++ b/Medevio/12 Tower1/50 SaveToFileSystem single step.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def clean_folder(folder: Path, valid_files: set): + """Remove files that do NOT exist in MySQL for this request.""" + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file() and sanitize_name(f.name) not in valid_files: + print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + print(f"⚠️ Cannot delete {f}: {e}") + + +# ============================== +# 📥 LOAD EVERYTHING IN ONE QUERY +# ============================== +conn = pymysql.connect(**DB_CONFIG) +cur = conn.cursor(pymysql.cursors.DictCursor) + +print("📥 Loading ALL metadata + BLOBs with ONE MySQL query…") + +cur.execute(""" + SELECT + d.id AS download_id, + d.request_id, + d.filename, + d.file_content, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + ORDER BY p.updatedAt DESC, d.created_at ASC +""") + +rows = cur.fetchall() +print(f"📦 Loaded {len(rows)} total file rows.\n") + +conn.close() + +# ============================== +# 🔄 ORGANIZE ROWS PER REQUEST +# ============================== +requests = {} # req_id → list of file dicts + +for r in rows: + req_id = r["request_id"] + if req_id not in requests: + requests[req_id] = [] + requests[req_id].append(r) + +print(f"📌 Unique requests: {len(requests)}\n") + +# ============================== +# 🧠 MAIN LOOP – SAME LOGIC AS BEFORE +# ============================== +for req_id, filelist in requests.items(): + + # ========== GET UPDATEDAT (same logic) ========== + any_row = filelist[0] + updated_at = any_row["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(any_row["prijmeni"] or "Unknown") + jmeno = sanitize_name(any_row["jmeno"] or "") + + folder_name = sanitize_name(f"{date_str} {prijmeni}, {jmeno} {req_id}") + main_folder = BASE_DIR / folder_name + + # ========== VALID FILES ========== + valid_files = {sanitize_name(r["filename"]) for r in filelist} + + # ========== FIND OLD FOLDERS ========== + possible_dups = [ + f for f in BASE_DIR.iterdir() + if f.is_dir() and req_id in f.name and f != main_folder + ] + + # ========== MERGE OLD FOLDERS ========== + for dup in possible_dups: + print(f"♻️ Merging folder: {dup.name}") + + clean_folder(dup, valid_files) + main_folder.mkdir(parents=True, exist_ok=True) + + for f in dup.iterdir(): + if f.is_file(): + target = main_folder / f.name + if not target.exists(): + f.rename(target) + + shutil.rmtree(dup, ignore_errors=True) + + # ========== CLEAN MAIN FOLDER ========== + main_folder.mkdir(parents=True, exist_ok=True) + clean_folder(main_folder, valid_files) + + # ========== SAVE FILES (fast now) ========== + for r in filelist: + filename = sanitize_name(r["filename"]) + dest = main_folder / filename + + if dest.exists(): + continue + + content = r["file_content"] + if not content: + continue + + with open(dest, "wb") as f: + f.write(content) + + print(f"💾 Saved: {dest.relative_to(BASE_DIR)}") + +print("\n🎯 Export complete.\n") diff --git a/Medevio/20SaveDownloads/10 SaveToFilesystem.py b/Medevio/20SaveDownloads/10 SaveToFilesystem.py new file mode 100644 index 0000000..075f45f --- /dev/null +++ b/Medevio/20SaveDownloads/10 SaveToFilesystem.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import zlib +import pymysql +import re +from pathlib import Path +from datetime import datetime + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +# ============================== +# 📦 STREAMING EXPORT WITH TRIANGLE CHECK +# ============================== +conn = pymysql.connect(**DB_CONFIG) +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +cur_meta.execute(""" + SELECT id, request_id, attachment_id, filename, pacient_jmeno, + pacient_prijmeni, created_at, downloaded_at + FROM medevio_downloads + WHERE file_content IS NOT NULL; +""") + +rows = cur_meta.fetchall() +print(f"📋 Found {len(rows)} records to check/export") + +skipped, exported = 0, 0 + +for r in rows: + try: + created = r["created_at"] or r["downloaded_at"] or datetime.now() + date_str = created.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(r["pacient_prijmeni"] or "Unknown") + jmeno = sanitize_name(r["pacient_jmeno"] or "") + + crc = f"{zlib.crc32(r['request_id'].encode('utf-8')) & 0xFFFFFFFF:08X}" + + # Base (non-triangle) and processed (triangle) folder variants + base_folder = sanitize_name(f"{date_str} {prijmeni}, {jmeno} {crc}") + tri_folder = sanitize_name(f"{date_str}▲ {prijmeni}, {jmeno} {crc}") + + base_path = BASE_DIR / base_folder + tri_path = BASE_DIR / tri_folder + + filename = sanitize_name(r["filename"] or f"unknown_{r['id']}.bin") + file_path_base = base_path / filename + file_path_tri = tri_path / filename + + # 🟡 Skip if exists in either version + if file_path_base.exists() or file_path_tri.exists(): + skipped += 1 + found_in = "▲" if file_path_tri.exists() else "" + print(f"⏭️ Skipping existing{found_in}: {filename}") + continue + + # Make sure base folder exists before saving + base_path.mkdir(parents=True, exist_ok=True) + + # 2️⃣ Fetch blob + cur_blob.execute("SELECT file_content FROM medevio_downloads WHERE id = %s", (r["id"],)) + blob = cur_blob.fetchone()[0] + + if blob: + with open(file_path_base, "wb") as f: + f.write(blob) + exported += 1 + print(f"✅ Saved: {file_path_base.relative_to(BASE_DIR)}") + else: + print(f"⚠️ No content for id={r['id']}") + + except Exception as e: + print(f"❌ Error for id={r['id']}: {e}") + +cur_blob.close() +cur_meta.close() +conn.close() + +print(f"\n🎯 Export complete — {exported} new files saved, {skipped} skipped.\n") diff --git a/Medevio/20SaveDownloads/20 SaveToFileSystem.py b/Medevio/20SaveDownloads/20 SaveToFileSystem.py new file mode 100644 index 0000000..fd636c4 --- /dev/null +++ b/Medevio/20SaveDownloads/20 SaveToFileSystem.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import zlib +import pymysql +import re +from pathlib import Path +from datetime import datetime + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"u:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +# ============================== +# 📦 EXPORT WITH JOIN TO POZADAVKY +# ============================== +conn = pymysql.connect(**DB_CONFIG) +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +# 🎯 JOIN medevio_downloads → pozadavky +cur_meta.execute(""" + SELECT d.id, d.request_id, d.attachment_id, d.filename, + d.created_at, d.downloaded_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + WHERE d.file_content IS NOT NULL; +""") + +rows = cur_meta.fetchall() +print(f"📋 Found {len(rows)} records to check/export") + +skipped, exported = 0, 0 + +for r in rows: + try: + created = r["created_at"] or r["downloaded_at"] or datetime.now() + date_str = created.strftime("%Y-%m-%d") + + # 👍 Now always correct from pozadavky + prijmeni = sanitize_name(r["prijmeni"] or "Unknown") + jmeno = sanitize_name(r["jmeno"] or "") + + # 🔥 Full request_id for folder identification + full_req_id = sanitize_name(r["request_id"]) + + # Folder names (normal and triangle) + base_folder = f"{date_str} {prijmeni}, {jmeno} {full_req_id}" + tri_folder = f"{date_str}▲ {prijmeni}, {jmeno} {full_req_id}" + + base_folder = sanitize_name(base_folder) + tri_folder = sanitize_name(tri_folder) + + base_path = BASE_DIR / base_folder + tri_path = BASE_DIR / tri_folder + + filename = sanitize_name(r["filename"] or f"unknown_{r['id']}.bin") + file_path_base = base_path / filename + file_path_tri = tri_path / filename + + # 🟡 Skip if file already exists + if file_path_base.exists() or file_path_tri.exists(): + skipped += 1 + found_in = "▲" if file_path_tri.exists() else "" + print(f"⏭️ Skipping existing{found_in}: {filename}") + continue + + # Ensure directory exists + base_path.mkdir(parents=True, exist_ok=True) + + # 2️⃣ Fetch blob content + cur_blob.execute( + "SELECT file_content FROM medevio_downloads WHERE id = %s", + (r["id"],) + ) + blob = cur_blob.fetchone()[0] + + if blob: + with open(file_path_base, "wb") as f: + f.write(blob) + exported += 1 + print(f"✅ Saved: {file_path_base.relative_to(BASE_DIR)}") + else: + print(f"⚠️ No content for id={r['id']}") + + except Exception as e: + print(f"❌ Error for id={r['id']}: {e}") + +cur_blob.close() +cur_meta.close() +conn.close() + +print(f"\n🎯 Export complete — {exported} new files saved, {skipped} skipped.\n") diff --git a/Medevio/30 ManipulacePoznámek/100 JednoducheCteni1poznamky.py b/Medevio/30 ManipulacePoznámek/100 JednoducheCteni1poznamky.py new file mode 100644 index 0000000..3d8b0ab --- /dev/null +++ b/Medevio/30 ManipulacePoznámek/100 JednoducheCteni1poznamky.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import requests +from pathlib import Path +import sys + +# UTF-8 safety +try: + sys.stdout.reconfigure(encoding='utf-8') +except: + pass + +# === CONFIG === + +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +GRAPHQL_URL = "https://api.medevio.cz/graphql" +REQUEST_ID = "e17536c4-ed22-4242-ada5-d03713e0b7ac" # požadavek který sledujeme + + +def read_token(path: Path) -> str: + t = path.read_text().strip() + if t.startswith("Bearer "): + return t.split(" ", 1)[1] + return t + + +# === QUERY === + +QUERY = r""" +query ClinicRequestNotes_Get($patientRequestId: String!) { + notes: getClinicPatientRequestNotes(requestId: $patientRequestId) { + id + content + createdAt + updatedAt + createdBy { + id + name + surname + } + } +} +""" + + +def run_query(request_id, token): + payload = { + "operationName": "ClinicRequestNotes_Get", + "query": QUERY, + "variables": {"patientRequestId": request_id}, + } + + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + r = requests.post(GRAPHQL_URL, json=payload, headers=headers) + r.raise_for_status() + + return r.json() + + +def main(): + token = read_token(TOKEN_PATH) + + print(f"🔍 Čtu interní klinické poznámky k požadavku {REQUEST_ID} ...\n") + + data = run_query(REQUEST_ID, token) + + notes = data.get("data", {}).get("notes", []) + if not notes: + print("📭 Žádné klinické poznámky nejsou uložené.") + return + + print(f"📌 Nalezeno {len(notes)} poznámek:\n") + + for n in notes: + print("──────────────────────────────") + print(f"🆔 ID: {n['id']}") + print(f"👤 Vytvořil: {n['createdBy']['surname']} {n['createdBy']['name']}") + print(f"📅 createdAt: {n['createdAt']}") + print(f"🕒 updatedAt: {n['updatedAt']}") + print("📝 Obsah:") + print(n['content']) + print("") + + +if __name__ == "__main__": + main() diff --git a/Medevio/30 ManipulacePoznámek/101 JednoducheDoplneniInterniPoznamky.py b/Medevio/30 ManipulacePoznámek/101 JednoducheDoplneniInterniPoznamky.py new file mode 100644 index 0000000..8a2a135 --- /dev/null +++ b/Medevio/30 ManipulacePoznámek/101 JednoducheDoplneniInterniPoznamky.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import requests +from pathlib import Path +import sys + +# UTF-8 handling +try: + sys.stdout.reconfigure(encoding='utf-8') +except: + pass + +# === CONFIG === + +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +REQUEST_ID = "e17536c4-ed22-4242-ada5-d03713e0b7ac" # požadavek +NOTE_PREPEND_TEXT = "🔥 NOVÝ TESTOVACÍ ŘÁDEK\n" # text, který se přidá NA ZAČÁTEK + + +# === Helpers === + +def read_token(p: Path) -> str: + t = p.read_text().strip() + if t.startswith("Bearer "): + return t.split(" ", 1)[1] + return t + + +# === Queries === + +QUERY_GET_NOTES = r""" +query ClinicRequestNotes_Get($patientRequestId: String!) { + notes: getClinicPatientRequestNotes(requestId: $patientRequestId) { + id + content + createdAt + updatedAt + createdBy { + id + name + surname + } + } +} +""" + +MUTATION_UPDATE_NOTE = r""" +mutation ClinicRequestNotes_Update($noteInput: UpdateClinicPatientRequestNoteInput!) { + updateClinicPatientRequestNote(noteInput: $noteInput) { + id + } +} +""" + + +# === Core functions === + +def gql(query, variables, token): + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + payload = {"query": query, "variables": variables} + + r = requests.post(GRAPHQL_URL, json=payload, headers=headers) + r.raise_for_status() + return r.json() + + +def get_internal_note(request_id, token): + data = gql(QUERY_GET_NOTES, {"patientRequestId": request_id}, token) + notes = data.get("data", {}).get("notes", []) + return notes[0] if notes else None + + +def update_internal_note(note_id, new_content, token): + variables = {"noteInput": {"id": note_id, "content": new_content}} + return gql(MUTATION_UPDATE_NOTE, variables, token) + + +# === MAIN === + +def main(): + token = read_token(TOKEN_PATH) + + print(f"🔍 Načítám interní poznámku pro požadavek {REQUEST_ID}...\n") + + note = get_internal_note(REQUEST_ID, token) + if not note: + print("❌ Nebyla nalezena žádná interní klinická poznámka!") + return + + note_id = note["id"] + old_content = note["content"] or "" + + print("📄 Původní obsah:") + print(old_content) + print("────────────────────────────\n") + + # =============================== + # PREPEND new text + # =============================== + new_content = NOTE_PREPEND_TEXT + old_content + + print("📝 Nový obsah který odešlu:") + print(new_content) + print("────────────────────────────\n") + + # UPDATE + result = update_internal_note(note_id, new_content, token) + + print(f"✅ Hotovo! Poznámka {note_id} aktualizována.") + print(result) + + +if __name__ == "__main__": + main() diff --git a/Medevio/30 ManipulacePoznámek/102 Zapiš ID request do nejnovějšího otevřeného požadavku.py b/Medevio/30 ManipulacePoznámek/102 Zapiš ID request do nejnovějšího otevřeného požadavku.py new file mode 100644 index 0000000..fd89f5b --- /dev/null +++ b/Medevio/30 ManipulacePoznámek/102 Zapiš ID request do nejnovějšího otevřeného požadavku.py @@ -0,0 +1,261 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import requests +import mysql.connector +from pathlib import Path +import sys +from datetime import datetime + +# UTF-8 handling +try: + sys.stdout.reconfigure(encoding='utf-8') +except: + pass + +# === KONFIGURACE === + +# --- Medevio API --- +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +# --- ZPRACOVÁNÍ --- +# Zadejte počet požadavků ke zpracování. +# 0 znamená zpracovat VŠECHNY nesynchronizované požadavky. +PROCESS_LIMIT = 10 # <-- Používáme PROCESS_LIMIT + +# --- MySQL DB --- +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", +} + + +# === Helpers === + +def read_token(p: Path) -> str: + """Načte Bearer token z textového souboru.""" + t = p.read_text().strip() + if t.startswith("Bearer "): + return t.split(" ", 1)[1] + return t + + +# === DB Funkce === + +def get_requests_to_process_from_db(limit): + """ + Získá seznam požadavků (ID, Titul, Jméno, Příjmení) k synchronizaci z MySQL. + Použije LIMIT, pokud limit > 0. + """ + if limit == 0: + print("🔍 Připojuji se k MySQL a hledám **VŠECHNY** nesynchronizované požadavky...") + else: + print(f"🔍 Připojuji se k MySQL a hledám **{limit}** nesynchronizovaných požadavků...") + + requests_list = [] + conn = None + try: + conn = mysql.connector.connect(**DB_CONFIG) + cursor = conn.cursor() + + # Základní SQL dotaz + query = """ + SELECT id, displayTitle, pacient_jmeno, pacient_prijmeni + FROM pozadavky + WHERE doneAt IS NULL + AND noteSyncedAt IS NULL + ORDER BY updatedAt DESC + """ + + # Podmíněné přidání LIMIT klauzule + if limit > 0: + query += f"LIMIT {limit};" + else: + query += ";" + + cursor.execute(query) + results = cursor.fetchall() + + for result in results: + request_id, display_title, jmeno, prijmeni = result + requests_list.append({ + "id": request_id, + "displayTitle": display_title, + "jmeno": jmeno, + "prijmeni": prijmeni + }) + + cursor.close() + + if requests_list: + print(f"✅ Nalezeno {len(requests_list)} požadavků ke zpracování.") + else: + print("❌ Nebyl nalezen žádný nesynchronizovaný otevřený požadavek v DB.") + + return requests_list + + except mysql.connector.Error as err: + print(f"❌ Chyba při připojení/dotazu MySQL: {err}") + return [] + finally: + if conn and conn.is_connected(): + conn.close() + + +def update_db_sync_time(request_id, conn): + """Aktualizuje sloupec noteSyncedAt v tabulce pozadavky. Používá existující připojení.""" + cursor = conn.cursor() + + current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + + update_query = """ + UPDATE pozadavky + SET noteSyncedAt = %s + WHERE id = %s; + """ + + cursor.execute(update_query, (current_time, request_id)) + conn.commit() + + cursor.close() + print(f" (DB: Čas synchronizace pro {request_id} uložen)") + + +# === GraphQL Operace (Beze Změny) === + +QUERY_GET_NOTE = r""" +query ClinicRequestNotes_Get($patientRequestId: String!) { + notes: getClinicPatientRequestNotes(requestId: $patientRequestId) { + id + content + } +} +""" + +MUTATION_UPDATE_NOTE = r""" +mutation ClinicRequestNotes_Update($noteInput: UpdateClinicPatientRequestNoteInput!) { + updateClinicPatientRequestNote(noteInput: $noteInput) { + id + } +} +""" + +MUTATION_CREATE_NOTE = r""" +mutation ClinicRequestNotes_Create($noteInput: CreateClinicPatientRequestNoteInput!) { + createClinicPatientRequestNote(noteInput: $noteInput) { + id + } +} +""" + + +def gql(query, variables, token): + """Obecná funkce pro volání GraphQL endpointu.""" + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + payload = {"query": query, "variables": variables} + + r = requests.post(GRAPHQL_URL, json=payload, headers=headers) + r.raise_for_status() + return r.json() + + +def get_internal_note(request_id, token): + """Získá jedinou interní poznámku (obsah a ID) pro daný požadavek.""" + data = gql(QUERY_GET_NOTE, {"patientRequestId": request_id}, token) + notes = data.get("data", {}).get("notes", []) + return notes[0] if notes else None + + +def update_internal_note(note_id, new_content, token): + """Aktualizuje obsah poznámky v Medeviu.""" + variables = {"noteInput": {"id": note_id, "content": new_content}} + return gql(MUTATION_UPDATE_NOTE, variables, token) + + +def create_internal_note(request_id, content, token): + """Vytvoří novou interní poznámku k požadavku v Medeviu.""" + variables = {"noteInput": {"requestId": request_id, "content": content}} + return gql(MUTATION_CREATE_NOTE, variables, token) + + +# === MAIN === + +def main(): + token = read_token(TOKEN_PATH) + + # 1. Získat seznam ID požadavků ke zpracování (používáme PROCESS_LIMIT) + requests_to_process = get_requests_to_process_from_db(PROCESS_LIMIT) + + if not requests_to_process: + return + + # Pro update DB time otevřeme připojení jednou a použijeme ho v cyklu + conn = mysql.connector.connect(**DB_CONFIG) + + print("\n=============================================") + print(f"START ZPRACOVÁNÍ {len(requests_to_process)} POŽADAVKŮ") + print("=============================================\n") + + for idx, request in enumerate(requests_to_process, 1): + request_id = request["id"] + + print( + f"[{idx}/{len(requests_to_process)}] Zpracovávám požadavek: {request['prijmeni']} {request['jmeno']} (ID: {request_id})") + + # 2. Vytvořit text, který chceme přidat/vytvořit + prepend_text = f"ID: {request_id}\n" + + # 3. Pokusit se získat existující interní poznámku z Medevia + note = get_internal_note(request_id, token) + + medevio_update_success = False + + if note: + # A) POZNÁMKA EXISTUJE -> AKTUALIZOVAT + note_id = note["id"] + old_content = note["content"] or "" + new_content = prepend_text + old_content + + try: + # Odeslání aktualizace + update_internal_note(note_id, new_content, token) + print(f" (Medevio: Poznámka {note_id} **aktualizována**.)") + medevio_update_success = True + except requests.exceptions.HTTPError as e: + print(f" ❌ Chyba při aktualizaci Medevio API: {e}") + + else: + # B) POZNÁMKA NEEXISTUJE -> VYTVOŘIT + new_content = prepend_text.strip() + + try: + # Odeslání vytvoření + result = create_internal_note(request_id, new_content, token) + new_note_id = result.get("data", {}).get("createClinicPatientRequestNote", {}).get("id", "N/A") + print(f" (Medevio: Nová poznámka {new_note_id} **vytvořena**.)") + medevio_update_success = True + except requests.exceptions.HTTPError as e: + print(f" ❌ Chyba při vytváření Medevio API: {e}") + + # 4. AKTUALIZACE ČASOVÉHO RAZÍTKA V DB + if medevio_update_success: + update_db_sync_time(request_id, conn) + + print("---------------------------------------------") + + # Uzavřeme připojení k DB po dokončení cyklu + if conn and conn.is_connected(): + conn.close() + print("\n✅ Všechny požadavky zpracovány. Připojení k DB uzavřeno.") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py b/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py new file mode 100644 index 0000000..35fd17a --- /dev/null +++ b/Medevio/40 agenda a požadavky/Report_AgendaPozadavky.py @@ -0,0 +1,313 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Full Medevio Report: +- Agenda (API, next 30 days) +- Otevřené požadavky (MySQL) +- Merged (Agenda + Open, deduplicated) +- Vaccine sheets (from merged data) +""" + +import re +import json +import pymysql +import requests +import pandas as pd +from pathlib import Path +from datetime import datetime +from dateutil import parser, tz +from dateutil.relativedelta import relativedelta +from openpyxl import load_workbook +from openpyxl.styles import Font, Alignment, PatternFill, Border, Side +from openpyxl.utils import get_column_letter +from openpyxl.utils.dataframe import dataframe_to_rows + +# ==================== CONFIG ==================== +GRAPHQL_URL = "https://api.medevio.cz/graphql" +CALENDAR_ID = "144c4e12-347c-49ca-9ec0-8ca965a4470d" +CLINIC_SLUG = "mudr-buzalkova" + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3306, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +EXPORT_DIR = Path(r"u:\Dropbox\Ordinace\Reporty") +EXPORT_DIR.mkdir(exist_ok=True, parents=True) + +# Delete previous reports +for old in EXPORT_DIR.glob("* Agenda + Požadavky.xlsx"): + old.unlink() + print(f"🗑️ Deleted old report: {old.name}") + +timestamp = datetime.now().strftime("%Y-%m-%d %H-%M-%S") +xlsx_path = EXPORT_DIR / f"{timestamp} Agenda + Požadavky.xlsx" + +# ==================== LOAD TOKEN ==================== +TOKEN_PATH = Path(__file__).resolve().parent.parent / "token.txt" +gateway_token = TOKEN_PATH.read_text(encoding="utf-8").strip() + +headers = { + "content-type": "application/json", + "authorization": f"Bearer {gateway_token}", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} + +# ==================== STYLING ==================== +widths = {1: 11, 2: 13, 3: 45, 4: 30, 5: 15, 6: 15, 7: 30, 8: 15, 9: 37, 10: 37} +header_fill = PatternFill("solid", fgColor="FFFF00") +alt_fill = PatternFill("solid", fgColor="F2F2F2") +thin_border = Border( + left=Side(style="thin", color="000000"), + right=Side(style="thin", color="000000"), + top=Side(style="thin", color="000000"), + bottom=Side(style="thin", color="000000"), +) + + +REQUEST_URL_TEMPLATE = "https://my.medevio.cz/mudr-buzalkova/klinika/pozadavky?pozadavek={}" +link_font = Font(color="0563C1", underline="single") + + +def format_ws(ws, df): + """Apply unified formatting to a worksheet.""" + # Find Request_ID column index (1-based) + req_id_col = None + columns = list(df.columns) + if "Request_ID" in columns: + req_id_col = columns.index("Request_ID") + 1 + + for col_idx in range(1, len(df.columns) + 1): + col_letter = get_column_letter(col_idx) + cell = ws.cell(row=1, column=col_idx) + cell.font = Font(bold=True) + cell.alignment = Alignment(horizontal="center", vertical="center") + cell.fill = header_fill + cell.value = str(cell.value).upper() + cell.border = thin_border + ws.column_dimensions[col_letter].width = widths.get(col_idx, 20) + for r_idx, row in enumerate(ws.iter_rows(min_row=2, max_row=ws.max_row), start=2): + for cell in row: + cell.border = thin_border + if r_idx % 2 == 0: + cell.fill = alt_fill + # Add hyperlink to Request_ID cells + if req_id_col and cell.column == req_id_col and cell.value: + cell.hyperlink = REQUEST_URL_TEMPLATE.format(cell.value) + cell.font = link_font + ws.freeze_panes = "A2" + ws.auto_filter.ref = ws.dimensions + + +# ==================== 1️⃣ LOAD AGENDA (API) ==================== +print("📡 Querying Medevio API for agenda...") + +dnes = datetime.utcnow().date() +since = datetime.combine(dnes, datetime.min.time()) +until = since + relativedelta(months=1) + +payload = { + "operationName": "ClinicAgenda_ListClinicReservations", + "variables": { + "calendarIds": [CALENDAR_ID], + "clinicSlug": CLINIC_SLUG, + "since": since.isoformat() + "Z", + "until": until.isoformat() + "Z", + "locale": "cs", + "emptyCalendarIds": False, + }, + "query": """query ClinicAgenda_ListClinicReservations( + $calendarIds: [UUID!], $clinicSlug: String!, + $locale: Locale!, $since: DateTime!, $until: DateTime!, + $emptyCalendarIds: Boolean! + ) { + reservations: listClinicReservations( + clinicSlug: $clinicSlug, calendarIds: $calendarIds, + since: $since, until: $until + ) @skip(if: $emptyCalendarIds) { + id start end note done color + request { + id displayTitle(locale: $locale) + extendedPatient { + name surname dob insuranceCompanyObject { shortName } + } + } + } + }""", +} + +r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +r.raise_for_status() +resp = r.json() +if "errors" in resp or "data" not in resp: + print("❌ API response:") + print(json.dumps(resp, indent=2, ensure_ascii=False)) + raise SystemExit("API call failed - check token or query.") +reservations = resp["data"]["reservations"] + +rows = [] +for r in reservations: + req = r.get("request") or {} + patient = req.get("extendedPatient") or {} + insurance = patient.get("insuranceCompanyObject") or {} + try: + start_dt = parser.isoparse(r.get("start")).astimezone(tz.gettz("Europe/Prague")) + end_dt = parser.isoparse(r.get("end")).astimezone(tz.gettz("Europe/Prague")) + except Exception: + start_dt = end_dt = None + date_str = start_dt.strftime("%Y-%m-%d") if start_dt else "" + time_interval = ( + f"{start_dt.strftime('%H:%M')}-{end_dt.strftime('%H:%M')}" + if start_dt and end_dt + else "" + ) + rows.append( + { + "Date": date_str, + "Time": time_interval, + "Title": req.get("displayTitle") or "", + "Patient": f"{patient.get('surname','')} {patient.get('name','')}".strip(), + "DOB": patient.get("dob") or "", + "Insurance": insurance.get("shortName") or "", + "Note": r.get("note") or "", + "Color": r.get("color") or "", + "Request_ID": req.get("id") or "", + "Reservation_ID": r.get("id"), + } + ) + +df_agenda = pd.DataFrame(rows).sort_values(["Date", "Time"]) +print(f"✅ Loaded {len(df_agenda)} agenda rows.") + + +# ==================== 2️⃣ LOAD OPEN REQUESTS (MySQL) ==================== +print("📡 Loading open requests from MySQL...") +conn = pymysql.connect(**DB_CONFIG) +with conn.cursor() as cur: + cur.execute( + """ + SELECT + id AS Request_ID, + displayTitle AS Title, + pacient_prijmeni AS Pacient_Prijmeni, + pacient_jmeno AS Pacient_Jmeno, + pacient_rodnecislo AS DOB, + createdAt AS Created + FROM pozadavky + WHERE doneAt IS NULL AND removedAt IS NULL + ORDER BY createdAt DESC + """ + ) + rows = cur.fetchall() +conn.close() + +df_open = pd.DataFrame(rows) +if not df_open.empty: + df_open["Patient"] = ( + df_open["Pacient_Prijmeni"].fillna("") + + " " + + df_open["Pacient_Jmeno"].fillna("") + ).str.strip() + df_open["Date"] = df_open["Created"].astype(str).str[:10] + df_open["Time"] = "" + df_open["Insurance"] = "" + df_open["Note"] = "" + df_open["Color"] = "" + df_open["Reservation_ID"] = "" + df_open = df_open[ + [ + "Date", + "Time", + "Title", + "Patient", + "DOB", + "Insurance", + "Note", + "Color", + "Request_ID", + "Reservation_ID", + ] + ] +print(f"✅ Loaded {len(df_open)} open requests.") + + +# ==================== 3️⃣ MERGE + DEDUPLICATE ==================== +print("🟢 Merging and deduplicating (Agenda preferred)...") + +df_agenda["Source"] = "Agenda" +df_open["Source"] = "Open" + +df_merged = pd.concat([df_agenda, df_open], ignore_index=True).fillna("") +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" +) + +df_merged = df_merged.drop(columns=["Source"], errors="ignore") +df_merged = df_merged.sort_values(["Date", "Time"], na_position="last").reset_index( + drop=True +) +print(f"✅ Total merged rows after deduplication: {len(df_merged)}") + + +# ==================== 4️⃣ WRITE BASE SHEETS ==================== +with pd.ExcelWriter(xlsx_path, engine="openpyxl") as writer: + df_agenda.to_excel(writer, sheet_name="Agenda", index=False) + df_open.to_excel(writer, sheet_name="Otevřené požadavky", index=False) + df_merged.to_excel(writer, sheet_name="Merged", index=False) + +wb = load_workbook(xlsx_path) +for name, df_ref in [ + ("Agenda", df_agenda), + ("Otevřené požadavky", df_open), + ("Merged", df_merged), +]: + ws = wb[name] + format_ws(ws, df_ref) + + +# ==================== 5️⃣ VACCINE SHEETS (from MERGED) ==================== +VACCINE_SHEETS = { + "Chřipka": ["očkování", "chřipka"], + "COVID": ["očkování", "covid"], + "Pneumokok": ["očkování", "pneumo"], + "Hep A": ["očkování", "žloutenka a"], + "Hep B": ["očkování", "žloutenka b"], + "Hep A+B": ["očkování", "žloutenka a+b"], + "Klíšťovka": ["očkování", "klíšť"], +} + + +def kw_pattern(kw): + return rf"(? '{new_name}'") + folder.rename(new_folder_path) + except Exception as e: + print(f"Could not rename {original_name}: {e}") + + +if __name__ == "__main__": + rename_folders() \ No newline at end of file diff --git a/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_pdf.py b/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_pdf.py new file mode 100644 index 0000000..18b0a88 --- /dev/null +++ b/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_pdf.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Compress PDF — output DPI and JPEG quality are chosen automatically +based on the detected resolution of the source PDF. + +Usage: python compress_pdf.py [output.pdf] + python compress_pdf.py (processes all PDFs in current folder) +Output filename: original_name (139 kB).pdf +""" + +import sys +import fitz +from pathlib import Path + +# ============================== +# COMPRESSION TABLE +# Detected source DPI -> (output DPI, JPEG quality) +# Rows are evaluated top-to-bottom; first match wins. +# ============================== +# +# src_dpi_min src_dpi_max out_dpi jpeg_quality +COMPRESSION_TABLE = [ + ( 0, 99, 72, 60), # very low res — already small, compress hard + ( 100, 149, 100, 70), # low res + ( 150, 249, 150, 80), # standard scan (our tested sweet spot) + ( 250, 399, 150, 80), # good scan — downsample to 150 is fine + ( 400, 599, 200, 85), # high res scan + ( 600, 9999, 150, 80), # very high res / professional scan +] + + +def detect_source_dpi(src: fitz.Document) -> int: + """Estimate source DPI from the largest image on the first page.""" + page = src[0] + images = page.get_images(full=True) + if not images: + return 150 # no raster images — use default + + # Find the largest image by pixel area + best = max(images, key=lambda img: img[2] * img[3]) # width * height + img_w_px, img_h_px = best[2], best[3] + + # Page size in inches (1 point = 1/72 inch) + page_w_in = page.rect.width / 72.0 + page_h_in = page.rect.height / 72.0 + + dpi_x = img_w_px / page_w_in if page_w_in else 0 + dpi_y = img_h_px / page_h_in if page_h_in else 0 + return round((dpi_x + dpi_y) / 2) + + +def pick_settings(source_dpi: int) -> tuple[int, int]: + for min_dpi, max_dpi, out_dpi, quality in COMPRESSION_TABLE: + if min_dpi <= source_dpi <= max_dpi: + return out_dpi, quality + # fallback to last row + return COMPRESSION_TABLE[-1][2], COMPRESSION_TABLE[-1][3] + + +def compress(input_path: Path, output_path: Path = None): + src = fitz.open(input_path) + + source_dpi = detect_source_dpi(src) + out_dpi, jpeg_quality = pick_settings(source_dpi) + + print(f" zdroj ~{source_dpi} DPI -> komprese {out_dpi} DPI / JPEG q{jpeg_quality}") + + zoom = out_dpi / 72.0 + mat = fitz.Matrix(zoom, zoom) + + out_doc = fitz.open() + for page in src: + pix = page.get_pixmap(matrix=mat, colorspace=fitz.csRGB) + img_bytes = pix.tobytes("jpeg", jpg_quality=jpeg_quality) + img_doc = fitz.open("pdf", fitz.open("jpeg", img_bytes).convert_to_pdf()) + rect = page.rect + new_page = out_doc.new_page(width=rect.width, height=rect.height) + new_page.show_pdf_page(new_page.rect, img_doc, 0) + src.close() + + tmp = input_path.with_suffix(".tmp.pdf") + out_doc.save(tmp, deflate=True, garbage=4) + out_doc.close() + + size_kb = round(tmp.stat().st_size / 1024) + + if output_path is None: + output_path = input_path.parent / f"{input_path.stem} ({size_kb} kB).pdf" + + if output_path.exists(): + output_path.unlink() + tmp.rename(output_path) + + orig_kb = round(input_path.stat().st_size / 1024) + saving = (1 - size_kb / orig_kb) * 100 + print(f" {input_path.name} -> {output_path.name} (bylo {orig_kb} kB, uspora {saving:.0f}%)") + + +if __name__ == "__main__": + if len(sys.argv) >= 2: + inp = Path(sys.argv[1]) + out = Path(sys.argv[2]) if len(sys.argv) >= 3 else None + compress(inp, out) + else: + folder = Path(__file__).parent + pdfs = [p for p in folder.glob("*.pdf") if not p.name.endswith(").pdf") and p.stem != Path(__file__).stem] + if not pdfs: + print("Zadne PDF k zpracovani.") + for pdf in pdfs: + compress(pdf) diff --git a/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_variants.py b/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_variants.py new file mode 100644 index 0000000..227092a --- /dev/null +++ b/Medevio/50 Různé testy/MinimizeOptimizePDF/compress_variants.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Compress a PDF into multiple variants at different DPI / JPEG quality settings. +Uses PyMuPDF (fitz) — renders each page as JPEG image, saves back as PDF. +""" + +import sys +import fitz # PyMuPDF +from pathlib import Path + +INPUT = Path(r"u:\Medevio\50 Různé testy\MinimizeOptimizePDF\afd1823b-8277-44a2-84e1-db89a0ccd134.pdf") +OUT_DIR = INPUT.parent + +VARIANTS = [ + # (label, dpi, jpeg_quality) + ("300dpi_q90", 300, 90), + ("200dpi_q85", 200, 85), + ("150dpi_q80", 150, 80), + ("120dpi_q75", 120, 75), + ("96dpi_q70", 96, 70), + ("72dpi_q60", 72, 60), +] + +src = fitz.open(INPUT) +original_size = INPUT.stat().st_size +print(f"Originál: {INPUT.name} ({original_size / 1024:.0f} KB)\n") +print(f"{'Varianta':<20} {'DPI':>5} {'Kvalita':>8} {'Velikost':>12} {'Úspora':>8}") +print("-" * 58) + +for label, dpi, quality in VARIANTS: + out_path = OUT_DIR / f"{INPUT.stem}_{label}.pdf" + zoom = dpi / 72.0 + mat = fitz.Matrix(zoom, zoom) + + out_doc = fitz.open() + for page in src: + pix = page.get_pixmap(matrix=mat, colorspace=fitz.csRGB) + img_bytes = pix.tobytes("jpeg", jpg_quality=quality) + + # Create a new PDF page with the same physical dimensions + img_doc = fitz.open("pdf", fitz.open("jpeg", img_bytes).convert_to_pdf()) + # Scale page back to original size + rect = page.rect + new_page = out_doc.new_page(width=rect.width, height=rect.height) + new_page.show_pdf_page(new_page.rect, img_doc, 0) + + out_doc.save(out_path, deflate=True, garbage=4) + out_doc.close() + + size = out_path.stat().st_size + size_kb = round(size / 1024) + final_path = OUT_DIR / f"{INPUT.stem}_{label} ({size_kb} kB).pdf" + out_path.rename(final_path) + + saving = (1 - size / original_size) * 100 + print(f"{label:<20} {dpi:>5} {quality:>8} {size_kb:>9} kB {saving:>7.0f}%") + +src.close() +print("\nHotovo.") diff --git a/Medevio/60 ScansProcessing/CLAUDE.md b/Medevio/60 ScansProcessing/CLAUDE.md new file mode 100644 index 0000000..7ae0874 --- /dev/null +++ b/Medevio/60 ScansProcessing/CLAUDE.md @@ -0,0 +1,46 @@ +# 60 ScansProcessing + +Agent pro zpracování naskenovaných lékařských zpráv (PDF i JPG/PNG). + +## Skripty + +### `extract_patient_info.py` — hlavní agent +Spuštění: `python extract_patient_info.py` (bez argumentů = celá složka ToProcess) + +**Workflow:** +1. Načte soubory z `ToProcess/` +2. Claude Vision API (sonnet-4-6) extrahuje: jméno, RČ, datum, typ dokumentu, poznámku, navržený název, rotaci +3. Ověří pacienta v Medicus Firebird (tabulka KAR, pole RODCIS/PRIJMENI/JMENO) +4. Fuzzy matching RČ při nenalezení: vynechání cifry + záměna podobných (0↔8, 1↔7, 5↔6, 3↔8) + checksum /11 +5. Upozorní na duplicitu v `U:\Dropbox\Ordinace\Dokumentace_zpracovaná\` +6. Interaktivní schválení / oprava názvu +7. JPG/PNG → skutečné PDF (správná orientace, DPI=150, quality=80) +8. Přesun do `Processed/`, smazání z `ToProcess/` +9. Opravy názvů se ukládají do `corrections.json` jako few-shot příklady + +**Formát názvu souboru:** +`{RČ} {YYYY-MM-DD} {Příjmení}, {Jméno} [{typ dokumentu}] [{poznámka}].pdf` + +Příklady typů: `LZ chirurgie`, `LZ kardiologie`, `Laboratoř`, `CT břicha`, `kolonoskopie`, `poukaz FT` + +### `jpg_to_pdf.py` — konverze obrázku na PDF +``` +python jpg_to_pdf.py soubor.jpg [vystup.pdf] [rotace_ccw] +``` +- Opravuje EXIF orientaci +- Rotace: 0 / 90 / 180 / 270 (CCW) +- A4, DPI=150, quality=80, bez okrajů +- Používá se i interně z `extract_patient_info.py` + +## Složky + +| Složka | Účel | +|---|---| +| `ToProcess/` | Sem se házejí nové skeny (PDF, JPG, PNG) | +| `Processed/` | Správně pojmenované PDF po schválení | +| `U:\Dropbox\Ordinace\Dokumentace_zpracovaná\` | Finální archiv | + +## Konfigurace +- API klíč: `U:\Medevio\.env` → `ANTHROPIC_API_KEY` +- Medicus: `localhost:c:\medicus 3\data\medicus.fdb` (Firebird, SYSDBA) +- Few-shot korekce: `corrections.json` diff --git a/Medevio/60 ScansProcessing/Testy/extract_patient_info.py b/Medevio/60 ScansProcessing/Testy/extract_patient_info.py new file mode 100644 index 0000000..6867c17 --- /dev/null +++ b/Medevio/60 ScansProcessing/Testy/extract_patient_info.py @@ -0,0 +1,577 @@ +""" +Agent pro extrakci a pojmenování naskenovaných PDF lékařských zpráv. +- Claude Vision API — bez OCR, správná čeština s diakritikou +- Ověření pacienta proti Medicus (KAR), fuzzy matching RČ +- Interaktivní schválení / oprava názvu +- Few-shot learning z uložených korekcí +""" + +import base64 +import gc +import io +import json +import os +import re +import shutil +import subprocess +import sys +import time +from pathlib import Path + +# Windows: nastav stdout/stderr na UTF-8 +if sys.platform == "win32": + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace") + +import anthropic +from pdf2image import convert_from_path + +sys.path.insert(0, str(Path(__file__).parent.parent)) +from Knihovny.najdi_dropbox import get_dropbox_root +from Knihovny.najdi_medicus import get_medicus_config + +POPPLER_PATH = r"C:/Poppler/Library/bin" +CORRECTIONS_FILE = Path(__file__).parent / "corrections.json" +_DROPBOX = Path(get_dropbox_root()) +TO_PROCESS = _DROPBOX / r"Ordinace\Dokumentace_ke_zpracování\Ricoh Fi-8040\KeZpracování" +PROCESSED = _DROPBOX / r"Ordinace\Dokumentace_ke_zpracování\Ricoh Fi-8040\Zpracováno" +DOKUMENTACE = _DROPBOX / r"Ordinace\Dokumentace_zpracovaná" + + +# ─── Konfigurace ────────────────────────────────────────────────────────────── + +def _load_env(): + env_path = Path(__file__).parent.parent / ".env" + if env_path.exists(): + for line in env_path.read_text(encoding="utf-8").splitlines(): + line = line.strip() + if "=" in line and not line.startswith("#"): + k, v = line.split("=", 1) + os.environ[k.strip()] = v.strip() + +_load_env() + + +# ─── Korekce (few-shot příklady) ────────────────────────────────────────────── + +def load_corrections() -> list[dict]: + if CORRECTIONS_FILE.exists(): + return json.loads(CORRECTIONS_FILE.read_text(encoding="utf-8")) + return [] + +def save_correction(original: str, corrected: str): + corrections = load_corrections() + for c in corrections: + if c["original"] == original and c["corrected"] == corrected: + return + corrections.append({"original": original, "corrected": corrected}) + CORRECTIONS_FILE.write_text( + json.dumps(corrections, ensure_ascii=False, indent=2), encoding="utf-8" + ) + print(f" ✓ Korekce uložena ({len(corrections)} celkem)") + +def build_corrections_prompt() -> str: + corrections = load_corrections() + if not corrections: + return "" + lines = ["Příklady korekcí z minulých běhů (uč se z nich):"] + for c in corrections[-10:]: + lines.append(f' - špatně: "{c["original"]}"') + lines.append(f' správně: "{c["corrected"]}"') + return "\n".join(lines) + "\n\n" + + +# ─── Kontrola duplicit ─────────────────────────────────────────────────────── + +def check_duplicates(rc: str, datum: str) -> list[str]: + """ + Hledá v Dokumentace_zpracovaná soubory se stejným RČ a datem. + Vrátí seznam názvů nalezených souborů. + """ + if not DOKUMENTACE.exists(): + return [] + prefix = f"{rc} {datum}" + return [f.name for f in DOKUMENTACE.iterdir() if f.name.startswith(prefix)] + + +# ─── Medicus ověření ────────────────────────────────────────────────────────── + +def _medicus_connect(): + try: + import fdb + cfg = get_medicus_config() + return fdb.connect( + dsn=cfg.dsn, + user="SYSDBA", password="masterkey", charset="win1250" + ) + except Exception as e: + print(f" [Medicus] Nepřipojeno: {e}") + return None + +def _lookup_by_rc(cur, rc_digits: str) -> dict | None: + """Přesné vyhledání podle RČ (bez lomítka).""" + cur.execute( + "SELECT IDPAC, PRIJMENI, JMENO, RODCIS FROM KAR " + "WHERE REPLACE(RODCIS, '/', '') = ?", + (rc_digits,) + ) + row = cur.fetchone() + if row: + return {"idpac": row[0], "prijmeni": row[1].strip(), "jmeno": row[2].strip(), "rodcis": row[3].strip()} + return None + +def _rc_candidates(rc: str) -> list[str]: + """ + Generuje kandidáty RČ pro fuzzy matching: + - vynechání každé cifry (OCR přečetlo znak navíc) + - vložení nuly na každou pozici (OCR přehlédlo nulu v sekvenci 00) + - záměna podobně vypadajících číslic na každé pozici + Vrátí unikátní seznam kandidátů bez původního RČ. + """ + similar = {"0": "8", "8": "0", "1": "7", "7": "1", "5": "6", "6": "5", "3": "8"} + candidates = set() + + # Vynechání jedné cifry (OCR přečetlo znak navíc) + for i in range(len(rc)): + candidates.add(rc[:i] + rc[i+1:]) + + # Vložení nuly na každou pozici (nejčastější chyba: sekvence 00 přečtena jako 0) + for i in range(len(rc) + 1): + candidates.add(rc[:i] + "0" + rc[i:]) + + # Záměna podobné cifry na každé pozici + for i, ch in enumerate(rc): + if ch in similar: + candidates.add(rc[:i] + similar[ch] + rc[i+1:]) + + candidates.discard(rc) + candidates = {c for c in candidates if len(c) in (9, 10)} + return sorted(candidates) + +def _rc_checksum_ok(rc: str) -> bool: + """Ověří dělitelnost 11 pro 10místná RČ (platí pro narozené po 1.1.1954).""" + digits = re.sub(r"\D", "", rc) + if len(digits) == 10: + return int(digits) % 11 == 0 + return True # 9místná RČ nemají checksum + +def verify_patient(rc_raw: str) -> dict: + """ + Ověří pacienta v Medicus. + Vrací: + status: "ok" | "fuzzy" | "not_found" | "offline" + patient: dict nebo None + rc_corrected: opravené RČ (pokud fuzzy) nebo None + """ + rc = re.sub(r"\D", "", rc_raw or "") + if not rc: + return {"status": "not_found", "patient": None, "rc_corrected": None} + + con = _medicus_connect() + if con is None: + return {"status": "offline", "patient": None, "rc_corrected": None} + + try: + cur = con.cursor() + + # 1. Přesná shoda + patient = _lookup_by_rc(cur, rc) + if patient: + return {"status": "ok", "patient": patient, "rc_corrected": None} + + # 2. Fuzzy matching — zkus kandidáty, preferuj ty s platným checksumem + candidates = _rc_candidates(rc) + matches = [] + for cand in candidates: + p = _lookup_by_rc(cur, cand) + if p: + matches.append((cand, p)) + + if not matches: + return {"status": "not_found", "patient": None, "rc_corrected": None} + + # Seřaď: platný checksum na prvním místě + matches.sort(key=lambda x: (0 if _rc_checksum_ok(x[0]) else 1)) + best_rc, best_patient = matches[0] + return {"status": "fuzzy", "patient": best_patient, "rc_corrected": best_rc, "all_matches": matches} + + finally: + con.close() + + +# ─── PDF → obrázek ──────────────────────────────────────────────────────────── + +def pdf_to_images(pdf_path: str) -> list: + return convert_from_path(pdf_path, poppler_path=POPPLER_PATH, dpi=300) + +def image_to_base64(image) -> str: + buf = io.BytesIO() + image.save(buf, format="JPEG", quality=95) + return base64.standard_b64encode(buf.getvalue()).decode("utf-8") + + +# ─── Extrakce Claude Vision ─────────────────────────────────────────────────── + +def extract_patient_info(pdf_path: str) -> dict: + pdf_path = Path(pdf_path) + if not pdf_path.exists(): + raise FileNotFoundError(f"Soubor nenalezen: {pdf_path}") + + print(f"\nNačítám: {pdf_path.name}") + suffix = pdf_path.suffix.lower() + if suffix in (".jpg", ".jpeg", ".png"): + from PIL import Image + img = Image.open(pdf_path) + image_b64 = image_to_base64(img) + img.close() + else: + images = pdf_to_images(str(pdf_path)) + image_b64 = image_to_base64(images[0]) + del images + gc.collect() + + prompt = ( + build_corrections_prompt() + + "Toto je naskenovaná lékařská zpráva v češtině. " + "Vrať JSON s těmito poli:\n" + "- \"jmeno\": celé jméno pacienta (příjmení + jméno + případný titul)\n" + "- \"rodne_cislo\": rodné číslo pacienta BEZ lomítka (pouze číslice)\n" + "- \"datum_zpravy\": datum zprávy ve formátu YYYY-MM-DD\n" + "- \"typ_dokumentu\": typ dokumentu — " + "\"LZ {oddělení}\" = ambulantní/lékařská zpráva (např. \"LZ chirurgie\", \"LZ kardiologie\", \"LZ plicní\", \"LZ ORL\"); " + "\"PZ {oddělení}\" = propouštěcí zpráva z hospitalizace (např. \"PZ interna\", \"PZ neurologie\"). " + "Jiné typy: \"Laboratoř\", \"CT břicha\", \"MRI páteře\", \"kolonoskopie\", " + "\"operační protokol oční\", \"poukaz FT\", \"diagnostická mamografie\" atd.\n" + "- \"poznamka\": krátká klinická poznámka česky, max 80 znaků. " + "DŮLEŽITÉ: pokud zpráva obsahuje sekci \"Závěr:\" nebo \"Závěr vyšetření:\", " + "použij VÝHRADNĚ obsah této sekce — je nejdůležitější. " + "Teprve pokud závěr chybí, shrň obsah z celé zprávy.\n" + "- \"nazev_souboru\": název souboru ve formátu " + "\"{rodne_cislo} {datum_zpravy} {Příjmení}, {Jméno} [{typ_dokumentu}] [{poznamka}].pdf\" " + "(jméno bez titulu, RČ bez lomítka)\n" + "- \"rotace\": o kolik stupňů CCW je třeba otočit obrázek aby byl text čitelně na výšku nebo šířku " + "(hodnoty: 0, 90, 180, 270). Pokud je text již správně orientovaný, vrať 0.\n\n" + "Pokud pole nenajdeš, použij null. Nepiš nic jiného než JSON." + ) + + print(" Volám Claude Vision API...") + client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) + response = client.messages.create( + model="claude-sonnet-4-6", + max_tokens=400, + messages=[{ + "role": "user", + "content": [ + {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": image_b64}}, + {"type": "text", "text": prompt}, + ], + }], + ) + + usage = response.usage + cost_input = usage.input_tokens * 3 / 1_000_000 + cost_output = usage.output_tokens * 15 / 1_000_000 + print(f" Tokeny: {usage.input_tokens} in + {usage.output_tokens} out = ${cost_input + cost_output:.4f}") + + raw = response.content[0].text.strip() + if raw.startswith("```"): + raw = raw.split("```")[1] + if raw.startswith("json"): + raw = raw[4:] + try: + return json.loads(raw.strip()) + except json.JSONDecodeError: + print(f" VAROVÁNÍ: nelze parsovat JSON: {raw!r}") + return {"nazev_souboru": None, "raw": raw} + + +# ─── Interaktivní schválení ─────────────────────────────────────────────────── + +def sanitize_filename(name: str) -> str: + return re.sub(r'[<>:"/\\|?*]', '', name) + + +def _open_preview(root, pdf_path: Path): + """Otevře náhledové okno PDF/obrázku jako Toplevel. Pracuje s temp kopií — žádné zamykání originálu.""" + import tkinter as tk + import tempfile + import shutil as _shutil + try: + from PIL import Image, ImageTk + import fitz + except ImportError: + return + + # Temp kopie — prohlížeč nikdy nesahá na originál + tmp = Path(tempfile.mktemp(suffix=pdf_path.suffix)) + _shutil.copy2(pdf_path, tmp) + + suffix = pdf_path.suffix.lower() + if suffix in (".jpg", ".jpeg", ".png"): + pil_pages = [Image.open(tmp)] + doc = None + else: + try: + doc = fitz.open(str(tmp)) + except Exception: + tmp.unlink(missing_ok=True) + return + pil_pages = [] + + def render(n) -> Image.Image: + if doc is not None: + page = doc[n] + zoom = min(700 / page.rect.width, (sh - 150) / page.rect.height) + pix = page.get_pixmap(matrix=fitz.Matrix(zoom, zoom)) + return Image.frombytes("RGB", (pix.width, pix.height), pix.samples) + else: + img = pil_pages[0].copy() + img.thumbnail((700, sh - 150), Image.LANCZOS) + return img + + def on_close(): + try: + if doc: + doc.close() + except Exception: + pass + tmp.unlink(missing_ok=True) + win.destroy() + + page_count = len(doc) if doc else 1 + sh = root.winfo_screenheight() + current = [0] + photo_ref = [None] + + win = tk.Toplevel(root) + win.title(pdf_path.name) + win.attributes("-topmost", True) + win.resizable(False, False) + win.protocol("WM_DELETE_WINDOW", on_close) + + lbl_img = tk.Label(win) + lbl_img.pack() + + frame_nav = tk.Frame(win) + frame_nav.pack(pady=4) + + lbl_page = tk.Label(frame_nav, font=("Segoe UI", 9)) + lbl_page.pack(side="left", padx=10) + + def show(n): + current[0] = n + img = render(n) + photo_ref[0] = ImageTk.PhotoImage(img) + lbl_img.config(image=photo_ref[0]) + lbl_page.config(text=f"Strana {n + 1} / {page_count}") + btn_prev.config(state="normal" if n > 0 else "disabled") + btn_next.config(state="normal" if n < page_count - 1 else "disabled") + + btn_prev = tk.Button(frame_nav, text="◄ Předchozí", + command=lambda: show(current[0] - 1)) + btn_prev.pack(side="left") + btn_next = tk.Button(frame_nav, text="Další ►", + command=lambda: show(current[0] + 1)) + btn_next.pack(side="left") + + show(0) + + win.update_idletasks() + win.geometry(f"+0+0") + + +def _rename_dialog(nazev: str, info_lines: list[str]) -> str | None: + """ + Spustí rename_dialog.py jako subprocess — vyhneme se Tkinter konfliktům s PyCharm. + Vrátí finální název (s .pdf) nebo None = přeskočit. + """ + import tempfile + + data = {"nazev": nazev, "info_lines": info_lines} + tmp = Path(tempfile.mktemp(suffix=".json")) + tmp.write_text(json.dumps(data, ensure_ascii=False), encoding="utf-8") + + dialog_script = Path(__file__).parent / "rename_dialog.py" + try: + proc = subprocess.run( + [sys.executable, str(dialog_script), str(tmp)], + capture_output=True, text=True, encoding="utf-8", + ) + output = proc.stdout.strip() + if output: + return json.loads(output).get("value") + return None + finally: + tmp.unlink(missing_ok=True) + + +def print_verification(verif: dict, rc_from_scan: str): + """Vypíše výsledek ověření proti Medicus.""" + status = verif["status"] + patient = verif.get("patient") + + if status == "ok": + print(f" ✓ Medicus: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + elif status == "fuzzy": + rc_corr = verif["rc_corrected"] + print(f" ⚠ Medicus: RČ ze skenu '{rc_from_scan}' nenalezeno") + print(f" → Nalezen podobný pacient: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + print(f" → Pravděpodobná oprava RČ: {rc_from_scan} → {rc_corr} (OCR chyba)") + if len(verif.get("all_matches", [])) > 1: + print(f" → Další shody: {[m[0] for m in verif['all_matches'][1:]]}") + elif status == "not_found": + print(f" ✗ Medicus: RČ '{rc_from_scan}' nenalezeno ani při fuzzy hledání") + elif status == "offline": + print(f" — Medicus: nedostupný (offline), ověření přeskočeno") + + +def interactive_rename(pdf_path: Path, info: dict, verif: dict) -> bool: + """ + Otevře tkinter dialog pro schválení / opravu názvu. + Schválený soubor přesune do Processed/ a smaže z ToProcess/. + """ + rc = re.sub(r"\D", "", verif["patient"]["rodcis"] if verif.get("patient") else info.get("rodne_cislo") or "") + datum = info.get("datum_zpravy") or "" + duplicity = check_duplicates(rc, datum) + + # Oprava RČ při fuzzy matchi + nazev = info.get("nazev_souboru") + if verif["status"] == "fuzzy" and verif.get("rc_corrected") and nazev: + rc_scan = re.sub(r"\D", "", info.get("rodne_cislo") or "") + nazev = nazev.replace(rc_scan, verif["rc_corrected"], 1) + print(f" → Název aktualizován s opraveným RČ") + + # Sestavení info řádků pro dialog + rc_from_scan = re.sub(r"\D", "", info.get("rodne_cislo") or "") + status = verif["status"] + patient = verif.get("patient") + info_lines = [] + if status == "ok": + info_lines.append(f"✓ Medicus: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + elif status == "fuzzy": + info_lines.append(f"⚠ RČ ze skenu '{rc_from_scan}' → opraveno na {verif['rc_corrected']}") + info_lines.append(f" Pacient: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + elif status == "not_found": + info_lines.append(f"✗ RČ '{rc_from_scan}' nenalezeno v Medicus") + else: + info_lines.append("— Medicus nedostupný (offline)") + if duplicity: + info_lines.append(f"⚠ DUPLICITA: {', '.join(duplicity)}") + + print() + print("─" * 70) + if nazev: + print(f" Navržený název: {nazev}") + print(" Otevírám dialog...") + + odpoved = _rename_dialog(nazev or "", info_lines) + + if odpoved is None: + print(" Přeskočeno.") + return False + + if not odpoved.endswith(".pdf"): + odpoved += ".pdf" + final_name = sanitize_filename(odpoved) + + if nazev and nazev != final_name: + save_correction(nazev, final_name) + + if not final_name or final_name == ".pdf": + print(" Název je prázdný, přeskakuji.") + return False + + dest = PROCESSED / final_name + if dest.exists(): + print(f" VAROVÁNÍ: '{final_name}' již existuje v Processed, přeskakuji.") + return False + + if pdf_path.suffix.lower() in (".jpg", ".jpeg", ".png"): + from jpg_to_pdf import image_to_pdf + image_to_pdf(pdf_path, dest, rotate_ccw=info.get("rotace") or 0) + else: + shutil.copy2(pdf_path, dest) + + pdf_path.unlink() + print(f" ✓ Uloženo: Processed/{final_name}") + return True + + +# ─── Hlavní logika ──────────────────────────────────────────────────────────── + +def _start_preview_process(pdf_path: Path): + """ + Otevře náhled PDF jako samostatný subprocess (žádné tkinter threading problémy). + Pracuje s temp kopií — originál zůstane volný. + Vrátí funkci close() pro ukončení procesu. + """ + import tempfile + import shutil as _shutil + + tmp = Path(tempfile.mktemp(suffix=pdf_path.suffix)) + _shutil.copy2(pdf_path, tmp) + + viewer = Path(__file__).parent / "preview_viewer.py" + proc = subprocess.Popen( + [sys.executable, str(viewer), str(tmp), "--delete-on-close"], + ) + + def close(): + try: + proc.terminate() + proc.wait(timeout=3) + except Exception: + pass + try: + tmp.unlink(missing_ok=True) + except Exception: + pass + + return close + + +def process_file(pdf_path: Path): + close_preview = _start_preview_process(pdf_path) + try: + info = extract_patient_info(str(pdf_path)) + rc_from_scan = re.sub(r"\D", "", info.get("rodne_cislo") or "") + print(f" Ověřuji v Medicus (RČ: {rc_from_scan})...") + verif = verify_patient(rc_from_scan) + print_verification(verif, rc_from_scan) + interactive_rename(pdf_path, info, verif) + finally: + close_preview() + +def process_folder(folder: Path): + pdf_files = sorted(f for f in folder.iterdir() + if f.suffix.lower() in (".pdf", ".jpg", ".jpeg", ".png")) + if not pdf_files: + print(f"Žádná PDF nenalezena v: {folder}") + return + + print(f"Nalezeno {len(pdf_files)} PDF soubor(ů).\n") + for pdf_file in pdf_files: + try: + process_file(pdf_file) + except Exception as e: + print(f" CHYBA: {e}") + + print("\nHotovo.") + + +if __name__ == "__main__": + if len(sys.argv) > 1: + target = Path(sys.argv[1]) + else: + target = TO_PROCESS + + PROCESSED.mkdir(exist_ok=True) + TO_PROCESS.mkdir(exist_ok=True) + + if target.is_file() and target.suffix.lower() in (".pdf", ".jpg", ".jpeg", ".png"): + process_file(target) + elif target.is_dir(): + process_folder(target) + else: + print("Použití: python extract_patient_info.py [soubor.pdf nebo složka]") + sys.exit(1) diff --git a/Medevio/60 ScansProcessing/affd3ab5-fa29-4e8c-8555-c1374d4d9cc8.jpeg b/Medevio/60 ScansProcessing/affd3ab5-fa29-4e8c-8555-c1374d4d9cc8.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cf58b877c39b42f70901fae12a2737c3ec7a2c7a GIT binary patch literal 1415371 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

HogI*Q! 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

w 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

-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 Path: + import fitz + src = fitz.open(str(pdf_path)) + mat = fitz.Matrix(dpi / 72.0, dpi / 72.0) + out = fitz.open() + for page in src: + pix = page.get_pixmap(matrix=mat, colorspace=fitz.csRGB) + img_bytes = pix.tobytes("jpeg", jpg_quality=quality) + img_doc = fitz.open("pdf", fitz.open("jpeg", img_bytes).convert_to_pdf()) + rect = page.rect + np = out.new_page(width=rect.width, height=rect.height) + np.show_pdf_page(np.rect, img_doc, 0) + src.close() + tmp = Path(tempfile.mktemp(suffix=".pdf")) + out.save(tmp, deflate=True, garbage=4) + out.close() + return tmp + + +# ─── Medicus ověření ───────────────────────────────────────────────────────── + +def _medicus_connect(): + try: + import fdb + cfg = get_medicus_config() + return fdb.connect(dsn=cfg.dsn, user="SYSDBA", password="masterkey", charset="win1250") + except Exception as e: + print(f" [Medicus] Nepřipojeno: {e}") + return None + +def _lookup_by_rc(cur, rc_digits: str) -> dict | None: + cur.execute( + "SELECT IDPAC, PRIJMENI, JMENO, RODCIS FROM KAR " + "WHERE REPLACE(RODCIS, '/', '') = ?", (rc_digits,) + ) + row = cur.fetchone() + if row: + return {"idpac": row[0], "prijmeni": row[1].strip(), "jmeno": row[2].strip(), "rodcis": row[3].strip()} + return None + +def _rc_candidates(rc: str) -> list[str]: + similar = {"0": "8", "8": "0", "1": "7", "7": "1", "5": "6", "6": "5", "3": "8"} + candidates = set() + for i in range(len(rc)): + candidates.add(rc[:i] + rc[i+1:]) + for i in range(len(rc) + 1): + candidates.add(rc[:i] + "0" + rc[i:]) + for i, ch in enumerate(rc): + if ch in similar: + candidates.add(rc[:i] + similar[ch] + rc[i+1:]) + candidates.discard(rc) + return sorted(c for c in candidates if len(c) in (9, 10)) + +def _rc_checksum_ok(rc: str) -> bool: + digits = re.sub(r"\D", "", rc) + if len(digits) == 10: + return int(digits) % 11 == 0 + return True + +def verify_patient(rc_raw: str) -> dict: + rc = re.sub(r"\D", "", rc_raw or "") + if not rc: + return {"status": "not_found", "patient": None, "rc_corrected": None} + con = _medicus_connect() + if con is None: + return {"status": "offline", "patient": None, "rc_corrected": None} + try: + cur = con.cursor() + patient = _lookup_by_rc(cur, rc) + if patient: + return {"status": "ok", "patient": patient, "rc_corrected": None} + candidates = _rc_candidates(rc) + matches = [(c, _lookup_by_rc(cur, c)) for c in candidates] + matches = [(c, p) for c, p in matches if p] + if not matches: + return {"status": "not_found", "patient": None, "rc_corrected": None} + matches.sort(key=lambda x: (0 if _rc_checksum_ok(x[0]) else 1)) + best_rc, best_patient = matches[0] + return {"status": "fuzzy", "patient": best_patient, "rc_corrected": best_rc, "all_matches": matches} + finally: + con.close() + +def check_duplicates(rc: str, datum: str) -> list[str]: + if not rc or not datum: + return [] + # Počkej max 15s na dokončení indexu (typicky hotovo za dobu volání Claude) + _dokumentace_ready.wait(timeout=15) + prefix = f"{rc} {datum}" + return [name for name in _dokumentace_index if name.startswith(prefix)] + + +# ─── Korekce (few-shot příklady) ───────────────────────────────────────────── + +def load_corrections() -> list[dict]: + if CORRECTIONS_FILE.exists(): + return json.loads(CORRECTIONS_FILE.read_text(encoding="utf-8")) + return [] + +def save_correction(original: str, corrected: str): + if not CORRECTIONS: + return + corrections = load_corrections() + for c in corrections: + if c["original"] == original and c["corrected"] == corrected: + return + corrections.append({"original": original, "corrected": corrected}) + CORRECTIONS_FILE.write_text( + json.dumps(corrections, ensure_ascii=False, indent=2), encoding="utf-8" + ) + print(f" ✓ Korekce uložena ({len(corrections)} celkem)") + +def load_naming_rules() -> str: + if NAMING_RULES_FILE.exists(): + content = NAMING_RULES_FILE.read_text(encoding="utf-8").strip() + if content: + return f"Pravidla pro pojmenování souborů (dodržuj vždy):\n{content}\n\n" + return "" + +def build_corrections_prompt() -> str: + if not CORRECTIONS: + return "" + corrections = load_corrections() + if not corrections: + return "" + lines = ["Příklady korekcí z minulých běhů (uč se z nich):"] + for c in corrections[-10:]: + lines.append(f' - špatně: "{c["original"]}"') + lines.append(f' správně: "{c["corrected"]}"') + return "\n".join(lines) + "\n\n" + + +# ─── Claude Vision API ──────────────────────────────────────────────────────── + +def extract_info(pdf_path: Path) -> dict: + print(" Převádím na obrázek...") + suffix = pdf_path.suffix.lower() + if suffix in (".jpg", ".jpeg", ".png"): + from PIL import Image + img = Image.open(pdf_path) + buf = io.BytesIO() + img.save(buf, format="JPEG", quality=95) + img.close() + else: + images = convert_from_path(str(pdf_path), poppler_path=POPPLER_PATH, dpi=300) + buf = io.BytesIO() + images[0].save(buf, format="JPEG", quality=95) + del images + gc.collect() + image_b64 = base64.standard_b64encode(buf.getvalue()).decode("utf-8") + + prompt = ( + load_naming_rules() + + build_corrections_prompt() + + "Toto je naskenovaná lékařská zpráva v češtině. " + "Vrať JSON s těmito poli:\n" + "- \"jmeno\": celé jméno pacienta (příjmení + jméno + případný titul)\n" + "- \"rodne_cislo\": rodné číslo pacienta BEZ lomítka (pouze číslice)\n" + "- \"datum_zpravy\": datum zprávy ve formátu YYYY-MM-DD\n" + "- \"typ_dokumentu\": typ dokumentu — " + "\"LZ {oddělení}\" = ambulantní/lékařská zpráva (např. \"LZ chirurgie\", \"LZ kardiologie\", \"LZ plicní\", \"LZ ORL\"); " + "\"PZ {oddělení}\" = propouštěcí zpráva z hospitalizace (např. \"PZ interna\", \"PZ neurologie\"). " + "Jiné typy: \"Laboratoř\", \"CT břicha\", \"MRI páteře\", \"kolonoskopie\", " + "\"operační protokol oční\", \"poukaz FT\", \"diagnostická mamografie\" atd.\n" + "- \"poznamka\": krátká klinická poznámka česky, max 80 znaků. " + "DŮLEŽITÉ: pokud zpráva obsahuje sekci \"Závěr:\" nebo \"Závěr vyšetření:\", " + "použij VÝHRADNĚ obsah této sekce — je nejdůležitější. " + "Teprve pokud závěr chybí, shrň obsah z celé zprávy.\n" + "- \"nazev_souboru\": název souboru ve formátu " + "\"{rodne_cislo} {datum_zpravy} {Příjmení}, {Jméno} [{typ_dokumentu}] [{poznamka}].pdf\" " + "(jméno bez titulu, RČ bez lomítka)\n" + "- \"rotace\": o kolik stupňů CCW je třeba otočit obrázek aby byl text čitelně na výšku nebo šířku " + "(hodnoty: 0, 90, 180, 270). Pokud je text již správně orientovaný, vrať 0.\n\n" + "Pokud pole nenajdeš, použij null. Nepiš nic jiného než JSON." + ) + + print(" Volám Claude Vision API...") + try: + client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) + response = client.messages.create( + model="claude-sonnet-4-6", + max_tokens=400, + messages=[{"role": "user", "content": [ + {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": image_b64}}, + {"type": "text", "text": prompt}, + ]}], + ) + usage = response.usage + print(f" Tokeny: {usage.input_tokens} in + {usage.output_tokens} out = ${usage.input_tokens*3/1e6 + usage.output_tokens*15/1e6:.4f}") + + raw = response.content[0].text.strip() + if raw.startswith("```"): + raw = raw.split("```")[1] + if raw.startswith("json"): + raw = raw[4:] + try: + return json.loads(raw.strip()) + except json.JSONDecodeError: + print(f" VAROVÁNÍ: nelze parsovat JSON: {raw!r}") + return {"nazev_souboru": None, "raw": raw} + except Exception as e: + print(f" VAROVÁNÍ: Claude API selhalo ({e}) — otevírám dialog pro ruční vyplnění.") + return {"nazev_souboru": None} + + +# ─── Subprocess helpers ─────────────────────────────────────────────────────── + +def open_preview(pdf_path: Path) -> tuple[subprocess.Popen, Path]: + geom_file = Path(tempfile.mktemp(suffix=".json")) + proc = subprocess.Popen([sys.executable, str(VIEWER), str(pdf_path), f"--write-geometry={geom_file}"]) + return proc, geom_file + + +def read_preview_bottom(geom_file: Path, timeout: float = 5.0) -> int: + import time + deadline = time.time() + timeout + while time.time() < deadline: + if geom_file.exists(): + geom = json.loads(geom_file.read_text(encoding="utf-8")) + geom_file.unlink(missing_ok=True) + return geom["y"] + geom["h"] + 30 # +30 pro title bar + time.sleep(0.1) + geom_file.unlink(missing_ok=True) + return None + + +def run_rename_dialog(nazev: str, info_lines: list, below_y: int = None) -> str | None: + tmp = Path(tempfile.mktemp(suffix=".json")) + tmp.write_text(json.dumps({"nazev": nazev, "info_lines": info_lines}, ensure_ascii=False), encoding="utf-8") + args = [sys.executable, str(RENAME_DIALOG), str(tmp)] + if below_y is not None: + args.append(f"--below-y={below_y}") + env = {**os.environ, "PYTHONIOENCODING": "utf-8", "PYTHONUTF8": "1"} + proc = subprocess.run(args, capture_output=True, text=True, encoding="utf-8", env=env) + tmp.unlink(missing_ok=True) + out = proc.stdout.strip() + return json.loads(out).get("value") if out else None + + +def run_variant_picker(variants_data: list) -> str | None: + tmp = Path(tempfile.mktemp(suffix=".json")) + tmp.write_text(json.dumps(variants_data, ensure_ascii=False), encoding="utf-8") + proc = subprocess.run( + [sys.executable, str(VARIANT_PICKER), str(tmp)], + capture_output=True, text=True, encoding="utf-8", + ) + tmp.unlink(missing_ok=True) + if proc.returncode != 0 or not proc.stdout.strip(): + print(f" [variant_picker] returncode={proc.returncode}") + if proc.stderr.strip(): + print(f" [variant_picker] CHYBA:\n{proc.stderr.strip()}") + out = proc.stdout.strip() + return json.loads(out).get("chosen") if out else None + + +# ─── Hlavní flow ────────────────────────────────────────────────────────────── + +def process_file(pdf_path: Path): + print(f"\nSoubor: {pdf_path.name}") + + # Spusť načítání indexu dokumentace na pozadí — hotovo za dobu volání Claude + start_dokumentace_index() + + # 1. Otevři preview originálu + preview, geom_file = open_preview(pdf_path) + below_y = read_preview_bottom(geom_file) + + # 2. Claude Vision API + info = extract_info(pdf_path) + nazev = info.get("nazev_souboru") or pdf_path.name + + # 3. Medicus ověření + fuzzy matching RČ + rc_from_scan = re.sub(r"\D", "", info.get("rodne_cislo") or "") + print(f" Ověřuji v Medicus (RČ: {rc_from_scan})...") + verif = verify_patient(rc_from_scan) + + # Oprava RČ při fuzzy matchi + if verif["status"] == "fuzzy" and verif.get("rc_corrected") and nazev: + nazev = nazev.replace(rc_from_scan, verif["rc_corrected"], 1) + print(f" → RČ opraveno: {rc_from_scan} → {verif['rc_corrected']}") + + # Info řádky pro dialog + status = verif["status"] + patient = verif.get("patient") + info_lines = [] + if status == "ok": + info_lines.append(f"✓ Medicus: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + elif status == "fuzzy": + info_lines.append(f"⚠ RČ ze skenu '{rc_from_scan}' → opraveno na {verif['rc_corrected']}") + info_lines.append(f" Pacient: {patient['prijmeni']} {patient['jmeno']} | RČ {patient['rodcis']}") + elif status == "not_found": + info_lines.append(f"✗ RČ '{rc_from_scan}' nenalezeno v Medicus") + else: + info_lines.append("— Medicus nedostupný (offline)") + + # Duplicity + rc_final = re.sub(r"\D", "", verif["patient"]["rodcis"] if patient else rc_from_scan) + duplicity = check_duplicates(rc_final, info.get("datum_zpravy") or "") + if duplicity: + info_lines.append(f"⚠ DUPLICITA: {', '.join(duplicity)}") + + if not info_lines: + info_lines = ["[Claude nevrátil název — uprav ručně]"] + print(" Otevírám dialog pro schválení názvu...") + final_name = run_rename_dialog(nazev, info_lines, below_y=below_y) + + preview.terminate() + + if not final_name: + print(" Přeskočeno.") + return + + if not final_name.endswith(".pdf"): + final_name += ".pdf" + final_name = re.sub(r'[<>:"/\\|?*]', '', final_name) + + if nazev and final_name != nazev: + save_correction(nazev, final_name) + + print(f" Schválený název: {final_name}") + + # 4. Generuj kompresní varianty (originál + 5 variant) + print(" Generuji kompresní varianty...") + temp_files = [] + orig_kb = round(pdf_path.stat().st_size / 1024) + variants_data = [{"path": str(pdf_path), "label": "Originál", "size_kb": orig_kb}] + for label, dpi, quality in COMPRESS_VARIANTS: + tmp = compress_to_temp(pdf_path, dpi, quality) + size_kb = round(tmp.stat().st_size / 1024) + temp_files.append(tmp) + variants_data.append({"path": str(tmp), "label": label, "size_kb": size_kb}) + print(f" {label}: {size_kb} kB") + + # 5. Vyber variantu + print(" Vyber variantu v okně...") + chosen = run_variant_picker(variants_data) + + if not chosen: + print(" Žádná varianta nevybrána, přeskakuji.") + for t in temp_files: + t.unlink(missing_ok=True) + return + + # 6. Ulož do Processed + PROCESSED.mkdir(exist_ok=True) + dest = PROCESSED / final_name + if dest.exists(): + print(f" Přepisuji existující: {dest.name}") + shutil.copy2(chosen, dest) + pdf_path.unlink() + print(f" ✓ Uloženo: {dest.name}") + + for t in temp_files: + t.unlink(missing_ok=True) # originál mezi temp_files není, je bezpečné + + +def process_folder(folder: Path): + files = sorted(f for f in folder.iterdir() if f.suffix.lower() in (".pdf", ".jpg", ".jpeg", ".png")) + if not files: + print(f"Žádné soubory v: {folder}") + return + print(f"Nalezeno {len(files)} soubor(ů).") + for f in files: + try: + process_file(f) + except Exception as e: + print(f" CHYBA: {e}") + print("\nHotovo.") + + +if __name__ == "__main__": + PROCESSED.mkdir(exist_ok=True) + TO_PROCESS.mkdir(exist_ok=True) + + target = Path(sys.argv[1]) if len(sys.argv) > 1 else TO_PROCESS + + if target.is_file(): + process_file(target) + elif target.is_dir(): + process_folder(target) + else: + print("Použití: python extract_patient_info_novy.py [soubor.pdf nebo složka]") + sys.exit(1) diff --git a/Medevio/60 ScansProcessing/jpg_to_pdf.py b/Medevio/60 ScansProcessing/jpg_to_pdf.py new file mode 100644 index 0000000..051c15c --- /dev/null +++ b/Medevio/60 ScansProcessing/jpg_to_pdf.py @@ -0,0 +1,101 @@ +""" +Konverze JPG/PNG → PDF se správnou orientací stránky (A4). + +Řeší: +- EXIF orientaci (fotky z telefonu/skeneru bývají otočené) +- Správné umístění na A4 stránce (na výšku nebo na šířku dle obsahu) +- Zachování kvality + +Použití: + python jpg_to_pdf.py soubor.jpg + python jpg_to_pdf.py soubor.jpg vystup.pdf +""" + +import io +import sys +from pathlib import Path + +from PIL import Image, ImageOps + +# A4 rozměry v mm +A4_W_MM = 210 +A4_H_MM = 297 +MARGIN_MM = 0 # bez okraje, tisk si řeší Acrobat (Fit to Print) + + +def fix_orientation(img: Image.Image) -> Image.Image: + """Opraví rotaci podle EXIF dat (tag 274).""" + return ImageOps.exif_transpose(img) + + +def image_to_pdf(src: Path, dst: Path, dpi: int = 150, quality: int = 80, rotate_ccw: int = 0): + img = Image.open(src) + print(f" Originál: {img.size[0]}×{img.size[1]} px, mode={img.mode}, format={img.format}") + + # 1. Oprav EXIF orientaci + img = fix_orientation(img) + print(f" Po EXIF korekci: {img.size[0]}×{img.size[1]} px") + + # 2. Rotace dle parametru (od Claude nebo ručně) + if rotate_ccw and rotate_ccw != 0: + img = img.rotate(rotate_ccw, expand=True) + print(f" Po rotaci {rotate_ccw}° CCW: {img.size[0]}×{img.size[1]} px") + + # 2. Převeď na RGB (PDF nepodporuje RGBA/P) + if img.mode in ("RGBA", "P", "LA"): + img = img.convert("RGB") + + # 3. Urči orientaci stránky podle poměru stran obrázku + img_w, img_h = img.size + if img_w > img_h: + # Obrázek na šířku → stránka na šířku (A4 landscape) + page_w_mm, page_h_mm = A4_H_MM, A4_W_MM + print(f" Orientace stránky: na šířku (landscape)") + else: + # Obrázek na výšku → stránka na výšku (A4 portrait) + page_w_mm, page_h_mm = A4_W_MM, A4_H_MM + print(f" Orientace stránky: na výšku (portrait)") + + # 4. Vypočti cílovou velikost s okrajem (mm → px při daném DPI) + mm_to_px = dpi / 25.4 + max_w_px = int((page_w_mm - 2 * MARGIN_MM) * mm_to_px) + max_h_px = int((page_h_mm - 2 * MARGIN_MM) * mm_to_px) + + # 5. Škáluj obrázek na stránku (zachovej poměr stran) + img.thumbnail((max_w_px, max_h_px), Image.LANCZOS) + print(f" Výsledná velikost obrázku: {img.size[0]}×{img.size[1]} px") + + # 6. Vlož obrázek na bílé A4 plátno + page_w_px = int(page_w_mm * mm_to_px) + page_h_px = int(page_h_mm * mm_to_px) + canvas = Image.new("RGB", (page_w_px, page_h_px), "white") + + offset_x = (page_w_px - img.size[0]) // 2 + offset_y = (page_h_px - img.size[1]) // 2 + canvas.paste(img, (offset_x, offset_y)) + + # 7. Ulož jako PDF + canvas.save(dst, "PDF", resolution=dpi, quality=quality) + print(f" ✓ Uloženo: {dst.name} ({dst.stat().st_size // 1024} KB)") + + +if __name__ == "__main__": + if sys.platform == "win32": + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace") + + if len(sys.argv) < 2: + print("Použití: python jpg_to_pdf.py soubor.jpg [vystup.pdf] [rotace_ccw]") + print(" rotace_ccw: 0 / 90 / 180 / 270 (výchozí: 0)") + sys.exit(1) + + src = Path(sys.argv[1]) + if not src.exists(): + print(f"Soubor nenalezen: {src}") + sys.exit(1) + + dst = Path(sys.argv[2]) if len(sys.argv) > 2 else src.with_suffix(".pdf") + rotate_ccw = int(sys.argv[3]) if len(sys.argv) > 3 else 0 + + print(f"Konvertuji: {src.name} → {dst.name}") + image_to_pdf(src, dst, rotate_ccw=rotate_ccw) diff --git a/Medevio/60 ScansProcessing/naming_rules.md b/Medevio/60 ScansProcessing/naming_rules.md new file mode 100644 index 0000000..42f785f --- /dev/null +++ b/Medevio/60 ScansProcessing/naming_rules.md @@ -0,0 +1,26 @@ +# Pravidla pro přejmenování souborů + +Tato pravidla platí vždy při generování polí `poznamka` a `nazev_souboru`. + +1. Název souboru má vždy tvar: `RODNECISLO YYYY-MM-DD Příjmení, Jméno [TYP ODBORNOST] [popis].pdf` + - TYP je vždy buď `LZ` (lékařská zpráva / ambulantní zpráva) nebo `PZ` (propouštěcí zpráva z hospitalizace). + - Jiné typy dokumentů (Laboratoř, CT, MRI, kolonoskopie, poukaz FT apod.) nemají TYP prefix — píší se celým názvem: `[Laboratoř]`, `[CT břicha]` atd. + - Příklady: `[LZ chirurgie]`, `[PZ interna]`, `[Laboratoř]`, `[CT břicha]` + +2. Když je typ dokumentu PZ (propouštěcí zpráva), umísti do druhé závorky jako první věc data hospitalizace ve tvaru `DDMMMYYYY–DDMMMYYYY` (měsíc třemi písmeny anglicky, velká, bez mezer), za pomlčkou pak popis. + - Příklad: `[PZ interna] [12–15APR2026 srdeční selhání]` + - Pokud je datum přijetí a propuštění ve stejném měsíci, stačí: `[12–15APR2026 ...]` + - Pokud datum hospitalizace nelze určit, druhou závorku napiš bez datumu. + +3. Když je dokument typ "Laboratoř", do `poznamka` uváděj POUZE hodnoty mimo normu (patologické nálezy) — hodnoty v normě vynech. Osmolalitu séra nikdy nezmiňuj, ani když je mimo normu. +4. Pokud laboratorní výsledky obsahují glomerulární filtraci — bývá označena jako eGFR, CKD-EPI nebo CK-EPI — do `poznamka` nikdy nepiš číselnou hodnotu eGFR. Místo toho uveď pouze klasifikaci: eGFR ≥ 90 → CHRIG1, 60–89 → CHRIG2, 45–59 → CHRIG3a, 30–44 → CHRIG3b, 15–29 → CHRIG4, < 15 → CHRIG5. Klasifikaci uváděj pouze pokud je CHRIG2 nebo horší (tj. eGFR < 90) — CHRIG1 je v normě, nezmiňuj ho. +5. Když je dokument typ "Laboratoř" a zpráva obsahuje diagnózu (dg., dg:, diagnóza), umísti ji do `nazev_souboru` jako první část druhé závorky, tedy: `[Laboratoř] [dg. XY00 - stručná poznamka]`. +6. Zkratky a pojmenování: slovo „sono" (sonografie/ultrazvuk) piš vždy malými písmeny — `sono břicha`, `sono ŠŽ`, nikoli `SONO`. Štítnou žlázu označuj vždy zkratkou `ŠŽ`. Sonografii prsu/prsů (sono mamm., sono mamografie, sono mamma apod.) piš vždy jako `sono prsů`. Denzitometrii (DEXA, DXA, denzitometrie) piš vždy pouze jako `[DXA]` — bez prefixu LZ. Algologii piš vždy jako `[LZ léčba bolesti]`. Dermatovenerologii (dermatologie, dermatovenerologie, kožní) piš vždy jako `[LZ kožní]`. Angiologii piš vždy jako `[LZ cévní]`. +7. V číselných hodnotách VŽDY používej desetinnou tečku, nikoli desetinnou čárku. Toto pravidlo platí absolutně pro všechna čísla v `poznamka` i `nazev_souboru` — např. `TG 4.73`, nikoli `TG 4,73`. + +8. Rozpoznávání vzorců — sideropenická anémie: Pokud laboratorní výsledky splňují typický obraz sideropenické (železo-deficitní) anémie, přidej diagnózu jako první část druhé závorky ve tvaru `[sideropenická anémie, ...]`. + Typický obraz (stačí kombinace několika z těchto nálezů): + - Krevní obraz: ↓ Hb, ↓ Htk, ↓ MCV (mikrocytóza), ↓ MCH nebo ↓ MCHC (hypochromie), ↑ RDW (anisocytóza) + - Metabolismus železa: ↓ sérové Fe (železo), ↓ ferritin, ↑ transferrin (nebo TIBC), ↓ saturace transferrinu + - Diagnózu uveď pouze pokud je obraz dostatečně přesvědčivý (alespoň ↓ Hb + ↓ MCV nebo ↓ Fe/ferritin). + - Příklad výsledného názvu: `[Laboratoř] [sideropenická anémie, Hb 98, MCV 71, Fe 5.2]` diff --git a/Medevio/60 ScansProcessing/preview_viewer.py b/Medevio/60 ScansProcessing/preview_viewer.py new file mode 100644 index 0000000..cbd9b78 --- /dev/null +++ b/Medevio/60 ScansProcessing/preview_viewer.py @@ -0,0 +1,111 @@ +""" +Standalone PDF/obrázek náhled — spouští se jako subprocess z extract_patient_info.py. +Argumenty: preview_viewer.py [--delete-on-close] +""" +import sys +from pathlib import Path +import tkinter as tk + + +def main(): + if len(sys.argv) < 2: + sys.exit(1) + + pdf_path = Path(sys.argv[1]) + delete_on_close = "--delete-on-close" in sys.argv + + try: + from PIL import Image, ImageTk + import fitz + except ImportError: + sys.exit(2) + + suffix = pdf_path.suffix.lower() + if suffix in (".jpg", ".jpeg", ".png"): + pil_img = Image.open(pdf_path) + doc = None + else: + doc = fitz.open(str(pdf_path)) + pil_img = None + + root = tk.Tk() + root.tk.call("encoding", "system", "utf-8") + + sh = root.winfo_screenheight() + page_count = len(doc) if doc else 1 + current = [0] + photo_ref = [None] + + def render(n) -> Image.Image: + if doc is not None: + page = doc[n] + zoom = min(700 / page.rect.width, (sh - 150) / page.rect.height) + pix = page.get_pixmap(matrix=fitz.Matrix(zoom, zoom)) + return Image.frombytes("RGB", (pix.width, pix.height), pix.samples) + else: + img = pil_img.copy() + img.thumbnail((700, sh - 150), Image.LANCZOS) + return img + + def on_close(): + if doc: + try: + doc.close() + except Exception: + pass + if delete_on_close: + try: + pdf_path.unlink(missing_ok=True) + except Exception: + pass + root.destroy() + + root.title(pdf_path.stem) + root.attributes("-topmost", True) + root.resizable(False, False) + root.protocol("WM_DELETE_WINDOW", on_close) + + lbl_img = tk.Label(root) + lbl_img.pack() + + frame_nav = tk.Frame(root) + frame_nav.pack(pady=4) + + lbl_page = tk.Label(frame_nav, font=("Segoe UI", 9)) + lbl_page.pack(side="left", padx=10) + + def show(n): + current[0] = n + img = render(n) + photo_ref[0] = ImageTk.PhotoImage(img) + lbl_img.config(image=photo_ref[0]) + lbl_page.config(text=f"Strana {n + 1} / {page_count}") + btn_prev.config(state="normal" if n > 0 else "disabled") + btn_next.config(state="normal" if n < page_count - 1 else "disabled") + + btn_prev = tk.Button(frame_nav, text="◄ Předchozí", command=lambda: show(current[0] - 1)) + btn_prev.pack(side="left") + btn_next = tk.Button(frame_nav, text="Další ►", command=lambda: show(current[0] + 1)) + btn_next.pack(side="left") + + show(0) + root.update_idletasks() + sw = root.winfo_screenwidth() + w = root.winfo_width() + h = root.winfo_height() + x = (sw - w) // 2 + root.geometry(f"+{x}+0") + + # Zapiš geometrii do souboru pokud byl předán argument --write-geometry= + import json as _json + for arg in sys.argv: + if arg.startswith("--write-geometry="): + geom_path = Path(arg.split("=", 1)[1]) + geom_path.write_text(_json.dumps({"x": x, "y": 0, "w": w, "h": h}), encoding="utf-8") + break + + root.mainloop() + + +if __name__ == "__main__": + main() diff --git a/Medevio/60 ScansProcessing/rename_dialog.py b/Medevio/60 ScansProcessing/rename_dialog.py new file mode 100644 index 0000000..6b3c4e0 --- /dev/null +++ b/Medevio/60 ScansProcessing/rename_dialog.py @@ -0,0 +1,105 @@ +""" +Standalone dialog pro schválení / opravu názvu souboru. +Spouští se jako subprocess z extract_patient_info.py. +Argumenty: rename_dialog.py +JSON vstup: { "nazev": "...", "info_lines": [...] } +JSON výstup: { "value": "..." } nebo { "value": null } +""" +import json +import os +import sys +from pathlib import Path +import tkinter as tk + +if sys.platform == "win32": + try: + from ctypes import windll + windll.shcore.SetProcessDpiAwareness(1) + except Exception: + pass + import io + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace") + + +def main(): + if len(sys.argv) < 2: + print(json.dumps({"value": None})) + sys.exit(0) + + data = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8")) + nazev = data.get("nazev") or "" + info_lines = data.get("info_lines") or [] + + result = {"value": None} + + root = tk.Tk() + root.title("Schválení názvu souboru") + root.resizable(True, False) + root.attributes("-topmost", True) + root.tk.call("encoding", "system", "utf-8") + os.environ.setdefault("TCL_ENCODING", "utf-8") + + pad = {"padx": 12, "pady": 6} + + frame_info = tk.Frame(root, bg="#f0f0f0", bd=1, relief="sunken") + frame_info.pack(fill="x", **pad) + for line in info_lines: + color = "#b00000" if line.startswith("⚠") else "#004080" if line.startswith("✓") else "#333" + tk.Label(frame_info, text=line, anchor="w", bg="#f0f0f0", + fg=color, font=("Segoe UI", 10)).pack(fill="x", padx=8, pady=1) + + tk.Label(root, text="Název souboru (bez .pdf):", anchor="w", + font=("Segoe UI", 9, "bold")).pack(fill="x", padx=12, pady=(10, 2)) + + nazev_bez = nazev[:-4] if nazev.endswith(".pdf") else nazev + var = tk.StringVar(value=nazev_bez) + entry = tk.Entry(root, textvariable=var, font=("Segoe UI", 10), width=135) + entry.pack(fill="x", padx=12, pady=(0, 10)) + entry.icursor(tk.END) + entry.focus_set() + + frame_btn = tk.Frame(root) + frame_btn.pack(pady=(0, 12)) + + def schvalit(event=None): + result["value"] = var.get().strip() + root.destroy() + + def preskocit(event=None): + result["value"] = None + root.destroy() + + tk.Button(frame_btn, text="✓ Schválit (Enter)", command=schvalit, + bg="#2a7a2a", fg="white", font=("Segoe UI", 10, "bold"), + padx=16, pady=6).pack(side="left", padx=8) + tk.Button(frame_btn, text="✗ Přeskočit (Esc)", command=preskocit, + bg="#7a2a2a", fg="white", font=("Segoe UI", 10), + padx=16, pady=6).pack(side="left", padx=8) + + root.bind("", schvalit) + root.bind("", preskocit) + + root.update_idletasks() + sw = root.winfo_screenwidth() + w = root.winfo_width() + x = (sw - w) // 2 + + # Pozice pod preview oknem pokud byl předán argument --below-y=N + below_y = None + for arg in sys.argv: + if arg.startswith("--below-y="): + below_y = int(arg.split("=", 1)[1]) + break + y = below_y if below_y is not None else (root.winfo_screenheight() - root.winfo_height() - 60) + root.geometry(f"+{x}+{y}") + + root.lift() + root.focus_force() + root.mainloop() + + print(json.dumps({"value": result["value"]}, ensure_ascii=False)) + + +if __name__ == "__main__": + main() diff --git a/Medevio/60 ScansProcessing/variant_picker.py b/Medevio/60 ScansProcessing/variant_picker.py new file mode 100644 index 0000000..b4cb5e5 --- /dev/null +++ b/Medevio/60 ScansProcessing/variant_picker.py @@ -0,0 +1,148 @@ +""" +Jedno okno pro výběr kompresní varianty PDF. +Nahoře tlačítka 1–N pro přepínání, tlačítko "Tohle beru" pro potvrzení. +Argumenty: variant_picker.py +JSON vstup: [{"path": "...", "label": "150 DPI / q80", "size_kb": 139}, ...] +JSON výstup (stdout): {"chosen": "cesta/k/souboru"} +""" +import json +import sys +from pathlib import Path +import tkinter as tk +from PIL import Image, ImageTk +import fitz + + +def main(): + if len(sys.argv) < 2: + sys.exit(1) + + variants = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8")) + chosen = {"path": None} + docs = [fitz.open(v["path"]) for v in variants] + current = [0] + photo_ref = [None] + + root = tk.Tk() + root.tk.call("encoding", "system", "utf-8") + root.attributes("-topmost", True) + + sh = root.winfo_screenheight() + sw = root.winfo_screenwidth() + win_h = sh - 80 # odečteme taskbar + title bar + img_h = win_h - 160 + img_w = sw // 2 # šířka okna = polovina monitoru + + x = (sw - img_w) // 2 + root.geometry(f"{img_w}x{win_h}+{x}+0") + root.resizable(False, False) + + # ── Horní panel s tlačítky variant ── + frame_top = tk.Frame(root, bg="#222") + frame_top.pack(fill="x") + + btn_variants = [] + current_page = [0] + + def show(n, page_n=0): + current[0] = n + current_page[0] = page_n + doc = docs[n] + page = doc[page_n] + zoom = min(img_w / page.rect.width, img_h / page.rect.height) + pix = page.get_pixmap(matrix=fitz.Matrix(zoom, zoom)) + img = Image.frombytes("RGB", (pix.width, pix.height), pix.samples) + photo_ref[0] = ImageTk.PhotoImage(img) + lbl_img.config(image=photo_ref[0]) + page_count = len(doc) + root.title(f"Varianta {n+1}: {variants[n]['label']} ({variants[n]['size_kb']} kB) — strana {page_n+1}/{page_count}") + for i, b in enumerate(btn_variants): + b.config(bg="#2a5a9a" if i == n else "#444") + btn_prev_page.config(state="normal" if page_n > 0 else "disabled") + btn_next_page.config(state="normal" if page_n < page_count - 1 else "disabled") + + for i, v in enumerate(variants): + b = tk.Button( + frame_top, + text=f"{i+1}. {v['label']}\n{v['size_kb']} kB", + font=("Segoe UI", 9, "bold"), + bg="#444", fg="white", + relief="flat", padx=8, pady=6, + command=lambda n=i: show(n), + ) + b.pack(side="left", padx=2, pady=4) + btn_variants.append(b) + + # ── Tlačítka Beru / Přeskočit — stejný styl jako varianty ── + def beru(): + chosen["path"] = variants[current[0]]["path"] + root.destroy() + + def preskocit(): + root.destroy() + + tk.Button( + frame_top, + text="✓ Tohle beru\n", + command=beru, + bg="#2a7a2a", fg="white", + font=("Segoe UI", 9, "bold"), + relief="flat", padx=8, pady=6, + ).pack(side="left", padx=2, pady=4) + + tk.Button( + frame_top, + text="✗ Přeskočit\n", + command=preskocit, + bg="#7a2a2a", fg="white", + font=("Segoe UI", 9, "bold"), + relief="flat", padx=8, pady=6, + ).pack(side="left", padx=2, pady=4) + + # ── Navigace stran — úplně vpravo ── + btn_next_page = tk.Button( + frame_top, + text="Další ►\n", + command=lambda: show(current[0], current_page[0] + 1), + bg="#555", fg="white", + font=("Segoe UI", 9, "bold"), + relief="flat", padx=8, pady=6, + ) + btn_next_page.pack(side="right", padx=2, pady=4) + + btn_prev_page = tk.Button( + frame_top, + text="◄ Před.\n", + command=lambda: show(current[0], current_page[0] - 1), + bg="#555", fg="white", + font=("Segoe UI", 9, "bold"), + relief="flat", padx=8, pady=6, + ) + btn_prev_page.pack(side="right", padx=2, pady=4) + + # ── Obrázek ── + lbl_img = tk.Label(root, bg="black") + lbl_img.pack(fill="both", expand=True) + + root.bind("", lambda e: show(0)) + root.bind("", lambda e: show(1)) + root.bind("", lambda e: show(2)) + root.bind("", lambda e: show(3)) + root.bind("", lambda e: show(4)) + root.bind("", lambda e: beru()) + root.bind("", lambda e: preskocit()) + + show(0) + root.mainloop() + + for d in docs: + try: + d.close() + except Exception: + pass + + print(json.dumps({"chosen": chosen["path"]}, ensure_ascii=False)) + + +if __name__ == "__main__": + main() diff --git a/Medevio/86 Agenda měsíc dopředu.py b/Medevio/86 Agenda měsíc dopředu.py new file mode 100644 index 0000000..6ffdd63 --- /dev/null +++ b/Medevio/86 Agenda měsíc dopředu.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Query Medevio for the full agenda of 17 Oct 2025, +print raw API response, and export to Excel. +""" + +import json +import time +from pathlib import Path +import requests +import pandas as pd +from openpyxl import load_workbook +from openpyxl.styles import Font, Alignment +from openpyxl.utils import get_column_letter +from datetime import datetime, timedelta +from dateutil.relativedelta import relativedelta # přidá měsíce správně +from Functions import get_reports_folder + +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +CALENDAR_ID = "144c4e12-347c-49ca-9ec0-8ca965a4470d" +CLINIC_SLUG = "mudr-buzalkova" + +# ==================== Load Token ==================== +def load_gateway_token(storage_path="medevio_storage.json"): + """Return Medevio gateway-access-token from saved Playwright storage.""" + from pathlib import Path + + path = Path(storage_path) + if not path.exists(): + raise SystemExit(f"❌ Storage file not found: {path}") + + with path.open("r", encoding="utf-8") as f: + state = json.load(f) + + token = next( + (c["value"] for c in state["cookies"] + if c["name"] == "gateway-access-token"), None + ) + + if not token: + raise SystemExit("❌ gateway-access-token not found in storage file.") + + return token + + +gateway_token = load_gateway_token() + +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", + "authorization": f"Bearer {gateway_token}", +} +# === Dynamické datumy === +dnes = datetime.utcnow().date() +since = datetime.combine(dnes, datetime.min.time()).replace(microsecond=1) +until = since + relativedelta(months=1) - timedelta(milliseconds=1) + +# ISO formát s "Z" (UTC) +since_iso = since.isoformat() + "Z" +until_iso = until.isoformat() + "Z" + +payload = { + "operationName": "ClinicAgenda_ListClinicReservations", + "variables": { + "calendarIds": [CALENDAR_ID], + "clinicSlug": CLINIC_SLUG, + "since": since_iso, + "until": until_iso, + "locale": "cs", + "emptyCalendarIds": False, + }, + "query": """query ClinicAgenda_ListClinicReservations( + $calendarIds: [UUID!], + $clinicSlug: String!, + $locale: Locale!, + $since: DateTime!, + $until: DateTime!, + $emptyCalendarIds: Boolean! + ) { + reservations: listClinicReservations( + clinicSlug: $clinicSlug, + calendarIds: $calendarIds, + since: $since, + until: $until + ) @skip(if: $emptyCalendarIds) { + id + start + end + note + done + color + request { + id + displayTitle(locale: $locale) + extendedPatient { + name + surname + dob + insuranceCompanyObject { shortName } + } + } + } + }""", +} + +print("since:", since_iso) +print("until:", until_iso) +# ==================== Query API ==================== +print("📡 Querying Medevio API for agenda...") +r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +print("Status:", r.status_code) + +try: + data = r.json() +except Exception as e: + print("❌ Could not parse JSON:", e) + print(r.text) + raise SystemExit() + +if "data" not in data or "reservations" not in data["data"]: + raise SystemExit("⚠️ No 'reservations' data found in response.") + +reservations = data["data"]["reservations"] +from datetime import datetime +from dateutil import parser, tz + +# ===== Process reservations into table ===== +rows = [] +for r in reservations: + req = r.get("request") or {} + patient = req.get("extendedPatient") or {} + insurance = patient.get("insuranceCompanyObject") or {} + + # parse datetimes (convert to local time) + try: + start_dt = parser.isoparse(r.get("start")).astimezone(tz.gettz("Europe/Prague")) + end_dt = parser.isoparse(r.get("end")).astimezone(tz.gettz("Europe/Prague")) + except Exception: + start_dt = end_dt = None + + date_str = start_dt.strftime("%Y-%m-%d") if start_dt else "" + time_interval = f"{start_dt.strftime('%H:%M')}-{end_dt.strftime('%H:%M')}" if start_dt and end_dt else "" + + rows.append({ + "Date": date_str, + "Time": time_interval, + "Title": req.get("displayTitle") or "", + "Patient": f"{patient.get('surname','')} {patient.get('name','')}".strip(), + "DOB": patient.get("dob") or "", + "Insurance": insurance.get("shortName") or "", + "Note": r.get("note") or "", + "Color": r.get("color") or "", + "Request_ID": req.get("id") or "", + "Reservation_ID": r.get("id"), + }) + +df = pd.DataFrame(rows).sort_values(["Date", "Time"]) + +# ===== Excel export ===== +EXPORT_DIR = Path(get_reports_folder()) +# EXPORT_DIR = Path(r"C:\Users\vlado\PycharmProjects\Medevio\exports") +EXPORT_DIR.mkdir(exist_ok=True) +timestamp = time.strftime("%Y-%m-%d %H-%M-%S") +xlsx_path = EXPORT_DIR / f"Medevio_agenda_{timestamp}.xlsx" + +# remove old files +for old in EXPORT_DIR.glob("Medevio_agenda_*.xlsx"): + try: + old.unlink() + except Exception: + pass + +df.to_excel(xlsx_path, index=False) +wb = load_workbook(xlsx_path) +ws = wb.active + +# === Apply styling and custom column widths === +widths = { + 1: 11, # A - Date + 2: 13, # B - Time + 3: 45, # C - Title + 4: 30, # D - Patient + 5: 15, # E - DOB + 6: 15, # F - Insurance + 7: 30, # G - Note + 8: 15, # H - Color + 9: 37, # I - Request_ID + 10: 37 # J - Reservation_ID +} + +for col_idx in range(1, len(df.columns) + 1): + col_letter = get_column_letter(col_idx) + c = ws.cell(row=1, column=col_idx) + c.font = Font(bold=True) + c.alignment = Alignment(horizontal="center") + ws.column_dimensions[col_letter].width = widths.get(col_idx, 20) + +ws.freeze_panes = "A2" + +wb.save(xlsx_path) +print(f"📘 Exported clean agenda view to:\n{xlsx_path}") diff --git a/Medevio/Emailtest/10 EmailTest.py b/Medevio/Emailtest/10 EmailTest.py new file mode 100644 index 0000000..14754f9 --- /dev/null +++ b/Medevio/Emailtest/10 EmailTest.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import smtplib +from email.message import EmailMessage + +# ========= CONFIG ========= +SMTP_SERVER = "smtp.office365.com" +SMTP_PORT = 587 +EMAIL_FROM = "ordinace@buzalkova.cz" +EMAIL_TO = "vladimir.buzalka@buzalka.cz" +SMTP_USER = "ordinace@buzalkova.cz" +SMTP_PASS = "********" # <- your Office365 APP PASSWORD (see note below) +# ========================== + +# Create the email +msg = EmailMessage() +msg["Subject"] = "Test zpráva z Pythonu" +msg["From"] = EMAIL_FROM +msg["To"] = EMAIL_TO +msg.set_content("Dobrý den,\n\ntoto je testovací e-mail odeslaný z Python skriptu.\n\n--\nOrdinace MUDr. Buzalková") + +# Send the email +with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: + server.starttls() # enable TLS encryption + server.login(SMTP_USER, SMTP_PASS) + server.send_message(msg) + +print("✅ E-mail byl úspěšně odeslán!") diff --git a/Medevio/Functions.py b/Medevio/Functions.py new file mode 100644 index 0000000..8c5cc9e --- /dev/null +++ b/Medevio/Functions.py @@ -0,0 +1,98 @@ +import socket,fdb,pymysql +from pymysql.cursors import DictCursor + +import pymysql +from pymysql.cursors import DictCursor +import socket + +def get_path_ciselniky(): + hostname = socket.gethostname().strip().upper() + if hostname in ("NTBVBHP470G10", "Z230"): + return r"u:\Dropbox\!!!Days\Downloads Z230\Pracuji_na\Import" + elif hostname == "SESTRA": + return r"z:\Dropbox\!!!Days\Downloads Z230\Pracuji_na\Import" + else: + print(f"Unknown host: {hostname}") + return None + +def get_reports_folder(): + hostname = socket.gethostname().strip().upper() + if hostname in ("NTBVBHP470G10", "Z230"): + return r"u:\Dropbox\!!!Days\Downloads Z230" + elif hostname in ["SESTRA","POHODA","LEKAR"]: + return r"z:\Dropbox\Ordinace\Reporty" + else: + print(f"Unknown host: {hostname}") + return None + +def get_mysql_connection(cursor_mode=None): + """ + Return a PyMySQL connection. + If cursor_mode == "DICT", return connection with DictCursor. + Otherwise, return default tuple cursor connection. + """ + hostname = socket.gethostname().strip() + + # decide cursor class + cursor_cls = DictCursor if cursor_mode == "DICT" else None + + if hostname in ("NTBVBHP470G10", "Z230"): + MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + autocommit=True, + ) + elif hostname == "SESTRA": + MYSQL_CFG = dict( + host="127.0.0.1", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + autocommit=True, + ) + else: + print(f"Unknown host: {hostname}") + return None + + # include cursorclass only if we want a dict cursor + if cursor_cls is not None: + MYSQL_CFG["cursorclass"] = cursor_cls + + try: + return pymysql.connect(**MYSQL_CFG) + except pymysql.MySQLError as e: + print(f"MySQL connection failed: {e}") + return None + + +def get_medicus_connection(): + """ + Attempt to create a Firebird connection to the Medicus database. + Returns: + fdb.Connection object on success + None on failure + """ + if socket.gethostname().strip() in ("NTBVBHP470G10","Z230"): + MEDICUS_CFG = dict( + dsn=r"192.168.1.4:z:\medicus 3\data\medicus.fdb", + user="SYSDBA", + password="masterkey", + charset="win1250", + ) + elif socket.gethostname().strip()=="SESTRA": + MEDICUS_CFG = dict( + dsn=r"192.168.1.10:m:\medicus\data\medicus.fdb", + user="SYSDBA", + password="masterkey", + charset="win1250", + ) + + try: + return fdb.connect(**MEDICUS_CFG) + except fdb.fbcore.DatabaseError as e: + print(f"Medicus DB connection failed: {e}") + return None \ No newline at end of file diff --git a/Medevio/Knihovny/__init__.py b/Medevio/Knihovny/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Medevio/Knihovny/najdi_dropbox.py b/Medevio/Knihovny/najdi_dropbox.py new file mode 100644 index 0000000..a6444d7 --- /dev/null +++ b/Medevio/Knihovny/najdi_dropbox.py @@ -0,0 +1,62 @@ +import winreg +import json +import os + + +def get_dropbox_root() -> str: + """ + Vrátí kořenovou cestu složky Dropbox na tomto počítači. + + Dropbox může být nainstalován na různých discích (C:, U:, Z: …), + ale struktura složek uvnitř zůstává vždy stejná. Tato funkce zjistí + aktuální umístění, takže ostatní skripty nemusí cestu napevno zadávat. + + Postup hledání (v tomto pořadí): + 1. Registr HKCU\\Software\\Dropbox\\ks — hlavní klíč, hodnota "Personal" + je uložena jako byte array v kódování UTF-16 LE. + 2. Registr HKCU\\Software\\Dropbox\\ks1 — alternativní klíč používaný + novějšími verzemi klienta Dropbox. + 3. Soubor info.json v %APPDATA%\\Dropbox\\ nebo %LOCALAPPDATA%\\Dropbox\\ + — záložní metoda, pokud registr cestu neobsahuje. + + Vrací: + str: Absolutní cesta ke kořenové složce Dropboxu, např. "U:\\Dropbox". + + Vyvolá: + RuntimeError: Pokud se cestu nepodaří zjistit žádnou z metod. + + Příklad použití: + from Knihovny.najdi_dropbox import get_dropbox_root + import os + + ROOT = get_dropbox_root() + PACIENTI = os.path.join(ROOT, "Ordinace", "Pacienti") + """ + + # Metoda 1 a 2: registr HKCU\Software\Dropbox\ks a ks1 + for subkey in (r"Software\Dropbox\ks", r"Software\Dropbox\ks1"): + try: + with winreg.OpenKey(winreg.HKEY_CURRENT_USER, subkey) as key: + value, _ = winreg.QueryValueEx(key, "Personal") + path = bytes(value).decode("utf-16-le").rstrip("\x00") + if path: + return path + except (OSError, UnicodeDecodeError): + continue + + # Metoda 3: záložní — info.json v AppData + for base in (os.getenv("APPDATA", ""), os.getenv("LOCALAPPDATA", "")): + info_path = os.path.join(base, "Dropbox", "info.json") + if os.path.isfile(info_path): + with open(info_path, encoding="utf-8") as f: + info = json.load(f) + path = (info.get("personal") or info.get("business") or {}).get("path", "") + if path: + return path + + raise RuntimeError("Nepodařilo se zjistit cestu k Dropboxu.") + + +if __name__ == "__main__": + root = get_dropbox_root() + print(f"Dropbox root: {root}") diff --git a/Medevio/Knihovny/najdi_medicus.py b/Medevio/Knihovny/najdi_medicus.py new file mode 100644 index 0000000..e0b4543 --- /dev/null +++ b/Medevio/Knihovny/najdi_medicus.py @@ -0,0 +1,49 @@ +import socket +from dataclasses import dataclass + + +@dataclass +class MedicusConfig: + server: str + path: str + + @property + def dsn(self) -> str: + return f"{self.server}:{self.path}" + + +def get_medicus_config() -> MedicusConfig: + """ + Vrátí konfiguraci připojení k databázi Medicus podle jména počítače. + + Logika: + - LEKAR → localhost, M:\\Medicus\\Data\\Medicus.fdb (ostrý lokální) + - SESTRA → 192.168.1.10, M:\\Medicus\\Data\\Medicus.fdb (ostrý přes síť) + - LENOVO → 192.168.1.10, M:\\Medicus\\Data\\Medicus.fdb (testovací přes síť) + - ostatní → localhost, C:\\Medicus 3\\Data\\Medicus.fdb (testovací lokální) + + Vrací: + MedicusConfig s atributy server, path a vlastností dsn ("server:path"). + + Příklad použití: + from Knihovny.najdi_medicus import get_medicus_config + + cfg = get_medicus_config() + con = fdb.connect(dsn=cfg.dsn, user="SYSDBA", password="masterkey") + """ + hostname = socket.gethostname().upper() + + if hostname == "LEKAR": + return MedicusConfig(server="localhost", path=r"M:\Medicus\Data\Medicus.fdb") + elif hostname in ("SESTRA", "LENOVO"): + return MedicusConfig(server="192.168.1.10", path=r"M:\Medicus\Data\Medicus.fdb") + else: + return MedicusConfig(server="localhost", path=r"C:\Medicus 3\Data\Medicus.fdb") + + +if __name__ == "__main__": + cfg = get_medicus_config() + print(f"Hostname : {socket.gethostname()}") + print(f"Server : {cfg.server}") + print(f"Path : {cfg.path}") + print(f"DSN : {cfg.dsn}") diff --git a/Medevio/Testy/01 Test b/Medevio/Testy/01 Test new file mode 100644 index 0000000..9da1805 --- /dev/null +++ b/Medevio/Testy/01 Test @@ -0,0 +1,271 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Stáhne konverzaci pro požadavky, kde: +messagesProcessed IS NULL OR messagesProcessed < updatedAt. + +Vloží do medevio_conversation a přílohy do medevio_downloads. +""" + +import zlib +import json +import requests +import pymysql +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# 🔧 CONFIGURATION +# ============================== +TOKEN_PATH = Path("token.txt") + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", + "cursorclass": pymysql.cursors.DictCursor, +} + +GRAPHQL_QUERY_MESSAGES = r""" +query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) { + messages: listMessages(patientRequestId: $requestId, updatedSince: $updatedSince) { + id + createdAt + updatedAt + readAt + text + type + sender { + id + name + surname + clinicId + } + medicalRecord { + id + description + contentType + url + downloadUrl + token + createdAt + updatedAt + } + } +} +""" + +# ============================== +# ⏱ DATETIME PARSER +# ============================== +def parse_dt(s): + if not s: + return None + try: + return datetime.fromisoformat(s.replace("Z", "+00:00")) + except: + pass + try: + return datetime.strptime(s[:19], "%Y-%m-%dT%H:%M:%S") + except: + return None + +# ============================== +# 🔐 TOKEN +# ============================== +def read_token(path: Path) -> str: + tok = path.read_text(encoding="utf-8").strip() + return tok.replace("Bearer ", "") + +# ============================== +# 📡 FETCH MESSAGES +# ============================== +def fetch_messages(headers, request_id): + payload = { + "operationName": "UseMessages_ListMessages", + "query": GRAPHQL_QUERY_MESSAGES, + "variables": {"requestId": request_id, "updatedSince": None}, + } + + r = requests.post("https://api.medevio.cz/graphql", json=payload, headers=headers, timeout=30) + if r.status_code != 200: + print("❌ HTTP", r.status_code, "for request", request_id) + return [] + + try: + data = r.json() + except Exception as e: + print(f"❌ Failed to parse JSON for {request_id}: {e}") + print(" Response text:", r.text[:500]) + return [] + + messages = data.get("data", {}).get("messages", []) or [] + print(f" 🌐 API returned {len(messages)} messages for {request_id}") + return messages + + + +# ============================== +# 💾 SAVE MESSAGE +# ============================== +def insert_message(cur, req_id, msg): + + sender = msg.get("sender") or {} + sender_name = " ".join( + x for x in [sender.get("name"), sender.get("surname")] if x + ) or None + + sql = """ + INSERT INTO medevio_conversation ( + id, request_id, + sender_name, sender_id, sender_clinic_id, + text, created_at, read_at, updated_at, + attachment_url, attachment_description, attachment_content_type + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + sender_name = VALUES(sender_name), + sender_id = VALUES(sender_id), + sender_clinic_id = VALUES(sender_clinic_id), + text = VALUES(text), + created_at = VALUES(created_at), + read_at = VALUES(read_at), + updated_at = VALUES(updated_at), + attachment_url = VALUES(attachment_url), + attachment_description = VALUES(attachment_description), + attachment_content_type = VALUES(attachment_content_type) + """ + + mr = msg.get("medicalRecord") or {} + + cur.execute(sql, ( + msg.get("id"), + req_id, + sender_name, + sender.get("id"), + sender.get("clinicId"), + msg.get("text"), + parse_dt(msg.get("createdAt")), + parse_dt(msg.get("readAt")), + parse_dt(msg.get("updatedAt")), + mr.get("downloadUrl") or mr.get("url"), + mr.get("description"), + mr.get("contentType") + )) + + +# ============================== +# 💾 DOWNLOAD MESSAGE ATTACHMENT +# ============================== +def insert_download(cur, req_id, msg, existing_ids): + + mr = msg.get("medicalRecord") or {} + attachment_id = mr.get("id") + if not attachment_id: + return + + if attachment_id in existing_ids: + return # skip duplicates + + url = mr.get("downloadUrl") or mr.get("url") + if not url: + return + + try: + r = requests.get(url, timeout=30) + r.raise_for_status() + data = r.content + except Exception as e: + print("⚠️ Failed to download:", e) + return + + filename = url.split("/")[-1].split("?")[0] + + cur.execute(""" + INSERT INTO medevio_downloads ( + request_id, attachment_id, attachment_type, + filename, content_type, file_size, created_at, file_content + ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) + ON DUPLICATE KEY UPDATE + file_content = VALUES(file_content), + file_size = VALUES(file_size), + downloaded_at = NOW() + """, ( + req_id, + attachment_id, + "MESSAGE_ATTACHMENT", + filename, + mr.get("contentType"), + len(data), + parse_dt(msg.get("createdAt")), + data + )) + + existing_ids.add(attachment_id) + + +# ============================== +# 🧠 MAIN +# ============================== +def main(): + + token = read_token(TOKEN_PATH) + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + "Accept": "application/json", + } + + conn = pymysql.connect(**DB_CONFIG) + + # ---- Load existing attachments + with conn.cursor() as cur: + cur.execute("SELECT attachment_id FROM medevio_downloads") + existing_ids = {row["attachment_id"] for row in cur.fetchall()} + + print(f"📦 Already downloaded attachments: {len(existing_ids)}\n") + + # ---- Select 10 oldest pozadavky (regardless of messagesProcessed) + sql = """ + SELECT id + FROM pozadavky + ORDER BY updatedAt ASC + LIMIT 10 + """ + with conn.cursor() as cur: + cur.execute(sql) + requests_to_process = cur.fetchall() + + print(f"📋 Will process {len(requests_to_process)} oldest pozadavků.\n") + + + # ---- Process each pozadavek + for idx, row in enumerate(requests_to_process, 1): + req_id = row["id"] + print(f"[{idx}/{len(requests_to_process)}] Processing {req_id} …") + + messages = fetch_messages(headers, req_id) + + with conn.cursor() as cur: + for msg in messages: + insert_message(cur, req_id, msg) + insert_download(cur, req_id, msg, existing_ids) + conn.commit() + + with conn.cursor() as cur: + cur.execute("UPDATE pozadavky SET messagesProcessed = NOW() WHERE id = %s", (req_id,)) + conn.commit() + + print(f" ✅ {len(messages)} messages saved\n") + time.sleep(0.25) + + conn.close() + print("🎉 Done!") + + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/07VytvorPozadavekChripka.py b/Medevio/Testy/07VytvorPozadavekChripka.py new file mode 100644 index 0000000..29b2f70 --- /dev/null +++ b/Medevio/Testy/07VytvorPozadavekChripka.py @@ -0,0 +1,125 @@ +#fcb2414b-067b-4ca2-91b2-6c36a86d4cbb = Vladimir Buzalka +#0210db7b-8fb0-4b47-b1d8-ec7a10849a63 = Vladko - testovací aplikace + +#tento kód otevře pacienta podle jeho UUID a založí mu požadavek chřipka a finito + +from pathlib import Path +from datetime import datetime +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout +import time + +STATE_FILE = Path("../medevio_storage.json") +PATIENT_UUID = "0210db7b-8fb0-4b47-b1d8-ec7a10849a63" +PATIENT_URL = f"https://my.medevio.cz/mudr-buzalkova/klinika/pacienti?pacient={PATIENT_UUID}" +MESSAGE_TEXT = "Dobrý den, vakcína proti chřipce je k dispozici, zítra (úterý 23.9) budeme očkovat od 13-17 hodin, prosím potvrďte jestli můžete přijít a jaký čas se Vám hodí." + +def savepage(name: str, page): + """ + Save the current HTML of a Playwright Page to + U:\Dropbox\!!!Days\Downloads Z230\Pages\.html + """ + folder = Path(r"U:\Dropbox\!!!Days\Downloads Z230\Pages") + folder.mkdir(parents=True, exist_ok=True) # ensure the folder exists + + # create sortable timestamp like 2025-09-19_14-05-33 + ts = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + + filepath = folder / f"{ts}_{name}.html" + with filepath.open("w", encoding="utf-8") as f: + f.write(page.content()) + print(f"Saved page snapshot to {filepath}") + +def main(): + with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=200) + context = browser.new_context(storage_state=str(STATE_FILE)) + + # ---- keep a stable reference to the patient card page ---- + ptcard = context.new_page() + ptcard.goto(PATIENT_URL, wait_until="networkidle") + #saving ptcard1 + # savepage("ptcard1",ptcard) + + ptcard.get_by_text("Historie požadavků").wait_for(timeout=15_000) + + # 1) Create new request on the patient card + ptcard.get_by_role("button", name="Nový požadavek").click() + ptcard.wait_for_timeout(300) # small settle + + # cursor is already in the "Začněte psát…" field + ptcard.keyboard.type("očkování - chřipka") + ptcard.locator("[role='option']", has_text="Očkování - Chřipka").first.click() + ptcard.get_by_role("button", name="Vytvořit požadavek").click() + + #saving ptcard1 + # savepage("ptcard2",ptcard) + + # 2) Ensure we are back on the patient card again + # (some UIs rerender; either way we want a fresh list) + try: + ptcard.get_by_text("Historie požadavků").wait_for(timeout=7_000) + except PWTimeout: + # If for any reason we are not on the card, navigate back explicitly + ptcard.goto(PATIENT_URL, wait_until="networkidle") + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + + # Optional: hard refresh to get the just-created request at the top + ptcard.reload(wait_until="networkidle") + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + time.sleep(5) + + # 3) Open the “Očkování – Chřipka …” request card by its H4 text + # (click the whole card container, not just the heading) + try: + # wait until at least one request card is rendered + ptcard.locator("div[data-testid='patient-request-item']").first.wait_for(timeout=10_000) + + # locate the specific card that contains the H4 with "Očkování - Chřipka" + chripka_card = ptcard.locator("div[data-testid='patient-request-item']").filter( + has=ptcard.locator("h4:has-text('Očkování - Chřipka')") + ).first + + # ensure it's attached/visible then click it + chripka_card.wait_for(timeout=10_000) + chripka_card.click(timeout=5_000) + + except Exception as e: + # Fallback: click the very first card on the list (newest) + try: + first_card = ptcard.locator("div[data-testid='patient-request-item']").first + first_card.click(timeout=5_000) + except Exception: + # if even that fails, save snapshot for inspection and raise + savepage("ptcard_click_fail", ptcard) + raise + + # 4) Wait for request detail and send the message + # We’re now on the detail page + try: + ptcard.wait_for_url("**/pozadavky?pozadavek=*", timeout=10_000) + except PWTimeout: + pass # URL may be SPA; rely on textarea presence + + ptcard.get_by_placeholder("Napište odpověď").wait_for(timeout=10_000) + ptcard.get_by_placeholder("Napište odpověď").fill(MESSAGE_TEXT) + + sent = False + for sel in ["button:has-text('Odeslat')", + "button:has-text('Odeslat zprávu')", + "button:has-text('Odeslat SMS')", + "button:has-text('Odeslat do aplikace')"]: + try: + ptcard.click(sel, timeout=4000) + sent = True + break + except Exception: + continue + + if not sent: + raise RuntimeError("Nepodařilo se najít/kliknout tlačítko Odeslat.") + + ptcard.wait_for_timeout(2000) + print("✅ Požadavek vytvořen, otevřen a zpráva odeslána.") + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/07VytvorPozadavekChripka01.py b/Medevio/Testy/07VytvorPozadavekChripka01.py new file mode 100644 index 0000000..724e356 --- /dev/null +++ b/Medevio/Testy/07VytvorPozadavekChripka01.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from pathlib import Path +from datetime import datetime +import re +import time +import pymysql +from pymysql.cursors import DictCursor +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ===================================================== +STATE_FILE = Path("../medevio_storage.json") # saved login state from your login script + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + cursorclass=DictCursor, + autocommit=False, +) + +UUID_COLUMN = "rid" # column with Medevio UUID +FLAG_COLUMN = "pozchripkavytvoren" # bool flag we update after success +FLAG_TS_COL = "pozchripka_vytv_at" # optional timestamp when request created + +MESSAGE_TEXT = ( + "Dobrý den, vakcína proti chřipce je k dispozici, " + "zítra (úterý 23.9) budeme očkovat od 13-17 hodin, " + "prosím potvrďte jestli můžete přijít a jaký čas se Vám hodí." +) +PATIENT_URL_TMPL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti?pacient={uuid}" +RC_DIGITS = re.compile(r"\D+") +# ===================================================== + +def normalize_rc(rc: str) -> str: + """Return digits-only RC (removes slash/spaces).""" + return RC_DIGITS.sub("", rc or "") + +def ensure_flag_columns(conn): + """Create required columns if missing (works for all MySQL/MariaDB).""" + needed = { + FLAG_COLUMN: "TINYINT(1) NULL", + FLAG_TS_COL: "DATETIME NULL", + } + with conn.cursor() as cur: + for col, coldef in needed.items(): + cur.execute(""" + SELECT COUNT(*) AS cnt + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'patients_extracted' + AND COLUMN_NAME = %s + """, (col,)) + if cur.fetchone()["cnt"] == 0: + ddl = f"ALTER TABLE `patients_extracted` ADD COLUMN `{col}` {coldef}" + print("Adding column:", ddl) + cur.execute(ddl) + conn.commit() + +def fetch_uuid_by_rc(conn, rc_digits: str) -> dict | None: + """ + Return row with rid (primary key), medevio UUID, jmeno, prijmeni for the given RC. + Prints the query and parameter for debugging. + """ + sql = ( + f"SELECT rid, `{UUID_COLUMN}` AS uuid, jmeno, prijmeni, rc " + "FROM patients_extracted " + "WHERE REPLACE(REPLACE(rc,'/',''),' ','') = %s " + "LIMIT 1" + ) + print("DEBUG SQL:", sql, "| param:", rc_digits) + + with conn.cursor() as cur: + cur.execute(sql, (rc_digits,)) + row = cur.fetchone() + + print("DEBUG result:", row) + return row + +def mark_flag_success(conn, rid: str): + """Update the flag once the Medevio request is created.""" + with conn.cursor() as cur: + cur.execute( + f"UPDATE patients_extracted " + f"SET {FLAG_COLUMN}=1, {FLAG_TS_COL}=NOW() " + f"WHERE rid=%s", + (rid,) + ) + conn.commit() + +def create_flu_request_for_uuid(uuid: str) -> bool: + """Automates Medevio UI to create 'Očkování - Chřipka' request and send MESSAGE_TEXT.""" + with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=200) + context = browser.new_context(storage_state=str(STATE_FILE)) + ptcard = context.new_page() + + url = PATIENT_URL_TMPL.format(uuid=uuid) + ptcard.goto(url, wait_until="networkidle") + + # ensure patient card loaded + ptcard.get_by_text("Historie požadavků").wait_for(timeout=15_000) + + # create new request + ptcard.get_by_role("button", name="Nový požadavek").click() + ptcard.wait_for_timeout(300) + ptcard.keyboard.type("očkování - chřipka") + ptcard.locator("[role='option']", has_text="Očkování - Chřipka").first.click() + ptcard.get_by_role("button", name="Vytvořit požadavek").click() + time.sleep(5) + # wait until back on card + try: + ptcard.get_by_text("Historie požadavků").wait_for(timeout=7_000) + except PWTimeout: + ptcard.goto(url, wait_until="networkidle") + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + + ptcard.reload(wait_until="networkidle") + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + time.sleep(2) + + # open the new request + try: + ptcard.locator("div[data-testid='patient-request-item']").first.wait_for(timeout=10_000) + chripka_card = ptcard.locator("div[data-testid='patient-request-item']").filter( + has=ptcard.locator("h4:has-text('Očkování - Chřipka')") + ).first + chripka_card.click(timeout=5_000) + except Exception: + ptcard.locator("div[data-testid='patient-request-item']").first.click(timeout=5_000) + + # send the message + try: + ptcard.wait_for_url("**/pozadavky?pozadavek=*", timeout=10_000) + except PWTimeout: + pass + ptcard.get_by_placeholder("Napište odpověď").wait_for(timeout=10_000) + ptcard.get_by_placeholder("Napište odpověď").fill(MESSAGE_TEXT) + + for sel in [ + "button:has-text('Odeslat')", + "button:has-text('Odeslat zprávu')", + "button:has-text('Odeslat SMS')", + "button:has-text('Odeslat do aplikace')", + ]: + try: + ptcard.click(sel, timeout=4000) + browser.close() + return True + except Exception: + continue + + browser.close() + return False + +def main(): + rc_input = input("Zadejte RC (s/bez lomítka, Enter pro konec): ").strip() + # rc_input="320312460" + if not rc_input: + print("Konec.") + return + rc = normalize_rc(rc_input) + + conn = pymysql.connect(**MYSQL_CFG) + try: + ensure_flag_columns(conn) + + row = fetch_uuid_by_rc(conn, rc) + if not row or not row.get("uuid"): + print(f"✗ Pacient s RC {rc} nenalezen nebo nemá sloupec {UUID_COLUMN}.") + return + + print(f"→ Nalezen: {row.get('prijmeni','')} {row.get('jmeno','')} " + f"| RC {row.get('rc','')} | UUID {row['uuid']} | rid {row['rid']}") + + if create_flu_request_for_uuid(row["uuid"]): + mark_flag_success(conn, row["rid"]) + print("✅ Požadavek chřipka vytvořen a DB aktualizována.") + else: + print("✗ Nepodařilo se odeslat zprávu v požadavku.") + + finally: + conn.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/07VytvorPozadavekChripka02majiucet.py b/Medevio/Testy/07VytvorPozadavekChripka02majiucet.py new file mode 100644 index 0000000..2a3c896 --- /dev/null +++ b/Medevio/Testy/07VytvorPozadavekChripka02majiucet.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from pathlib import Path +import re +import time +import pymysql +from pymysql.cursors import DictCursor +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ================== CONFIG ================== +STATE_FILE = Path("../medevio_storage.json") + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + cursorclass=DictCursor, + autocommit=False, +) + +# Column that goes into the Medevio URL. +# If your Medevio patient UUID is stored in a different column, change this: +UUID_COLUMN = "rid" # Medevio UUID in your table +FLAG_COLUMN = "pozchripkavytvoren" # set to 1 on success +FLAG_TS_COL = "pozchripka_vytv_at" # timestamp when created + +MESSAGE_TEXT = ( + "Dobrý den, vakcína proti chřipce je k dispozici, " + "dnes (úterý 23.9) budeme očkovat od 13-17 hodin, " + "prosím, otevřete si tento požadavek a vyberte si termín. Můžete si samozřejmě vybrat i kterýkoliv jiný den, ale hromadně očkujeme další 4 úterky. Další 4 úterky najdete spoustu termínů." +) + +PATIENT_URL_TMPL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti?pacient={uuid}" +BATCH_LIMIT = 2 # change if you want to limit how many to process in one run +PAUSE_BETWEEN = 1.0 # seconds between patients (UI courtesy) +# =========================================== + +RC_DIGITS = re.compile(r"\D+") + +def ensure_flag_columns(conn): + """Create required columns if missing (portable).""" + needed = { + FLAG_COLUMN: "TINYINT(1) NULL", + FLAG_TS_COL: "DATETIME NULL", + } + with conn.cursor() as cur: + for col, coldef in needed.items(): + cur.execute(""" + SELECT COUNT(*) AS cnt + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'patients_extracted' + AND COLUMN_NAME = %s + """, (col,)) + if cur.fetchone()["cnt"] == 0: + cur.execute(f"ALTER TABLE `patients_extracted` ADD COLUMN `{col}` {coldef}") + conn.commit() + +def fetch_batch(conn): + """ + Get patients where: + - flu_reply = 'ano' + - mamedevioucet is true-ish + - rc starts with '8' (after removing slash/spaces) + - pozchripkavytvoren is NULL + - uuid column is present + """ + sql = f""" + SELECT + rid, jmeno, prijmeni, rc, + `{UUID_COLUMN}` AS uuid + FROM patients_extracted + WHERE flu_reply = 'ano' + AND (mamedevioucet = 1 OR mamedevioucet = TRUE OR mamedevioucet = '1') + AND REPLACE(REPLACE(rc,'/',''),' ','') LIKE '7%%' + AND {FLAG_COLUMN} IS NULL + AND `{UUID_COLUMN}` IS NOT NULL + AND `{UUID_COLUMN}` <> '' + ORDER BY prijmeni, jmeno + LIMIT %s + """ + with conn.cursor() as cur: + cur.execute(sql, (BATCH_LIMIT,)) + return cur.fetchall() + +def mark_flag_success(conn, rid: str): + with conn.cursor() as cur: + cur.execute( + f"UPDATE patients_extracted " + f"SET {FLAG_COLUMN}=1, {FLAG_TS_COL}=NOW() " + f"WHERE rid=%s", + (rid,) + ) + conn.commit() + +def create_flu_request_for_uuid(uuid: str) -> bool: + """Automate Medevio UI for one patient: create 'Očkování - Chřipka' and send MESSAGE_TEXT.""" + with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=200) + context = browser.new_context(storage_state=str(STATE_FILE)) + ptcard = context.new_page() + + url = PATIENT_URL_TMPL.format(uuid=uuid) + ptcard.goto(url, wait_until="networkidle") + + # ensure patient card loaded + ptcard.get_by_text("Historie požadavků").wait_for(timeout=15_000) + + # create new request + ptcard.get_by_role("button", name="Nový požadavek").click() + ptcard.wait_for_timeout(300) + ptcard.keyboard.type("očkování - chřipka") + ptcard.locator("[role='option']", has_text="Očkování - Chřipka").first.click() + ptcard.get_by_role("button", name="Vytvořit požadavek").click() + time.sleep(2) + # # wait until back on card + # try: + # ptcard.get_by_text("Historie požadavků").wait_for(timeout=7_000) + # except PWTimeout: + # ptcard.goto(url, wait_until="networkidle") + # ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + + # ptcard.reload(wait_until="networkidle") + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + time.sleep(2) + + # open the new request + try: + ptcard.locator("div[data-testid='patient-request-item']").first.wait_for(timeout=10_000) + chripka_card = ptcard.locator("div[data-testid='patient-request-item']").filter( + has=ptcard.locator("h4:has-text('Očkování - Chřipka')") + ).first + chripka_card.click(timeout=5_000) + except Exception: + ptcard.locator("div[data-testid='patient-request-item']").first.click(timeout=5_000) + + # send the message + # try: + # ptcard.wait_for_url("**/pozadavky?pozadavek=*", timeout=10_000) + # except PWTimeout: + # pass + ptcard.get_by_placeholder("Napište odpověď").wait_for(timeout=10_000) + ptcard.get_by_placeholder("Napište odpověď").fill(MESSAGE_TEXT) + time.sleep(2) + for sel in [ + "button:has-text('Odeslat')", + "button:has-text('Odeslat zprávu')", + "button:has-text('Odeslat SMS')", + "button:has-text('Odeslat do aplikace')", + ]: + try: + ptcard.click(sel, timeout=4000) + browser.close() + return True + except Exception: + continue + + browser.close() + return False + +def main(): + conn = pymysql.connect(**MYSQL_CFG) + try: + ensure_flag_columns(conn) + + rows = fetch_batch(conn) + if not rows: + print("Nenalezen žádný pacient pro zpracování.") + return + + print(f"Zpracujeme {len(rows)} pacientů…") + + processed = ok = fail = 0 + for r in rows: + processed += 1 + rid = r["rid"] + uuid = r["uuid"] + name = f"{r.get('prijmeni','')}, {r.get('jmeno','')}" + rc = r.get("rc","") + + print(f"[{processed:>3}] {name} | RC {rc} | UUID {uuid}") + + try: + success = create_flu_request_for_uuid(uuid) + if success: + mark_flag_success(conn, rid) + ok += 1 + print(" ✓ vytvořeno + odesláno, DB flag nastaven") + else: + fail += 1 + print(" ✗ nepodařilo se odeslat zprávu (tlačítko 'Odeslat' nenalezeno)") + except Exception as e: + fail += 1 + conn.rollback() + print(f" ✗ chyba: {type(e).__name__}: {e}") + + time.sleep(PAUSE_BETWEEN) + + print(f"Hotovo. processed={processed}, ok={ok}, fail={fail}") + finally: + conn.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/07VytvorPozadavekChripka03Checkexisting.py b/Medevio/Testy/07VytvorPozadavekChripka03Checkexisting.py new file mode 100644 index 0000000..e68c137 --- /dev/null +++ b/Medevio/Testy/07VytvorPozadavekChripka03Checkexisting.py @@ -0,0 +1,322 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from pathlib import Path +import re +import time +import unicodedata +import pymysql +from pymysql.cursors import DictCursor +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout, Page + +# ================== CONFIG ================== +STATE_FILE = Path("../medevio_storage.json") + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + cursorclass=DictCursor, + autocommit=False, +) + +# Column that goes into the Medevio URL. +# If your Medevio patient UUID is stored in a different column, change this: +UUID_COLUMN = "rid" # Medevio UUID in your table +FLAG_COLUMN = "pozchripkavytvoren" # set to 1 on success +FLAG_TS_COL = "pozchripka_vytv_at" # timestamp when created + +# Optional: set your personal RID here to test on a single card; set to None for batch mode +TEST_RID = None # e.g. "fcb2414b-067b-4ca2-91b2-6c36a86d4cbb" +# TEST_RID = "fcb2414b-067b-4ca2-91b2-6c36a86d4cbb" + +MESSAGE_TEXT = ( + "Dobrý den, vakcína proti chřipce je k dispozici. " + "Vy nemáte účet v Medeviu a tedy si nemůžete vybrat termín, takže to zkusíme udělat manuálně. " + "Hlavní očkovací dny jsou úterý 07/10 a úterý 14/10, kdy očkujeme i COVID, kdo chce. Chřipku samostatně možno i kdykoliv jindy. Tak dejte vědět, jaký termín se Vám hodí a já si to poznamenám." +) + +PATIENT_URL_TMPL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti?pacient={uuid}" +BATCH_LIMIT = 50 # change if you want to limit how many to process in one run +PAUSE_BETWEEN = 1.0 # seconds between patients (UI courtesy) +# =========================================== + +RC_DIGITS = re.compile(r"\D+") + +def mark_flag_skipped(conn, rid: str): + """ + Pokud už požadavek na chřipku existuje: + - nastaví pozchripkavytvoren = 1 + - zapíše aktuální čas do pozchripka_vytv_at + """ + with conn.cursor() as cur: + cur.execute( + f"UPDATE patients_extracted " + f"SET {FLAG_COLUMN}=1, {FLAG_TS_COL}=NOW() " + f"WHERE rid=%s", + (rid,) + ) + conn.commit() + +# ---------- DB helpers ---------- +def ensure_flag_columns(conn): + """Create required columns if missing (portable).""" + needed = { + FLAG_COLUMN: "TINYINT(1) NULL", + FLAG_TS_COL: "DATETIME NULL", + } + with conn.cursor() as cur: + for col, coldef in needed.items(): + cur.execute(""" + SELECT COUNT(*) AS cnt + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'patients_extracted' + AND COLUMN_NAME = %s + """, (col,)) + if cur.fetchone()["cnt"] == 0: + cur.execute(f"ALTER TABLE `patients_extracted` ADD COLUMN `{col}` {coldef}") + conn.commit() + + +def fetch_batch(conn): + """ + Batch mode (TEST_RID is None): + - flu_reply = 'ano' + - mamedevioucet true-ish + - rc starts with '7' (after removing slash/spaces) <-- keep/adjust as you need + - pozchripkavytvoren is NULL + - uuid column present + Test mode (TEST_RID set): returns only that rid. + """ + if TEST_RID: + sql = f""" + SELECT + rid, jmeno, prijmeni, rc, + `{UUID_COLUMN}` AS uuid + FROM patients_extracted + WHERE rid = %s + LIMIT 1 + """ + with conn.cursor() as cur: + cur.execute(sql, (TEST_RID,)) + return cur.fetchall() + + sql = f""" + SELECT + rid, jmeno, prijmeni, rc, + `{UUID_COLUMN}` AS uuid + FROM patients_extracted + WHERE flu_reply = 'ano' + AND mamedevioucet = 0 + AND {FLAG_COLUMN} IS NULL + AND `{UUID_COLUMN}` IS NOT NULL + AND `{UUID_COLUMN}` <> '' + ORDER BY prijmeni, jmeno + LIMIT %s + """ + with conn.cursor() as cur: + cur.execute(sql, (BATCH_LIMIT,)) + return cur.fetchall() + + +def mark_flag_success(conn, rid: str): + with conn.cursor() as cur: + cur.execute( + f"UPDATE patients_extracted " + f"SET {FLAG_COLUMN}=1, {FLAG_TS_COL}=NOW() " + f"WHERE rid=%s", + (rid,) + ) + conn.commit() + + +# ---------- UI helpers ---------- +def _strip_diacritics(s: str) -> str: + """Return s without diacritics (e.g., 'chřipka' -> 'chripka').""" + return ''.join(c for c in unicodedata.normalize('NFKD', s) if not unicodedata.combining(c)) + + +def has_existing_chripka_request(page: Page, timeout_ms: int = 15000) -> bool: + """ + Detect an existing 'Očkování - Chřipka' request on the patient card. + - Checks both card view (data-testid='patient-request-item' h4) and + table/row view (data-testid='patient-request-row' strong). + - Case/diacritics-insensitive. + """ + try: + page.get_by_text("Historie požadavků").wait_for(timeout=timeout_ms) + except PWTimeout: + # Some layouts may render without this exact header – proceed anyway. + pass + + # Let the list render + page.wait_for_timeout(600) + + titles = [] + try: + titles += page.locator("[data-testid='patient-request-item'] h4").all_text_contents() + except Exception: + pass + try: + titles += page.locator("[data-testid='patient-request-row'] strong").all_text_contents() + except Exception: + pass + + # Fallback if no headings were captured: read whole items/rows + if not titles: + try: + titles += page.locator("[data-testid='patient-request-item']").all_text_contents() + except Exception: + pass + try: + titles += page.locator("[data-testid='patient-request-row']").all_text_contents() + except Exception: + pass + + if not titles: + return False + + pat = re.compile(r"\bchripka\b", re.IGNORECASE) + for t in titles: + if pat.search(_strip_diacritics(t)): + return True + return False + + +def create_flu_request_for_uuid(uuid: str) -> str: + """ + Automate Medevio UI for one patient: + - Open patient card + - If a Chřipka request already exists, return 'skipped' + - Else create 'Očkování - Chřipka' and send MESSAGE_TEXT -> return 'created' + - On failure to send, return 'failed' + """ + with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=200) + context = browser.new_context(storage_state=str(STATE_FILE)) + ptcard = context.new_page() + + url = PATIENT_URL_TMPL.format(uuid=uuid) + ptcard.goto(url, wait_until="networkidle") + + # Ensure the card loaded (best-effort) + try: + ptcard.get_by_text("Historie požadavků").wait_for(timeout=7_000) + except PWTimeout: + pass + + # ----- pre-check for existing Chřipka request ----- + if has_existing_chripka_request(ptcard): + browser.close() + return "skipped" + + # ----- Create new request ----- + ptcard.get_by_role("button", name="Nový požadavek").click() + ptcard.wait_for_timeout(300) + ptcard.keyboard.type("očkování - chřipka") + ptcard.locator("[role='option']", has_text="Očkování - Chřipka").first.click() + ptcard.get_by_role("button", name="Vytvořit požadavek").click() + time.sleep(2) + + # Wait until back on card and the list is visible again + try: + ptcard.get_by_text("Historie požadavků").wait_for(timeout=10_000) + except PWTimeout: + pass + time.sleep(1.0) + + # Open the new request (prefer the tile that mentions Chřipka) + try: + ptcard.locator("div[data-testid='patient-request-item']").first.wait_for(timeout=10_000) + chripka_card = ptcard.locator("div[data-testid='patient-request-item']").filter( + has=ptcard.locator("h4", has_text=re.compile(r"(?i)ch[řr]ipka")) + ).first + if chripka_card.count() == 0: + ptcard.locator("div[data-testid='patient-request-item']").first.click(timeout=5_000) + else: + chripka_card.click(timeout=5_000) + except Exception: + # fallback: try the first request item + try: + ptcard.locator("div[data-testid='patient-request-item']").first.click(timeout=5_000) + except Exception: + browser.close() + return "failed" + + # ----- Send the message ----- + try: + ptcard.get_by_placeholder("Napište odpověď").wait_for(timeout=10_000) + ptcard.get_by_placeholder("Napište odpověď").fill(MESSAGE_TEXT) + time.sleep(1.2) + for sel in [ + "button:has-text('Odeslat')", + "button:has-text('Odeslat zprávu')", + "button:has-text('Odeslat SMS')", + "button:has-text('Odeslat do aplikace')", + ]: + try: + ptcard.click(sel, timeout=4000) + browser.close() + return "created" + except Exception: + continue + except Exception: + pass + + browser.close() + return "failed" + + +# ---------- main ---------- +def main(): + conn = pymysql.connect(**MYSQL_CFG) + try: + ensure_flag_columns(conn) + + rows = fetch_batch(conn) + if not rows: + print("Nenalezen žádný pacient pro zpracování.") + return + + print(f"Zpracujeme {len(rows)} pacientů…") + + processed = ok = fail = skipped = 0 + for r in rows: + processed += 1 + rid = r["rid"] + uuid = r["uuid"] + name = f"{r.get('prijmeni','')}, {r.get('jmeno','')}" + rc = r.get("rc", "") + + print(f"[{processed:>3}] {name} | RC {rc} | UUID {uuid}") + + try: + result = create_flu_request_for_uuid(uuid) + if result == "created": + mark_flag_success(conn, rid) + ok += 1 + print(" ✓ vytvořeno + odesláno, DB flag nastaven") + elif result == "skipped": + mark_flag_skipped(conn, rid) + skipped += 1 + print(" ↷ již existuje požadavek na chřipku – přeskočeno") + else: + fail += 1 + print(" ✗ nepodařilo se odeslat zprávu (tlačítko 'Odeslat' nenalezeno?)") + except Exception as e: + fail += 1 + conn.rollback() + print(f" ✗ chyba: {type(e).__name__}: {e}") + + time.sleep(PAUSE_BETWEEN) + + print(f"Hotovo. processed={processed}, ok={ok}, skipped={skipped}, fail={fail}") + finally: + conn.close() + + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/20 Test.py b/Medevio/Testy/20 Test.py new file mode 100644 index 0000000..c089671 --- /dev/null +++ b/Medevio/Testy/20 Test.py @@ -0,0 +1,239 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import pymysql +import re +from pathlib import Path +from datetime import datetime +import time + +# ============================== +# ⚙️ CONFIGURATION +# ============================== +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "medevio", + "charset": "utf8mb4", +} + +BASE_DIR = Path(r"d:\Dropbox\Ordinace\Dokumentace_ke_zpracování\MP") +BASE_DIR.mkdir(parents=True, exist_ok=True) + + +def sanitize_name(name: str) -> str: + """Replace invalid filename characters with underscore.""" + return re.sub(r'[<>:"/\\|?*\x00-\x1F]', "_", name).strip() + + +def make_abbrev(title: str) -> str: + """ + Create abbreviation from displayTitle: + - First letter of each word + - Keep digits together + - Uppercase + """ + if not title: + return "" + + words = re.findall(r"[A-Za-zÁ-Žá-ž0-9]+", title) + + abbr = "" + for w in words: + if w.isdigit(): + abbr += w + else: + abbr += w[0] + + return abbr.upper() + + +# ============================== +# 🧹 DELETE UNEXPECTED FILES +# ============================== +def clean_folder(folder: Path, valid_files: set): + """ + Remove unexpected files. + RULE: + - Files starting with `▲` are ALWAYS kept. + """ + if not folder.exists(): + return + + for f in folder.iterdir(): + if f.is_file(): + + # zpracované soubory (▲filename.pdf) nikdy nemažeme + if f.name.startswith("▲"): + continue + + sanitized = sanitize_name(f.name) + if sanitized not in valid_files: + print(f"🗑️ Removing unexpected file: {f.name}") + try: + f.unlink() + except Exception as e: + print(f"⚠️ Could not delete {f}: {e}") + + +# ============================== +# 📦 DB CONNECTION +# ============================== +conn = pymysql.connect(**DB_CONFIG) + +cur_meta = conn.cursor(pymysql.cursors.DictCursor) +cur_blob = conn.cursor() + +print("🔍 Loading metadata from DB (FAST)…") + +cur_meta.execute(""" + SELECT d.id AS download_id, + d.request_id, + d.filename, + d.created_at, + p.updatedAt AS req_updated_at, + p.pacient_jmeno AS jmeno, + p.pacient_prijmeni AS prijmeni, + p.displayTitle + FROM medevio_downloads d + JOIN pozadavky p ON d.request_id = p.id + ORDER BY p.updatedAt DESC +""") + +rows = cur_meta.fetchall() +print(f"📋 Found {len(rows)} attachment records.\n") + + +# ============================== +# 🧠 MAIN LOOP +# ============================== +processed_requests = set() + +for r in rows: + req_id = r["request_id"] + + if req_id in processed_requests: + continue + processed_requests.add(req_id) + + # ========== FETCH ALL VALID FILES FOR THIS REQUEST ========== + cur_meta.execute( + "SELECT filename FROM medevio_downloads WHERE request_id=%s", + (req_id,) + ) + valid_files = {sanitize_name(row["filename"]) for row in cur_meta.fetchall()} + + # ========== FOLDER NAME BASED ON UPDATEDAT ========== + updated_at = r["req_updated_at"] or datetime.now() + date_str = updated_at.strftime("%Y-%m-%d") + + prijmeni = sanitize_name(r["prijmeni"] or "Unknown") + jmeno = sanitize_name(r["jmeno"] or "") + title = r.get("displayTitle") or "" + abbr = make_abbrev(title) + + clean_folder_name = sanitize_name( + f"{date_str} {prijmeni}, {jmeno} [{abbr}] {req_id}" + ) + + # ========== DETECT EXISTING FOLDER (WITH OR WITHOUT ▲) ========== + existing_folder = None + folder_has_flag = False + + for f in BASE_DIR.iterdir(): + if f.is_dir() and req_id in f.name: + existing_folder = f + folder_has_flag = ("▲" in f.name) + break + + # pokud složka existuje → pracujeme v ní + main_folder = existing_folder if existing_folder else BASE_DIR / clean_folder_name + + # ========== MERGE DUPLICATES ========== + possible_dups = [ + f for f in BASE_DIR.iterdir() + if f.is_dir() and req_id in f.name and f != main_folder + ] + + for dup in possible_dups: + print(f"♻️ Merging duplicate folder: {dup.name}") + + clean_folder(dup, valid_files) + main_folder.mkdir(parents=True, exist_ok=True) + + for f in dup.iterdir(): + if f.is_file(): + # prostě přesuneme, ▲ případně zůstane v názvu + target = main_folder / f.name + if not target.exists(): + f.rename(target) + + shutil.rmtree(dup, ignore_errors=True) + + # ========== CLEAN MAIN FOLDER ========== + clean_folder(main_folder, valid_files) + + # ========== DOWNLOAD MISSING FILES ========== + added_new_file = False + main_folder.mkdir(parents=True, exist_ok=True) + + for filename in valid_files: + dest_plain = main_folder / filename + dest_marked = main_folder / ("▲" + filename) + + # soubor už existuje (buď filename, nebo ▲filename) + if dest_plain.exists() or dest_marked.exists(): + continue + + # stáhneme nový soubor → znamená že se má odstranit ▲ složky + added_new_file = True + + cur_blob.execute( + "SELECT file_content FROM medevio_downloads " + "WHERE request_id=%s AND filename=%s", + (req_id, filename) + ) + row = cur_blob.fetchone() + if not row: + continue + + content = row[0] + if not content: + continue + + with open(dest_plain, "wb") as f: + f.write(content) + + print(f"💾 Wrote: {dest_plain.relative_to(BASE_DIR)}") + + # ============================== + # 🔵 REMOVE FOLDER-LEVEL ▲ ONLY IF NEW FILE ADDED + # ============================== + if added_new_file: + # složka se má přejmenovat bez ▲ + if "▲" in main_folder.name: + new_name = main_folder.name.replace("▲", "") + new_name = new_name.strip() # pro jistotu + new_path = main_folder.parent / new_name + + if new_path != main_folder: + try: + main_folder.rename(new_path) + print(f"🔄 Folder flag ▲ removed → {new_name}") + main_folder = new_path + except Exception as e: + print(f"⚠️ Could not rename folder: {e}") + else: + # žádné nové soubory → NIKDY nesahat na název složky + pass + + +print("\n🎯 Export complete.\n") + +cur_blob.close() +cur_meta.close() +conn.close() diff --git a/Medevio/Testy/8 medevio read calendar.py b/Medevio/Testy/8 medevio read calendar.py new file mode 100644 index 0000000..bbb2a28 --- /dev/null +++ b/Medevio/Testy/8 medevio read calendar.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Open the Medevio daily agenda calendar, +inspect the rendered HTML, and probe JS memory +to see what data is exposed. +""" + +from playwright.sync_api import sync_playwright + +STATE_FILE = "../medevio_storage.json" +AGENDA_URL = ( + "https://my.medevio.cz/mudr-buzalkova/klinika/kalendar/agenda-dne/" + "?kalendar=144c4e12-347c-49ca-9ec0-8ca965a4470d&datum=2025-10-17" +) + +def main(): + with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False, slow_mo=150) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + print("🔗 Opening agenda-day calendar...") + page.goto(AGENDA_URL, wait_until="networkidle", timeout=90_000) + + # -------- Check login -------- + body = (page.text_content("body") or "").lower() + if any(x in body for x in ["přihlášení", "přihlásit", "sign in", "login"]): + raise SystemExit("❌ Not logged in – refresh medevio_storage.json.") + + # -------- Wait for appointments to render -------- + page.wait_for_timeout(4000) + + # -------- Dump a few appointment blocks -------- + blocks = page.locator("div.rbc-event-inner-content, div[data-testid='Reservation']").evaluate_all( + "(els) => els.map(e => e.outerHTML)" + ) + print(f"\n✅ Found {len(blocks)} appointment blocks. Showing first 3:\n") + for snippet in blocks[:3]: + print(snippet) + print("-" * 80) + + # -------- Explore window memory -------- + print("\n🔍 Inspecting global JS variables...") + keys = page.evaluate("Object.keys(window)") + interesting = [k for k in keys if any(w in k.lower() for w in ["mede", "cal", "react", "state", "reserv"])] + print("Interesting keys:", interesting[:20]) + + for candidate in [ + "window.__INITIAL_STATE__", + "window.__INITIAL_DATA__", + "window.__REACT_DEVTOOLS_GLOBAL_HOOK__", + "window.medevioCalendar", + "window.calendarStore", + "window.reduxStore", + "window.reactProps", + ]: + try: + data = page.evaluate(f"JSON.stringify({candidate}, null, 2)") + if data and len(data) > 200: + print(f"\n===== {candidate} =====\n{data[:1000]}...\n") + except Exception: + pass + + # -------- Optionally: listen for network requests while you click -------- + def log_request(req): + url = req.url + if any(x in url for x in ["pozadavek", "request", "api"]): + print("📡", url) + + page.on("request", log_request) + print("\n👉 Now click manually on a few agenda items to open their detail cards.") + print(" Any backend calls will appear below.\n") + + page.wait_for_timeout(40000) # give yourself ~40s to click around + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/81 Read agenda and give 1.py b/Medevio/Testy/81 Read agenda and give 1.py new file mode 100644 index 0000000..ba4f2f9 --- /dev/null +++ b/Medevio/Testy/81 Read agenda and give 1.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from playwright.sync_api import sync_playwright +import json +import requests + +STATE_FILE = "../medevio_storage.json" +AGENDA_URL = ( + "https://my.medevio.cz/mudr-buzalkova/klinika/kalendar/agenda-dne/" + "?kalendar=144c4e12-347c-49ca-9ec0-8ca965a4470d&datum=2025-10-17" +) +GRAPHQL_URL = "https://api.medevio.cz/graphql" + + +def extract_agenda_rows(page): + rows = page.locator("div[data-testid='reservation-row']") + if rows.count() == 0: + raise SystemExit("❌ No rows found — check selector or login session.") + + results = [] + print(f"\nFound {rows.count()} rows, showing sample structure:") + for row in rows.all()[:3]: + print("-" * 80) + print(row.evaluate("el => el.outerHTML")[:500], "...\n") + + # Now extract data safely + for row in rows.all(): + rid = row.get_attribute("data-id") or "" + # Try to read each cell dynamically + cells = row.locator("div.MuiDataGrid-cell") + record = {"id": rid} + for c in cells.all(): + field = c.get_attribute("data-field") or "unknown" + text = (c.text_content() or "").strip() + record[field] = text + results.append(record) + return results + + +def step1_extract_appointments(): + with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False, slow_mo=150) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + print("🔗 Opening Medevio agenda-day page...") + page.goto(AGENDA_URL, wait_until="networkidle", timeout=90_000) + page.wait_for_selector("div[data-testid='reservation-row']", timeout=30_000) + + appointments = extract_agenda_rows(page) + browser.close() + print(f"✅ Extracted {len(appointments)} appointments") + for a in appointments: + print(f"— {a.get('StartDateTime','?')} {a.get('Patient','?')}: {a.get('Reason','?')} ({a['id']})") + return appointments + + +def step2_fetch_detail(session_cookies, reservation_id): + headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", + } + + query = { + "operationName": "ReservationDetail", + "variables": {"id": reservation_id}, + "query": """ + query ReservationDetail($id: ID!) { + reservation(id: $id) { + id + reason + startDateTime + endDateTime + status + note + patient { id name age } + doctor { id name } + location { name } + } + } + """, + } + + print(f"\n📡 Fetching GraphQL detail for {reservation_id}...") + response = requests.post(GRAPHQL_URL, headers=headers, cookies=session_cookies, data=json.dumps(query)) + print("Status:", response.status_code) + print(json.dumps(response.json(), indent=2, ensure_ascii=False)) + + +if __name__ == "__main__": + appointments = step1_extract_appointments() + if not appointments: + raise SystemExit("No appointments found.") + + # Use first appointment for detail fetch + reservation_id = appointments[0]["id"] + + # Load session cookies from storage + with open(STATE_FILE, "r", encoding="utf-8") as f: + state = json.load(f) + cookies = {c["name"]: c["value"] for c in state.get("cookies", []) if "medevio" in c["domain"]} + + step2_fetch_detail(cookies, reservation_id) diff --git a/Medevio/Testy/82 test.py b/Medevio/Testy/82 test.py new file mode 100644 index 0000000..b1ef8fc --- /dev/null +++ b/Medevio/Testy/82 test.py @@ -0,0 +1,44 @@ +import json, requests + +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +FULL_INTROSPECTION_QUERY = """ +query IntrospectionQuery { + __schema { + queryType { name } + mutationType { name } + subscriptionType { name } + types { + ...FullType + } + } +} +fragment FullType on __Type { + kind + name + fields(includeDeprecated: true) { + name + } +} +""" + +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} + +# Load cookies from storage +state = json.load(open("../medevio_storage.json", encoding="utf-8")) +cookies = {c["name"]: c["value"] for c in state["cookies"] if "medevio" in c["domain"]} + +payload = {"operationName": "IntrospectionQuery", "query": FULL_INTROSPECTION_QUERY} + +r = requests.post(GRAPHQL_URL, headers=headers, cookies=cookies, data=json.dumps(payload)) +print("Status:", r.status_code) +try: + data = r.json() + print(json.dumps(data, indent=2, ensure_ascii=False)[:2000]) +except Exception as e: + print("Could not decode response:", e) + print(r.text) diff --git a/Medevio/Testy/83_capture_graphql.py b/Medevio/Testy/83_capture_graphql.py new file mode 100644 index 0000000..0974e9c --- /dev/null +++ b/Medevio/Testy/83_capture_graphql.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from playwright.sync_api import sync_playwright +import json, os, time + +STATE_FILE = "../medevio_storage.json" +GRAPHQL_LOG = f"graphql_capture_{int(time.time())}.jsonl" + +with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False, slow_mo=200) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + def log_graphql(req): + if "graphql" in req.url and req.method == "POST": + try: + body = req.post_data or "" + data = json.loads(body) + with open(GRAPHQL_LOG, "a", encoding="utf-8") as f: + f.write(json.dumps(data, ensure_ascii=False) + "\n") + print(f"📡 {data.get('operationName')} saved") + except Exception: + pass + + page.on("request", log_graphql) + + print("🔗 Opening Medevio main page...") + page.goto("https://my.medevio.cz/mudr-buzalkova/klinika/kalendar/agenda-dne/" + "?kalendar=144c4e12-347c-49ca-9ec0-8ca965a4470d", wait_until="networkidle") + + print("\n👉 Click various items in Medevio (calendar, reservations, requests, etc.).") + print(" Every GraphQL call will be saved to", GRAPHQL_LOG) + print(" Press Ctrl+C or close the browser when done.\n") + + try: + while True: + time.sleep(1) + except KeyboardInterrupt: + browser.close() + print(f"\n✅ Finished — GraphQL calls saved to {GRAPHQL_LOG}") diff --git a/Medevio/Testy/84 test.py b/Medevio/Testy/84 test.py new file mode 100644 index 0000000..a5cc801 --- /dev/null +++ b/Medevio/Testy/84 test.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Query Medevio for the full agenda of 17 Oct 2025 and print raw API response. +""" + +import json +import requests + +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +CALENDAR_ID = "144c4e12-347c-49ca-9ec0-8ca965a4470d" +CLINIC_SLUG = "mudr-buzalkova" + +def load_gateway_token(storage_path="medevio_storage.json"): + """Return Medevio gateway-access-token from saved Playwright storage.""" + import json + from pathlib import Path + + path = Path(storage_path) + if not path.exists(): + raise SystemExit(f"❌ Storage file not found: {path}") + + with path.open("r", encoding="utf-8") as f: + state = json.load(f) + + token = next( + (c["value"] for c in state["cookies"] + if c["name"] == "gateway-access-token"), None + ) + + if not token: + raise SystemExit("❌ gateway-access-token not found in storage file.") + + return token + +gateway_token = load_gateway_token() + +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", + "authorization": f"Bearer {gateway_token}", +} + +payload = { + "operationName": "ClinicAgenda_ListClinicReservations", + "variables": { + "calendarIds": [CALENDAR_ID], + "clinicSlug": CLINIC_SLUG, + "since": "2025-10-16T22:00:00.000Z", + "until": "2025-10-17T21:59:59.999Z", + "locale": "cs", + "emptyCalendarIds": False, + }, + "query": """query ClinicAgenda_ListClinicReservations( + $calendarIds: [UUID!], + $clinicSlug: String!, + $locale: Locale!, + $since: DateTime!, + $until: DateTime!, + $emptyCalendarIds: Boolean! + ) { + reservations: listClinicReservations( + clinicSlug: $clinicSlug, + calendarIds: $calendarIds, + since: $since, + until: $until + ) @skip(if: $emptyCalendarIds) { + id + start + end + note + done + color + request { + id + displayTitle(locale: $locale) + extendedPatient { + name + surname + dob + insuranceCompanyObject { shortName } + } + } + } + }""", +} + +print("📡 Querying Medevio API for agenda...") +r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +print("Status:", r.status_code) + +try: + data = r.json() + print(json.dumps(data, indent=2, ensure_ascii=False)) +except Exception as e: + print("❌ Could not parse JSON:", e) + print(r.text) diff --git a/Medevio/Testy/85 test.py b/Medevio/Testy/85 test.py new file mode 100644 index 0000000..480e583 --- /dev/null +++ b/Medevio/Testy/85 test.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Query Medevio for the full agenda of 17 Oct 2025, +print raw API response, and export to Excel. +""" + +import json +import time +from pathlib import Path +import requests +import pandas as pd +from openpyxl import load_workbook +from openpyxl.styles import Font, Alignment +from openpyxl.utils import get_column_letter + +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +CALENDAR_ID = "144c4e12-347c-49ca-9ec0-8ca965a4470d" +CLINIC_SLUG = "mudr-buzalkova" + +# ==================== Load Token ==================== +def load_gateway_token(storage_path="medevio_storage.json"): + """Return Medevio gateway-access-token from saved Playwright storage.""" + from pathlib import Path + + path = Path(storage_path) + if not path.exists(): + raise SystemExit(f"❌ Storage file not found: {path}") + + with path.open("r", encoding="utf-8") as f: + state = json.load(f) + + token = next( + (c["value"] for c in state["cookies"] + if c["name"] == "gateway-access-token"), None + ) + + if not token: + raise SystemExit("❌ gateway-access-token not found in storage file.") + + return token + + +gateway_token = load_gateway_token() + +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", + "authorization": f"Bearer {gateway_token}", +} + +payload = { + "operationName": "ClinicAgenda_ListClinicReservations", + "variables": { + "calendarIds": [CALENDAR_ID], + "clinicSlug": CLINIC_SLUG, + "since": "2025-10-20T00:00:00.001Z", + "until": "2025-10-27T21:59:59.999Z", + "locale": "cs", + "emptyCalendarIds": False, + }, + "query": """query ClinicAgenda_ListClinicReservations( + $calendarIds: [UUID!], + $clinicSlug: String!, + $locale: Locale!, + $since: DateTime!, + $until: DateTime!, + $emptyCalendarIds: Boolean! + ) { + reservations: listClinicReservations( + clinicSlug: $clinicSlug, + calendarIds: $calendarIds, + since: $since, + until: $until + ) @skip(if: $emptyCalendarIds) { + id + start + end + note + done + color + request { + id + displayTitle(locale: $locale) + extendedPatient { + name + surname + dob + insuranceCompanyObject { shortName } + } + } + } + }""", +} + +# ==================== Query API ==================== +print("📡 Querying Medevio API for agenda...") +r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +print("Status:", r.status_code) + +try: + data = r.json() +except Exception as e: + print("❌ Could not parse JSON:", e) + print(r.text) + raise SystemExit() + +if "data" not in data or "reservations" not in data["data"]: + raise SystemExit("⚠️ No 'reservations' data found in response.") + +reservations = data["data"]["reservations"] +from datetime import datetime +from dateutil import parser, tz + +# ===== Process reservations into table ===== +rows = [] +for r in reservations: + req = r.get("request") or {} + patient = req.get("extendedPatient") or {} + insurance = patient.get("insuranceCompanyObject") or {} + + # parse datetimes (convert to local time) + try: + start_dt = parser.isoparse(r.get("start")).astimezone(tz.gettz("Europe/Prague")) + end_dt = parser.isoparse(r.get("end")).astimezone(tz.gettz("Europe/Prague")) + except Exception: + start_dt = end_dt = None + + date_str = start_dt.strftime("%Y-%m-%d") if start_dt else "" + time_interval = f"{start_dt.strftime('%H:%M')}-{end_dt.strftime('%H:%M')}" if start_dt and end_dt else "" + + rows.append({ + "Date": date_str, + "Time": time_interval, + "Title": req.get("displayTitle") or "", + "Patient": f"{patient.get('surname','')} {patient.get('name','')}".strip(), + "DOB": patient.get("dob") or "", + "Insurance": insurance.get("shortName") or "", + "Note": r.get("note") or "", + "Color": r.get("color") or "", + "Request_ID": req.get("id") or "", + "Reservation_ID": r.get("id"), + }) + +df = pd.DataFrame(rows).sort_values(["Date", "Time"]) + +# ===== Excel export ===== +EXPORT_DIR = Path(r"C:\Users\vlado\PycharmProjects\Medevio\exports") +EXPORT_DIR.mkdir(exist_ok=True) +timestamp = time.strftime("%Y-%m-%d %H-%M-%S") +xlsx_path = EXPORT_DIR / f"Medevio_agenda_{timestamp}.xlsx" + +# remove old files +for old in EXPORT_DIR.glob("Medevio_agenda_*.xlsx"): + try: + old.unlink() + except Exception: + pass + +df.to_excel(xlsx_path, index=False) +wb = load_workbook(xlsx_path) +ws = wb.active + +# style header +for col in range(1, len(df.columns) + 1): + c = ws.cell(row=1, column=col) + c.font = Font(bold=True) + c.alignment = Alignment(horizontal="center") + ws.column_dimensions[get_column_letter(col)].width = 20 +ws.freeze_panes = "A2" + +wb.save(xlsx_path) +print(f"📘 Exported clean agenda view to:\n{xlsx_path}") diff --git a/Medevio/Testy/861 improvement formatting.py b/Medevio/Testy/861 improvement formatting.py new file mode 100644 index 0000000..a69a3cb --- /dev/null +++ b/Medevio/Testy/861 improvement formatting.py @@ -0,0 +1,299 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Query Medevio for the full agenda of 17 Oct 2025, +print raw API response, and export to Excel. +""" +import re +import json +import time +from pathlib import Path +import requests +import pandas as pd +from openpyxl import load_workbook +from openpyxl.styles import Font, Alignment, PatternFill, Border, Side +from openpyxl.utils import get_column_letter +from datetime import datetime, timedelta +from dateutil.relativedelta import relativedelta +from Functions import get_reports_folder +from openpyxl.utils.dataframe import dataframe_to_rows + + +GRAPHQL_URL = "https://api.medevio.cz/graphql" + +CALENDAR_ID = "144c4e12-347c-49ca-9ec0-8ca965a4470d" +CLINIC_SLUG = "mudr-buzalkova" + +# ==================== Load Token ==================== +def load_gateway_token(storage_path="medevio_storage.json"): + """Return Medevio gateway-access-token from saved Playwright storage.""" + path = Path(storage_path) + if not path.exists(): + raise SystemExit(f"❌ Storage file not found: {path}") + + with path.open("r", encoding="utf-8") as f: + state = json.load(f) + + token = next( + (c["value"] for c in state["cookies"] + if c["name"] == "gateway-access-token"), None + ) + + if not token: + raise SystemExit("❌ gateway-access-token not found in storage file.") + + return token + + +gateway_token = load_gateway_token() + +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", + "authorization": f"Bearer {gateway_token}", +} + +# === Dynamic date range === +dnes = datetime.utcnow().date() +since = datetime.combine(dnes, datetime.min.time()).replace(microsecond=1) +until = since + relativedelta(months=1) - timedelta(milliseconds=1) + +since_iso = since.isoformat() + "Z" +until_iso = until.isoformat() + "Z" + +payload = { + "operationName": "ClinicAgenda_ListClinicReservations", + "variables": { + "calendarIds": [CALENDAR_ID], + "clinicSlug": CLINIC_SLUG, + "since": since_iso, + "until": "2025-11-30T21:59:59.999Z", + "locale": "cs", + "emptyCalendarIds": False, + }, + "query": """query ClinicAgenda_ListClinicReservations( + $calendarIds: [UUID!], + $clinicSlug: String!, + $locale: Locale!, + $since: DateTime!, + $until: DateTime!, + $emptyCalendarIds: Boolean! + ) { + reservations: listClinicReservations( + clinicSlug: $clinicSlug, + calendarIds: $calendarIds, + since: $since, + until: $until + ) @skip(if: $emptyCalendarIds) { + id + start + end + note + done + color + request { + id + displayTitle(locale: $locale) + extendedPatient { + name + surname + dob + insuranceCompanyObject { shortName } + } + } + } + }""", +} + +print("since:", since_iso) +print("until:", until_iso) + +# ==================== Query API ==================== +print("📡 Querying Medevio API for agenda...") +r = requests.post(GRAPHQL_URL, headers=headers, data=json.dumps(payload)) +print("Status:", r.status_code) + +try: + data = r.json() +except Exception as e: + print("❌ Could not parse JSON:", e) + print(r.text) + raise SystemExit() + +if "data" not in data or "reservations" not in data["data"]: + raise SystemExit("⚠️ No 'reservations' data found in response.") + +reservations = data["data"]["reservations"] +from dateutil import parser, tz + +# ===== Process reservations into table ===== +rows = [] +for r in reservations: + req = r.get("request") or {} + patient = req.get("extendedPatient") or {} + insurance = patient.get("insuranceCompanyObject") or {} + + try: + start_dt = parser.isoparse(r.get("start")).astimezone(tz.gettz("Europe/Prague")) + end_dt = parser.isoparse(r.get("end")).astimezone(tz.gettz("Europe/Prague")) + except Exception: + start_dt = end_dt = None + + date_str = start_dt.strftime("%Y-%m-%d") if start_dt else "" + time_interval = f"{start_dt.strftime('%H:%M')}-{end_dt.strftime('%H:%M')}" if start_dt and end_dt else "" + + rows.append({ + "Date": date_str, + "Time": time_interval, + "Title": req.get("displayTitle") or "", + "Patient": f"{patient.get('surname','')} {patient.get('name','')}".strip(), + "DOB": patient.get("dob") or "", + "Insurance": insurance.get("shortName") or "", + "Note": r.get("note") or "", + "Color": r.get("color") or "", + "Request_ID": req.get("id") or "", + "Reservation_ID": r.get("id"), + }) + +df = pd.DataFrame(rows).sort_values(["Date", "Time"]) + + + +def kw_pattern(kw: str) -> str: + """ + Match the exact phrase kw (case-insensitive), + not as part of a '+something' continuation. + Examples: + 'žloutenka a' ✅ matches '… žloutenka a …' + ❌ NOT '… žloutenka a+b …' + 'žloutenka a+b' ✅ matches exactly that phrase + """ + # start boundary: not preceded by a word char + # end guard: not followed by optional spaces + '+' + word + return rf"(?.json next to the script. + +from pathlib import Path +import json, sys, time, re +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +STATE_FILE = r"../medevio_storage.json" +BASE_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" +PATIENT_ID = "fcb2414b-067b-4ca2-91b2-6c36a86d4cbb" # <-- put target ID here + +# ---------- helpers ---------- + +def wait_for_grid(page, timeout=15000): + try: + page.wait_for_selector("div[role='rowgroup']", timeout=timeout) + except PWTimeout: + pass + page.wait_for_selector("div[role='row'][data-id]", timeout=timeout) + +def open_detail_via_query(page, patient_id): + # Try opening page with ?pacient=... (SPA should open drawer/detail) + target = f"{BASE_URL}?pacient={patient_id}" + page.goto(target, wait_until="domcontentloaded") + # Wait briefly for the drawer/dialog to render + if not wait_for_detail_open(page, quick=True): + # Some apps need a tiny delay to mount the panel + time.sleep(0.8) + return is_detail_open(page) + +def is_detail_open(page): + # Look for a dialog/drawer that likely contains patient detail. + # Typical MUI patterns: role="dialog", or an aside/div with aria-modal etc. + selectors = [ + "[role='dialog']", + "div.MuiDrawer-paper", + "div.MuiModal-root [role='dialog']", + "div[aria-modal='true']", + ] + for sel in selectors: + loc = page.locator(sel) + if loc.count() and loc.first.is_visible(): + return True + return False + +def wait_for_detail_open(page, quick=False): + timeout = 4000 if quick else 15000 + selectors = [ + "[role='dialog']", + "div.MuiDrawer-paper", + "div.MuiModal-root [role='dialog']", + "div[aria-modal='true']", + ] + for sel in selectors: + try: + page.wait_for_selector(sel, timeout=timeout, state="visible") + return True + except PWTimeout: + continue + return False + +def open_detail_by_click(page, patient_id): + # Click the row with matching data-id (fallback) + wait_for_grid(page, timeout=15000) + row = page.locator(f"div[role='row'][data-id='{patient_id}']").first + if not row.count(): + return False + row.click() + return wait_for_detail_open(page) + +def find_detail_root(page): + # Return the locator that represents the open detail container + for sel in ["[role='dialog']", "div.MuiDrawer-paper", "div[aria-modal='true']"]: + loc = page.locator(sel) + if loc.count() and loc.first.is_visible(): + return loc.first + # Fallback to the last visible modal-ish container + return page.locator("div.MuiModal-root, div.MuiDrawer-paper").last + +def extract_text(el): + try: + return el.inner_text().strip() + except Exception: + return "" + +def extract_field_by_label(root, label_texts): + """ + Try to find a field value by its label text (CZ/EN variants). + Looks for elements containing the label and then a sibling/value element. + """ + labels_xpath = " | ".join([f".//*[normalize-space()='{t}']" for t in label_texts]) + loc = root.locator(f"xpath=({labels_xpath})") + if not loc.count(): + # Try contains(label) + labels_xpath2 = " | ".join([f".//*[contains(normalize-space(), '{t}')]" for t in label_texts]) + loc = root.locator(f"xpath=({labels_xpath2})") + if not loc.count(): + return None + + candidate = loc.first + # Value might be in parent/next sibling + parent = candidate.locator("xpath=..") + siblings = [ + parent.locator("xpath=following-sibling::*[1]"), + candidate.locator("xpath=following-sibling::*[1]"), + parent.locator(".//*[(self::span or self::div) and string-length(normalize-space())>0]"), + ] + + for s in siblings: + if s.count(): + text = extract_text(s.first) + # Clean common label-value formatting like "E-mail\nx@y.cz" + if text: + # If the label text is included, strip it + for t in label_texts: + text = re.sub(rf"^{re.escape(t)}\s*[::]?\s*", "", text, flags=re.I) + text = re.sub(r"\s+\n\s+", " — ", text).strip() + return text + + # As a last fallback, try reading the parent block's text minus the label + block_text = extract_text(parent) + if block_text: + for t in label_texts: + block_text = re.sub(rf"{re.escape(t)}\s*[::]?\s*", "", block_text, flags=re.I) + return block_text.strip() + return None + +def extract_all_text_pairs(root): + """ + Generic key-value sweep for components that render details as 2-column grids. + Returns a dict of guessed label->value pairs. + """ + result = {} + # Try common MUI grid/list patterns + blocks = root.locator("div.MuiGrid-container, dl, ul.MuiList-root") + for i in range(min(20, blocks.count())): + block = blocks.nth(i) + text = extract_text(block) + if not text: + continue + # naive split by newlines, pair neighbors "Label\nValue" + parts = [t.strip() for t in text.splitlines() if t.strip()] + for j in range(len(parts) - 1): + label, value = parts[j], parts[j+1] + # Heuristic: labels usually short, values not identical, ignore obvious noise + if len(label) <= 32 and label != value and ":" not in value: + if label not in result: + result[label] = value + return result + +def extract_patient_detail(page, patient_id): + root = find_detail_root(page) + if not root: + return {"id": patient_id, "error": "detail_not_found"} + + # Try to get a headline with the name + name = None + for sel in ["h1", "h2", "h3", "header h2", "[data-testid='PatientName']"]: + loc = root.locator(sel) + if loc.count(): + nm = extract_text(loc.first) + if nm and len(nm) > 1: + name = nm + break + + # Targeted fields (CZ + EN aliases) + fields = { + "Datum narození / Born": extract_field_by_label(root, ["Datum narození", "Datum nar.", "Date of birth", "Born"]), + "Rodné číslo": extract_field_by_label(root, ["Rodné číslo", "RČ", "Personal ID"]), + "Telefon": extract_field_by_label(root, ["Telefon", "Tel.", "Phone", "Mobile"]), + "E-mail": extract_field_by_label(root, ["E-mail", "Email", "E-mail"]), + "Zdravotní pojišťovna": extract_field_by_label(root, ["Pojišťovna", "Zdravotní pojišťovna", "Insurer", "Insurance"]), + "Adresa": extract_field_by_label(root, ["Adresa", "Address"]), + "Poznámka": extract_field_by_label(root, ["Poznámka", "Note", "Notes"]), + "Pohlaví": extract_field_by_label(root, ["Pohlaví", "Gender", "Sex"]), + "Praktický lékař": extract_field_by_label(root, ["Praktický lékař", "GP", "General practitioner"]), + } + + # Sweep for any extra key→value pairs we didn’t explicitly target + extras = extract_all_text_pairs(root) + + # Merge non-empty fields + data = {"id": patient_id} + if name: data["name"] = name + for k, v in fields.items(): + if v and v.strip(): + data[k] = v.strip() + + # Add extras that aren't already present + for k, v in extras.items(): + if k not in data and v and v.strip(): + data[k] = v.strip() + + return data + +# ---------- main ---------- + +def main(): + if not PATIENT_ID or len(PATIENT_ID) < 8: + print("Set PATIENT_ID to a valid patient UUID.") + sys.exit(1) + + sf = Path(STATE_FILE) + if not sf.exists(): + print(f"Storage file not found: {sf}") + sys.exit(1) + + with sync_playwright() as p: + browser = p.chromium.launch(headless=False) # set False to watch + context = browser.new_context(storage_state=str(sf)) + context.set_default_navigation_timeout(30000) + context.set_default_timeout(15000) + page = context.new_page() + + # Try via query param first + opened = open_detail_via_query(page, PATIENT_ID) + + # If not opened, go to base list and click the row + if not opened: + # Ensure the base grid exists + page.goto(BASE_URL, wait_until="domcontentloaded") + if "/prihlaseni" in page.url.lower(): + print("Redirected to login — refresh your medevio_storage.json.") + browser.close() + return + if not open_detail_by_click(page, PATIENT_ID): + print("Could not open detail panel (neither via query nor by clicking).") + browser.close() + return + + # At this point, detail should be open + data = extract_patient_detail(page, PATIENT_ID) + + print("\n=== Patient detail ===") + print(json.dumps(data, ensure_ascii=False, indent=2)) + + out = Path(f"patient_{PATIENT_ID}.json") + out.write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8") + print(f"\nSaved → {out.resolve()}") + + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio3CapturePatients.py b/Medevio/Testy/Medevio3CapturePatients.py new file mode 100644 index 0000000..a4dd798 --- /dev/null +++ b/Medevio/Testy/Medevio3CapturePatients.py @@ -0,0 +1,111 @@ +from playwright.sync_api import sync_playwright +import mysql.connector +import time + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +# --- load 3 patients from DB --- +conn = mysql.connector.connect(**MYSQL_CFG) +with conn.cursor() as cur: + cur.execute(""" + SELECT rid, prijmeni, jmeno, rc + FROM patients_extracted + WHERE prijmeni IS NOT NULL and mamedevioucet is null + ORDER BY prijmeni ASC + LIMIT 3 + """) + rows = cur.fetchall() + if not rows: + raise RuntimeError("No entries found in patients_extracted") + +STATE_FILE = r"../medevio_storage.json" +BASE_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" + +NOT_FOUND_SEL = "div[role='alert']:has-text('Pacient nebyl nalezen'), div:has-text('Pacient nebyl nalezen')" +DIALOG_SEL = "[role='dialog'], div.MuiDrawer-paper, div[aria-modal='true']" + +def close_dialog_if_open(page): + dlg = page.locator(DIALOG_SEL) + try: + if dlg.count(): + # Try a close button; if not, press Escape + try: + dlg.locator("button:has-text('Zavřít'), [aria-label='Zavřít'], [aria-label='Close'], [data-testid='CloseIcon']").first.click(timeout=1000) + except: + page.keyboard.press("Escape") + page.wait_for_selector(DIALOG_SEL, state="detached", timeout=1500) + except: + pass # best-effort close + +def main(): + with sync_playwright() as p: + browser = p.chromium.launch(headless=True) + try: + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + for rid, surname, name, rc in rows: + # 0) close any previous dialog to avoid stale matches + close_dialog_if_open(page) + + target_url = f"{BASE_URL}?pacient={rid}" + page.goto(target_url, wait_until="domcontentloaded") + page.wait_for_load_state("networkidle") + + # 1) Not-found toast? + try: + page.wait_for_selector(NOT_FOUND_SEL, timeout=3000) + print(f"{surname} {name} {rc} – ⚠️ pacient s RID {rid} nebyl nalezen, přeskočeno") + # (optional) set mamedevioucet=NULL for this rid here + continue + except: + pass + + # 2) Detail panel + try: + page.wait_for_selector(DIALOG_SEL, timeout=6000) + except: + print(f"⚠️ {surname} {name} {rc}: detailový panel se nenačetl, přeskočeno") + continue + + # 3) Verify dialog belongs to current patient (avoid stale dialog) + detail = page.locator(DIALOG_SEL).first + detail_text = detail.inner_text() + + if (surname not in detail_text) and (rc not in detail_text): + # Still looks wrong; give UI a moment and re-check once + page.wait_for_timeout(500) + detail_text = detail.inner_text() + if (surname not in detail_text) and (rc not in detail_text): + print(f"⚠️ {surname} {name} {rc}: detail neodpovídá (stará karta?), přeskočeno") + continue + + # 4) Check Medevio account text + if "zatím nemá Medevio účet" in detail_text: + has_account = 0 + print(f"{surname} {name} {rc} – ❌ zatím nemá Medevio účet") + else: + has_account = 1 + print(f"{surname} {name} {rc} – ✅ má Medevio účet") + + # Update DB by RID (or swap to rc if you prefer) + with conn.cursor() as c: + c.execute( + "UPDATE patients_extracted SET mamedevioucet = %s WHERE rid = %s", + (has_account, rid), + ) + conn.commit() + + time.sleep(0.5) # gentle pacing + + finally: + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio3CapturePatients01.py b/Medevio/Testy/Medevio3CapturePatients01.py new file mode 100644 index 0000000..890fb1e --- /dev/null +++ b/Medevio/Testy/Medevio3CapturePatients01.py @@ -0,0 +1,101 @@ +import time +from playwright.sync_api import sync_playwright +import mysql.connector + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +# --- load 3 patients from DB --- +conn = mysql.connector.connect(**MYSQL_CFG) +with conn.cursor() as cur: + cur.execute(""" + SELECT rid, prijmeni, jmeno, rc + FROM patients_extracted + WHERE prijmeni IS NOT NULL and mamedevioucet is null + ORDER BY prijmeni ASC + LIMIT 300 + """) + rows = cur.fetchall() + if not rows: + raise RuntimeError("No entries found in patients_extracted") + +STATE_FILE = r"../medevio_storage.json" +BASE_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" + +NOT_FOUND_SEL = "div[role='alert']:has-text('Pacient nebyl nalezen'), div:has-text('Pacient nebyl nalezen')" +DIALOG_SEL = "[role='dialog'], div.MuiDrawer-paper, div[aria-modal='true']" + +def close_dialog_if_open(page): + dlg = page.locator(DIALOG_SEL) + try: + if dlg.count(): + # Try a close button; if not, press Escape + try: + dlg.locator("button:has-text('Zavřít'), [aria-label='Zavřít'], [aria-label='Close'], [data-testid='CloseIcon']").first.click(timeout=1000) + except: + page.keyboard.press("Escape") + page.wait_for_selector(DIALOG_SEL, state="detached", timeout=1500) + except: + pass # best-effort close + +def main(): + with sync_playwright() as p: + browser = p.chromium.launch(headless=True) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + for rid, surname, name, rc in rows: + print(f"\nProcessing {surname} {name} {rc}") + + # 1️⃣ Navigation time + t0 = time.perf_counter() + page.goto(f"{BASE_URL}?pacient={rid}", wait_until="domcontentloaded") + # page.wait_for_load_state("networkidle") + t_nav = time.perf_counter() - t0 + print(f" ⏱️ page.goto + networkidle: {t_nav:.2f}s") + + # 2️⃣ Toast / dialog detection + t1 = time.perf_counter() + not_found = False + try: + page.wait_for_selector(NOT_FOUND_SEL, timeout=2500) + not_found = True + except: + pass + if not_found: + print(f" ⚠️ not-found toast detected after {time.perf_counter() - t1:.2f}s") + continue + + try: + page.wait_for_selector(DIALOG_SEL, timeout=8000) + except: + print(f" ⚠️ dialog not found (waited {time.perf_counter() - t1:.2f}s)") + continue + t_dialog = time.perf_counter() - t1 + print(f" ⏱️ toast/dialog detection: {t_dialog:.2f}s") + + # 3️⃣ Account check + DB update + t2 = time.perf_counter() + text = page.locator(DIALOG_SEL).first.inner_text() + has_account = 0 if "zatím nemá Medevio účet" in text else 1 + with conn.cursor() as c: + c.execute("UPDATE patients_extracted SET mamedevioucet=%s WHERE rid=%s", + (has_account, rid)) + conn.commit() + t_db = time.perf_counter() - t2 + print(f" ⏱️ DB update & text parse: {t_db:.2f}s") + + # 4️⃣ Optional pacing + t3 = time.perf_counter() + # time.sleep(0.5) + print(f" ⏱️ explicit sleep: {time.perf_counter() - t3:.2f}s") + + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio4-readandsavekartoteka.py b/Medevio/Testy/Medevio4-readandsavekartoteka.py new file mode 100644 index 0000000..187f908 --- /dev/null +++ b/Medevio/Testy/Medevio4-readandsavekartoteka.py @@ -0,0 +1,177 @@ +#Tento kod se pripoji do kartoteky Medevio, zmeni na 100 pacientu na stranu, nactene + + +# medevio_dump_patients_html_to_mysql.py +import time +import json +from pathlib import Path +from datetime import datetime +from typing import Set + +import mysql.connector +from mysql.connector import errorcode +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ---------- CONFIG ---------- +STATE_FILE = r"../medevio_storage.json" +BASE_LIST_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" +SAVE_DELAY_SECONDS = 10 # throttle: 10 sec per patient + +# MySQL connection settings (fill in) +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +# ---------- DB helpers ---------- +def db_connect(): + try: + conn = mysql.connector.connect(**MYSQL_CFG) + return conn + except mysql.connector.Error as e: + raise SystemExit(f"MySQL connection failed: {e}") + +# ---------- Playwright helpers ---------- +def wait_for_grid_ready(page): + # grid present & at least one row (be generous on timeout) + page.wait_for_selector("div[role='rowgroup']", timeout=20000) + page.wait_for_selector("div[role='row'][data-id]", timeout=20000) + +def set_page_size_100(page): #zde se nastavuje hodnota pacientu na stranu na 100, toto je jedno volani + # Click the page-size combobox (CZ/EN + generic) + for loc in [ + page.get_by_role("combobox", name="Řádků na stránce:"), + page.get_by_role("combobox", name="Rows per page:"), + page.locator("div.MuiTablePagination-root [role='combobox']"), + ]: + if loc.count(): + loc.first.click() + break + # Select 100 (MUI menu often renders in a portal) + opt = page.get_by_role("option", name="100") + if not opt.count(): + opt = page.locator("//li[normalize-space(.)='100']") + opt.first.wait_for(state="visible", timeout=5000) + opt.first.click() + # Wait for rows to refresh + try: + page.wait_for_selector("div[role='row'][data-id]", timeout=10000) + except PWTimeout: + time.sleep(0.8) + +def click_next_page(page) -> bool: #toto je kliknuti, aby se nacetla dalsi stranka se 100 zaznamy + # Prefer ARIA label + nxt = page.get_by_role("button", name="Go to next page") + if nxt.count(): + try: + if nxt.first.is_enabled(): + nxt.first.click() + return True + except Exception: + pass + # Fallback (CZ) + nxt2 = page.get_by_role("button", name="Další") + if nxt2.count(): + try: + if nxt2.first.is_enabled(): + nxt2.first.click() + return True + except Exception: + pass + return False + +# ---------- Main workflow ---------- +def save_all_patient_htmls(conn,context,next_round): #toto ulozi do mysql vsechny html stranky z kartoteky, takze cca 19 + page = context.new_page() + page.set_default_timeout(15000) + page.set_default_navigation_timeout(30000) + + # Use domcontentloaded (SPAs often keep network busy) + page.goto(BASE_LIST_URL, wait_until="domcontentloaded") + if "/prihlaseni" in page.url.lower(): + raise SystemExit("Session expired → refresh medevio_storage.json via the login script.") + + wait_for_grid_ready(page) + + # optional: print label like "1–25 z 1856" + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label BEFORE:", label) + except Exception: + pass + + # Set 100/page + try: + set_page_size_100(page) + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label AFTER :", label) + except Exception: + pass + except Exception as e: + print(f"Warning: could not set page size to 100: {e!r}") + + page_index = 1 + + while True: + wait_for_grid_ready(page) + + #here I need code to save page into kartoteka_html + cur = conn.cursor() + cur.execute( + f"""INSERT INTO kartoteka_html (html,round) + VALUES (%s,%s)""", + (page.content(),next_round), + ) + conn.commit() + cur.close() + print(f"DB saved page index {page_index}") + # Try to go next; if cannot, break + if not click_next_page(page): + break + # Wait for DOM to actually update (new rows) + try: + page.wait_for_load_state("domcontentloaded", timeout=10000) + except PWTimeout: + pass + time.sleep(0.5) + page_index += 1 + + page.close() + print(f"Total pages colleceted collected: {page_index}") + return + + +def main(): + # Check storage exists + if not Path(STATE_FILE).exists(): + raise SystemExit(f"Storage not found: {STATE_FILE}") + + # DB ready + conn = db_connect() + + #vymazat vsechny zaznamy z kartoteka_html, ktere nemaji hodnotu round + cur=conn.cursor() + cur.execute("delete from kartoteka_html where round=0") + conn.commit() + + with conn.cursor() as cur: + cur.execute("SELECT MAX(`round`) AS max_round FROM kartoteka_html") + result = cur.fetchone() + # If table empty, use 0 as fallback + next_round = (result[0] or 0) + 1 + print("Next round will be:", next_round) + + with sync_playwright() as p: + browser = p.chromium.launch(headless=False) # set False to watch + context = browser.new_context(storage_state=STATE_FILE) + save_all_patient_htmls(conn, context,next_round) + browser.close() + conn.close() + print("Done.") + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio4.py b/Medevio/Testy/Medevio4.py new file mode 100644 index 0000000..db15b89 --- /dev/null +++ b/Medevio/Testy/Medevio4.py @@ -0,0 +1,262 @@ +#Tento kod se pripoji do kartoteky Medevio, zmeni na 100 pacientu na stranu, nactene + + +# medevio_dump_patients_html_to_mysql.py +import time +import json +from pathlib import Path +from datetime import datetime +from typing import Set + +import mysql.connector +from mysql.connector import errorcode +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ---------- CONFIG ---------- +STATE_FILE = r"../medevio_storage.json" +BASE_LIST_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" +SAVE_DELAY_SECONDS = 10 # throttle: 10 sec per patient + +# MySQL connection settings (fill in) +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +TABLE_NAME = "patients_html" # schema created automatically + + +# ---------- DB helpers ---------- +def db_connect(): + try: + conn = mysql.connector.connect(**MYSQL_CFG) + return conn + except mysql.connector.Error as e: + raise SystemExit(f"MySQL connection failed: {e}") + +def db_ensure_table(conn): + ddl = f""" + CREATE TABLE IF NOT EXISTS `{TABLE_NAME}` ( + patient_id VARCHAR(64) PRIMARY KEY, + html LONGTEXT NOT NULL, + fetched_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + """ + cur = conn.cursor() + cur.execute(ddl) + conn.commit() + cur.close() + +def db_existing_ids(conn) -> Set[str]: + ids = set() + cur = conn.cursor() + cur.execute(f"SELECT patient_id FROM `{TABLE_NAME}`") + for (pid,) in cur.fetchall(): + ids.add(pid) + cur.close() + return ids + +def db_upsert_html(conn, patient_id: str, html: str): + cur = conn.cursor() + cur.execute( + f"""INSERT INTO `{TABLE_NAME}` (patient_id, html, fetched_at) + VALUES (%s, %s, NOW()) + ON DUPLICATE KEY UPDATE html = VALUES(html), fetched_at = VALUES(fetched_at)""", + (patient_id, html), + ) + conn.commit() + cur.close() + + +# ---------- Playwright helpers ---------- +def wait_for_grid_ready(page): + # grid present & at least one row (be generous on timeout) + page.wait_for_selector("div[role='rowgroup']", timeout=20000) + page.wait_for_selector("div[role='row'][data-id]", timeout=20000) + +def set_page_size_100(page): + # Click the page-size combobox (CZ/EN + generic) + for loc in [ + page.get_by_role("combobox", name="Řádků na stránce:"), + page.get_by_role("combobox", name="Rows per page:"), + page.locator("div.MuiTablePagination-root [role='combobox']"), + ]: + if loc.count(): + loc.first.click() + break + # Select 100 (MUI menu often renders in a portal) + opt = page.get_by_role("option", name="100") + if not opt.count(): + opt = page.locator("//li[normalize-space(.)='100']") + opt.first.wait_for(state="visible", timeout=5000) + opt.first.click() + # Wait for rows to refresh + try: + page.wait_for_selector("div[role='row'][data-id]", timeout=10000) + except PWTimeout: + time.sleep(0.8) + +def harvest_ids_on_current_page(page) -> Set[str]: + ids = set() + for sel in ["div[role='row'][data-id]", "div.MuiDataGrid-row[data-id]"]: + for row in page.locator(sel).all(): + pid = row.get_attribute("data-id") + if pid: + ids.add(pid) + return ids + +def click_next_page(page) -> bool: + # Prefer ARIA label + nxt = page.get_by_role("button", name="Go to next page") + if nxt.count(): + try: + if nxt.first.is_enabled(): + nxt.first.click() + return True + except Exception: + pass + # Fallback (CZ) + nxt2 = page.get_by_role("button", name="Další") + if nxt2.count(): + try: + if nxt2.first.is_enabled(): + nxt2.first.click() + return True + except Exception: + pass + return False + +def ensure_detail_open(page) -> bool: + # Detail drawer/dialog visible? + for sel in ["[role='dialog']", "div.MuiDrawer-paper", "div[aria-modal='true']"]: + loc = page.locator(sel) + if loc.count() and loc.first.is_visible(): + return True + return False + + +# ---------- Main workflow ---------- +def collect_all_patient_ids(context) -> Set[str]: + page = context.new_page() + page.set_default_timeout(15000) + page.set_default_navigation_timeout(30000) + + # Use domcontentloaded (SPAs often keep network busy) + page.goto(BASE_LIST_URL, wait_until="domcontentloaded") + if "/prihlaseni" in page.url.lower(): + raise SystemExit("Session expired → refresh medevio_storage.json via the login script.") + + wait_for_grid_ready(page) + + # optional: print label like "1–25 z 1856" + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label BEFORE:", label) + except Exception: + pass + + # Set 100/page + try: + set_page_size_100(page) + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label AFTER :", label) + except Exception: + pass + except Exception as e: + print(f"Warning: could not set page size to 100: {e!r}") + + all_ids: Set[str] = set() + page_index = 1 + + while True: + wait_for_grid_ready(page) + ids_now = harvest_ids_on_current_page(page) + print(f"Page {page_index}: harvested {len(ids_now)} ids") + all_ids |= ids_now + + # Try to go next; if cannot, break + if not click_next_page(page): + break + + # Wait for DOM to actually update (new rows) + try: + page.wait_for_load_state("domcontentloaded", timeout=10000) + except PWTimeout: + pass + time.sleep(0.5) + page_index += 1 + + page.close() + print(f"Total unique IDs collected: {len(all_ids)}") + return all_ids + +def fetch_and_store_patient_html(context, conn, patient_id: str): + page = context.new_page() + page.set_default_timeout(15000) + page.set_default_navigation_timeout(30000) + + url = f"{BASE_LIST_URL}?pacient={patient_id}" + page.goto(url, wait_until="domcontentloaded") + + # If detail didn’t open, fallback: go to list, click row + if not ensure_detail_open(page): + page.goto(BASE_LIST_URL, wait_until="domcontentloaded") + try: + page.wait_for_selector(f"div[role='row'][data-id='{patient_id}']", timeout=15000) + page.locator(f"div[role='row'][data-id='{patient_id}']").first.click() + # wait for drawer/dialog + page.wait_for_selector("[role='dialog'], div.MuiDrawer-paper, div[aria-modal='true']", timeout=12000) + except PWTimeout: + print(f"[{patient_id}] detail panel did not open — skipping") + page.close() + return + + # Save full HTML of the page (includes the open detail drawer) + html = page.content() + db_upsert_html(conn, patient_id, html) + print(f"[{patient_id}] saved HTML ({len(html)} bytes) at {datetime.now().isoformat(timespec='seconds')}") + + page.close() + # Throttle per your requirement + time.sleep(SAVE_DELAY_SECONDS) + + +def main(): + # Check storage exists + if not Path(STATE_FILE).exists(): + raise SystemExit(f"Storage not found: {STATE_FILE}") + + # DB ready + conn = db_connect() + db_ensure_table(conn) + already = db_existing_ids(conn) + print(f"Already in DB: {len(already)} ids") + + with sync_playwright() as p: + browser = p.chromium.launch(headless=False) # set False to watch + context = browser.new_context(storage_state=STATE_FILE) + + # 1) Collect all IDs from the listing (all pages) + # all_ids = collect_all_patient_ids(context) + all_ids=db_existing_ids(conn) + + # 2) Iterate and store HTML (skip existing) + todo = [pid for pid in sorted(all_ids) if pid not in already] + print(f"To fetch now: {len(todo)} ids (skipping {len(all_ids)-len(todo)} already saved)") + + for i, pid in enumerate(todo, 1): + try: + fetch_and_store_patient_html(context, conn, pid) + except Exception as e: + print(f"[{pid}] ERROR: {e!r} — continuing with next") + + browser.close() + conn.close() + print("Done.") + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio4_newrid.py b/Medevio/Testy/Medevio4_newrid.py new file mode 100644 index 0000000..e0a20e8 --- /dev/null +++ b/Medevio/Testy/Medevio4_newrid.py @@ -0,0 +1,258 @@ +# medevio_dump_patients_html_to_mysql.py +import time +import json +from pathlib import Path +from datetime import datetime +from typing import Set + +import mysql.connector +from mysql.connector import errorcode +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ---------- CONFIG ---------- +STATE_FILE = r"../medevio_storage.json" +BASE_LIST_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti" +SAVE_DELAY_SECONDS = 10 # throttle: 10 sec per patient + +# MySQL connection settings (fill in) +MYSQL_CFG = dict( + host="192.168.1.74", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +TABLE_NAME = "patients_html" # schema created automatically + + +# ---------- DB helpers ---------- +def db_connect(): + try: + conn = mysql.connector.connect(**MYSQL_CFG) + return conn + except mysql.connector.Error as e: + raise SystemExit(f"MySQL connection failed: {e}") + +def db_ensure_table(conn): + ddl = f""" + CREATE TABLE IF NOT EXISTS `{TABLE_NAME}` ( + patient_id VARCHAR(64) PRIMARY KEY, + html LONGTEXT NOT NULL, + fetched_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + """ + cur = conn.cursor() + cur.execute(ddl) + conn.commit() + cur.close() + +def db_existing_ids(conn) -> Set[str]: + ids = set() + cur = conn.cursor() + cur.execute(f"SELECT patient_id FROM `{TABLE_NAME}`") + for (pid,) in cur.fetchall(): + ids.add(pid) + cur.close() + return ids + +def db_upsert_html(conn, patient_id: str, html: str): + cur = conn.cursor() + cur.execute( + f"""INSERT INTO `{TABLE_NAME}` (patient_id, html, fetched_at) + VALUES (%s, %s, NOW()) + ON DUPLICATE KEY UPDATE html = VALUES(html), fetched_at = VALUES(fetched_at)""", + (patient_id, html), + ) + conn.commit() + cur.close() + + +# ---------- Playwright helpers ---------- +def wait_for_grid_ready(page): + # grid present & at least one row (be generous on timeout) + page.wait_for_selector("div[role='rowgroup']", timeout=20000) + page.wait_for_selector("div[role='row'][data-id]", timeout=20000) + +def set_page_size_100(page): + # Click the page-size combobox (CZ/EN + generic) + for loc in [ + page.get_by_role("combobox", name="Řádků na stránce:"), + page.get_by_role("combobox", name="Rows per page:"), + page.locator("div.MuiTablePagination-root [role='combobox']"), + ]: + if loc.count(): + loc.first.click() + break + # Select 100 (MUI menu often renders in a portal) + opt = page.get_by_role("option", name="100") + if not opt.count(): + opt = page.locator("//li[normalize-space(.)='100']") + opt.first.wait_for(state="visible", timeout=5000) + opt.first.click() + # Wait for rows to refresh + try: + page.wait_for_selector("div[role='row'][data-id]", timeout=10000) + except PWTimeout: + time.sleep(0.8) + +def harvest_ids_on_current_page(page) -> Set[str]: + ids = set() + for sel in ["div[role='row'][data-id]", "div.MuiDataGrid-row[data-id]"]: + for row in page.locator(sel).all(): + pid = row.get_attribute("data-id") + if pid: + ids.add(pid) + return ids + +def click_next_page(page) -> bool: + # Prefer ARIA label + nxt = page.get_by_role("button", name="Go to next page") + if nxt.count(): + try: + if nxt.first.is_enabled(): + nxt.first.click() + return True + except Exception: + pass + # Fallback (CZ) + nxt2 = page.get_by_role("button", name="Další") + if nxt2.count(): + try: + if nxt2.first.is_enabled(): + nxt2.first.click() + return True + except Exception: + pass + return False + +def ensure_detail_open(page) -> bool: + # Detail drawer/dialog visible? + for sel in ["[role='dialog']", "div.MuiDrawer-paper", "div[aria-modal='true']"]: + loc = page.locator(sel) + if loc.count() and loc.first.is_visible(): + return True + return False + + +# ---------- Main workflow ---------- +def collect_all_patient_ids(context) -> Set[str]: + page = context.new_page() + page.set_default_timeout(15000) + page.set_default_navigation_timeout(30000) + + # Use domcontentloaded (SPAs often keep network busy) + page.goto(BASE_LIST_URL, wait_until="domcontentloaded") + if "/prihlaseni" in page.url.lower(): + raise SystemExit("Session expired → refresh medevio_storage.json via the login script.") + + wait_for_grid_ready(page) + + # optional: print label like "1–25 z 1856" + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label BEFORE:", label) + except Exception: + pass + + # Set 100/page + try: + set_page_size_100(page) + try: + label = page.locator("p.MuiTablePagination-displayedRows").first.inner_text() + print("Pagination label AFTER :", label) + except Exception: + pass + except Exception as e: + print(f"Warning: could not set page size to 100: {e!r}") + + all_ids: Set[str] = set() + page_index = 1 + + while True: + wait_for_grid_ready(page) + ids_now = harvest_ids_on_current_page(page) + print(f"Page {page_index}: harvested {len(ids_now)} ids") + all_ids |= ids_now + + # Try to go next; if cannot, break + if not click_next_page(page): + break + + # Wait for DOM to actually update (new rows) + try: + page.wait_for_load_state("domcontentloaded", timeout=10000) + except PWTimeout: + pass + time.sleep(0.5) + page_index += 1 + + page.close() + print(f"Total unique IDs collected: {len(all_ids)}") + return all_ids + +def fetch_and_store_patient_html(context, conn, patient_id: str): + page = context.new_page() + page.set_default_timeout(15000) + page.set_default_navigation_timeout(30000) + + url = f"{BASE_LIST_URL}?pacient={patient_id}" + page.goto(url, wait_until="domcontentloaded") + + # If detail didn’t open, fallback: go to list, click row + if not ensure_detail_open(page): + page.goto(BASE_LIST_URL, wait_until="domcontentloaded") + try: + page.wait_for_selector(f"div[role='row'][data-id='{patient_id}']", timeout=15000) + page.locator(f"div[role='row'][data-id='{patient_id}']").first.click() + # wait for drawer/dialog + page.wait_for_selector("[role='dialog'], div.MuiDrawer-paper, div[aria-modal='true']", timeout=12000) + except PWTimeout: + print(f"[{patient_id}] detail panel did not open — skipping") + page.close() + return + + # Save full HTML of the page (includes the open detail drawer) + html = page.content() + db_upsert_html(conn, patient_id, html) + print(f"[{patient_id}] saved HTML ({len(html)} bytes) at {datetime.now().isoformat(timespec='seconds')}") + + page.close() + # Throttle per your requirement + time.sleep(SAVE_DELAY_SECONDS) + + +def main(): + # Check storage exists + if not Path(STATE_FILE).exists(): + raise SystemExit(f"Storage not found: {STATE_FILE}") + + # DB ready + conn = db_connect() + db_ensure_table(conn) + already = db_existing_ids(conn) + print(f"Already in DB: {len(already)} ids") + + with sync_playwright() as p: + browser = p.chromium.launch(headless=True) # set False to watch + context = browser.new_context(storage_state=STATE_FILE) + + # 1) Collect all IDs from the listing (all pages) + all_ids = collect_all_patient_ids(context) + + # 2) Iterate and store HTML (skip existing) + todo = [pid for pid in sorted(all_ids) if pid not in already] + print(f"To fetch now: {len(todo)} ids (skipping {len(all_ids)-len(todo)} already saved)") + + for i, pid in enumerate(todo, 1): + try: + fetch_and_store_patient_html(context, conn, pid) + except Exception as e: + print(f"[{pid}] ERROR: {e!r} — continuing with next") + + browser.close() + conn.close() + print("Done.") + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/Medevio5_ReadNamesFromKartoteka_html.py b/Medevio/Testy/Medevio5_ReadNamesFromKartoteka_html.py new file mode 100644 index 0000000..79893d7 --- /dev/null +++ b/Medevio/Testy/Medevio5_ReadNamesFromKartoteka_html.py @@ -0,0 +1,110 @@ +import mysql.connector +from bs4 import BeautifulSoup +import re +import time + +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", +) + +#Helper functions +def is_valid_rc(rc: str) -> bool: + """ + Very basic RC check: + – remove any slash + – must be 9 or 10 digits + """ + rc_clean = rc.replace("/", "") + return bool(re.fullmatch(r"\d{9,10}", rc_clean)) + +conn = mysql.connector.connect(**MYSQL_CFG) + +# --- get latest HTML (single-row result) --- +with conn.cursor() as cur: + cur.execute(""" + SELECT html + FROM kartoteka_html + where round=3 + ORDER BY `fetched-at` DESC + """) + rows = cur.fetchall() + if not rows: + raise RuntimeError("No HTML found in kartoteka_html") + +for row in rows: + + html = row[0] + + soup = BeautifulSoup(html, "html.parser") + + records = [] + for row in soup.find_all("div", attrs={"role": "row", "data-id": True}): + data_id = row["data-id"] + + # full name -> surname + rest + name_btn = row.find("button", class_="MuiTypography-root") + fullname = name_btn.get_text(strip=True) if name_btn else "" + parts = fullname.split() + surname = parts[0] if parts else "" + name = " ".join(parts[1:]) if len(parts) > 1 else "" + + # RC + id_cell = row.find("div", attrs={"data-field": "IdentificationNumber"}) + rc = (id_cell.get("title", "") if id_cell else "") + rc = rc.replace("/", "").replace("\\", "") + + # Phone + ph_cell = row.find("div", attrs={"data-field": "Phone"}) + raw_phone = ph_cell.get("title", "") if ph_cell else "" + raw_phone = raw_phone.replace("\u00A0", " ") # NBSP -> space + phone = re.sub(r"[^\d+]", "", raw_phone) # keep + and digits + + # Insurance + ins_cell = row.find("div", attrs={"data-field": "InsuranceCompany"}) + poj = ins_cell.get("title", "") if ins_cell else "" + + # Skip rows with no name or no RC or not valid TC + if not fullname or not rc: + continue + if not is_valid_rc(rc): + continue + + records.append((data_id, fullname, rc, phone, poj)) + + # --- per-patient lookup: use a fresh cursor each time (or buffered=True) --- + with conn.cursor(buffered=True) as cur2: + cur2.execute( + """ + SELECT * + FROM patients_extracted + WHERE rc=%s + """, + (rc,), + ) + rows = cur2.fetchall() + + # print(surname, name, rc, len(rows)) + + if len(rows) > 1: + print(f"Pacient {surname} {name} {rc} je v medeviu {len(rows)}x") + time.sleep(1) + if len(rows)==0: + print(f"Pacient {surname} {name} {rc} je v medeviu {len(rows)}x") + time.sleep(1) + if len(rows)==1 and rows[0][0]!=data_id: + print(f"Pacient {surname} {name} {rc} má v medeviu jiný id, v db je {rows[0][0]} and nyní je {data_id}") + time.sleep(.1) + + if len(rows) == 1: + cur2.execute(""" + Update patients_extracted set rid=%s where rc=%s""",(data_id,rc)) + conn.commit() + # preview + # for r in records[:10]: + # print(f"ID: {r[0]} Name: {r[1]} RC: {r[2]} Phone: {r[3]} Pojistovna: {r[4]}") + # + # print("Total patients:", len(records)) diff --git a/Medevio/Testy/Medevio6 ReadPatientCards.py b/Medevio/Testy/Medevio6 ReadPatientCards.py new file mode 100644 index 0000000..e69de29 diff --git a/Medevio/Testy/Merevio05ReadWhetherRegisteredMedevio.py b/Medevio/Testy/Merevio05ReadWhetherRegisteredMedevio.py new file mode 100644 index 0000000..e1b593e --- /dev/null +++ b/Medevio/Testy/Merevio05ReadWhetherRegisteredMedevio.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import time +from pathlib import Path +from datetime import datetime +import pymysql +from pymysql.cursors import DictCursor +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout + +# ========= CONFIG ========= +MYSQL_CFG = dict( + host="192.168.1.76", + port=3307, + user="root", + password="Vlado9674+", + database="medevio", + cursorclass=DictCursor, + autocommit=False, # we commit in batches +) + +# Column in patients_extracted that stores Medevio UUID used in the URL: +UUID_COLUMN = "rid" # <-- change if your column name differs + +# Output columns (will be created if missing; MySQL 8.0+ supports IF NOT EXISTS): +REGISTERED_COL = "medevio_registered" # TINYINT(1) NULL/0/1 +CHECKED_AT_COL = "medevio_checked_at" # DATETIME NULL +ERROR_COL = "medevio_check_error" # TEXT NULL (optional) + +# Medevio routing +PATIENT_URL_TMPL = "https://my.medevio.cz/mudr-buzalkova/klinika/pacienti?pacient={uuid}" + +# Login session (created earlier with your script) +STATE_FILE = Path("../medevio_storage.json") + +# Batch/pace +BATCH_LIMIT = 5 # how many patients per run +SLEEP_SECONDS = 3 # wait between patients (requested) +NAV_TIMEOUT = 20_000 # ms +TEXT_TIMEOUT = 15_000 # ms (for main area/heading) + +# Texts indicating NOT registered: +NOT_REGISTERED_STRINGS = [ + "Pacientka zatím nemá Medevio účet.", + "Pacient zatím nemá Medevio účet.", +] +# ========================== + + + + +SELECT_SQL = f""" +SELECT {UUID_COLUMN} AS uuid, jmeno, prijmeni, rc +FROM patients_extracted +WHERE {UUID_COLUMN} IS NOT NULL + AND {UUID_COLUMN} <> '' + AND {REGISTERED_COL} IS NULL +LIMIT {BATCH_LIMIT}; +""" + +UPDATE_OK_SQL = f""" +UPDATE patients_extracted +SET {REGISTERED_COL}=%s, {CHECKED_AT_COL}=NOW(), {ERROR_COL}=NULL +WHERE {UUID_COLUMN}=%s +""" + +UPDATE_ERR_SQL = f""" +UPDATE patients_extracted +SET {REGISTERED_COL}=NULL, {CHECKED_AT_COL}=NOW(), {ERROR_COL}=%s +WHERE {UUID_COLUMN}=%s +""" + +DDL_SQLS = [ + f"ALTER TABLE patients_extracted ADD COLUMN {REGISTERED_COL} TINYINT(1) NULL", + f"ALTER TABLE patients_extracted ADD COLUMN {CHECKED_AT_COL} DATETIME NULL", + f"ALTER TABLE patients_extracted ADD COLUMN {ERROR_COL} TEXT NULL", +] + +CHECKS_FOR_DDL_SQLS=[ + f"SELECT COUNT(*) AS cnt FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'patients_extracted' AND COLUMN_NAME = '{REGISTERED_COL}'", + f"SELECT COUNT(*) AS cnt FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'patients_extracted' AND COLUMN_NAME = '{CHECKED_AT_COL}'", + f"SELECT COUNT(*) AS cnt FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'patients_extracted' AND COLUMN_NAME = '{ERROR_COL}'", +] +def ensure_columns(conn): + with conn.cursor() as cur: + for ddl,ddlcheck in zip(DDL_SQLS,CHECKS_FOR_DDL_SQLS): + cur.execute(ddlcheck) + row = cur.fetchone() + if row["cnt"] == 0: + print("Column missing") + cur.execute(ddl) + print(f"✓ Executed: {ddl}") + else: + print("Column exists") + conn.commit() + + +def pick_registered_flag(page_text: str) -> int: + text = page_text or "" + # If any NOT-registered phrase is present → 0; otherwise assume registered → 1 + for marker in NOT_REGISTERED_STRINGS: + if marker in text: + return 0 + return 1 + + +def main(): + # --- DB: fetch a batch to process --- + conn = pymysql.connect(**MYSQL_CFG) + try: + ensure_columns(conn) + with conn.cursor() as cur: + cur.execute("SET NAMES utf8mb4 COLLATE utf8mb4_czech_ci") + cur.execute("SET collation_connection = 'utf8mb4_czech_ci'") + + cur.execute(SELECT_SQL) + rows = cur.fetchall() + + if not rows: + print("No patients to check (all have medevio_registered filled).") + return + + print(f"Will process {len(rows)} patients…") + + # --- Playwright session --- + with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=0) + context = browser.new_context(storage_state=str(STATE_FILE)) + page = context.new_page() + page.set_default_timeout(NAV_TIMEOUT) + + processed = ok = errs = 0 + + for r in rows: + processed += 1 + # pid = r["id"] + uuid = r["uuid"] + name = f"{r.get('prijmeni','')}, {r.get('jmeno','')}" + rc = r.get("rc","") + + url = PATIENT_URL_TMPL.format(uuid=uuid) + print(f"URL pro otevření pacienta je: {url}0") + print(f"[{processed:>3}] {name} | RC {rc} | {uuid} → {url}") + + try: + page.goto(url, wait_until="domcontentloaded") + # Optionally wait for a stable anchor; fallback to sleep + try: + # A stable bit we saw earlier + page.get_by_text("Historie požadavků").wait_for(timeout=TEXT_TIMEOUT) + except PWTimeout: + pass + + # Wait the requested 3 seconds for the UI to settle + time.sleep(SLEEP_SECONDS) + + # Get full text and detect + full_text = page.content() # HTML; safer to check visible text too: + vis_text = page.inner_text("body") + + registered = pick_registered_flag(full_text) if full_text else pick_registered_flag(vis_text) + + with conn.cursor() as cur: + cur.execute(UPDATE_OK_SQL, (registered, pid)) + conn.commit() + ok += 1 + state = "REGISTERED" if registered == 1 else "NOT REGISTERED" + print(f" → {state}") + + except Exception as e: + conn.rollback() + errs += 1 + msg = f"{type(e).__name__}: {e}" + with conn.cursor() as cur: + cur.execute(UPDATE_ERR_SQL, (msg[:1000], pid)) + conn.commit() + print(f" ! ERROR → {msg}") + + browser.close() + + print(f"Done. processed={processed}, ok={ok}, errors={errs}") + + finally: + conn.close() + + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/ScrapePozadavkyJustManualScrolling.py b/Medevio/Testy/ScrapePozadavkyJustManualScrolling.py new file mode 100644 index 0000000..1f7de4a --- /dev/null +++ b/Medevio/Testy/ScrapePozadavkyJustManualScrolling.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import re +from urllib.parse import urlparse, parse_qs +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout, Page + +STATE_FILE = "../medevio_storage.json" +POZADAVKY_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pozadavky?neprirazene=1" + +# ---------- helpers ---------- + +def get_uuid_from_href(href: str) -> str | None: + try: + q = parse_qs(urlparse(href).query) + val = q.get("pozadavek", [None])[0] + return val if val else None + except Exception: + return None + +def is_flu_request(text: str) -> bool: + return bool(re.search(r"ch(r|ř)ipk", text, re.IGNORECASE)) + +def scrape_visible_rows(page: Page, seen: set) -> list[dict]: + """Collect all *new* visible rows on the current screen.""" + bucket: list[dict] = [] + rows = page.locator('tr[data-testid="patient-request-row"]') + n = rows.count() + + for i in range(n): + row = rows.nth(i) + href_el = row.locator('a[href*="pozadavky?pozadavek="]').first + href = href_el.get_attribute("href") if href_el.count() else None + req_id = get_uuid_from_href(href) if href else None + if not req_id or req_id in seen: + continue + + name = (row.locator('td:nth-child(2) a span').first.text_content(timeout=0) or "").strip() + rc = (row.locator('a.MuiTypography-overline2').first.text_content(timeout=0) or "").strip() + + text_p = row.locator('td:nth-child(3) p.MuiTypography-body1, td:nth-child(4) p.MuiTypography-body1').first + text_req = (text_p.text_content(timeout=0) or "").strip() + if not text_req: + aria = row.locator('td:nth-child(3) [aria-label], td:nth-child(4) [aria-label]').first + text_req = (aria.get_attribute("aria-label") or "").strip() if aria.count() else "" + + avatar = row.locator('[data-testid="queue-avatar"]').first + assigned_to = (avatar.get_attribute("aria-label") or "").strip() if avatar.count() else "" + initials = (avatar.text_content(timeout=0) or "").strip() if avatar.count() else "" + + seen.add(req_id) + bucket.append({ + "id": req_id, + "name": name, + "rc": rc, + "text": text_req, + "assigned_to": assigned_to, + "initials": initials, + }) + return bucket + +def assign_request_to_buzalka(page: Page, request_uuid: str) -> None: + """Open request detail by UUID and assign it to MUDr. Buzalka (já).""" + url = f"{POZADAVKY_URL.split('?')[0]}?pozadavek={request_uuid}" + page.goto(url, wait_until="domcontentloaded", timeout=60_000) + + combo = page.locator('div[role="combobox"][aria-labelledby="queue-select-label"]') + combo.wait_for(state="visible") + combo.click() + + option = page.get_by_role("option", name=re.compile(r"MUDr\.?\s*Buzalka", re.I)) + option.click() + + page.wait_for_load_state("networkidle") + page.locator("button.MuiDialog-close").click() + + print(f"✔ Assigned to MUDr. Buzalka: {request_uuid}") + +# ---------- main ---------- + +def main(): + with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False) # we want to see the page + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + page.goto(POZADAVKY_URL, wait_until="domcontentloaded", timeout=60_000) + + # check login + body = (page.text_content("body") or "").lower() + if any(x in body for x in ["přihlášení", "přihlásit", "sign in", "login"]): + raise SystemExit("Not logged in – refresh medevio_storage.json.") + + try: + page.wait_for_selector('tr[data-testid="patient-request-row"]', timeout=20_000) + except PWTimeout: + raise SystemExit("Rows not found: tr[data-testid=patient-request-row].") + + seen: set[str] = set() + assigned_count = 0 + + print("\n>>> Scroll the page manually. Press Enter here any time to scrape current view.") + print(" Press Ctrl+C to finish.\n") + + while True: + input("Press Enter to scan visible rows...") + for item in scrape_visible_rows(page, seen): + text = item["text"] + initials = (item["initials"] or "").upper() + assigned_to = (item["assigned_to"] or "").lower() + + if is_flu_request(text) and not ("buzalka" in assigned_to or initials == "VB"): + assign_request_to_buzalka(page, item["id"]) + assigned_count += 1 + print(f"Total newly assigned so far: {assigned_count}") + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/ScrapePozadavkyPrint01.py b/Medevio/Testy/ScrapePozadavkyPrint01.py new file mode 100644 index 0000000..e9b1ed6 --- /dev/null +++ b/Medevio/Testy/ScrapePozadavkyPrint01.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from urllib.parse import urlparse, parse_qs +import re +import time +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeout, Page + +# ===== funkce pro přiřazení jednoho požadavku ===== +def assign_request_to_buzalka(page: Page, request_uuid: str) -> None: + """ + Otevře kartu požadavku podle UUID a přiřadí ji MUDr. Buzalka (já). + Po uložení změny zavře dialog a vypíše potvrzení. + """ + url = f"https://my.medevio.cz/mudr-buzalkova/klinika/pozadavky?pozadavek={request_uuid}" + page.goto(url, wait_until="domcontentloaded", timeout=60_000) + + combo = page.locator('div[role="combobox"][aria-labelledby="queue-select-label"]') + combo.wait_for(state="visible") + combo.click() + + option = page.get_by_role("option", name=re.compile(r"MUDr\.?\s*Buzalka", re.I)) + option.click() + + page.wait_for_load_state("networkidle") + + page.locator("button.MuiDialog-close").click() + print(f"✔ Požadavek {request_uuid} přiřazen: MUDr. Buzalka (já)") + +# ===== hlavní část: projít listing a řešit chřipku ===== +POZADAVKY_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pozadavky" +# POZADAVKY_URL = "https://my.medevio.cz/mudr-buzalkova/klinika/pozadavky?neprirazene=1" + +STATE_FILE = "../medevio_storage.json" + +from playwright.sync_api import Page +import time + +def _find_scroll_container(page: Page): + """Return an ElementHandle of the real scrollable container, or None -> use window.""" + handle = page.evaluate_handle(""" +() => { + const isScrollable = el => !!el && (el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth); + + const row = document.querySelector('tr[data-testid="patient-request-row"]'); + if (row) { + let el = row.parentElement; + while (el) { + const style = getComputedStyle(el); + const overflowY = style.overflowY; + if (isScrollable(el) && (overflowY === 'auto' || overflowY === 'scroll')) return el; + el = el.parentElement; + } + } + const guesses = [ + '[role="rowgroup"]', '[role="table"]', '.MuiTableContainer-root', + '[data-testid="requests-table"]', '.MuiContainer-root', 'main' + ]; + for (const sel of guesses) { + const el = document.querySelector(sel); + if (el) { + const style = getComputedStyle(el); + const overflowY = style.overflowY; + if (isScrollable(el) && (overflowY === 'auto' || overflowY === 'scroll')) return el; + } + } + return null; +} +""") + # If JS returned null, convert to Python None + try: + if handle is None or handle.json_value() is None: + return None + except Exception: + return None + return handle + +def _has_handle(page: Page, handle) -> bool: + """Check the handle still points to a live element; else False -> use window.""" + if not handle: + return False + try: + return bool(page.evaluate("(el)=>!!el", handle)) + except Exception: + return False + +def _scroll_step(page: Page, container_handle, px=800): + if _has_handle(page, container_handle): + try: + page.evaluate( + "(args) => { const [el, dy] = args; el.scrollBy(0, dy); }", + [container_handle, px] + ) + return + except Exception: + pass + # Fallback to window + page.evaluate("dy => window.scrollBy(0, dy)", px) + +def _scroll_to_bottom(page: Page, container_handle): + if _has_handle(page, container_handle): + try: + page.evaluate("(el) => el.scrollTo(0, el.scrollHeight)", container_handle) + return + except Exception: + pass + page.evaluate("() => window.scrollTo(0, document.body.scrollHeight)") + +def _click_load_more_if_any(page: Page) -> bool: + btn = page.locator("button:has-text('Načíst více'), button:has-text('Zobrazit další'), button:has-text('Load more')") + if btn.count() and btn.is_visible(): + btn.click() + return True + return False + +def load_all_requests(page: Page, max_rounds: int = 200, stagnation_limit: int = 4) -> None: + """ + Incrementally loads the entire list of requests. + Stops after 'stagnation_limit' rounds without row growth, or after max_rounds. + """ + page.wait_for_selector('tr[data-testid="patient-request-row"]', timeout=20000) + + container = _find_scroll_container(page) + prev_count = page.locator('tr[data-testid="patient-request-row"]').count() + stagnant = 0 + + for _ in range(max_rounds): + if _click_load_more_if_any(page): + page.wait_for_load_state("networkidle") + + # small incremental scrolls + for _ in range(4): + _scroll_step(page, container, px=800) + time.sleep(0.15) + + # touch bottom at least once + _scroll_to_bottom(page, container) + + # settle + page.wait_for_load_state("networkidle") + spinners = page.locator('[role="progressbar"], .MuiCircularProgress-root') + if spinners.count(): + try: + spinners.first.wait_for(state="detached", timeout=5000) + except Exception: + pass + + # growth check + curr_count = page.locator('tr[data-testid="patient-request-row"]').count() + if curr_count <= prev_count: + stagnant += 1 + else: + stagnant = 0 + prev_count = curr_count + + if stagnant >= stagnation_limit: + break + + +def get_uuid_from_href(href: str) -> str | None: + try: + q = parse_qs(urlparse(href).query) + val = q.get("pozadavek", [None])[0] + return val + except Exception: + return None + +def is_flu_request(text: str) -> bool: + # libovolná varianta slova „chřipk“ (chřipka, chřipky, …), case-insensitive, s diakritikou i bez + return bool(re.search(r"ch(r|ř)ipk", text, re.IGNORECASE)) + +def main(): + with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + page.goto(POZADAVKY_URL, wait_until="domcontentloaded", timeout=60_000) + + body = (page.text_content("body") or "").lower() + if any(x in body for x in ["přihlášení", "přihlásit", "sign in", "login"]): + raise SystemExit("Vypadá to, že nejsi přihlášený – obnov prosím medevio_storage.json.") + + try: + page.wait_for_selector('tr[data-testid="patient-request-row"]', timeout=20_000) + except PWTimeout: + raise SystemExit("Nenašel jsem řádky požadavků (selector tr[data-testid=patient-request-row]).") + + + + # after navigating to the listing and ensuring first rows are visible: + load_all_requests(page) + rows = page.locator('tr[data-testid="patient-request-row"]') + print("Loaded rows:", rows.count()) + + for i in range(count): + row = rows.nth(i) + + # UUID z href + a_with_req = row.locator('a[href*="pozadavky?pozadavek="]').first + href = a_with_req.get_attribute("href") if a_with_req.count() else None + req_id = get_uuid_from_href(href) if href else None + if not req_id: + continue + + # Text požadavku (pro filtr „chřipka“) + text_p = row.locator('td:nth-child(3) p.MuiTypography-body1, td:nth-child(4) p.MuiTypography-body1').first + text_req = text_p.inner_text().strip() if text_p.count() else "" + if not text_req: + aria = row.locator('td:nth-child(3) [aria-label], td:nth-child(4) [aria-label]').first + text_req = (aria.get_attribute("aria-label") or "").strip() if aria.count() else "" + + if not is_flu_request(text_req): + # není to chřipkový požadavek – přeskočit + continue + + # Zjištění přiřazení z avatara v listingu + avatar = row.locator('[data-testid="queue-avatar"]').first + assigned_to = (avatar.get_attribute("aria-label") or "").strip() if avatar.count() else "" + initials = avatar.inner_text().strip() if avatar.count() else "" + + already_mine = ("buzalka" in assigned_to.lower()) or (initials.upper() == "VB") + + if already_mine: + print(f"= SKIP (už přiřazeno mně): {req_id} | {text_req}") + continue + + print(f"→ Přiřazuji chřipkový požadavek: {req_id} | {text_req}") + assign_request_to_buzalka(page, req_id) + time.sleep(1) + + context.close() + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/ScrapePozadavkyZmenJeden.py b/Medevio/Testy/ScrapePozadavkyZmenJeden.py new file mode 100644 index 0000000..45cac59 --- /dev/null +++ b/Medevio/Testy/ScrapePozadavkyZmenJeden.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import re +from playwright.sync_api import sync_playwright + +STATE_FILE = "../medevio_storage.json" +REQUEST_URL = ( + "https://my.medevio.cz/mudr-buzalkova/klinika/" + "pozadavky?pozadavek=e28cbf71-8280-4078-a881-c44119bbccc2" +) + +def main(): + with sync_playwright() as pw: + browser = pw.chromium.launch(headless=False) + context = browser.new_context(storage_state=STATE_FILE) + page = context.new_page() + + # otevři konkrétní požadavek + page.goto(REQUEST_URL, wait_until="domcontentloaded", timeout=60_000) + + # combobox Fronta + combo = page.locator('div[role="combobox"][aria-labelledby="queue-select-label"]') + combo.wait_for(state="visible") + combo.click() + + # vyber „MUDr. Buzalka (já)“ + option = page.get_by_role("option", name=re.compile(r"MUDr\.?\s*Buzalka", re.I)) + option.click() + + # počkej, dokud síť neutichne (změna je odeslaná/uložená) + page.wait_for_load_state("networkidle") + + # zavři dialog + page.locator("button.MuiDialog-close").click() + + context.close() + browser.close() + +if __name__ == "__main__": + main() diff --git a/Medevio/Testy/activate_this.py b/Medevio/Testy/activate_this.py new file mode 100644 index 0000000..cdef4d7 --- /dev/null +++ b/Medevio/Testy/activate_this.py @@ -0,0 +1,36 @@ +""" +Activate virtualenv for current interpreter: + +Use exec(open(this_file).read(), {'__file__': this_file}). + +This can be used when you must use an existing Python interpreter, not the virtualenv bin/python. +""" # noqa: D415 +from __future__ import annotations + +import os +import site +import sys + +try: + abs_file = os.path.abspath(__file__) +except NameError as exc: + msg = "You must use exec(open(this_file).read(), {'__file__': this_file}))" + raise AssertionError(msg) from exc + +bin_dir = os.path.dirname(abs_file) +base = bin_dir[: -len("Scripts") - 1] # strip away the bin part from the __file__, plus the path separator + +# prepend bin to PATH (this file is inside the bin directory) +os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)]) +os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory +os.environ["VIRTUAL_ENV_PROMPT"] = "" or os.path.basename(base) # noqa: SIM222 + +# add the virtual environments libraries to the host python import mechanism +prev_length = len(sys.path) +for lib in "..\\Lib\\site-packages".split(os.pathsep): + path = os.path.realpath(os.path.join(bin_dir, lib)) + site.addsitedir(path.decode("utf-8") if "" else path) +sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] + +sys.real_prefix = sys.prefix +sys.prefix = base diff --git a/Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.html b/Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.html new file mode 100644 index 0000000..0412b72 --- /dev/null +++ b/Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.html @@ -0,0 +1,12 @@ + + Kartotéka | Medevio + + + + + + + + + +

\ No newline at end of file diff --git a/Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.png b/Medevio/Testy/capture_patient_0117c85c-630d-44c4-a5ca-dd9f3b28e25e/detail.png new file mode 100644 index 0000000000000000000000000000000000000000..51c5a85e90c601023447cf15888a4a9d155489ea GIT binary patch literal 34290 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 A&Hw-a literal 0 HcmV?d00001 diff --git a/Medevio/Testy/dddddd.py b/Medevio/Testy/dddddd.py new file mode 100644 index 0000000..f5f717e --- /dev/null +++ b/Medevio/Testy/dddddd.py @@ -0,0 +1,315 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +FAST FILE HASH INDEXER – UNRAID (BLAKE3 ONLY, ALL SHARES) +- HARDCODED SINGLE SHARE MODE +- SQL OPTIMIZATION +- STRICT MODE (NO TOLERANCE) - Updates DB on any mismatch +""" + +import os +import pymysql +import socket +import platform +from blake3 import blake3 + +# ============================== +# ENV / HOST +# ============================== + +HOSTNAME = socket.gethostname() +OS_NAME = platform.system() + +# ZDE JE TO NATVRDO PRO TESTOVÁNÍ: +# SCAN_ONLY_THIS = None #"#Fotky" +SCAN_ONLY_THIS = '#Library' # "#Fotky" + +# ============================== +# CONFIG +# ============================== + +EXCLUDED_SHARES = {"domains", "appdata", "system", "isos"} + +# --- File size limits (bytes) --- +FILE_MIN_SIZE = 0 +FILE_MAX_SIZE = 1024 * 1024 * 1024 * 1024 # 50MB + +DB_CONFIG = { + "host": "192.168.1.76", + "port": 3307, + "user": "root", + "password": "Vlado9674+", + "database": "torrents", + "charset": "utf8mb4", + "autocommit": True, +} + +CHUNK_SIZE = 4 * 1024 * 1024 # 4 MB +PRINT_SKIPPED = False + + +# ============================== +# HASH +# ============================== + +def compute_blake3(path: str) -> bytes: + h = blake3() + with open(path, "rb") as f: + for chunk in iter(lambda: f.read(CHUNK_SIZE), b""): + h.update(chunk) + return h.digest() + + +# ============================== +# SHARE / PATH HELPERS +# ============================== + +def get_user_shares(): + if SCAN_ONLY_THIS: + path = f"/mnt/user/{SCAN_ONLY_THIS}" + if os.path.isdir(path): + print(f"🎯 SINGLE SHARE MODE ACTIVE: Scanning only '{SCAN_ONLY_THIS}'") + return [SCAN_ONLY_THIS] + else: + print(f"⚠️ ERROR: Requested share '{SCAN_ONLY_THIS}' not found in /mnt/user!") + return [] + + shares = [] + if not os.path.exists("/mnt/user"): + return [] + + for name in os.listdir("/mnt/user"): + if name.startswith("."): + continue + if name in EXCLUDED_SHARES: + continue + path = f"/mnt/user/{name}" + if os.path.isdir(path): + shares.append(name) + return sorted(shares) + + +def find_physical_roots(shares): + roots = [] + if not os.path.exists("/mnt"): + return [] + for disk in os.listdir("/mnt"): + if not disk.startswith("disk"): + continue + for share in shares: + path = f"/mnt/{disk}/{share}" + if os.path.isdir(path): + roots.append((share, path)) + return sorted(roots) + + +def logical_path_from_disk_path(disk_path: str) -> str: + if not disk_path.startswith("/mnt/disk"): + raise ValueError(f"Unexpected disk path: {disk_path}") + parts = disk_path.split("/", 3) + return f"/mnt/user/{parts[3]}" + + +def size_allowed(size: int) -> bool: + if FILE_MIN_SIZE is not None and size < FILE_MIN_SIZE: + return False + if FILE_MAX_SIZE is not None and size > FILE_MAX_SIZE: + return False + return True + + +# ============================== +# MAIN +# ============================== + +def main(): + print("🚀 BLAKE3 indexer starting", flush=True) + print(f"🖥 Host: {HOSTNAME} | OS: {OS_NAME}", flush=True) + + if FILE_MIN_SIZE or FILE_MAX_SIZE: + print(f"📏 File size limits: min={FILE_MIN_SIZE} max={FILE_MAX_SIZE}", flush=True) + + shares = get_user_shares() + if not shares: + print("❌ No user shares to index!", flush=True) + return + + print("📦 User shares to index:", flush=True) + for s in shares: + print(f" - {s}", flush=True) + + scan_roots = find_physical_roots(shares) + if not scan_roots: + print("❌ No physical disk roots found!", flush=True) + return + + print("📂 Physical scan roots:", flush=True) + for _, path in scan_roots: + print(f" - {path}", flush=True) + + try: + db = pymysql.connect(**DB_CONFIG) + cur = db.cursor() + # === TOTO JE TEN PŘÍKAZ "NEPŘEMÝŠLEJ" === + # Nastaví relaci na UTC. MySQL přestane posouvat časy o hodinu sem a tam. + # cur.execute("SET time_zone = '+00:00'") + # ========================================= + except Exception as e: + print(f"❌ Database connection failed: {e}") + return + + print("📥 Loading already indexed files into memory...", flush=True) + + # === OPTIMALIZACE SQL === + if SCAN_ONLY_THIS: + search_pattern = f"/mnt/user/{SCAN_ONLY_THIS}%" + print(f"⚡ OPTIMIZATION: Fetching only DB records for '{search_pattern}'", flush=True) + cur.execute(""" + SELECT full_path, file_size, UNIX_TIMESTAMP(mtime) + FROM file_md5_index + WHERE host_name = %s AND full_path LIKE %s + """, (HOSTNAME, search_pattern)) + else: + cur.execute(""" + SELECT full_path, file_size, UNIX_TIMESTAMP(mtime) + FROM file_md5_index + WHERE host_name = %s + """, (HOSTNAME,)) + + # Načteme do slovníku pro rychlé vyhledávání + # Formát: { "cesta": (velikost, mtime) } + indexed_map = {row[0]: (row[1], row[2]) for row in cur.fetchall()} + print(f"✅ Loaded {len(indexed_map):,} indexed entries", flush=True) + print("======================================", flush=True) + + new_files = 0 + skipped = 0 + filtered = 0 + seen_paths = set() + + # --- SCAN --- + for share, scan_root in scan_roots: + for root, _, files in os.walk(scan_root): + for fname in files: + disk_path = os.path.join(root, fname) + + try: + stat = os.stat(disk_path) + except OSError: + continue + + size = stat.st_size + if not size_allowed(size): + filtered += 1 + continue + + logical_path = logical_path_from_disk_path(disk_path) + + if logical_path in seen_paths: + continue + seen_paths.add(logical_path) + + mtime = int(stat.st_mtime) + + # === PŘÍSNÁ KONTROLA (ŽÁDNÁ TOLERANCE) === + # Pokud soubor v DB existuje a přesně sedí velikost i čas, přeskočíme ho. + # Vše ostatní (včetně posunu času o 1s) se považuje za změnu a aktualizuje se. + + is_match = False + if logical_path in indexed_map: + db_size, db_mtime = indexed_map[logical_path] + if size == db_size and mtime == db_mtime: + is_match = True + + if is_match: + skipped += 1 + if PRINT_SKIPPED: + print(f"⏭ SKIP {logical_path}", flush=True) + continue + # ============================================ + + print("➕ NEW / UPDATED", flush=True) + print(f" File: {logical_path}", flush=True) + print(f" Size: {size:,} B", flush=True) + + try: + b3 = compute_blake3(disk_path) + except Exception as e: + print(f"❌ BLAKE3 failed: {e}", flush=True) + continue + + # Zde proběhne UPDATE mtime na hodnotu z disku + cur.execute(""" + INSERT INTO file_md5_index + (os_name, host_name, full_path, file_name, directory, + file_size, mtime, blake3) + VALUES (%s, %s, %s, %s, %s, %s, FROM_UNIXTIME(%s), %s) + ON DUPLICATE KEY UPDATE + file_size = VALUES(file_size), + mtime = VALUES(mtime), + blake3 = VALUES(blake3), + updated_at = CURRENT_TIMESTAMP + """, ( + OS_NAME, + HOSTNAME, + logical_path, + fname, + os.path.dirname(logical_path), + size, + mtime, + b3, + )) + + new_files += 1 + print(f" B3 : {b3.hex()}", flush=True) + print("--------------------------------------", flush=True) + + print("======================================", flush=True) + print(f"✅ New / updated : {new_files}", flush=True) + print(f"⏭ Skipped : {skipped}", flush=True) + print(f"🚫 Size filtered: {filtered}", flush=True) + print("🏁 Script finished", flush=True) + + + # ============================== + # DB CLEANUP – REMOVE DELETED FILES + # ============================== + + print("🧹 Checking for deleted files in DB...", flush=True) + + db_paths = set(indexed_map.keys()) + deleted_paths = db_paths - seen_paths + + # Omezíme jen na aktuální share (pokud je aktivní) + if SCAN_ONLY_THIS: + prefix = f"/mnt/user/{SCAN_ONLY_THIS}/" + deleted_paths = {p for p in deleted_paths if p.startswith(prefix)} + + if deleted_paths: + print(f"🗑 Removing {len(deleted_paths):,} deleted files from DB", flush=True) + + BATCH_SIZE = 1000 + deleted_paths = list(deleted_paths) + + for i in range(0, len(deleted_paths), BATCH_SIZE): + batch = deleted_paths[i:i + BATCH_SIZE] + placeholders = ",".join(["%s"] * len(batch)) + + sql = f""" + DELETE FROM file_md5_index + WHERE host_name = %s + AND full_path IN ({placeholders}) + """ + + cur.execute(sql, (HOSTNAME, *batch)) + + print("✅ DB cleanup completed", flush=True) + else: + print("✅ No deleted files found in DB", flush=True) + + cur.close() + db.close() + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Medevio/Testy/diafaan.py b/Medevio/Testy/diafaan.py new file mode 100644 index 0000000..7266d4a --- /dev/null +++ b/Medevio/Testy/diafaan.py @@ -0,0 +1,23 @@ +import requests +from datetime import datetime + +# Diafaan SMS Server settings +server_url = "http://192.168.1.138:9710/http/send-message" +username = "admin" # adjust if you changed it +password = "" # adjust if you changed it +phone_number = "+420775735276" + +for i in range(1, 11): + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + message_text = f"{i}/10 {timestamp}" + params = { + "username": username, + "password": password, + "to": phone_number, + "message": message_text + } + try: + response = requests.get(server_url, params=params) + print(f"Sent '{message_text}': {response.text}") + except Exception as e: + print(f"Error sending {message_text}: {e}") diff --git a/Medevio/Testy/medevio.py b/Medevio/Testy/medevio.py new file mode 100644 index 0000000..c510d7e --- /dev/null +++ b/Medevio/Testy/medevio.py @@ -0,0 +1,18 @@ +from playwright.sync_api import sync_playwright + +LOGIN_URL = "https://my.medevio.cz/prihlaseni" +STATE_FILE = "../medevio_storage.json" + +with sync_playwright() as p: + browser = p.chromium.launch(headless=False, slow_mo=150) # zobrazí prohlížeč + context = browser.new_context() + page = context.new_page() + page.goto(LOGIN_URL, wait_until="load") + + print(">>> Přihlas se v otevřeném okně (Medevio).") + print(">>> Jakmile jsi na hlavní stránce po přihlášení, vrať se do PyCharm konzole a stiskni Enter.") + input() + + context.storage_state(path=STATE_FILE) + print(f"Session uložena do: {STATE_FILE}") + browser.close() diff --git a/Medevio/Testy/patient_detail.graphql b/Medevio/Testy/patient_detail.graphql new file mode 100644 index 0000000..a602fa9 --- /dev/null +++ b/Medevio/Testy/patient_detail.graphql @@ -0,0 +1,201 @@ +query ClinicPatientDetailModal_GetData( + $clinicSlug: String!, + $patientId: String!, + $patientUuid: UUID!, + $challengesStatus: ECRFChallengeStatus!, + $locale: Locale! +) { + clinic: getClinic(clinicSlug: $clinicSlug) { + id + features + sslSUKLCertificateId + type + ais + slug + ...ClinicWithTypeAndFeatures_Clinic + ...PatientInfo_Clinic + __typename + } + patient: getPatientForClinic(clinicSlug: $clinicSlug, patientId: $patientId) { + ...ClinicPatientDetailModal_Patient + __typename + } + challenges: listPatientChallenges2( + clinicSlug: $clinicSlug + patientId: $patientId + status: $challengesStatus + ) { + ...ChallengeTableList_EcrfChallenge + __typename + } + patientRequestsResponse: filterPatientRequestsForClinic( + clinicSlug: $clinicSlug + filter: {patientId: $patientUuid} + pageInfo: {first: 1, offset: 0} + ) { + count + items { id __typename } + __typename + } + treatmentPlanPatients: listTreatmentPlanPatients( + clinicSlug: $clinicSlug + patientId: $patientUuid + ) { + ...ClinicPlanPatientList_PlanPatient + __typename + } + premiumPlans: listClinicPremiumPlans(clinicSlug: $clinicSlug) { + id + __typename + } + mergeSuggestions: findMergeSuggestions( + clinicSlug: $clinicSlug + input: {existingPatientId: $patientUuid} + ) { + ...MergeSuggestionAlert_MergeSuggestionResult + __typename + } + insuranceCards: getPatientDocuments( + patientId: $patientUuid + type: InsuranceCard + ) { + ...PatientInfo_InsuranceCard + __typename + } +} + +# — fragmenty (přesně tak, jak jsi měl) — +fragment ClinicWithTypeAndFeatures_Clinic on Clinic { + id + type + features + __typename +} + +fragment PatientInfo_Clinic on Clinic { + country + id + slug + ais + ...ClinicWithTypeAndFeatures_Clinic + __typename +} + +fragment ClinicPatientDetailModal_Patient on ExtendedPatient { + id + isInClinic + kind + name + isUnknownPatient + sex + surname + identificationNumber + editableByDoctor + type + key + user { id name surname __typename } + ...ClinicPatientDetail_Patient + ...PatientInfo_AccountPatient + ...ClinicPatientInfo_Patient + __typename +} + +fragment ClinicPatientDetail_Patient on ExtendedPatient { + name + surname + email + id + identificationNumber + isInClinic + key + phone + sex + type + dob + user { id __typename } + isUnknownPatient + hasMobileApp + __typename +} + +fragment PatientInfo_AccountPatient on ExtendedPatient { + id + createdAt + key + user { + registrationCompletedTime + deactivatedTime + __typename + } + __typename +} + +fragment ClinicPatientInfo_Patient on ExtendedPatient { + anamnesisShared + anamnesisStatusForClinic { updatedAt __typename } + clinics { id name slug __typename } + id + isInClinic + dob + city + familyMembers: family { __typename } + houseNumber + identificationNumber + insuranceCompanyObject { id code name shortName __typename } + kind + name + note + owner { name surname __typename } + key + status + street + surname + user { id email name phone surname __typename } + userRelationship + premiumPlanPatient { id __typename } + sex + tags(onlyImportant: false) { id name color icon __typename } + type + isUnknownPatient + hasMobileApp + __typename +} + +fragment ChallengeTableList_EcrfChallenge on ECRFChallenge { + id + createdAt + sentAt + issuedToPatient { + id + identificationNumber + name + surname + __typename + } + userECRF(locale: $locale) { id name __typename } + patientRequestId + status + __typename +} + +fragment MergeSuggestionAlert_MergeSuggestionResult on MergeSuggestionResult { + extendedPatient { id __typename } + matchResult + __typename +} + +fragment ClinicPlanPatientList_PlanPatient on TreatmentPlanPatient { + id + createdAt + listPatient { id identificationNumber name key status surname __typename } + treatmentPlan { id slug name __typename } + __typename +} + +fragment PatientInfo_InsuranceCard on PatientDocument { + id + contentType + url + downloadUrl + __typename +} diff --git a/Medevio/exports/Medevio_agenda_2025-11-02 07-52-00.xlsx b/Medevio/exports/Medevio_agenda_2025-11-02 07-52-00.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7cccd86564903eab193c6f81199e58ebc5066799 GIT binary patch literal 29184 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 I`+wd2KmC_tWdHyG literal 0 HcmV?d00001 diff --git a/Medevio/graphql_capture_1760777115.jsonl b/Medevio/graphql_capture_1760777115.jsonl new file mode 100644 index 0000000..4bb8ee4 --- /dev/null +++ b/Medevio/graphql_capture_1760777115.jsonl @@ -0,0 +1,17 @@ +{"operationName": "AccessToken_AuthSelf", "variables": {}, "query": "query AccessToken_AuthSelf {\n authResponse: authSelf {\n ...MappedAuthResponse\n __typename\n }\n}\n\nfragment MappedAuthResponse on AuthResponse {\n accessToken\n expiresAt\n overrides {\n path: selector\n props\n __typename\n }\n user {\n accountFlags\n clinic {\n ...MappedClinic\n __typename\n }\n email\n id\n name\n locale\n surname\n phone\n userClinics {\n id\n clinic {\n ...MappedClinic\n __typename\n }\n __typename\n }\n __typename\n }\n roles\n __typename\n}\n\nfragment MappedClinic on Clinic {\n city\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n description\n features\n name\n id\n slug\n __typename\n}"} +{"operationName": "ClinicNavigation_GetClinic", "variables": {"clinicSlug": "mudr-buzalkova", "locale": "cs"}, "query": "query ClinicNavigation_GetClinic($clinicSlug: String!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n ...ClinicNavigation_Clinic\n __typename\n }\n userECRFs: listUserECRFsByClinic(clinicSlug: $clinicSlug, locale: $locale) {\n id\n __typename\n }\n}\n\nfragment ClinicNavigation_Clinic on Clinic {\n features\n type\n ...ClinicDropdown_Clinic\n __typename\n}\n\nfragment ClinicDropdown_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n searchableSince\n type\n __typename\n}"} +{"operationName": "ClinicDocumentTitlePrefix_GetClinic", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query ClinicDocumentTitlePrefix_GetClinic($clinicSlug: String!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n id\n internalId\n __typename\n }\n}"} +{"operationName": "ClinicAgenda_GetCalendarsForClinic", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query ClinicAgenda_GetCalendarsForClinic($clinicSlug: String!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_Clinic\n __typename\n }\n calendarGroups: listCalendarGroups(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_CalendarGroup\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicAgenda_Calendar\n __typename\n }\n defaultCalendar: getDefaultCalendarForClinic2(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n}\n\nfragment ClinicAgenda_Clinic on Clinic {\n id\n features\n type\n country\n __typename\n}\n\nfragment ClinicAgenda_Calendar on Calendar {\n ...CalendarTabs_Calendar\n ...GroupsControl_Calendar_Calendar\n calendarSettings {\n ignoreHolidays\n __typename\n }\n name\n userId\n __typename\n}\n\nfragment ClinicAgenda_CalendarGroup on CalendarGroup {\n ...GroupsControl_Calendar_CalendarGroup\n __typename\n}\n\nfragment CalendarTabs_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment GroupsControl_Calendar_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment GroupsControl_Calendar_CalendarGroup on CalendarGroup {\n calendars {\n ...GroupsControl_Calendar_Calendar\n __typename\n }\n id\n name\n __typename\n}"} +{"operationName": "ClinicAgenda_ListClinicReservations", "variables": {"clinicCountry": "CZ", "calendarIds": ["144c4e12-347c-49ca-9ec0-8ca965a4470d"], "clinicSlug": "mudr-buzalkova", "emptyCalendarIds": false, "since": "2025-10-17T22:00:00.000Z", "until": "2025-10-18T21:59:59.999Z", "locale": "cs", "skipCalendarWindows": true}, "query": "query ClinicAgenda_ListClinicReservations($calendarIds: [UUID!], $clinicSlug: String!, $locale: Locale!, $since: DateTime!, $until: DateTime!, $emptyCalendarIds: Boolean!, $skipCalendarWindows: Boolean!, $clinicCountry: Country = CZ) {\n calendarWindows: getCalendarWindows(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n pageInfo: {first: 10000, offset: 0}\n ) @skip(if: $skipCalendarWindows) {\n ...ClinicAgenda_CalendarSlotWindow\n __typename\n }\n holidays: getHolidays(since: $since, until: $until, countries: [$clinicCountry]) {\n ...AgendaGrid_Holiday\n __typename\n }\n recurringReservations: listClinicRecurringReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_RecurringReservationResponse\n __typename\n }\n reservations: listClinicReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Reservation\n __typename\n }\n vacations: findVacations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Vacation\n __typename\n }\n}\n\nfragment ClinicAgenda_CalendarSlotWindow on CalendarSlotWindow {\n ...AgendaGrid_CalendarSlotWindow\n ...CalendarSlotWindowToResolveReservationLength\n __typename\n}\n\nfragment CalendarSlotWindowToResolveReservationLength on CalendarSlotWindow {\n supportedUserEcrfs(locale: $locale) {\n id\n reservationLength\n __typename\n }\n windowUserECRFs {\n id\n clinicPatientRequestSettingsId\n reservationLength\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_CalendarSlotWindow on CalendarSlotWindow {\n id\n start\n end\n validFrom\n validTill\n dayOfWeek\n weekParity\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_Holiday on Holiday {\n endAt\n name\n startAt\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationResponse on RecurringReservationResponse {\n instances {\n ...AgendaGrid_RecurringReservationInstance\n __typename\n }\n recurringReservation {\n ...AgendaGrid_RecurringReservation\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationInstance on RecurringReservationInstance {\n start\n end\n color\n note\n __typename\n}\n\nfragment AgendaGrid_RecurringReservation on RecurringReservation {\n id\n note\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n color\n __typename\n}\n\nfragment AgendaGrid_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment AgendaGrid_Reservation on Reservation {\n id\n start\n end\n color\n done\n note\n canceledAt\n request {\n ...AgendaGrid_PatientRequest\n __typename\n }\n remindDaysBefore\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n additionalCalendars {\n ...AgendaGrid_Calendar\n __typename\n }\n videoCallDoctorUrl\n done\n __typename\n}\n\nfragment AgendaGrid_PatientRequest on PatientRequest {\n id\n displayTitle(locale: $locale)\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n icon {\n id\n color\n urlSvg\n __typename\n }\n name\n __typename\n }\n extendedPatient {\n ...AgendaGrid_Patient\n __typename\n }\n eventType\n flags\n clinicNotes {\n ...AgendaGrid_ClinicNote\n __typename\n }\n invoice {\n id\n amount\n currency\n status\n __typename\n }\n clinicMedicalRecord\n __typename\n}\n\nfragment AgendaGrid_ClinicNote on ClinicPatientRequestNote {\n id\n content\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment AgendaGrid_Patient on ExtendedPatient {\n id\n kind\n name\n surname\n owner {\n name\n surname\n __typename\n }\n key\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n user {\n id\n name\n surname\n __typename\n }\n identificationNumber\n insuranceCompanyObject {\n id\n shortName\n __typename\n }\n dob\n __typename\n}\n\nfragment AgendaGrid_Vacation on ClinicVacation {\n id\n since\n until\n calendarId\n calendars {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}"} +{"operationName": "ClinicAgenda_ListClinicReservations", "variables": {"clinicCountry": "CZ", "calendarIds": ["144c4e12-347c-49ca-9ec0-8ca965a4470d"], "clinicSlug": "mudr-buzalkova", "emptyCalendarIds": false, "since": "2025-10-16T22:00:00.000Z", "until": "2025-10-17T21:59:59.999Z", "locale": "cs", "skipCalendarWindows": true}, "query": "query ClinicAgenda_ListClinicReservations($calendarIds: [UUID!], $clinicSlug: String!, $locale: Locale!, $since: DateTime!, $until: DateTime!, $emptyCalendarIds: Boolean!, $skipCalendarWindows: Boolean!, $clinicCountry: Country = CZ) {\n calendarWindows: getCalendarWindows(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n pageInfo: {first: 10000, offset: 0}\n ) @skip(if: $skipCalendarWindows) {\n ...ClinicAgenda_CalendarSlotWindow\n __typename\n }\n holidays: getHolidays(since: $since, until: $until, countries: [$clinicCountry]) {\n ...AgendaGrid_Holiday\n __typename\n }\n recurringReservations: listClinicRecurringReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_RecurringReservationResponse\n __typename\n }\n reservations: listClinicReservations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Reservation\n __typename\n }\n vacations: findVacations(\n clinicSlug: $clinicSlug\n calendarIds: $calendarIds\n since: $since\n until: $until\n ) @skip(if: $emptyCalendarIds) {\n ...AgendaGrid_Vacation\n __typename\n }\n}\n\nfragment ClinicAgenda_CalendarSlotWindow on CalendarSlotWindow {\n ...AgendaGrid_CalendarSlotWindow\n ...CalendarSlotWindowToResolveReservationLength\n __typename\n}\n\nfragment CalendarSlotWindowToResolveReservationLength on CalendarSlotWindow {\n supportedUserEcrfs(locale: $locale) {\n id\n reservationLength\n __typename\n }\n windowUserECRFs {\n id\n clinicPatientRequestSettingsId\n reservationLength\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_CalendarSlotWindow on CalendarSlotWindow {\n id\n start\n end\n validFrom\n validTill\n dayOfWeek\n weekParity\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_Holiday on Holiday {\n endAt\n name\n startAt\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationResponse on RecurringReservationResponse {\n instances {\n ...AgendaGrid_RecurringReservationInstance\n __typename\n }\n recurringReservation {\n ...AgendaGrid_RecurringReservation\n __typename\n }\n __typename\n}\n\nfragment AgendaGrid_RecurringReservationInstance on RecurringReservationInstance {\n start\n end\n color\n note\n __typename\n}\n\nfragment AgendaGrid_RecurringReservation on RecurringReservation {\n id\n note\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n color\n __typename\n}\n\nfragment AgendaGrid_Calendar on Calendar {\n id\n name\n internalName\n __typename\n}\n\nfragment AgendaGrid_Reservation on Reservation {\n id\n start\n end\n color\n done\n note\n canceledAt\n request {\n ...AgendaGrid_PatientRequest\n __typename\n }\n remindDaysBefore\n calendar {\n ...AgendaGrid_Calendar\n __typename\n }\n additionalCalendars {\n ...AgendaGrid_Calendar\n __typename\n }\n videoCallDoctorUrl\n done\n __typename\n}\n\nfragment AgendaGrid_PatientRequest on PatientRequest {\n id\n displayTitle(locale: $locale)\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n icon {\n id\n color\n urlSvg\n __typename\n }\n name\n __typename\n }\n extendedPatient {\n ...AgendaGrid_Patient\n __typename\n }\n eventType\n flags\n clinicNotes {\n ...AgendaGrid_ClinicNote\n __typename\n }\n invoice {\n id\n amount\n currency\n status\n __typename\n }\n clinicMedicalRecord\n __typename\n}\n\nfragment AgendaGrid_ClinicNote on ClinicPatientRequestNote {\n id\n content\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment AgendaGrid_Patient on ExtendedPatient {\n id\n kind\n name\n surname\n owner {\n name\n surname\n __typename\n }\n key\n tags(onlyImportant: true) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n user {\n id\n name\n surname\n __typename\n }\n identificationNumber\n insuranceCompanyObject {\n id\n shortName\n __typename\n }\n dob\n __typename\n}\n\nfragment AgendaGrid_Vacation on ClinicVacation {\n id\n since\n until\n calendarId\n calendars {\n ...AgendaGrid_Calendar\n __typename\n }\n __typename\n}"} +{"operationName": "UpdateReservation_GetReservation", "variables": {"clinicSlug": "mudr-buzalkova", "includeReservation": true, "recurringReservationId": "00000000-0000-0000-0000-000000000000", "reservationId": "473f0072-fa88-4ce5-a160-e7abf030aff7", "since": "1970-01-01T00:00:00.000Z"}, "query": "query UpdateReservation_GetReservation($clinicSlug: String!, $includeReservation: Boolean!, $recurringReservationId: UUID!, $reservationId: UUID!, $since: DateTime!) {\n recurringReservation: getRecurringReservationResponse(\n clinicSlug: $clinicSlug\n id: $recurringReservationId\n since: $since\n until: $since\n ) @skip(if: $includeReservation) {\n ...UpdateReservationForm_RecurringReservation\n __typename\n }\n reservation: getReservation(\n clinicSlug: $clinicSlug\n reservationId: $reservationId\n ) @include(if: $includeReservation) {\n ...UpdateReservationForm_Reservation\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...CalendarSelect_Calendar\n __typename\n }\n}\n\nfragment UpdateReservationForm_RecurringReservation on RecurringReservationResponse {\n recurringReservation {\n calendarId\n duration\n id\n rrule {\n ...UpdateReservationForm_RecurringReservationSettings\n __typename\n }\n note\n color\n __typename\n }\n instances {\n start\n end\n note\n color\n __typename\n }\n __typename\n}\n\nfragment UpdateReservationForm_RecurringReservationSettings on RecurringReservationSettings {\n byhour\n byminute\n bymonth\n bymonthday\n bynmonthday\n bynweekday\n bysetpos\n byweekday\n byweekno\n byyearday\n count\n dtstart\n frequency\n interval\n tzid\n until\n wkst\n __typename\n}\n\nfragment UpdateReservationForm_Reservation on Reservation {\n calendarId\n color\n id\n note\n end\n start\n __typename\n}\n\nfragment CalendarSelect_Calendar on Calendar {\n id\n name\n __typename\n}"} +{"operationName": "ClinicRequestDetail_GetPatientRequest2", "variables": {"clinicSlug": "mudr-buzalkova", "isDoctor": true, "requestId": "f2724013-2e25-4558-906b-56b41f346588", "locale": "cs"}, "query": "query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $isDoctor: Boolean!, $locale: Locale!) {\n patientRequestMedicalRecords: listMedicalRecordsForPatientRequest(\n attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT]\n patientRequestId: $requestId\n pageInfo: {first: 100, offset: 0}\n ) {\n ...ClinicRequestDetail_PatientRequestMedicalRecord\n __typename\n }\n request: getPatientRequest2(\n patientRequestId: $requestId\n clinicSlug: $clinicSlug\n ) {\n id\n ...ClinicRequestDetail_Request\n createdBy {\n id\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n __typename\n }\n eventType\n hasMobileApp\n extendedPatient(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetail_Patient\n ...ClinicPatientInfo_Patient\n __typename\n }\n __typename\n }\n}\n\nfragment ClinicRequestDetail_Patient on ExtendedPatient {\n id\n user {\n id\n phone\n __typename\n }\n phone\n editableByDoctor\n name\n surname\n type\n isUnknownPatient\n __typename\n}\n\nfragment ClinicRequestDetail_Request on PatientRequest {\n id\n doneAt\n doneBy {\n id\n name\n surname\n __typename\n }\n removedAt\n queue {\n id\n __typename\n }\n isInClinic\n clinic {\n id\n paymentEnabled\n hasInvoicingEnabled\n slug\n features\n __typename\n }\n clinicMedicalRecord\n clinicMedicalRecordVisibleToPatient\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n kind\n identificationNumber\n name\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n surname\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n name\n flags {\n isReference\n __typename\n }\n __typename\n }\n ecrfFilledData(locale: $locale) {\n ...EcrfFilledSteps_EcrfFilledStep\n __typename\n }\n eventType\n flags\n invoice {\n ...InvoiceStatusBar_Invoice\n __typename\n }\n userNote\n paymentData {\n ...InvoicePaymentStatusBar_PaymentSummaryData\n __typename\n }\n recording {\n ...ClinicRequestContent_Recording\n __typename\n }\n reservations {\n ...Reservations_Reservation\n ...VideoCall_Reservation\n __typename\n }\n evaluationResult(locale: $locale) {\n ...ClinicRequest_ECRFEvaluationResult\n __typename\n }\n tags(onlyImportant: false) {\n id\n ...Tag\n __typename\n }\n ...ClinicRequestHeading_Request\n ...ClinicRequestControls_Request\n ...InvoiceStatusBar_PatientRequest\n ...InvoicePriceBar_Request\n __typename\n}\n\nfragment ClinicRequestContent_Recording on Recording {\n fileUrl\n type\n __typename\n}\n\nfragment ClinicRequestControls_Request on PatientRequest {\n ...ClinicRequestControlsBar_Request\n isInClinic\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n identificationNumber\n kind\n name\n owner {\n name\n surname\n __typename\n }\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n status\n surname\n isUnknownPatient\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControlsBar_Request on PatientRequest {\n id\n dueDate\n doneAt\n doneBy {\n name\n surname\n __typename\n }\n queue {\n id\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledStep on ECRFFilledStep {\n name\n groups {\n ...EcrfFilledSteps_EcrfFilledGroup\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledGroup on ECRFFilledGroup {\n label\n name\n fields {\n ...EcrfFilledSteps_EcrfFilledField\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledField on ECRFFilledField {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_EcrfFilledEnumeration\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledEnumeration on ECRFFilledEnumeration {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowECRFFilledField on ECRFFilledField {\n name\n label\n type\n value\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowEcrfFilledEnumeration on ECRFFilledEnumeration {\n name\n label\n checked\n __typename\n}\n\nfragment ClinicRequest_ECRFEvaluationResult on ECRFEvaluationResult {\n contentForDoctor\n fields {\n name\n label\n type\n value\n min\n max\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestHeading_Request on PatientRequest {\n clinic {\n id\n name\n slug\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n __typename\n }\n isInClinic\n createdAt\n createdBy {\n id\n name\n surname\n __typename\n }\n customTitle\n createdByDoctor\n displayTitle(locale: $locale)\n ecrf: userECRF(locale: $locale) {\n id\n name\n ecrfSet {\n id\n name\n __typename\n }\n __typename\n }\n eventType\n flags\n id\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n name\n key\n surname\n __typename\n }\n referringClinic {\n id\n name\n __typename\n }\n __typename\n}\n\nfragment Reservations_Reservation on Reservation {\n calendar {\n ...Reservations_Calendar\n __typename\n }\n additionalCalendars {\n ...Reservations_Calendar\n __typename\n }\n calendarId\n canceledAt\n canceledBy {\n id\n clinicId\n name\n surname\n __typename\n }\n createdAt\n createdBy {\n id\n clinicId\n name\n surname\n __typename\n }\n clinic {\n id\n slug\n __typename\n }\n done\n end\n id\n note\n start\n videoCallDoctorUrl\n additionalCalendars {\n id\n __typename\n }\n __typename\n}\n\nfragment Reservations_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment InvoiceStatusBar_Invoice on Invoice {\n amount\n currency\n dueAmount\n id\n isOverdue\n link\n payments {\n ...InvoiceStatusBar_Payment\n __typename\n }\n refundedAmount\n status\n settledAmount\n isOnlinePayable\n __typename\n}\n\nfragment InvoiceStatusBar_Payment on Payment {\n id\n status\n __typename\n}\n\nfragment InvoiceStatusBar_PatientRequest on PatientRequest {\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n user {\n id\n phone\n __typename\n }\n key\n phone\n __typename\n }\n hasMobileApp\n paymentData {\n status\n __typename\n }\n id\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment VideoCall_Reservation on Reservation {\n canceledAt\n end\n id\n showVideoCall\n start\n videoCallDoctorUrl\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment InvoicePaymentStatusBar_PaymentSummaryData on PaymentSummaryData {\n status\n amount\n currency\n __typename\n}\n\nfragment InvoicePriceBar_Request on PatientRequest {\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment ClinicPatientInfo_Patient on ExtendedPatient {\n anamnesisShared\n anamnesisStatusForClinic {\n updatedAt\n __typename\n }\n clinics {\n ...ClinicsTinyList_Clinic\n __typename\n }\n id\n isInClinic\n dob\n city\n familyMembers: family {\n ...FamilyMemberList_FamilyMember\n __typename\n }\n houseNumber\n identificationNumber\n insuranceCompanyObject {\n id\n code\n name\n shortName\n __typename\n }\n kind\n name\n note\n owner {\n ...PatientInfo_ContactPatientOwner\n __typename\n }\n key\n status\n street\n surname\n user {\n ...PatientInfo_ContactPatientUser\n __typename\n }\n userRelationship\n premiumPlanPatient {\n id\n ...PremiumPlanTag_PremiumPlanPatient\n __typename\n }\n sex\n tags(onlyImportant: false) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n hasMobileApp\n ...MergeSuggestionAlert_ExtendedPatient\n ...PatientInfo_ContactPatient\n __typename\n}\n\nfragment ClinicsTinyList_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n __typename\n}\n\nfragment PatientInfo_ContactPatient on ExtendedPatient {\n id\n city\n email\n houseNumber\n key\n phone\n street\n __typename\n}\n\nfragment PatientInfo_ContactPatientOwner on PatientOwner {\n name\n surname\n __typename\n}\n\nfragment PatientInfo_ContactPatientUser on PatientUser {\n id\n email\n name\n phone\n surname\n __typename\n}\n\nfragment FamilyMemberList_FamilyMember on FamilyPatientUserUnion {\n ...FamilyMemberList_Patient\n ...FamilyMemberList_PatientUser\n __typename\n}\n\nfragment FamilyMemberList_Patient on ExtendedPatient {\n dob\n id\n identificationNumber\n isInClinic\n kind\n name\n key\n surname\n sex\n type\n isUnknownPatient\n __typename\n}\n\nfragment FamilyMemberList_PatientUser on PatientUser {\n name\n surname\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlanPatient on PremiumPlanPatient {\n id\n autorenew\n validTo\n premiumPlan {\n ...PremiumPlanTag_PremiumPlan\n __typename\n }\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlan on PremiumPlan {\n id\n name\n color\n __typename\n}\n\nfragment ClinicRequestDetail_PatientRequestMedicalRecord on PatientRequestMedicalRecord {\n attachmentType\n id\n medicalRecord {\n ...FileItem_MedicalRecord\n __typename\n }\n __typename\n}\n\nfragment FileItem_MedicalRecord on MedicalRecord {\n contentType\n description\n downloadUrl\n id\n url\n visibleToPatient @include(if: $isDoctor)\n __typename\n}"} +{"operationName": "ClinicRequestDetailModalContent", "variables": {"clinicSlug": "mudr-buzalkova", "patientUuid": "e0640ebb-7542-4fe9-b899-9025d15979bc", "locale": "cs"}, "query": "query ClinicRequestDetailModalContent($clinicSlug: String!, $patientUuid: UUID!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n features\n id\n type\n ais\n ...ClinicRequestControls_Clinic\n ...PatientInfo_Clinic\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetailModalContent_Calendar\n __typename\n }\n mergeSuggestions: findMergeSuggestions(\n clinicSlug: $clinicSlug\n input: {existingPatientId: $patientUuid}\n ) {\n ...MergeSuggestionAlert_MergeSuggestionResult\n __typename\n }\n queues: listQueues(clinicSlug: $clinicSlug) {\n ...ClinicRequestControlsBar_Queue\n __typename\n }\n patientRequestsResponse: filterPatientRequestsForClinic(\n clinicSlug: $clinicSlug\n filter: {patientId: $patientUuid}\n pageInfo: {first: 4, offset: 0}\n ) {\n count\n items {\n ...ClinicRequestDetail_RequestList_PatientRequest\n __typename\n }\n __typename\n }\n premiumPlans: listClinicPremiumPlans(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n insuranceCards: getPatientDocuments(\n patientId: $patientUuid\n type: InsuranceCard\n ) {\n ...PatientInfo_InsuranceCard\n __typename\n }\n}\n\nfragment ClinicRequestDetailModalContent_Calendar on Calendar {\n id\n __typename\n}\n\nfragment ClinicRequestControlsBar_Queue on ClinicPatientRequestQueue {\n id\n name\n mine\n clinicPatientRequestQueueUsers {\n accountable {\n id\n name\n surname\n __typename\n }\n id\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControls_Clinic on Clinic {\n id\n slug\n canSendToEzprava\n __typename\n}\n\nfragment MergeSuggestionAlert_MergeSuggestionResult on MergeSuggestionResult {\n extendedPatient {\n ...MergeSuggestionAlert_ExtendedPatient\n __typename\n }\n matchResult\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment ClinicRequestDetail_RequestList_PatientRequest on PatientRequest {\n id\n createdAt\n displayTitle(locale: $locale)\n doneAt\n reservations {\n id\n canceledAt\n calendar {\n id\n name\n internalName\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment PatientInfo_Clinic on Clinic {\n id\n slug\n ais\n ...ClinicWithTypeAndFeatures_Clinic\n __typename\n}\n\nfragment ClinicWithTypeAndFeatures_Clinic on Clinic {\n id\n type\n features\n __typename\n}\n\nfragment PatientInfo_InsuranceCard on PatientDocument {\n id\n contentType\n url\n downloadUrl\n __typename\n}"} +{"operationName": "ClinicRequestNotes_Get", "variables": {"patientRequestId": "f2724013-2e25-4558-906b-56b41f346588"}, "query": "query ClinicRequestNotes_Get($patientRequestId: String!) {\n notes: getClinicPatientRequestNotes(requestId: $patientRequestId) {\n ...NotesList_ClinicPatientRequestNote\n __typename\n }\n}\n\nfragment NotesList_ClinicPatientRequestNote on ClinicPatientRequestNote {\n id\n content\n createdAt\n updatedAt\n createdBy {\n id\n name\n surname\n __typename\n }\n __typename\n}"} +{"operationName": "UseMessages_ListMessages", "variables": {"requestId": "f2724013-2e25-4558-906b-56b41f346588", "updatedSince": null}, "query": "query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) {\n messages: listMessages(\n patientRequestId: $requestId\n updatedSince: $updatedSince\n ) {\n ...UseMessages_Message\n __typename\n }\n}\n\nfragment UseMessages_Message on Message {\n createdAt\n id\n medicalRecord {\n ...UseMessages_MedicalRecord\n __typename\n }\n readAt\n sender {\n clinicId\n id\n name\n surname\n __typename\n }\n text\n type\n updatedAt\n __typename\n}\n\nfragment UseMessages_MedicalRecord on MedicalRecord {\n contentType\n createdAt\n description\n downloadUrl\n id\n token\n updatedAt\n url\n __typename\n}"} +{"operationName": "Communication_GetClinicFooter", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query Communication_GetClinicFooter($clinicSlug: String!) {\n footer: getClinicFooter(clinicSlug: $clinicSlug)\n}"} +{"operationName": "ClinicRequestDetail_GetPatientRequest2", "variables": {"clinicSlug": "mudr-buzalkova", "isDoctor": true, "requestId": "61c90032-255e-4c94-a4b5-00a48f717fe5", "locale": "cs"}, "query": "query ClinicRequestDetail_GetPatientRequest2($requestId: UUID!, $clinicSlug: String!, $isDoctor: Boolean!, $locale: Locale!) {\n patientRequestMedicalRecords: listMedicalRecordsForPatientRequest(\n attachmentTypes: [ECRF_FILL_ATTACHMENT, MESSAGE_ATTACHMENT, PATIENT_REQUEST_ATTACHMENT]\n patientRequestId: $requestId\n pageInfo: {first: 100, offset: 0}\n ) {\n ...ClinicRequestDetail_PatientRequestMedicalRecord\n __typename\n }\n request: getPatientRequest2(\n patientRequestId: $requestId\n clinicSlug: $clinicSlug\n ) {\n id\n ...ClinicRequestDetail_Request\n createdBy {\n id\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n __typename\n }\n eventType\n hasMobileApp\n extendedPatient(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetail_Patient\n ...ClinicPatientInfo_Patient\n __typename\n }\n __typename\n }\n}\n\nfragment ClinicRequestDetail_Patient on ExtendedPatient {\n id\n user {\n id\n phone\n __typename\n }\n phone\n editableByDoctor\n name\n surname\n type\n isUnknownPatient\n __typename\n}\n\nfragment ClinicRequestDetail_Request on PatientRequest {\n id\n doneAt\n doneBy {\n id\n name\n surname\n __typename\n }\n removedAt\n queue {\n id\n __typename\n }\n isInClinic\n clinic {\n id\n paymentEnabled\n hasInvoicingEnabled\n slug\n features\n __typename\n }\n clinicMedicalRecord\n clinicMedicalRecordVisibleToPatient\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n kind\n identificationNumber\n name\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n surname\n __typename\n }\n ecrf: userECRF(locale: $locale) {\n id\n sid\n name\n flags {\n isReference\n __typename\n }\n __typename\n }\n ecrfFilledData(locale: $locale) {\n ...EcrfFilledSteps_EcrfFilledStep\n __typename\n }\n eventType\n flags\n invoice {\n ...InvoiceStatusBar_Invoice\n __typename\n }\n userNote\n paymentData {\n ...InvoicePaymentStatusBar_PaymentSummaryData\n __typename\n }\n recording {\n ...ClinicRequestContent_Recording\n __typename\n }\n reservations {\n ...Reservations_Reservation\n ...VideoCall_Reservation\n __typename\n }\n evaluationResult(locale: $locale) {\n ...ClinicRequest_ECRFEvaluationResult\n __typename\n }\n tags(onlyImportant: false) {\n id\n ...Tag\n __typename\n }\n ...ClinicRequestHeading_Request\n ...ClinicRequestControls_Request\n ...InvoiceStatusBar_PatientRequest\n ...InvoicePriceBar_Request\n __typename\n}\n\nfragment ClinicRequestContent_Recording on Recording {\n fileUrl\n type\n __typename\n}\n\nfragment ClinicRequestControls_Request on PatientRequest {\n ...ClinicRequestControlsBar_Request\n isInClinic\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n identificationNumber\n kind\n name\n owner {\n name\n surname\n __typename\n }\n key\n type\n user {\n id\n name\n surname\n __typename\n }\n status\n surname\n isUnknownPatient\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControlsBar_Request on PatientRequest {\n id\n dueDate\n doneAt\n doneBy {\n name\n surname\n __typename\n }\n queue {\n id\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledStep on ECRFFilledStep {\n name\n groups {\n ...EcrfFilledSteps_EcrfFilledGroup\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledGroup on ECRFFilledGroup {\n label\n name\n fields {\n ...EcrfFilledSteps_EcrfFilledField\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledField on ECRFFilledField {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_EcrfFilledEnumeration\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_EcrfFilledEnumeration on ECRFFilledEnumeration {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n enumerations {\n ...EcrfFilledSteps_ShallowEcrfFilledEnumeration\n children {\n ...EcrfFilledSteps_ShallowECRFFilledField\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowECRFFilledField on ECRFFilledField {\n name\n label\n type\n value\n __typename\n}\n\nfragment EcrfFilledSteps_ShallowEcrfFilledEnumeration on ECRFFilledEnumeration {\n name\n label\n checked\n __typename\n}\n\nfragment ClinicRequest_ECRFEvaluationResult on ECRFEvaluationResult {\n contentForDoctor\n fields {\n name\n label\n type\n value\n min\n max\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestHeading_Request on PatientRequest {\n clinic {\n id\n name\n slug\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n __typename\n }\n isInClinic\n createdAt\n createdBy {\n id\n name\n surname\n __typename\n }\n customTitle\n createdByDoctor\n displayTitle(locale: $locale)\n ecrf: userECRF(locale: $locale) {\n id\n name\n ecrfSet {\n id\n name\n __typename\n }\n __typename\n }\n eventType\n flags\n id\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n name\n key\n surname\n __typename\n }\n referringClinic {\n id\n name\n __typename\n }\n __typename\n}\n\nfragment Reservations_Reservation on Reservation {\n calendar {\n ...Reservations_Calendar\n __typename\n }\n additionalCalendars {\n ...Reservations_Calendar\n __typename\n }\n calendarId\n canceledAt\n canceledBy {\n id\n clinicId\n name\n surname\n __typename\n }\n createdAt\n createdBy {\n id\n clinicId\n name\n surname\n __typename\n }\n clinic {\n id\n slug\n __typename\n }\n done\n end\n id\n note\n start\n videoCallDoctorUrl\n additionalCalendars {\n id\n __typename\n }\n __typename\n}\n\nfragment Reservations_Calendar on Calendar {\n id\n internalName\n name\n __typename\n}\n\nfragment InvoiceStatusBar_Invoice on Invoice {\n amount\n currency\n dueAmount\n id\n isOverdue\n link\n payments {\n ...InvoiceStatusBar_Payment\n __typename\n }\n refundedAmount\n status\n settledAmount\n isOnlinePayable\n __typename\n}\n\nfragment InvoiceStatusBar_Payment on Payment {\n id\n status\n __typename\n}\n\nfragment InvoiceStatusBar_PatientRequest on PatientRequest {\n extendedPatient(clinicSlug: $clinicSlug) {\n id\n user {\n id\n phone\n __typename\n }\n key\n phone\n __typename\n }\n hasMobileApp\n paymentData {\n status\n __typename\n }\n id\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment VideoCall_Reservation on Reservation {\n canceledAt\n end\n id\n showVideoCall\n start\n videoCallDoctorUrl\n __typename\n}\n\nfragment Tag on Tag {\n id\n name\n color\n icon\n __typename\n}\n\nfragment InvoicePaymentStatusBar_PaymentSummaryData on PaymentSummaryData {\n status\n amount\n currency\n __typename\n}\n\nfragment InvoicePriceBar_Request on PatientRequest {\n priceWhenCreated\n currencyWhenCreated\n __typename\n}\n\nfragment ClinicPatientInfo_Patient on ExtendedPatient {\n anamnesisShared\n anamnesisStatusForClinic {\n updatedAt\n __typename\n }\n clinics {\n ...ClinicsTinyList_Clinic\n __typename\n }\n id\n isInClinic\n dob\n city\n familyMembers: family {\n ...FamilyMemberList_FamilyMember\n __typename\n }\n houseNumber\n identificationNumber\n insuranceCompanyObject {\n id\n code\n name\n shortName\n __typename\n }\n kind\n name\n note\n owner {\n ...PatientInfo_ContactPatientOwner\n __typename\n }\n key\n status\n street\n surname\n user {\n ...PatientInfo_ContactPatientUser\n __typename\n }\n userRelationship\n premiumPlanPatient {\n id\n ...PremiumPlanTag_PremiumPlanPatient\n __typename\n }\n sex\n tags(onlyImportant: false) {\n ...Tag\n __typename\n }\n type\n isUnknownPatient\n hasMobileApp\n ...MergeSuggestionAlert_ExtendedPatient\n ...PatientInfo_ContactPatient\n __typename\n}\n\nfragment ClinicsTinyList_Clinic on Clinic {\n currentThumbnail {\n id\n fullUrl\n __typename\n }\n id\n name\n slug\n __typename\n}\n\nfragment PatientInfo_ContactPatient on ExtendedPatient {\n id\n city\n email\n houseNumber\n key\n phone\n street\n __typename\n}\n\nfragment PatientInfo_ContactPatientOwner on PatientOwner {\n name\n surname\n __typename\n}\n\nfragment PatientInfo_ContactPatientUser on PatientUser {\n id\n email\n name\n phone\n surname\n __typename\n}\n\nfragment FamilyMemberList_FamilyMember on FamilyPatientUserUnion {\n ...FamilyMemberList_Patient\n ...FamilyMemberList_PatientUser\n __typename\n}\n\nfragment FamilyMemberList_Patient on ExtendedPatient {\n dob\n id\n identificationNumber\n isInClinic\n kind\n name\n key\n surname\n sex\n type\n isUnknownPatient\n __typename\n}\n\nfragment FamilyMemberList_PatientUser on PatientUser {\n name\n surname\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlanPatient on PremiumPlanPatient {\n id\n autorenew\n validTo\n premiumPlan {\n ...PremiumPlanTag_PremiumPlan\n __typename\n }\n __typename\n}\n\nfragment PremiumPlanTag_PremiumPlan on PremiumPlan {\n id\n name\n color\n __typename\n}\n\nfragment ClinicRequestDetail_PatientRequestMedicalRecord on PatientRequestMedicalRecord {\n attachmentType\n id\n medicalRecord {\n ...FileItem_MedicalRecord\n __typename\n }\n __typename\n}\n\nfragment FileItem_MedicalRecord on MedicalRecord {\n contentType\n description\n downloadUrl\n id\n url\n visibleToPatient @include(if: $isDoctor)\n __typename\n}"} +{"operationName": "ClinicRequestDetailModalContent", "variables": {"clinicSlug": "mudr-buzalkova", "patientUuid": "7f492f8d-af27-4a08-ab2c-f72e46c5509c", "locale": "cs"}, "query": "query ClinicRequestDetailModalContent($clinicSlug: String!, $patientUuid: UUID!, $locale: Locale!) {\n clinic: getClinic(clinicSlug: $clinicSlug) {\n features\n id\n type\n ais\n ...ClinicRequestControls_Clinic\n ...PatientInfo_Clinic\n __typename\n }\n calendars: getCalendarsForClinic(clinicSlug: $clinicSlug) {\n ...ClinicRequestDetailModalContent_Calendar\n __typename\n }\n mergeSuggestions: findMergeSuggestions(\n clinicSlug: $clinicSlug\n input: {existingPatientId: $patientUuid}\n ) {\n ...MergeSuggestionAlert_MergeSuggestionResult\n __typename\n }\n queues: listQueues(clinicSlug: $clinicSlug) {\n ...ClinicRequestControlsBar_Queue\n __typename\n }\n patientRequestsResponse: filterPatientRequestsForClinic(\n clinicSlug: $clinicSlug\n filter: {patientId: $patientUuid}\n pageInfo: {first: 4, offset: 0}\n ) {\n count\n items {\n ...ClinicRequestDetail_RequestList_PatientRequest\n __typename\n }\n __typename\n }\n premiumPlans: listClinicPremiumPlans(clinicSlug: $clinicSlug) {\n id\n __typename\n }\n insuranceCards: getPatientDocuments(\n patientId: $patientUuid\n type: InsuranceCard\n ) {\n ...PatientInfo_InsuranceCard\n __typename\n }\n}\n\nfragment ClinicRequestDetailModalContent_Calendar on Calendar {\n id\n __typename\n}\n\nfragment ClinicRequestControlsBar_Queue on ClinicPatientRequestQueue {\n id\n name\n mine\n clinicPatientRequestQueueUsers {\n accountable {\n id\n name\n surname\n __typename\n }\n id\n __typename\n }\n __typename\n}\n\nfragment ClinicRequestControls_Clinic on Clinic {\n id\n slug\n canSendToEzprava\n __typename\n}\n\nfragment MergeSuggestionAlert_MergeSuggestionResult on MergeSuggestionResult {\n extendedPatient {\n ...MergeSuggestionAlert_ExtendedPatient\n __typename\n }\n matchResult\n __typename\n}\n\nfragment MergeSuggestionAlert_ExtendedPatient on ExtendedPatient {\n id\n key\n isInClinic\n __typename\n}\n\nfragment ClinicRequestDetail_RequestList_PatientRequest on PatientRequest {\n id\n createdAt\n displayTitle(locale: $locale)\n doneAt\n reservations {\n id\n canceledAt\n calendar {\n id\n name\n internalName\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment PatientInfo_Clinic on Clinic {\n id\n slug\n ais\n ...ClinicWithTypeAndFeatures_Clinic\n __typename\n}\n\nfragment ClinicWithTypeAndFeatures_Clinic on Clinic {\n id\n type\n features\n __typename\n}\n\nfragment PatientInfo_InsuranceCard on PatientDocument {\n id\n contentType\n url\n downloadUrl\n __typename\n}"} +{"operationName": "ClinicRequestNotes_Get", "variables": {"patientRequestId": "61c90032-255e-4c94-a4b5-00a48f717fe5"}, "query": "query ClinicRequestNotes_Get($patientRequestId: String!) {\n notes: getClinicPatientRequestNotes(requestId: $patientRequestId) {\n ...NotesList_ClinicPatientRequestNote\n __typename\n }\n}\n\nfragment NotesList_ClinicPatientRequestNote on ClinicPatientRequestNote {\n id\n content\n createdAt\n updatedAt\n createdBy {\n id\n name\n surname\n __typename\n }\n __typename\n}"} +{"operationName": "UseMessages_ListMessages", "variables": {"requestId": "61c90032-255e-4c94-a4b5-00a48f717fe5", "updatedSince": null}, "query": "query UseMessages_ListMessages($requestId: String!, $updatedSince: DateTime) {\n messages: listMessages(\n patientRequestId: $requestId\n updatedSince: $updatedSince\n ) {\n ...UseMessages_Message\n __typename\n }\n}\n\nfragment UseMessages_Message on Message {\n createdAt\n id\n medicalRecord {\n ...UseMessages_MedicalRecord\n __typename\n }\n readAt\n sender {\n clinicId\n id\n name\n surname\n __typename\n }\n text\n type\n updatedAt\n __typename\n}\n\nfragment UseMessages_MedicalRecord on MedicalRecord {\n contentType\n createdAt\n description\n downloadUrl\n id\n token\n updatedAt\n url\n __typename\n}"} +{"operationName": "Communication_GetClinicFooter", "variables": {"clinicSlug": "mudr-buzalkova"}, "query": "query Communication_GetClinicFooter($clinicSlug: String!) {\n footer: getClinicFooter(clinicSlug: $clinicSlug)\n}"} diff --git a/Medevio/medevio_api_notes.md b/Medevio/medevio_api_notes.md new file mode 100644 index 0000000..42fa5d6 --- /dev/null +++ b/Medevio/medevio_api_notes.md @@ -0,0 +1,135 @@ +# 🧭 MEDEVIO API – Working Notes + +## General Architecture +- **Frontend:** React + Material‑UI (MUI) + Apollo GraphQL +- **Backend:** GraphQL API → `https://api.medevio.cz/graphql` +- **Authentication:** cookies/tokens stored in `medevio_storage.json` (Playwright session) +- **Frontend base:** `https://my.medevio.cz/mudr-buzalkova/klinika/...` +- **Session handling:** token refreshed through `AccessToken_AuthSelf` calls + +--- + +## Authentication and Session +Reuse session cookies from Playwright: + +```python +state = json.load(open("medevio_storage.json")) +cookies = {c["name"]: c["value"] for c in state["cookies"] if "medevio" in c["domain"]} +``` + +Use these cookies in every `requests.post(GRAPHQL_URL, headers, cookies, data=...)` call. + +--- + +## Key GraphQL Operations + +| Operation name | Purpose | +|----------------|----------| +| `AccessToken_AuthSelf` | Verify or refresh session | +| `ClinicNavigation_GetClinic` | Get basic clinic info | +| `ClinicAgenda_GetCalendarsForClinic` | List calendars within clinic | +| **`ClinicAgenda_ListClinicReservations`** | **List reservations (appointments)** | +| **`UpdateReservation_GetReservation`** | **Get full detail of one reservation** | +| **`ClinicRequestDetail_GetPatientRequest2`** | **Fetch detailed “Požadavek” (request card)** | +| `ClinicRequestNotes_Get` | Load Požadavek notes | +| `UseMessages_ListMessages` | Load chat messages | +| `Communication_GetClinicFooter` | UI footer text | + +--- + +## Workflow for Automation + +### 1️⃣ Extract reservations (agenda overview) +```graphql +operationName: "ClinicAgenda_ListClinicReservations" +variables: { + "clinicId": "", + "dateFrom": "YYYY-MM-DDT00:00:00Z", + "dateTo": "YYYY-MM-DDT23:59:59Z" +} +``` +→ returns `id`, `startDateTime`, `endDateTime`, `patient {name, age}`, `reason`, `status`. + +### 2️⃣ Get detail of a single reservation +```graphql +operationName: "UpdateReservation_GetReservation" +variables: {"id": ""} +``` +→ returns reason, time, doctor, patient contact, note, etc. + +### 3️⃣ Get detail of Požadavek +```graphql +operationName: "ClinicRequestDetail_GetPatientRequest2" +variables: {"id": ""} +``` +→ returns text, attachments, communication, etc. + +--- + +## HTTP Setup (Python) + +```python +GRAPHQL_URL = "https://api.medevio.cz/graphql" +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} +response = requests.post(GRAPHQL_URL, headers=headers, cookies=cookies, data=json.dumps(payload)) +``` + +--- + +## Reservation Data Example + +```json +{ + "id": "0e3a4f5c-1c15-40e6-b1b1-325de9269ef5", + "reason": "Očkování - Chřipka", + "startDateTime": "2025-10-17T09:10:00Z", + "endDateTime": "2025-10-17T09:20:00Z", + "status": "confirmed", + "note": "přijde i s taťkou", + "patient": {"id": "...", "name": "Černík Pavel", "age": 53}, + "doctor": {"id": "...", "name": "MUDr. Buzalková"}, + "location": {"name": "Ordinace Prosek"} +} +``` + +--- + +## Playwright Selectors + +| Purpose | Selector | +|----------|-----------| +| Agenda rows | `div[data-testid='reservation-row']` | +| Row ID | `data-id` | +| Agenda fields | `div[data-field='Time']`, `div[data-field='Patient']`, `div[data-field='Reason']` | + +--- + +## Recommended Automation Pipeline + +1. **Agenda scrape (Playwright)** → extract `data-id`, patient, time, reason. +2. **GraphQL fetch (Python)** → use `ClinicAgenda_ListClinicReservations`. +3. **Detail enrichment** → call `UpdateReservation_GetReservation` and `ClinicRequestDetail_GetPatientRequest2`. +4. **Storage/reporting** → save to MySQL/Excel for vaccine planning. + +--- + +## Security / Maintenance Notes + +- GraphQL introspection disabled. +- Refresh session cookies periodically. +- Keep data GDPR-compliant. + +--- + +## Future Tasks + +- Automate cookie renewal. +- Build helper functions: + - `get_reservations(date)` using `ClinicAgenda_ListClinicReservations` + - `get_reservation_detail(reservation_id)` +- Map vaccine keywords (`Očkování – Chřipka`, `COVID`, `Hepatitida`, …). +- Export to Excel/MySQL for vaccine order planning. diff --git a/Medevio/medevio_api_notes.txt b/Medevio/medevio_api_notes.txt new file mode 100644 index 0000000..e8abd7c --- /dev/null +++ b/Medevio/medevio_api_notes.txt @@ -0,0 +1,113 @@ +MEDEVIO API – WORKING NOTES +============================ + +GENERAL ARCHITECTURE +-------------------- +Frontend: React + Material-UI (MUI) + Apollo GraphQL +Backend: GraphQL API at https://api.medevio.cz/graphql +Authentication: via cookies / tokens stored in medevio_storage.json (Playwright session file) +Frontend base: https://my.medevio.cz/mudr-buzalkova/klinika/... +Session handling: token refreshed through AccessToken_AuthSelf calls + +AUTHENTICATION AND SESSION +-------------------------- +Reuse session cookies from medevio_storage.json. + +Example: + state = json.load(open("medevio_storage.json")) + cookies = {c["name"]: c["value"] for c in state["cookies"] if "medevio" in c["domain"]} + +Use these cookies in all requests.post(GRAPHQL_URL, headers, cookies, data=...) calls. + +KEY API ENDPOINTS (GraphQL OPERATIONS) +-------------------------------------- +Operation name Purpose +------------------------------------ ------------------------------------------ +AccessToken_AuthSelf Verify or refresh current user session +ClinicNavigation_GetClinic Get basic clinic info (name, ID) +ClinicAgenda_GetCalendarsForClinic List available calendars within your clinic +ClinicAgenda_ListClinicReservations List reservations (appointments) for date or range +UpdateReservation_GetReservation Get full detail of one reservation +ClinicRequestDetail_GetPatientRequest2 Fetch detailed “Požadavek” (request card) +ClinicRequestNotes_Get Load notes/comments on Požadavek +UseMessages_ListMessages Load chat messages with patient +Communication_GetClinicFooter UI info only + +WORKFLOW FOR AUTOMATION +----------------------- +1. Extract reservations (agenda overview) + operationName: "ClinicAgenda_ListClinicReservations" + variables: {"clinicId": "", "dateFrom": "YYYY-MM-DDT00:00:00Z", "dateTo": "YYYY-MM-DDT23:59:59Z"} + + Returns: id, startDateTime, endDateTime, patient {name, age}, reason, status + +2. Get detail of a single reservation + operationName: "UpdateReservation_GetReservation" + variables: {"id": ""} + + Returns: reason, time, doctor, patient contact, note, etc. + +3. Get detail of Požadavek (request card) + operationName: "ClinicRequestDetail_GetPatientRequest2" + variables: {"id": ""} + + Returns: text of request, attachments, communication, etc. + +HTTP SETUP FOR ALL GRAPHQL CALLS +-------------------------------- +GRAPHQL_URL = "https://api.medevio.cz/graphql" +headers = { + "content-type": "application/json", + "origin": "https://my.medevio.cz", + "referer": "https://my.medevio.cz/", +} + +response = requests.post(GRAPHQL_URL, headers=headers, cookies=cookies, data=json.dumps(payload)) + +DATA STRUCTURE HINTS (Reservation) +---------------------------------- +{ + "id": "0e3a4f5c-1c15-40e6-b1b1-325de9269ef5", + "reason": "Očkování - Chřipka", + "startDateTime": "2025-10-17T09:10:00Z", + "endDateTime": "2025-10-17T09:20:00Z", + "status": "confirmed", + "note": "přijde i s taťkou", + "patient": {"id": "...", "name": "Černík Pavel", "age": 53}, + "doctor": {"id": "...", "name": "MUDr. Buzalková"}, + "location": {"name": "Ordinace Prosek"} +} + +PLAYWRIGHT SELECTORS (REFERENCE) +-------------------------------- +Purpose Selector +---------------- ------------------------------------------- +Agenda rows div[data-testid='reservation-row'] +Row ID data-id +Agenda fields div[data-field='Time'], div[data-field='Patient'], div[data-field='Reason'] + +RECOMMENDED AUTOMATION PIPELINE +-------------------------------- +1. Step 1 – Agenda scrape (Playwright) + Open agenda-dne → extract data-id, patient, time, reason. +2. Step 2 – GraphQL fetch (Python requests) + Use ClinicAgenda_ListClinicReservations to get full dataset. +3. Step 3 – Detail enrichment + For each appointment → call UpdateReservation_GetReservation. + For linked Požadavek → call ClinicRequestDetail_GetPatientRequest2. +4. Step 4 – Storage / reporting + Save to MySQL or Excel for vaccine inventory, reminders, analytics. + +SECURITY / MAINTENANCE NOTES +---------------------------- +- GraphQL introspection is disabled. +- Session cookies expire periodically; refresh via Playwright login. +- Keep data secure (GDPR compliance). + +FUTURE TASKS +------------ +- Automate login refresh and cookie renewal. +- Build function get_reservations(date) using ClinicAgenda_ListClinicReservations. +- Build function get_reservation_detail(reservation_id). +- Map vaccine keywords (Očkování – Chřipka, COVID, Hepatitida, …). +- Export to Excel/MySQL for vaccine order planning. diff --git a/Medevio/medevio_storage.json b/Medevio/medevio_storage.json new file mode 100644 index 0000000..a0dc794 --- /dev/null +++ b/Medevio/medevio_storage.json @@ -0,0 +1 @@ +{"cookies": [{"name": "gateway-access-token", "value": "YwBgkf8McREDKs7vCZj0EZD2fJsuV8RyDPtYx7WiDoz0nFJ9kxId8kcNEPBLFSwM+Tiz80+SOdFwo+oj", "domain": "my.medevio.cz", "path": "/", "expires": 1763372319, "httpOnly": false, "secure": false, "sameSite": "Lax"}, {"name": "aws-waf-token", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c6zAAAA:OYwXLY5OyitSQPl5v2oIlS+hIxsrb5LxV4VjCyE2gJCFFE5PQu+0Zbxse2ZIofrNv5QKs0TYUDTmxPhZyTr9Qtjnq2gsVQxWHXzrbebv3Z7RbzB63u6Ymn3Fo8IbDev3CfCNcNuxCKltFEXLqSCjI2vqNY+7HZkgQBIqy2wMgzli3aSLq0w8lWYtZzyyot7q8RPXWMGTfaBUo2reY0SOSffm9rAivE9PszNfPid71CvNrGAAoxRbwb25eVujlyIcDVWe5vZ9Iw==", "domain": ".my.medevio.cz", "path": "/", "expires": 1761125920, "httpOnly": false, "secure": true, "sameSite": "Lax"}], "origins": [{"origin": "https://my.medevio.cz", "localStorage": [{"name": "awswaf_token_refresh_timestamp", "value": "1760780309860"}, {"name": "awswaf_session_storage", "value": "b6a1d4eb-4350-40e5-8e52-1f5f9600fbb8:CgoAr9pC8c+zAAAA:+vw//1NzmePjPpbGCJzUB+orCRivtJd098DbDX4AnABiGRw/+ql6ShqvFY4YdCY7w2tegb5mEPBdAmc4sNi22kNR9BuEoAgCUiMhkU1AZWfzM51zPfTh7SveCrREZ7xdvxcqKPMmfVLRYX5E4+UWh22z/LKQ7+d9VERp3J+wWCUW3dFFirkezy3N7b2FVjTlY/RxsZwhejQziTG/L3CkIFFP3mOReNgBvDpj7aKoM1knY4IL4TZ8E7zNv3nTsvzACLYvnUutVOUcofN1TfOzwZshSKsEXsMzrQn8PzLccX1jM5VSzce7gfEzl0zSPsT8NB3Sna+rhMIttDNYgvbW1HsfG2LIeKMR27Zf8hkslDRVVkcU/Kp2jLOEdhhrBKGjKY2o9/uX3NExdzh5MEKQSSRtmue01BpWYILPH23rMsz4YSmF+Ough5OeQoC95rkcYwVXMhwvUN9Zfp9UZ4xCNfFUex5dOrg9aJntYRnaceeocGUttNI5AdT0i3+osV6XHXzKxeqO8zLCS9BIsCzxaHfdqqem5DorMceuGKz+QqksatIQAA=="}, {"name": "Application.Intl.locale", "value": "cs"}, {"name": "Password.prefill", "value": "{\"username\":\"vladimir.buzalka@buzalka.cz\",\"type\":\"email\"}"}]}]} \ No newline at end of file diff --git a/Medevio/token.txt b/Medevio/token.txt new file mode 100644 index 0000000..d31188b --- /dev/null +++ b/Medevio/token.txt @@ -0,0 +1 @@ +nYvrvgflIKcDiQg8Hhpud+qG8iGZ8eH8su4nyT/Mgcm7XQp65ygY9s39+O01wIpk/7sKd6fBHkiKvsqH \ No newline at end of file

D8;#QeZ>UlIHaus0tP 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%0A=fq9zIlimmg1*y#lfNpLc9_7-Ty~ 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 z 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