From 4e0d7688256781bb22c2ca8c04fbb3038b74cb8b Mon Sep 17 00:00:00 2001 From: "michaela.buzalkova" Date: Wed, 22 Apr 2026 08:12:52 +0200 Subject: [PATCH] sestra --- 60 ScansProcessing/corrections.json | 4 ++ 60 ScansProcessing/extract_patient_info.py | 4 +- Knihovny/najdi_medicus.py | 49 ++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 Knihovny/najdi_medicus.py diff --git a/60 ScansProcessing/corrections.json b/60 ScansProcessing/corrections.json index ac82892..825a290 100644 --- a/60 ScansProcessing/corrections.json +++ b/60 ScansProcessing/corrections.json @@ -222,5 +222,9 @@ { "original": "435624102 2026-03-31 Hovorková, Eva [PZ ortopedie] [26-31MAR2026, gonartróza l.dx., TEP kolene, Zimmer Nexgen CR F/6/10].pdf", "corrected": "435624102 2026-03-31 Hovorková, Eva [PZ ortopedie] [26-31MAR2026, gonartróza l.dx., TEP kolene].pdf" + }, + { + "original": "470629074 2026-04-21 Šebesta, Jaroslav [oznámení ZP správní řízení] [zahájení správního řízení, LRPéče indikace II/3 hypertenzní choroba II-III.st].pdf", + "corrected": "470629074 2026-04-21 Šebesta, Jaroslav [oznámení ZP správní řízení] [zahájení správního řízení, návrh lázně, indikace II3 hypertenzní choroba II-III.st].pdf" } ] \ No newline at end of file diff --git a/60 ScansProcessing/extract_patient_info.py b/60 ScansProcessing/extract_patient_info.py index 2eeae18..8b44926 100644 --- a/60 ScansProcessing/extract_patient_info.py +++ b/60 ScansProcessing/extract_patient_info.py @@ -27,6 +27,7 @@ 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" @@ -97,8 +98,9 @@ def check_duplicates(rc: str, datum: str) -> list[str]: def _medicus_connect(): try: import fdb + cfg = get_medicus_config() return fdb.connect( - dsn=r"localhost:c:\medicus 3\data\medicus.fdb", + dsn=cfg.dsn, user="SYSDBA", password="masterkey", charset="win1250" ) except Exception as e: diff --git a/Knihovny/najdi_medicus.py b/Knihovny/najdi_medicus.py new file mode 100644 index 0000000..e0b4543 --- /dev/null +++ b/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}")