Datová šablona pro cestu pacienta
Datová šablona pro cestu pacienta
- Doporučené klinické atributy
- Základní milníky procesu
- Pokyny k extrakci dat z MEDITECH
Atributy cesty pacienta
| Název | Popis | ||
|---|---|---|---|
| Časové razítko události EventTimestamp | Konkrétní datum a čas, kdy činnost proběhla. | ||
| Popis Tento údaj zaznamenává přesný okamžik, kdy činnost proběhla. Slouží k seřazení událostí podle času a výpočtu doby mezi jednotlivými kroky procesu. Přesná časová razítka jsou nezbytná pro správnou analýzu čekání, například doby mezi triáží a vyšetřením nebo doby zpracování diagnostických výsledků. Proč je to důležité Je nutný k seřazení událostí a výpočtu doby trvání procesu a průchodnosti. Kde data získat Sloupce s datem a časem transakce ve zdrojových tabulkách. Příklady 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Název činnosti ActivityName | Konkrétní klinický nebo administrativní úkon. | ||
| Popis Tento údaj označuje název události nebo úkolu v průběhu péče o pacienta. Zachycuje jednotlivé kroky, například 'Pacient zaregistrován', 'Lék podán' nebo 'Vystaven příkaz k propuštění'. Správné určení činností je nezbytné pro zmapování průběhu procesu. Hodnoty se často odvozují z kódů transakcí, stavů objednávek nebo zaznamenaných zákroků v elektronické zdravotní dokumentaci. Proč je to důležité Určuje jednotlivé kroky procesu a je nezbytný pro zobrazení mapy procesu. Kde data získat Odvozuje se z různých transakčních protokolů (objednávky OE, ošetřovatelské zákroky NUR, události ADM). Příklady Pacient zaregistrovánTriáž dokončenaLék podánDiagnostický výsledek ověřen | |||
| Patient Episode PatientEpisode | Jedinečný identifikátor konkrétního období péče o pacienta nebo jeho návštěvy. | ||
| Popis Patient Episode slouží jako hlavní identifikátor případu pro analýzu procesu. Sdružuje všechny klinické, administrativní a finanční události související s jednou hospitalizací nebo ambulantní návštěvou do jednoho souvislého průběhu péče. V systémech MEDITECH tento údaj často odpovídá číslu účtu nebo ID návštěvy. Je nezbytný pro rekonstrukci průběhu péče od registrace po propuštění, výpočet délky hospitalizace a analýzu klinických postupů. Proč je to důležité Jde o povinný identifikátor případu, který propojuje jednotlivé události do jedné instance procesu. Kde data získat Modul MEDITECH Admissions nebo Registration, obvykle pole Account Number. Příklady V100938475AC29384755E993847211O229384711 | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko poslední extrakce nebo aktualizace dat. | ||
| Popis Udává, kdy byl záznam naposledy zpracován nebo načten do nástroje pro process mining. Pomáhá kontrolovat aktuálnost dat a ověřit, že analýza vychází z nejnovějšího stavu systému. Na rozdíl od časového razítka události zachycuje čas technického zpracování dat, nikoli čas klinické události. Proč je to důležité Je zásadní pro správu dat a ověření, že analýza vychází z aktuálních údajů. Kde data získat Systémové datum při spuštění ETL. Příklady 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Zdrojový systém SourceSystem | Identifikátor systému, ze kterého data pocházejí. | ||
| Popis Určuje instanci MEDITECH nebo konkrétní modul, ze kterého byla data o událostech extrahována. V prostředí s více nemocnicemi pomáhá rozlišit data z jednotlivých zařízení nebo verzí systému. Při extrakci z jediného systému je tato hodnota neměnná. Při slučování dat z více systémů je ale zásadní pro vytvoření jednotného pohledu na celou síť nemocnic. Proč je to důležité Zajišťuje původ dat a jejich dohledatelnost v prostředí s více systémy. Kde data získat Nastavuje se pevně při extrakci nebo konfiguraci ID systému. Příklady MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Číslo zdravotnické dokumentace MedicalRecordNumber | Jedinečný identifikátor pacienta napříč všemi návštěvami. | ||
| Popis Číslo zdravotnické dokumentace (MRN) jednoznačně identifikuje pacienta v rámci zdravotnického zařízení. Liší se od ID konkrétního případu a umožňuje analytikům propojit více případů téhož pacienta v čase. Tento atribut je nezbytný pro dashboard „Opakované přijetí a kvalita péče“. Umožňuje odhalit pacienty, kteří se do nemocnice vrátí do 30 dnů od propuštění. Proč je to důležité Umožňuje analyzovat více případů téhož pacienta a zobrazit data z pohledu pacienta. Kde data získat Hlavní registr pacientů nebo registrační tabulka. Příklady MRN-100293MRN-55928388291002 | |||
| Hlavní diagnóza PrimaryDiagnosis | Hlavní zdravotní stav určený pro daný případ pacienta. | ||
| Popis Obsahuje kód ICD-10 nebo popis hlavního důvodu návštěvy. Je základem analýzy variant klinických postupů. Když vedoucí pracovníci rozdělí případy podle hlavní diagnózy, mohou porovnat skutečný průběh léčby s doporučeným klinickým postupem pro daný stav. Proč je to důležité Nezbytný pro seskupení případů při analýze klinických postupů. Kde data získat Modul zdravotnické dokumentace nebo kódování diagnóz. Příklady J18.9 - PneumonieI21.9 - Akutní infarkt myokarduS72.0 - Zlomenina stehenní kosti | |||
| Nemocniční oddělení HospitalDepartment | Konkrétní pracoviště nebo oddělení, kde aktivita proběhla. | ||
| Popis Určuje pracoviště odpovědné za aktivitu, například pohotovost, radiologii, jednotku intenzivní péče nebo standardní oddělení. Tento atribut je důležitý pro dashboard „Průchodnost zdrojů na odděleních“. Umožňuje rozdělit ukazatele výkonnosti podle pracoviště a odhalit úzká místa při přesunech pacientů i ve využití zdrojů. Proč je to důležité Důležitý pro analýzu organizace a hledání úzkých míst na jednotlivých pracovištích. Kde data získat Pole Location nebo Department v transakčních tabulkách. Příklady Pohotovostní odděleníRadiologieJednotka intenzivní péčeChirurgické oddělení 3 | |||
| Opětovné přijetí IsReadmission | Příznak, zda k tomuto případu došlo do 30 dnů od předchozího propuštění. | ||
| Popis Logická hodnota true, pokud datum aktuální registrace pacienta spadá do 30 dnů od data propuštění z předchozího případu. Podporuje dashboard „Opakované přijetí a kvalita péče“. Analytici mohou u opakovaně přijatých pacientů dohledat předchozí případ a zjistit nedostatky v plánování propuštění nebo následné péči. Proč je to důležité Důležitý ukazatel kvality, který ovlivňuje úhrady i výsledky péče o pacienty. Kde data získat Vypočítá se porovnáním aktuálního StartTime s předchozím Case EndTime pro stejné MedicalRecordNumber. Příklady truefalse | |||
| Ošetřující zdravotník AttendingProvider | Hlavní lékař nebo jiný zdravotník odpovědný za aktivitu. | ||
| Popis Zaznamenává jméno nebo ID lékaře, zdravotní sestry či technika, který úkon provedl nebo dohlížel na péči. Tento atribut podporuje dashboard „Rychlost tvorby léčebného plánu“, protože umožňuje přiřadit ukazatele rychlosti a efektivity konkrétním pracovníkům nebo rolím. Pomáhá analyzovat využití zdrojů, vyrovnávat pracovní zátěž a určovat potřeby školení zdravotnického personálu. Proč je to důležité Umožňuje analyzovat výkonnost zdrojů a vyrovnávat pracovní zátěž. Kde data získat Pole Provider nebo User v protokolech aktivit. Příklady Dr. SmithRN JonesTech Adams | |||
| Stupeň naléhavosti při triáži TriageAcuityLevel | Hodnocení závažnosti stavu pacienta při triáži. | ||
| Popis Udává naléhavost stavu pacienta, obvykle na stupnici, například 1 až 5, kde 1 znamená kritický stav. Tento atribut je zásadní pro analýzu průchodu pacientů pohotovostním oddělením. Analytici mohou porovnat čekací dobu se závažností stavu a ověřit, zda mají nejvážnější případy odpovídající přednost. Proč je to důležité Zásadní pro analýzu prioritizace pacientů na pohotovosti a dodržování bezpečnostních postupů. Kde data získat Obrazovky pro hodnocení pacientů na pohotovosti nebo při triáži. Příklady 1 - Resuscitace2 - Neodkladný stav3 - Naléhavý stav4 - Méně naléhavý stav | |||
| Typ pacienta PatientType | Kategorie návštěvy pacienta, například hospitalizace, ambulantní péče nebo pohotovost. | ||
| Popis Určuje typ návštěvy nemocnice. Mezi běžné hodnoty patří hospitalizace, ambulantní péče, pohotovost nebo observace. Toto rozdělení je zásadní pro filtrování a porovnávání procesů, protože standard péče i očekávaná délka se podle typu výrazně liší. V dashboardu „Optimalizace plánování propuštění“ pomáhá rozdělit očekávanou délku pobytu podle typu návštěvy. Proč je to důležité Zásadní rozdělení pro porovnání procesů, například hospitalizovaných a ambulantních pacientů. Kde data získat Tabulky přijetí nebo návštěv, například AdmVisits.Status. Příklady HospitalizacePohotovostAmbulantní chirurgieObservace | |||
| Výsledek propuštění DischargeDisposition | Cíl nebo stav pacienta při propuštění. | ||
| Popis Udává, kam pacient po ukončení případu odešel, například domů, do zařízení následné péče, do domácí péče nebo zda zemřel. Jde o důležitý ukazatel výsledku v dashboardu „Optimalizace plánování propuštění“. Analýza pomáhá zjistit, zda prodlevy při zajišťování následné péče prodlužují pobyt v nemocnici. Proč je to důležité Důležitý ukazatel výsledku pro analýzu délky pobytu a rizika opětovného přijetí. Kde data získat Obrazovky pro zaznamenání propuštění nebo registraci. Příklady Propuštěn domůPřeložen do nemocnice akutní péče s krátkodobým pobytemZemřelOdešel proti doporučení lékaře | |||
| Čekací doba na triáž TriageWaitTime | Doba mezi registrací a dokončením triáže. | ||
| Popis Vypočítaná doba mezi událostmi „Registrace pacienta“ a „Dokončení triáže“. Tento údaj vstupuje do KPI „Průměrná doba triáže“. Sledování této doby pomáhá vedoucím pracovníkům pohotovosti upravit směny ve špičce a dodržet bezpečnostní standardy péče. Proč je to důležité Důležitý provozní ukazatel pro pohotovostní oddělení. Kde data získat Vypočítaný rozdíl mezi časovými razítky konkrétních aktivit. Příklady 15 minut1 hodina 20 minut | |||
| Kategorie objednávky OrderCategory | Zařazení klinických objednávek, například laboratorní vyšetření, radiologie nebo konzultace. | ||
| Popis Seskupuje objednávky do širších kategorií, například laboratoř, radiologie, stravování nebo konzultace. Je nezbytný pro dashboard „Doba zpracování diagnostických služeb“. Umožňuje oddělit workflow a analyzovat dobu průchodu u zobrazovacích vyšetření a krevních testů, které často mají různá úzká místa. Proč je to důležité Rozděluje diagnostická a léčebná workflow. Kde data získat Pole kategorií v modulu Order Entry (OE). Příklady LaboratořRadiologieOšetřovatelstvíLékárna | |||
| Název léčiva MedicationName | Název podaného léčiva. | ||
| Popis Zaznamenává konkrétní léčivo u událostí „Podání léčiva“. Je potřeba pro dashboard „Dodržování postupů při podávání léčiv“. Vedení ošetřovatelského personálu může ověřit, zda byla riziková nebo časově citlivá léčiva, například antibiotika při sepsi, podána ve vhodném časovém rozmezí. Proč je to důležité Nezbytný pro analýzu dodržování klinických postupů a bezpečnosti. Kde data získat Moduly Pharmacy (PHA) nebo Bedside Verification (BMV). Příklady ParacetamolVankomycinHeparinInzulin | |||
| Porušení postupu IsAdherenceViolation | Příznak, zda se případ odchýlil od standardního klinického postupu. | ||
| Popis Logický příznak nastavený na true, pokud pořadí aktivit neodpovídá referenčnímu modelu definovanému pro hlavní diagnózu pacienta. Podporuje analýzu variant klinických postupů. Umožňuje rychle filtrovat případy, které neodpovídají standardu, a zjistit, proč nebyl dodržen doporučený postup péče. Proč je to důležité Rychle odhalí odchylky a rozdíly v průběhu procesu. Kde data získat Vypočítává se pomocí algoritmů pro kontrolu shody. Příklady truefalse | |||
| Účtovaná částka ChargeAmount | Finanční hodnota spojená s konkrétní aktivitou nebo službou. | ||
| Popis Představuje náklad nebo částku zaúčtovanou za konkrétní událost, například vyšetření nebo pobyt na pokoji. Jde především o finanční údaj, který ale souvisí s náročností na zdroje. Souhrnné hodnoty pomáhají porozumět finančnímu dopadu různých průběhů procesu, i když se požadovaný pohled zaměřuje především na klinický průběh. Proč je to důležité Doplňuje analýzu procesu o finanční hledisko. Kde data získat Modul Billing nebo BAR (Billing/Accounts Receivable). Příklady 150.001200.5045.00 | |||
| Zdroj přijetí AdmitSource | Odkud pacient přišel, například z domova, překladem nebo na základě doporučení. | ||
| Popis Popisuje, odkud byl pacient přijat, například na doporučení lékaře, z pohotovosti nebo překladem z jiné nemocnice. Poskytuje kontext k tomu, jak pacienti vstupují do systému. Pomáhá porozumět příchozímu toku pacientů a jeho vlivu na analýzu průchodu pohotovostním oddělením i plánování zdrojů. Proč je to důležité Poskytuje kontext k příchozím pacientům a zdrojům poptávky. Kde data získat Registrační údaje o přijetí. Příklady PohotovostDoporučení z ambulancePřeklad ze zařízení následné péče | |||
Aktivity na cestě pacienta
| Aktivita | Popis | ||
|---|---|---|---|
| Diagnostický výsledek ověřen | Označuje, že diagnostické vyšetření (laboratorní nebo radiologické) bylo provedeno a technik nebo radiolog potvrdil výsledky. Tím se uzavírá zpracování diagnostické objednávky. | ||
| Proč je to důležité Koncový bod pro měření ukazatele 'Diagnostic Services Turnaround'. Nezbytný pro analýzu úzkých míst v podpůrných odděleních. Kde data získat Modul MEDITECH LAB nebo ITS (Imaging and Therapeutic Services). Událost se zaznamená při změně stavu výsledku na Verified nebo Signed. Zachycení Zaznamená se při změně pole stavu na Verified Typ události explicit | |||
| Diagnóza zaznamenána | Okamžik, kdy lékař zapíše do záznamu pacienta diagnózu s kódem ICD-10. Tím se často spouštějí konkrétní klinické postupy. | ||
| Proč je to důležité Umožňuje analýzu variant klinických postupů ('Clinical Pathway Variant Analysis') podle kategorií případů. Je důležitá pro seskupování pacientů za účelem porovnání. Kde data získat MEDITECH ABS (Abstracting) nebo Medical Records. Událost se zaznamená při přiřazení diagnostických kódů k účtu. Zachycení Zaznamená se při provedení transakce Diagnosis Enter Typ události explicit | |||
| Lék podán | Zaznamenává skutečné podání léku pacientovi ošetřovatelským personálem. Obvykle se eviduje načtením čárového kódu u lůžka. | ||
| Proč je to důležité Podporuje sledování shody při podávání léků ('Medication Administration Compliance'). Pomáhá odhalit bezpečnostní rizika a přerušení workflow na ošetřovatelských odděleních. Kde data získat MEDITECH PHA (Pharmacy) nebo eMAR (Electronic Medication Administration Record). Pole 'AdminDateTime' v historii podání léků. Zachycení Zaznamená se při provedení transakce Med Admin Typ události explicit | |||
| Objednávka zadána | Zaznamenává požadavek lékaře na službu, lék nebo diagnostické vyšetření. Tato událost spouští navazující klinické činnosti. | ||
| Proč je to důležité Slouží jako výchozí hodnota KPI 'Diagnostic Services Turnaround'. Porovnání s časem provedení odhalí prodlevy při poskytování služby. Kde data získat Modul MEDITECH OE (Order Entry). Údaje se načítají z tabulky 'OeOrders' pomocí pole Order Date/Time. Zachycení Zaznamená se při provedení transakce Order Enter Typ události explicit | |||
| Pacient přemístěn | Označuje fyzický přesun pacienta z jednoho místa (oddělení, pokoje nebo lůžka) na jiné. Sleduje pohyb pacienta nemocnicí. | ||
| Proč je to důležité Důležitý údaj pro analýzu úzkých míst při interních převozech ('Internal Transfer Bottlenecks'). Dlouhá doba převozu může ukazovat na nedostatek zdrojů nebo prodlevy při přepravě pacientů. Kde data získat MEDITECH ADM (Admissions). Údaje se načítají z historie umístění ('Location History') nebo transakčních protokolů 'RoomBed'. Zachycení Zaznamená se při provedení transakce Transfer Patient Typ události explicit | |||
| Pacient propuštěn | Administrativní uzavření návštěvy. Pacient fyzicky opustil nemocnici a lůžko je uvolněno. | ||
| Proč je to důležité Formální konec procesu. Používá se k výpočtu konečné délky hospitalizace a určení 30denního období pro sledování opakovaných hospitalizací. Kde data získat MEDITECH ADM (Admissions). Pole 'DischargeDateTime' v záznamu o návštěvě. Zachycení Zaznamená se při provedení transakce Discharge Patient Typ události explicit | |||
| Pacient zaregistrován | Tato událost označuje administrativní založení záznamu o hospitalizaci nebo návštěvě pacienta v systému. Zachycuje první okamžik vstupu do modulu MEDITECH ADM (Admissions). | ||
| Proč je to důležité Určuje začátek průběhu péče o pacienta a výpočtu doby trvání procesu. Je nezbytná pro výpočet celkové délky hospitalizace. Kde data získat Modul MEDITECH ADM. Zdroj: tabulka 'Admissions', konkrétně pole 'AdmitDateTime' nebo časové razítko vytvoření transakčního záznamu. Zachycení Zaznamená se při provedení transakce New Visit Typ události explicit | |||
| Triáž dokončena | Označuje dokončení vstupního ošetřovatelského vyšetření na urgentním příjmu. Určuje naléhavost stavu a závažnost pacientova zdravotního stavu. | ||
| Proč je to důležité Důležitá pro dashboard analýzy průchodu urgentním příjmem, který sleduje průchodnost a čekací dobu. Kde data získat Modul MEDITECH EDM (Emergency Department Management). Odvozuje se ze změn stavu ve sledování EDM nebo z časového razítka dokumentu Triage Assessment. Zachycení Zaznamená se při změně pole stavu na Triaged Typ události explicit | |||
| Vystaven příkaz k propuštění | Časové razítko okamžiku, kdy lékař podepíše příkaz k propuštění pacienta. Označuje začátek fáze plánování propuštění. | ||
| Proč je to důležité Slouží jako výchozí hodnota pro dobu plánování propuštění ('Discharge Planning Lead Time'). Rozdíl mezi tímto okamžikem a skutečným odchodem ukazuje na provozní neefektivitu. Kde data získat MEDITECH OE (Order Entry). Objednávky se filtrují podle Category = Discharge. Zachycení Zaznamená se při provedení transakce Order Enter Typ události explicit | |||
| Kontrolní návštěva sjednána | Naplánování budoucí návštěvy pacienta. Tato činnost podporuje návaznost péče po propuštění. | ||
| Proč je to důležité Podporuje analýzu sjednávání kontrolních návštěv ('Follow-up Appointment Scheduling'). Souvisí s nižším počtem opakovaných hospitalizací. Kde data získat MEDITECH SCH (Scheduling). Událost se odvozuje propojením nového záznamu Appointment vytvořeného v době kolem propuštění s ID pacienta. Zachycení Odvoďte porovnáním polí Appointment Created Date a Discharge Date Typ události inferred | |||
| Konzultace dokončena | Dokončení vyšetření specialistou. Často se odvozuje od uložení konkrétního typu dokumentu, například 'Cardiology Consult Note'. | ||
| Proč je to důležité Koncový bod pro měření rychlosti reakce specialisty. Důležitý pro zajištění včasného pokračování péče. Kde data získat MEDITECH PCM (Provider Order Management) nebo EMR. Událost se odvozuje od časových razítek vytvoření dokumentů s konkrétními názvy. Zachycení Porovnejte hodnotu pole stavu před změnou a po ní Typ události inferred | |||
| Odeslána žádost o konzultaci | Specifický typ objednávky, kterým se žádá o posouzení specialistou. Spouští měření doby na dashboardu 'Specialist Consultation Response'. | ||
| Proč je to důležité Pomáhá odhalit úzká místa v koordinaci mezioborové péče. Dlouhé čekání prodlužuje hospitalizaci. Kde data získat MEDITECH OE (Order Entry). Záznam se vyhledá filtrováním tabulky 'OeOrders' podle Category = Consult. Zachycení Zaznamená se při provedení transakce Order Enter Typ události explicit | |||
| Vzorek odebrán | Označuje fyzický odběr biologického vzorku pro laboratorní analýzu. Tato činnost propojuje zadání objednávky se zpracováním vzorku. | ||
| Proč je to důležité Podrobný krok, který často způsobuje prodlevy v diagnostickém procesu. Pomáhá rozlišit zpoždění na straně ošetřovatelského personálu od prodlev v laboratoři. Kde data získat Modul MEDITECH LAB. Událost se obvykle zaznamená při načtení čárového kódu flebotomistou nebo při změně stavu vzorku na Collected. Zachycení Zaznamená se při provedení transakce Collect Specimen Typ události explicit | |||
| Zahájen plán péče | Označuje vytvoření nebo přiřazení konkrétního ošetřovatelského či mezioborového plánu péče. Odpovídá konceptu 'Treatment Plan Developed'. | ||
| Proč je to důležité Měří rychlost přípravy léčebného plánu ('Treatment Plan Development Velocity'). Prodlevy mohou ukazovat na nedostatky v klinickém rozhodování. Kde data získat MEDITECH PCS (Patient Care System) nebo Care Manager. Časové razítko okamžiku, kdy se pacientovi přiřadí standardní plán péče. Zachycení Zaznamená se při provedení transakce Care Plan Add Typ události explicit | |||
Návody k extrakci dat
Kroky
Najděte server Data Repository: Zjistěte, na které instanci Microsoft SQL Serveru je umístěno MEDITECH Data Repository (DR). Jde o jiný systém než transakční databáze M-AT nebo databáze založená na souborech. Budete potřebovat přihlašovací údaje s oprávněním pouze pro čtení, obvykle servisní účet.
Zjistěte verzi schématu: Struktura MEDITECH DR se mírně liší podle toho, zda používáte Magic, Client/Server (6.x), nebo Expanse. Níže uvedený dotaz používá běžné názvy, například AdmVisits a OeOrders. Ověřte názvy tabulek v Object Exploreru místního SQL Server Management Studia (SSMS).
Vymezte rozsah dat: Najděte hlavní tabulku návštěv pacientů. Podle konfigurace DR se obvykle jmenuje AdmVisits, RegAcct nebo AbstractData. Dotaz používá AdmVisits jako výchozí tabulku pro Patient Episode.
Připravte prostředí SQL: Otevřete SSMS a připojte se k DR. Otevřete nové okno dotazu a zkontrolujte, že pracujete se správnou databází, která se často jmenuje livedb nebo podobně.
Nastavte parametry: V dodaném SQL skriptu nahraďte zástupné hodnoty pro časové období, například „2023-01-01“, a identifikátory zdravotnických zařízení, pokud DR obsahuje data z více pracovišť.
Spusťte extrakci: Spusťte celý skript T-SQL. Pomocí Common Table Expressions (CTE) nejprve vymezí požadovanou skupinu dat a poté spojí více zdrojů pomocí UNION ALL do jednotného záznamu událostí.
Ošetřete atributy NULL: Dotaz počítá s možnými hodnotami NULL v časových značkách, v případě potřeby používá COALESCE a ověřuje, že jsou k dispozici důležité spojovací klíče SourceID a VisitID.
Ověřte data triáže a urgentního příjmu: MEDITECH ukládá data z urgentního příjmu do konkrétních modulů. Pokud analyzujete workflow urgentního příjmu, ověřte, že tabulky EdVisits nebo NurInterventions obsahují data.
Ověřte kategorie objednávek: Dotaz rozlišuje běžné objednávky, konzultace a objednávky při propuštění podle kategorií urn nebo mnemotechnických kódů. Možná bude nutné upravit podmínky WHERE podle místního číselníku mnemotechnických kódů.
Exportujte data: Po zobrazení výsledků klikněte pravým tlačítkem na mřížku výsledků v SSMS a vyberte Save Results As CSV. Zkontrolujte, že soubor obsahuje záhlaví.
Zkontrolujte formát: Před importem do ProcessMind ověřte, že data ve sloupcích s datem v souboru CSV odpovídají formátu ISO 8601 (YYYY-MM-DD HH:MM:SS).
Konfigurace
- Přístup k databázi: K databázi MEDITECH DR SQL potřebujete oprávnění db_datareader.
- Časové období: Doporučujeme extrahovat data za 3 až 6 měsíců u propuštěných pacientů, aby byly zachyceny dokončené cykly.
- Filtr zdravotnického zařízení: Pokud DR obsahuje data z více zařízení, filtrujte CTE BaseVisits podle FacilityID nebo SourceSystemID.
- Definice epizody: Skript používá jedinečné VisitID, označované také jako Account Number nebo Episode Number, jako Case ID.
- Výkon: Dotaz omezuje rozsah prohledávaných dat pomocí výchozí CTE. Pro optimální výkon ověřte, že tabulka AdmVisits obsahuje indexy pro AdmitDate a DischargeDate.
- Zpoždění dat: Přenos dat do Data Repository může podle konfigurace pracoviště trvat 15 minut až 24 hodin. Ověřte časové razítko LastDataUpdate.
Ukázkový dotaz sql
/* MEDITECH Data Repository T-SQL Extraction for ProcessMind */
/* Process: Patient Journey */
/* Dialect: T-SQL */
WITH BaseVisits AS (
/* Define the population: Discharged patients within a date range */
SELECT
V.VisitID,
V.PatientID,
V.AccountNumber AS MedicalRecordNumber,
V.AdmitDateTime,
V.DischargeDateTime,
V.FacilityID,
V.PatientType,
V.AttendingProviderID,
V.DischargeDisposition,
NULLIF(DATEDIFF(MINUTE, V.AdmitDateTime, V.DischargeDateTime), 0) / 1440.0 AS LengthOfStay,
/* Flag readmissions logic would go here, simplified as 0 for base script */
0 AS IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmVisits] V
WHERE
V.DischargeDateTime >= '2023-01-01'
AND V.DischargeDateTime < '2023-04-01'
AND V.Status = 'DIS' /* Discharged Status */
),
PatientDiagnoses AS (
/* Helper CTE for Primary Diagnosis to avoid duplicates in joins */
SELECT
D.VisitID,
MAX(D.ICDCode) AS PrimaryDiagnosis
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] D
WHERE
D.Rank = 1 /* Primary Diagnosis Rank */
GROUP BY
D.VisitID
),
TriageData AS (
/* Helper CTE for Triage Acuity */
SELECT
T.VisitID,
MAX(T.AcuityLevel) AS TriageAcuityLevel
FROM
[YourDatabaseName].[dbo].[EdTriage] T
GROUP BY
T.VisitID
)
/* 1. Patient Registered */
SELECT
V.VisitID AS PatientEpisode,
'Patient Registered' AS ActivityName,
V.AdmitDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.AdmitDateTime IS NOT NULL
UNION ALL
/* 2. Triage Completed */
SELECT
V.VisitID AS PatientEpisode,
'Triage Completed' AS ActivityName,
ED.TriageDateTime AS EventTimestamp,
'MEDITECH_ED' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Emergency Department' AS HospitalDepartment,
ED.TriageNurseID AS AttendingProvider,
V.PatientType,
ED.AcuityLevel AS TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[EdTriage] ED
INNER JOIN BaseVisits V ON ED.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
WHERE
ED.TriageDateTime IS NOT NULL
UNION ALL
/* 3. Order Placed (General) */
SELECT
V.VisitID AS PatientEpisode,
'Order Placed' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category NOT IN ('CONSULT', 'DISCHARGE') /* Exclude specific types handled elsewhere */
UNION ALL
/* 4. Specimen Collected */
SELECT
V.VisitID AS PatientEpisode,
'Specimen Collected' AS ActivityName,
L.CollectionDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
L.CollectedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabSpecimens] L
INNER JOIN BaseVisits V ON L.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
L.CollectionDateTime IS NOT NULL
UNION ALL
/* 5. Diagnostic Result Verified */
SELECT
V.VisitID AS PatientEpisode,
'Diagnostic Result Verified' AS ActivityName,
R.VerifiedDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
R.VerifiedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabResults] R
INNER JOIN BaseVisits V ON R.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
R.VerifiedDateTime IS NOT NULL
UNION ALL
/* 6. Diagnosis Documented */
SELECT
V.VisitID AS PatientEpisode,
'Diagnosis Documented' AS ActivityName,
DX.EntryDateTime AS EventTimestamp,
'MEDITECH_ABS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
DX.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] DX
INNER JOIN BaseVisits V ON DX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
DX.EntryDateTime IS NOT NULL
UNION ALL
/* 7. Care Plan Initiated */
SELECT
V.VisitID AS PatientEpisode,
'Care Plan Initiated' AS ActivityName,
N.CreateDateTime AS EventTimestamp,
'MEDITECH_NUR' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
N.NurseUnit AS HospitalDepartment,
N.NurseID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[NurPlan] N
INNER JOIN BaseVisits V ON N.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
N.CreateDateTime IS NOT NULL
UNION ALL
/* 8. Medication Administered */
SELECT
V.VisitID AS PatientEpisode,
'Medication Administered' AS ActivityName,
M.AdminDateTime AS EventTimestamp,
'MEDITECH_PHA' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
M.AdminLocation AS HospitalDepartment,
M.AdministeredBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[PhaMedAdmin] M
INNER JOIN BaseVisits V ON M.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
M.Status = 'ADMINISTERED'
UNION ALL
/* 9. Consult Request Sent */
SELECT
V.VisitID AS PatientEpisode,
'Consult Request Sent' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
UNION ALL
/* 10. Consultation Completed */
SELECT
V.VisitID AS PatientEpisode,
'Consultation Completed' AS ActivityName,
O.CompletedDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
AND O.Status = 'COMPLETED'
AND O.CompletedDateTime IS NOT NULL
UNION ALL
/* 11. Patient Transferred */
SELECT
V.VisitID AS PatientEpisode,
'Patient Transferred' AS ActivityName,
TX.TransferDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
TX.ToLocation AS HospitalDepartment,
NULL AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmRoomTx] TX
INNER JOIN BaseVisits V ON TX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
TX.TransferDateTime IS NOT NULL
UNION ALL
/* 12. Discharge Order Written */
SELECT
V.VisitID AS PatientEpisode,
'Discharge Order Written' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'DISCHARGE'
OR O.Mnemonic LIKE '%DISCHARGE%'
UNION ALL
/* 13. Patient Discharged */
SELECT
V.VisitID AS PatientEpisode,
'Patient Discharged' AS ActivityName,
V.DischargeDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.DischargeDateTime IS NOT NULL
UNION ALL
/* 14. Follow-up Booked */
SELECT
V.VisitID AS PatientEpisode,
'Follow-up Booked' AS ActivityName,
S.BookDateTime AS EventTimestamp,
'MEDITECH_SCH' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
S.ApptDepartment AS HospitalDepartment,
S.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[SchAppt] S
INNER JOIN BaseVisits V ON S.PatientID = V.PatientID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
S.BookDateTime > V.AdmitDateTime
AND S.BookDateTime <= DATEADD(day, 30, V.DischargeDateTime) /* Logic to link appt to episode */
AND S.Status NOT IN ('CANCELLED', 'NOSHOW'); Chcete začít?
Začněte zlepšovat klinický provoz tím, že tuto šablonu použijete na svá data z MEDITECH. Náš tým vám pomůže upravit extrakci dat tak, aby nemocnice fungovala co nejefektivněji.
Zlepšete cestu pacienta a zkraťte čekání
Zkraťte dobu průchodu procesem o 30 procent a zvyšte efektivitu nemocnice
Platební kartu nepotřebujete. Začít můžete během několika minut.