import pandas as pd import pymysql from medicus_db import MedicusDB import fdb # FULL OUTPUT SETTINGS pd.set_option("display.max_rows", None) pd.set_option("display.max_columns", None) pd.set_option("display.width", 0) pd.set_option("display.max_colwidth", None) # =========== # # =========================== # FIREBIRD → načtení registrovaných pacientů # ====================================== db = MedicusDB("192.168.1.4", r"z:\Medicus 3\data\MEDICUS.FDB") rows_fb = db.get_active_registered_patients() # vrací rc, prijmeni, jmeno, poj db.close() df_fb = pd.DataFrame(rows_fb, columns=["rc", "prijmeni", "jmeno", "poj_medicus"]) df_fb["poj_medicus"] = df_fb["poj_medicus"].astype(str).str.strip() print("FB count:", len(df_fb)) # ====================================== # MYSQL → načtení dnešních výsledků # ====================================== mysql = pymysql.connect( host="192.168.1.76", port=3307, user="root", password="Vlado9674+", database="medevio", charset="utf8mb4" ) sql_mysql = """ SELECT rc, kod_pojistovny AS poj_mysql, nazev_pojistovny, stav, stav_vyrizeni FROM vzp_stav_pojisteni AS v WHERE v.k_datu = CURDATE() AND v.id = ( SELECT MAX(id) FROM vzp_stav_pojisteni WHERE rc = v.rc AND k_datu = CURDATE() ); """ df_mysql = pd.read_sql(sql_mysql, mysql) df_mysql["poj_mysql"] = df_mysql["poj_mysql"].astype(str).str.strip() print("MySQL count:", len(df_mysql)) # ====================================== # LEFT JOIN: Medicus ↔ MySQL podle RC # ====================================== df_merge = df_fb.merge(df_mysql, on="rc", how="left") # ====================================== # Najít rozdíly pojišťovny # ====================================== df_diff = df_merge[df_merge["poj_medicus"] != df_merge["poj_mysql"]] print("\nPacienti s rozdílnou pojišťovnou:") print(df_diff[["rc", "prijmeni", "jmeno", "poj_medicus", "poj_mysql", "nazev_pojistovny"]]) # Pokud chceš uložit do Excelu: # df_diff.to_excel("rozdil_pojistoven.xlsx", index=False)