103 lines
2.9 KiB
Python
103 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Kontrola statusu pacientů po remove skriptu:
|
|
- Kolik je označeno jako REMOVED?
|
|
- Kolik zbývá ACTIVE bez účtu a bez registrace v Medicusu?
|
|
"""
|
|
|
|
import sys
|
|
try:
|
|
sys.stdout.reconfigure(encoding="utf-8")
|
|
sys.stderr.reconfigure(encoding="utf-8")
|
|
except AttributeError:
|
|
import io
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
|
|
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8")
|
|
|
|
sys.path.insert(0, 'U:/OrdinaceProjekt')
|
|
|
|
import pymysql
|
|
from Knihovny.medicus_db import get_medicus_db
|
|
|
|
# ==================== CONFIG ====================
|
|
|
|
DB_CONFIG = {
|
|
"host": "192.168.1.76",
|
|
"port": 3306,
|
|
"user": "root",
|
|
"password": "Vlado9674+",
|
|
"database": "medevio",
|
|
"charset": "utf8mb4",
|
|
"cursorclass": pymysql.cursors.DictCursor,
|
|
}
|
|
|
|
# ==================== MAIN ====================
|
|
|
|
def main():
|
|
print("=" * 70)
|
|
print("KONTROLA STATUSU PACIENTŮ V MEDEVIO")
|
|
print("=" * 70)
|
|
|
|
# --- Medevio (MySQL) ---
|
|
print("\n[Medevio — MySQL]")
|
|
conn = pymysql.connect(**DB_CONFIG)
|
|
|
|
with conn.cursor() as cur:
|
|
cur.execute("SELECT COUNT(*) as cnt FROM medevio_pacient WHERE status = 'ACTIVE'")
|
|
active = cur.fetchone()["cnt"]
|
|
|
|
cur.execute("SELECT COUNT(*) as cnt FROM medevio_pacient WHERE status = 'REMOVED'")
|
|
removed = cur.fetchone()["cnt"]
|
|
|
|
cur.execute("""
|
|
SELECT COUNT(*) as cnt FROM medevio_pacient
|
|
WHERE status = 'ACTIVE' AND user_id IS NULL
|
|
""")
|
|
active_no_account = cur.fetchone()["cnt"]
|
|
|
|
conn.close()
|
|
|
|
print(f" ACTIVE pacientů: {active}")
|
|
print(f" REMOVED pacientů: {removed}")
|
|
print(f" ACTIVE bez účtu (user_id NULL): {active_no_account}")
|
|
|
|
# --- Medicus (Firebird) ---
|
|
print("\n[Medicus — Firebird]")
|
|
db = get_medicus_db()
|
|
rows = db.get_active_registered_patients()
|
|
medicus_registered = len(rows)
|
|
medicus_rc = {r[0].strip() for r in rows if r[0]}
|
|
db.close()
|
|
print(f" Registrovaní pacienti: {medicus_registered}")
|
|
|
|
# --- Kandidáti na REMOVED ---
|
|
print("\n[Analýza]")
|
|
print(f" ACTIVE bez účtu: {active_no_account}")
|
|
|
|
# Zjisti, kolik z těch ACTIVE bez účtu nejsou v Medicusu
|
|
conn = pymysql.connect(**DB_CONFIG)
|
|
with conn.cursor() as cur:
|
|
cur.execute("""
|
|
SELECT patient_id, name, surname, identification_number
|
|
FROM medevio_pacient
|
|
WHERE status = 'ACTIVE'
|
|
AND user_id IS NULL
|
|
AND identification_number IS NOT NULL
|
|
""")
|
|
candidates_raw = cur.fetchall()
|
|
conn.close()
|
|
|
|
candidates_not_in_medicus = [
|
|
r for r in candidates_raw
|
|
if r["identification_number"] not in medicus_rc
|
|
]
|
|
|
|
print(f" Z toho mimo Medicus (kandidáti na REMOVED): {len(candidates_not_in_medicus)}")
|
|
|
|
print("\n" + "=" * 70)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|