80 lines
2.0 KiB
Python
80 lines
2.0 KiB
Python
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)
|
|
|