diff --git a/Insurance/FinalReconcilliation/01_zakoupeno.py b/Insurance/FinalReconcilliation/01_zakoupeno.py new file mode 100644 index 0000000..d5a73b5 --- /dev/null +++ b/Insurance/FinalReconcilliation/01_zakoupeno.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +01_zakoupeno.py — workflow status 0: Zakoupeno (datum 31.12.2024) +================================================================= +První stav reconciliačního workflow. Všem pacientům ze zakoupeného souboru +(CSV příloha smlouvy, 1712 RČ) nastaví status 0 "Zakoupeno" k 31.12.2024. + +- Pacienti ze smlouvy, kteří už jsou v Mongo (registrovaní k 1.1.2025) → status 0. +- Pacienti ze smlouvy, kteří v Mongo nejsou (odhlášeni u Buzalkové před předáním) + → doplněni z Medicus kar s markerem `mimo_vzp_populaci` + status 0. +- Pacienti v Mongo mimo smlouvu → označeni `ve_smlouve=False` (status 0 nedostanou). + +Workflow stav drží: + status, status_popis, status_datum (aktuální stav) + status_historie[] (postup stavů — pro další kroky) + +Idempotentní — opakované spuštění status 0 nezduplikuje. +""" + +import csv +import re +import sys +from pathlib import Path +from datetime import datetime, timezone + +PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent +sys.path.insert(0, str(PROJECT_ROOT)) + +import pymongo +from Knihovny.medicus_db import get_medicus_connection + +# ── Konfigurace ──────────────────────────────────────────────────────────────── +MONGO_URI = "mongodb://192.168.1.76:27017" +MONGO_DB = "ordinace" +MONGO_COLL = "registrovani_tracking" +CSV_PATH = Path(__file__).resolve().parent / "Inputs" / "2025-01-01 seznam_pacientu_jmeno_rc.csv" + +STATUS = 0 +STATUS_POPIS = "Zakoupeno" +STATUS_DATUM = "2024-12-31" + +POJ_ZKR = {"111": "VZP", "201": "VoZP", "205": "ČPZP", "207": "OZP", + "209": "ZPŠ", "211": "ZPMV ČR", "213": "RBP"} +norm = lambda s: re.sub(r"\D", "", s or "") + + +def status_entry(now): + return {"status": STATUS, "status_popis": STATUS_POPIS, + "status_datum": STATUS_DATUM, "zapsano": now} + + +def main(): + # ── CSV (zakoupený soubor) ────────────────────────────────────────────────── + csv_rc = {} + with CSV_PATH.open(encoding="utf-8-sig") as f: + for row in csv.DictReader(f, delimiter=";"): + csv_rc[norm(row["Rodné číslo"])] = row["Příjmení a jméno"] + contract = set(csv_rc) + print(f"Zakoupený soubor (CSV): {len(contract)} RČ") + + cli = pymongo.MongoClient(MONGO_URI, serverSelectionTimeoutMS=3000) + coll = cli[MONGO_DB][MONGO_COLL] + coll.create_index("status") + coll.create_index("ve_smlouve") + + pop = {norm(d["_id"]): d["_id"] for d in coll.find({}, {"_id": 1})} + popset = set(pop) + + present = contract & popset + absent = contract - popset + extra = popset - contract + now = datetime.now(timezone.utc) + + # ── 1) Pacienti ze smlouvy už v Mongo → status 0 (idempotentně) ───────────── + n_pres = 0 + for rc in present: + _id = pop[rc] + d = coll.find_one({"_id": _id}, {"status_historie": 1}) + sh = d.get("status_historie", []) + if not any(e.get("status") == STATUS for e in sh): + sh = sh + [status_entry(now)] + coll.update_one({"_id": _id}, {"$set": { + "status": STATUS, "status_popis": STATUS_POPIS, "status_datum": STATUS_DATUM, + "ve_smlouve": True, "status_historie": sh, "updated_at": now}}) + n_pres += 1 + + # ── 2) Pacienti v Mongo mimo smlouvu → ve_smlouve = False ─────────────────── + coll.update_many({"_id": {"$in": [pop[rc] for rc in extra]}}, + {"$set": {"ve_smlouve": False, "updated_at": now}}) + + # ── 3) Pacienti ze smlouvy chybějící v Mongo → doplnit z kar + status 0 ───── + conn = get_medicus_connection() + cur = conn.cursor() + kar = {} + abslist = list(absent) + for i in range(0, len(abslist), 500): + b = abslist[i:i + 500] + ph = ",".join("?" for _ in b) + cur.execute(f""" + SELECT TRIM(k.rodcis), TRIM(k.prijmeni), TRIM(k.jmeno), TRIM(k.poj), + (SELECT MAX(r.datum_zruseni) FROM registr r JOIN icp i ON r.idicp=i.idicp + WHERE r.idpac=k.idpac AND i.icp='09305001' AND i.odb='001') + FROM kar k WHERE k.rodcis IN ({ph})""", b) + for rc, p, j, poj, zrus in cur.fetchall(): + kar[(rc or "").strip()] = {"prijmeni": p, "jmeno": j, + "poj": (poj or "").strip(), "zruseni": zrus} + conn.close() + + n_ins = 0 + for rc in absent: + if coll.find_one({"_id": rc}): + continue + k = kar.get(rc, {}) + poj = k.get("poj", "") + zrus = k.get("zruseni") + zrus_s = zrus.strftime("%Y-%m-%d") if zrus else None + snap = { + "k_datu": "2025-01-01", "kategorie": "ODHLASEN_PRED_PREDANIM", + "kategorie_popis": "Registrace u Buzalkové zrušena před předáním (1.1.2025)", + "v_zakoupenem_souboru": False, + "flag": "NEBYL V ZAKOUPENÉM SOUBORU PACIENTŮ", + "flag_duvod": f"registrace u Buzalkové zrušena {zrus_s} (před předáním)", + "praktik_nazev": None, "praktik_icz": None, "praktik_icp": None, + "praktik_od": None, "datum_zahajeni": None, "datum_ukonceni": None, + "medicus_zruseni": zrus_s, + } + coll.insert_one({ + "_id": rc, "rc": rc, + "prijmeni": k.get("prijmeni"), "jmeno": k.get("jmeno"), + "pojistovna": {"kod": poj, "zkratka": POJ_ZKR.get(poj, poj)}, + "medicus_poj": poj, + "status": STATUS, "status_popis": STATUS_POPIS, "status_datum": STATUS_DATUM, + "ve_smlouve": True, "mimo_vzp_populaci": True, + "vychozi_datum": "2025-01-01", "aktualni": snap, + "historie": [{**snap, "zmena": "doplněn ze smlouvy (mimo VZP populaci)"}], + "status_historie": [status_entry(now)], + "created_at": now, "updated_at": now, + }) + n_ins += 1 + + # ── Souhrn ────────────────────────────────────────────────────────────────── + print(f"present (status 0 nastaveno) : {n_pres}") + print(f"absent doplněno ze smlouvy (insert) : {n_ins}") + print(f"extra mimo smlouvu (ve_smlouve=False): {len(extra)}") + print() + print(f"status 0 (Zakoupeno) celkem : {coll.count_documents({'status': 0})}") + print(f"ve_smlouve = True : {coll.count_documents({'ve_smlouve': True})}") + print(f"kolekce celkem : {coll.count_documents({})}") + cli.close() + + +if __name__ == "__main__": + main() diff --git a/Insurance/FinalReconcilliation/Inputs/2025-01-01 seznam_pacientu_jmeno_rc.csv b/Insurance/FinalReconcilliation/Inputs/2025-01-01 seznam_pacientu_jmeno_rc.csv new file mode 100644 index 0000000..08ac23a --- /dev/null +++ b/Insurance/FinalReconcilliation/Inputs/2025-01-01 seznam_pacientu_jmeno_rc.csv @@ -0,0 +1,1713 @@ +Příjmení a jméno;Rodné číslo;Strana;Řádek na straně +Abohamda Horia;486122443;1;1 +Adamcová Jaroslava;465318019;1;2 +Adamec Petr;8101190999;1;3 +Adlerová Irena;375705068;1;4 +Alakbarov Farid;6601021977;1;5 +Aleid Manal;6457077407;1;6 +Alexovič Vladimír;7706058657;1;7 +Alexovičová Julie;7860279933;1;8 +Anderle Petr;7502072655;1;9 +Anderle Václav;430127082;1;10 +Andreattová Nataša;535520125;1;11 +Antošová Kateřina;9254250445;1;12 +Arnošt Petr;410405048;1;13 +Aubrechtová Iva;385312025;1;14 +Aubrechtová Jitka Mgr.;6851100421;1;15 +Babáček Marek;7909054780;1;16 +Babelová Marie;415803072;1;17 +Babická Lenka;8760073949;1;18 +Babjáková Jana;8755075153;1;19 +Baladrán Antonín;460610084;1;20 +Balousová Lenka Mgr.;7253282355;1;21 +Bambula Jan;360408076;1;22 +Bambula Jiří;6404191310;1;23 +Banáš Martin;9002025956;1;24 +Barabolya Lyudmila;6657271918;1;25 +Bareš Chovancová Věra;8459105710;1;26 +Barrell Peter;7803744597;1;27 +Barrellová Catharine;8051279951;1;28 +Barták Jiří;6608270702;1;29 +Bartáková Hilde;285703963;1;30 +Bartáková Jana;8352210438;1;31 +Bartáková Marie;525406150;1;32 +Bartejsová - Plačková Petra;8651020169;1;33 +Bartošová Jana;515125059;1;34 +Bašeová Alexandra;5760140067;1;35 +Baštová Tereza;9760050399;1;36 +Bauer Petr;7007120450;1;37 +Bauerová Irena;485221756;1;38 +Bazjuková Hana;8860050045;1;39 +Bečica Josef;6504141149;1;40 +Bečica Marek;9010262448;1;41 +Bečicová Markéta;6758120446;1;42 +Bečicová Tereza;9355042466;1;43 +Bednářová Dana;5851190257;1;44 +Behan Dominik;8308250423;1;45 +Bělaška Dušan Ing.;7302020220;1;46 +Benediktová Hana;7457200828;1;47 +Benešová Hana;465505094;1;48 +Beránková Jana;425610010;2;1 +Berki Miroslav;530204152;2;2 +Berounská Eliška;0554174346;2;3 +Berounský Pavel;6302061942;2;4 +Bezděková Anna;485113443;2;5 +Beznoska Miloslav;500206172;2;6 +Beznosková Milena;505218025;2;7 +Bilčík Štěpán;491030140;2;8 +Bilčíková Jana;516110008;2;9 +Bílek Václav;6705171693;2;10 +Bílková Vilemína;336031025;2;11 +Billouz David Maurice Jean Ing.;7312544195;2;12 +Billouz Koffí Hana;7356020441;2;13 +Biskup Petr;7903030454;2;14 +Biskupová Daniela;7658270433;2;15 +Biskupová Drahomíra;526116301;2;16 +Bláha Vladimír;441213125;2;17 +Blažek Josef;6909030568;2;18 +Blažek Josef;7503170444;2;19 +Blažek Josef Ing.;9404060435;2;20 +Blažková Irena;7754299993;2;21 +Blažková Radmila Mgr.;6459121482;2;22 +Boháčová Barbora;9253220262;2;23 +Boháčová Tereza;9253220251;2;24 +Bohmová Ivana;8359012442;2;25 +Bornová Milena;5556240030;2;26 +Bosnovičová Lenka;8951302635;2;27 +Boštičková Hana;406224051;2;28 +Bouberlová Dana;6654141538;2;29 +Bouček Jan;6501010813;2;30 +Bouček Jan;9312170450;2;31 +Boučková Hana;395326011;2;32 +Boučková Jitka;6351040696;2;33 +Bouchal Miroslav;440419015;2;34 +Bouzková Sabina;0452205853;2;35 +Brabcová Miluše;265407061;2;36 +Braunspergerová Emílie;525818212;2;37 +Braunspergerová Eva;7862150351;2;38 +Breitenfeld Lothar;5026644018;2;39 +Brejchová Jitka;7956010436;2;40 +Brendl David;7603311892;2;41 +Broulímová Mariya;6358097207;2;42 +Brožek Roman;6507241620;2;43 +Brožová Milada;7153120172;2;44 +Brychcín Pavel;7205250261;2;45 +Bryndačová Nikola;9162110430;2;46 +Břeňová Marie;485815407;2;47 +Březina František;7907091742;2;48 +Březina Vladislav;6508171956;3;1 +Březinová Jaroslava;395730043;3;2 +Budač Aleš;8103092492;3;3 +Bui Linda;0151121861;3;4 +Bui Quang Dai;6009122185;3;5 +Bukvář Martin;7409240399;3;6 +Bukvář Milan Ing.;440420046;3;7 +Bukvářová Blanka;486213096;3;8 +Buňka Antonín;441205047;3;9 +Buňková Zuzana;476027162;3;10 +Bunyat-Zada Rafiga;485605473;3;11 +Bureš Jiří;7708160427;3;12 +Burešová Anna;455529042;3;13 +Burešová Irena;375616066;3;14 +Buršík Milan;6112250155;3;15 +Buršík Milan;9303090434;3;16 +Bydžovská Miroslava;435107002;3;17 +Bydžovský Jan;8102200051;3;18 +Bydžovský Jaroslav Ing.;430220050;3;19 +Caha Jaroslav Ing.;480101462;3;20 +Cahová Daniela;515705039;3;21 +Cerman Jakub Ing.;7208153436;3;22 +Cerman Jan;7702170421;3;23 +Cerman Miloslav Ing.;430217072;3;24 +Cermanová Jindřiška;375608071;3;25 +Cermanová Zuzana;7659192596;3;26 +Cibulka Petr;0403033884;3;27 +Cicková Eliška;8552212405;3;28 +Cimická Rozália;425301743;3;29 +Cimplová Dagmar;5559070209;3;30 +Cipro Petr;470627009;3;31 +Cipro Šimon;8601122761;3;32 +Ciprová Vladimíra;5455040954;3;33 +Ciryn Tomáš;7903050991;3;34 +Císař Petr;401120069;3;35 +Císař Petr Ing.;6908140426;3;36 +Císařová Irena;465704175;3;37 +Císařovská Eva;7551132776;3;38 +Coubalová Lada RNDr.;6252090867;3;39 +Crnčevič Boris;6702212451;3;40 +Csépeová Viktória;7860308115;3;41 +Cvrčková Eva;8456113248;3;42 +Czak Miroslav;8403150437;3;43 +Čajka Jakub;0501104439;3;44 +Čajková Miroslava;7857050432;3;45 +Čapek Martin;8407267682;3;46 +Čapková Tereza;8262050423;3;47 +Čech Aleš;0406014675;3;48 +Čechová Gabriela;7451270431;4;1 +čechová Romana;8860195707;4;2 +Čejka Jiří;480227054;4;3 +Čejka Michal;0503075078;4;4 +Čejka Petr;7507250443;4;5 +Čejková Vendulka;7758120964;4;6 +Čelikovská Hana;7154280397;4;7 +Čelikovská Kristýna;9059050737;4;8 +Čenanovič Arman;0109020285;4;9 +čenanovičová krkičov Sanja;7160239911;4;10 +Čepelka Daniel;9804240193;4;11 +Čepelková Ivana;8354129905;4;12 +Čermáková Lenka;7954040468;4;13 +Čermáková Monika;9453114187;4;14 +Černá Drahomíra;405422703;4;15 +černá Věra;395825027;4;16 +Černík Pavel;7204090454;4;17 +Černý Pavel;431120026;4;18 +Červená Jana;375704015;4;19 +červenka Bohuslav;401229024;4;20 +Červinka Karel;8303300016;4;21 +Čičo Vladimír;5605100919;4;22 +Číp Vladislav Ing.;7305310232;4;23 +Čípová Hana;7853190422;4;24 +Čížkovská Jaroslava;366103079;4;25 +Čuda Petr Mgr.;8004110081;4;26 +Čudová ajmová Tereza Ing.ar;8151182765;4;27 +Čulík Karel Ing.;5712310626;4;28 +Čulíková Alžběta;9054220010;4;29 +Čulíková Hana;5955100272;4;30 +Čulíková Martina;8754211466;4;31 +Dalecká Jaromíra Ing.;6461041345;4;32 +Dalecká Kristýna;9352210417;4;33 +Dalecký Milan;5811180100;4;34 +Dangová Thanh Huyen;9455264269;4;35 +Danielová Veronika;486224234;4;36 +Danihelka Yirka;0261070194;4;37 +Daová Kristýna;9252265704;4;38 +De lucht Soňa;535921179;4;39 +Dědková Jana;425315100;4;40 +Degen Daniel;9404080444;4;41 +Degenová Libuše;405807108;4;42 +Degenová Marta;6357211454;4;43 +Deiak Vasyl;6412057377;4;44 +Derechová Marie;366010037;4;45 +Deyak Mykhaylo;7109203893;4;46 +Deyak Mykhaylo;9804091539;4;47 +Deyak Nataliya;7862221895;4;48 +Dientsbierová Marie;426004011;5;1 +Diepold Tomáš;0309010405;5;2 +Diepoldová Kateřina;6860090446;5;3 +Dittmayer Jan;9312240410;5;4 +Dittmayer Milan;6002221775;5;5 +Dittmayerová Jindřiška;6955150004;5;6 +Dlouhá Jana;6356100454;5;7 +Dobrohrušková Lucie;9355071297;5;8 +Dohnal Josef Ing.;430402055;5;9 +Dohnalová Daniela Ing.Arch.;505513208;5;10 +Dohnalová Jiřina;515109053;5;11 +Dokládalová Jana Mgr.;5958011752;5;12 +Dolenská Anna;8954043703;5;13 +Doležal Václav;5607310797;5;14 +Dorňák Kamil;7605254195;5;15 +Drábová Radka;8055070441;5;16 +Dragoun otokar;370315041;5;17 +Dragounová Naděžda;365728064;5;18 +Drahuská Jitka;6555271910;5;19 +Drahuský Pavel;451031036;5;20 +Draksel Pavel;491005324;5;21 +Drakselová Daniela;515820013;5;22 +Dražilová Lucie;9057293201;5;23 +Drážný Mikuláš;300920095;5;24 +Drbal Jaromír Ing.;5706130056;5;25 +Drozd František;500504119;5;26 +Dubová Zita Mgr.;7857103232;5;27 +Dufková Marie;436108103;5;28 +Duchoňová Nikola;9762110831;5;29 +Dundr Pavel;9010120438;5;30 +Dundrová Markéta;6857112064;5;31 +Dunzendorferová Olga;405525430;5;32 +Dusilová Jana;495524246;5;33 +Dušek František;470402049;5;34 +Dušková Ludmila;496025025;5;35 +Dvorská Věra;455429053;5;36 +Dvořáčková Božena;435908014;5;37 +Dvořák Josef;470916013;5;38 +Dvořák Michal;7606240455;5;39 +Dvořák Pavel;7803080439;5;40 +Dvořák Petr;6709291039;5;41 +Dvořáková Eva;6960182746;5;42 +Dvořáková Jana;7654201071;5;43 +Dvořáková Jiřína;485704042;5;44 +Dvořáková Michaela;0253150425;5;45 +Dvořáková Petra;7362222351;5;46 +Dvořáková Zdenka;7261252537;5;47 +Dvořáková Zd eňka;465418044;5;48 +Dyntera Petr;6406150256;6;1 +Dynterová Iveta;6352081956;6;2 +Dynterová Karolína;0054240428;6;3 +Ekhard Petra;8362022900;6;4 +Elouchefoun Aziz;6102694070;6;5 +Elouchefounová Petra;7652110422;6;6 +Elouchefounová Sára;0153180137;6;7 +Elznic Matěj;8808060041;6;8 +Elznic Vladimír;460820024;6;9 +Elznicová Tereza;9459060028;6;10 +Emingerová Barbora;8959180010;6;11 +Emingerová Libuše;6862181139;6;12 +Endyšová Soňa;9051050415;6;13 +Faják Pavel;7001192385;6;14 +Fajáková Alia;7360309924;6;15 +Faměra Jiří;400424003;6;16 +Faměrová Marie;395815085;6;17 +Fečo Pavol;6806137063;6;18 +Fencl Karel;380813023;6;19 +Fenclová Jaroslava;5658260333;6;20 +Fenclová Stanislava Mgr.;445110009;6;21 +Feoktistová Irina MUDr.;8454664262;6;22 +Feoktistová Natalia Ing.;446228471;6;23 +Ferko Miroslav;6508040022;6;24 +Ferková Denisa;9051131133;6;25 +Ferková Eva;7252010898;6;26 +Ferková Kateřina;9351150402;6;27 +Fiala Ondřej;8506027497;6;28 +Fialová Marta;5853126928;6;29 +Fialová Růžena;455925093;6;30 +Fiedlerová Jana;6758170848;6;31 +Filip Bohuslav;430707111;6;32 +Fišerová Jitka;7553120432;6;33 +Fišerová Petra;8356020112;6;34 +Flek Radek;8501030065;6;35 +Flek Zbyněk;8206290070;6;36 +Flekal Josef;9209220207;6;37 +Flekal Zdeněk;7401150581;6;38 +Flekal Zdeněk;9612200048;6;39 +Flekalová Martina;7352150971;6;40 +Fleková Lenka;7655011815;6;41 +Fleková Milada;5958311128;6;42 +Fojtová Zuzana;7853240109;6;43 +Formánková Ilona;6852282261;6;44 +Foučková Jana;395313082;6;45 +Fraňková Ludmila;6262060332;6;46 +Frantl Jan Ing.;9302080436;6;47 +Frantl Jiří Ing.;5609190048;6;48 +Frantlová Jana Ing.;6058191227;7;1 +Frantlová Lucie MUDr.;9060270505;7;2 +Frantlová Zuzana;9351293369;7;3 +Franzlová Hana;516010064;7;4 +Fremut Zdeněk;530327041;7;5 +Fried Vortelová Lenka;8456200071;7;6 +Frýdl Luděk;5603232118;7;7 +Frýdlová Jana;6055052157;7;8 +Fuchsová Jana;6955160905;7;9 +Fuchsová Pavlína Ing.;8160100003;7;10 +Galus Karel;460614110;7;11 +Gembecová Hana;8652053190;7;12 +Georg Eduard Leonidovyč;6705277216;7;13 +Georgiev Diyan;7902093947;7;14 +Georgiev Jiří;7904020465;7;15 +Georgiev Pavel;8110150059;7;16 +Georgieva Monika;7853021902;7;17 +Georgievová Libuše;425503037;7;18 +Georgová Jindra JUDr.;536124262;7;19 +Gerhard Vladislav Ing.;500602256;7;20 +Gerhardová Renáta;6255141002;7;21 +Giertli Petr;7212077521;7;22 +Glynska Majja;7355189941;7;23 +Gnulíková Tatjana;535122359;7;24 +Gratzelová Pavla Ing.;445807023;7;25 +Gréeová Marie Ing.;406109083;7;26 +Grygarová Jana;8554125360;7;27 +Haasová Kateřina;9661200043;7;28 +Haasová Ludmila;6058100620;7;29 +Hackerová Alžběta;9660070112;7;30 +Hájek David;7310080206;7;31 +Hájek Jan;8311290427;7;32 +Hájek Jaroslav;7508191042;7;33 +Hájek Jindřich;440608035;7;34 +Hájek Miloslav;7410241014;7;35 +Hájek Vladimír Ing.;350416952;7;36 +Hájková Drahomíra;405330033;7;37 +Hájková Jaromíra;7559120448;7;38 +Hájková Marta;7552260430;7;39 +Hájková Michaela;7754160524;7;40 +Hájková Monika;7951744185;7;41 +Hájková Petra;9654200402;7;42 +Hajšmanová Marcela;495227264;7;43 +Halušková Radka;7753250010;7;44 +Hamerník Josef;420622031;7;45 +Hamerníková Emilie;445306004;7;46 +Hampl Ivo;8902070408;7;47 +Hamplová Alena Mgr.;5755181674;7;48 +Hamřík Josef;9501272968;8;1 +Hamříková Hana;6757180232;8;2 +Hanitz Petr Ing.;6610170589;8;3 +Hanusová Blanka;5660020938;8;4 +Hanzl František;8005291404;8;5 +Hanzlová Kateřina;8152150435;8;6 +Hanžl Tomáš;0012140403;8;7 +Hanžlová Ivana;7753120463;8;8 +Harsa Radovan;6504140489;8;9 +Hasmanová Tereza;8358293317;8;10 +Hašek Milan;7108290002;8;11 +Hašková Jana;505731289;8;12 +Havelka Miroslav;440802018;8;13 +Havlíčková Andrea;8051035223;8;14 +Havlín Josef;8405150446;8;15 +Havlínová Jiřina;455514106;8;16 +Havlínová Věra;405720062;8;17 +Havlínová Zuzana;8557044188;8;18 +Heger Pavel;5509060018;8;19 +Hegerová Hana;6357021759;8;20 +Hegerová Simona;8361192664;8;21 +Hegerová Veronika;8352250434;8;22 +Hejkal Václav;7503310430;8;23 +Hejkrlík Jan Ing.;510417052;8;24 +Hejkrlíková Martina Mgr.;506103092;8;25 +Hejná Dana;7160212763;8;26 +Hejný Josef;9207180411;8;27 +Hellerová Eva;6554230056;8;28 +Hellerová Monika;9651180418;8;29 +Hemer Lukáš;6604220128;8;30 +Hemerová Kamila;7054042061;8;31 +Hemerová Lucie;9753100016;8;32 +Hercíková Irena;426203053;8;33 +Hercíková Michaela;7462260278;8;34 +Hermanová Dagmar;375402075;8;35 +Herzová Marie;395907022;8;36 +Heřmánková Jana;7254050287;8;37 +Heřmanská Andrea Ing.;9361260590;8;38 +Heřmanská Hana;525205299;8;39 +Heřmanský Milan;8602120428;8;40 +Heuschneider Arnošt;400406144;8;41 +Hlaváček Pavel;6904120487;8;42 +Hlaváčková Jana;7557200486;8;43 +Hlaváčová Olga;535926054;8;44 +Hlavatá Jaroslava;505626209;8;45 +Hlavatý Jaroslav;500225272;8;46 +Hlavsová Hana;415906003;8;47 +Hloužek Jiří;0203050166;8;48 +Hloužková Tereza;7361170058;9;1 +Hnízdová Eva;5751211807;9;2 +Hobzová Petra;7258021254;9;3 +Hobzová Sára;0354281290;9;4 +Hocke David;7402210101;9;5 +Hocke Olga;7562222987;9;6 +Hod Václav;9108300168;9;7 +Hofmannová Oldřiška;6258130637;9;8 +Holbová Jarmila;445730017;9;9 +Holcová Adriana Ing.;8259080423;9;10 +Holeček Jiří;5904180117;9;11 +Holečková Hana;5954110184;9;12 +Holečková Jarmila;405101482;9;13 +Holík Milan;6312280623;9;14 +Holíková Soukupová Renáta;6555041240;9;15 +Holk Dan;7105140449;9;16 +Holk Roman;6804050649;9;17 +Holková Helena;465223092;9;18 +Holubcová Svatava;506109148;9;19 +Holubec Stanislav PhDr.PhD.;7807143036;9;20 +Holubová Daniela;5855280013;9;21 +Homola Karel;470319165;9;22 +Homolková Hanna;7951089982;9;23 +Homolová Zdeňka;535510119;9;24 +Honsová Vladimíra Mgr.;6756022086;9;25 +Honzátko Josef;490126287;9;26 +Horáček Martin;7003010553;9;27 +Horáčková Lenka;8355190558;9;28 +Ho ráčková Veronika;9554240597;9;29 +Horáčková Vlasta;465416100;9;30 +Horáková Lucie;8558150227;9;31 +Horká Kateřina;9355070417;9;32 +Horká Marie;505602255;9;33 +Horní Jana;6758281805;9;34 +Horní Jaroslav;6602171774;9;35 +Hornof Marek;7004070095;9;36 +Hornofová Adéla;0460195098;9;37 +Hornofová Barbora;0161110400;9;38 +Hornofová Helena;425412434;9;39 +Hornofová Květa;7452110468;9;40 +Hornofová Michaela;6556290961;9;41 +Horváth Eduard;5804046380;9;42 +Horzenbergerová Jana;7956180452;9;43 +Hotovcová Denisa;9658300663;9;44 +Houdek Jiří;391018059;9;45 +Hovorková Eva;435624102;9;46 +Hradecká Eva;9762120401;9;47 +Hrdinková Věra;445808119;9;48 +Hrdlička Jakub;7305150171;10;1 +Hrochová Ilona;8361133594;10;2 +Hromasová Jarmila;506211101;10;3 +Hron Michal;7711164780;10;4 +Hrouda Pavel;6307180297;10;5 +Hrouda Petr;7306110790;10;6 +Hrubeš Stanislav;7107200771;10;7 +Hrudková Eva;385508035;10;8 +Hruška František Ing.;521113128;10;9 +Hruška Jiří;8612180060;10;10 +Hrůzek Vilém;8905216144;10;11 +Hrůzková Koktová Marcela;9262070455;10;12 +Hrytsyk Kristýna;0258215430;10;13 +Hubnerová Eva;445423047;10;14 +Husák Daniel;9511300172;10;15 +Husák Jiří;9202200403;10;16 +Husáková Lucie;7062060038;10;17 +Hybelbauer Emil Mgr.;7604212990;10;18 +Hynková Martina;8153050422;10;19 +Chabová Lenka;7359140558;10;20 +Chadová Jitka Ing.;7554071635;10;21 +Chalupová Blanka;5853131559;10;22 +Chalupová Zuzana;8351230503;10;23 +Charouz Jakub;7404280202;10;24 +Chárová Jana Ing.;5756110085;10;25 +Chayka Serhij;7204259953;10;26 +Chmelařová Pavlína;8351065800;10;27 +Chmelíková Ivana;455428029;10;28 +Chodil Leo;6502192125;10;29 +Chocholoušek Jan;6203061832;10;30 +Chocholoušková Věra;6857200889;10;31 +Chomát Jiří Ing.;380314026;10;32 +Chomátová Jindřiška;525713283;10;33 +Chorvát Rastislav;7711804100;10;34 +Chramosta Cyril;5901140212;10;35 +Chramosta Jan;0308270083;10;36 +Chramostová Alena;6655220935;10;37 +Chrastinová Romana;7958275116;10;38 +Chriti Vinš Jeanette;9062110431;10;39 +Ilem Václav;480928060;10;40 +Ilem Václav;7304300047;10;41 +Ilemová Eliška;505115342;10;42 +Ilnytskyy Serhiy;7607164092;10;43 +Irimičuk Jiří;7801265780;10;44 +Irimičuková Jana;7954200892;10;45 +Jacáková Věra;7554082250;10;46 +Jacko Ladislav;6707121542;10;47 +Jacková Anna;376126027;10;48 +Jakl Jaromír;5407120521;11;1 +Jakl Jaroslav;6608230024;11;2 +Jaklová Jana;6962244542;11;3 +Jakoubková Lenka;7857050267;11;4 +Jakschová Michaela;0256190407;11;5 +Jakušová Ludmila;415817101;11;6 +Jamriková Vladislava;7360063667;11;7 +Janata Jiří Ing.;6603191529;11;8 +Janata Marek;9703180157;11;9 +Janatová Beata;0462184646;11;10 +Janatová Katarína;6756026970;11;11 +Janda David;9302200061;11;12 +Janda František Ing.;371016049;11;13 +Janda Martín;7308100426;11;14 +Janda Štěpán;9102070318;11;15 +Jandejsek Jindřich;371125052;11;16 +Jandová Libuše;415511007;11;17 +Jandová Veronika;9856220418;11;18 +Jankovská Jitka;496220054;11;19 +Janoušková Lucie Mudr.;7062214302;11;20 +Janoušková Martína;7861100456;11;21 +Jánská Martina;7758050190;11;22 +Jánská Věra;5962070587;11;23 +Janurová Barbora;8960190173;11;24 +Janyška Zbyněk Ing.;7908315239;11;25 +Janyšková Lucie;7758065513;11;26 +Jarešová Petra;8956262535;11;27 +Jaroš Jakub;8711020197;11;28 +Jaroš Jiří;8912270158;11;29 +Jarošová Jitka;6755220439;11;30 +Jarošová Lenka;8755140438;11;31 +Jarošová Zuzana;8157544241;11;32 +Jedličková Alena;365427012;11;33 +Jedličková Miluše;465917025;11;34 +Jechová Alena;346002092;11;35 +Jelen Jan;8811240207;11;36 +Jelen Oldř ich;6102251474;11;37 +Jelen Václav Ing.;5411181380;11;38 +Jelen Václav;8108030205;11;39 +Jelenová Františka;9956020426;11;40 +Jelenová Jana;5761121905;11;41 +Jelenová Martina;8352090197;11;42 +Jelenová Tereza MUDr.;8253190572;11;43 +Jelenová Vendula;0460165079;11;44 +Jelenová Veronika;7262293247;11;45 +Jelínek Tomáš;490315232;11;46 +Jelínková Eliška;386118069;11;47 +Jelínková Eva;5962050149;11;48 +Jemelková Jana;486227423;12;1 +Jenčeková Jiřina;515421036;12;2 +Jeníčková Marie;335329050;12;3 +Jeníkovská Veronika;8056210173;12;4 +Jeništa Jaroslav;7107100055;12;5 +Jeništová Magdalena;7554270427;12;6 +Jerling Jaroslav;6309151772;12;7 +Jerling Michal;9207280423;12;8 +Jerlingová Olga;6053081727;12;9 +Jeřábková Jana;8858090494;12;10 +Jetmar Patrik;7712180377;12;11 +Jetmarová Květoslava;456011109;12;12 +Jíchová Ivana Bc.;8959263698;12;13 +Jindová Eva;8461270422;12;14 +Jindra Jiří;511220290;12;15 +Jindrová Helena;8754280403;12;16 +Jindrová Jiskra;496219079;12;17 +Jindrová Johana;9362290487;12;18 +Jindrová Kateřina;7857260422;12;19 +Jindrová Kateřina;9057280408;12;20 +Jirák Martin;6908070400;12;21 +Jiráková Božena;536117166;12;22 +Jiranová Marcela;7661020037;12;23 +Jirásek Jaroslav;430616107;12;24 +Jirásková Jana;465404046;12;25 +Jirchovská Ludmila;6860180756;12;26 +Jiroutová Denisa;6360090341;12;27 +Jiroutová Petra;9951040682;12;28 +Jirsa Jan;7611120308;12;29 +Jirsová Jana;495728118;12;30 +Jiřikovský Břetislav;7204145542;12;31 +Jíša Petr Ing.;7308243668;12;32 +Jonášová Veronika Ing.;9154111010;12;33 +Jourová Eva;485507406;12;34 +Jourová Ivana Ing.;7552265325;12;35 +Jouza Pavel Ing.;8302112027;12;36 +Juricová Květoslava;445623046;12;37 +Juristová Eva;5855162500;12;38 +Jursík Jan;500114021;12;39 +Jursíková Jiřina;465620178;12;40 +Kábelová Lucie Ing.;8152223310;12;41 +Kačín Ladislav;5511131538;12;42 +Kačínová Jaroslava;5556241185;12;43 +Kadečka Jan Ing.;420426098;12;44 +Kafka František;6311191931;12;45 +Kafková Dana;6054012316;12;46 +Kafková Kristýna;8762110401;12;47 +Kafková Marie;435625017;12;48 +Kajerová Jana;7857071684;13;1 +Kakešová Renáta;6562111259;13;2 +Kalous Petr;8001030422;13;3 +Kalousek Josef;490402012;13;4 +Kalousová Andrea;0459024654;13;5 +Kalousová Eva;7952090443;13;6 +Kameník Jaroslav;400510088;13;7 +Kameníková Marie;495912016;13;8 +Kandová Marta;375718063;13;9 +Kapias Roman;7507265568;13;10 +Kapiasová Marta;476002495;13;11 +Kapoun Stanislav;8404111804;13;12 +Kapounová Radka Ing.;8252141810;13;13 +Kaptanoglu Denis;8703260016;13;14 +Karásková Petra;8857271896;13;15 +Karbanová Michaela;7951140461;13;16 +Karešová Barbora;8256060021;13;17 +Karták Milan;510730180;13;18 +Karvai Linda;0357130147;13;19 +Kasederová korbelová Jana;425813033;13;20 +Kasinová Marcela;7359030382;13;21 +Kasková Hana;405502054;13;22 +Kašíková Petra;7356055707;13;23 +Kašová Barbora;9257100743;13;24 +Kašová Zdeňka;9153210748;13;25 +Kašpárek Lubomír Ing.;480213043;13;26 +Kašparová Veronika;8962090049;13;27 +Kaufmanová Pavla;7752232895;13;28 +Kautman Rudolf;7706220500;13;29 +Kavanová Hana;475806052;13;30 +Kavková Blažena Ing.;435708086;13;31 +Kazakevích Yan;7210159990;13;32 +Kazakevich Yelísey;0210031877;13;33 +Kazdová Daniela;495831175;13;34 +Kekrtová Jarmila;415716459;13;35 +Kemr Karel;490507110;13;36 +Khasová Alena;7058050428;13;37 +Khermayer Valentýn;7104754019;13;38 +Kieslíngerová Nina RNDr.;375614067;13;39 +Kimatraiová Jiřína;496114199;13;40 +Kittler Antonín;360808036;13;41 +Kittler Radek;6904150495;13;42 +Kladenský Lukáš;7204224742;13;43 +Klatovský David;7612310112;13;44 +Klemeš Jiří;470412084;13;45 +Klemešová Iva;496016090;13;46 +Klikorka Václav;480529193;13;47 +Klíma Jaroslav;6504161928;13;48 +Klíma Petr;9010310298;14;1 +Klimek Štěpán;400912170;14;2 +Klimeš Petr;6204141449;14;3 +Klimeš Petr;9603290015;14;4 +Klimeš Radko Ing.;511212227;14;5 +Klimešová Jana Mgr.;445613081;14;6 +Klimešová Jaromíra;5562260528;14;7 +Klimešová Marie;376111030;14;8 +Klímová Hana;6656260864;14;9 +Klímová Petra;8053240448;14;10 +Klimpt Pavel;470506061;14;11 +Klimptová Jana;5453030605;14;12 +Kloc Oldřich;460702466;14;13 +Klocová Marie;436031052;14;14 +Klosová Alena;405601040;14;15 +Klouček Ondřej;8210271894;14;16 +Kloučková Karolína;8157240146;14;17 +Kloučková Vlasta;445624103;14;18 +Knejslík Jaroslav Ing.;531003338;14;19 +Knejslíková Alena;5558270113;14;20 +Knejslíková Marta;8862200413;14;21 +Kněžek Marian;8111274787;14;22 +Knoblochová Libuše;6556141603;14;23 +Kobrlová Iva;415226013;14;24 +Kocmanová Hana;6161210209;14;25 +Kočvara Martin;7006250427;14;26 +Kočvarová Jana;455403061;14;27 +Koffi Sebastien;0504224457;14;28 +Kohák Petr;460606144;14;29 +Kohlová Jana;515405020;14;30 +Kohout Kryštof;0310160290;14;31 +Kohoutová Březinová Romana B;7754301489;14;32 +Kohoutová Denisa;8957261764;14;33 +Kochová Jana Ing.;496105088;14;34 +Kokta Jan;470612076;14;35 +Koktová Helena;495726149;14;36 +Koláček Karel;7704110458;14;37 +Koláčná Jitka Mgr.;436106002;14;38 +Koláčný Jiří Ing.;391221087;14;39 +Kolarevič Voíin;520329428;14;40 +Kolb Martin;7308130423;14;41 +Kolb Viktor;500614033;14;42 +Komňacká Lilia;495520374;14;43 +Konvička Josef Ing.;8904150002;14;44 +Kopecká Eva;6555172195;14;45 +Kopecká Kateřina;9161200400;14;46 +Kopecký Jakub;9004280197;14;47 +Kopecký Lubomír;490415331;14;48 +Kopová Daniela;8257261672;15;1 +Kopová Jana;8652034380;15;2 +Kopová Zdenka;505731106;15;3 +Kopřivíková Jarmila;346204097;15;4 +Kopřivová Erika;5862236435;15;5 +Koptová Anna;326025121;15;6 +Korbel Jiří;410625082;15;7 +Korbel Ladislav;341213704;15;8 +Korbel Radek;7312150131;15;9 +Kořínek Pavel;8208115421;15;10 +Kořínková Marie;425926081;15;11 +Kosilová Jana;425929061;15;12 +Kosová Michaela Ing.;8453150255;15;13 +Kostková Jana;435918178;15;14 +Kostyo Patrik;8606744443;15;15 +Koška Jan;7404010053;15;16 +Košťáková Marie;396015429;15;17 +Kotková Barbora;8558030679;15;18 +Kotovic Jakub;9008155244;15;19 +Kotýnek Stanislav;440201053;15;20 +Kotýnková Vlasta;505408284;15;21 +Kotyza Milan;7607272310;15;22 +Kotyzová Kateři na;7753294549;15;23 +Koubek Jiří;5503040026;15;24 +Koubková Dana;6053081441;15;25 +Kouda Jan;310905080;15;26 +Kouda Miroslav;6309272332;15;27 +Kovárníková Jana;8854265233;15;28 +Kovář Martin;8408040421;15;29 +Kovářová Alena;6158251506;15;30 +Kovářová Jana Mgr.;6562080250;15;31 +Kovářová Stanislava;5757091395;15;32 +Kozáková Radka;7760170825;15;33 +Kozlová Jiřina;455130103;15;34 +Kožmínová Hana;445522017;15;35 +Krajbichová Naděžda;305829444;15;36 +Král Vítězslav;0412084354;15;37 +Král Vítězslav;500509208;15;38 +Král Vítězslav;7711150491;15;39 +Králíková Barbora;8254180165;15;40 +Králíková císařová Hana;7460150478;15;41 +Králová Alena;355603014;15;42 +Králová Dana;6555031021;15;43 +Králová Jana;7755043516;15;44 +Králová Jaroslava;496114120;15;45 +Kramosil Jaroslav Ing.;6411020363;15;46 +Kramosilová Barbora;9259200412;15;47 +Kramosilová Jitka Ing.;6453221588;15;48 +Kramule Petr;6604011073;16;1 +Kramulová Helena;455610044;16;2 +Kratochvílová Kateřina;7558052227;16;3 +Krčál Jan;9411200403;16;4 +Kreibich Jiří;5804240398;16;5 +Kreibich Jiří;8602200442;16;6 +Kreibichová Jiřina;0057130183;16;7 +Kreibichová Magdalena;5655300222;16;8 +Kreibichová Michaela;6454272539;16;9 +Kreisinger Radek;7110142446;16;10 +Kreisinger Roman;6909262459;16;11 +Krejbichová Jarmila;436225107;16;12 +Krejčík Petr;7407110172;16;13 +Krejčíková Alena;465512017;16;14 +Krkič Suada;515407407;16;15 +Kroftová Jiřina;465908097;16;16 +Kropáčová Iveta;7155183497;16;17 +Kropáčová Růžena;475526126;16;18 +Kroupa Vratislav;370306012;16;19 +Kroupová Eva;456217059;16;20 +Kroupová Naděžda;5758260442;16;21 +Krpeš Tomáš;9411243116;16;22 +Krupková Marta;465629092;16;23 +Křečková Marcela;515201131;16;24 +Křenková Věra;405625056;16;25 +Kříž Jiří;7306280190;16;26 +Kříž Michal;8301070558;16;27 +Křížová Anna;475228054;16;28 +Křížová Lucie;7555270085;16;29 +Křížová Ludmila;415301075;16;30 +Kšánová Jitka;496122023;16;31 +Kubcová Anna;456016085;16;32 +Kubelka David;6905110080;16;33 +Kubelková Blanka;7162210044;16;34 +Kubíček Tomáš;9207110429;16;35 +Kubíčková Lucie;7354300437;16;36 +Kučera Anton;350218775;16;37 +Kučera Jan Ing.;6608110773;16;38 +Kučerová Tereza;9554230169;16;39 +Kučerová Věra;365918034;16;40 +Kudlička Lukáš;7509110224;16;41 +Kuchařová Jana Mgr.;485717017;16;42 +Kuchinka Jiří;6606170395;16;43 +Kuchinková Lenka;6651170823;16;44 +Kukla Marek;0207090015;16;45 +Kukla Roman;6911050289;16;46 +Kuklíková Iva;6356060535;16;47 +Kukuljac Elvira;7854521103;16;48 +Kukuljac Esad;6608212204;17;1 +Kulhánek Josef;481014021;17;2 +Kulhánková Eliška;7856230448;17;3 +Kurajda Martin;8206694232;17;4 +Kurka Jan;8808313569;17;5 +Kurková Daniela;6562010290;17;6 +Kurucz Samuel;9907220136;17;7 +Kuruczová Iva;7761052332;17;8 +Kusák Roman;7204213148;17;9 +Kusáková Jaroslava;445318078;17;10 +Kut Citores Markéta;9651301253;17;11 +Kutil Jaroslav;6105081136;17;12 +Kutílek Jiří;0301120413;17;13 +Kutílková Marcela;8353120050;17;14 +Kutilová Zdenka;5953070574;17;15 +Kysela Aleš;8104150428;17;16 +Kysela Josef;460920126;17;17 +Kysilková Ludmila;375913958;17;18 +Kysilková Světlana;5862240923;17;19 +Lacina Petr;471129130;17;20 +Lacman Jiří;480502020;17;21 +Lakatošová Jana;505207243;17;22 +Lakatošová Olga;7153192739;17;23 +Landa Jan;8704170420;17;24 +Landa Jiří;6804040606;17;25 +Landa Svatopluk;491226120;17;26 +Landgrafová Kristýna;8056273170;17;27 +Landová Jiřina;505114243;17;28 +Langerová Miluška;275713036;17;29 +Lapačová Jiřina;496004064;17;30 +Lapka Petr;7705319908;17;31 +Lapková Olga;7956010458;17;32 +Lasák Marek;8704046043;17;33 +Latka Vít;7610040559;17;34 +Latková Petra;7659010590;17;35 +Lebeda František;470725136;17;36 +Lebedová Zdenka;425915482;17;37 +Lecová Marta;5953120041;17;38 +Ledererová Jaroslava;525113120;17;39 +Leksová Iva;6459021558;17;40 +Lelovská Martina;7057300635;17;41 +Leppová Libuše MUDr.;8454265545;17;42 +Ležáková Jana;365429074;17;43 +Ležáková Martina;7852070017;17;44 +Líbalová Marie;7855220450;17;45 +Lieberzeit Roman;6211141552;17;46 +Líkař Jan;7211131719;17;47 +Líkařová Petra Ing.;7553221918;17;48 +Linhartová Adéla;9261184394;18;1 +Linhartová Lucie;0152170007;18;2 +Linzmayer Václav;9905032522;18;3 +Liška Petr;430224004;18;4 +Lišková Eva;7760080273;18;5 +Lišková Jaroslava;435720013;18;6 +Liu Qian;8661155745;18;7 +Leiblová Dana Ing.;525220151;18;8 +Lukasová Jelena Ing.;5456221485;18;9 +Lukášová Hana;426206044;18;10 +Luptáková Antonia;8151267498;18;11 +Macoun Jan;8108130140;18;12 +Macounová Ivana;6056031883;18;13 +Mačáková Martina;6453210544;18;14 +Mach Marek;7303040041;18;15 +Macháč Patrik;9909260405;18;16 +Macháč Richard;7402141054;18;17 +Macháč Richard;9212110402;18;18 +Macháčová Gabriela;7359070224;18;19 +Machová Kateřina;7554140275;18;20 +Majstrová Lucie;8561210493;18;21 +Majtáň Petr;7506045866;18;22 +Majtáň Radim;9604256244;18;23 +Majtáňová Radka;7657115928;18;24 +Makovcová Věra;5459300396;18;25 +Malá Jana;436105081;18;26 +Malá Jitka;5558200241;18;27 +Malá Marcela;6560250939;18;28 +Malina Jaroslav Ing.;440104031;18;29 +Malína Libor;7009048442;18;30 +Malína Miroslav;7412080214;18;31 +Mallý Walter Ing.;380831015;18;32 +Malý Filip;0106170042;18;33 +Malý Josef;5704040001;18;34 +Maňas Stanislav Ing.;401126020;18;35 +Mandík Jaroslav;7112160176;18;36 +Mandíková Žaneta;8952200070;18;37 +Manič Martin;8810253199;18;38 +Mareček Antonín;370701406;18;39 +Marek Jiří;7808260460;18;40 +Mareš Jaroslav;440721052;18;41 +Marešová Jindřiška;455211005;18;42 +Marešová Libuše;495212242;18;43 +Marethová Lucie;8057025416;18;44 +Marhoulová Jitka;506022198;18;45 +Marisko Aleš;7208020171;18;46 +Marková Dita;7956021689;18;47 +Marounková Šárka;6955045559;18;48 +Maršál Jan;7611120462;19;1 +Maršálek Zdeněk;470422021;19;2 +Maršálková Ladislava;476222005;19;3 +Maršíková Simona;8156013041;19;4 +Martínek František;0007300403;19;5 +Martínek Jiří;5904180150;19;6 +Martínek Libor Ing.;7509050450;19;7 +Martínková Alena Ing. a;505111153;19;8 +Martínková Edita;7655050458;19;9 +Martínková Hana;6053100801;19;10 +Martínková Ludmila;395215015;19;11 +Martínková Tereza;9154040434;19;12 +Martínů Nikola;7105220430;19;13 +Mařík Pavel;7911250017;19;14 +Maří ková Alena;5452250727;19;15 +Masopustová Ivana;5958260660;19;16 +Máša Jiří;8712140404;19;17 +Mašata Emil;6702250346;19;18 +Mašata Martin;7709140483;19;19 +Mašatová Iveta;7160281634;19;20 +Matějčková Olga;496020148;19;21 +Matějíček Václav;470801001;19;22 +Matějková Jana;7651090106;19;23 +Matějů Petr;520422227;19;24 +Materna Stanislav;340415112;19;25 +Maternová Milena;385419076;19;26 +Matucha Jaroslav;7710100519;19;27 +Matuchová Lenka;505220183;19;28 +Maturová Jaroslava;325309100;19;29 +Matušková Marta;465222740;19;30 +Maurerová Jitka;495718188;19;31 +Maxa Jiří;440519016;19;32 +Maxová Marie;435814047;19;33 +Mazánek Ilja Ing.;6101260297;19;34 +Mazánek Ilja;8707070020;19;35 +Mazánková Ofelia Mgr.;6253042015;19;36 +Mazurková Jitka Ing.arch.;9261265002;19;37 +Medková Hedvika;5852041844;19;38 +Mejstříková Marcela;356031017;19;39 +Melichar Alois;420212005;19;40 +Melichar Daniel;9501290403;19;41 +Melichar Pavel;7305021119;19;42 +Melichar Tomáš;7012041135;19;43 +Melicharová Dana;6357012002;19;44 +Melicharová Gabriela;7362250203;19;45 +Melicharová Jarmila;465804078;19;46 +Melicharová Petra;9559010417;19;47 +Mencl Miroslav;6406181859;19;48 +Menclová Kristýna;9761250147;20;1 +Menclová Sylva;6662101545;20;2 +Menclová Štěpánka;0151200214;20;3 +Měřička Otakar;6204100518;20;4 +Měřička Pavel;8603150050;20;5 +Měřička Petr;8603150039;20;6 +Mezera Julie Kelsey Mgr.;475826955;20;7 +Miclíková Marta;515724104;20;8 +Mičulka Jan;8412175123;20;9 +Michková Miroslava;505516240;20;10 +Michková Veronika;8154151060;20;11 +Michlíková Anna;7056764319;20;12 +Mikešová Dana;465609069;20;13 +Mikhaylov Nikita;9810264288;20;14 +Mikisch Richard;9912156210;20;15 +Mikolášová Hana;8656081731;20;16 +Mikulášová Vě ra;7455310423;20;17 +Milatová Martina;6853222079;20;18 +Millerová Hana;425704070;20;19 +Mimrová Ružena;325505726;20;20 +Mišejková Veronika;7162220219;20;21 +Mizerová Jana;7654160426;20;22 +Mladenov Škorvaga Štěpánka;6662280515;20;23 +Modlík Ladislav;410616012;20;24 +Modritzerová Jaroslava;445728139;20;25 +Moldřík Ivan;460504121;20;26 +Morávek Vít Ing.;8409015758;20;27 +Motyka Karel;420905080;20;28 +Moučka Miloslav;7709080423;20;29 +Moučka Zdeněk;8910280423;20;30 +Moučková Eva;7755230450;20;31 +Moudrý Jiří;6808292018;20;32 +Moudrý Michal;7701120955;20;33 +Moudry Molloy Joanne;7157734210;20;34 +Muller Jaroslav;500326400;20;35 +Mullerová Miluše;475424136;20;36 +Murys Radislav;6101301272;20;37 +Murysová Lucie;6553050911;20;38 +Muzikářová Jaroslava;475123056;20;39 +Navrátil Dalibor;7202044960;20;40 +Navrátil Jindřich Ing.;5803132159;20;41 +Navrátil Matěj;9706230127;20;42 +Navrátilová Dana Ing.;6055130774;20;43 +Navrátilová Denisa;7362195038;20;44 +Nebřenská Zdeňka;415129003;20;45 +Nečas Václav;7408211844;20;46 +Nečasová Zdeňka RNDr.;345513089;20;47 +Nedúchal Vladimír;480603717;20;48 +Nedúchalová Bohumila;465303012;21;1 +Nechodomová Marie;435520110;21;2 +Nechutná Petra;8554240057;21;3 +Němcová Jaroslava;455303100;21;4 +Němcová Zuzana;6955205543;21;5 +Němec Roman;7601090497;21;6 +Němeček Marek;7007100375;21;7 +Němeček Václav;460516082;21;8 +Němečková Kamila;465125030;21;9 +Němečková Marie;466001129;21;10 +Němečková Michaela;7358150382;21;11 +Neprašová Věra;505725050;21;12 +Netřebská Blanka;496203179;21;13 +Neumann Jakub;8509170802;21;14 +Neumann Marek Ing.;9102272993;21;15 +Neumannová Michaela Ing.;9059080173;21;16 +Neumannová Viktoriya;9352243296;21;17 +Neuwirth Richard;6104260668;21;18 +Neuwirthová Svatava Mgr.;5656091980;21;19 +Nguyen Thi Thu Hang;6556262570;21;20 +Nikitin Petro Ing.;6008091738;21;21 +Nikitina Svitlana;6559102187;21;22 +Nikolos Dennis;9401230179;21;23 +Nikolos Petra;9358225371;21;24 +Nikolos Vasilis;6403664003;21;25 +Nikolos Víšková Hana;7156150210;21;26 +Nimeřická Irena JUDr.;536117083;21;27 +Nimeřická Michaela Mgr.;7957312099;21;28 +Nimeřický Petr;8012124461;21;29 +Nodlová Dobromila;5760090611;21;30 +Noháčová Anna;0654284466;21;31 +Noháčová Eliška;0354270026;21;32 +Noháčová Kateřina Mgr.;7459303599;21;33 +Nouzáková Anna;8954140195;21;34 +Nová Marta;465602078;21;35 +Nováček Daniel;9610121543;21;36 +Novák Jaroslav;440810008;21;37 +Novák Jiří;0312140180;21;38 +Novák Jiří Ing.;6312121090;21;39 +Novák Pavel;7307030236;21;40 +Novák Petr;6909154934;21;41 +Nováková Alena;475505074;21;42 +Nováková Bára;0456284499;21;43 +Nováková Dana RNDr.;6354131003;21;44 +Nováková Květa;475504114;21;45 +Nováková Leona;535418228;21;46 +Nováková Lucie;7060310213;21;47 +Nováková Lucie;9159040429;21;48 +Nováková Martina;6552180525;22;1 +Nováková Miluše;526220015;22;2 +Nováková Petra Ing.;7352240434;22;3 +Novotná Bohumila;5451011610;22;4 +Novotná Eva;8055210394;22;5 +Novotná Kateřina;7953280808;22;6 +Novotná Marcela;6953020327;22;7 +Novotná Miluše;455112014;22;8 +Novotná Miluška;515920007;22;9 +Novotný Jan;7312270548;22;10 +Novotný Martin;6611091388;22;11 +Novotný Martin;6903020080;22;12 +Novotný Martin;9411250442;22;13 +Novotný Milan Ing.;331210082;22;14 +Novotný Miroslav Ing.;460509135;22;15 +Novotný Pavel;491211149;22;16 +Novotný Pavel;7606050518;22;17 +Novotný Petr Ing.;8002100436;22;18 +Novotný Vladimír;6212231861;22;19 +Nový Jiří;7303060391;22;20 +Nowicki Petr;7103030319;22;21 +Nytra Vlastimil;480529219;22;22 +Oberlander Jan;8207180432;22;23 +Odlasová Denisa;7762310281;22;24 +Odlasová Krístýna;0253133122;22;25 +Opršalová Libuše;365123089;22;26 +Otčenášek Vojtěch;8203120299;22;27 +Ouředník František;471130030;22;28 +Ouředníková Alena;515603023;22;29 +Ovanesiani Jelena;8951074308;22;30 +Packan Olesja;9955550704;22;31 +Palinkaš Naděžda;8558173371;22;32 +Panýrková Hana;395514034;22;33 +Panýrková Helena Ing.;6751122037;22;34 +Panýrková Lenka;9956270423;22;35 +Papp Igor;6310764053;22;36 +Paroubek Aleš;7205190487;22;37 +Paroubek Pavel;7310040507;22;38 +Paroubek Petr;7310040496;22;39 +Paroubková Jiřina;465625148;22;40 +Pařízková Magdalena;6860030914;22;41 +Pasková Kristýna;0260250155;22;42 +Patskan Vasyl;9403231343;22;43 +Paulíček Jiří;5611300068;22;44 +Pavlasová Hana;8362021811;22;45 +Pavlíčková Libuše;465318114;22;46 +Pavlíková Jana;465212030;22;47 +Pavlů Jana;9057091769;22;48 +Pawlíková Kateřina;8454092680;23;1 +Pažitná Miluše;6262101241;23;2 +Pažitný Josef;6110241324;23;3 +Pechová Sandra;9054200408;23;4 +Pechrová Miluška;456111032;23;5 +Pekárek Pavel;390322084;23;6 +Pekárek Pavel;5708031824;23;7 +Pekárková Vlasta;415414073;23;8 +Pelcová Ludmila;486111054;23;9 +Pencová Daniela;8062080015;23;10 +Peričevič Václav;0005090151;23;11 +Peričevič Václav;7206083236;23;12 +Peričevičová Karolína;0162280008;23;13 +Peričevičová Lucie;7753300148;23;14 +Peričevičová Marie;475106038;23;15 +Pernicová Miroslava;486023438;23;16 +Perutková Jarmila;395803008;23;17 +Pešková Jarmila Mgr.;5657310010;23;18 +Petkov Damian;0204190206;23;19 +Petlachová Michaela;7357010221;23;20 +Petrák Jakub;8810140438;23;21 +Petrovská Eliška;436114002;23;22 +Pexová Věra;466104151;23;23 +Pham Van Duy;8910584023;23;24 +Pikulíková Libuše;375705434;23;25 +Piljarová Zdena;7051027489;23;26 +Pilná Marta;405712023;23;27 +Pintérová Dagmar;6253071396;23;28 +Pintíř Milan;6807300379;23;29 +Písaříková Helena;6761150341;23;30 +Pitra Elina;9859224276;23;31 +Pitra Olesya;7557143935;23;32 +Pitra Stepan;9403013290;23;33 +Pižlová Marie;496123337;23;34 +Plaček Richard;6003310720;23;35 +Plachý Matěj;8912140039;23;36 +Planetová Anna;9153290069;23;37 +Plocková Jadwiga;405619022;23;38 +Plocková Simona;7160063669;23;39 +Plzáková Ivana;436005111;23;40 +Podzimková Michaela;6361221526;23;41 +Pohan Josef;481021102;23;42 +Pohanová Jaroslava;435610089;23;43 +Pokorná Katka;9062300423;23;44 +Pokorný Bohumil;6804160990;23;45 +Pokorný Milan;6610042208;23;46 +Poláková Jaroslava;415604027;23;47 +Poláková Lucie;8560100494;23;48 +Polcarová Štěpánka MUDr.;5860136425;24;1 +Polishchuk Mariia;8759231426;24;2 +Pop Alia;8962083350;24;3 +Pop Ivan;8606084366;24;4 +Popovych Vasyl;7906303911;24;5 +Pospíchalová Hana;9260030439;24;6 +Pospíchalová Jaroslava;435113438;24;7 +Pospíšil Jiří;6708101114;24;8 +Pospíšilová Božena;7759110359;24;9 +Pouček Karel;8701100397;24;10 +Poučková Dana;6553110388;24;11 +Poustková Jiřína;485627038;24;12 +Pragerová Borovková Zdeňka;7857200912;24;13 +Prodělal Jiří;5504180770;24;14 +Procházka David;7209160057;24;15 +Procházka František;470818116;24;16 +Procházka Josef;390523036;24;17 +Procházka Marek;0401036196;24;18 +Procházka Martín;8007300444;24;19 +Procházka Ondřej;9207270413;24;20 +Procházka Stanislav;6511171469;24;21 +Procházka Vladimír;471126130;24;22 +Procházka Vladimír Ing.;7202160438;24;23 +Procházka Vojtěch;9012070419;24;24 +Procházková Dana;536008170;24;25 +Procházková Hana;475929194;24;26 +Procházková Jaroslava;476210075;24;27 +Procházková Jiřína;515425100;24;28 +Procházková Marie;6053170189;24;29 +Procházková Věra MUDr.;6453111885;24;30 +Procházková Veronika;8153010426;24;31 +Procházková Zdeňka;455906043;24;32 +Prokeš Míchal;8205130461;24;33 +Prokešová Alexandra PHDr.;525115063;24;34 +Prokop Pavel Ing.;6804101920;24;35 +Prokopová Hana;7861073671;24;36 +Prokopová Michaela;9653300074;24;37 +Prosíková Jacqueline;9355120170;24;38 +Protiva Jiří Doc. RNDr.;470923158;24;39 +Protivová Lidmila RNDr.;475915002;24;40 +Protivová Pavla;7753060194;24;41 +Příbová Darina;6054574130;24;42 +Psohlavcová Lenka;8160130176;24;43 +Psohlavec Miroslav JUDr.;5601090550;24;44 +Ptáčková Jana;475917011;24;45 +Puchernová Jana;456221075;24;46 +Pusbachová Blanka;495402267;24;47 +Pustina Jakub;8902070397;24;48 +Pustina Ota;8403310421;25;1 +Pustina Tomáš Mgr.;8005050218;25;2 +Putík František;6102061207;25;3 +Putíková Marie;355105004;25;4 +Pýchová Alena;7355260418;25;5 +Pýchová Jitka;9358282725;25;6 +Radenovič Jozef;7503774102;25;7 +Radová Eliška;9556190402;25;8 +Radová Eliška;9762170022;25;9 +Radová Marie;436120039;25;10 +Rachová Milada;335204060;25;11 +Raiman Pavel;290422087;25;12 +Raimanová Dagmar;325527099;25;13 +Rambousek Josef;7705020796;25;14 +Rambousek Petr;7412150779;25;15 +Rampas Jakub;9411230037;25;16 +Rampasová Barbora;9856160083;25;17 +Ratkiewicz Karel;6804201371;25;18 +Ratkiewiczová Romana;7055180418;25;19 +Ratkiewiczová Romana;9054151128;25;20 +Raušová Drahoslava;506207245;25;21 +Rejfířová Marcela MUDr.;535510353;25;22 +Rejfířová Sylvie Ing.;8056010149;25;23 +Rejšková Jaroslava;526120225;25;24 +Reslerová Miroslava;8961162551;25;25 +Richter Ivan;450726721;25;26 +Richterová Marcela;465127107;25;27 +Ritterová Anna;8259161900;25;28 +Roháček Ondřej;9710030176;25;29 +Roháčková Markéta;7158262793;25;30 +Rohlíková Marie;415513130;25;31 +Rottenberg Antonín;420410014;25;32 +Rottenbergová Hana;465710094;25;33 +Routner Jakub;8605040312;25;34 +Rozenbaumová Martina;7552260452;25;35 +Rozkoš Antonín;521027142;25;36 +Rozsypal František Ing.;511023118;25;37 +Rubášová Michaela;8760111591;25;38 +Rubín Michal;8206230428;25;39 +Rubín Tomáš;7706040430;25;40 +Rubínová Ivana;5653010638;25;41 +Rubínová Karolína;8552041146;25;42 +Rusnák Stanislav;6108107412;25;43 +Rusnáková Věra;495508224;25;44 +Rutrle Petr Ing.;6709150613;25;45 +Růžička Václav;6302171491;25;46 +Rybová Danuše;425526057;25;47 +Rygerová Lenka;515803110;25;48 +Rygleviczová Marta;436024003;26;1 +Ryšavá Ivana;7552010455;26;2 +Ryšavá Nikol MUDr.;9953170403;26;3 +Ryšavá Renata;6455142353;26;4 +Ryšavý Jan;7210040299;26;5 +Ryšavý Michael;0306100399;26;6 +Řeháková Irena;7455300853;26;7 +Řehoř Karel;7604180419;26;8 +Řehořová Barbara;8353303189;26;9 +Říhová Jindřiška;406201025;26;10 +Říhová Markéta;8462150147;26;11 +Sainer Vlastimil;461003154;26;12 +Sainerová Alena;495912069;26;13 +Samková Eva;495220197;26;14 +Saponar Tomáš;8008040326;26;15 +Saponarová Veronika;8154200428;26;16 +Sedláček Jaroslav;491118063;26;17 +Sedláčková Vlasta;505805215;26;18 +Sedmihradská Jarmila;385113048;26;19 +Seifertová Tereza Bc.;7753113236;26;20 +Sejk Luboš;7205270292;26;21 +Sejková Marta;455405031;26;22 +Sekrt Ondřej;8709100455;26;23 +Sekrt Zdeněk;8812310408;26;24 +Sekulová Hana;7161060302;26;25 +Setnička Miroslav;520223026;26;26 +Setnička Tomáš;8605110426;26;27 +Setničková Jitka;5455142143;26;28 +Shpontak Nataliya;8052119933;26;29 +Schod Pavel;7101062386;26;30 +Schořálek Jaroslav;330613108;26;31 +Schořálek Michal;7401270052;26;32 +Schumpeter Jan;490515340;26;33 +Schumpeterová Daniela;525731144;26;34 +Schwarz Antonín;6406120567;26;35 +Schwarzová Renáta;6555151262;26;36 +Sidej Natan;9811040305;26;37 +Sidejová Etela;0257190296;26;38 +Sidejová Hana;9861040310;26;39 +Sidejová Ludmila;7452020279;26;40 +Simion Vladimír;510802325;26;41 +Simionová Eliška;8059260429;26;42 +Simionová Lýdia;5556046672;26;43 +Simon Patrik;6905170195;26;44 +Sitta Daniel;7906010376;26;45 +Sixtová Blanka;466103013;26;46 +Skácel Ondřej;7912154459;26;47 +Skála Jiří;400314096;26;48 +Skalická Jiřina;315729066;27;1 +Skalický David;9510091888;27;2 +Skalický Evžen Ing.;280616091;27;3 +Skálová Alena;435522111;27;4 +Skálová Alena;5956182045;27;5 +Skálová Jaroslava;435127010;27;6 +Sklenář Vladimír;5409194296;27;7 +Sklenářová Olga;5854050510;27;8 +Skřivánková Zdeňka Ing.;375730043;27;9 +Skůčková Marta;386210016;27;10 +Slabá Gabriela;8552170517;27;11 +Slabá Jana;525506072;27;12 +Slabá Jiřina;5556210198;27;13 +Slabá Kateřina;8353100019;27;14 +Slabá Radka;6757100592;27;15 +Slabý David;9702070125;27;16 +Slabý Martin;9505160170;27;17 +Slabý Michal;7201170086;27;18 +Sládek Miloš Ing.;350206722;27;19 +Sládková Aneta;9959130423;27;20 +Sládková Dagmar;7457300422;27;21 +Slamková Květoslava;425314047;27;22 +Slámová Eliška;395425044;27;23 +Slanina Petr;8001132392;27;24 +Slaninová Nicol;7862202920;27;25 +Slavík Jiří;8904250124;27;26 +Slavíková Kateřina Ing.;8253215223;27;27 +Slavíková Zuzana;8956039037;27;28 +Slezáček Ladislav;490204154;27;29 +Slezáček Lukáš;8710030120;27;30 +Slyvka Ivan;8508690718;27;31 +Smejkal Bohuslav;500825029;27;32 +Smejkal Jiří;7805223547;27;33 +Smejkal Petr Ing.;7810211211;27;34 +Smejkalová Jitka;8262150435;27;35 +Smetana Karel;7302230441;27;36 +Smetana Libor;7908030427;27;37 +Smetanová Marie;456114025;27;38 +Smetanová Olena;7551299943;27;39 +Smrčina Jindřich;7610110376;27;40 +Smrčinová Stanislava;505313184;27;41 +Sobotka Petr;7406030060;27;42 +Sofíllkanych Robert;9705624511;27;43 +Sochorová Michaela;8161210420;27;44 +Soldánová Eva;9455190415;27;45 +Soldánová Vratislava;6953270016;27;46 +Sommerová Mária;5455030603;27;47 +Součková Eva;6257100256;27;48 +Soucha Michal;9112060518;28;1 +Souchová Barbora;8962210092;28;2 +Soukup Michal;8208310418;28;3 +Soukup Roman;6807131760;28;4 +Soukupová Daniela;8659133549;28;5 +Soukupová Jana Ing.;7451150278;28;6 +Soukupová Klára;0359060185;28;7 +Spěváček Roman;8104220025;28;8 +Spěváčková Věra;8054132900;28;9 +Srb Vladimír;490821215;28;10 +Srbová Zdeňka;536024188;28;11 +Stanko Nikola;9455120488;28;12 +Staňková Denisa;9552172839;28;13 +Stehlíková Veronika;8860020191;28;14 +Stehno Oldřich;410413024;28;15 +Stejskal Marek;9704280421;28;16 +Stejskal Radomír;6203301929;28;17 +Stejskal Vladimír;430328033;28;18 +Stejskalová Blanka;6354280878;28;19 +Stejskalová Eliška Ing.;6355202128;28;20 +Stillerová Eva;9058043478;28;21 +Stocklová Dagmar;7062140734;28;22 +Stocklová Svetlana e;7458299981;28;23 +Stoklasa Jan;480123061;28;24 +Stoklasová Daniela;5453052869;28;25 +Stoyka Kvita;7261049994;28;26 +Straková Barbara;7755260271;28;27 +Stránská Zdeňka;355522014;28;28 +Stránský Jiří;391005026;28;29 +Strnad David;7207180024;28;30 +Strnad Jakub;9803090440;28;31 +Strnad Jaroslav;6305011944;28;32 +Strnad Jiří;7404175999;28;33 +Strnad Matěj;8907130177;28;34 +Strnadová Dagmar;446116017;28;35 +Strnadová Dana;6258211058;28;36 +Strnadová Jana;7560031501;28;37 +Strnadová Jitka;7658212606;28;38 +Strnadová Natálie;0460142969;28;39 +Strnadová Vítězslava;435614435;28;40 +Stupková Lucie;8058200029;28;41 +Stupková Magda;8451270058;28;42 +Stupková Věnceslava;365120063;28;43 +Stýblová Jana;476203028;28;44 +Suchá Veronika;8861090348;28;45 +Suchardová Jitka;446014055;28;46 +Suchý Milan;6012096904;28;47 +Suchý Milan;8601110320;28;48 +Suchý Vladimír;7602044780;29;1 +Svačina Jiří;5909081420;29;2 +Svačina Petr;8603210044;29;3 +Svačinová Lucie;8158040418;29;4 +Svačinová Markéta;8953300532;29;5 +Svačinová Zuzana;6354202151;29;6 +Svalyavchyk Yuriy;7901183928;29;7 +Svášková Soňa Mgr.;475624086;29;8 +Svetík Pavel;8604050488;29;9 +Svoboda Lukáš;8511220443;29;10 +Svoboda Vladimír;6008061488;29;11 +Svozil David;9506230404;29;12 +Svozil Petr;7007270402;29;13 +Svozilová Hana;7051070433;29;14 +Svozilová Ivana;6654251978;29;15 +Sylla Almany Alfred;9610270120;29;16 +Szénasiová Anna;8861240168;29;17 +Szénásiová Jana Ing.;6353160583;29;18 +Szénasiová Marie;9360100167;29;19 +Šabršula Karel;6003210774;29;20 +Šabršulová Alena;6461231095;29;21 +Šabršulová Anna;9061100081;29;22 +Šáfrová Hania;9758280400;29;23 +Šámal Roman;7411070458;29;24 +Šámalová Anežka;476114424;29;25 +Šamša Jan;0404294704;29;26 +Šamšová Irena;7153180551;29;27 +Šaňková Helena;496217292;29;28 +Šebek Josef;400828108;29;29 +Šebek Roman JUDr.;7207010195;29;30 +Šebesta Jaroslav Ing.;470629074;29;31 +Šebestová Zdenka;505809020;29;32 +Šeďa Matěj;9507050047;29;33 +Šeďa Vojtěch;9803090506;29;34 +Šeďová Jaroslava;6856111328;29;35 +Šefcová Lenka;7957310427;29;36 +Šefcová Marta;505813378;29;37 +Šestáková Miroslava;465810001;29;38 +Ševčík Ladislav;491110004;29;39 +Ševč íková Anna;505726083;29;40 +Ševčíková Magdalena;7659080451;29;41 +Šikola Milan;5510310146;29;42 +Šikolová Jaroslava;5756170112;29;43 +Šilhavá Simona;7361130040;29;44 +Šíma Luděk;0111250183;29;45 +Šíma Luděk;6505271696;29;46 +Šíma Miroslav;8101250432;29;47 +Šimáková Hana;7260110990;29;48 +Šímová Helena;6860241553;30;1 +Šímová Květa;5457071367;30;2 +Šímová Květa;7659230447;30;3 +Šimr Roman;7310280516;30;4 +Šindelář Jan;8706100425;30;5 +Šindelář Tomáš;8503120417;30;6 +Šindelářová Eunika;8558514052;30;7 +Šindelářová Věra;7261142658;30;8 +Šindelářová Zuzana Ing.;6154040585;30;9 +Šíp Pavel;7406261720;30;10 +Šípkovský Martin;7408220424;30;11 +Škobisová Milena;505125107;30;12 +Škoch Petr Ing.;8502203853;30;13 +Škopek Daniel;0111270016;30;14 +Škopek Martin;9611260175;30;15 +Škopková Denisa;0161270054;30;16 +Škopková Romana;6659150344;30;17 +Škorpilová Martina;7053270774;30;18 +Škorvagová Ivana;8762140464;30;19 +Škvor Ivan;400626034;30;20 +Škvorová Eva;455122035;30;21 +Šlik Petr;530414098;30;22 +Šliková Součková Taťana;505426209;30;23 +Šlouf Daniel;7801230074;30;24 +Šlouf Richard;441214097;30;25 +Šlouf Richard;7108010239;30;26 +Šloufová Dana;485710188;30;27 +Šmíd Alexander Ing.;431213426;30;28 +Šmídová Blanka;535512111;30;29 +Šmídová Sabina;0261160405;30;30 +Šmídová Zdeňka Ing.;476014105;30;31 +Šob Michael;6010070913;30;32 +Šobová Jaroslava Ing.;6360140380;30;33 +Šolc Michal;7401102830;30;34 +Šolc Václav;0209130405;30;35 +Šolc Václav;6107011856;30;36 +Šolcová Aneta;9561220416;30;37 +Šolcová Hana;6862201445;30;38 +Šolcová Michaela;0056150402;30;39 +Šolcová Natálie;7054010348;30;40 +Šolcová Pavla;6858290043;30;41 +Šotola Radomír Ing.;510214143;30;42 +šourek Radek;7510280470;30;43 +Špalíček Jan;9511010399;30;44 +Špalíček Petr;9910140141;30;45 +Špalíčková Romana;7252130446;30;46 +Špatná Markéta;8953010330;30;47 +Špetlák Petr;471106126;30;48 +Špetláková Ivana;535316079;31;1 +Šprunková Dana;6762100950;31;2 +Šraml Jan;7209230325;31;3 +Šramlová Michaela MUDr.;6960185133;31;4 +Štampfer Jan;8010310429;31;5 +Šťastná Eva;526104279;31;6 +Šťastný Libor Ing.;461001479;31;7 +Štekerová Olga;7262030072;31;8 +Štekerová Veronika;9453160442;31;9 +Štěpán Jan Ing.;430730066;31;10 +Štěpánková Miloslava;485919129;31;11 +Štěpánová Lenka;7556220452;31;12 +Štěpánová Stanislava;455311007;31;13 +Štrup Petr;480416072;31;14 +Štrupová Eva;485702422;31;15 +Šubrtová Silvie;7756170158;31;16 +Šuhaj Petr;6510130792;31;17 +Šulc Jakub;9108190003;31;18 +Šulc Jiří;6008040247;31;19 +Šulc Václav;9701230011;31;20 +Šulc Vorlová Zuzana;8257180041;31;21 +Šulcová Pavlína;7256240167;31;22 +Švecová Jaroslava;475105142;31;23 +Švecová Jitka;7355180789;31;24 +Švéda Jan;6405250808;31;25 +Táborský Lukáš;8402240517;31;26 +Taláb Jan;7810073579;31;27 +Talábová Renáta;8361190420;31;28 +Tamáš Martin Ing.;8002068624;31;29 +Tamášová Jana Ing.;8162212520;31;30 +Tarnovská Gabriela;0459084923;31;31 +Tasheva Katya;9853295694;31;32 +Tater Michal;7303040404;31;33 +Taterová Ellen;0359290987;31;34 +Taterová Irena;7460250072;31;35 +Tedla Filip;9412050494;31;36 +Techl Dominik;0409055086;31;37 +Techlová Markéta;7058241718;31;38 +Teršová Eva;466225409;31;39 +Tesař Jakub;9504210408;31;40 +Tesařík Miroslav Ing.;341105056;31;41 +Tesaříková Květ uše MUDr.;315620122;31;42 +Tesařová Andrea;9154060399;31;43 +Tesařová Hana;6855160521;31;44 +Thielová Nelly;0557174453;31;45 +Tichá Hana;465227131;31;46 +Tichá Věra;435225133;31;47 +Tichý František;7302112741;31;48 +Tippl Pavel;5403032580;32;1 +Tipplová Eliška;9757150502;32;2 +Tipplová Michaela;6561150607;32;3 +Tířová Eliška;8354080427;32;4 +Titlbach Josef;491019200;32;5 +Titlbachová Božena;505228025;32;6 +Tólgová Jaroslava;7160242067;32;7 +Toman Jiří;8708310204;32;8 +Toman Pavel;9002130159;32;9 +Tomanová Šárka;6454131695;32;10 +Tomyshynets Halyna;7961794126;32;11 +Tomyshynets Pavlo;7609103986;32;12 +Torres bianco Jose maria;7410540709;32;13 +Tóthová Eva;7459250469;32;14 +Tranová Iveta;7558222606;32;15 +Trappl Jiří;7111544407;32;16 +Trappl Juraj;9804574186;32;17 +Trapplová Diana Ing.;7857644344;32;18 +Trendová Zuzana;8351220427;32;19 +Trnková Eliška;0356200724;32;20 +Trojková Jana;465917444;32;21 +Třísková Alice Mgr.;6860080238;32;22 +Tsikhun Yuliia;0154061336;32;23 +Tsohla Teodor;411119959;32;24 +Tsohla Tetyana;5758312065;32;25 +Tu ček Jiří;6210010136;32;26 +Tuček Jiří;9309180408;32;27 +Tučková Marie;6657160554;32;28 +Tuková Jana;446209018;32;29 +Tůma Patrik;8908180402;32;30 +Tůma Pavel;8001120435;32;31 +Tůmová Lenka;6852020769;32;32 +Tůmová Renáta;7059087629;32;33 +Turková Helena;8051160469;32;34 +Turok Mykhaylo;5701018543;32;35 +Turok Mykhaylo;8210241897;32;36 +Turok Vasyl;9508600706;32;37 +Turza David;8308152677;32;38 +Turzová Jana;7854252659;32;39 +Tvrz Lukáš;9403100223;32;40 +Tvrz Martín;6902050441;32;41 +Tvrz Matěj;9901040160;32;42 +Tvrzová Emilie;475706173;32;43 +Tvrzová Ivana;7152180420;32;44 +Uher Tomáš;7306230206;32;45 +Uhlíř Miloš;461119488;32;46 +Uhlířová Helena;445603459;32;47 +Uhlířová Jana;5452020420;32;48 +Uhlířová Václava;6254192043;33;1 +Uhrová Hana;7259190499;33;2 +Ulrich Jan;7311153003;33;3 +Ulrichová Marcela PhDr.;495926168;33;4 +Ulrichová Vlasta;476208033;33;5 +Unger Eduard;6806070612;33;6 +Unger Michal;7406120458;33;7 +UntermOller Karel;7210101052;33;8 +Urbánek Jan JUDr.;461226145;33;9 +Urbanová Anna;0561164648;33;10 +Urbanová Dana;7251200440;33;11 +Urbanová Jarmila;445604038;33;12 +Vacková Dáša;475612007;33;13 +Vacková Klára;7953280478;33;14 +Vágner Zdeněk;6507031806;33;15 +Vágnerová Veronika;9961250409;33;16 +Vajcová Antonie;395223741;33;17 +Vališová Gabriela;7352200328;33;18 +Vandírkova Tetjana;6162102023;33;19 +Vaněček Petr;6610161624;33;20 +Vaněčková Lenka;435317067;33;21 +Vaněk Lukáš;7912300583;33;22 +Vaněk Petr;8406080485;33;23 +Vaník Ladislav;490427096;33;24 +Vaníková Helena;535319343;33;25 +Vaníková Jana;8659050433;33;26 +Vaňková Ljuba PhDr.;516015053;33;27 +Vaňková Zdeňka;456009040;33;28 +Vaňous Jakub;9301280417;33;29 +Vaňousková Adéla;0051020288;33;30 +Váňová Marta;5660141069;33;31 +Varga Jan;7604281058;33;32 +Varga Štěpán;0412095079;33;33 +Vařečková Markéta;9860200086;33;34 +Váša Jiří;7606151036;33;35 +Vašíček Libor;7303250306;33;36 +Vašíčková Andrea;7254270386;33;37 +Vašíčková Vlasta;475102108;33;38 +Vašinová Jiřina;5951231044;33;39 +Vaško Ladislav;6906045718;33;40 +Vašková Jitka;7461220305;33;41 +Vašut Martin Ing.;7912045548;33;42 +Vašutová Tereza;7961215185;33;43 +Vavák Marcel;8702155165;33;44 +Vaváková Dagmar;6454232378;33;45 +Vavrous František;510807259;33;46 +Vavrous Lukáš;9111160421;33;47 +Vavrousová Václava;525528336;33;48 +Vávrová Kateřina;7654284891;34;1 +Vejlupek Tomáš;9912060488;34;2 +Vejlupková Miluše;505521223;34;3 +Vejlupková Pavla;7357290512;34;4 +Veltruská Miloslava;425520037;34;5 +Veltruský Jaroslav Ing.;391111080;34;6 +Venkrbcová Vladislava;8755120429;34;7 +Venkrbec Martin;7901230073;34;8 +Verner Dalibor;7503262701;34;9 +Veselá Eva;466224078;34;10 +Veselá Michaela;9162030185;34;11 +Veselá Veronika;7158201050;34;12 +Veselý Milan;6406091615;34;13 +Vetešníková René;8151303314;34;14 +Větrovcová Vlasta Ing.;435930018;34;15 +Vinduška Milan Ing.;7404134804;34;16 +Vinecká Eva;465318105;34;17 +Vinecký Josef;450224057;34;18 +Vinická Kateřina;8062020318;34;19 +Vinkler Pavel;8804185302;34;20 +Vinšová Dominika;9854110024;34;21 +Vláčihová Miroslava;435120062;34;22 +Vlasák Jiří;320105035;34;23 +Vlčková Radka Ing.;7354250431;34;24 +Vocásek Jindřich;6602112066;34;25 +Vodička Jiří;8409010434;34;26 +Vodička Karel;460113137;34;27 +Vodička Václav;490317189;34;28 +Vodičková Eva;535512242;34;29 +Vodičková Jana;5556262239;34;30 +Vojáček Aleš;7309300449;34;31 +Vojáčková Zdeňka;495326254;34;32 +Vojta Jiří;440215068;34;33 +Vojtíšková Libuše;425209076;34;34 +Vojtová Zdeňka;505416331;34;35 +Vokurka Matyas;0503314350;34;36 +Vokurková Bára;0151252673;34;37 +Voldánová Marta Ing.;466123077;34;38 +Voldřich František;7103310390;34;39 +Voldřichová Jana;425427099;34;40 +Voldřichová Michaela;7758170431;34;41 +Vomastková Eva;485803210;34;42 +Vonášek Karel;6603080968;34;43 +Vondra Jindřich Ing.;6707010662;34;44 +Vondrášková Lucie;9562250016;34;45 +Vondřičková Zuzana Ing.;7855080420;34;46 +Vopička Otta;400803088;34;47 +Vorlová Eva;456124092;34;48 +Vortel Michal Ing.;5403312255;35;1 +Vortelová Eva;5459051862;35;2 +Voříšek Štěpán;7712050489;35;3 +Voříšková Eva;445607021;35;4 +Voříšková Helena;465201175;35;5 +Voříšková Jana;8257300425;35;6 +Voříšková Valéria;465603196;35;7 +Vosecký Petr;7311160395;35;8 +Vostrá Dagmar;356018016;35;9 +Vostrý Josef;350315051;35;10 +Vošická Dagmar;6759131170;35;11 +Vošická Dagmar;8660210427;35;12 +Vošický Jaroslav;6109170661;35;13 +Votípka Lukáš;0205070019;35;14 +Votípková Yvona;6661051496;35;15 +Vozár Jan;530515177;35;16 +Vozár Pavel;8109160147;35;17 +Vrňák Radomil;5603270057;35;18 +Vrňáková Jaroslava;5761140275;35;19 +Vrňáková Lucie Ing.;8157220159;35;20 +Vyhnanovský Jaromír;5806116613;35;21 +Vyhnanovský Lukáš;9101130181;35;22 +Vymětal Tomáš;9301010433;35;23 +Vymětalová Kristýna MUDr.;9054260083;35;24 +Vymětalová Petra Ing.;6654011012;35;25 +Výprachtická Milada;425518035;35;26 +Výprachtický Ondřej;6907220320;35;27 +Vyrobíková Michaela;7859242237;35;28 +Vyskočil Radek;7610260185;35;29 +Wágner Milan;370818406;35;30 +Walterová Klaudia;7860186114;35;31 +Wehle Jiří;470430060;35;32 +Wertheimová Hedvika;7755070895;35;33 +Wesley Nathaniel;7903280539;35;34 +Wesley Robert;4806514053;35;35 +Wesleyová Mariana;8358053187;35;36 +Wesleyová Renata;536007037;35;37 +Widtmann Karel;401021024;35;38 +Wiesnetová Jitka;7157290063;35;39 +Winzig Antonín;7009121119;35;40 +Wolf Jiří;6711081157;35;41 +Wright Michaela;7561300043;35;42 +Wunschová Eliška;8051180456;35;43 +Yang Manli;7662293914;35;44 +Yates Hana;7755035376;35;45 +Záhorovský Pavel;460429114;35;46 +Zaiats Halyna;9758065691;35;47 +Zána Jan;5606051143;35;48 +Zánová Ladislava;5954120557;36;1 +Záruba Milan;431103077;36;2 +Zárubová Květuše;445924141;36;3 +Zástěra Ctibor Ing.;410830102;36;4 +Zástěrová Jaroslava;446119031;36;5 +Záškodová Eva;415228022;36;6 +Zavaďáková Martina;7862050306;36;7 +Zbranek Adam;8806100413;36;8 +Zedník Jan;5510041944;36;9 +Zedníková Jana;5851301731;36;10 +Zelenková Petra;8351112693;36;11 +Zemánek Jan;9501062483;36;12 +Zemanová Eva;395912079;36;13 +Zerza Jana;8851110059;36;14 +Zhernova Nadiya;7352013933;36;15 +Zifčaková Blažena PhDr.;405610040;36;16 +Zich Jiří Ing.;5404211967;36;17 +Zichová Daniela;5456232012;36;18 +Zíka Martin;7207240667;36;19 +Zíková Jana;7454230454;36;20 +Zívr Jan;9109091123;36;21 +Zívrová Helena;5458071212;36;22 +Zobač Martin;9204113798;36;23 +Zobáčová Barbora;9254300440;36;24 +Zounková Květuše;455425004;36;25 +Zuzák Viktor;500208129;36;26 +Zvárová Marie;5862051382;36;27 +Žaba Jaroslav;430127023;36;28 +Žabová Věra;475915054;36;29 +Žák Darek;0002210186;36;30 +Žáková Netopilová Adriana;0060210414;36;31 +Žižková Eva;435903010;36;32 diff --git a/Insurance/FinalReconcilliation/NOTES.md b/Insurance/FinalReconcilliation/NOTES.md new file mode 100644 index 0000000..6f88dd5 --- /dev/null +++ b/Insurance/FinalReconcilliation/NOTES.md @@ -0,0 +1,136 @@ +# FinalReconcilliation — sledování stavu registrovaných pacientů + +## Cíl + +Jednoznačně roztřídit pacienty **registrované v Medicusu** podle **skutečnosti ověřené u pojišťovny**: +kdo je k danému dni jejich registrující **praktik (odbornost 001)** dle VZP B2B. + +- praktik = **Buzalková (IČP 09305001)** → pacient **je** v zakoupeném souboru pacientů (OK) +- praktik = kdokoli jiný / žádný → **„NEBYL V ZAKOUPENÉM SOUBORU PACIENTŮ"** + +„Registrovaný v Medicusu" je jen stav v software; tohle ověřuje realitu u pojišťovny. + +## Úložiště — MongoDB + +| | | +|---|---| +| Server | `mongodb://192.168.1.76:27017` (stejný stroj jako MySQL `medevio`) | +| Databáze | `ordinace` | +| Kolekce | `registrovani_tracking` | +| Klíč | `_id` = rodné číslo (1 dokument na pacienta) | + +### Schéma dokumentu + +```json +{ + "_id": "8202...", "rc": "8202...", "prijmeni": "...", "jmeno": "...", + "pojistovna": {"kod": "111", "zkratka": "VZP"}, + "vychozi_datum": "2025-01-01", + "aktualni": { ...snímek... }, + "historie": [ { ...snímek..., "zmena": "výchozí snímek" } ], + "created_at": ISODate, "updated_at": ISODate +} +``` + +Snímek (`aktualni` i položky `historie[]`): +`k_datu, kategorie, kategorie_popis, v_zakoupenem_souboru (bool), flag, flag_duvod, +praktik_nazev, praktik_icz, praktik_icp, praktik_od, datum_zahajeni, datum_ukonceni` + +- **`praktik_nazev` / `praktik_icz` / `praktik_icp`** = KDO je registrující praktik dle VZP + (u `OK_BUZALKOVA` Buzalková, u `JINY_PRAKTIK` cizí ZZZ). +- **`praktik_od`** (= `datum_zahajeni`) = OD KDY je u tohoto praktika registrován. +- **`flag_duvod`** = čitelný důvod mimo soubor, např. `"jiný praktik: MOJE AMBULANCE A.S. + (IČZ 91777000) od 2014-01-01"`. + +### Kategorie (plné podkategorie) + +| kategorie | význam | v souboru | +|---|---|---| +| `OK_BUZALKOVA` | praktik 001 = Buzalková (IČP 09305001) | ✅ ano | +| `JINY_PRAKTIK` | praktik 001 je jiné ZZZ | 🚩 ne | +| `BEZ_PRAKTIKA_VZP` | u VZP záznam (jiná odb.), ale praktik 001 ne | 🚩 ne | +| `BEZ_ZAZNAMU_VZP` | VZP nevrátila žádný záznam (jiná pojišťovna / neplatné RČ / zaniklé pojištění) | 🚩 ne | + +## Stav k výchozímu snímku 1.1.2025 + +Populace = 1688 pacientů registrovaných v Medicusu k 1.1.2025 (= RČ v `vzp_registrace_raw` pro to datum). + +| kategorie | počet | +|---|---:| +| OK_BUZALKOVA | 1537 | +| JINY_PRAKTIK | 53 | +| BEZ_ZAZNAMU_VZP | 50 | +| BEZ_PRAKTIKA_VZP | 48 | +| **v souboru / mimo** | **1537 / 151** | + +## Skript `seed_tracking.py` + +Zdroj klasifikace = MySQL `medevio` tabulky `vzp_registrace_raw` + `vzp_registrace_lekari` +(plní je skripty z `Insurance/KdoJeLekar/`). + +``` +python seed_tracking.py # výchozí snímek k 2025-01-01 +python seed_tracking.py 2026-05-02 # aplikuje další snímek (appendne změny do historie) +``` + +Funkce `apply_snapshot(coll, mysql, k_datu)`: +- nový pacient → vloží dokument s historií `["výchozí snímek"]` +- existující pacient → při změně `kategorie` nebo `praktik_icp` appendne položku do `historie[]` + a aktualizuje `aktualni`; jinak jen `updated_at` + +→ tím se **postupně trackují změny stavu** mezi jednotlivými běhy. + +### Doplnění jmen (BEZ_ZAZNAMU_VZP) + +50 pacientů bez žádného VZP záznamu nemá jméno v MySQL `vzp_registrace_lekari`. +Jména + pojišťovnu jim doplňujeme z Medicus Firebird (tabulka `kar`) — uloženo i pole +`medicus_poj`. Pozn.: kdo má `medicus_poj=111` (VZP), ale je `BEZ_ZAZNAMU_VZP`, je reálně +podezřelý (zaniklé pojištění/úmrtí); 201/205/207/211 jsou prostě jiné pojišťovny. + +## Reconciliation workflow — statusy + +Zakoupený soubor (příloha smlouvy) = `Inputs/2025-01-01 seznam_pacientu_jmeno_rc.csv` +(OCR ze skenu; `;`-CSV, UTF-8 BOM; sloupce *Příjmení a jméno; Rodné číslo; Strana; Řádek*). +**1712 RČ.** (Opraven 1 OCR překlep RČ: Slavíková Zuzana `8956534235`→`8956039037`.) + +Každý dokument nese workflow stav: + +| pole | význam | +|---|---| +| `status` (int) | aktuální stav workflow | +| `status_popis` | název stavu | +| `status_datum` | datum platnosti stavu | +| `status_historie[]` | postup stavů (`status, status_popis, status_datum, zapsano`) | +| `ve_smlouve` (bool) | je pacient v zakoupeném souboru 1712? | +| `mimo_vzp_populaci` | true = doplněn ze smlouvy, nebyl ve VZP populaci k 1.1.2025 | + +### Stavy + +| status | popis | datum | skript | +|---|---|---|---| +| **0** | **Zakoupeno** | 31.12.2024 | `01_zakoupeno.py` | + +`01_zakoupeno.py` (idempotentní): nastaví status 0 všem 1712 ze smlouvy. +- 1678 už v Mongo → status 0 +- 34 chybělo (odhlášeni u Buzalkové před předáním) → doplněno z `kar`, `mimo_vzp_populaci=true`, + `aktualni.kategorie="ODHLASEN_PRED_PREDANIM"` + `medicus_zruseni` +- 10 v Mongo mimo smlouvu → `ve_smlouve=false` (status 0 nedostali) + +Kolekce po kroku 0: **1722 dokumentů** (1712 ve smlouvě + 10 mimo). + +### Reconciliation 1712 (k 1.1.2025) + +``` +1712 zakoupeno (status 0) + −34 registrace zrušena před 1.1.2025 (mimo_vzp_populaci) +───── +1678 registrovaní v Medicusu k 1.1.2025 + ├ 1531 OK Buzalková · 50 jiný praktik · 49 bez záznamu · 48 bez praktika +``` + +## Další kroky (workflow) + +- Definovat status 1, 2, … (např. 1 = ověřeno u VZP / registrovaný u Buzalkové). +- Aplikovat snímky z dalších běhů (29.4. a 2.5.2026 v MySQL) → naplní `historie[]`. +- Doplnit ověření **stavu pojištění** (`vzp_stav_pojisteni`). +- Finální reconciliation Excel + MCP nástroj nad kolekcí. diff --git a/Insurance/FinalReconcilliation/report_registrovani_2025-01-01.xlsx b/Insurance/FinalReconcilliation/report_registrovani_2025-01-01.xlsx new file mode 100644 index 0000000..177cc93 Binary files /dev/null and b/Insurance/FinalReconcilliation/report_registrovani_2025-01-01.xlsx differ diff --git a/Insurance/FinalReconcilliation/report_tracking.py b/Insurance/FinalReconcilliation/report_tracking.py new file mode 100644 index 0000000..2b6980f --- /dev/null +++ b/Insurance/FinalReconcilliation/report_tracking.py @@ -0,0 +1,210 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +report_tracking.py +================== +Excel report nad MongoDB `ordinace.registrovani_tracking`. + +Pro každého pacienta zobrazí: + jméno, datum narození, rodné číslo, pojišťovnu, stav a důvod (kdo + od kdy). + +Identifikační údaje (jméno, datum narození, pojišťovna) se berou AUTORITATIVNĚ +z Medicus Firebird tabulky `kar` (přes Knihovny.medicus_db.get_medicus_connection). +Stav a důvod (kategorie, flag, flag_duvod, praktik kdo/od kdy) z Mongo trackingu. + +Výstup: report_registrovani_.xlsx v tomto adresáři. +""" + +import sys +from pathlib import Path +from datetime import date +from collections import defaultdict + +PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent +sys.path.insert(0, str(PROJECT_ROOT)) + +import pymongo +from Knihovny.medicus_db import get_medicus_connection +from openpyxl import Workbook +from openpyxl.styles import Font, PatternFill, Alignment, Border, Side +from openpyxl.utils import get_column_letter + +# ── Konfigurace ──────────────────────────────────────────────────────────────── +MONGO_URI = "mongodb://192.168.1.76:27017" +MONGO_DB = "ordinace" +MONGO_COLL = "registrovani_tracking" + +POJ_NAZVY = { + "111": "VZP", "201": "VoZP", "205": "ČPZP", "207": "OZP", + "209": "ZPŠ", "211": "ZPMV ČR", "213": "RBP", +} + +# Barvy podle kategorie +BLUE_HEADER = "1F497D" +WHITE = "FFFFFF" +BARVA_KAT = { + "OK_BUZALKOVA": "EBF1DE", # zelená + "JINY_PRAKTIK": "FCE4D6", # červená + "BEZ_PRAKTIKA_VZP": "FFF2CC", # žlutá + "BEZ_ZAZNAMU_VZP": "DCE6F1", # modrá +} +STAV_TEXT = { + "OK_BUZALKOVA": "V souboru", + "JINY_PRAKTIK": "NEBYL v souboru", + "BEZ_PRAKTIKA_VZP": "NEBYL v souboru", + "BEZ_ZAZNAMU_VZP": "NEBYL v souboru", +} + + +def chunked(seq, n): + for i in range(0, len(seq), n): + yield seq[i:i + n] + + +def nacti_kar(conn, rcs): + """Vrátí {rc: {prijmeni, jmeno, datnar, poj}} z Medicus kar.""" + out = {} + cur = conn.cursor() + for batch in chunked(rcs, 500): # Firebird IN má limit 1500 prvků + ph = ",".join("?" for _ in batch) + cur.execute( + f"SELECT TRIM(rodcis), TRIM(prijmeni), TRIM(jmeno), datnar, TRIM(poj) " + f"FROM kar WHERE rodcis IN ({ph})", batch) + for rc, prij, jm, datnar, poj in cur.fetchall(): + out[(rc or "").strip()] = { + "prijmeni": prij, "jmeno": jm, + "datnar": datnar, "poj": (poj or "").strip(), + } + return out + + +def main(): + client = pymongo.MongoClient(MONGO_URI, serverSelectionTimeoutMS=3000) + coll = client[MONGO_DB][MONGO_COLL] + + docs = list(coll.find({})) + vychozi = docs[0].get("vychozi_datum", "snimek") if docs else "snimek" + rcs = [d["_id"] for d in docs] + + print(f"Pacientů v trackingu: {len(rcs)}") + print("Načítám kar z Medicusu ...") + conn = get_medicus_connection() + kar = nacti_kar(conn, rcs) + conn.close() + print(f"Dohledáno v kar: {len(kar)}") + + # ── Sestavení řádků ──────────────────────────────────────────────────────── + rows = [] + for d in docs: + rc = d["_id"] + a = d.get("aktualni", {}) + k = kar.get(rc, {}) + + prijmeni = k.get("prijmeni") or d.get("prijmeni") or "" + jmeno = k.get("jmeno") or d.get("jmeno") or "" + datnar = k.get("datnar") + poj_kod = k.get("poj") or (d.get("pojistovna") or {}).get("kod") or "" + kat = a.get("kategorie", "") + + rows.append({ + "prijmeni": prijmeni, + "jmeno": jmeno, + "datnar": datnar.strftime("%d.%m.%Y") if datnar else "", + "rc": rc, + "poj": f"{poj_kod} {POJ_NAZVY.get(poj_kod, '')}".strip(), + "stav": STAV_TEXT.get(kat, kat), + "kategorie": a.get("kategorie_popis", ""), + "duvod": a.get("flag_duvod", ""), + "kat_kod": kat, + }) + + # Řazení: nejdřív flagnutí (mimo soubor), pak podle příjmení + rows.sort(key=lambda r: (r["kat_kod"] == "OK_BUZALKOVA", r["prijmeni"], r["jmeno"])) + + # ── Excel ────────────────────────────────────────────────────────────────── + wb = Workbook() + + # List 1: Přehled + ws_p = wb.active + ws_p.title = "Přehled" + ws_p.column_dimensions["A"].width = 34 + ws_p.column_dimensions["B"].width = 14 + ws_p.merge_cells("A1:B1") + t = ws_p["A1"] + t.value = f"Registrovaní pacienti k {vychozi} — ověření praktika u VZP" + t.font = Font(name="Arial", bold=True, size=13, color=WHITE) + t.fill = PatternFill("solid", fgColor=BLUE_HEADER) + t.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) + ws_p.row_dimensions[1].height = 34 + ws_p["A2"] = f"Vygenerováno: {date.today().strftime('%d.%m.%Y')}" + ws_p["A2"].font = Font(name="Arial", italic=True, size=9, color="595959") + + counts = defaultdict(int) + for r in rows: + counts[r["kat_kod"]] += 1 + + ws_p.cell(row=4, column=1, value="Kategorie / stav").font = Font(bold=True) + ws_p.cell(row=4, column=2, value="Počet").font = Font(bold=True) + poradi = ["OK_BUZALKOVA", "JINY_PRAKTIK", "BEZ_PRAKTIKA_VZP", "BEZ_ZAZNAMU_VZP"] + KAT_POPIS = { + "OK_BUZALKOVA": "V souboru (praktik Buzalková)", + "JINY_PRAKTIK": "Mimo soubor — jiný praktik", + "BEZ_PRAKTIKA_VZP": "Mimo soubor — bez praktika u VZP", + "BEZ_ZAZNAMU_VZP": "Mimo soubor — bez záznamu u VZP", + } + for i, kat in enumerate(poradi): + r = 5 + i + c1 = ws_p.cell(row=r, column=1, value=KAT_POPIS[kat]) + c2 = ws_p.cell(row=r, column=2, value=counts[kat]) + fill = PatternFill("solid", fgColor=BARVA_KAT[kat]) + c1.fill = fill; c2.fill = fill + c1.font = Font(name="Arial", size=10) + ws_p.cell(row=9, column=1, value="CELKEM").font = Font(bold=True) + ws_p.cell(row=9, column=2, value=len(rows)).font = Font(bold=True) + mimo = len(rows) - counts["OK_BUZALKOVA"] + ws_p.cell(row=10, column=1, value="z toho NEBYL v zakoupeném souboru").font = Font(bold=True, color="C00000") + ws_p.cell(row=10, column=2, value=mimo).font = Font(bold=True, color="C00000") + + # List 2: Pacienti + ws = wb.create_sheet("Pacienti") + COLS = [ + ("Příjmení", 20), ("Jméno", 14), ("Datum narození", 14), + ("Rodné číslo", 14), ("Pojišťovna", 14), ("Stav", 16), + ("Kategorie", 30), ("Důvod (kdo / od kdy)", 52), + ] + for ci, (h, w) in enumerate(COLS, 1): + c = ws.cell(row=1, column=ci, value=h) + c.font = Font(name="Arial", bold=True, color=WHITE, size=10) + c.fill = PatternFill("solid", fgColor=BLUE_HEADER) + c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) + ws.column_dimensions[get_column_letter(ci)].width = w + ws.row_dimensions[1].height = 30 + ws.freeze_panes = "A2" + + thin = Side(style="thin", color="D9D9D9") + border = Border(left=thin, right=thin, top=thin, bottom=thin) + + for ri, r in enumerate(rows, 2): + bg = BARVA_KAT.get(r["kat_kod"], "FFFFFF") + data = [r["prijmeni"], r["jmeno"], r["datnar"], r["rc"], r["poj"], + r["stav"], r["kategorie"], r["duvod"]] + for ci, val in enumerate(data, 1): + c = ws.cell(row=ri, column=ci, value=val) + c.font = Font(name="Arial", size=9) + c.fill = PatternFill("solid", fgColor=bg) + c.border = border + c.alignment = Alignment(vertical="center", wrap_text=(ci == 8)) + if ci == 6 and r["kat_kod"] != "OK_BUZALKOVA": + c.font = Font(name="Arial", size=9, bold=True, color="C00000") + + ws.auto_filter.ref = f"A1:{get_column_letter(len(COLS))}{len(rows) + 1}" + + out = Path(__file__).resolve().parent / f"report_registrovani_{vychozi}.xlsx" + wb.save(out) + print(f"\nUloženo: {out}") + print(f"Řádků: {len(rows)} | v souboru: {counts['OK_BUZALKOVA']} | mimo: {mimo}") + client.close() + + +if __name__ == "__main__": + main() diff --git a/Insurance/FinalReconcilliation/seed_tracking.py b/Insurance/FinalReconcilliation/seed_tracking.py new file mode 100644 index 0000000..87a67c6 --- /dev/null +++ b/Insurance/FinalReconcilliation/seed_tracking.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +seed_tracking.py +================ +Naplní MongoDB databázi `ordinace`, kolekci `registrovani_tracking`, výchozím +snímkem registrovaných pacientů a jejich OVĚŘENÝM stavem u VZP. + +Logika "v zakoupeném souboru pacientů": + - "Registrovaný v Medicusu" je jen stav v software. + - Skutečnost ověřujeme u pojišťovny: kdo je k danému dni registrující praktik + (odbornost 001) daného pacienta. + * praktik = Buzalková (IČP 09305001) -> v pořádku, v zakoupeném souboru + * praktik = někdo jiný / žádný -> NEBYL V ZAKOUPENÉM SOUBORU PACIENTŮ + +Kategorie (plné podkategorie): + OK_BUZALKOVA praktik 001 je Buzalková (IČP 09305001) + JINY_PRAKTIK praktik 001 je jiné ZZZ + BEZ_PRAKTIKA_VZP pacient má u VZP záznam (jiná odbornost), ale praktika 001 ne + BEZ_ZAZNAMU_VZP VZP nevrátila žádný záznam (typicky jiná pojišťovna / neplatné RČ) + +Schéma dokumentu (1 dokument na pacienta, _id = rodné číslo): + { + "_id": "8202...", "rc": "...", "prijmeni": "...", "jmeno": "...", + "pojistovna": {"kod": "111", "zkratka": "VZP"}, + "vychozi_datum": "2025-01-01", + "aktualni": { ...snímek... }, + "historie": [ { ...snímek..., "zmena": "výchozí snímek" }, ... ], + "created_at": ..., "updated_at": ... + } + +Snímek (aktualni i položka historie): + { "k_datu", "kategorie", "kategorie_popis", "v_zakoupenem_souboru" (bool), + "flag", "praktik_nazev", "praktik_icz", "praktik_icp", + "datum_zahajeni", "datum_ukonceni" } + +Spuštění: + python seed_tracking.py # seed k 2025-01-01 + python seed_tracking.py 2026-05-02 # aplikuje další snímek (appendne změny do historie) +""" + +import sys +from pathlib import Path +from datetime import datetime, date, timezone + +PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent +sys.path.insert(0, str(PROJECT_ROOT)) + +import pymongo +from Knihovny.mysql_db import connect_mysql + +# ── KONFIGURACE ─────────────────────────────────────────────────────────────── +MONGO_URI = "mongodb://192.168.1.76:27017" +MONGO_DB = "ordinace" +MONGO_COLL = "registrovani_tracking" +ICP_BUZALKOVA = "09305001" + +KATEGORIE_POPIS = { + "OK_BUZALKOVA": "OK – praktik je Buzalková (IČP 09305001)", + "JINY_PRAKTIK": "Registrován u jiného praktika", + "BEZ_PRAKTIKA_VZP": "U VZP bez praktika (odb. 001)", + "BEZ_ZAZNAMU_VZP": "VZP nevrátila žádný záznam (jiná pojišťovna / neplatné RČ)", +} +FLAG_MIMO_SOUBOR = "NEBYL V ZAKOUPENÉM SOUBORU PACIENTŮ" + + +def klasifikuj(praktik_001: dict | None, ma_nejaky_zaznam: bool) -> dict: + """Vrátí snímek stavu (bez k_datu) na základě 001 záznamu z VZP.""" + if praktik_001 and praktik_001.get("ICP") == ICP_BUZALKOVA: + kat = "OK_BUZALKOVA" + elif praktik_001: + kat = "JINY_PRAKTIK" + elif ma_nejaky_zaznam: + kat = "BEZ_PRAKTIKA_VZP" + else: + kat = "BEZ_ZAZNAMU_VZP" + + v_souboru = (kat == "OK_BUZALKOVA") + nazev = (praktik_001 or {}).get("nazev_zzz") + icz = (praktik_001 or {}).get("ICZ") + od = (praktik_001 or {}).get("datum_zahajeni") + + # Čitelný důvod, proč pacient NENÍ v zakoupeném souboru (kdo + od kdy) + if kat == "JINY_PRAKTIK": + flag_duvod = f"jiný praktik: {nazev} (IČZ {icz}) od {od}" + elif kat == "BEZ_PRAKTIKA_VZP": + flag_duvod = "u VZP bez registrujícího praktika (odb. 001)" + elif kat == "BEZ_ZAZNAMU_VZP": + flag_duvod = "VZP nevrátila žádný záznam (jiná pojišťovna / neplatné RČ / zaniklé pojištění)" + else: + flag_duvod = "" + + return { + "kategorie": kat, + "kategorie_popis": KATEGORIE_POPIS[kat], + "v_zakoupenem_souboru": v_souboru, + "flag": "" if v_souboru else FLAG_MIMO_SOUBOR, + "flag_duvod": flag_duvod, + # "kdo" a "od kdy" registrujícího praktika dle VZP + "praktik_nazev": nazev, + "praktik_icz": icz, + "praktik_icp": (praktik_001 or {}).get("ICP"), + "praktik_od": od, + "datum_zahajeni": od, + "datum_ukonceni": (praktik_001 or {}).get("datum_ukonceni"), + } + + +def nacti_snimek_z_mysql(mysql, k_datu: str) -> dict: + """ + Vrátí {rc: {prijmeni, jmeno, pojistovna{}, praktik_001 | None, ma_zaznam}} + pro populaci registrovaných dotázaných k danému datu. + """ + cur = mysql.cursor() + + # Populace = všechna dotázaná RČ (raw) k tomuto datu + cur.execute("SELECT rc FROM vzp_registrace_raw WHERE k_datu = %s", (k_datu,)) + populace = [r[0] for r in cur.fetchall()] + + # Parsované záznamy lékařů k tomuto datu + cur.execute(""" + SELECT rc, prijmeni, jmeno, kod_odbornosti, ICP, ICZ, nazev_zzz, + poj_kod, poj_zkratka, datum_zahajeni, datum_ukonceni + FROM vzp_registrace_lekari + WHERE k_datu = %s + """, (k_datu,)) + + data: dict[str, dict] = {rc: {"prijmeni": None, "jmeno": None, + "pojistovna": {"kod": None, "zkratka": None}, + "praktik_001": None, "ma_zaznam": False} + for rc in populace} + + for (rc, prijmeni, jmeno, odb, icp, icz, nazev_zzz, + poj_kod, poj_zkr, dat_zah, dat_uk) in cur.fetchall(): + d = data.setdefault(rc, {"prijmeni": None, "jmeno": None, + "pojistovna": {"kod": None, "zkratka": None}, + "praktik_001": None, "ma_zaznam": False}) + d["ma_zaznam"] = True + if prijmeni and not d["prijmeni"]: + d["prijmeni"] = prijmeni + if jmeno and not d["jmeno"]: + d["jmeno"] = jmeno + # Pojišťovnu vezmi z jakéhokoli záznamu (preferuj 001 níže) + if poj_kod and not d["pojistovna"]["kod"]: + d["pojistovna"] = {"kod": poj_kod, "zkratka": poj_zkr} + if odb == "001": + d["praktik_001"] = { + "ICP": icp, "ICZ": icz, "nazev_zzz": nazev_zzz, + "poj_kod": poj_kod, "poj_zkratka": poj_zkr, + "datum_zahajeni": str(dat_zah) if dat_zah else None, + "datum_ukonceni": str(dat_uk) if dat_uk else None, + } + # Pojišťovna z 001 má přednost + if poj_kod: + d["pojistovna"] = {"kod": poj_kod, "zkratka": poj_zkr} + + return data + + +def apply_snapshot(coll, mysql, k_datu: str) -> dict: + """ + Klasifikuje populaci k danému datu a upsertne do Mongo. + Při změně kategorie/praktika oproti `aktualni` appendne do `historie`. + Vrátí statistiku. + """ + data = nacti_snimek_z_mysql(mysql, k_datu) + now = datetime.now(timezone.utc) + stats = {"novych": 0, "zmen": 0, "beze_zmeny": 0, "kategorie": {}} + + for rc, d in data.items(): + snimek = klasifikuj(d["praktik_001"], d["ma_zaznam"]) + snimek_s_datem = {"k_datu": k_datu, **snimek} + stats["kategorie"][snimek["kategorie"]] = stats["kategorie"].get(snimek["kategorie"], 0) + 1 + + existing = coll.find_one({"_id": rc}) + if existing is None: + doc = { + "_id": rc, "rc": rc, + "prijmeni": d["prijmeni"], "jmeno": d["jmeno"], + "pojistovna": d["pojistovna"], + "vychozi_datum": k_datu, + "aktualni": snimek_s_datem, + "historie": [{**snimek_s_datem, "zmena": "výchozí snímek"}], + "created_at": now, "updated_at": now, + } + coll.insert_one(doc) + stats["novych"] += 1 + else: + akt = existing.get("aktualni", {}) + zmena = (akt.get("kategorie") != snimek["kategorie"] + or akt.get("praktik_icp") != snimek["praktik_icp"]) + update = {"aktualni": snimek_s_datem, "updated_at": now} + if d["prijmeni"]: + update["prijmeni"] = d["prijmeni"] + if d["jmeno"]: + update["jmeno"] = d["jmeno"] + ops = {"$set": update} + if zmena: + popis = (f"{akt.get('kategorie')} → {snimek['kategorie']}") + ops["$push"] = {"historie": {**snimek_s_datem, "zmena": popis}} + stats["zmen"] += 1 + else: + stats["beze_zmeny"] += 1 + coll.update_one({"_id": rc}, ops) + + return stats + + +def main(): + k_datu = sys.argv[1] if len(sys.argv) > 1 else "2025-01-01" + + mysql = connect_mysql() + client = pymongo.MongoClient(MONGO_URI, serverSelectionTimeoutMS=3000) + client.admin.command("ping") + coll = client[MONGO_DB][MONGO_COLL] + + # Indexy pro běžné dotazy + coll.create_index("aktualni.kategorie") + coll.create_index("aktualni.v_zakoupenem_souboru") + coll.create_index("prijmeni") + + print(f"Aplikuji snímek k {k_datu} do {MONGO_DB}.{MONGO_COLL} ...") + stats = apply_snapshot(coll, mysql, k_datu) + + print(f"\nNových pacientů : {stats['novych']}") + print(f"Změn stavu : {stats['zmen']}") + print(f"Beze změny : {stats['beze_zmeny']}") + print("\nRozpad podle kategorií:") + for kat, n in sorted(stats["kategorie"].items(), key=lambda x: -x[1]): + print(f" {kat:18s} {n:5d} {KATEGORIE_POPIS[kat]}") + + celkem = sum(stats["kategorie"].values()) + mimo = celkem - stats["kategorie"].get("OK_BUZALKOVA", 0) + print(f"\nCelkem v populaci: {celkem}") + print(f" v zakoupeném souboru (Buzalková): {stats['kategorie'].get('OK_BUZALKOVA', 0)}") + print(f" NEBYL v zakoupeném souboru : {mimo}") + + mysql.close() + client.close() + + +if __name__ == "__main__": + main() diff --git a/mcp_insurance.py b/mcp_insurance.py new file mode 100644 index 0000000..95b1428 --- /dev/null +++ b/mcp_insurance.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +MCP server pro pojišťovny (insurance) — používá oficiální MCP SDK (FastMCP) +Spustit: python mcp_insurance.py + +Dotazy na VZP B2B portál pomocí klientského certifikátu (mTLS). +Vychází z knihovny Knihovny/vzpb2b_client.py a skriptů v Insurance/. + +Nástroje: + - registrovani_lekari(rodne_cislo, k_datu) — kdo jsou registrující lékaři + pacienta (praktik 001, gynekolog 002, stomatolog 014, ...) ke dni k_datu. + - stav_pojisteni(rodne_cislo, k_datu, prijmeni) — jestli je pacient ke dni + k_datu platně pojištěný a u které pojišťovny. +""" + +import re +import sys +import traceback +from pathlib import Path +from datetime import date +from typing import Optional + +from mcp.server.fastmcp import FastMCP + +PROJECT_ROOT = Path(__file__).resolve().parent +sys.path.insert(0, str(PROJECT_ROOT)) + +from Knihovny.vzpb2b_client import VZPB2BClient + + +# Všechny logy MUSÍ jít na stderr — stdout je rezervován pro JSON-RPC +def log(msg: str): + print(msg, file=sys.stderr, flush=True) + + +# ── Certifikát ────────────────────────────────────────────────────────────── +PFX_PATH = PROJECT_ROOT / "Insurance" / "Certificates" / "picka.pfx" +PFX_PASS = "Vlado7309208104+" + +if not PFX_PATH.exists(): + log(f"Chyba: certifikát nenalezen: {PFX_PATH}") + sys.exit(1) + +try: + vzp = VZPB2BClient("prod", str(PFX_PATH), PFX_PASS) + log("VZP B2B klient inicializován (prod)") +except Exception as e: + log(f"Chyba inicializace VZP B2B klienta: {e}") + sys.exit(1) + + +def _norm_rc(rodne_cislo: str) -> str: + """Rodné číslo bez lomítka a nečíselných znaků.""" + return re.sub(r"\D", "", rodne_cislo or "") + + +# MCP server +mcp = FastMCP("insurance") + + +@mcp.tool() +def registrovani_lekari(rodne_cislo: str, k_datu: Optional[str] = None) -> dict: + """Zjisti registrující lékaře pacienta u VZP ke dni k_datu. + + Dotáže se VZP B2B služby RegistracePojistencePZSB2B a vrátí, kdo je + registrující praktický lékař (odbornost 001), gynekolog (002), + stomatolog (014) a případně další, pokud je VZP eviduje. + + Args: + rodne_cislo: Rodné číslo pacienta (lomítko nevadí). + k_datu: Datum ve formátu YYYY-MM-DD. Pokud chybí, použije se dnešek. + + Returns: + dict s rodným číslem, datem dotazu, počtem nalezených registrací + a seznamem lékařů (každý: kód a název odbornosti, IČZ, IČP, jméno + lékaře, název ZZZ, pojišťovna, data registrace/zahájení/ukončení). + """ + try: + rc = _norm_rc(rodne_cislo) + if not rc: + return {"error": "Neplatné rodné číslo."} + + if k_datu: + k_datu = k_datu.strip() + else: + k_datu = date.today().isoformat() + + xml = vzp.registrace_lekare(rc=rc, k_datu=k_datu, odbornosti=None) + zaznamy = vzp.parse_registrace_lekare(xml) + + return { + "rodne_cislo": rc, + "k_datu": k_datu, + "pocet": len(zaznamy), + "lekari": zaznamy, + } + except Exception: + log(f"registrovani_lekari chyba: {traceback.format_exc()}") + raise + + +# Význam pole "stav" v odpovědi stavPojisteniB2B +_STAV_POPIS = { + "1": "pojištěn u uvedené pojišťovny", + "4": "cizinec (smluvní/EU pojištění) — považováno za pojištěného", +} +_STAV_POJISTEN = ("1", "4") # tyto kódy znamenají platné pojištění + + +@mcp.tool() +def stav_pojisteni(rodne_cislo: str, k_datu: Optional[str] = None, + prijmeni: Optional[str] = None) -> dict: + """Zjisti, jestli je pacient ke dni k_datu platně pojištěný a u které pojišťovny. + + Dotáže se VZP B2B služby stavPojisteniB2B. VZP centrálně eviduje pojištěnce + všech pojišťoven, takže odpověď vrátí i pojišťovnu jinou než VZP. + + Args: + rodne_cislo: Rodné číslo pacienta (lomítko nevadí). + k_datu: Datum ve formátu YYYY-MM-DD. Pokud chybí, použije se dnešek. + prijmeni: Příjmení (volitelné) — VZP umožňuje křížovou kontrolu se jménem. + + Returns: + dict s rodným číslem, datem dotazu, příznakem pojisteny (True/False), + kódem a popisem stavu, kódem zpracování požadavku a údaji o pojišťovně + (kód, název, kód pojistného vztahu). + """ + try: + rc = _norm_rc(rodne_cislo) + if not rc: + return {"error": "Neplatné rodné číslo."} + + k_datu = k_datu.strip() if k_datu else date.today().isoformat() + prijmeni = prijmeni.strip() if prijmeni else None + + xml = vzp.stav_pojisteni(rc=rc, k_datu=k_datu, prijmeni=prijmeni) + parsed = vzp.parse_stav_pojisteni(xml) + + stav = parsed.get("stav") + pojisteny = stav in _STAV_POJISTEN + + return { + "rodne_cislo": rc, + "k_datu": k_datu, + "pojisteny": pojisteny, + "stav": stav, + "stav_popis": _STAV_POPIS.get(stav, "nepojištěn u této pojišťovny / nenalezen"), + "stav_vyrizeni": parsed.get("stavVyrizeni"), + "kod_pojistovny": parsed.get("kodPojistovny"), + "nazev_pojistovny": parsed.get("nazevPojistovny"), + "pojisteni_kod": parsed.get("pojisteniKod"), + } + except Exception: + log(f"stav_pojisteni chyba: {traceback.format_exc()}") + raise + + +if __name__ == "__main__": + log("MCP Insurance server spuštěn (FastMCP)") + mcp.run()