notebookVB

This commit is contained in:
2026-01-11 17:15:52 +01:00
parent 8b565f0303
commit a5aa385ebf
3 changed files with 129 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
from knihovny.medicus_db import MedicusDB
import pymysql
# ==========================================
# CONFIGURATION
# ==========================================
HOST = "192.168.1.4"
DB_PATH = r"z:\Medicus 3\data\MEDICUS.FDB"
db = MedicusDB(HOST, DB_PATH)
patients = db.get_all_patients(as_dict=True)
patients_by_rc = {p["rodcis"]: p for p in patients}
print(f"Loaded {len(patients_by_rc)} registered patients")
print(patients_by_rc)
print(len(patients_by_rc))
# exit(0)
MYSQL_CONFIG = {
"host": "192.168.1.76",
"port": 3307,
"user": "root",
"password": "Vlado9674+",
"database": "medevio",
"charset": "utf8mb4",
"autocommit": True
}
mysql = pymysql.connect(
cursorclass=pymysql.cursors.DictCursor,
**MYSQL_CONFIG
)
with mysql.cursor() as cur:
cur.execute("select distinct rc from vzp_stav_pojisteni where prijmeni is null or jmeno is null")
for radek in cur.fetchall():
print(radek, radek['rc'] in patients_by_rc)
rodcis=radek['rc']
# if radek['jmeno'] is None or radek['prijmeni'] is None:
# if radek['rc'] in patients_by_rc:
# with mysql.cursor() as tmpcur:
# tmpcur.execute('update vzp_stav_pojisteni set prijmeni=%s, jmeno=%s where id=%s',
# (patients_by_rc[radek['rc']]['prijmeni'],patients_by_rc[radek['rc']]['jmeno'],int(radek['id'])))
if rodcis in patients_by_rc:
jmeno=patients_by_rc[rodcis]['jmeno']
prijmeni=patients_by_rc[rodcis]['prijmeni']
with mysql.cursor() as tmpcur:
tmpcur.execute("update vzp_stav_pojisteni set prijmeni=%s, jmeno=%s where rc=%s",(prijmeni, jmeno, rodcis))

View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import logging
from vzpb2b_client import VZPB2BClient
from datetime import date
# ==========================================
# KONFIGURACE (Zůstává stejná jako ve vašem skriptu)
# ==========================================
PFX_PATH = r"MBcert.pfx"
PFX_PASSWORD = "Vlado7309208104++"
ENV = "prod"
ICZ = "00000000" # Sem doplňte své reálné ICZ
DIC = "00000000" # Sem doplňte své reálné DIČ
# ==========================================
# MANUÁLNÍ DOTAZ - ZDE ZADEJTE RODNÉ ČÍSLO
# ==========================================
rodcitoquery = "155328072" # <--- Sem vložte hledané rodné číslo
k_datu = date.today().isoformat()
# ==========================================
# INIT VZP CLIENT
# ==========================================
print(f"--- Inicializace připojení pro RC: {rodcitoquery} ---")
try:
vzp = VZPB2BClient(ENV, PFX_PATH, PFX_PASSWORD, icz=ICZ, dic=DIC)
except Exception as e:
print(f"Chyba při inicializaci certifikátu: {e}")
exit()
# ==========================================
# DOTAZ NA VZP A VÝPIS RAW RESPONSE
# ==========================================
print(f"Odesílám dotaz na VZP (k datu {k_datu})...")
try:
# Volání API
xml = vzp.stav_pojisteni(rc=rodcitoquery, k_datu=k_datu)
print("\n" + "="*50)
print(" RAW RESPONSE Z WEBU VZP (XML)")
print("="*50)
print(xml)
print("="*50 + "\n")
# Pokus o parsování (pro kontrolu, zda je odpověď validní)
if xml.strip().startswith("<"):
try:
result = vzp.parse_stav_pojisteni(xml)
print(f"Interpretovaný výsledek: {result}")
except Exception as parse_err:
print(f"Upozornění: XML nelze automaticky parsovat: {parse_err}")
else:
print("Upozornění: Odpověď nezačíná jako XML. Pravděpodobně chyba komunikace nebo timeout.")
except Exception as e:
print(f"❌ CHYBA PŘI KOMUNIKACI: {e}")
print("\nHotovo.")

View File

@@ -35,6 +35,20 @@ class MedicusDB:
AND registr.priznak IN ('A','D','V') AND registr.priznak IN ('A','D','V')
AND kar.rodcis IS NOT NULL AND kar.rodcis IS NOT NULL
AND kar.rodcis <> '' AND kar.rodcis <> ''
AND kar.vyrazen <> 'A'
"""
if as_dict:
return self.query_dict(sql)
return self.query(sql)
def get_all_patients(self, as_dict=False):
sql = """
SELECT
kar.rodcis,
kar.prijmeni,
kar.jmeno,
kar.poj
FROM kar
""" """
if as_dict: if as_dict:
return self.query_dict(sql) return self.query_dict(sql)