Ihre Patientenreise-Datentemplate
Ihre Patientenreise-Datentemplate
- Empfohlene Attribute für den klinischen Kontext
- Wichtige Prozessmeilensteine zur Verfolgung
- Spezifische Extraktionsanleitung für Epic EHR
Patientenreise-Attribute
| Name | Beschreibung | ||
|---|---|---|---|
| Aktivitätsname ActivityName | Die spezifische klinische oder administrative Aktion, die durchgeführt wurde. | ||
| Beschreibung Dieses Attribut erfasst den Namen des Events, das innerhalb der Patientenreise auftritt, wie 'Patient registriert', 'Medikament verabreicht' oder 'Entlassungsanordnung unterzeichnet'. Es ist das zentrale Element zur Definition des Prozessflusses. In der Analyse bildet dieses Feld die Knoten der Prozesskarte. Es wird aus verschiedenen Transaktionscodes und Order-Status innerhalb des EHR abgeleitet, um einen menschenlesbaren Event Log zu erstellen. Bedeutung Es definiert die Schritte des Prozesses und ermöglicht die Visualisierung des Datenquelle Abgeleitet aus den Tabellen CLARITY_ADT, ORDER_PROC und ORDER_MED. Beispiele Triage abgeschlossenDiagnostischer Test angeordnetPatient entlassenMedikament verabreicht | |||
| Ereignis-Timestamp EventTimestamp | Das genaue Datum und die Uhrzeit, zu der die Aktivität stattgefunden hat. | ||
| Beschreibung Dieses Attribut erfasst den genauen Zeitpunkt, an dem ein Event im Epic-System protokolliert wurde. Es wird verwendet, um Aktivitäten zu sequenzieren und alle dauerbasierten Metriken, wie Verweildauer und Zykluszeiten, zu berechnen. Die Genauigkeit in diesem Feld ist entscheidend für die Identifizierung von Engpässen. Es unterstützt die Dashboards für Triage-Durchsatz und 'Zeit bis zur definitiven Diagnose', indem es die zeitlichen Ankerpunkte für Start- und Endpunkte bereitstellt. Bedeutung Es ermöglicht die Berechnung von Zykluszeiten, Vorlaufzeiten und Prozessabläufen. Datenquelle Verschiedene Zeitstempel-Spalten (z.B. EFFECTIVE_TIME, ORDER_TIME), abhängig von der Quelltabelle. Beispiele 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Patientenfall PatientEpisodeId | Die eindeutige Kennung für den spezifischen Patientenfall oder Versorgungsfall. | ||
| Beschreibung Der Patientenfall dient als primäre Fallkennung für Process Mining. Er gruppiert alle klinischen, administrativen und logistischen Events, die sich auf einen einzelnen kontinuierlichen Versorgungszeitraum beziehen, wie einen stationären Aufenthalt oder einen Besuch in der Notaufnahme. In Epic Clarity entspricht dies typischerweise der Contact Serial Number (CSN) oder Encounter ID. Die Analyse dieses Attributs ermöglicht die Rekonstruktion der End-to-End Patientenreise. Sie ermöglicht die Zuordnung von Triage-, Diagnose-, Behandlungs- und Entlassungsaktivitäten zu einer kohärenten Prozessinstanz. Bedeutung Es ist der grundlegende Schlüssel zur Verknüpfung unterschiedlicher Datenquelle Epic Clarity Tabelle: PAT_ENC, Spalte: PAT_ENC_CSN_ID Beispiele 200459112200459113200459114200459115 | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, wann die Daten extrahiert oder zuletzt aktualisiert wurden. | ||
| Beschreibung Dieses Attribut gibt an, wann der Datensatz zuletzt von der ETL-Pipeline verarbeitet wurde. Es unterscheidet sich vom Event-Zeitstempel und hilft bei der Überwachung der Datenaktualität. Analysten nutzen dies, um festzustellen, ob das Dashboard die Echtzeit-Realität widerspiegelt oder ob ein Datenlatenzproblem die Genauigkeit von KPIs wie Triage-Wartezeiten beeinträchtigt. Bedeutung Es hilft, die Aktualität und Zuverlässigkeit der Datenquelle ETL-System- Beispiele 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Quellsystem SourceSystem | Das System der Aufzeichnung für die Daten, normalerweise Epic EHR. | ||
| Beschreibung Dieses Attribut identifiziert die Herkunft der Daten. Während es für diese Ansicht primär 'Epic EHR' ist, ist es nützlich, wenn Daten mit anderen Systemen wie einem separaten LIS (Laborinformationssystem) oder Abrechnungssystem vermischt werden. In der Analyse gewährleistet es die Datenherkunft und hilft bei der Fehlerbehebung, wenn spezifische Events im Vergleich zur Quelle fehlen oder fehlerhaft erscheinen. Bedeutung Es bietet Rückverfolgbarkeit und Kontext für die Datenquelle Fest codiert oder abgeleitet aus der Verbindungszeichenfolgenkonfiguration. Beispiele Epic EHREpic ClarityEpic Caboodle | |||
| `Encounter` Typ EncounterType | Die Klassifikation des Patientenbesuchs (z.B. stationär, Notfall). | ||
| Beschreibung Dieses Attribut kategorisiert die Art des Patientenfalls. Gängige Werte sind 'Notfall', 'Stationär', 'Ambulant' oder 'Virtuell'. Abgebildet auf 'Falltyp', ist dieses Feld grundlegend für die Filterung der Analyse. So ist beispielsweise das Entlassungsplanungs-Dashboard primär relevant für stationäre Fälle, während Triage spezifisch für Notfälle ist. Bedeutung Es bietet den übergeordneten Kontext für die Prozessinstanz. Datenquelle Epic Clarity Tabelle: PAT_ENC, Spalte: ENC_TYPE_C Beispiele NotfallAmbulanter KrankenhauspatientStationär | |||
| Abteilungsname DepartmentName | Die Krankenhauseinheit oder Abteilung, in der die Aktivität stattfand. | ||
| Beschreibung Dieses Attribut identifiziert den funktionellen Ort des Events, wie 'Notaufnahme', 'Radiologie' oder 'Allgemeine Chirurgie Station'. Es ist entscheidend für die interne Stationsverlegungsanalyse. Daten werden verwendet, um die Prozesskarte nach Abteilung zu segmentieren, wodurch Managern ermöglicht wird, Engpässe zu isolieren, die spezifisch für ihre Einheit sind, im Gegensatz zu systemischen krankenhausweiten Problemen. Bedeutung Es ermöglicht organisatorisches Filtern und eine Übergabeanalyse. Datenquelle Epic Clarity Tabelle: CLARITY_DEP, Spalte: DEPARTMENT_NAME Beispiele NotaufnahmeRadiologieIntensivstationPädiatrie | |||
| Behandler-ID ProviderId | Die Kennung des Benutzers oder Klinikers, der die Aktivität durchgeführt hat. | ||
| Beschreibung Dieses Attribut erfasst die eindeutige ID des Mitarbeiters, der für das Event verantwortlich ist, wie z.B. die Pflegekraft, die Medikamente verabreicht, oder der Arzt, der Entlassungsanordnungen unterzeichnet. Es wird auf das generische Attribut 'Benutzer' abgebildet, um Ressourcenvariationen und die Arbeitslast zu analysieren. Beachten Sie, dass dies bei automatisierten Aktivitäten eine System-Benutzer-ID sein kann. Bedeutung Es ermöglicht die Analyse von Leistungs- und Arbeitslastschwankungen zwischen den Mitarbeitern. Datenquelle Epic Clarity Tabelle: CLARITY_EMP, Spalte: USER_ID Beispiele EMP10023DOC5592SYSTEM | |||
| Endzeit des Events EventEndTime | Der Zeitstempel, wann die Aktivität abgeschlossen wurde. | ||
| Beschreibung Während viele Events augenblicklich sind, haben einige Aktivitäten wie 'Diagnosetest durchgeführt' oder 'Konsultation abgeschlossen' eine Dauer. Dieses Attribut erfasst die Abschlusszeit. Es ermöglicht die Berechnung der aktiven Verarbeitungszeit im Vergleich zur Wartezeit. Dies ist besonders relevant für das Diagnostic Service Cycle Times Dashboard. Bedeutung Es ermöglicht die Berechnung der Datenquelle Konsultieren Sie die Epic EHR-Dokumentation für spezifische Endzeit-Spalten in ORDER_PROC. Beispiele 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| Entlassungsdisposition DischargeDisposition | Der Zielort des Patienten bei Entlassung (Zuhause, Qualifizierte Pflegeeinrichtung, Verstorben). | ||
| Beschreibung Dieses Attribut erfasst, wohin der Patient nach Verlassen des Krankenhauses ging. Es wird bei der Aktivität 'Patient entlassen' erfasst. Dies ist entscheidend für das Readmission Risk Dashboard, da Patienten, die in qualifizierte Pflegeeinrichtungen (SNF) entlassen werden, andere Wiederaufnahmeprofile aufweisen als diejenigen, die nach Hause entlassen werden. Bedeutung Es kontextualisiert das Ergebnis des Pflegeprozesses. Datenquelle Epic Clarity Tabelle: PAT_ENC, Spalte: DISCH_DISP_C Beispiele StartseiteQualifizierte PflegeeinrichtungHäusliche Krankenpflege | |||
| Patienten-MRN PatientMrn | Die Medizinische Aktennummer, die den Patienten identifiziert. | ||
| Beschreibung Die MRN ist die eindeutige Kennung für den Patienten im gesamten Gesundheitssystem, die sich von der Fall-ID unterscheidet. Sie ermöglicht die Verfolgung der Patientenhistorie über mehrere Besuche hinweg. Dieses Attribut wird verwendet, um Wiederaufnahmen zu erkennen und separate Fälle für das Readmission Risk Dashboard zu verknüpfen. Es wird im generischen Modell auf 'Kunde' abgebildet. Bedeutung Es ist wesentlich für die Identifizierung von Wiederholungsbesuchen und die Analyse der Patientenhistorie. Datenquelle Epic Clarity Tabelle: PATIENT, Spalte: PAT_ID oder PAT_MRN_ID Beispiele MRN-882910MRN-112003MRN-554211 | |||
| Primärer Diagnosecode PrimaryDiagnosisCode | Der ICD-10 oder interne Code, der die Hauptdiagnose repräsentiert. | ||
| Beschreibung Dieses Attribut erfasst die bestätigte medizinische Bedingung des Patienten. Es wird normalerweise während der Aktivität 'Diagnose bestätigt' befüllt. Es wird verwendet, um Fälle nach klinischer Bedingung für die Ansicht zur Einhaltung klinischer Protokolle zu gruppieren. Die Abbildung auf 'Produkt' ermöglicht Analysten zu sehen, wie die 'Produktion' der Versorgung nach medizinischer Bedingung variiert. Bedeutung Es gruppiert Datenquelle Epic Clarity Tabelle: PAT_ENC_DX, Spalte: DX_ID Beispiele J18.9I21.9E11.9 | |||
| Triage-Schweregrad TriageAcuityLevel | Der Schweregrad-Score, der dem Patienten während der Triage zugewiesen wurde. | ||
| Beschreibung Dieses Attribut gibt die Dringlichkeit des Patientenzustands an, typischerweise auf einer Skala (z.B. ESI-Levels 1-5). Es wird während der Aktivität 'Triage abgeschlossen' erfasst. Es ermöglicht die Segmentierung im Dashboard 'Ressourceneinsatz nach Schweregrad-Score'. Patienten mit hoher Akuität folgen anderen Prozesspfaden als Patienten mit geringer Akuität, und dieses Feld hilft, diese Varianten zu unterscheiden. Bedeutung Es segmentiert den Prozess basierend auf Dringlichkeit und erwartetem Ressourcenverbrauch. Datenquelle Konsultieren Sie die Epic EHR-Dokumentation für das Acuity-Feld in ED-Logs. Beispiele 1 - Wiederbelebung2 - Notfall3 - Dringend | |||
| Wiederaufnahme-Flag ReadmissionFlag | Gibt an, ob der Patient innerhalb von 30 Tagen unerwartet zurückgekehrt ist. | ||
| Beschreibung Dieses boolesche Attribut identifiziert, ob dem spezifischen Fall eine weitere ungeplante Aufnahme desselben Patienten innerhalb eines 30-Tage-Fensters folgte. Es ist der Kern des KPI '30-Tage-ungeplante Wiederaufnahmerate'. In der Analyse dient dies als wichtige Ergebnisvariable. Prozesspfade, die zu einem 'True'-Flag führen, werden analysiert, um Ursachen in der Entlassungsplanungsphase zu finden. Bedeutung Es identifiziert fehlgeschlagene Entlassungsprozesse und Probleme mit der Versorgungsqualität. Datenquelle Berechnet über SQL, das zukünftige Beispiele truefalsch | |||
| Fachrichtung des anordnenden Arztes OrderingProviderSpecialty | Die medizinische Fachrichtung des Arztes, der eine Konsultation oder einen Test anfordert. | ||
| Beschreibung Dieses Attribut erfasst die Abteilung oder Fachrichtung (z.B. 'Kardiologie', 'Onkologie') des anordnenden Anbieters. Es wird im Specialist Consultation Latency Dashboard verwendet. Es hilft zu analysieren, ob bestimmte Fachgebiete längere Wartezeiten für interne Dienste haben als andere, wodurch potenzielle Voreingenommenheit oder Ressourcenengpässe in spezifischen Servicebereichen aufgedeckt werden. Bedeutung Es segmentiert die Nachfrage nach diagnostischen und Beratungsdiensten. Datenquelle Konsultieren Sie die Epic EHR-Dokumentation für Anbieter-Stammdaten. Beispiele KardiologieInnere MedizinOrthopädie | |||
| Ist automatisierte Planung IsAutomatedScheduling | Flag, das anzeigt, ob die Terminplanung ohne Personalintervention durchgeführt wurde. | ||
| Beschreibung Dieses boolesche Attribut wird von der Terminierungsmethode abgeleitet. Wurde der Termin über MyChart oder einen automatisierten Cadence Workflow vereinbart, ist dies 'True'. Es unterstützt direkt den KPI 'Automatisierungsrate der Nachsorgeplanung'. Dies hilft operativen Führungskräften zu verstehen, wie viel administrativer Aufwand auf Technologie ausgelagert wird. Bedeutung Es misst den Erfolg der Prozessautomatisierung. Datenquelle Abgeleitet von SchedulingMethod. Beispiele truefalsch | |||
| Kosten für diagnostische Bestellung DiagnosticOrderCost | Die internen Kosten, die mit einem Diagnosetest oder Verfahren verbunden sind. | ||
| Beschreibung Dieses Attribut weist den Aktivitäten 'Diagnosetest durchgeführt' einen finanziellen Wert zu. Es ermöglicht eine finanzielle Überlagerung auf der Prozesskarte. Obwohl es keine primäre klinische Metrik ist, hilft es der Verwaltung, das finanzielle Gewicht verschiedener Prozessvarianten zu verstehen, insbesondere jener, die Schweregrade mit hohem Ressourcenverbrauch aufweisen. Bedeutung Es fügt der Prozess-Effizienzanalyse eine finanzielle Dimension hinzu. Datenquelle Abrechnungs- oder Kostenrechnungstabellen, die mit dem Verfahren verknüpft sind. Beispiele 150.001200.0045.00 | |||
| Medikamentenverabreichungsverzögerung MedicationAdminDelay | Zeitdifferenz zwischen geplanter und tatsächlicher Medikamentenverabreichung. | ||
| Beschreibung Dieses Attribut berechnet die Varianz zwischen der angeordneten Verabreichungszeit und der tatsächlichen Scan-Zeit des Medikamenten-Barcodes. Es ist entscheidend für das Medication Delivery Performance Dashboard. Positive Werte weisen auf eine späte Verabreichung hin. Diese Metrik ermöglicht es Pflegeleitern, Schichten oder Einheiten zu identifizieren, in denen die Arbeitslast die rechtzeitige Versorgung beeinträchtigt. Bedeutung Es ist ein direktes Maß für die Einhaltung des Pflege- Datenquelle Berechnet aus MAR ( Beispiele 15m-5m1h 20m | |||
| Protokoll-Compliance-Status ProtocolAdherenceStatus | Status, der anzeigt, ob der Fall dem standardmäßigen klinischen Pfad folgte. | ||
| Beschreibung Dieses Attribut vergleicht die Sequenz von Aktivitäten im Fall mit einem definierten Referenzmodell (Standard Operating Procedure). Es unterstützt die Ansicht zur Einhaltung klinischer Protokolle. Mögliche Werte sind 'Konform', 'Schritt übersprungen' oder 'Außer Sequenz'. Dies ermöglicht es klinischen Leitern, schnell nach nicht-konformen Fällen zu filtern, ohne jede Prozesskarte manuell prüfen zu müssen. Bedeutung Es identifiziert schnell Abweichungen von evidenzbasierten Versorgungsstandards. Datenquelle Berechnet innerhalb des Beispiele KonformAbweichendUnvollständig | |||
| Regionsname RegionName | Die geografische Region oder der Krankenhauscampus. | ||
| Beschreibung Für Gesundheitssysteme mit mehreren Standorten identifiziert dieses Attribut den Standort der Einrichtung. Es ermöglicht den Vergleich der Leistung verschiedener Krankenhausstandorte. Die Zuordnung zu „Region“ ermöglicht ein Multi-Site-Benchmarking, um zu sehen, ob ein Krankenhaus den Triage-Durchsatz besser verwaltet als ein anderes. Bedeutung Es ermöglicht Datenquelle Abgeleitet aus den Stammdaten der Abteilung oder Einrichtung. Beispiele NordcampusStadtzentrumWestflügel | |||
| Terminierungsmethode SchedulingMethod | Gibt an, wie der Nachfolgetermin gebucht wurde. | ||
| Beschreibung Dieses Attribut erfasst den Kanal, der zur Buchung von Terminen verwendet wird, wie z.B. 'MyChart', 'Cadence Auto' oder 'Front Desk'. Es ist entscheidend für das Outpatient Follow Up Automation Status Dashboard. Wenn der Wert einen system- oder patientengesteuerten digitalen Kanal anzeigt, kann das 'IsAutomated' Flag auf True gesetzt werden. Es hebt den Erfolg von Initiativen zur digitalen Transformation hervor. Bedeutung Es verfolgt die Einführung automatisierter oder Datenquelle Konsultieren Sie die Epic EHR-Dokumentation für die Quelle der Terminvereinbarung. Beispiele MyChartCadenceTelefonPersönlich | |||
| Verlegungs-Wartezeit TransferWaitDuration | Verstrichene Zeit zwischen einer Verlegungsanordnung und der tatsächlichen Verlegung. | ||
| Beschreibung Diese Metrik misst die Lücke zwischen 'Verlegung angeordnet' und 'Patient verlegt'. Sie ist der primäre Datenpunkt für die interne Stationsverlegungsanalyse. Hohe Werte hier weisen auf 'Boarding' (Patienten warten auf Betten) hin, was den vorgelagerten Fluss aus der Notaufnahme blockiert. Bedeutung Es hebt logistische und kapazitätsbedingte Bottlenecks im Patientenfluss hervor. Datenquelle Berechneter Beispiele 2h 30m45m12h | |||
Patientenreise-Aktivitäten
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Diagnose bestätigt | Der Eintrag einer bestätigten Diagnose in die Problem-Liste des Patienten oder das Falldiagnosefeld. Stellt den Abschluss der Ermittlungsphase dar. | ||
| Bedeutung Erforderlich für den KPI 'Zeit bis zur definitiven Diagnose'. Markiert den Übergang von der Beurteilung zur gezielten Behandlung. Datenquelle PAT_ENC_DX Tabelle oder PROBLEM_LIST Aktualisierung, verknüpft mit dem Fall. Erfassen Protokolliert, wenn der Kliniker einen Eintrag zur Ereignistyp explicit | |||
| Patient entlassen | Der offizielle Abschluss des stationären Falls. Erfasst, wenn der Patient virtuell aus dem Zensus entlassen wird. | ||
| Bedeutung Das formelle Ende des Falls für 'Verweildauer'-Berechnungen. Wesentlich für die 'Patientenfluss-Varianten-Entdeckung'. Datenquelle ADT-Feed ( Erfassen Protokolliert, wenn das administrative Personal den Entlassungs- Ereignistyp explicit | |||
| Patient registriert | Die initiale Erstellung der Patientenfallakte im System, die den Beginn des Versorgungsfalls markiert. Dies wird explizit erfasst, wenn ein Patient an der Anmeldestelle oder in der Notaufnahme ankommt und in Epic eingecheckt wird. | ||
| Bedeutung Legt den Ankerpunkt für den gesamten Patientenpfad fest und ermöglicht die Berechnung der gesamten Verweildauer. Wesentlich für das Datenquelle ADT-Feed ( Erfassen Protokolliert, wenn die Transaktion „Check In“ oder „Admit“ ausgeführt wird Ereignistyp explicit | |||
| Triage abgeschlossen | Der Abschluss der ersten Pflegebeurteilung oder Triage-Bewertung. Dies wird typischerweise erfasst, wenn das Triage-Flowsheet abgelegt wird oder der Triage-Status zu 'Abgeschlossen' wechselt. | ||
| Bedeutung Entscheidend für das Datenquelle PAT_ENC_HSP.TRIAGE_END_TIME oder Zeitstempel der spezifischen Flowsheet-Zeilenablage (FLO_MEASUREMENT). Erfassen Protokolliert, wenn die Triage-Dokumentation unterzeichnet wird oder Statusfelder aktualisiert werden Ereignistyp explicit | |||
| Behandlungsplan initiiert | Die Zuweisung eines spezifischen klinischen Pfades oder Protokolls an den Patienten. Dies wird erfasst, wenn ein Standard-Order Set oder Behandlungsplan auf den Fallkontext angewendet wird. | ||
| Bedeutung Unterstützt die 'Ansicht zur Einhaltung klinischer Protokolle', indem die Absicht zur Einhaltung eines Versorgungsstandards markiert wird. Abweichungen von den nachfolgenden geplanten Schritten können ab diesem Punkt gemessen werden. Datenquelle ORDER_SET_BKG oder Behandlungsplan-Tabellen, die anzeigen, dass ein Protokoll mit dem Fall verknüpft wurde. Erfassen Protokolliert, wenn der Kliniker einen Ereignistyp explicit | |||
| Diagnostischer Test angeordnet | Die Eingabe einer Anordnung für Bildgebung (Radiologie) oder Laborleistungen. Erfasst, wenn ein Arzt eine Anordnung im CPOE-System eingibt und unterzeichnet. | ||
| Bedeutung Der Startpunkt für das 'Diagnostische Service-Zykluszeiten' Dashboard. Hohe Volumina hier ohne entsprechende Ergebnisse deuten auf Engpässe hin. Datenquelle ORDER_PROC Tabelle, wobei ORDER_TYPE Labor oder Bildgebung/Radiologie ist. Erfassen Protokolliert, wenn der Auftragsstatus „Signed“ oder „Active“ wird Ereignistyp explicit | |||
| Diagnostischer Test durchgeführt | Die tatsächliche Durchführung des Diagnosetests oder die Ablage des Ergebnisses. Bei Laboren ist dies die Verarbeitung der Probe; bei der Bildgebung, wenn der Scan abgeschlossen ist. | ||
| Bedeutung Endpunkt für die Datenquelle ORDER_PROC.PROC_END_TIME oder ORDER_STAT_HISTORY, wenn der Status zu 'Abgeschlossen' oder 'Befundet' wechselt. Erfassen Protokolliert, wenn der Techniker die Aufgabe abschließt oder die Ergebnisschnittstelle Ereignistyp explicit | |||
| Entlassungsanordnung unterschrieben | Die formelle ärztliche Genehmigung für den Patienten, das Krankenhaus zu verlassen. Dies ist eine spezifische Anordnungseingabe in Epic. | ||
| Bedeutung Ein kritischer Meilenstein in der „Entlassungsplanung und -durchführung“. Die Lücke zwischen diesem und dem tatsächlichen Verlassen stellt eine administrative Verzögerung dar. Datenquelle ORDER_PROC, wobei der Typ 'Patient entlassen' ist. Erfassen Protokolliert, wenn der Arzt die Entlassungsanordnung unterschreibt Ereignistyp explicit | |||
| Entlassungsplanung initiiert | Der Beginn der Aktivitäten zur Vorbereitung auf die Entlassung des Patienten. Erfasst über Fallmanagement-Dokumentation oder spezifische 'Entlassungs'-Anordnungstypen. | ||
| Bedeutung Wichtig für das Datenquelle HSP_DISCH_PLAN Erstellung oder erste Notiz durch Erfassen Abgeleitet aus der ersten Interaktion mit dem Entlassungsnavigator oder der Ereignistyp inferred | |||
| Konsultation abgeschlossen | Der Abschluss der Facharztbeurteilung, typischerweise gekennzeichnet durch die Unterzeichnung einer Konsultationsnotiz oder den Abschluss des Konsultationsauftrags. | ||
| Bedeutung Endpunkt für die Datenquelle HNO_NOTE_TEXT (Notiz mit Typ „Consult“ eingereicht) oder ORDER_PROC Statusänderung zu „Completed“. Erfassen Abgeleitet aus der Erstellungszeit der Konsultationsnotiz oder der Auftragsstatusaktualisierung Ereignistyp inferred | |||
| Konsultation angefordert | Eine Anordnung zur Beurteilung des Patienten durch einen Spezialisten. In Epic als spezifischer Prozedur-`Order Type` „Konsultation“ erfasst. | ||
| Bedeutung Startpunkt für den KPI 'Vorlaufzeit für Facharztkonsultationen'. Hilft, Engpässe in spezifischen medizinischen Fachrichtungen zu identifizieren. Datenquelle ORDER_PROC, wobei ORDER_CLASS = 'Konsultation' oder spezifische Überweisungsaufträge vorliegen. Erfassen Protokolliert, wenn die Konsultationsanordnung unterzeichnet wird Ereignistyp explicit | |||
| Medikament verabreicht | Die Handlung einer Pflegekraft oder eines Anbieters, Medikamente an den Patienten zu verabreichen. Erfasst in der Medikationsverabreichungsaufzeichnung (MAR). | ||
| Bedeutung Kern- Datenquelle MAR_ADMIN_INFO Tabelle, speziell Erfassen Protokolliert, wenn die Krankenschwester Patientenarmband und Medikament (BCMA) scannt Ereignistyp explicit | |||
| Nachfolgetermin geplant | Die Buchung eines zukünftigen ambulanten Besuchs für den Patienten. Erfasst im Cadence Terminplanungsmodul, verknüpft mit der Patientenakte. | ||
| Bedeutung Unterstützt die 'Automatisierungsrate der Nachsorgeplanung'. Gewährleistet die Kontinuität der Versorgung und hilft, Wiederaufnahmen zu verhindern. Datenquelle PAT_ENC_APPT, verknüpft mit Patienten-ID, erstellt nahe der Entlassungszeit. Erfassen Protokolliert, wenn der Termin in Cadence bestätigt wird Ereignistyp explicit | |||
| Patient verlegt | Die physische Bewegung des Patienten in eine neue Abteilung oder auf eine andere Station. Erfasst über ADT-Transfer-Events. | ||
| Bedeutung Endpunkt für die Datenquelle ADT-Feed ( Erfassen Protokolliert, wenn die Stationssekretärin den Patientenstandort im Zensus aktualisiert Ereignistyp explicit | |||
| Verlegung angeordnet | Eine Anforderung, den Patienten auf eine andere Einheit oder Pflegestufe zu verlegen. Im System als „Bettenanfrage“ oder „Verlegungsanordnung“ erfasst. | ||
| Bedeutung Startpunkt für die 'Durchschnittliche Verlegungszeit zwischen Stationen'. Unterscheidet zwischen der klinischen Entscheidung zur Verlegung und der logistischen Verfügbarkeit eines Bettes. Datenquelle ADT_TRANSFER_ORDER oder ORDER_PROC (Bettenanfrage). Erfassen Protokolliert, wenn der Arzt die Verlegungsanordnung eingibt Ereignistyp explicit | |||
Extraktionsleitfäden
Schritte
- Melden Sie sich bei Epic Hyperspace an und starten Sie die Reporting Workbench (RWB) über die Aktivität „Analytics“ oder „My Reports“.
- Erstellen Sie einen neuen Report, indem Sie den Reiter „Library“ auswählen und nach dem
Template„Encounter Search“ oder „Patient Encounters“ suchen. DiesesTemplateermöglicht das Abrufen von Kontaktdetails, die durch die CSN (Contact Serial Number) identifiziert werden. - Kriterien konfigurieren (Registerkarte „Settings“):
- Legen Sie den Datumsbereich fest (z. B. Entlassungsdatum = Letzte 90 Tage), um abgeschlossene Episoden zu erfassen.
- Filtern Sie nach Encounter Type (z. B. „Hospital Encounter“, „Emergency“), um irrelevante ambulante Besuche auszuschließen.
- Filtern Sie nach Department oder Facility, falls ein spezifischer Bereich erforderlich ist.
- Anzeigespalten konfigurieren (Registerkarte „Display“):
- Dies ist der entscheidende Extraktionsschritt. Sie müssen spezifische Spalten suchen und hinzufügen, die den
Timestamps der erforderlichen Aktivitäten entsprechen. - Fügen Sie Patient Identifiers hinzu:
CSN(Patientenepisode),MRN(Patienten-ID). - Fügen Sie Demographics/Attribute hinzu:
Department,Discharge Disposition,Primary Diagnosis Code,Provider. - Fügen Sie Timestamp Columns hinzu: Suchen Sie nach Spalten wie
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Timeusw. (Eine genaue Zuordnung finden Sie im Abschnitt „Query/Configuration“).
- Dies ist der entscheidende Extraktionsschritt. Sie müssen spezifische Spalten suchen und hinzufügen, die den
- Führen Sie den Report aus und überprüfen Sie die Ergebnisse im Vorschaubereich.
dataexportieren:- Klicken Sie auf „Toolbar“ > „Export“.
- Wählen Sie das Format CSV oder Text (Tab Delimited) aus.
- Stellen Sie sicher, dass „Include Column Headers“ aktiviert ist.
- Speichern Sie die Datei als
Raw_Epic_Extract.csv.
dataTransformation (entscheidend):- Der RWB-Export erzeugt einen „Wide“-Datensatz (eine Zeile pro Patientenepisode mit mehreren
Timestamp-Spalten). - Sie müssen diese
dataentpivotieren (umformen), sodass jedeTimestamp-Spalte zu einer einzelnen Zeile imEvent Logwird. - Erstellen Sie eine finale Datei mit den Spalten:
PatientEpisodeId,ActivityName,EventTimestampund zugeordneten Attributen.
- Der RWB-Export erzeugt einen „Wide“-Datensatz (eine Zeile pro Patientenepisode mit mehreren
- Datumsformatierung: Stellen Sie sicher, dass der
EventTimestampim ISO-Format (YYYY-MM-DD HH:MM:SS) vorliegt und mit ProcessMind kompatibel ist. - Endgültige Validierung: Überprüfen Sie, ob die Datei die Header
PatientEpisodeId,ActivityName,EventTimestampenthält, und laden Sie sie in ProcessMind hoch.
Konfiguration
- Template: Verwenden Sie „Encounter Search“ (LBF) oder „Find Patients“, abhängig von der Epic-Version.
- Datumsbereich: Beschränken Sie diesen initial auf 3-6 Monate, um Timeout-Fehler zu vermeiden (RWB ist nicht für massive Bulk-Extraktionen optimiert).
- Zeilenlimit: Epic RWB hat oft ein Zeilenlimit (z.B. 25.000 oder 50.000 Zeilen). Stellen Sie sicher, dass Ihr Datumsbereich dieses Limit nicht überschreitet, oder führen Sie mehrere Batches aus.
- Berechtigungen: Erfordert die Reporting Workbench-Sicherheitsberechtigungen „Create“ und „Export“.
- Performance: Führen Sie dies außerhalb der Spitzenzeiten aus, wenn Sie große historische Bereiche durchsuchen.
- Granularität: Diese Methode bietet zusammenfassende
Timestamps aufEncounter-Ebene (z.B. „First Med Admin“). Sie extrahiert nicht jede Schleife (z.B. jede einzelne verabreichte Pille), es sei denn, es werden spezifische „Audit“-Templates verwendet, die für diesen Anwendungsfall selten sind.
a Beispielabfrage config
[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 Schritte
Datenbankzugriff anfordern: Stellen Sie sicher, dass Sie Lesezugriff auf die Epic Clarity Console oder einen SQL-Client haben, der mit der Clarity Produktions- oder Berichtsdatenbank verbunden ist. Sie benötigen Berechtigungen für
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOund verwandte Referenztabellen.Umfang und Filter-IDs identifizieren: Führen Sie vor dem Ausführen des vollständigen Skripts kleine Erkundungsabfragen aus, um die spezifischen
ORDER_TYPE_C-Werte für Labs, Radiologie, Konsultationen und Transfers in Ihrer spezifischen Epic-Instanz zu identifizieren, da diese Custom Lists (Kategorielisten) je nach Krankenhaus variieren.Zeitfenster konfigurieren: Suchen Sie die
WHERE-Klauseln im bereitgestellten SQL-Skript, die nachCONTACT_DATEoderHOSP_ADMSN_TIMEfiltern. Passen Sie diese an Ihr gewünschtes Extraktionsfenster an (z. B. die letzten 6 Monate).Benutzerdefinierte Flowsheets zuordnen (optional): Wenn Sie präzise
Timestamps für Triage oder Entlassungsplanung benötigen, die nicht in der Haupt-Encounter-Tabelle enthalten sind, identifizieren Sie die spezifischeFLO_MEAS_ID(Flowsheet Measure ID) für diese Felder und aktualisieren Sie die Platzhalterabschnitte des Skripts.Abfrage ausführen: Führen Sie das vollständige SQL-Skript in Ihrem SQL-Client aus (z. B. SQL Server Management Studio, Oracle SQL Developer). Das Skript verwendet
UNION ALL, um verschiedene klinischeEventszu einer einzigen standardisiertenEvent Log-Struktur zu kombinieren.Nachbearbeitung: Die Abfrage gibt eine flache Liste zurück. Überprüfen Sie, ob
EventTimestampnicht null ist. Konvertieren Sie alle datenbankspezifischen Datums-/Uhrzeitformate in ISO 8601 (YYYY-MM-DDTHH:MM:SS), falls IhreMiddlewaredies erfordert.dataexportieren: Speichern Sie das Ergebnis als CSV-Datei. Stellen Sie sicher, dass die Header den definierten Attributen (PatientEpisodeId, ActivityName usw.) entsprechen.Upload zu ProcessMind: Importieren Sie die CSV-Datei in
ProcessMind. Ordnen SiePatientEpisodeIdalsCaseID,ActivityNamealsActivityundEventTimestampalsTimestampzu.
Konfiguration
- Datenbankverbindung: Epic Clarity (typischerweise MSSQL- oder Oracle-Backend).
- Datumsfilterung: Filtern Sie nach
PAT_ENC.HOSP_ADMSN_TIMEoderPAT_ENC.CONTACT_DATE. Der empfohlene Bereich beträgt 3-6 Monate für die initiale Analyse, um die Abfrageleistung zu steuern. - Encounter-Typen: Das Skript filtert nach stationären und Notfall-Encounters (
ENC_TYPE_C-Werte üblicherweise 3 und 50, aber überprüfen Sie dies anhand vonZC_ENC_TYPE). - Auftragstypen: Erfordert eine Anpassung der
ORDER_TYPE_C-Werte für Labor, Bildgebung und Konsultationen basierend auf der lokalen ZC_ORDER_TYPE-Konfiguration. - Performance: Das Skript scannt hochvolumige Tabellen (
ORDER_PROC,CLARITY_ADT). Stellen Sie sicher, dass eine geeignete Indexierung verwendet oder die Ausführung außerhalb der Spitzenzeiten erfolgt.
a Beispielabfrage 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