z230
This commit is contained in:
79
10 Tests/rozdíl.py
Normal file
79
10 Tests/rozdíl.py
Normal file
@@ -0,0 +1,79 @@
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user