Datatemplate voor patiënttrajecten
Datatemplate voor patiënttrajecten
- Aanbevolen attributen voor klinische context
- Belangrijke procesmomenten om te volgen
- Specifieke extractierichtlijnen voor Epic EHR
Attributen van het patiënttraject
| Naam | Beschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke klinische of administratieve handeling die is uitgevoerd. | ||
| Beschrijving Dit attribuut bevat de naam van de gebeurtenis in het patiënttraject, zoals ‘Patiënt geregistreerd’, ‘Medicatie toegediend’ of ‘Ontslagorder ondertekend’. Het vormt de basis voor de procesflow. In de analyse vormen de waarden in dit veld de knooppunten van de proceskaart. De gegevens zijn afkomstig uit verschillende transactiecodes en orderstatussen in het EPD en worden samengevoegd tot een leesbaar event log. Waarom dit belangrijk is Het beschrijft de processtappen en maakt de workflow zichtbaar. Waar vind je dit? Afgeleid uit de tabellen CLARITY_ADT, ORDER_PROC en ORDER_MED. Voorbeelden Triage afgerondDiagnostische test aangevraagdPatiënt ontslagenMedicatie toegediend | |||
| Patiëntenepisode PatientEpisodeId | De unieke identificatiecode van het specifieke patiëntcontact of de zorgepisode. | ||
| Beschrijving De patiëntenepisode is de primaire case-ID voor process mining. Deze groepeert alle klinische, administratieve en logistieke gebeurtenissen binnen één aaneengesloten zorgperiode, zoals een klinische opname of een bezoek aan de spoedeisende hulp. In Epic Clarity komt dit doorgaans overeen met het Contact Serial Number (CSN) of Encounter ID. Met dit attribuut kun je het volledige patiënttraject reconstrueren. Zo kun je triage, diagnose, behandeling en ontslag samenbrengen in één samenhangende procesinstantie. Waarom dit belangrijk is Dit is de belangrijkste sleutel om afzonderlijke gebeurtenissen aan één procescase te koppelen. Waar vind je dit? Epic Clarity-tabel: PAT_ENC, kolom: PAT_ENC_CSN_ID Voorbeelden 200459112200459113200459114200459115 | |||
| Tijdstip van gebeurtenis EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond. | ||
| Beschrijving Dit attribuut registreert het exacte moment waarop een gebeurtenis in Epic is vastgelegd. Het wordt gebruikt om activiteiten op volgorde te zetten en alle tijdsgebonden metrieken te berekenen, zoals de opnameduur en doorlooptijden. Een nauwkeurige waarde is belangrijk om bottlenecks te vinden. De dashboards voor triagedoorvoer en tijd tot definitieve diagnose gebruiken deze tijdstippen als begin- en eindpunten. Waarom dit belangrijk is Hiermee kun je doorlooptijden, wachttijden en de volgorde van processen berekenen. Waar vind je dit? Verschillende timestamp-kolommen, zoals EFFECTIVE_TIME en ORDER_TIME, afhankelijk van de brontabel. Voorbeelden 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Bronsysteem SourceSystem | Het systeem waarin de data wordt vastgelegd, meestal Epic EHR. | ||
| Beschrijving Dit attribuut geeft aan waar de data vandaan komt. Voor deze weergave is dat meestal ‘Epic EHR’, maar het is ook nuttig wanneer data wordt gecombineerd met andere systemen, zoals een apart LIS (Laboratory Information System) of een facturatiesysteem. Bij analyses maakt dit de herkomst van de data inzichtelijk. Ook helpt het bij het oplossen van problemen als gebeurtenissen ontbreken of afwijken van de bron. Waarom dit belangrijk is Het maakt de herkomst van de data traceerbaar en geeft context. Waar vind je dit? Hardgecodeerd of afgeleid uit de configuratie van de verbindingsreeks. Voorbeelden Epic EHREpic ClarityEpic Caboodle | |||
| Laatste data-update LastDataUpdate | Het timestamp waarop de data is geëxtraheerd of voor het laatst is vernieuwd. | ||
| Beschrijving Dit attribuut geeft aan wanneer de ETL-pipeline het record voor het laatst heeft verwerkt. Het is iets anders dan het tijdstip van de gebeurtenis en helpt om de actualiteit van de data te bewaken. Analisten gebruiken dit om te controleren of het dashboard de actuele situatie weergeeft of dat vertraging in de data de nauwkeurigheid van KPI’s, zoals triagewachttijden, beïnvloedt. Waarom dit belangrijk is Het helpt beoordelen hoe actueel en betrouwbaar de process mining-data is. Waar vind je dit? Timestamp van het ETL-systeem. Voorbeelden 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Afdelingsnaam DepartmentName | De ziekenhuisafdeling waar de activiteit plaatsvond. | ||
| Beschrijving Dit attribuut geeft aan waar de gebeurtenis plaatsvond, bijvoorbeeld op de spoedeisende hulp, de radiologieafdeling of de verpleegafdeling algemene chirurgie. Het is belangrijk voor de analyse van interne overplaatsingen tussen verpleegafdelingen. Met deze data kun je de proceskaart per afdeling uitsplitsen. Zo kunnen managers bottlenecks op hun eigen afdeling onderscheiden van problemen die het hele ziekenhuis raken. Waarom dit belangrijk is Hiermee kun je filteren op organisatieonderdeel en overdrachten analyseren. Waar vind je dit? Epic Clarity-tabel: CLARITY_DEP, kolom: DEPARTMENT_NAME Voorbeelden Spoedeisende hulpRadiologieICUKindergeneeskunde | |||
| Bestemming na ontslag DischargeDisposition | De bestemming van de patiënt na ontslag, zoals thuis, een verpleeghuis of overlijden. | ||
| Beschrijving Dit attribuut legt vast waar de patiënt na vertrek uit het ziekenhuis naartoe is gegaan. Het wordt vastgelegd bij de activiteit ‘Patiënt ontslagen’. Dit is belangrijk voor het dashboard met heropnamerisico. Patiënten die naar een verpleeghuis worden ontslagen, hebben een ander heropnamerisico dan patiënten die naar huis gaan. Waarom dit belangrijk is Het geeft context aan de uitkomst van het zorgproces. Waar vind je dit? Epic Clarity-tabel: PAT_ENC, kolom: DISCH_DISP_C Voorbeelden ThuisVerpleeghuisThuiszorg | |||
| Eindtijd van gebeurtenis EventEndTime | Het timestamp waarop de activiteit is voltooid. | ||
| Beschrijving Veel gebeurtenissen duren maar een moment. Andere activiteiten, zoals ‘Diagnostische test uitgevoerd’ of ‘Consult afgerond’, nemen tijd in beslag. Dit attribuut legt het eindtijdstip vast. Hiermee kun je actieve verwerkingstijd onderscheiden van wachttijd. Dat is vooral relevant voor het dashboard met doorlooptijden van diagnostische diensten. Waarom dit belangrijk is Hiermee kun je de duur van activiteiten en het gebruik van middelen berekenen. Waar vind je dit? Raadpleeg de documentatie van Epic EHR voor specifieke kolommen met eindtijden in ORDER_PROC. Voorbeelden 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| Patiënt-MRN PatientMrn | Het Medical Record Number waarmee de patiënt wordt geïdentificeerd. | ||
| Beschrijving Het MRN is de unieke identificatiecode van de patiënt binnen het zorgsysteem en verschilt van de episode-ID. Hiermee kun je de patiëntgeschiedenis over meerdere bezoeken volgen. Dit attribuut helpt heropnames op te sporen en afzonderlijke episodes te koppelen voor het dashboard met heropnamerisico. In het generieke model wordt het gekoppeld aan ‘Klant’. Waarom dit belangrijk is Het is nodig om herhaalbezoeken te herkennen en de patiëntgeschiedenis te analyseren. Waar vind je dit? Epic Clarity-tabel: PATIENT, kolom: PAT_ID of PAT_MRN_ID Voorbeelden MRN-882910MRN-112003MRN-554211 | |||
| Primaire diagnosecode PrimaryDiagnosisCode | De ICD-10-code of interne code voor de hoofddiagnose. | ||
| Beschrijving Dit attribuut legt de bevestigde medische aandoening van de patiënt vast. Meestal wordt het ingevuld tijdens de activiteit ‘Diagnose bevestigd’. Je kunt cases hiermee groeperen op aandoening voor de weergave van naleving van klinische protocollen. Door de koppeling aan ‘Product’ kunnen analisten zien hoe de zorgverlening verschilt per aandoening. Waarom dit belangrijk is Het groepeert cases op basis van klinische overeenkomsten voor protocolanalyse. Waar vind je dit? Epic Clarity-tabel: PAT_ENC_DX, kolom: DX_ID Voorbeelden J18.9I21.9E11.9 | |||
| Type contact EncounterType | De classificatie van het patiëntbezoek, bijvoorbeeld klinische opname of spoedeisende hulp. | ||
| Beschrijving Dit attribuut geeft aan om wat voor patiëntenepisode het gaat. Veelvoorkomende waarden zijn ‘Spoedeisende hulp’, ‘Klinische opname’, ‘Poliklinisch’ en ‘Virtueel’. Dit veld wordt gekoppeld aan ‘CaseType’ en is belangrijk om de analyse te filteren. Het dashboard voor ontslagplanning is bijvoorbeeld vooral relevant voor klinische opnames, terwijl triage specifiek is voor de spoedeisende hulp. Waarom dit belangrijk is Het geeft de procesinstantie context op hoofdlijnen. Waar vind je dit? Epic Clarity-tabel: PAT_ENC, kolom: ENC_TYPE_C Voorbeelden Spoedeisende hulpPoliklinisch ziekenhuisbezoekKlinische opname | |||
| Urgentieniveau triage TriageAcuityLevel | De ernstscore die tijdens de triage aan de patiënt is toegekend. | ||
| Beschrijving Dit attribuut geeft aan hoe urgent de toestand van de patiënt is, meestal op een schaal zoals ESI-niveaus 1-5. De waarde wordt vastgelegd tijdens de activiteit ‘Triage afgerond’. Je kunt hiermee het dashboard met de inzet van middelen per ernstscore uitsplitsen. Patiënten met een hoge urgentie volgen andere procesroutes dan patiënten met een lage urgentie. Dit veld maakt die verschillen zichtbaar. Waarom dit belangrijk is Het deelt het proces in op basis van urgentie en het verwachte gebruik van middelen. Waar vind je dit? Raadpleeg de documentatie van Epic EHR voor het veld Acuity in de ED-logs. Voorbeelden 1 - Reanimatie2 - Spoedeisend3 - Urgent | |||
| Vlag voor heropname ReadmissionFlag | Geeft aan of de patiënt binnen 30 dagen onverwacht is teruggekeerd. | ||
| Beschrijving Dit booleaanse attribuut geeft aan of de episode binnen 30 dagen is gevolgd door een andere ongeplande opname van dezelfde patiënt. Het vormt de basis voor de KPI voor het percentage ongeplande heropnames binnen 30 dagen. In de analyse is dit een belangrijke uitkomstvariabele. Procesroutes die leiden tot de vlag ‘True’ worden onderzocht om oorzaken in de ontslagplanning te vinden. Waarom dit belangrijk is Het helpt problemen met ontslagprocessen en de kwaliteit van zorg op te sporen. Waar vind je dit? Berekend met SQL door toekomstige contacten van dezelfde MRN te controleren. Voorbeelden truefalse | |||
| Zorgverlener-ID ProviderId | De identificatiecode van de gebruiker of zorgverlener die de activiteit heeft uitgevoerd. | ||
| Beschrijving Dit attribuut bevat de unieke ID van de medewerker die verantwoordelijk is voor de gebeurtenis, zoals de verpleegkundige die medicatie toedient of de arts die ontslagorders ondertekent. De ID wordt gekoppeld aan het generieke attribuut ‘Gebruiker’ om verschillen in inzet en werkbelasting te analyseren. Bij geautomatiseerde activiteiten kan dit een systeemgebruikers-ID zijn. Waarom dit belangrijk is Hiermee kun je verschillen in prestaties en werkbelasting tussen medewerkers analyseren. Waar vind je dit? Epic Clarity-tabel: CLARITY_EMP, kolom: USER_ID Voorbeelden EMP10023DOC5592SYSTEM | |||
| Geautomatiseerde planning IsAutomatedScheduling | Vlag die aangeeft of de afspraak is ingepland zonder tussenkomst van medewerkers. | ||
| Beschrijving Dit booleaanse attribuut wordt afgeleid van de planningsmethode. Als de afspraak via MyChart of een geautomatiseerde Cadence-workflow is gemaakt, is de waarde True. Het ondersteunt rechtstreeks de KPI voor de automatiseringsgraad van vervolgafspraken. Zo zien leidinggevenden hoeveel administratief werk door technologie wordt overgenomen. Waarom dit belangrijk is Het meet hoe goed het proces is geautomatiseerd. Waar vind je dit? Afgeleid van SchedulingMethod. Voorbeelden truefalse | |||
| Kosten diagnostische order DiagnosticOrderCost | De interne kosten van een diagnostische test of procedure. | ||
| Beschrijving Dit attribuut koppelt een financiële waarde aan activiteiten als ‘Diagnostische test uitgevoerd’. Zo kun je financiële gegevens aan de proceskaart toevoegen. Het is geen primaire klinische metriek, maar helpt de administratie wel om de financiële impact van verschillende procesvarianten te begrijpen, vooral bij hoge ernstscores die veel middelen vragen. Waarom dit belangrijk is Het voegt een financiële dimensie toe aan de analyse van procesefficiëntie. Waar vind je dit? Facturatie- of kostprijsadministratietabellen die aan de procedure zijn gekoppeld. Voorbeelden 150.001200.0045.00 | |||
| Planningsmethode SchedulingMethod | Geeft aan hoe de vervolgafspraak is ingepland. | ||
| Beschrijving Dit attribuut legt vast via welk kanaal afspraken worden ingepland, bijvoorbeeld ‘MyChart’, ‘Cadence Auto’ of ‘Balie’. Het is belangrijk voor het dashboard met de automatiseringsstatus van poliklinische vervolgafspraken. Als de waarde wijst op een systeemgestuurd of digitaal kanaal dat de patiënt zelf gebruikt, kan de vlag ‘IsAutomated’ op true worden gezet. Zo wordt zichtbaar wat digitale initiatieven opleveren. Waarom dit belangrijk is Het laat zien in hoeverre geautomatiseerde of self-service hulpmiddelen worden gebruikt. Waar vind je dit? Raadpleeg de documentatie van Epic EHR voor de bron van aangemaakte afspraken. Voorbeelden MyChartCadenceTelefoonPersoonlijk | |||
| Regionaam RegionName | De geografische regio of ziekenhuislocatie. | ||
| Beschrijving Bij zorgsystemen met meerdere locaties geeft dit attribuut aan op welke locatie de zorg is verleend. Zo kun je de prestaties van verschillende ziekenhuizen vergelijken. Door de koppeling aan ‘Regio’ kun je locaties onderling vergelijken en zien of de ene locatie patiënten sneller door de triage leidt dan de andere. Waarom dit belangrijk is Hiermee kun je locaties binnen een zorgnetwerk met elkaar vergelijken. Waar vind je dit? Afgeleid van afdelings- of locatiegegevens. Voorbeelden Noordelijke locatieStadscentrumWestvleugel | |||
| Specialisme van aanvrager OrderingProviderSpecialty | Het medisch specialisme van de arts die een consult of test aanvraagt. | ||
| Beschrijving Dit attribuut bevat de afdeling of het specialisme, bijvoorbeeld ‘Cardiologie’ of ‘Oncologie’, van de aanvragende zorgverlener. Het wordt gebruikt in het dashboard met wachttijden voor specialistische consulten. Je kunt ermee nagaan of bepaalde specialismen langer op interne diensten moeten wachten dan andere. Zo worden mogelijke ongelijkheid of tekorten aan middelen binnen specifieke zorglijnen zichtbaar. Waarom dit belangrijk is Het deelt de vraag naar diagnostiek en consulten in per specialisme. Waar vind je dit? Raadpleeg de documentatie van Epic EHR voor stamgegevens van zorgverleners. Voorbeelden CardiologieInterne geneeskundeOrthopedie | |||
| Status protocolnaleving ProtocolAdherenceStatus | Geeft aan of de case het standaard klinische zorgtraject heeft gevolgd. | ||
| Beschrijving Dit attribuut vergelijkt de volgorde van activiteiten in de case met een vastgelegd referentiemodel (Standard Operating Procedure). Het ondersteunt de weergave van naleving van klinische protocollen. Mogelijke waarden zijn ‘Conform’, ‘Stap overgeslagen’ en ‘Verkeerde volgorde’. Klinisch leidinggevenden kunnen zo snel cases filteren die niet aan het protocol voldoen, zonder elke proceskaart handmatig te controleren. Waarom dit belangrijk is Het brengt afwijkingen van zorgstandaarden op basis van bewijs snel aan het licht. Waar vind je dit? Berekend in de process mining-tool of vooraf verwerkt in SQL. Voorbeelden ConformAfwijkendOnvolledig | |||
| Wachttijd bij overplaatsing TransferWaitDuration | De tijd tussen een overplaatsingsorder en de daadwerkelijke overplaatsing. | ||
| Beschrijving Deze metriek meet de tijd tussen ‘Overplaatsing aangevraagd’ en ‘Patiënt overgeplaatst’. Het is het belangrijkste datapunt voor de analyse van interne overplaatsingen tussen verpleegafdelingen. Een hoge waarde wijst op patiënten die wachten op een bed. Daardoor stokt de doorstroming vanuit de spoedeisende hulp. Waarom dit belangrijk is Het maakt logistieke bottlenecks en capaciteitsproblemen in de patiëntenstroom zichtbaar. Waar vind je dit? Berekend als het verschil tussen de timestamps van de order en de overplaatsing. Voorbeelden 2 uur 30 min.45 min.12 uur | |||
Activiteiten in het patiënttraject
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Diagnose bevestigd | Een bevestigde diagnose wordt toegevoegd aan de probleemlijst van de patiënt of het diagnoseveld van het patiëntcontact. Dit markeert het einde van de onderzoeksfase. | ||
| Waarom dit belangrijk is Nodig voor de KPI ‘Tijd tot definitieve diagnose’. Dit markeert de overgang van beoordeling naar gerichte behandeling. Waar vind je dit? PAT_ENC_DX-tabel of PROBLEM_LIST-update gekoppeld aan het patiëntcontact. Vastleggen Geregistreerd wanneer een zorgverlener een item toevoegt aan de activiteit Encounter Diagnosis Gebeurtenistype explicit | |||
| Patiënt geregistreerd | Het patiëntcontact wordt voor het eerst in het systeem vastgelegd. Daarmee begint het zorgtraject. Dit moment wordt geregistreerd wanneer een patiënt zich meldt bij de registratiebalie of op de spoedeisende hulp en in Epic wordt aangemeld. | ||
| Waarom dit belangrijk is Dit is het startpunt voor het volledige patiënttraject en maakt het mogelijk de totale verblijfsduur te berekenen. Essentieel voor het dashboard ‘Doorvoer en wachttijden bij triage’. Waar vind je dit? ADT Feed (Event A04 of A01) of Clarity-tabel PAT_ENC (aanmaak van HSP_ACCOUNT_ID). Vastleggen Geregistreerd wanneer de transactie ‘Check In’ of ‘Admit’ wordt uitgevoerd Gebeurtenistype explicit | |||
| Patiënt ontslagen | Het klinische patiëntcontact wordt officieel afgesloten. Dit wordt vastgelegd wanneer de patiënt administratief uit de census wordt ontslagen. | ||
| Waarom dit belangrijk is Het formele einde van het patiënttraject voor berekeningen van de verblijfsduur. Essentieel voor ‘Ontdekking van varianten in de patiëntenstroom’. Waar vind je dit? ADT Feed (Event A03) of PAT_ENC_HSP.DISCH_TIME. Vastleggen Geregistreerd wanneer administratief personeel de ontslagworkflow afrondt Gebeurtenistype explicit | |||
| Triage afgerond | De eerste verpleegkundige beoordeling of triage is afgerond. Dit wordt meestal vastgelegd wanneer het triageformulier wordt ingediend of de triagestatus verandert in ‘Complete’. | ||
| Waarom dit belangrijk is Essentieel voor het dashboard ‘Doorvoer en wachttijden bij triage’, waarmee de efficiëntie aan het begin van het zorgtraject wordt gemeten. Vertragingen in deze fase werken door in het hele zorgpad. Waar vind je dit? PAT_ENC_HSP.TRIAGE_END_TIME of de timestamp waarop een specifieke Flowsheet-rij wordt ingediend (FLO_MEASUREMENT). Vastleggen Geregistreerd wanneer de triagedocumentatie wordt ondertekend of het statusveld wordt bijgewerkt Gebeurtenistype explicit | |||
| Consult aangevraagd | Er wordt een aanvraag ingediend voor een specialist om de patiënt te beoordelen. In Epic wordt dit vastgelegd als een specifiek type procedureaanvraag: ‘Consult’. | ||
| Waarom dit belangrijk is Startpunt voor de KPI ‘Wachttijd voor een specialistisch consult’. Helpt tekorten binnen specifieke medische specialismen op te sporen. Waar vind je dit? ORDER_PROC waarbij ORDER_CLASS = ‘Consult’ of specifieke verwijzingsaanvragen. Vastleggen Geregistreerd wanneer de consultaanvraag wordt ondertekend Gebeurtenistype explicit | |||
| Consult afgerond | De specialistische beoordeling is afgerond. Dit wordt meestal gemarkeerd door het ondertekenen van een Consult Note of het sluiten van de consultaanvraag. | ||
| Waarom dit belangrijk is Eindpunt voor ‘Wachttijd voor een specialistisch consult’. Geeft aan dat het specialistische advies is gegeven en het zorgplan verder kan. Waar vind je dit? HNO_NOTE_TEXT (notitie ingediend met type Consult) of statuswijziging van ORDER_PROC naar Completed. Vastleggen Afgeleid van het aanmaaktijdstip van de Consult Note of een statusupdate van de aanvraag Gebeurtenistype inferred | |||
| Diagnostische test aangevraagd | Een aanvraag voor beeldvorming (Radiology) of laboratoriumonderzoek wordt ingevoerd. Dit wordt vastgelegd wanneer een arts een aanvraag invoert en ondertekent in het CPOE-systeem. | ||
| Waarom dit belangrijk is Dit is het startpunt voor het dashboard ‘Doorlooptijden van diagnostische diensten’. Veel aanvragen zonder bijbehorende uitslagen kunnen op bottlenecks wijzen. Waar vind je dit? ORDER_PROC-tabel waarin ORDER_TYPE Lab of Imaging/Radiology is. Vastleggen Geregistreerd wanneer de status van de aanvraag verandert in ‘Signed’ of ‘Active’ Gebeurtenistype explicit | |||
| Diagnostische test uitgevoerd | De diagnostische test wordt uitgevoerd of de uitslag wordt ingediend. Bij laboratoriumonderzoek is dit het moment waarop het monster wordt verwerkt; bij beeldvorming wanneer de scan is afgerond. | ||
| Waarom dit belangrijk is Eindpunt voor de KPI ‘Gemiddelde doorlooptijd van diagnostische tests’. Belangrijk om vertragingen bij klinische beslisondersteuning te begrijpen. Waar vind je dit? ORDER_PROC.PROC_END_TIME of ORDER_STAT_HISTORY wanneer de status verandert in ‘Completed’ of ‘Resulted’. Vastleggen Geregistreerd wanneer de laborant de taak afrondt of de interface voor uitslagen data ontvangt Gebeurtenistype explicit | |||
| Medicatie toegediend | Een verpleegkundige of zorgverlener dient medicatie toe aan de patiënt. Dit wordt vastgelegd in het Medication Administration Record (MAR). | ||
| Waarom dit belangrijk is Belangrijke gebeurtenis voor het dashboard ‘Prestaties bij medicatietoediening’. Volgt of het ‘Opgestelde behandelplan’ wordt nageleefd. Waar vind je dit? MAR_ADMIN_INFO-tabel, met name gebeurtenissen met de actie ‘Given’ of ‘New Bag’. Vastleggen Geregistreerd wanneer een verpleegkundige de polsband van de patiënt en de medicatie scant (BCMA) Gebeurtenistype explicit | |||
| Nazorgafspraak ingepland | Het inplannen van een toekomstig poliklinisch bezoek voor de patiënt. Vastgelegd in de planningsmodule Cadence, die is gekoppeld aan het patiëntendossier. | ||
| Waarom dit belangrijk is Ondersteunt de KPI ‘Automatiseringsgraad van vervolgafspraken’. Zorgt voor continuïteit van zorg en helpt heropnames te voorkomen. Waar vind je dit? PAT_ENC_APPT gekoppeld aan patiënt-ID, aangemaakt rond het moment van ontslag. Vastleggen Geregistreerd wanneer het afspraaktijdstip in Cadence is bevestigd Gebeurtenistype explicit | |||
| Ontslagopdracht ondertekend | De arts geeft formeel toestemming aan de patiënt om het ziekenhuis te verlaten. Dit wordt als een specifieke opdracht in Epic ingevoerd. | ||
| Waarom dit belangrijk is Een belangrijke mijlpaal in ‘Ontslagplanning en uitvoering’. De tijd tussen dit moment en het daadwerkelijke vertrek laat administratieve vertraging zien. Waar vind je dit? ORDER_PROC met het type ‘Discharge Patient’. Vastleggen Geregistreerd wanneer de arts de ontslagopdracht ondertekent Gebeurtenistype explicit | |||
| Ontslagplanning gestart | De activiteiten om het vertrek van de patiënt voor te bereiden, gaan van start. Dit wordt vastgelegd in de documentatie van Case Management of via specifieke typen ontslagopdrachten. | ||
| Waarom dit belangrijk is Belangrijk voor het dashboard ‘Ontslagplanning en uitvoering’. Een vroege start hangt samen met een kortere verblijfsduur. Waar vind je dit? Aanmaak van HSP_DISCH_PLAN of de eerste notitie van een Case Manager/Social Worker. Vastleggen Afgeleid van het eerste contact met Discharge Navigator of een notitie van Case Mgmt Gebeurtenistype inferred | |||
| Overplaatsing aangevraagd | Een verzoek om de patiënt naar een andere afdeling of een ander zorgniveau te verplaatsen. Dit wordt in het systeem vastgelegd als ‘Bed Request’ of ‘Transfer Order’. | ||
| Waarom dit belangrijk is Startpunt voor de ‘Gemiddelde overplaatsingstijd tussen afdelingen’. Maakt onderscheid tussen de klinische beslissing om een patiënt te verplaatsen en de praktische beschikbaarheid van een bed. Waar vind je dit? ADT_TRANSFER_ORDER of ORDER_PROC (Bed Request). Vastleggen Geregistreerd wanneer een arts een overplaatsingsopdracht invoert Gebeurtenistype explicit | |||
| Patiënt overgeplaatst | De patiënt wordt fysiek naar een andere afdeling of verpleegafdeling verplaatst. Dit wordt vastgelegd via ADT-overplaatsingsgebeurtenissen. | ||
| Waarom dit belangrijk is Eindpunt voor de ‘Gemiddelde overplaatsingstijd tussen afdelingen’. Ondersteunt de ‘Analyse van interne overplaatsingen’ om bottlenecks in de ziekenhuislogistiek op te sporen. Waar vind je dit? ADT Feed (Event A02) of PAT_ENC_HSP_TRANSACTION (Transfer In). Vastleggen Geregistreerd wanneer de afdelingsmedewerker de locatie van de patiënt bijwerkt in Census Gebeurtenistype explicit | |||
| Zorgplan gestart | Een specifiek klinisch zorgpad of protocol wordt aan de patiënt toegewezen. Dit wordt vastgelegd wanneer een standaard Order Set of Care Plan aan het patiëntcontact wordt gekoppeld. | ||
| Waarom dit belangrijk is Ondersteunt de ‘Weergave van naleving van klinische protocollen’ door vast te leggen dat de intentie bestaat om volgens de zorgstandaard te werken. Vanaf dit moment kunnen afwijkingen van de geplande vervolgstappen worden gemeten. Waar vind je dit? ORDER_SET_BKG of tabellen voor zorgplannen die aangeven dat een protocol aan het patiëntcontact is gekoppeld. Vastleggen Geregistreerd wanneer een zorgverlener een Order Set selecteert en ondertekent Gebeurtenistype explicit | |||
Extractiegidsen
Stappen
- Meld je aan bij Epic Hyperspace en open de Reporting Workbench (RWB) via de activiteit Analyse of My Reports.
- Nieuw rapport maken: Selecteer het tabblad Library en zoek naar de template "Encounter Search" of "Patient Encounters". Met deze template haal je gegevens op contactniveau op, geïdentificeerd aan de hand van de CSN (Contact Serial Number).
- Criteria instellen (tabblad Settings):
- Stel het datumbereik in, bijvoorbeeld Discharge Date = Last 90 Days, om afgeronde episodes op te halen.
- Filter op Encounter Type, bijvoorbeeld 'Hospital Encounter' of 'Emergency', om niet-relevante poliklinische bezoeken uit te sluiten.
- Filter zo nodig op Afdeling of Facility om de scope te bepalen.
- Weergavekolommen instellen (tabblad Display):
- Dit is de belangrijkste stap voor de extractie. Zoek de kolommen met de timestamps van de vereiste activiteiten en voeg ze toe.
- Voeg patiëntidentificatie toe:
CSN(Patient Episode),MRN(Patient ID). - Voeg demografische gegevens en attributen toe:
Afdeling,Discharge Disposition,Primary Diagnosis Code,Provider. - Voeg timestampkolommen toe: zoek naar kolommen zoals
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Timeenzovoort. Raadpleeg het gedeelte Query/Configuration voor de exacte koppelingen.
- Rapport uitvoeren en de resultaten controleren in het voorbeeldvenster.
- Data exporteren:
- Klik op Toolbar > Export.
- Selecteer de indeling CSV of Text (Tab Delimited).
- Controleer of Include Column Headers is aangevinkt.
- Sla het bestand op als
Raw_Epic_Extract.csv.
- Data transformeren (belangrijk):
- De RWB-export bevat een brede dataset: één rij per patiënt-episode met meerdere timestampkolommen.
- Maak de data smal (unpivot), zodat elke timestampkolom een afzonderlijke rij in het event log wordt.
- Maak een bestand met de kolommen
PatientEpisodeId,ActivityName,EventTimestampen de gekoppelde attributen.
- Datums opmaken: Zorg dat
EventTimestampde ISO-indeling (YYYY-MM-DD HH:MM:SS) heeft, die compatibel is met ProcessMind. - Eindcontrole: Controleer of het bestand de kolomkoppen
PatientEpisodeId,ActivityNameenEventTimestampbevat en upload het naar ProcessMind.
Configuratie
- Template: gebruik "Encounter Search" (LBF) of "Find Patients", afhankelijk van je Epic-versie.
- Datumbereik: begin met 3 tot 6 maanden om time-outs te voorkomen. RWB is niet geoptimaliseerd voor grote bulkextracties.
- Rijlimiet: Epic RWB heeft vaak een limiet voor het aantal rijen, bijvoorbeeld 25.000 of 50.000. Zorg dat je datumbereik daarbinnen blijft of voer meerdere batches uit.
- Machtigingen: je hebt de beveiligingsrechten 'Create' en 'Export' voor Reporting Workbench nodig.
- Prestaties: voer grote zoekopdrachten naar historische data uit buiten piekuren.
- Detailniveau: deze methode levert samenvattende tijdstippen op contactniveau, zoals 'First Med Admin'. Je haalt er niet elke afzonderlijke handeling mee op, zoals elke toegediende pil. Daarvoor zijn specifieke "Audit"-templates nodig, die voor dit gebruik zelden beschikbaar zijn.
Voorbeeldquery 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 Stappen
Vraag toegang tot de database aan: zorg dat je leestoegang hebt tot de Epic Clarity Console of een SQL-client die is verbonden met de Clarity-productie- of rapportagedatabase. Je hebt machtigingen nodig voor
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOen gerelateerde referentietabellen.Bepaal de selectie en filter-ID's: voer eerst kleine verkenningsquery's uit om de specifieke waarden voor
ORDER_TYPE_Cte vinden voor labs, radiologie, consulten en overplaatsingen in jouw Epic-omgeving. Deze aangepaste lijsten (categorielijsten) verschillen per ziekenhuis.Stel de periode in: zoek in het SQL-script naar de
WHERE-clausules die filteren opCONTACT_DATEofHOSP_ADMSN_TIME. Pas ze aan op de gewenste periode, bijvoorbeeld de afgelopen 6 maanden.Koppel aangepaste flowsheets (optioneel): als je exacte tijdstippen nodig hebt voor triage of ontslagplanning die niet in de hoofdcontacttabel staan, zoek dan de juiste
FLO_MEAS_ID(Flowsheet Measure ID) voor deze velden en pas de daarvoor bedoelde delen van het script aan.Voer de query uit: voer het volledige SQL-script uit in je SQL-client, bijvoorbeeld SQL Server Management Studio of Oracle SQL Developer. Het script gebruikt
UNION ALLom verschillende klinische gebeurtenissen samen te voegen tot één gestandaardiseerd event log.Verwerk de resultaten: de query geeft een platte lijst terug. Controleer of
EventTimestampgeen lege waarde bevat. Zet datum- en tijdnotaties die specifiek zijn voor de database om naar ISO 8601 (YYYY-MM-DDTHH:MM:SS) als je middleware dat vereist.Exporteer de data: sla de resultaten op als CSV-bestand. Controleer of de kolomnamen overeenkomen met de gedefinieerde attributen, zoals PatientEpisodeId en ActivityName.
Upload naar ProcessMind: importeer het CSV-bestand in ProcessMind. Koppel
PatientEpisodeIdaan Case-ID,ActivityNameaan Activiteit enEventTimestampaan Timestamp.
Configuratie
- Databaseverbinding: Epic Clarity, meestal met een MSSQL- of Oracle-back-end.
- Datumfilter: filter op
PAT_ENC.HOSP_ADMSN_TIMEofPAT_ENC.CONTACT_DATE. Voor een eerste analyse wordt een periode van 3 tot 6 maanden aanbevolen, zodat de query snel genoeg blijft. - Contacttypen: het script filtert op klinische opnames en spoedcontacten (
ENC_TYPE_C-waarden zijn vaak 3 en 50, maar controleer dit inZC_ENC_TYPE). - Ordertypen: pas de waarden voor
ORDER_TYPE_Cvoor labs, beeldvorming en consulten aan op basis van de lokale configuratie vanZC_ORDER_TYPE. - Prestaties: het script doorzoekt tabellen met veel data, zoals
ORDER_PROCenCLARITY_ADT. Zorg voor de juiste indexering of voer het script buiten piekuren uit.
Voorbeeldquery 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 Klaar om aan de slag te gaan?
Begin vandaag met het verbeteren van de klinische bedrijfsvoering door deze template toe te passen op je Epic-data. Ons team helpt je bij het extractieproces, zodat je snel resultaat ziet.
Verbeter het patiënttraject en verkort de doorlooptijd
Breng klinische bottlenecks in kaart en verkort de doorlooptijd met 30%.
Geen creditcard nodig. De installatie duurt maar een paar minuten.