Tételes finanszíroz rozási adatok eseménysorra fűzésének f informatikai kérdk rdései Dr. Vassányi István, Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék Egészségügyi Informatikai Kutató-fejlesztő Központ
Munkamódszer 1. Hipotézis, vizsgálati problémak makör r definiálása 2. Adatgyűjt jtés 3. Adattisztítás, s, adatmodellezés,, transzformáci ció (informatika) 4. Elemzés (szakterületi feladat) 5. Következtések, iteráci ciók
Hipotézisek (péld ldául) A betegek aránytalanul magas száma kerül l noninvazív vizsgálat nélkn lkül l invazív v vizsgálatra. Kicsi azon betegek száma, akik kezelését t ismételt noninvazív v vizsgálatok alapján n vezetik. A tipikus betegutak összefüggésben vannak a beteg lakóhely helyével és s az ellátó intézm zmény típust pusával
Az adatok forrása: az ESKI TEA Járóbeteg-szakellátás Fekvőbeteg beteg-ellátás Haláloz lozási adatok Adatszerkezet: Páciens (pszeudo-taj) Páciens esetei Eset diagnózisai (BNO) Eset beavatkozásai (OENO) http://hawk.eski.hu/tea/
A vizsgált populáci ció és s eseményk nykör Kiindulás: Időtartam: 2004-2008 2008 vége v (5 év) Szívkoszor vkoszorúér-betegségben gben (ISzB) érintett páciensek p (diagnózis/beavatkoz zis/beavatkozás s alapján) 639 139 páciens p 2.006.290 eseménye Adattisztítás és -modellezés: BNO/OENO kódok k alapján n 12 alap-esem esemény definiálása: az esemény lehet vizsgálat, diagnózis vagy halál (katéter, ter, revasc/pci, revasc/cabg, nem revasc,, stressz echo, terh. EKG, spect, fekvő noninv., angina, infarktus, stabil iszb, halál) l) Adattisztítás, s, hiányos rekordok törlt rlése Események összevonása sa az OENO kódolk dolási gyakorlat alapján: marad 1.301.135 valódi esemény Eseménysorok generálása
Eseménysorok ALAPGONDOLAT Esemény ny-string: kódolt k események és s követk vetési idők Betegút t 6 eseménnyel -> > esemény ny-string 1 rekord/beteg: a statisztikai elemzés s alapja Az eseménysor szövegesen feldolgozható pseudo-taj nem szul_dat halal_dat regio esemsor esemsor_idovel 208206044 1 19320627 20061011 Budapest aek 0539a0006e0013k Betegkör r szűkítése se: Index események definiálása katéter ter...)...) sa (terh. EKG, spect, terh. echo, Minimum 180 nap passzivitás s után Marad: 513.8065 páciens,, 709.545 esemény
De facto ellátó centrumok ALAPGONDOLAT Adott helyről l hová küldik leginkább az egyes típusokat? t Tipikus primer/szekunder/tercier ellátási események A települések lakónk nként nt megszavazzák k a domináns ns ellátót Kevés s adat esetén n a közúton k időben mért m távolst volság g döntd (ehhez kell az ellátás s fizikai helyszíne) Földrajzi vonzásk skörzetek alakulnak ki: 136 primer, 36 szekunder és s 17 tercier centrum
Informatika: Térbeli T elemzések sek A TEA irány nyítószám-alapú Forrás: NUTS nyilvántart ntartás s (ir. szám, településnevek) A lakosságsz gszám-nyilvántartás s (KSH) ellenben település s alapú Ir.szám település: sok-sok kapcsolat Egy irány nyítószám-település s párosnak p pedig több t folt (körzet) felel meg a térkt rképen A NUTS évente változikv Mindebből l mi következik: k kézimunkak Mintaprobléma: a lakosságsz gszámok összevonása sa közös k s irsz. alá (semmi köze k az ISzB-hez)
tehát: t: select ZIP as irszam, case when NUTS5NAME not like 'Budapest%' then NUTS5NAME else 'Budapest ' + dbo.romai(substring(zip, 2,2)) + '. kerület' end as tnev from Iranyitoszamok where Populated_PLACE not like 'Korányi%' --érdekes módon m a Korányi szanatóriumnak van egy saját t ir.száma --de ha ezt kihagyjuk, nem lesz baj mivel ott nem lakik senki select * from telepules where tnev like 'budaörs' = update telep.cemtrumhely set tnev='budaörs' where tnev='budaőrs' update telep.cemtrumhely set tnev='budapest XIII. kerület' where tnev='budapest XIII. kerület' update telep.cemtrumhely set tnev='budapest VIII. kerület' where tnev='budapest VIII kerület' select * from telepules where tnev like 'farkasgyep%' update telep.cemtrumhely set tnev='farkasgyepű where tnev='farkasgyepü' select * from telepules where tnev like 'kerepes%' update telep.cemtrumhely set tnev='kerepes' where tnev='kerepestarcsa' select * from telepules where tnev like 'Mátra%' select distinct t.telepules_id, t.tnev update telep.cemtrumhely set tnev='gyöngy ngyös' where tnev='mátrh trháza' from select * from telepules where tnev like 'csitár%' (select irszam from taj_esemsor_2011jul) as a update telep.cemtrumhely set tnev='csitár' where tnev='nógr grádgárdony' inner join irszam_telepules it on a.irszam=it.irszam inner join telepules t on it.telepules_id=t.telepules_id --2639 települést használunk ténylegesen t a 3174-ből select distinct irszam from taj_esemsor_2011jul where irszam not in (select irszam from irszam_telepules)-- --139 irszám m nincs meg and irszam in (select zip from telep.sites) --a a 139-ből l 9 az új j táblt blákban megvan select count(*) from taj_esemsor_2011jul where irszam in (7849,7461,8233,7850,4000,7451,6903,1529,2509) --636 beteg --ezekr ezekről l lemondunk, ha megtartjuk a jelenlegi település s id-ket update telep.sites set TNev='Budapest ' + dbo.romai(substring(zip, 2,2)) + '. kerület' where tnev ='Budapest' and ZIP not in (1528, 1529) --ezek kórhk rházak, nem is kerületek
Ellátó törzsek Alapprobléma: hiányzik a közhiteles k nyilvántart ntartás 3 forrás: centrum_nevek_innen_onnan (székhelyek, összevonások sok csak kézzel k mennek) Ellátónév-id idősorok tisztítása sa pl. select distinct h.centrum_intkod, ts.intnev into #intnev_egysegbol from #hianyzo_int_kodok h inner join index_intkod (TORZS_SZERVEZETI_EGYSEG ts inner join # 010110110 (select intkod, max(erv_kezd) as utolso_adat_ideje from TORZS_SZERVEZETI_EGYSEG group by INTKOD) 010110120 as a on a.intkod=ts.intkod and a.utolso_adat_ideje=ts.erv_kezd 010110125 010110140 ) on h.centrum_intkod =ts.intkod order by INTNEV 010111901 --52 rekord van, tehát t még m g mindig van egy ismétl tlődés 010113040 010114050 select * from TORZS_SZERVEZETI_EGYSEG where INTKOD='3370' order by ERV_KEZD desc 010611901 011510140 --ejnye: azonos dátummal d két k t különbk nböző név v a TORZS_SZERVEZETI_EGYSEG táblt blábanban 011511701 --nincs más m s hátra: h átírni a törzsett 011610107 011610600 update TORZS_SZERVEZETI_EGYSEG set intnev='szob, Szakorvosi Rendel elő' ' where INTKOD='3370 011811001 014010405 015110303 Pl. 27 ellátó minden tisztítás s után n sem létezik l 015210200 015511003 015611913 019510103 309 beteget vesztünk 030110701 0306M9102 070110111 130110102 a a TAJ-sz számoknál l miért tud működni? m 130413301 18011A400 200111801
Technológia MS SQL server 2008 a központi k gépeng 11 GB mindenestül Szerver: 8 magos i7 @ 2.8 GHz, 6GB mem., windows 7 TSQL: Az eseménysorok és s az összes magyarázó változó előkész szítése, se, flat táblák k előkész szítésese Több ezer sor script, a leghosszabb sql SELECT 320 soros Excel / SPSS: statisztikai elemzés s (távoli géprg pről l stunnel) Postgres 9.0 (EnterpriseDB) + Quantum GIS: térkt rképi vizualizáci ció Access: SQL server Postgres híd h
Összegzés A bemutatott módszertan m alkalmas az egészs szségügyi gyi ellátó rendszerben kialakult folyamatok mintáinak inak tanulmányoz nyozására Anélk lkül, l, hogy ismernénk nk az egyes vizsgálatok eredmény nyét Stratégiai elemzésekre, tervezéshez felhasználhat lható. Köszönöm m figyelmüket! Dr. Vassányi István vassanyi@almos.vein.hu almos.vein.hu http://eikfk.uni eikfk.uni-pannon.hu/