notebookVB
This commit is contained in:
52
10 Tests/2026-01-10 Test kdo jsou registrovaní.py
Normal file
52
10 Tests/2026-01-10 Test kdo jsou registrovaní.py
Normal 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))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
63
10 Tests/20260111 Jednorázové ověření
Normal file
63
10 Tests/20260111 Jednorázové ověření
Normal 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.")
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user