Szablon danych ścieżki pacjenta
Szablon danych ścieżki pacjenta
- Zalecane atrybuty opisujące kontekst kliniczny
- Najważniejsze etapy procesu do śledzenia
- Wskazówki dotyczące ekstrakcji danych z Epic EHR
Atrybuty ścieżki pacjenta
| Nazwa | Opis | ||
|---|---|---|---|
| Epizod opieki nad pacjentem PatientEpisodeId | Unikalny identyfikator konkretnej wizyty pacjenta lub epizodu opieki. | ||
| Opis Epizod opieki nad pacjentem jest podstawowym identyfikatorem sprawy w process mining. Łączy wszystkie zdarzenia kliniczne, administracyjne i logistyczne związane z jednym nieprzerwanym okresem opieki, na przykład pobytem w szpitalu lub wizytą na szpitalnym oddziale ratunkowym. W Epic Clarity odpowiada zwykle numerowi seryjnemu kontaktu (CSN) lub identyfikatorowi wizyty. Analiza tego atrybutu pozwala odtworzyć pełną ścieżkę pacjenta. Umożliwia połączenie czynności związanych z triage, diagnozą, leczeniem i wypisem w jeden spójny przebieg procesu. Dlaczego to ważne To podstawowy klucz, który łączy rozproszone zdarzenia w jedną sprawę procesową. Skąd pobrać Tabela Epic Clarity: PAT_ENC, kolumna: PAT_ENC_CSN_ID Przykłady 200459112200459113200459114200459115 | |||
| Nazwa czynności ActivityName | Konkretna czynność kliniczna lub administracyjna. | ||
| Opis Ten atrybut zawiera nazwę zdarzenia w ścieżce pacjenta, na przykład „Zarejestrowano pacjenta”, „Podano lek” lub „Podpisano zlecenie wypisu”. To podstawowy element określający przebieg procesu. W analizie pole to tworzy węzły mapy procesu. Dane pochodzą z różnych kodów transakcji i statusów zleceń w systemie EHR, a następnie są przekształcane w czytelny dziennik zdarzeń. Dlaczego to ważne Określa kolejne etapy procesu i pozwala przedstawić przebieg workflow. Skąd pobrać Dane pochodzą z tabel CLARITY_ADT, ORDER_PROC i ORDER_MED. Przykłady Zakończenie triageZlecenie badania diagnostycznegoWypisanie pacjentaPodanie leku | |||
| Znacznik czasu zdarzenia EventTimestamp | Dokładna data i godzina wystąpienia czynności. | ||
| Opis Ten atrybut zapisuje dokładny moment zarejestrowania zdarzenia w systemie Epic. Służy do ustalania kolejności czynności i obliczania wszystkich wskaźników opartych na czasie, takich jak długość pobytu i czas realizacji. Dokładność tego pola ma duże znaczenie przy identyfikowaniu wąskich gardeł. Dane te zasilają dashboardy dotyczące przepustowości triage i czasu do ustalenia ostatecznego rozpoznania, wskazując momenty rozpoczęcia i zakończenia. Dlaczego to ważne Umożliwia obliczanie czasu realizacji, czasu oczekiwania na realizację i kolejności czynności w procesie. Skąd pobrać Różne kolumny ze znacznikami czasu, np. EFFECTIVE_TIME i ORDER_TIME, zależnie od tabeli źródłowej. Przykłady 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Ostatnia aktualizacja danych LastDataUpdate | Znacznik czasu ekstrakcji danych lub ich ostatniego odświeżenia. | ||
| Opis Ten atrybut wskazuje, kiedy rekord został ostatnio przetworzony przez pipeline ETL. Różni się od znacznika czasu zdarzenia i pomaga monitorować aktualność danych. Analitycy mogą sprawdzić, czy dashboard odzwierciedla bieżącą sytuację, czy też opóźnienie w dostępie do danych wpływa na dokładność KPI, takich jak czas oczekiwania na triage. Dlaczego to ważne Pomaga ocenić aktualność i wiarygodność danych wykorzystywanych w process mining. Skąd pobrać Znacznik czasu z systemu ETL. Przykłady 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| System źródłowy SourceSystem | System, w którym przechowywane są dane, zwykle Epic EHR. | ||
| Opis Ten atrybut wskazuje źródło danych. W tym widoku jest nim przede wszystkim Epic EHR, ale ma to znaczenie również wtedy, gdy dane są łączone z innymi systemami, na przykład osobnym systemem LIS (Laboratory Information System) lub systemem rozliczeniowym. W analizie pozwala śledzić pochodzenie danych i ułatwia diagnozowanie problemów, gdy zdarzenia wydają się brakujące lub nieprawidłowe w porównaniu ze źródłem. Dlaczego to ważne Pozwala ustalić pochodzenie danych i zapewnia kontekst ich analizy. Skąd pobrać Wartość wpisana na stałe lub pobrana z konfiguracji parametrów połączenia. Przykłady Epic EHREpic ClarityEpic Caboodle | |||
| Czas zakończenia zdarzenia EventEndTime | Znacznik czasu zakończenia czynności. | ||
| Opis Wiele zdarzeń trwa tylko chwilę, ale niektóre czynności, takie jak „Wykonano badanie diagnostyczne” lub „Zakończono konsultację”, zajmują określony czas. Ten atrybut zapisuje moment ich zakończenia. Pozwala obliczyć czas aktywnej pracy i czas oczekiwania. Ma to szczególne znaczenie dla dashboardu dotyczącego czasu realizacji badań diagnostycznych. Dlaczego to ważne Umożliwia obliczanie czasu trwania czynności i wykorzystania zasobów. Skąd pobrać Informacje o kolumnach zawierających czas zakończenia w tabeli ORDER_PROC można znaleźć w dokumentacji Epic EHR. Przykłady 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| Flaga ponownej hospitalizacji ReadmissionFlag | Wskazuje, czy pacjent niespodziewanie wrócił do szpitala w ciągu 30 dni. | ||
| Opis Ten atrybut logiczny wskazuje, czy po danym epizodzie pacjent został ponownie, nieplanowo przyjęty do szpitala w ciągu 30 dni. Jest podstawą KPI dotyczącego odsetka nieplanowanych ponownych hospitalizacji w ciągu 30 dni. W analizie jest to jedna z głównych miar wyniku. Ścieżki procesu zakończone wartością „True” są analizowane w celu ustalenia przyczyn problemów na etapie planowania wypisu. Dlaczego to ważne Pomaga wykrywać nieprawidłowości w procesie wypisu i problemy z jakością opieki. Skąd pobrać Wyliczane w SQL na podstawie przyszłych wizyt tego samego pacjenta, z użyciem MRN. Przykłady truefalse | |||
| Identyfikator personelu ProviderId | Identyfikator użytkownika lub pracownika medycznego, który wykonał czynność. | ||
| Opis Ten atrybut zawiera unikalny identyfikator pracownika odpowiedzialnego za zdarzenie, na przykład pielęgniarki podającej lek lub lekarza podpisującego zlecenie wypisu. Jest mapowany na ogólny atrybut „Użytkownik”, co pozwala analizować różnice w pracy i obciążenie zasobów. W przypadku czynności zautomatyzowanych może to być identyfikator użytkownika systemowego. Dlaczego to ważne Umożliwia analizę różnic w wynikach pracy i obciążeniu poszczególnych pracowników. Skąd pobrać Tabela Epic Clarity: CLARITY_EMP, kolumna: USER_ID Przykłady EMP10023DOC5592SYSTEM | |||
| Kod rozpoznania głównego PrimaryDiagnosisCode | Kod ICD-10 lub kod wewnętrzny oznaczający główne rozpoznanie. | ||
| Opis Ten atrybut zawiera potwierdzone rozpoznanie pacjenta. Zwykle jest uzupełniany podczas czynności „Potwierdzono rozpoznanie”. Służy do grupowania spraw według stanu klinicznego na potrzeby widoku zgodności z protokołami klinicznymi. Mapowanie na „Produkt” pozwala analitykom sprawdzić, jak przebieg opieki różni się w zależności od rozpoznania. Dlaczego to ważne Grupuje sprawy o podobnym stanie klinicznym na potrzeby analizy protokołów. Skąd pobrać Tabela Epic Clarity: PAT_ENC_DX, kolumna: DX_ID Przykłady J18.9I21.9E11.9 | |||
| Miejsce wypisu DischargeDisposition | Miejsce, do którego pacjent trafia po wypisie, na przykład dom, zakład opiekuńczo-leczniczy lub zgon. | ||
| Opis Ten atrybut zapisuje, dokąd pacjent udał się po opuszczeniu szpitala. Jest rejestrowany podczas czynności „Wypisano pacjenta”. Ma duże znaczenie dla dashboardu ryzyka ponownej hospitalizacji, ponieważ pacjenci kierowani do zakładów opieki pielęgniarskiej (SNF) mają inne ryzyko ponownej hospitalizacji niż pacjenci wypisywani do domu. Dlaczego to ważne Pozwala uwzględnić kontekst wyniku procesu opieki. Skąd pobrać Tabela Epic Clarity: PAT_ENC, kolumna: DISCH_DISP_C Przykłady DomZakład opieki pielęgniarskiejDomowa opieka zdrowotna | |||
| Nazwa oddziału DepartmentName | Oddział szpitalny lub jednostka, w której wykonano czynność. | ||
| Opis Ten atrybut wskazuje miejsce wykonania zdarzenia, na przykład szpitalny oddział ratunkowy, radiologię lub oddział chirurgii ogólnej. Jest niezbędny do analizy przeniesień między oddziałami. Dane pozwalają podzielić mapę procesu według oddziałów. Dzięki temu kierownicy mogą odróżnić wąskie gardła występujące w ich jednostce od problemów dotyczących całego szpitala. Dlaczego to ważne Umożliwia filtrowanie według struktury organizacyjnej i analizę przekazywania pacjentów między jednostkami. Skąd pobrać Tabela Epic Clarity: CLARITY_DEP, kolumna: DEPARTMENT_NAME Przykłady Szpitalny oddział ratunkowyRadiologiaICUPediatria | |||
| Numer MRN pacjenta PatientMrn | Numer dokumentacji medycznej identyfikujący pacjenta. | ||
| Opis MRN to unikalny identyfikator pacjenta w całym systemie opieki zdrowotnej, odrębny od identyfikatora epizodu. Umożliwia śledzenie historii pacjenta podczas wielu wizyt. Atrybut ten służy do wykrywania ponownych hospitalizacji i łączenia osobnych epizodów na potrzeby dashboardu ryzyka ponownej hospitalizacji. W modelu ogólnym jest mapowany na atrybut „Klient”. Dlaczego to ważne Jest niezbędny do identyfikowania kolejnych wizyt i analizy historii pacjenta. Skąd pobrać Tabela Epic Clarity: PATIENT, kolumna: PAT_ID lub PAT_MRN_ID Przykłady MRN-882910MRN-112003MRN-554211 | |||
| Poziom pilności triage TriageAcuityLevel | Ocena ciężkości stanu pacjenta przypisana podczas triage. | ||
| Opis Ten atrybut określa pilność stanu pacjenta, zwykle według skali, na przykład poziomów ESI od 1 do 5. Jest zapisywany podczas czynności „Zakończono triage”. Umożliwia podział danych w dashboardzie dotyczącym wykorzystania zasobów według poziomu ciężkości stanu. Pacjenci wymagający pilniejszej pomocy przechodzą inną ścieżkę niż pacjenci w mniej poważnym stanie. To pole pomaga rozróżnić te warianty. Dlaczego to ważne Pozwala podzielić proces według pilności i przewidywanego zużycia zasobów. Skąd pobrać Informacje o polu Acuity w dziennikach ED można znaleźć w dokumentacji Epic EHR. Przykłady 1 - Resuscytacja2 - Stan nagły3 - Stan pilny | |||
| Rodzaj wizyty EncounterType | Klasyfikacja wizyty pacjenta, na przykład hospitalizacja lub wizyta na oddziale ratunkowym. | ||
| Opis Ten atrybut określa rodzaj epizodu opieki nad pacjentem. Typowe wartości to „Nagły przypadek”, „Hospitalizacja”, „Wizyta ambulatoryjna” lub „Wizyta zdalna”. Pole jest mapowane na „Typ sprawy” i służy do filtrowania analizy. Na przykład dashboard planowania wypisów dotyczy głównie hospitalizacji, a triage jest związane z nagłymi przypadkami. Dlaczego to ważne Określa ogólny kontekst danej instancji procesu. Skąd pobrać Tabela Epic Clarity: PAT_ENC, kolumna: ENC_TYPE_C Przykłady Nagły przypadekWizyta ambulatoryjna w szpitaluHospitalizacja | |||
| Automatyczne umawianie wizyt IsAutomatedScheduling | Flaga wskazująca, czy wizytę umówiono bez udziału personelu. | ||
| Opis Ten atrybut logiczny jest wyliczany na podstawie sposobu umawiania wizyty. Jeśli wizytę umówiono przez MyChart lub automatyczny workflow Cadence, wartość wynosi True. Bezpośrednio wspiera KPI dotyczący odsetka automatycznie umawianych wizyt kontrolnych. Pomaga osobom zarządzającym operacjami ocenić, jaka część zadań administracyjnych została przeniesiona na technologię. Dlaczego to ważne Mierzy skuteczność automatyzacji procesu. Skąd pobrać Wyliczane na podstawie SchedulingMethod. Przykłady truefalse | |||
| Czas oczekiwania na przeniesienie TransferWaitDuration | Czas od zlecenia przeniesienia do jego realizacji. | ||
| Opis Ten wskaźnik mierzy czas między zdarzeniami „Zlecono przeniesienie” i „Przeniesiono pacjenta”. Jest podstawową miarą w analizie przeniesień między oddziałami. Długie oczekiwanie oznacza, że pacjenci czekają na łóżko, co blokuje przepływ pacjentów z oddziału ratunkowego. Dlaczego to ważne Wskazuje problemy logistyczne i ograniczenia przepustowości w przepływie pacjentów. Skąd pobrać Różnica między znacznikami czasu zlecenia i przeniesienia. Przykłady 2 godz. 30 min45 min12 godz. | |||
| Koszt zlecenia diagnostycznego DiagnosticOrderCost | Koszt wewnętrzny badania diagnostycznego lub procedury. | ||
| Opis Ten atrybut przypisuje wartość finansową czynnościom „Wykonano badanie diagnostyczne”. Pozwala uwzględnić koszty na mapie procesu. Nie jest to podstawowy wskaźnik kliniczny, ale pomaga administracji ocenić koszty różnych wariantów procesu, zwłaszcza tych dotyczących pacjentów z wysoką oceną ciężkości stanu i dużym zapotrzebowaniem na zasoby. Dlaczego to ważne Uzupełnia analizę efektywności procesu o wymiar finansowy. Skąd pobrać Tabele rozliczeniowe lub rachunku kosztów powiązane z procedurą. Przykłady 150.001200.0045.00 | |||
| Nazwa regionu RegionName | Region geograficzny lub kampus szpitala. | ||
| Opis W przypadku systemów opieki zdrowotnej obejmujących kilka kampusów ten atrybut wskazuje lokalizację placówki. Umożliwia porównywanie wyników różnych szpitali. Mapowanie na „Region” pozwala porównać placówki i sprawdzić, czy jeden szpital sprawniej obsługuje triage niż inny. Dlaczego to ważne Umożliwia porównywanie wyników różnych placówek w sieci opieki zdrowotnej. Skąd pobrać Pochodzi z danych podstawowych oddziału lub placówki. Przykłady Kampus północnyCentrum miastaSkrzydło zachodnie | |||
| Specjalizacja lekarza zlecającego OrderingProviderSpecialty | Specjalizacja lekarza zlecającego konsultację lub badanie. | ||
| Opis Ten atrybut zawiera oddział lub specjalizację lekarza zlecającego, na przykład kardiologię lub onkologię. Jest wykorzystywany w dashboardzie dotyczącym czasu oczekiwania na konsultację specjalistyczną. Pomaga sprawdzić, czy niektóre specjalizacje dłużej czekają na usługi wewnętrzne niż inne. Może to ujawnić nierówności lub niedobory zasobów w określonych obszarach opieki. Dlaczego to ważne Pozwala podzielić zapotrzebowanie na badania diagnostyczne i konsultacje. Skąd pobrać Informacje o danych podstawowych lekarzy można znaleźć w dokumentacji Epic EHR. Przykłady KardiologiaMedycyna wewnętrznaOrtopedia | |||
| Sposób umawiania wizyty SchedulingMethod | Określa sposób umówienia wizyty kontrolnej. | ||
| Opis Ten atrybut wskazuje kanał użyty do umówienia wizyty, na przykład „MyChart”, „Cadence Auto” lub „Rejestracja”. Jest istotny dla dashboardu dotyczącego automatyzacji umawiania wizyt ambulatoryjnych. Jeśli wartość wskazuje na kanał cyfrowy obsługiwany przez system lub pacjenta, można ustawić flagę „IsAutomated” na true. Pozwala to ocenić efekty wdrażania rozwiązań cyfrowych. Dlaczego to ważne Pozwala śledzić wykorzystanie narzędzi automatycznych i samoobsługowych. Skąd pobrać Informacje o źródle utworzenia wizyty można znaleźć w dokumentacji Epic EHR. Przykłady MyChartCadenceTelefonOsobiście | |||
| Zgodność z protokołem ProtocolAdherenceStatus | Status wskazujący, czy sprawa przebiegała zgodnie ze standardową ścieżką kliniczną. | ||
| Opis Ten atrybut porównuje kolejność czynności w sprawie z określonym modelem referencyjnym (standardową procedurą operacyjną). Wspiera widok zgodności z protokołami klinicznymi. Możliwe wartości to „Zgodny”, „Pominięto etap” lub „Nieprawidłowa kolejność”. Dzięki temu osoby kierujące zespołami klinicznymi mogą szybko filtrować sprawy niezgodne z protokołem, bez ręcznego sprawdzania każdej mapy procesu. Dlaczego to ważne Szybko wskazuje odstępstwa od standardów opieki opartych na dowodach naukowych. Skąd pobrać Wyliczane w narzędziu process mining lub wstępnie przetwarzane w SQL. Przykłady ZgodnyNiezgodnyNiekompletny | |||
Czynności w ścieżce pacjenta
| Działanie | Opis | ||
|---|---|---|---|
| Potwierdzenie diagnozy | Wprowadzenie potwierdzonej diagnozy do listy problemów pacjenta lub pola diagnozy wizyty. Oznacza zakończenie etapu diagnostycznego. | ||
| Dlaczego to ważne Niezbędne do obliczenia wskaźnika KPI „Czas do potwierdzenia diagnozy”. Oznacza przejście od oceny do ukierunkowanego leczenia. Skąd pobrać Tabela PAT_ENC_DX lub aktualizacja PROBLEM_LIST powiązana z wizytą. Rejestrowanie Rejestrowane po dodaniu przez lekarza wpisu w aktywności Encounter Diagnosis Typ zdarzenia explicit | |||
| Rejestracja pacjenta | Utworzenie w systemie dokumentacji wizyty pacjenta, które oznacza początek epizodu opieki. Zdarzenie jest rejestrowane, gdy pacjent zgłasza się do rejestracji lub na oddział ratunkowy i zostaje przyjęty w Epic. | ||
| Dlaczego to ważne Wyznacza punkt początkowy całej ścieżki pacjenta i umożliwia obliczenie całkowitego czasu pobytu. Niezbędne do dashboardu „Przepustowość triage i czas oczekiwania”. Skąd pobrać Strumień ADT (zdarzenie A04 lub A01) albo tabela Clarity PAT_ENC (utworzenie HSP_ACCOUNT_ID). Rejestrowanie Rejestrowane po wykonaniu transakcji „Check In” lub „Admit” Typ zdarzenia explicit | |||
| Wypisanie pacjenta | Formalne zamknięcie hospitalizacji. Zdarzenie jest rejestrowane, gdy pacjent zostaje wirtualnie wypisany z ewidencji. | ||
| Dlaczego to ważne Formalny koniec epizodu, wykorzystywany do obliczania czasu pobytu. Niezbędny do „Wykrywania wariantów przepływu pacjentów”. Skąd pobrać Strumień ADT (zdarzenie A03) lub PAT_ENC_HSP.DISCH_TIME. Rejestrowanie Rejestrowane po zakończeniu workflow wypisu przez personel administracyjny Typ zdarzenia explicit | |||
| Zakończenie triage | Zakończenie wstępnej oceny pielęgniarskiej lub triage. Zdarzenie jest zwykle rejestrowane po zapisaniu formularza triage lub zmianie statusu triage na „Complete”. | ||
| Dlaczego to ważne Niezbędne do pomiaru sprawności wstępnej obsługi w dashboardzie „Przepustowość triage i czas oczekiwania”. Opóźnienia na tym etapie wpływają na cały przebieg opieki. Skąd pobrać PAT_ENC_HSP.TRIAGE_END_TIME lub znacznik czasu zapisania konkretnego wiersza Flowsheet (FLO_MEASUREMENT). Rejestrowanie Rejestrowane po podpisaniu dokumentacji triage lub aktualizacji pola statusu Typ zdarzenia explicit | |||
| Podanie leku | Podanie leku pacjentowi przez pielęgniarkę lub innego pracownika medycznego. Zdarzenie jest rejestrowane w karcie podawania leków (MAR). | ||
| Dlaczego to ważne Podstawowe zdarzenie dla dashboardu „Skuteczność podawania leków”. Służy do monitorowania realizacji „Opracowanego planu leczenia”. Skąd pobrać Tabela MAR_ADMIN_INFO, w szczególności zdarzenia z działaniem „Given” lub „New Bag”. Rejestrowanie Rejestrowane po zeskanowaniu przez pielęgniarkę opaski pacjenta i leku (BCMA) Typ zdarzenia explicit | |||
| Podpisanie zlecenia wypisu | Formalna zgoda lekarza na opuszczenie szpitala przez pacjenta. W Epic jest rejestrowana jako konkretne zlecenie. | ||
| Dlaczego to ważne Ważny etap „Planowania i realizacji wypisu”. Czas między jego zakończeniem a faktycznym opuszczeniem szpitala pokazuje opóźnienie administracyjne. Skąd pobrać ORDER_PROC, gdzie typem jest „Discharge Patient”. Rejestrowanie Rejestrowane po podpisaniu zlecenia wypisu przez lekarza Typ zdarzenia explicit | |||
| Przeniesienie pacjenta | Fizyczne przeniesienie pacjenta do innego oddziału lub jednostki. Zdarzenie jest rejestrowane w strumieniu transferów ADT. | ||
| Dlaczego to ważne Punkt końcowy wskaźnika „Średni czas transferu między oddziałami”. Wspiera „Analizę transferów między oddziałami” i pomaga wykrywać wąskie gardła w organizacji pracy szpitala. Skąd pobrać Strumień ADT (zdarzenie A02) lub PAT_ENC_HSP_TRANSACTION (Transfer In). Rejestrowanie Rejestrowane po aktualizacji lokalizacji pacjenta w Census przez pracownika administracyjnego oddziału Typ zdarzenia explicit | |||
| Rozpoczęcie planowania wypisu | Rozpoczęcie działań przygotowujących pacjenta do wypisu. Zdarzenie jest rejestrowane w dokumentacji Case Management lub za pomocą określonych typów zleceń „Discharge”. | ||
| Dlaczego to ważne Ważny element dashboardu „Planowanie i realizacja wypisu”. Wcześniejsze rozpoczęcie planowania wiąże się ze skróceniem czasu pobytu. Skąd pobrać Utworzenie HSP_DISCH_PLAN lub pierwsza notatka Case Managera/pracownika socjalnego. Rejestrowanie Ustalane na podstawie pierwszej interakcji z Discharge Navigator lub notatki Case Mgmt Typ zdarzenia inferred | |||
| Rozpoczęcie planu opieki | Przypisanie pacjentowi konkretnej ścieżki klinicznej lub protokołu. Zdarzenie jest rejestrowane po zastosowaniu standardowego zestawu zleceń lub planu opieki w kontekście wizyty. | ||
| Dlaczego to ważne Wspiera dashboard „Zgodność z protokołami klinicznymi”, oznaczając zamiar postępowania zgodnie ze standardem opieki. Od tego momentu można mierzyć odstępstwa od kolejnych zaplanowanych działań. Skąd pobrać ORDER_SET_BKG lub tabele planu opieki wskazujące, że protokół został powiązany z wizytą. Rejestrowanie Rejestrowane po wybraniu i podpisaniu zestawu zleceń przez lekarza Typ zdarzenia explicit | |||
| Wykonanie badania diagnostycznego | Faktyczne wykonanie badania diagnostycznego lub zapisanie wyniku. W przypadku badań laboratoryjnych zdarzenie następuje po przetworzeniu próbki, a w przypadku badań obrazowych po zakończeniu skanowania. | ||
| Dlaczego to ważne Punkt końcowy wskaźnika KPI „Średni czas realizacji badania diagnostycznego”. Niezbędny do analizy opóźnień w usługach wspierających decyzje kliniczne. Skąd pobrać ORDER_PROC.PROC_END_TIME lub ORDER_STAT_HISTORY po zmianie statusu na „Completed” lub „Resulted”. Rejestrowanie Rejestrowane po zakończeniu zadania przez technika lub otrzymaniu danych przez interfejs wyników Typ zdarzenia explicit | |||
| Zakończenie konsultacji | Zakończenie oceny przez specjalistę, zwykle oznaczone podpisaniem notatki z konsultacji lub zamknięciem zlecenia konsultacji. | ||
| Dlaczego to ważne Punkt końcowy wskaźnika „Czas oczekiwania na konsultację specjalistyczną”. Oznacza przekazanie opinii specjalisty i możliwość kontynuowania planu opieki. Skąd pobrać HNO_NOTE_TEXT (zapisana notatka typu Consult) lub zmiana statusu ORDER_PROC na Completed. Rejestrowanie Ustalane na podstawie czasu utworzenia notatki z konsultacji lub aktualizacji statusu zlecenia Typ zdarzenia inferred | |||
| Zaplanowanie wizyty kontrolnej | Rezerwacja przyszłej wizyty ambulatoryjnej pacjenta. Rejestrowana w module planowania Cadence powiązanym z kartoteką pacjenta. | ||
| Dlaczego to ważne Wspiera wskaźnik „Odsetek automatycznie umawianych wizyt kontrolnych”. Zapewnia ciągłość opieki i pomaga ograniczyć liczbę ponownych hospitalizacji. Skąd pobrać PAT_ENC_APPT powiązany z identyfikatorem pacjenta, utworzony w pobliżu momentu wypisu. Rejestrowanie Rejestrowane po potwierdzeniu terminu wizyty w Cadence Typ zdarzenia explicit | |||
| Zgłoszenie prośby o konsultację | Zlecenie oceny pacjenta przez specjalistę. W Epic jest rejestrowane jako zlecenie procedury typu „Consult”. | ||
| Dlaczego to ważne Punkt początkowy wskaźnika KPI „Czas oczekiwania na konsultację specjalistyczną”. Pomaga wykrywać niedobory w poszczególnych specjalizacjach. Skąd pobrać ORDER_PROC, gdzie ORDER_CLASS = 'Consult', lub konkretne zlecenia skierowania. Rejestrowanie Rejestrowane po podpisaniu zlecenia konsultacji Typ zdarzenia explicit | |||
| Zlecenie badania diagnostycznego | Wprowadzenie zlecenia na badanie obrazowe (radiologiczne) lub laboratoryjne. Zdarzenie jest rejestrowane po wprowadzeniu i podpisaniu zlecenia przez lekarza w systemie CPOE. | ||
| Dlaczego to ważne Punkt początkowy dashboardu „Czas realizacji badań diagnostycznych”. Duża liczba zleceń bez odpowiadających im wyników może wskazywać na wąskie gardła. Skąd pobrać Tabela ORDER_PROC, w której ORDER_TYPE ma wartość Lab lub Imaging/Radiology. Rejestrowanie Rejestrowane po zmianie statusu zlecenia na „Signed” lub „Active” Typ zdarzenia explicit | |||
| Zlecenie transferu | Prośba o przeniesienie pacjenta do innej jednostki lub na inny poziom opieki. W systemie jest rejestrowana jako „Bed Request” lub „Transfer Order”. | ||
| Dlaczego to ważne Punkt początkowy wskaźnika „Średni czas transferu między oddziałami”. Pozwala odróżnić decyzję kliniczną o przeniesieniu od dostępności łóżka. Skąd pobrać ADT_TRANSFER_ORDER lub ORDER_PROC (Bed Request). Rejestrowanie Rejestrowane po wprowadzeniu przez lekarza zlecenia transferu Typ zdarzenia explicit | |||
Instrukcje ekstrakcji danych
Kroki
- Zaloguj się do Epic Hyperspace i uruchom Reporting Workbench (RWB) z poziomu Analytics lub My Reports.
- Utwórz nowy raport: wybierz kartę Library i wyszukaj szablon "Encounter Search" lub "Patient Encounters". Szablon umożliwia pobranie szczegółów wizyt oznaczonych numerem CSN (Contact Serial Number).
- Skonfiguruj kryteria (karta Settings):
- Ustaw zakres dat (np. data wypisu z ostatnich 90 dni), aby uwzględnić zakończone epizody.
- Filtruj według typu wizyty (np. 'Hospital Encounter', 'Emergency'), aby wykluczyć nieistotne wizyty ambulatoryjne.
- W razie potrzeby ogranicz zakres do oddziału lub placówki.
- Skonfiguruj kolumny wyświetlania (karta Display):
- To najważniejszy etap ekstrakcji. Wyszukaj i dodaj kolumny odpowiadające znacznikom czasu wymaganych czynności.
- Dodaj identyfikatory pacjenta:
CSN(epizod pacjenta),MRN(identyfikator pacjenta). - Dodaj dane demograficzne i atrybuty:
Department,Discharge Disposition,Primary Diagnosis Code,Provider. - Dodaj kolumny ze znacznikami czasu: wyszukaj m.in.
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time(dokładne mapowanie opisano w sekcji Query/Configuration).
- Uruchom raport i sprawdź wyniki w oknie podglądu.
- Wyeksportuj dane:
- Wybierz Toolbar > Export.
- Wybierz format CSV lub Text (Tab Delimited).
- Zaznacz opcję 'Include Column Headers'.
- Zapisz plik jako
Raw_Epic_Extract.csv.
- Przekształć dane (ważne):
- Eksport z RWB tworzy szeroki zbiór danych: jeden wiersz na epizod pacjenta i wiele kolumn ze znacznikami czasu.
- Należy przekształcić dane z kolumn na wiersze (unpivot), tak aby każda kolumna ze znacznikiem czasu stała się osobnym wierszem w dzienniku zdarzeń.
- Przygotuj plik końcowy z kolumnami:
PatientEpisodeId,ActivityName,EventTimestamporaz zmapowanymi atrybutami.
- Sformatuj daty: upewnij się, że
EventTimestampma format ISO (YYYY-MM-DD HH:MM:SS) zgodny z ProcessMind. - Sprawdź plik końcowy: upewnij się, że zawiera nagłówki
PatientEpisodeId,ActivityName,EventTimestamp, a następnie prześlij go do ProcessMind.
Konfiguracja
- Szablon: użyj "Encounter Search" (LBF) lub "Find Patients", zależnie od wersji Epic.
- Zakres dat: na początek ogranicz go do 3–6 miesięcy, aby uniknąć przekroczenia limitu czasu. RWB nie jest zoptymalizowany pod kątem masowej ekstrakcji danych.
- Limit wierszy: Epic RWB często ogranicza liczbę wierszy (np. do 25 000 lub 50 000). Nie przekraczaj limitu, w razie potrzeby uruchom raport w kilku partiach.
- Uprawnienia: wymagane są uprawnienia 'Create' i 'Export' w Reporting Workbench.
- Wydajność: przy wyszukiwaniu w dużym zakresie historycznym uruchamiaj raport poza godzinami szczytu.
- Szczegółowość: ta metoda zwraca podsumowujące znaczniki czasu na poziomie wizyty (np. 'First Med Admin'). Nie pobiera wszystkich powtórzeń czynności, np. każdej podanej tabletki, chyba że używane są specjalne szablony "Audit", rzadko stosowane w tym przypadku.
Przykładowe zapytanie sql
[REPORT CONFIGURATION SPECIFICATION]
# GENERAL SETTINGS
Application: Epic Reporting Workbench
Template_ID: Encounter_Search_LBF
Time_Horizon: Discharge Date between [Start Date] and [End Date]
Filters: Encounter Type IN ('Hospital Encounter', 'Emergency')
# COLUMN SELECTION MAPPING
# Map the following Epic RWB Columns (Display Names) to the Output Activities.
# Note: Column names may vary slightly by Epic customized build.
[MANDATORY ATTRIBUTES]
Column: Contact Serial Number (CSN) -> Target: PatientEpisodeId
Column: Patient MRN -> Target: PatientMrn
Column: Department at Discharge -> Target: DepartmentName
Column: Discharge Disposition -> Target: DischargeDisposition
Column: Primary Diagnosis ICD-10 -> Target: PrimaryDiagnosisCode
Column: Attending Provider -> Target: ProviderId
Column: Current Date -> Target: LastDataUpdate
Column: System Name (Fixed 'Epic') -> Target: SourceSystem
[ACTIVITY TIMESTAMP MAPPING]
# These columns represent the 'EventTimestamp' for the specific 'ActivityName'
1. Activity: Patient Registered
Epic_Column: Hospital Admission Time OR Check-In Time
2. Activity: Triage Completed
Epic_Column: Triage End Time OR Triage Acuity Time
3. Activity: Care Plan Initiated
Epic_Column: Care Plan Start Date
4. Activity: Diagnostic Test Ordered
Epic_Column: First Lab Order Time OR First Imaging Order Time
(Note: Select 'Earliest' if multiple columns exist)
5. Activity: Diagnostic Test Performed
Epic_Column: First Lab Result Time OR First Imaging End Time
6. Activity: Diagnosis Confirmed
Epic_Column: Principal Diagnosis Problem List Date
7. Activity: Consultation Requested
Epic_Column: Consult Order Create Time
8. Activity: Consultation Completed
Epic_Column: Consult Complete Time
9. Activity: Medication Administered
Epic_Column: First Medication Administration Time
10. Activity: Transfer Ordered
Epic_Column: Transfer Order Time
11. Activity: Patient Transferred
Epic_Column: Last Transfer In Time OR ADT Event Time
12. Activity: Discharge Planning Initiated
Epic_Column: Case Management Start Date
13. Activity: Discharge Order Signed
Epic_Column: Discharge Order Time
14. Activity: Patient Discharged
Epic_Column: Hospital Discharge Time
15. Activity: Follow-up Appointment Scheduled
Epic_Column: Discharge Follow-Up Appointment Made Date
# TRANSFORMATION LOGIC (PSEUDO-CODE)
# The export will be 'Wide'. Apply this logic to create the Event Log:
FOR EACH Row IN Exported_CSV:
EpisodeID = Row['Contact Serial Number']
FUNCTION CreateEvent(ActivityName, TimestampColumn):
IF Row[TimestampColumn] IS NOT NULL:
OUTPUT_ROW = {
'PatientEpisodeId': EpisodeID,
'ActivityName': ActivityName,
'EventTimestamp': Row[TimestampColumn],
'PatientMrn': Row['Patient MRN'],
'DepartmentName': Row['Department at Discharge'],
... [All Attributes]
}
APPEND OUTPUT_ROW TO Event_Log
# Execute for all 15 mappings defined above
CreateEvent('Patient Registered', 'Hospital Admission Time')
CreateEvent('Triage Completed', 'Triage End Time')
... [Repeat for all mapped columns]
END LOOP Kroki
Uzyskaj dostęp do bazy danych: upewnij się, że masz uprawnienia do odczytu w Epic Clarity Console lub kliencie SQL połączonym z produkcyjną albo raportową bazą Clarity. Potrzebne będą uprawnienia do tabel
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOi powiązanych tabel referencyjnych.Określ zakres i identyfikatory filtrów: przed uruchomieniem pełnego skryptu wykonaj krótkie zapytania rozpoznawcze, aby ustalić wartości
ORDER_TYPE_Cdla badań laboratoryjnych, radiologii, konsultacji i przeniesień w danej instancji Epic. Te listy niestandardowe (listy kategorii) różnią się w zależności od szpitala.Ustaw zakres czasu: znajdź w skrypcie SQL klauzule
WHEREfiltrujące wedługCONTACT_DATElubHOSP_ADMSN_TIME. Dostosuj je do wybranego okresu ekstrakcji, np. ostatnich 6 miesięcy.Zmapuj niestandardowe flowsheety (opcjonalnie): jeśli potrzebne są dokładne znaczniki czasu triage lub planowania wypisu, których nie ma w głównej tabeli wizyt, ustal identyfikatory
FLO_MEAS_ID(Flowsheet Measure ID) tych pól i uzupełnij odpowiednie sekcje skryptu.Uruchom zapytanie: wykonaj cały skrypt SQL w kliencie SQL, np. SQL Server Management Studio lub Oracle SQL Developer. Skrypt używa
UNION ALL, aby połączyć różne zdarzenia kliniczne w jeden ustandaryzowany dziennik zdarzeń.Przetwarzanie po ekstrakcji: zapytanie zwraca płaską listę. Sprawdź, czy
EventTimestampnie jest pusty. W razie potrzeby konwertuj formaty daty i czasu z bazy danych do ISO 8601 (YYYY-MM-DDTHH:MM:SS).Wyeksportuj dane: zapisz wyniki jako plik CSV. Upewnij się, że nagłówki odpowiadają zdefiniowanym atrybutom, np. PatientEpisodeId, ActivityName.
Prześlij dane do ProcessMind: zaimportuj plik CSV do ProcessMind. Zmapuj
PatientEpisodeIdjako identyfikator case,ActivityNamejako czynność, aEventTimestampjako timestamp.
Konfiguracja
- Połączenie z bazą danych: Epic Clarity, zwykle z zapleczem MSSQL lub Oracle.
- Filtrowanie dat: filtruj według
PAT_ENC.HOSP_ADMSN_TIMElubPAT_ENC.CONTACT_DATE. Na początek zalecany jest zakres 3–6 miesięcy, aby ograniczyć obciążenie zapytania. - Typy wizyt: skrypt filtruje wizyty stacjonarne i w trybie nagłym (wartości
ENC_TYPE_Cto zwykle 3 i 50, ale należy je sprawdzić wZC_ENC_TYPE). - Typy zleceń: wartości
ORDER_TYPE_Cdla badań laboratoryjnych, obrazowych i konsultacji trzeba dostosować do lokalnej konfiguracjiZC_ORDER_TYPE. - Wydajność: skrypt przeszukuje tabele o dużym wolumenie danych (
ORDER_PROC,CLARITY_ADT). Należy zadbać o odpowiednie indeksy lub uruchamiać go poza godzinami szczytu.
Przykładowe zapytanie sql
WITH Cohort AS (
SELECT
pe.PAT_ENC_CSN_ID,
pe.PAT_ID,
pe.HOSP_ADMSN_TIME,
pe.HOSP_DISCH_TIME,
pe.DEPARTMENT_ID,
dep.DEPARTMENT_NAME,
emp.NAME AS ProviderName,
pat.PAT_MRN_ID,
pe.ACUITY_LEVEL_C,
disch.NAME AS DischargeDisposition,
pe.ENC_TYPE_C
FROM PAT_ENC pe
LEFT JOIN CLARITY_DEP dep ON pe.DEPARTMENT_ID = dep.DEPARTMENT_ID
LEFT JOIN CLARITY_EMP emp ON pe.VISIT_PROV_ID = emp.PROV_ID
LEFT JOIN PATIENT pat ON pe.PAT_ID = pat.PAT_ID
LEFT JOIN ZC_DISCH_DISP disch ON pe.DISCH_DISP_C = disch.DISCH_DISP_C
WHERE pe.HOSP_ADMSN_TIME >= DATEADD(month, -6, GETDATE())
AND pe.ENC_TYPE_C IN (3, 50) -- 3=Inpatient, 50=Emergency (Verify local codes)
)
-- 1. Patient Registered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)) AS PatientEpisodeId,
'Patient Registered' AS ActivityName,
c.HOSP_ADMSN_TIME AS EventTimestamp,
c.DepartmentName,
c.ProviderName AS ProviderId,
c.PAT_MRN_ID AS PatientMrn,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)) AS TriageAcuityLevel,
CAST(c.ENC_TYPE_C AS VARCHAR(50)) AS EncounterType,
NULL AS PrimaryDiagnosisCode,
NULL AS ReadmissionFlag,
c.DischargeDisposition,
'Epic EHR' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM Cohort c
WHERE c.HOSP_ADMSN_TIME IS NOT NULL
UNION ALL
-- 2. Triage Completed (Using Flowsheet or Triage Time)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Triage Completed',
ISNULL(pe.TRIAGE_END_INSTANT, c.HOSP_ADMSN_TIME), -- Fallback if specific column unused
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC pe ON c.PAT_ENC_CSN_ID = pe.PAT_ENC_CSN_ID
WHERE pe.TRIAGE_END_INSTANT IS NOT NULL
UNION ALL
-- 3. Care Plan Initiated (Based on Order Type)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Care Plan Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 100 -- Placeholder: Replace with ID for Care Plan/Protocol
UNION ALL
-- 4. Diagnostic Test Ordered (Lab/Radiology)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2) -- Placeholder: 1=Lab, 2=Radiology (Verify local codes)
UNION ALL
-- 5. Diagnostic Test Performed (Result Time or Procedure Start)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Performed',
COALESCE(ord2.PROC_START_TIME, ord2.PROC_ENDING_TIME, ord.ORDER_INST),
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
JOIN ORDER_PROC_2 ord2 ON ord.ORDER_PROC_ID = ord2.ORDER_PROC_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2)
AND ord2.PROC_START_TIME IS NOT NULL
UNION ALL
-- 6. Diagnosis Confirmed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnosis Confirmed',
dx.NOTED_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
edg.DX_NAME,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC_DX dx ON c.PAT_ENC_CSN_ID = dx.PAT_ENC_CSN_ID
JOIN CLARITY_EDG edg ON dx.DX_ID = edg.DX_ID
WHERE dx.NOTED_DATE IS NOT NULL
UNION ALL
-- 7. Consultation Requested
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Requested',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
UNION ALL
-- 8. Consultation Completed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Completed',
ord.ORDER_END_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
AND ord.ORDER_STATUS_C = 5 -- Placeholder: 5=Completed
AND ord.ORDER_END_TIME IS NOT NULL
UNION ALL
-- 9. Medication Administered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Medication Administered',
mar.TAKEN_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_MED med ON c.PAT_ENC_CSN_ID = med.PAT_ENC_CSN_ID
JOIN MAR_ADMIN_INFO mar ON med.ORDER_MED_ID = mar.ORDER_MED_ID
LEFT JOIN CLARITY_EMP emp ON mar.TAKEN_USER_ID = emp.USER_ID
WHERE mar.TAKEN_TIME IS NOT NULL
AND mar.MAR_ACTION_C = 1 -- Placeholder: 1=Given
UNION ALL
-- 10. Transfer Ordered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Transfer Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 60 -- Placeholder: Replace with ID for Transfer/Bed Request
UNION ALL
-- 11. Patient Transferred
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Transferred',
adt.EFFECTIVE_TIME,
dep.DEPARTMENT_NAME,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN CLARITY_ADT adt ON c.PAT_ENC_CSN_ID = adt.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_DEP dep ON adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
WHERE adt.EVENT_TYPE_C = 3 -- 3=Transfer In
UNION ALL
-- 12. Discharge Planning Initiated
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Planning Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 70 -- Placeholder: Case Management/Discharge Order Type
UNION ALL
-- 13. Discharge Order Signed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Order Signed',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.PROC_CODE = 'DISCHARGE' -- Placeholder: Filter by specific discharge procedure code
UNION ALL
-- 14. Patient Discharged
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Discharged',
c.HOSP_DISCH_TIME,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
WHERE c.HOSP_DISCH_TIME IS NOT NULL
UNION ALL
-- 15. Follow-up Appointment Scheduled
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Follow-up Appointment Scheduled',
next_pe.APPT_MADE_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC next_pe ON c.PAT_ID = next_pe.PAT_ID
WHERE next_pe.APPT_MADE_DATE BETWEEN c.HOSP_ADMSN_TIME AND ISNULL(c.HOSP_DISCH_TIME, GETDATE())
AND next_pe.CONTACT_DATE > c.HOSP_ADMSN_TIME -- The appointment is for a future date relative to admission Jak zacząć?
Już dziś wykorzystaj ten szablon do analizy danych z Epic i usprawnij operacje kliniczne. Nasz zespół pomoże Państwu przejść przez proces ekstrakcji danych, aby szybko uzyskać pierwsze wyniki.
Usprawnij ścieżkę pacjenta i skróć czas procesu
Wykryj wąskie gardła w opiece klinicznej i skróć czas procesu o 30%.
Karta kredytowa nie jest wymagana. Konfiguracja zajmuje kilka minut.