diff --git a/Insurance/StavPojisteni/10 FinalSaveInsuranceStatusScript(R).py b/Insurance/StavPojisteni/10 FinalSaveInsuranceStatusScript(R).py index a5d033e..397b682 100644 --- a/Insurance/StavPojisteni/10 FinalSaveInsuranceStatusScript(R).py +++ b/Insurance/StavPojisteni/10 FinalSaveInsuranceStatusScript(R).py @@ -13,11 +13,12 @@ sys.path.insert(0, str(PROJECT_ROOT)) import time import logging -from Knihovny.medicus_db import MedicusDB +import pymysql +import pymysql.cursors +from datetime import date +from Knihovny.medicus_db import get_medicus_db from Knihovny.vzpb2b_client import VZPB2BClient from Knihovny.mysql_db import connect_mysql -import pymysql -from datetime import date # ========================================== # LOGGING SETUP @@ -46,7 +47,7 @@ def log_error(msg): # ========================================== # MYSQL CONNECTION # ========================================== -mysql = connect_mysql() +mysql = connect_mysql(cursorclass=pymysql.cursors.DictCursor) # ========================================== # SAVE RESULT @@ -84,14 +85,7 @@ def save_insurance_status(mysql_conn, rc, prijmeni, jmeno, k_datu, result, xml_t # ========================================== # CONFIGURATION # ========================================== -# con = fdb.connect( -# host='192.168.1.10', database=r'm:\MEDICUS\data\medicus.FDB', -# user='sysdba', password='masterkey',charset='WIN1250') -HOST = "192.168.1.10" -DB_PATH = r"M:\Medicus\Data\Medicus.fdb" - PFX_PATH = Path(__file__).resolve().parent.parent / "Certificates" / "picka.pfx" -# PFX_PATH = PROJECT_ROOT / "certificates" / "MBcert.pfx" PFX_PASSWORD = "Vlado7309208104+" ENV = "prod" @@ -105,7 +99,7 @@ if not PFX_PATH.exists(): # ========================================== # INIT CONNECTIONS # ========================================== -db = MedicusDB(HOST, DB_PATH) +db = get_medicus_db() vzp = VZPB2BClient( ENV, str(PFX_PATH), # <-- important: pass as string @@ -127,7 +121,7 @@ today = date.today() # ========================================== with mysql.cursor() as cur: cur.execute("SELECT DISTINCT rc FROM vzp_stav_pojisteni WHERE k_datu = %s", (today,)) - already_checked = {row[0] for row in cur.fetchall()} + already_checked = {row["rc"] for row in cur.fetchall()} patients_to_check = [ (rc, prijmeni, jmeno) diff --git a/Knihovny/medicus_db.py b/Knihovny/medicus_db.py index 1791a3a..6ca2fb6 100644 --- a/Knihovny/medicus_db.py +++ b/Knihovny/medicus_db.py @@ -18,6 +18,15 @@ def get_medicus_connection(): return fdb.connect(dsn=dsn, user="SYSDBA", password="masterkey", charset="win1250") +def get_medicus_db(): + """Vrátí MedicusDB instanci s připojením podle názvu počítače.""" + conn = get_medicus_connection() + instance = object.__new__(MedicusDB) + instance.conn = conn + instance.cur = conn.cursor() + return instance + + class MedicusDB: def __init__(self, host, db_path, user="SYSDBA", password="masterkey", charset="WIN1250"):