Uw Patiëntreis Data Template
Uw Patiëntreis Data Template
- Aanbevolen attributes voor klinische context
- Belangrijke procesmijlpalen voor tracking
- Specifieke extractiehandleiding voor Epic EHR
Patiëntreis Attributes
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke klinische of administratieve actie uitgevoerd. | ||
| Omschrijving Dit attribute legt de naam vast van de event die plaatsvindt binnen de patiëntreis, zoals 'Patiënt Geregistreerd', 'Medicatie Toegediend', of 'Ontslag Order Ondertekend'. Het is het centrale element voor het definiëren van de processtroom. In analyse vormt dit veld de knooppunten van de procesmap. Het is afgeleid van verschillende transactiecodes en order statussen binnen de EHR om een menselijk leesbare event log te creëren. Het belang Het definieert de stappen van het proces en maakt de visualisatie van de workflow mogelijk. Vindplaats Afgeleid van CLARITY_ADT, ORDER_PROC en ORDER_MED tabellen. Voorbeelden Triage voltooidDiagnostische Test BesteldPatiënt OntslagenMedicatie Toegediend | |||
| Gebeurtenistijdstempel EventTimestamp | De exacte datum en tijd waarop de activiteit plaatsvond. | ||
| Omschrijving Dit attribute legt het exacte moment vast waarop een event in het Epic systeem werd gelogd. Het wordt gebruikt om activiteiten te sequencen en alle op duur gebaseerde metrics te berekenen, zoals verblijfsduur en doorlooptijden. Nauwkeurigheid in dit veld is cruciaal voor het identificeren van knelpunten. Het ondersteunt de Triage Doorstroom en Tijd tot Definitieve Diagnose dashboards door de temporele ankers voor start- en eindpunten te leveren. Het belang Het maakt de berekening van doorlooptijden, lead times en procesvolgorde mogelijk. Vindplaats Verschillende timestamp kolommen (bijv. EFFECTIVE_TIME, ORDER_TIME) afhankelijk van de brontabel. Voorbeelden 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Patiënt Episode PatientEpisodeId | De unieke identifier voor de specifieke patiënt encounter of zorg episode. | ||
| Omschrijving De Patiënt Episode dient als de primaire case identifier voor process mining. Het groepeert alle klinische, administratieve en logistieke events gerelateerd aan een enkele continue zorgperiode, zoals een klinisch verblijf of een bezoek aan de spoedeisende hulp. In Epic Clarity komt dit typisch overeen met het Contact Serial Number (CSN) of Encounter ID. Het analyseren van dit attribute maakt de reconstructie van de end-to-end patiëntreis mogelijk. Het maakt de associatie van triage, diagnose, behandeling en ontslagactiviteiten mogelijk tot een coherente procesinstantie. Het belang Het is de fundamentele sleutel voor het koppelen van disparate events aan één enkele procescase. Vindplaats Epic Clarity Tabel: PAT_ENC, Kolom: PAT_ENC_CSN_ID Voorbeelden 200459112200459113200459114200459115 | |||
| Bronsysteem SourceSystem | Het systeem van record voor de data, meestal Epic EHR. | ||
| Omschrijving Dit attribute identificeert de herkomst van de data. Hoewel primair 'Epic EHR' voor deze weergave, is het nuttig als data wordt gemengd met andere systemen zoals een apart LIS (Laboratorium Informatie Systeem) of factureringssysteem. In analyse zorgt het voor data lineage en helpt het bij het oplossen van problemen als specifieke events ontbreken of onjuist zijn geformatteerd vergeleken met de bron. Het belang Het biedt traceerbaarheid en context voor de data-oorsprong. Vindplaats Hardcoded of afgeleid van de connectiestringconfiguratie. Voorbeelden Epic EHREpic ClarityEpic Caboodle | |||
| Laatste data-update LastDataUpdate | De timestamp waarop de data werd geëxtraheerd of voor het laatst werd ververst. | ||
| Omschrijving Dit attribute geeft aan wanneer het record voor het laatst is verwerkt door de ETL-pipeline. Het is onderscheiden van de event timestamp en helpt bij het monitoren van de data versheid. Analisten gebruiken dit om te bepalen of het dashboard de real-time realiteit weerspiegelt of dat er een data latentieprobleem is dat de nauwkeurigheid van KPI's zoals Triage Wachttijden beïnvloedt. Het belang Het helpt de actualiteit en betrouwbaarheid van de process mining data te beoordelen. Vindplaats ETL systeem timestamp. Voorbeelden 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Eindtijd van het event EventEndTime | De timestamp waarop de activiteit werd voltooid. | ||
| Omschrijving Hoewel veel events ogenblikkelijk zijn, hebben sommige activiteiten zoals 'Diagnostische Test Uitgevoerd' of 'Consultatie Voltooid' een duur. Dit attribute legt de voltooiingstijd vast. Het maakt de berekening mogelijk van actieve verwerkingstijd versus wachttijd. Dit is bijzonder relevant voor het Diagnostische Service Doorlooptijden dashboard. Het belang Het maakt de berekening van activiteitsduur en resourcebenutting mogelijk. Vindplaats Raadpleeg de Epic EHR-documentatie voor specifieke eindtijdkolommen in ORDER_PROC. Voorbeelden 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| Encounter Type EncounterType | De classificatie van het patiëntbezoek (bijv. Klinisch, Spoedeisend). | ||
| Omschrijving Dit attribute categoriseert de aard van de patiënt episode. Veelvoorkomende waarden zijn 'Spoedeisend', 'Klinisch', 'Poliklinisch', of 'Virtueel'. Gekoppeld aan 'CaseType', is dit veld fundamenteel voor het filteren van de analyse. Bijvoorbeeld, het Ontslagplanning dashboard is primair relevant voor Klinische encounters, terwijl Triage specifiek is voor Spoedeisende gevallen. Het belang Het biedt de context op hoog niveau voor de procesinstantie. Vindplaats Epic Clarity Tabel: PAT_ENC, Kolom: ENC_TYPE_C Voorbeelden NoodgevalZiekenhuis PolikliniekKlinische opname | |||
| Heropname Vlag ReadmissionFlag | Geeft aan of de patiënt onverwacht binnen 30 dagen terugkeerde. | ||
| Omschrijving Dit boolean attribute identificeert of de specifieke episode werd gevolgd door een andere ongeplande opname voor dezelfde patiënt binnen een venster van 30 dagen. Het is de kern van de 30-Dagen Ongeplande Heropname Percentage KPI. In analyse dient dit als een belangrijke uitkomstvariabele. Procespaden die leiden tot een 'True' vlag worden geanalyseerd om hoofdoorzaken te vinden in de ontslagplanningsfase. Het belang Het identificeert mislukte ontslagprocessen en kwaliteitsproblemen in de zorg. Vindplaats Berekend via SQL, vooruitkijkend naar toekomstige encounters voor hetzelfde MRN. Voorbeelden truefalse | |||
| Naam afdeling DepartmentName | De ziekenhuisafdeling of -dienst waar de activiteit plaatsvond. | ||
| Omschrijving Dit attribute identificeert de functionele locatie van de event, zoals 'Spoedeisende Hulp', 'Radiologie', of 'Algemene Chirurgie Afdeling'. Het is cruciaal voor de Interne Afdelingsoverdracht Analyse. Data wordt gebruikt om de procesmap te segmenteren per afdeling, waardoor managers knelpunten kunnen isoleren die specifiek zijn voor hun eenheid versus systeemwijde ziekenhuisbrede problemen. Het belang Het maakt organisatorische filtering en overdrachtsanalyse mogelijk. Vindplaats Epic Clarity Tabel: CLARITY_DEP, Kolom: DEPARTMENT_NAME Voorbeelden Spoedeisende HulpRadiologieICUPediatrie | |||
| Ontslagbestemming DischargeDisposition | De bestemming van de patiënt bij ontslag (Thuis, Verpleeghuis, Overleden). | ||
| Omschrijving Dit attribute legt vast waar de patiënt naartoe ging na het verlaten van het ziekenhuis. Het wordt vastgelegd bij de 'Patiënt Ontslagen' activiteit. Dit is cruciaal voor het Heropname Risico dashboard, aangezien patiënten die ontslagen worden naar Verpleeghuizen (SNF) andere heropnameprofielen hebben dan degenen die naar huis gaan. Het belang Het contextualiseert de uitkomst van het zorgproces. Vindplaats Epic Clarity Tabel: PAT_ENC, Kolom: DISCH_DISP_C Voorbeelden ThuisVerpleeghuisThuiszorg | |||
| Patiënt MRN PatientMrn | Het Medisch Dossier Nummer dat de patiënt identificeert. | ||
| Omschrijving Het MRN is de unieke identifier voor de patiënt binnen het zorgsysteem, onderscheiden van het episode ID. Het maakt het mogelijk om de geschiedenis van een patiënt over meerdere bezoeken te volgen. Dit attribute wordt gebruikt om heropnames te detecteren en afzonderlijke episodes te koppelen voor het Heropname Risico dashboard. Het mapt naar 'Klant' in het generieke model. Het belang Het is essentieel voor het identificeren van herhaalbezoeken en het analyseren van de patiëntgeschiedenis. Vindplaats Epic Clarity Tabel: PATIENT, Kolom: PAT_ID of PAT_MRN_ID Voorbeelden MRN-882910MRN-112003MRN-554211 | |||
| Primaire Diagnose Code PrimaryDiagnosisCode | De ICD-10 of interne code die de hoofddiagnose vertegenwoordigt. | ||
| Omschrijving Dit attribute legt de bevestigde medische conditie van de patiënt vast. Het wordt meestal ingevuld tijdens de 'Diagnose Bevestigd' activiteit. Het wordt gebruikt om cases te groeperen op klinische conditie voor de Klinische Protocol Compliance View. Mapping naar 'Product' stelt analisten in staat om te zien hoe de 'productie' van zorg verschilt per medische conditie. Het belang Het groepeert cases op klinische gelijkenis voor protocolanalyse. Vindplaats Epic Clarity Tabel: PAT_ENC_DX, Kolom: DX_ID Voorbeelden J18.9I21.9E11.9 | |||
| Triage Urgentieniveau TriageAcuityLevel | De ernstscore toegewezen aan de patiënt tijdens triage. | ||
| Omschrijving Dit attribute geeft de urgentie van de conditie van de patiënt aan, typisch op een schaal (bijv. ESI-niveaus 1-5). Het wordt vastgelegd tijdens de 'Triage Voltooid' activiteit. Het maakt segmentatie mogelijk in het Resource Intensiteit per Ernstscore dashboard. Patiënten met een hoge urgentie volgen andere procespaden dan patiënten met een lage urgentie, en dit veld helpt die varianten te onderscheiden. Het belang Het segmenteert het proces op basis van urgentie en verwachte resourceverbruik. Vindplaats Raadpleeg de Epic EHR-documentatie voor het Acuity-veld in ED-logs. Voorbeelden 1 - Reanimatie2 - Spoedeisend3 - Urgent | |||
| Zorgverlener ID ProviderId | De identifier van de gebruiker of clinicus die de activiteit heeft uitgevoerd. | ||
| Omschrijving Dit attribute legt de unieke ID vast van de medewerker die verantwoordelijk is voor de event, zoals de verpleegkundige die medicatie toedient of de arts die ontslagorders ondertekent. Het is gemapt naar het 'Gebruiker' generieke attribute om resourcevariatie en werkdruk te analyseren. Merk op dat voor geautomatiseerde activiteiten, dit een systeem gebruikers-ID kan zijn. Het belang Het maakt analyse van variatie in prestaties en werkdruk van personeel mogelijk. Vindplaats Epic Clarity Tabel: CLARITY_EMP, Kolom: USER_ID Voorbeelden EMP10023DOC5592SYSTEEM | |||
| Is Geautomatiseerde Planning IsAutomatedScheduling | Vlag die aangeeft of de planning zonder personeelsinterventie is uitgevoerd. | ||
| Omschrijving Dit boolean attribute is afgeleid van de Planningsmethode. Als de afspraak werd gemaakt via MyChart of een geautomatiseerde Cadence workflow, is dit Waar. Het ondersteunt direct de Automatiseringstarief Vervolgafspraken KPI. Dit helpt operationele leiders te begrijpen hoeveel administratieve last wordt overgedragen aan technologie. Het belang Het meet het succes van procesautomatisering. Vindplaats Afgeleid van SchedulingMethod. Voorbeelden truefalse | |||
| Kosten Diagnostische Order DiagnosticOrderCost | De interne kosten geassocieerd met een diagnostische test of procedure. | ||
| Omschrijving Dit attribute kent een financiële waarde toe aan 'Diagnostische Test Uitgevoerd' activiteiten. Het maakt financiële overlay op de procesmap mogelijk. Hoewel geen primaire klinische metric, helpt het de administratie om het financiële gewicht van verschillende procesvarianten te begrijpen, met name die met hoge-resource ernstscores. Het belang Het voegt een financiële dimensie toe aan de analyse van procesefficiëntie. Vindplaats Facturatie- of Kostenboekhoudingstabellen gekoppeld aan de procedure. Voorbeelden 150.001200.0045.00 | |||
| Planningsmethode SchedulingMethod | Geeft aan hoe de vervolgafspraak is geboekt. | ||
| Omschrijving Dit attribute legt het kanaal vast dat wordt gebruikt om afspraken te boeken, zoals 'MyChart', 'Cadence Auto', of 'Front Desk'. Het is cruciaal voor het Poliklinische Vervolg Automatisering Status dashboard. Als de waarde een systeem- of patiëntgestuurd digitaal kanaal aangeeft, kan de 'IsAutomated' vlag op true worden gezet. Het benadrukt het succes van digitale transformatie-initiatieven. Het belang Het volgt de adoptie van geautomatiseerde of self-service tools. Vindplaats Raadpleeg de Epic EHR-documentatie voor de bron van afspraakcreatie. Voorbeelden MyChartCadenceTelefoonPersoonlijk | |||
| Protocolnaleving Status ProtocolAdherenceStatus | Status die aangeeft of de case het standaard klinische zorgpad heeft gevolgd. | ||
| Omschrijving Dit attribute vergelijkt de reeks activiteiten in de case met een gedefinieerd referentiemodel (Standard Operating Procedure). Het ondersteunt de Klinische Protocol Compliance View. Waarden kunnen zijn 'Conform', 'Overgeslagen Stap', of 'Buiten Volgorde'. Dit stelt klinische leiders in staat om snel te filteren op niet-conforme cases zonder handmatige inspectie van elke procesmap. Het belang Het identificeert snel afwijkingen van evidence-based zorgstandaarden. Vindplaats Berekend binnen de process mining tool of voorgeprocesseerd in SQL. Voorbeelden CompliantAfwijkendOnvolledig | |||
| Region Name RegionName | De geografische regio of ziekenhuiscampus. | ||
| Omschrijving Voor zorgsystemen met meerdere campussen identificeert dit attribute de locatie van de faciliteit. Het maakt vergelijking van prestaties tussen verschillende ziekenhuislocaties mogelijk. Het mappen naar 'Regio' maakt multi-site benchmarking mogelijk om te zien of het ene ziekenhuis de Triage Throughput beter beheert dan het andere. Het belang Het maakt benchmarking tussen verschillende faciliteiten in een zorgnetwerk mogelijk. Vindplaats Afgeleid van afdelings- of faciliteitsmasterdata. Voorbeelden NoordcampusStadscentrumWestvleugel | |||
| Specialisme Aanvragende Zorgverlener OrderingProviderSpecialty | Het medisch specialisme van de arts die een consult of test aanvraagt. | ||
| Omschrijving Dit attribute legt de afdeling of het specialisme (bijv. 'Cardiologie', 'Oncologie') van de aanvragende zorgverlener vast. Het wordt gebruikt in het Specialistisch Consult Latentie dashboard. Het helpt bij het analyseren of bepaalde specialismen langere wachttijden voor interne diensten ervaren dan andere, wat potentiële vooroordelen of resource tekorten in specifieke servicelijnen onthult. Het belang Het segmenteert de vraag naar diagnostische en consultatiediensten. Vindplaats Raadpleeg de Epic EHR-documentatie voor provider master data. Voorbeelden CardiologieInterne GeneeskundeOrthopedie | |||
| Vertraging Medicatietoediening MedicationAdminDelay | Tijdsverschil tussen geplande en daadwerkelijke medicatietoediening. | ||
| Omschrijving Dit attribute berekent de variantie tussen de bestelde toedieningstijd en de daadwerkelijke scantijd van de medicatie barcode. Het is van vitaal belang voor het Medicatielevering Prestatie dashboard. Positieve waarden duiden op late toediening. Deze metric stelt verpleegkundig supervisors in staat om diensten of afdelingen te identificeren waar de werkdruk de tijdige zorgverlening beïnvloedt. Het belang Het is een directe maatstaf voor de naleving van verpleegkundige workflows en patiëntveiligheid. Vindplaats Berekend op basis van MAR (Medication Administration Record) data. Voorbeelden 15m-5m1h 20m | |||
| Wachtduur Overplaatsing TransferWaitDuration | Verstreken tijd tussen een overplaatsingsorder en de feitelijke overplaatsing. | ||
| Omschrijving Deze metric meet het verschil tussen 'Overplaatsing Besteld' en 'Patiënt Overgeplaatst'. Het is het primaire datapunt voor de Interne Afdelingsoverdracht Analyse. Hoge waarden hier duiden op 'boarding' (patiënten die wachten op bedden), wat de stroomstroom vanuit de Spoedeisende Hulp blokkeert. Het belang Het belicht logistieke en capaciteitsknelpunten in de patiëntenstroom. Vindplaats Berekend tijdstempelverschil tussen order- en transfer events. Voorbeelden 2h 30m45m12h | |||
Patiëntreis Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Diagnose Bevestigd | Het vastleggen van een bevestigde diagnose in de probleemlijst van de patiënt of het diagnoseveld van de encounter. Vertegenwoordigt de afsluiting van de onderzoeksfase. | ||
| Het belang Vereist voor de 'Tijd tot Definitieve Diagnose' KPI. Markeert de overgang van beoordeling naar gerichte behandeling. Vindplaats PAT_ENC_DX tabel of PROBLEM_LIST update gekoppeld aan de encounter. Vastleggen Vastgelegd wanneer een klinisch specialist een entry toevoegt aan de Encounter Diagnosis activiteit Gebeurtenistype explicit | |||
| Patiënt Geregistreerd | De initiële aanmaak van het patiënt encounter record in het systeem, wat het begin van de zorg episode markeert. Dit wordt expliciet vastgelegd wanneer een patiënt arriveert bij de registratiebalie of spoedeisende hulp en wordt ingecheckt in Epic. | ||
| Het belang Bepaalt het ankerpunt voor de gehele Patiëntreis en maakt de berekening van de totale verblijfsduur mogelijk. Essentieel voor het 'Triage Throughput and Wait Times' dashboard. Vindplaats ADT Feed (Event A04 of A01) of Clarity-tabel PAT_ENC (HSP_ACCOUNT_ID creatie). Vastleggen Vastgelegd wanneer de transactie 'Check In' of 'Admit' wordt uitgevoerd Gebeurtenistype explicit | |||
| Patiënt Ontslagen | De officiële afsluiting van de klinische encounter. Vastgelegd wanneer de patiënt virtueel wordt ontslagen uit de telling. | ||
| Het belang Het formele einde van de episode voor 'Verblijfsduur' berekeningen. Essentieel voor 'Patiëntenstroom Variant Ontdekking'. Vindplaats ADT Feed (Event A03) of PAT_ENC_HSP.DISCH_TIME. Vastleggen Vastgelegd wanneer administratief personeel de ontslag-workflow voltooit Gebeurtenistype explicit | |||
| Triage voltooid | De voltooiing van de initiële verpleegkundige beoordeling of triage-evaluatie. Dit wordt doorgaans vastgelegd wanneer het triage-flowsheet wordt ingediend of de triage status verandert naar 'Voltooid'. | ||
| Het belang Cruciaal voor het 'Triage Throughput and Wait Times' dashboard om de efficiëntie aan de voorkant te meten. Vertragingen hierin werken door in het gehele zorgpad. Vindplaats PAT_ENC_HSP.TRIAGE_END_TIME of timestamp van specifieke Flowsheet rij vastlegging (FLO_MEASUREMENT). Vastleggen Vastgelegd wanneer de triage-documentatie is ondertekend of het statusveld wordt bijgewerkt Gebeurtenistype explicit | |||
| Consultatie Aangevraagd | Een aanvraag geplaatst voor een specialist om de patiënt te evalueren. Vastgelegd als een specifiek procedure ordertype 'Consult' binnen Epic. | ||
| Het belang Startpunt voor 'Doorlooptijd Specialistisch Consult' KPI. Helpt bij het identificeren van tekorten in specifieke medische specialismen. Vindplaats ORDER_PROC waar ORDER_CLASS = 'Consult' of specifieke verwijzingsaanvragen. Vastleggen Vastgelegd wanneer de consultorder is ondertekend Gebeurtenistype explicit | |||
| Consultatie Voltooid | De voltooiing van de specialistische beoordeling, doorgaans gemarkeerd door het ondertekenen van een Consultnotitie of het sluiten van de consultatieorder. | ||
| Het belang Eindpunt voor 'Doorlooptijd Specialistenconsultatie'. Geeft aan dat deskundig advies is gegeven en het zorgplan kan worden voortgezet. Vindplaats HNO_NOTE_TEXT (Notitie ingediend met type Consult) of ORDER_PROC statuswijziging naar Voltooid. Vastleggen Afgeleid van de creatietijd van de Consultnotitie of de statusupdate van de Order Gebeurtenistype inferred | |||
| Diagnostische Test Besteld | Het invoeren van een order voor beeldvorming (Radiologie) of laboratoriumdiensten. Vastgelegd wanneer een arts een order invoert en ondertekent in het CPOE systeem. | ||
| Het belang Het startpunt voor het 'Diagnostische Service Doorlooptijden' dashboard. Hoge volumes hier zonder corresponderende resultaten duiden op knelpunten. Vindplaats ORDER_PROC tabel waar ORDER_TYPE is Lab of Beeldvorming/Radiologie. Vastleggen Vastgelegd wanneer de orderstatus 'Ondertekend' of 'Actief' wordt Gebeurtenistype explicit | |||
| Diagnostische Test Uitgevoerd | De feitelijke uitvoering van de diagnostische test of het vastleggen van het resultaat. Voor labs is dit wanneer het monster wordt verwerkt; voor beeldvorming, wanneer de scan is voltooid. | ||
| Het belang Eindpunt voor de 'Gemiddelde Diagnostische Test Doorlooptijd' KPI. Cruciaal voor het begrijpen van vertragingen in klinische beslissingsondersteunende diensten. Vindplaats ORDER_PROC.PROC_END_TIME of ORDER_STAT_HISTORY wanneer de status verandert naar 'Voltooid' of 'Geresulteerd'. Vastleggen Vastgelegd wanneer de technicus de taak voltooit of de resultaatinterface data ontvangt Gebeurtenistype explicit | |||
| Medicatie Toegediend | De handeling van een verpleegkundige of zorgverlener die medicatie toedient aan de patiënt. Vastgelegd in het Medicatietoedieningsrecord (MAR). | ||
| Het belang Cruciale event voor het 'Medication Delivery Performance' dashboard. volgt de naleving van het 'Ontwikkelde Behandelplan'. Vindplaats MAR_ADMIN_INFO tabel, specifiek events met actie 'Gegeven' of 'Nieuwe Zak'. Vastleggen Vastgelegd wanneer verpleegkundige patiëntenarmband en medicatie scant (BCMA) Gebeurtenistype explicit | |||
| Ontslagorder Ondertekend | De formele toestemming van de arts voor de patiënt om het ziekenhuis te verlaten. Dit is een specifieke orderinvoer in Epic. | ||
| Het belang Een cruciale mijlpaal in 'Ontslagplanning en -uitvoering'. Het verschil tussen dit moment en het daadwerkelijke vertrek vertegenwoordigt administratieve vertraging. Vindplaats ORDER_PROC waar het type 'Patiënt Ontslagen' is. Vastleggen Vastgelegd wanneer de arts de ontslagorder ondertekent Gebeurtenistype explicit | |||
| Ontslagplanning Geïnitieerd | Het begin van activiteiten ter voorbereiding op het ontslag van de patiënt. Vastgelegd via Casemanagement documentatie of specifieke 'Ontslag' order types. | ||
| Het belang Sleutel voor het 'Discharge Planning and Execution' dashboard. Vroege initiatie is gecorreleerd met een verkorte verblijfsduur. Vindplaats Aanmaak van HSP_DISCH_PLAN of eerste notitie door Casemanager/Maatschappelijk Werker. Vastleggen Afgeleid van de eerste interactie met de Ontslagnavigator of Casemanagementnotitie Gebeurtenistype inferred | |||
| Overplaatsing Besteld | Een verzoek om de patiënt te verplaatsen naar een andere afdeling of zorgniveau. Vastgelegd als een 'Bedaanvraag' of 'Transferorder' in het systeem. | ||
| Het belang Startpunt voor 'Gemiddelde Inter-Afdeling Overplaatstijd'. Maakt onderscheid tussen de klinische beslissing om te verplaatsen en de logistieke beschikbaarheid van een bed. Vindplaats ADT_TRANSFER_ORDER of ORDER_PROC (Bed Request). Vastleggen Vastgelegd wanneer de arts de transferorder invoert Gebeurtenistype explicit | |||
| Patiënt Overgeplaatst | De fysieke verplaatsing van de patiënt naar een nieuwe afdeling of zaal. Vastgelegd via ADT transfer events. | ||
| Het belang Eindpunt voor 'Gemiddelde Transfertijd Tussen Afdelingen'. Ondersteunt 'Analyse Interne Afdelingsoverdracht' om knelpunten in ziekenhuislogistiek te vinden. Vindplaats ADT Feed (Event A02) of PAT_ENC_HSP_TRANSACTION (Transfer In). Vastleggen Vastgelegd wanneer de afdelingsassistent de patiëntlocatie in Census bijwerkt Gebeurtenistype explicit | |||
| Vervolgafspraak Gepland | Het boeken van een toekomstig poliklinisch bezoek voor de patiënt. Vastgelegd in de Cadence planningsmodule gekoppeld aan het patiëntendossier. | ||
| Het belang Ondersteunt 'Automatiseringstarief Vervolgafspraken'. Zorgt voor continuïteit van zorg en helpt heropnames te voorkomen. Vindplaats PAT_ENC_APPT gekoppeld aan patiënt ID, aangemaakt rond het moment van ontslag. Vastleggen Vastgelegd wanneer een afspraaktijdslot is bevestigd in Cadence Gebeurtenistype explicit | |||
| Zorgplan Geïnitieerd | De toewijzing van een specifiek klinisch zorgpad of protocol aan de patiënt. Dit wordt vastgelegd wanneer een standaard Orderset of Zorgplan wordt toegepast in de encounter context. | ||
| Het belang Ondersteunt de 'Klinisch Protocol Compliance View' door de intentie te markeren om een zorgstandaard te volgen. Afwijkingen van de daaropvolgende geplande stappen kunnen vanaf dit punt worden gemeten. Vindplaats ORDER_SET_BKG of zorgplan tabellen die aangeven dat een protocol gekoppeld was aan de encounter. Vastleggen Vastgelegd wanneer de klinisch specialist een Order Set selecteert en ondertekent Gebeurtenistype explicit | |||
Extractie Guides
Stappen
- Log in bij Epic Hyperspace en start 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 kunt u details op contactniveau ophalen op basis van het CSN (Contact Serial Number).
- Criteria configureren (tabblad Settings):
- Stel het Datumbereik in (bijv. Discharge Date = Afgelopen 90 dagen) om afgeronde trajecten vast te leggen.
- Filter op Encounter Type (bijv. 'Hospital Encounter', 'Emergency') om irrelevante poliklinische bezoeken uit te sluiten.
- Filter op Afdeling of Locatie als een specifieke scope vereist is.
- Weergavekolommen configureren (tabblad Display):
- Dit is een cruciale stap. Zoek en voeg de specifieke kolommen toe die overeenkomen met de timestamps van de vereiste activiteiten.
- Voeg Patiënt-ID's toe:
CSN(Patiëntaflevering),MRN(Patiënt-ID). - Voeg Demografische gegevens/Attributes toe:
Department,Discharge Disposition,Primary Diagnosis Code,Provider. - Voeg Timestamp-kolommen toe: Zoek naar kolommen zoals
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time, etc. (Zie de sectie Query/Configuratie voor de exacte mapping).
- Voer het rapport uit en controleer de resultaten in het voorbeeldvenster.
- Data exporteren:
- Klik op Toolbar > Export.
- Selecteer het formaat CSV of Text (Tab Delimited).
- Zorg dat 'Include Column Headers' is aangevinkt.
- Sla het bestand op als
Raw_Epic_Extract.csv.
- Datatransformatie (Cruciaal):
- De RWB-export levert een "brede" dataset op (één rij per patiënttraject met meerdere timestamp-kolommen).
- U moet deze data Unpivotten (omvormen) zodat elke timestamp-kolom een afzonderlijke rij in het event log wordt.
- Maak een definitief bestand met de kolommen:
PatientEpisodeId,ActivityName,EventTimestampen de gekoppelde attributes.
- Datums formatteren: Zorg dat de
EventTimestampin ISO-formaat staat (YYYY-MM-DD HH:MM:SS), zodat deze 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 de Epic-versie.
- Datumbereik: Beperk dit in eerste instantie tot 3-6 maanden om timeout-fouten te voorkomen (RWB is niet geoptimaliseerd voor massale bulkextractie).
- Rijlimiet: Epic RWB heeft vaak een limiet (bijv. 25.000 of 50.000 rijen). Zorg dat uw datumbereik hier niet overheen gaat, of werk met meerdere batches.
- Machtigingen: Hiervoor zijn Reporting Workbench 'Create' en 'Export' security points vereist.
- Performance: Voer de extractie uit buiten piektijden als u grote historische reeksen doorzoekt.
- Granulariteit: Deze methode levert samenvattende timestamps op Encounter-niveau (bijv. 'Eerste medicatietoediening'). Het extraheert niet elke individuele stap (zoals elk afzonderlijk pilletje) tenzij specifieke "Audit"-templates worden gebruikt, wat voor deze toepassing zelden voorkomt.
a Voorbeeldquery 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 Stappen
Databasetoegang aanvragen: Zorg dat u leesrechten heeft voor de Epic Clarity Console of een SQL-client die verbonden is met de Clarity-productie- of rapportagedatabase. U heeft machtigingen nodig voor
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOen de bijbehorende referentietabellen.Scope en filter-ID's bepalen: Voer, voordat u het volledige script draait, kleine testqueries uit om de specifieke
ORDER_TYPE_C-waarden voor Labs, Radiologie, Consulten en Overplaatsingen in uw Epic-omgeving te vinden. Deze categorielijsten kunnen namelijk per ziekenhuis verschillen.Tijdsvenster configureren: Zoek de
WHERE-clausules in het SQL-script die filteren opCONTACT_DATEofHOSP_ADMSN_TIME. Pas deze aan naar de gewenste extractieperiode (bijv. de afgelopen 6 maanden).Aangepaste Flowsheets koppelen (optioneel): Als u nauwkeurige timestamps nodig heeft voor Triage of Ontslagplanning die niet in de algemene encounter-tabel staan, zoek dan de specifieke
FLO_MEAS_ID(Flowsheet Measure ID) voor deze velden en werk de placeholders in het script bij.De query uitvoeren: Voer het volledige SQL-script uit in uw SQL-client (zoals SQL Server Management Studio of Oracle SQL Developer). Het script gebruikt
UNION ALLom de verschillende klinische events samen te voegen tot één gestructureerd event log.Nabehandeling: De query levert een platte lijst op. Controleer of
EventTimestampoveral is ingevuld. Converteer eventuele databasespecifieke datumformaten naar ISO 8601 (YYYY-MM-DDTHH:MM:SS) als uw middleware dit vereist.Data exporteren: Sla de resultaten op als CSV-bestand. Zorg dat de kolomkoppen exact overeenkomen met de gedefinieerde attributes (PatientEpisodeId, ActivityName, etc.).
Uploaden naar ProcessMind: Importeer het CSV-bestand in ProcessMind. Koppel
PatientEpisodeIdals Case ID,ActivityNameals Activity enEventTimestampals de Timestamp.
Configuratie
- Databaseverbinding: Epic Clarity (meestal MSSQL- of Oracle-backend).
- Datumfiltering: Filter op
PAT_ENC.HOSP_ADMSN_TIMEofPAT_ENC.CONTACT_DATE. Voor een initiële analyse wordt een periode van 3-6 maanden aanbevolen om de query-prestaties beheersbaar te houden. - Contacttypes (Encounters): Het script filtert op klinische en spoedeisende contacten (
ENC_TYPE_C-waarden zijn meestal 3 en 50, maar controleer dit inZC_ENC_TYPE). - Ordertypes: Voor Labs, Beeldvorming en Consulten is aanpassing van de
ORDER_TYPE_C-waarden vereist, afhankelijk van de lokale ZC_ORDER_TYPE-configuratie. - Performance: Het script scant tabellen met grote volumes (
ORDER_PROC,CLARITY_ADT). Zorg voor de juiste indexering of voer het script uit buiten piektijden.
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