Jouw datatemplate voor de patiëntreis
Jouw datatemplate voor de patiëntreis
- Aanbevolen attributen voor klinische context
- Belangrijke procesmijlpalen 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 binnen de patiëntreis, zoals 'Patiënt geregistreerd', 'Medicatie toegediend' of 'Ontslagopdracht ondertekend'. Het is het centrale element voor het definiëren van de procesflow. In de analyse vormt dit veld de knooppunten van de procesmap. Het wordt afgeleid uit verschillende transactiec codes en orderstatussen in het EPD, zodat een leesbaar event log ontstaat. Waarom dit belangrijk is Hiermee worden de processtappen gedefinieerd en kun je de workflow visualiseren. Waar je het vindt Afgeleid uit de tabellen CLARITY_ADT, ORDER_PROC en ORDER_MED. Voorbeelden Triage voltooidDiagnostische test aangevraagdPatiënt ontslagenMedicatie toegediend | |||
| Patiënt-episode PatientEpisodeId | De unieke identificatie voor het specifieke patiëntcontact of de specifieke zorgepisode. | ||
| Beschrijving De patiënt-episode is de primaire case-identificatie voor process mining. Hiermee worden alle klinische, administratieve en logistieke gebeurtenissen gegroepeerd die bij één aaneengesloten zorgperiode horen, zoals een klinische opname of een bezoek aan de spoedeisende hulp. In Epic Clarity komt dit meestal overeen met het Contact Serial Number (CSN) of Encounter ID. Met dit attribuut kun je de volledige patiëntreis reconstrueren. Zo koppel je triage, diagnose, behandeling en ontslag aan één samenhangende procesinstantie. Waarom dit belangrijk is Dit is de belangrijkste sleutel om losse gebeurtenissen aan één process case te koppelen. Waar je het vindt Epic Clarity-tabel: PAT_ENC, kolom: PAT_ENC_CSN_ID Voorbeelden 200459112200459113200459114200459115 | |||
| Timestamp van gebeurtenis EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond. | ||
| Beschrijving Dit attribuut registreert het precieze moment waarop een gebeurtenis in het Epic-systeem is vastgelegd. Je gebruikt het om activiteiten in de juiste volgorde te zetten en alle metriek op basis van tijdsduur te berekenen, zoals verblijfsduur en doorlooptijden. Nauwkeurigheid in dit veld is belangrijk om bottlenecks te vinden. Het ondersteunt de dashboards voor triagedoorvoer en tijd tot definitieve diagnose door de tijdsankers voor begin- en eindpunten te leveren. Waarom dit belangrijk is Hiermee kun je doorlooptijden, doorlooptijden tot oplevering en de procesvolgorde berekenen. Waar je het vindt 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 officieel wordt vastgelegd, meestal Epic EHR. | ||
| Beschrijving Dit attribuut identificeert de herkomst van de data. 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. In de analyse zorgt het voor inzicht in de dataherkomst. Ook helpt het bij het oplossen van problemen wanneer bepaalde gebeurtenissen ontbreken of afwijken van de bron. Waarom dit belangrijk is Het geeft traceerbaarheid en context bij de herkomst van de data. Waar je het vindt Hardcoded of afgeleid uit de configuratie van de verbindingsreeks. Voorbeelden Epic EHREpic ClarityEpic Caboodle | |||
| Laatste data-update LastDataUpdate | De timestamp waarop de data is geëxtraheerd of voor het laatst is vernieuwd. | ||
| Beschrijving Dit attribuut geeft aan wanneer het record voor het laatst door de ETL-pipeline is verwerkt. Het verschilt van de timestamp van de gebeurtenis en helpt bij het bewaken van de actualiteit van de data. Analisten gebruiken dit om te bepalen of het dashboard de actuele situatie weergeeft of dat datavertraging de nauwkeurigheid van KPI's zoals triagewachttijden beïnvloedt. Waarom dit belangrijk is Hiermee kun je de actualiteit en betrouwbaarheid van de process mining-data beoordelen. Waar je het vindt Timestamp van het ETL-systeem. Voorbeelden 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Eindtijd van gebeurtenis EventEndTime | De timestamp waarop de activiteit is afgerond. | ||
| Beschrijving Veel gebeurtenissen vinden op één moment plaats, maar sommige activiteiten, zoals 'Diagnostische test uitgevoerd' of 'Consult afgerond', hebben een duur. Dit attribuut legt het tijdstip van afronding vast. Hiermee kun je actieve verwerkingstijd onderscheiden van wachttijd. Dat is vooral relevant voor het dashboard voor doorlooptijden van diagnostische diensten. Waarom dit belangrijk is Hiermee kun je de activiteitsduur en het gebruik van middelen berekenen. Waar je het vindt Raadpleeg de Epic EHR-documentatie voor specifieke kolommen met eindtijden in ORDER_PROC. Voorbeelden 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| Heropnamevlag ReadmissionFlag | Geeft aan of de patiënt binnen 30 dagen onverwacht is teruggekeerd. | ||
| Beschrijving Dit booleaanse attribuut geeft aan of deze episode binnen 30 dagen is gevolgd door een ongeplande opname van dezelfde patiënt. Het vormt de basis van de KPI voor het percentage ongeplande heropnames binnen 30 dagen. In de analyse is dit een belangrijke uitkomstvariabele. Procespaden met de vlag 'True' worden onderzocht om oorzaken in de ontslagplanning te vinden. Waarom dit belangrijk is Het brengt mislukte ontslagprocessen en problemen met de kwaliteit van zorg aan het licht. Waar je het vindt Berekend met SQL door toekomstige patiëntcontacten voor hetzelfde MRN te bekijken. Voorbeelden truefalse | |||
| Naam van afdeling DepartmentName | De ziekenhuisafdeling of het ziekenhuisonderdeel waar de activiteit plaatsvond. | ||
| Beschrijving Dit attribuut identificeert de functionele locatie van de gebeurtenis, zoals 'Spoedeisende hulp', 'Radiologie' of 'Algemene verpleegafdeling'. Het is belangrijk voor de analyse van interne afdelingsoverdrachten. De data wordt gebruikt om de procesmap per afdeling te segmenteren. Zo kunnen managers bottlenecks binnen 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 je het vindt Epic Clarity-tabel: CLARITY_DEP, kolom: DEPARTMENT_NAME Voorbeelden Spoedeisende hulpRadiologieICUKindergeneeskunde | |||
| Ontslagbestemming DischargeDisposition | De bestemming van de patiënt na ontslag, zoals thuis, een verpleeghuis of overleden. | ||
| Beschrijving Dit attribuut registreert waar de patiënt na het verlaten van het ziekenhuis naartoe ging. Het wordt vastgelegd bij de activiteit 'Patiënt ontslagen'. Dit is belangrijk voor het dashboard voor heropnamerisico, omdat patiënten die naar een Skilled Nursing Facility (SNF) gaan een ander heropnameprofiel hebben dan patiënten die naar huis gaan. Waarom dit belangrijk is Het geeft context bij de uitkomst van het zorgproces. Waar je het vindt Epic Clarity-tabel: PAT_ENC, kolom: DISCH_DISP_C Voorbeelden ThuisVerpleeghuisThuiszorg | |||
| Patiënt-MRN PatientMrn | Het Medical Record Number waarmee de patiënt wordt geïdentificeerd. | ||
| Beschrijving Het MRN is de unieke patiëntidentificatie binnen het zorgsysteem en verschilt van de episode-ID. Hiermee kun je de geschiedenis van een patiënt over meerdere bezoeken volgen. Dit attribuut wordt gebruikt om heropnames te detecteren en afzonderlijke episodes te koppelen voor het dashboard voor heropnamerisico. In het generieke model wordt het gekoppeld aan 'Customer'. Waarom dit belangrijk is Het is belangrijk om herhaalde bezoeken te herkennen en de patiëntgeschiedenis te analyseren. Waar je het vindt 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 registreert de bevestigde medische aandoening van de patiënt. Het wordt meestal ingevuld tijdens de activiteit 'Diagnose bevestigd'. Je gebruikt het om cases op klinische aandoening te groeperen voor de weergave van naleving van klinische protocollen. Door het te koppelen aan 'Product' kunnen analisten zien hoe de 'productie' van zorg verschilt per medische aandoening. Waarom dit belangrijk is Het groepeert cases op klinische overeenkomst voor protocolanalyse. Waar je het vindt Epic Clarity-tabel: PAT_ENC_DX, kolom: DX_ID Voorbeelden J18.9I21.9E11.9 | |||
| Provider-ID ProviderId | De identificatie 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 ontslagopdrachten ondertekent. Het wordt gekoppeld aan het generieke attribuut 'User' 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 je het vindt Epic Clarity-tabel: CLARITY_EMP, kolom: USER_ID Voorbeelden EMP10023DOC5592SYSTEEM | |||
| Triage-urgentieklasse TriageAcuityLevel | De ernstscore die tijdens de triage aan de patiënt is toegekend. | ||
| Beschrijving Dit attribuut geeft aan hoe dringend de toestand van de patiënt is, meestal op een schaal zoals ESI-niveaus 1-5. Het wordt vastgelegd tijdens de activiteit 'Triage afgerond'. Hiermee kun je segmenteren in het dashboard voor resource-intensiteit per ernstscore. Patiënten met een hoge urgentie volgen andere procespaden dan patiënten met een lage urgentie. Dit veld helpt die varianten uit elkaar te houden. Waarom dit belangrijk is Het segmenteert het proces op basis van urgentie en verwacht gebruik van middelen. Waar je het vindt Raadpleeg de Epic EHR-documentatie voor het Acuity-veld in ED-logs. Voorbeelden 1 - Reanimatie2 - Acuut3 - Spoed | |||
| Type patiëntcontact EncounterType | De classificatie van het patiëntbezoek, zoals klinische opname of spoedzorg. | ||
| Beschrijving Dit attribuut categoriseert de aard van de patiënt-episode. Veelvoorkomende waarden zijn 'Spoed', 'Klinische opname', 'Poliklinisch' en 'Virtueel'. Dit veld wordt gekoppeld aan 'CaseType' en is belangrijk voor het filteren van de analyse. Het dashboard voor ontslagplanning is bijvoorbeeld vooral relevant voor klinische opnames, terwijl triage specifiek is voor spoedzorg. Waarom dit belangrijk is Het geeft de context op hoofdlijnen voor de procesinstantie. Waar je het vindt Epic Clarity-tabel: PAT_ENC, kolom: ENC_TYPE_C Voorbeelden SpoedPoliklinisch ziekenhuisKlinische opname | |||
| Is geautomatiseerde planning IsAutomatedScheduling | Vlag die aangeeft of de planning zonder tussenkomst van medewerkers is uitgevoerd. | ||
| Beschrijving Dit booleaanse attribuut wordt afgeleid uit de planningsmethode. Als de afspraak via MyChart of een geautomatiseerde Cadence-workflow is gemaakt, is de waarde True. Het ondersteunt rechtstreeks de KPI voor het automatiseringspercentage van vervolgafspraken. Zo krijgen operationele managers inzicht in hoeveel administratief werk door technologie wordt overgenomen. Waarom dit belangrijk is Het meet hoe succesvol het proces is geautomatiseerd. Waar je het vindt Afgeleid uit 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 van het type 'Diagnostische test uitgevoerd'. Zo kun je een financiële laag aan de procesmap toevoegen. Het is geen primaire klinische metriek, maar helpt de administratie wel om het financiële gewicht van verschillende procesvarianten te begrijpen, vooral varianten met hoge ernstscores en veel inzet van middelen. Waarom dit belangrijk is Het voegt een financiële dimensie toe aan de analyse van procesefficiëntie. Waar je het vindt Facturatie- of kostprijsadministratietabellen die aan de procedure zijn gekoppeld. Voorbeelden 150.001200.0045.00 | |||
| Planningsmethode SchedulingMethod | Geeft aan hoe de vervolgafspraak is geboekt. | ||
| Beschrijving Dit attribuut legt vast via welk kanaal afspraken zijn geboekt, zoals 'MyChart', 'Cadence Auto' of 'Baliemedewerker'. Het is belangrijk voor het dashboard over de automatiseringsstatus van poliklinische follow-up. Als de waarde wijst op een systeem- of patiëntgestuurd digitaal kanaal, kan de vlag 'IsAutomated' op true worden gezet. Zo wordt zichtbaar hoe succesvol digitale initiatieven zijn. Waarom dit belangrijk is Het volgt de invoering van geautomatiseerde of self-service-tools. Waar je het vindt Raadpleeg de Epic EHR-documentatie voor de bron van het aanmaken van afspraken. Voorbeelden MyChartCadenceTelefoonPersoonlijk | |||
| Regionaam RegionName | De geografische regio of ziekenhuislocatie. | ||
| Beschrijving Voor zorgorganisaties met meerdere locaties identificeert dit attribuut de vestiging. Zo kun je prestaties tussen verschillende ziekenhuislocaties vergelijken. Door het te koppelen aan 'Region' kun je benchmarking tussen locaties uitvoeren en zien of het ene ziekenhuis triage beter afhandelt dan het andere. Waarom dit belangrijk is Hiermee kun je verschillende locaties binnen een zorgnetwerk vergelijken. Waar je het vindt Afgeleid uit stamgegevens van de afdeling of locatie. Voorbeelden NoordcampusStadscentrumWestvleugel | |||
| Specialisme van voorschrijvende zorgverlener OrderingProviderSpecialty | Het medisch specialisme van de arts die een consult of test aanvraagt. | ||
| Beschrijving Dit attribuut bevat de afdeling of het specialisme, zoals 'Cardiologie' of 'Oncologie', van de voorschrijvende zorgverlener. Het wordt gebruikt in het dashboard voor wachttijd bij specialistische consulten. Hiermee kun je analyseren of bepaalde specialismen langer wachten op interne diensten dan andere. Zo worden mogelijke verschillen of tekorten aan middelen binnen specifieke zorglijnen zichtbaar. Waarom dit belangrijk is Het segmenteert de vraag naar diagnostische diensten en consulten. Waar je het vindt Raadpleeg de Epic EHR-documentatie voor stamgegevens van zorgverleners. Voorbeelden CardiologieInterne geneeskundeOrthopedie | |||
| Status protocolnaleving ProtocolAdherenceStatus | Status die aangeeft of de case het standaard klinische procespad heeft gevolgd. | ||
| Beschrijving Dit attribuut vergelijkt de volgorde van activiteiten in de case met een vastgesteld referentiemodel, de Standard Operating Procedure. Het ondersteunt de weergave van naleving van klinische protocollen. Mogelijke waarden zijn 'Conform', 'Stap overgeslagen' en 'Buiten volgorde'. Zo kunnen klinische verantwoordelijken snel niet-conforme cases filteren zonder elke procesmap handmatig te bekijken. Waarom dit belangrijk is Het maakt afwijkingen van zorgstandaarden op basis van bewijs snel zichtbaar. Waar je het vindt Berekend in de process mining-tool of vooraf verwerkt in SQL. Voorbeelden ConformAfwijkendOnvolledig | |||
| Wachtdduur overdracht TransferWaitDuration | De verstreken tijd tussen een overdrachtsorder en de daadwerkelijke overdracht. | ||
| Beschrijving Deze metriek meet het verschil tussen 'Overdracht aangevraagd' en 'Patiënt overgedragen'. Het is het belangrijkste datapunt voor de analyse van interne afdelingsoverdrachten. Hoge waarden wijzen op boarding, waarbij patiënten op een bed wachten. Dat blokkeert de instroom vanuit de spoedeisende hulp. Waarom dit belangrijk is Het maakt logistieke en capaciteitsbottlenecks in de patiëntstroom zichtbaar. Waar je het vindt Berekend als het verschil tussen de timestamps van de order- en overdrachtsgebeurtenissen. Voorbeelden 2 uur 30 min.45 min.12 uur | |||
Activiteiten in het patiënttraject
| Activiteit | Beschrijving | ||
|---|---|---|---|
| Diagnose bevestigd | Het vastleggen van een bevestigde diagnose in de probleemlijst of het diagnoseveld van het patiëntcontact. Dit markeert het einde van de onderzoeksfase. | ||
| Waarom dit belangrijk is Nodig voor de KPI 'Time to Definitive Diagnosis'. Markeert de overgang van beoordeling naar gerichte behandeling. Waar je het vindt PAT_ENC_DX-tabel of PROBLEM_LIST-update die aan het patiëntcontact is gekoppeld. Vastleggen Vastgelegd wanneer de zorgverlener een item toevoegt aan de activiteit Encounter Diagnosis Eventtype explicit | |||
| Patiënt geregistreerd | Het aanmaken van het patiëntcontact in het systeem markeert de start van het zorgtraject. Dit wordt expliciet vastgelegd wanneer een patiënt bij de registratiebalie of op de spoedeisende hulp aankomt en in Epic wordt ingecheckt. | ||
| Waarom dit belangrijk is Dit vormt het ankerpunt voor het volledige Patient Journey en maakt de berekening van de totale ligduur mogelijk. Essentieel voor het dashboard 'Triage Throughput and Wait Times'. Waar je het vindt ADT Feed (Event A04 of A01) of Clarity-tabel PAT_ENC (aanmaak van HSP_ACCOUNT_ID). Vastleggen Vastgelegd wanneer de transactie 'Check In' of 'Admit' wordt uitgevoerd Eventtype explicit | |||
| Patiënt ontslagen | De officiële afsluiting van het klinische patiëntcontact. Dit wordt vastgelegd wanneer de patiënt virtueel uit de Census wordt ontslagen. | ||
| Waarom dit belangrijk is Het formele einde van het traject voor berekeningen van de 'Length of Stay'. Essentieel voor 'Patient Flow Variant Discovery'. Waar je het vindt ADT Feed (Event A03) of PAT_ENC_HSP.DISCH_TIME. Vastleggen Vastgelegd wanneer administratief personeel de ontslagworkflow voltooit Eventtype explicit | |||
| Triage voltooid | De afronding van de eerste verpleegkundige beoordeling of triage-evaluatie. Dit wordt meestal vastgelegd wanneer het triageflowsheet wordt ingediend of de triagestatus verandert in 'Complete'. | ||
| Waarom dit belangrijk is Belangrijk voor het dashboard 'Triage Throughput and Wait Times' om de efficiëntie aan de voorkant van het proces te meten. Vertragingen hier werken door in het hele zorgpad. Waar je het vindt PAT_ENC_HSP.TRIAGE_END_TIME of de timestamp waarop een specifieke flowsheetrij wordt ingediend (FLO_MEASUREMENT). Vastleggen Vastgelegd wanneer de triagedocumentatie wordt ondertekend of een statusveld wordt bijgewerkt Eventtype explicit | |||
| Consult aangevraagd | Een order voor een specialist om de patiënt te beoordelen. Dit wordt in Epic vastgelegd als een specifiek procedureordertype 'Consult'. | ||
| Waarom dit belangrijk is Startpunt voor de KPI 'Specialist Consultation Lead Time'. Helpt tekorten binnen specifieke medische specialismen te herkennen. Waar je het vindt ORDER_PROC waarin ORDER_CLASS = 'Consult' of specifieke verwijzingsorders. Vastleggen Vastgelegd wanneer de consultorder wordt ondertekend Eventtype explicit | |||
| Consult afgerond | De afronding van de beoordeling door de specialist, meestal gemarkeerd door het ondertekenen van een Consult Note of het sluiten van de consultorder. | ||
| Waarom dit belangrijk is Eindpunt voor 'Specialist Consultation Lead Time'. Geeft aan dat het specialistische advies is gegeven en het zorgplan verder kan. Waar je het vindt 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 de statusupdate van de order Eventtype inferred | |||
| Diagnostische test aangevraagd | Het invoeren van een order voor beeldvorming (Radiology) of laboratoriumdiensten. Dit wordt vastgelegd wanneer een arts een order invoert en ondertekent in het CPOE-systeem. | ||
| Waarom dit belangrijk is Het startpunt voor het dashboard 'Diagnostic Service Cycle Times'. Hoge aantallen zonder bijbehorende resultaten wijzen op bottlenecks. Waar je het vindt ORDER_PROC-tabel waarin ORDER_TYPE Lab of Imaging/Radiology is. Vastleggen Vastgelegd wanneer de orderstatus 'Signed' of 'Active' wordt Eventtype explicit | |||
| Diagnostische test uitgevoerd | De daadwerkelijke uitvoering van de diagnostische test of het indienen van het resultaat. Bij laboratoriumtests is dit het moment waarop het monster wordt verwerkt; bij beeldvorming het moment waarop de scan is voltooid. | ||
| Waarom dit belangrijk is Eindpunt voor de KPI 'Mean Diagnostic Test Cycle Time'. Belangrijk om vertragingen in klinische decision-supportdiensten te begrijpen. Waar je het vindt ORDER_PROC.PROC_END_TIME of ORDER_STAT_HISTORY wanneer de status verandert in 'Completed' of 'Resulted'. Vastleggen Vastgelegd wanneer de laboratoriummedewerker de taak voltooit of de resultaatinterface data ontvangt Eventtype explicit | |||
| Medicatie toegediend | Het toedienen van medicatie aan de patiënt door een verpleegkundige of zorgverlener. Dit wordt vastgelegd in het Medication Administration Record (MAR). | ||
| Waarom dit belangrijk is Kerngebeurtenis voor het dashboard 'Medication Delivery Performance'. Volgt de naleving van het 'Treatment Plan Developed'. Waar je het vindt MAR_ADMIN_INFO-tabel, specifiek gebeurtenissen met de actie 'Given' of 'New Bag'. Vastleggen Vastgelegd wanneer de verpleegkundige de polsband van de patiënt en de medicatie scant (BCMA) Eventtype explicit | |||
| Ontslagorder ondertekend | De formele toestemming van de arts voor de patiënt om het ziekenhuis te verlaten. Dit is een specifieke order in Epic. | ||
| Waarom dit belangrijk is Een belangrijke mijlpaal in 'Discharge Planning and Execution'. Het verschil tussen dit moment en het daadwerkelijke vertrek is administratieve vertraging. Waar je het vindt ORDER_PROC waarin het type 'Discharge Patient' is. Vastleggen Vastgelegd wanneer de arts de ontslagorder ondertekent Eventtype explicit | |||
| Ontslagplanning gestart | De start van activiteiten ter voorbereiding op het ontslag van de patiënt. Dit wordt vastgelegd via documentatie van Case Management of specifieke ordertypen voor 'Discharge'. | ||
| Waarom dit belangrijk is Belangrijk voor het dashboard 'Discharge Planning and Execution'. Een vroege start hangt samen met een kortere ligduur. Waar je het vindt Aanmaak van HSP_DISCH_PLAN of de eerste notitie van een Case Manager/Social Worker. Vastleggen Afgeleid van de eerste interactie met Discharge Navigator of een Case Mgmt-notitie Eventtype inferred | |||
| Overdracht aangevraagd | Een verzoek om de patiënt naar een andere unit of een ander zorgniveau te verplaatsen. Dit wordt in het systeem vastgelegd als een 'Bed Request' of 'Transfer Order'. | ||
| Waarom dit belangrijk is Startpunt voor 'Average Inter-Ward Transfer Time'. Maakt onderscheid tussen de klinische beslissing om te verplaatsen en de logistieke beschikbaarheid van een bed. Waar je het vindt ADT_TRANSFER_ORDER of ORDER_PROC (Bed Request). Vastleggen Vastgelegd wanneer de arts de overdrachtsorder invoert Eventtype explicit | |||
| Patiënt overgedragen | De fysieke verplaatsing van de patiënt naar een nieuwe afdeling of verpleegafdeling. Dit wordt vastgelegd via ADT-overdrachtsgebeurtenissen. | ||
| Waarom dit belangrijk is Eindpunt voor 'Average Inter-Ward Transfer Time'. Ondersteunt 'Internal Ward Transfer Analysis' om bottlenecks in de ziekenhuislogistiek te vinden. Waar je het vindt ADT Feed (Event A02) of PAT_ENC_HSP_TRANSACTION (Transfer In). Vastleggen Vastgelegd wanneer de afdelingsmedewerker de patiëntlocatie in Census bijwerkt Eventtype explicit | |||
| Vervolgafspraak gepland | Het boeken van een toekomstig poliklinisch bezoek voor de patiënt. Dit wordt vastgelegd in de planningsmodule Cadence, gekoppeld aan het patiëntdossier. | ||
| Waarom dit belangrijk is Ondersteunt 'Follow-up Scheduling Automation Rate'. Zorgt voor continuïteit van zorg en helpt heropnames voorkomen. Waar je het vindt PAT_ENC_APPT gekoppeld aan de patiënt-ID, aangemaakt rond het ontslagmoment. Vastleggen Vastgelegd wanneer het afspraakslot in Cadence wordt bevestigd Eventtype explicit | |||
| Zorgplan gestart | Het toewijzen van een specifiek klinisch zorgpad of protocol aan de patiënt. Dit wordt vastgelegd wanneer een standaard Order Set of Care Plan aan de context van het patiëntcontact wordt gekoppeld. | ||
| Waarom dit belangrijk is Ondersteunt de 'Clinical Protocol Compliance View' door vast te leggen dat de standaardzorg gevolgd moet worden. Vanaf dit moment kunnen afwijkingen van de geplande vervolgstappen worden gemeten. Waar je het vindt ORDER_SET_BKG of care-plan-tabellen die aangeven dat een protocol aan het patiëntcontact is gekoppeld. Vastleggen Vastgelegd wanneer de zorgverlener een Order Set selecteert en ondertekent Eventtype explicit | |||
Extractiegidsen
Stappen
- Log in op Epic Hyperspace en open de Reporting Workbench (RWB) via de activiteit Analytics of My Reports.
- Maak een nieuw rapport door het tabblad Library te selecteren en te zoeken naar de template "Encounter Search" of "Patient Encounters". Met deze template haal je contactgegevens op die met de CSN (Contact Serial Number) zijn geïdentificeerd.
- Criteria instellen (tabblad Settings):
- Stel Date Range in, bijvoorbeeld Discharge Date = Last 90 Days, om afgeronde episodes vast te leggen.
- Filter op Encounter Type, bijvoorbeeld ‘Hospital Encounter’ of ‘Emergency’, om niet-relevante poliklinische bezoeken uit te sluiten.
- Filter op Afdeling of Facility als je een specifieke scope nodig hebt.
- Weergavekolommen instellen (tabblad Display):
- Dit is de belangrijkste stap van de extractie. Zoek de specifieke kolommen die overeenkomen met de timestamps van de vereiste activiteiten en voeg ze toe.
- Voeg Patient Identifiers toe:
CSN(Patient Episode) enMRN(Patient ID). - Voeg Demographics/Attributes toe:
Afdeling,Discharge Disposition,Primary Diagnosis CodeenProvider. - Voeg timestampkolommen toe: zoek naar kolommen zoals
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Timeenzovoort. Zie het gedeelte Query/Configuration voor de exacte koppeling.
- Voer het rapport uit en controleer de resultaten 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.
- Datatransformatie (belangrijk):
- De RWB-export levert een ‘Wide’-dataset op, met één rij per patiënt-episode en meerdere timestampkolommen.
- Je moet deze data Unpivoten en zo omvormen dat elke timestampkolom een afzonderlijke rij in het event log wordt.
- Maak een eindbestand met de kolommen
PatientEpisodeId,ActivityName,EventTimestampen de gekoppelde attributen.
- Datums opmaken: Zorg dat
EventTimestampde ISO-notatie (YYYY-MM-DD HH:MM:SS) gebruikt die compatibel is met ProcessMind. - Eindcontrole: Controleer of het bestand de koppen
PatientEpisodeId,ActivityNameenEventTimestampbevat en upload het naar ProcessMind.
Configuratie
- Template: gebruik "Encounter Search" (LBF) of "Find Patients", afhankelijk van je Epic-versie.
- Datumbereik: beperk het bereik in eerste instantie tot 3-6 maanden om time-outfouten te voorkomen. RWB is niet geoptimaliseerd voor grote bulksgewijze extracties.
- Rijlimiet: Epic RWB heeft vaak een rijlimiet, bijvoorbeeld 25.000 of 50.000 rijen. Zorg dat je datumbereik deze limiet niet overschrijdt of voer meerdere batches uit.
- Rechten: je hebt de beveiligingsrechten 'Create' en 'Export' voor Reporting Workbench nodig.
- Prestaties: voer de zoekopdracht bij grote historische bereiken uit buiten piekuren.
- Detailniveau: deze methode levert samenvattende timestamps op encounterniveau, bijvoorbeeld 'First Med Admin'. De methode haalt niet elke afzonderlijke herhaling op, zoals elke toegediende pil, tenzij je specifieke "Audit"-templates gebruikt. Die zijn voor deze toepassing zeldzaam.
a 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 rechten nodig voor
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOen gerelateerde referentietabellen.Bepaal de scope en filter-ID's: voer voordat je het volledige script uitvoert enkele kleine verkenningsquery's uit om de specifieke waarden van
ORDER_TYPE_Cvoor Labs, Radiology, Consults en Transfers in jouw Epic-instantie te bepalen. Deze Custom Lists (Category Lists) verschillen per ziekenhuis.Stel het tijdvenster in: zoek in het SQL-script naar de
WHERE-clausules die filteren opCONTACT_DATEofHOSP_ADMSN_TIME. Pas deze aan naar het gewenste extractievenster, bijvoorbeeld de laatste 6 maanden.Koppel aangepaste flowsheets (optioneel): als je precieze timestamps nodig hebt voor Triage of Discharge Planning die niet in de hoofd-encountertabel staan, zoek dan de specifieke
FLO_MEAS_ID(Flowsheet Measure ID) voor deze velden en werk de tijdelijke secties in het script bij.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 events te combineren in één gestandaardiseerde eventlogstructuur.Verwerking achteraf: de query retourneert een platte lijst. Controleer of
EventTimestampniet leeg is. Zet database-specifieke datum-tijdnotaties om naar ISO 8601 (YYYY-MM-DDTHH:MM:SS) als je middleware dat vereist.Exporteer de data: sla de resultatenset op als CSV-bestand. Zorg dat de kopteksten overeenkomen met de gedefinieerde attributen, zoals PatientEpisodeId en ActivityName.
Upload naar ProcessMind: importeer de CSV in ProcessMind. Koppel
PatientEpisodeIdaan Case ID,ActivityNameaan Activity enEventTimestampaan Timestamp.
Configuratie
- Databaseverbinding: Epic Clarity, meestal met een MSSQL- of Oracle-back-end.
- Datumfiltering: filter op
PAT_ENC.HOSP_ADMSN_TIMEofPAT_ENC.CONTACT_DATE. Voor een eerste analyse raden we 3-6 maanden aan, zodat de query goed blijft presteren. - Encountertypen: het script filtert op Inpatient- en Emergency-encounters, met waarden voor
ENC_TYPE_Cdie vaak 3 en 50 zijn. Controleer dit wel aan de hand vanZC_ENC_TYPE. - Ordertypen: je moet de waarden van
ORDER_TYPE_Cvoor Labs, Imaging en Consults aanpassen op basis van de lokale configuratie vanZC_ORDER_TYPE. - Prestaties: het script doorzoekt tabellen met veel data, zoals
ORDER_PROCenCLARITY_ADT. Zorg voor passende indexering of voer het script buiten piekuren uit.
a 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 je klinische bedrijfsvoering door deze template op je Epic-data toe te passen. Ons team helpt je bij het extractieproces, zodat je snel resultaat ziet.
Verbeter vandaag je patiëntreis en verkort doorlooptijden
Ontdek klinische knelpunten en verkort de doorlooptijd met 30%.
Geen creditcard nodig. Je bent in een paar minuten klaar met de installatie.