#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Analýza 129 extra pacientů v Medeviu (nejsou v Medicusu): - Mají účet v Medeviu? - Jaké jsou jejich statusy? """ 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 DB_CONFIG = { "host": "192.168.1.76", "port": 3306, "user": "root", "password": "Vlado9674+", "database": "medevio", "charset": "utf8mb4", "cursorclass": pymysql.cursors.DictCursor, } def main(): # Načti registrované v Medicusu db = get_medicus_db() rows = db.get_active_registered_patients() medicus_rc = {r[0].strip() for r in rows if r[0]} db.close() # Najdi všechny ACTIVE v Medeviu, co nejsou v Medicusu conn = pymysql.connect(**DB_CONFIG) with conn.cursor() as cur: cur.execute(""" SELECT patient_id, name, surname, identification_number, user_id, status FROM medevio_pacient WHERE status = 'ACTIVE' AND identification_number IS NOT NULL ORDER BY surname, name """) all_active = cur.fetchall() conn.close() # Filtruj ty mimo Medicus extras = [ r for r in all_active if r["identification_number"] not in medicus_rc ] print(f"{'=' * 80}") print(f"EXTRA PACIENTI V MEDEVIU (mimo Medicus): {len(extras)}") print(f"{'=' * 80}\n") # Rozdělení podle user_id with_account = [r for r in extras if r["user_id"]] without_account = [r for r in extras if not r["user_id"]] print(f"S účtem (user_id NOT NULL): {len(with_account)}") print(f"Bez účtu (user_id IS NULL): {len(without_account)}\n") if without_account: print("─" * 80) print("BEZ ÚČTU — KANDIDÁTI NA REMOVE:") print("─" * 80) for r in without_account[:10]: # První 10 print(f" {r['surname']} {r['name']} RC: {r['identification_number']}") if len(without_account) > 10: print(f" ... a dalších {len(without_account) - 10}") if with_account: print("\n" + "─" * 80) print("S ÚČTEM — NORMÁLNÍ PACIENTI (nejsou v Medicusu, ale mají Medevio účet):") print("─" * 80) for r in with_account[:10]: # První 10 print(f" {r['surname']} {r['name']} RC: {r['identification_number']}") if len(with_account) > 10: print(f" ... a dalších {len(with_account) - 10}") print(f"\n{'=' * 80}") if __name__ == "__main__": main()