Uw Patiënttraject Data Template
Uw Patiënttraject Data Template
- Aanbevolen klinische attributes
- Essentiële procesmijlpalen
- MEDITECH extractiehandleiding
Patiënttraject attributes
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke klinische of administratieve actie uitgevoerd. | ||
| Omschrijving Dit attribute vertegenwoordigt de naam van de event of taak die plaatsvindt binnen het patiënttraject. Het legt de onderscheidende stappen vast zoals 'Patiënt Geregistreerd', 'Medicatie Toegediend', of 'Ontslagbevel Geschreven'. Correcte identificatie van activiteiten is cruciaal voor het in kaart brengen van de processtroom. Deze waarden zijn vaak afgeleid van transactiecodes, orderstatussen, of gedocumenteerde interventies binnen het elektronisch patiëntendossier. Het belang Definieert de stappen van het proces en is vereist om de proceskaart te visualiseren. Vindplaats Afgeleid van verschillende Voorbeelden Patiënt GeregistreerdTriage voltooidMedicatie ToegediendDiagnostisch Resultaat Geverifieerd | |||
| Bronsysteem SourceSystem | De identifier van het systeem waar de data vandaan komt. | ||
| Omschrijving Identificeert de MEDITECH Dit Het belang Garandeert datalineage en traceerbaarheid in multi-systeemomgevingen. Vindplaats Hardgecodeerd tijdens extractie of systeem-ID configuratie. Voorbeelden MEDITECH_ExpanseMEDITECH_6.1Ziekenhuis_A_Hoofd | |||
| Gebeurtenistijdstempel EventTimestamp | De specifieke datum en tijd waarop de activiteit plaatsvond. | ||
| Omschrijving Dit attribute registreert het exacte moment waarop een activiteit plaatsvond. Het wordt gebruikt om events chronologisch te ordenen en duurmetrieken te berekenen tussen processtappen. Hoge-precisie timestamps zijn nodig voor nauwkeurige analyse van wachttijden, zoals de duur tussen triage en beoordeling, of de doorlooptijd voor diagnostische resultaten. Het belang Vereist om events te ordenen en cyclustijden en throughput te berekenen. Vindplaats Transactiedatum/tijd kolommen in brontabellen. Voorbeelden 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Laatste data-update LastDataUpdate | De timestamp waarop de data voor het laatst is geëxtraheerd of ververst. | ||
| Omschrijving Geeft aan wanneer het record voor het laatst is verwerkt of geladen in de Het is anders dan de Het belang Cruciaal voor Vindplaats Systeemdatum op het moment van ETL-uitvoering. Voorbeelden 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Patiënttraject PatientEpisode | De unieke identifier voor een specifieke periode van patiëntenzorg of bezoek. | ||
| Omschrijving Het Patiënttraject fungeert als de centrale case identifier voor de procesanalyse. Het groepeert alle klinische, administratieve en financiële events gerelateerd aan één ziekenhuisopname of poliklinisch bezoek in één samenhangend traject. In MEDITECH-systemen correleert dit vaak met het Account Number of Visit ID. Dit attribute is fundamenteel voor het reconstrueren van het patiënttraject van registratie tot ontslag, waardoor de berekening van de verblijfsduur en de analyse van klinische zorgpaden mogelijk wordt. Het belang Het is de verplichte Vindplaats MEDITECH Opname- of Registratiemodule; doorgaans het Account Number-veld. Voorbeelden V100938475AC29384755E993847211O229384711 | |||
| Behandelend Arts AttendingProvider | De primaire clinicus of zorgverlener verantwoordelijk voor de activiteit. | ||
| Omschrijving Registreert de naam of ID van de arts, verpleegkundige of technicus die de taak uitvoert of de zorg overziet. Dit attribute ondersteunt het 'Treatment Plan Development Velocity' dashboard door snelheids- en efficiëntiemetrieken toe te schrijven aan specifiek personeel of specifieke rollen. Het maakt resource-analyse mogelijk om werkbelastingen in evenwicht te brengen en trainingsbehoeften onder klinisch personeel te identificeren. Het belang Maakt Vindplaats Provider- of User-velden in activiteit logs. Voorbeelden Dr. SmithVerpleegkundige JonesTech Adams | |||
| Is Heropname IsReadmission | Vlag die aangeeft of deze `episode` plaatsvond binnen 30 dagen na een vorig ontslag. | ||
| Omschrijving Een Het identificeren van heropnames stelt analisten in staat om terug te kijken naar de vorige Het belang Cruciale kwaliteits Vindplaats Berekend door de huidige Voorbeelden truefalse | |||
| Medisch Dossiernummer MedicalRecordNumber | Een unieke `identifier` voor de patiënt over alle bezoeken heen. | ||
| Omschrijving Het Medisch Dossiernummer (MRN) identificeert een patiënt uniek binnen de zorgorganisatie, onderscheiden van de patiënttraject-specifieke ID. Het stelt analisten in staat om meerdere patiënttrajecten van dezelfde patiënt over tijd te koppelen. Dit attribute is essentieel voor het 'Readmission and Care Quality' dashboard, waardoor de detectie mogelijk is van patiënten die binnen 30 dagen na ontslag terugkeren naar het ziekenhuis. Het belang Maakt Vindplaats Patiënt master index of registratietabel. Voorbeelden MRN-100293MRN-55928388291002 | |||
| Ontslagbestemming DischargeDisposition | De bestemming of status van de patiënt bij ontslag. | ||
| Omschrijving Geeft aan waar de patiënt na de Het analyseren hiervan helpt te identificeren of vertragingen bij het regelen van Het belang Belangrijke Vindplaats Ontslagabstractie of registratieschermen. Voorbeelden Ontslagen naar HuisOvergeplaatst naar Kortetermijn Algemeen ZiekenhuisVerlopenVertrokken Tegen Medisch Advies | |||
| Patiënttype PatientType | Categorisatie van het patiëntbezoek (bijv. Klinisch, Poliklinisch, Spoedeisende Hulp). | ||
| Omschrijving Classificeert de aard van het ziekenhuisbezoek. Veelvoorkomende waarden zijn 'Inpatient', 'Outpatient', 'Emergency' of 'Observation'. Deze classificatie is fundamenteel voor het filteren en vergelijken van processen, aangezien de zorgstandaard en de verwachte duur aanzienlijk verschillen per type. Dit veld helpt in het 'Discharge Planning Optimization' Het belang Fundamentele segmentatie voor procesvergelijking ( Vindplaats Opname- of Bezoektabelen (bijv. AdmVisits.Status). Voorbeelden KlinischNoodgevalAmbulante ChirurgieObservatie | |||
| Primaire Diagnose PrimaryDiagnosis | De belangrijkste medische aandoening die is geïdentificeerd voor het patiënttraject. | ||
| Omschrijving Bevat de ICD-10-code of beschrijving van de primaire reden voor de Door Het belang Essentieel voor het groeperen van Vindplaats Medische archieven of abstractiemodule. Voorbeelden J18.9 - LongontstekingI21.9 - Acuut MyocardinfarctS72.0 - Fractuur van Femur | |||
| Triage Acuity Level TriageAcuityLevel | De ernstbeoordeling toegewezen aan een patiënt tijdens triage. | ||
| Omschrijving Geeft de urgentie van de toestand van de patiënt aan, doorgaans op een schaal (bijv. 1-5, waarbij 1 kritiek is). Dit Het stelt analisten in staat wachttijden te correleren met de Het belang Cruciaal voor het analyseren van SEH-prioritering en Vindplaats SEH- of triage-verpleegkundige beoordelingsschermen. Voorbeelden 1 - Reanimatie2 - Urgent3 - Spoed4 - Minder Urgent | |||
| Verblijfsduur LengthOfStay | Totale duur van het patiënttraject van opname tot ontslag. | ||
| Omschrijving Een berekende Het dient als een Het belang Primaire efficiëntie-KPI voor ziekenhuisactiviteiten. Vindplaats Berekend vanaf Voorbeelden 4 dagen 2 uur45 minutes12 dagen | |||
| Ziekenhuisafdeling HospitalDepartment | De specifieke eenheid of afdeling waar de activiteit plaatsvond. | ||
| Omschrijving Identificeert de functionele eenheid, zoals 'Emergency', 'Radiology', 'ICU' of 'General Ward', verantwoordelijk voor de Het maakt de segmentatie van Het belang Sleutel voor organisatorische analyse en het identificeren van Vindplaats Locatie- of Afdelingsvelden in Voorbeelden Spoedeisende HulpRadiologieIntensive Care UnitChirurgische Afdeling 3 | |||
| Factuurbedrag ChargeAmount | De financiële waarde gekoppeld aan een specifieke activiteit of dienst. | ||
| Omschrijving Vertegenwoordigt de kosten of de in rekening gebrachte bedragen voor een specifieke event, zoals een test of kamertarief. Hoewel primair financieel, heeft het betrekking op resource-intensiteit. Wanneer geaggregeerd, helpt het de financiële impact van procesvariaties te begrijpen, hoewel de primaire focus van de gevraagde weergave klinische stroom is. Het belang Voegt een financiële dimensie toe aan de procesanalyse. Vindplaats Facturatie- of BAR ( Voorbeelden 150.001200.5045.00 | |||
| Is Nalevingsschending IsAdherenceViolation | Vlag die aangeeft of de `case` afweek van het standaard klinische `pathway`. | ||
| Omschrijving Een Het maakt snelle filtering van 'non-conformant' Het belang Identificeert snel procesafwijkingen en variatie. Vindplaats Berekend door Voorbeelden truefalse | |||
| Naam Medicatie MedicationName | De naam van het toegediende farmaceutische middel. | ||
| Omschrijving Legt het specifieke medicijn vast dat betrokken is bij 'Medication Administered' Het stelt verpleegkundig leidinggevenden in staat te verifiëren dat specifieke Het belang Vereist voor klinische compliance en veiligheidsanalyse. Vindplaats Apotheek (PHA) of Bedside Verification (BMV) modules. Voorbeelden ParacetamolVancomycineHeparineInsuline | |||
| Opnamebron AdmitSource | Waar de patiënt vandaan kwam (bijv. Thuis, Transfer, Verwijzing). | ||
| Omschrijving Beschrijft de herkomst van de patiëntopname, zoals 'Verwijzing Arts', 'Spoedeisende Hulp' of 'Overplaatsing van ander Ziekenhuis'. Dit geeft context over hoe patiënten het systeem binnenkomen. Het is nuttig voor het begrijpen van Het belang Biedt context over patiënteninstroom en vraagkanalen. Vindplaats Registratie Voorbeelden Spoedeisende HulpKliniek VerwijzingTransfer van SNF | |||
| Ordercategorie OrderCategory | Classificatie van klinische orders (bijv. Laboratorium, Radiologie, Consult). | ||
| Omschrijving Groepeert orders in bredere categorieën zoals 'Laboratory', 'Radiology', 'Dietary' of 'Consult'. Dit is essentieel voor het 'Diagnostic Services Turnaround' Het maakt de scheiding van Het belang Segmenteert diagnostische en behandel-workflows. Vindplaats Order Entry (OE) module categorievelden. Voorbeelden LaboratoriumRadiologieVerplegingApotheek | |||
| Triage Wachttijd TriageWaitTime | Tijdsduur tussen registratie en voltooiing van triage. | ||
| Omschrijving De berekende duur tussen de 'Patiënt Geregistreerd' event en de 'Triage Voltooid' event. Dit voedt direct de 'Gemiddelde Triage Doorlooptijd' KPI. Het monitoren van deze duur helpt managers van de SEH de personeelsbezetting tijdens piekuren aan te passen om te waarborgen dat de patiëntveiligheidsnormen worden nageleefd. Het belang Belangrijke operationele Vindplaats Berekend verschil tussen specifieke Voorbeelden 15 minuten1 uur 20 minuten | |||
Patiënttraject Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Diagnose Gedocumenteerd | Het punt waar een clinicus een gecodeerde diagnose (ICD-10) invoert in het patiëntendossier. Dit triggert vaak specifieke klinische zorgpaden. | ||
| Het belang Maakt 'Clinical Pathway Variant Analysis' mogelijk door de Vindplaats MEDITECH ABS (Abstracting) of Medische Archieven. Geregistreerd wanneer diagnosecodes aan het account worden gekoppeld. Vastleggen Geregistreerd wanneer transactie 'Diagnose Invoeren' wordt uitgevoerd Gebeurtenistype explicit | |||
| Diagnostisch Resultaat Geverifieerd | Geeft aan dat een diagnostische test (Laboratorium of Radiologie) is uitgevoerd en de resultaten zijn ondertekend door een technicus of radioloog. Dit sluit de `loop` van een diagnostische `order` effectief af. | ||
| Het belang Het eindpunt voor 'Doorlooptijd Diagnostische Diensten'. Essentieel voor het analyseren van knelpunten in ondersteunende afdelingen. Vindplaats MEDITECH LAB of ITS (Beeldvorming en Therapeutische Diensten) modules. Vastgelegd vanuit resultaatstatuswijzigingen naar 'Geverifieerd' of 'Afgetekend'. Vastleggen Geregistreerd wanneer het statusveld verandert naar 'Geverifieerd' Gebeurtenistype explicit | |||
| Medicatie Toegediend | Registreert de daadwerkelijke toediening van medicatie aan de patiënt door verplegend personeel. Meestal vastgelegd via barcodescanning aan het bed. | ||
| Het belang Ondersteunt 'Medication Administration Compliance'. Identificeert veiligheidsrisico's en workflow-onderbrekingen op verpleegeenheden. Vindplaats MEDITECH PHA (Apotheek) of eMAR (Elektronisch Medicatietoedieningsdossier). De 'AdminDateTime' in de toedieningsgeschiedenis. Vastleggen Geregistreerd wanneer transactie 'Medicatie Toedienen' wordt uitgevoerd Gebeurtenistype explicit | |||
| Ontslagbevel Geschreven | De timestamp wanneer de arts het bevel tot ontslag van de patiënt ondertekent. Dit markeert de start van de 'Ontslagplanning' fase. | ||
| Het belang Bepaalt de Vindplaats MEDITECH OE (Order Entry). Filter bestellingen voor Categorie = 'Ontslag'. Vastleggen Geregistreerd wanneer transactie 'Bestelling Invoeren' wordt uitgevoerd Gebeurtenistype explicit | |||
| Order Geplaatst | Registreert de aanvraag voor een dienst, medicatie of diagnostische test door een clinicus. Dit is de trigger event voor stroomafwaartse klinische activiteiten. | ||
| Het belang Bepaalt de Vindplaats MEDITECH OE (Order Entry) module. Vastgelegd uit de tabel 'OeOrders' met behulp van het veld 'Order Date/Time'. Vastleggen Geregistreerd wanneer transactie 'Bestelling Invoeren' wordt uitgevoerd Gebeurtenistype explicit | |||
| Patiënt Geregistreerd | Deze event markeert de administratieve creatie van het patiënttraject of bezoekrecord in het systeem. Het legt het initiële toegangspunt vast in de MEDITECH ADM (Admissions) module. | ||
| Het belang Bepaalt de start van de patiëntreis en Vindplaats MEDITECH ADM-module. Afkomstig uit de tabel 'Admissions', specifiek het veld 'AdmitDateTime' of de timestamp van de transactielogcreatie. Vastleggen Geregistreerd wanneer transactie 'Nieuw Bezoek' wordt uitgevoerd Gebeurtenistype explicit | |||
| Patiënt Ontslagen | De administratieve afsluiting van het bezoek. De patiënt heeft de faciliteit fysiek verlaten en het bed is vrijgegeven. | ||
| Het belang Het formele einde van het proces. Gebruikt om de uiteindelijke verblijfsduur te berekenen en het 30-dagen heropnamevenster te definiëren. Vindplaats MEDITECH ADM (Opnames). Het veld 'DischargeDateTime' in de bezoekregistratie. Vastleggen Geregistreerd wanneer transactie 'Patiënt Ontslaan' wordt uitgevoerd Gebeurtenistype explicit | |||
| Patiënt Overgeplaatst | Geeft de fysieke verplaatsing van een patiënt van de ene locatie (`Unit`/Kamer/Bed) naar de andere aan. `Tracks flow` door het ziekenhuis. | ||
| Het belang Sleutel voor 'Internal Transfer Vindplaats MEDITECH ADM (Opnames). Vastgelegd via de transactielogs 'Location History' of 'RoomBed'. Vastleggen Geregistreerd wanneer transactie 'Patiënt Overplaatsen' wordt uitgevoerd Gebeurtenistype explicit | |||
| Triage voltooid | Geeft de voltooiing aan van de initiële verpleegkundige beoordeling op de Spoedeisende Hulp. Dit definieert de `acuity level` en `severity score` voor de patiënt. | ||
| Het belang Cruciaal voor het Vindplaats MEDITECH EDM (Spoedeisende Hulp Management) module. Afgeleid van statuswijzigingen in de EDM-tracker of de timestamp van het Triage Assessment document. Vastleggen Gelogd wanneer het statusveld verandert naar 'Getrieerd' Gebeurtenistype explicit | |||
| Consult Aanvraag Verstuurd | Een specifiek type order dat om een specialistisch oordeel vraagt. Dit start de klok op het 'Specialist Consultation Response' `dashboard`. | ||
| Het belang Identificeert Vindplaats MEDITECH OE (Order Entry). Geïdentificeerd door 'OeOrders' te filteren op Categorie = 'Consult'. Vastleggen Geregistreerd wanneer transactie 'Bestelling Invoeren' wordt uitgevoerd Gebeurtenistype explicit | |||
| Consultatie Voltooid | De voltooiing van de specialistische beoordeling. Vaak afgeleid van de indiening van een specifiek documenttype (bijv. 'Cardiologisch Consult Notitie'). | ||
| Het belang Het eindpunt voor het meten van de responsiviteit van specialisten. Cruciaal voor het waarborgen van tijdige zorgvoortgang. Vindplaats MEDITECH PCM (Provider Order Management) of EPD. Afgeleid van documentcreatie-timestamps met specifieke titels. Vastleggen Vergelijk het statusveld voor en na Gebeurtenistype inferred | |||
| Monster Verzameld | Markeert de fysieke afname van een biologisch monster voor laboratoriumanalyse. Deze activiteit overbrugt de kloof tussen bestellen en verwerken. | ||
| Het belang Gedetailleerde stap die vaak verantwoordelijk is voor vertragingen in de diagnostische levenscyclus. Nuttig voor het scheiden van verpleegkundige vertragingen van laboratoriumvertragingen. Vindplaats MEDITECH LAB-module. Meestal vastgelegd wanneer een flebotomist de barcode scant of de status van het specimen bijwerkt naar 'Verzameld'. Vastleggen Geregistreerd wanneer transactie 'Monsterafname' wordt uitgevoerd Gebeurtenistype explicit | |||
| Vervolg Afspraak Gepland | Het plannen van een toekomstige afspraak voor de patiënt. Deze activiteit ondersteunt de continuïteit van zorg na ontslag. | ||
| Het belang Ondersteunt analyse van 'Vervolgafspraakplanning'. Correlateert met lagere heropnamepercentages. Vindplaats MEDITECH SCH (Planning). Afgeleid door een nieuw Afspraakrecord, aangemaakt rond de ontslagdatum, te koppelen aan de patiënt-ID. Vastleggen Afleiden door het veld Gebeurtenistype inferred | |||
| Zorgplan Geïnitieerd | Vertegenwoordigt de creatie of toewijzing van een specifiek verpleegkundig of multidisciplinair zorgplan. Dit komt overeen met het concept 'Behandelplan Ontwikkeld'. | ||
| Het belang Meet de 'Snelheid van Behandelplanontwikkeling'. Vertragingen hier duiden op lacunes in klinische besluitvorming. Vindplaats MEDITECH PCS (Patiëntenzorgsysteem) of Zorgmanager. Timestamp van wanneer een standaard zorgplan op de patiënt wordt toegepast. Vastleggen Geregistreerd wanneer transactie 'Zorgplan Toevoegen' wordt uitgevoerd Gebeurtenistype explicit | |||
Extractie Guides
Stappen
De Data Repository Server Identificeren: Lokaliseer de Microsoft SQL Server-
instancedie uw MEDITECHData Repository(DR) host. Dit is anders dan de transactionele M-AT of op bestanden gebaseerdedatabase. U heeftread-only credentialsnodig (doorgaans eenservice account).De Schemaversie Bepalen: MEDITECH DR-structuren variëren enigszins tussen
Magic,Client/Server(6.x) enExpanse. De onderstaandequerygebruikt standaard naamgevingsconventies (bijv.AdmVisits,OeOrders). Controleer deze tabelnamen in uw lokaleSQL Server Management Studio(SSMS)Object Explorer.De Scope Definiëren: Identificeer de primaire tabel voor patiëntbezoeken. Dit is meestal
AdmVisits,RegAcctofAbstractDatagenoemd, afhankelijk van uw specifieke DR-configuratie. DequerygebruiktAdmVisitsalsanchorvoor de PatiëntenEpisode.De SQL Omgeving Voorbereiden: Open SSMS en maak verbinding met de DR. Open een nieuw
query window. Zorg ervoor dat u overgeschakeld bent naar de juistedatabase(vaak 'livedb' of iets dergelijks).Parameters Configureren: Vervang in het meegeleverde SQL-script de
placeholdersvoor datumbereiken (bijv. '2023-01-01') enfacility identifiersals uw DR meerdere locaties host.De Extractie Uitvoeren: Voer het complete T-SQL-script uit. Het maakt gebruik van
Common Table Expressions(CTE's) om eerst de populatie van interesse te definiëren en vervolgens meerderedata sourcesteUNION ALLom een gestandaardiseerdevent logte creëren.NULL
AttributesAfhandelen: Dequerybevat logica om potentiële NULL-waarden intimestampsaf te handelen (doorCOALESCEwaar nodig te gebruiken) en zorgt ervoor dat kritiekejoining keys(SourceID/VisitID) aanwezig zijn.Triage- en Spoedeisende Hulp
dataVerifiëren: MEDITECH slaat SEH-dataop in specifiekemodules. Zorg ervoor dat deEdVisitsofNurInterventions tableszijn gevuld als u Spoedeisende Hulpworkflowsanalyseert.Order Categorieën Valideren: De
queryscheidt algemene orders, consulten en ontslagorders op basis vanCategory urnsofmnemonics. Mogelijk moet u de specifiekeWHERE clausesaanpassen om overeen te komen met het specifiekeMnemonic dictionaryvan uw faciliteit.DataExporteren: Zodra de resultaten zijn teruggekeerd, klikt u met de rechtermuisknop op het resultatenraster in SSMS en selecteert u 'Save Results As CSV'. Zorg ervoor datheaderszijn inbegrepen.Definitieve Opmaak: Open de CSV om te controleren of de
datumformatenISO 8601-compatibel zijn (JJJJ-MM-DD UU:MM:SS) voordat u deze inProcessMindimporteert.
Configuratie
- Database Access: Vereist db_datareader permissies op de MEDITECH DR SQL database.
- Date Range: Aanbevolen extractieperiode is 3 tot 6 maanden van ontslagen patiënten om voltooide
cycleste garanderen. - Facility Filtering: Als de DR
multi-facility databevat, filter deBaseVisits CTEopFacilityIDofSourceSystemID. - Episode Definition: Het script gebruikt de unieke
VisitID(vaakAccount NumberofEpisode Numbergenoemd) als deCase ID. - Performance: De
querygebruikt eenCTE anchorom hetscan rangete beperken. Zorg ervoor datindexesbestaan opAdmitDateenDischargeDatein deAdmVisits tablevoor optimaleperformance. - Latency:
Data Repository transferskunnen eenlatencyhebben van 15 minuten tot 24 uur, afhankelijk van desite configuration. Bevestig deLastDataUpdate timestamp.
a Voorbeeldquery sql
/* MEDITECH Data Repository T-SQL Extraction for ProcessMind */
/* Process: Patient Journey */
/* Dialect: T-SQL */
WITH BaseVisits AS (
/* Define the population: Discharged patients within a date range */
SELECT
V.VisitID,
V.PatientID,
V.AccountNumber AS MedicalRecordNumber,
V.AdmitDateTime,
V.DischargeDateTime,
V.FacilityID,
V.PatientType,
V.AttendingProviderID,
V.DischargeDisposition,
NULLIF(DATEDIFF(MINUTE, V.AdmitDateTime, V.DischargeDateTime), 0) / 1440.0 AS LengthOfStay,
/* Flag readmissions logic would go here, simplified as 0 for base script */
0 AS IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmVisits] V
WHERE
V.DischargeDateTime >= '2023-01-01'
AND V.DischargeDateTime < '2023-04-01'
AND V.Status = 'DIS' /* Discharged Status */
),
PatientDiagnoses AS (
/* Helper CTE for Primary Diagnosis to avoid duplicates in joins */
SELECT
D.VisitID,
MAX(D.ICDCode) AS PrimaryDiagnosis
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] D
WHERE
D.Rank = 1 /* Primary Diagnosis Rank */
GROUP BY
D.VisitID
),
TriageData AS (
/* Helper CTE for Triage Acuity */
SELECT
T.VisitID,
MAX(T.AcuityLevel) AS TriageAcuityLevel
FROM
[YourDatabaseName].[dbo].[EdTriage] T
GROUP BY
T.VisitID
)
/* 1. Patient Registered */
SELECT
V.VisitID AS PatientEpisode,
'Patient Registered' AS ActivityName,
V.AdmitDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.AdmitDateTime IS NOT NULL
UNION ALL
/* 2. Triage Completed */
SELECT
V.VisitID AS PatientEpisode,
'Triage Completed' AS ActivityName,
ED.TriageDateTime AS EventTimestamp,
'MEDITECH_ED' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Emergency Department' AS HospitalDepartment,
ED.TriageNurseID AS AttendingProvider,
V.PatientType,
ED.AcuityLevel AS TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[EdTriage] ED
INNER JOIN BaseVisits V ON ED.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
WHERE
ED.TriageDateTime IS NOT NULL
UNION ALL
/* 3. Order Placed (General) */
SELECT
V.VisitID AS PatientEpisode,
'Order Placed' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category NOT IN ('CONSULT', 'DISCHARGE') /* Exclude specific types handled elsewhere */
UNION ALL
/* 4. Specimen Collected */
SELECT
V.VisitID AS PatientEpisode,
'Specimen Collected' AS ActivityName,
L.CollectionDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
L.CollectedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabSpecimens] L
INNER JOIN BaseVisits V ON L.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
L.CollectionDateTime IS NOT NULL
UNION ALL
/* 5. Diagnostic Result Verified */
SELECT
V.VisitID AS PatientEpisode,
'Diagnostic Result Verified' AS ActivityName,
R.VerifiedDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
R.VerifiedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabResults] R
INNER JOIN BaseVisits V ON R.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
R.VerifiedDateTime IS NOT NULL
UNION ALL
/* 6. Diagnosis Documented */
SELECT
V.VisitID AS PatientEpisode,
'Diagnosis Documented' AS ActivityName,
DX.EntryDateTime AS EventTimestamp,
'MEDITECH_ABS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
DX.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] DX
INNER JOIN BaseVisits V ON DX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
DX.EntryDateTime IS NOT NULL
UNION ALL
/* 7. Care Plan Initiated */
SELECT
V.VisitID AS PatientEpisode,
'Care Plan Initiated' AS ActivityName,
N.CreateDateTime AS EventTimestamp,
'MEDITECH_NUR' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
N.NurseUnit AS HospitalDepartment,
N.NurseID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[NurPlan] N
INNER JOIN BaseVisits V ON N.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
N.CreateDateTime IS NOT NULL
UNION ALL
/* 8. Medication Administered */
SELECT
V.VisitID AS PatientEpisode,
'Medication Administered' AS ActivityName,
M.AdminDateTime AS EventTimestamp,
'MEDITECH_PHA' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
M.AdminLocation AS HospitalDepartment,
M.AdministeredBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[PhaMedAdmin] M
INNER JOIN BaseVisits V ON M.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
M.Status = 'ADMINISTERED'
UNION ALL
/* 9. Consult Request Sent */
SELECT
V.VisitID AS PatientEpisode,
'Consult Request Sent' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
UNION ALL
/* 10. Consultation Completed */
SELECT
V.VisitID AS PatientEpisode,
'Consultation Completed' AS ActivityName,
O.CompletedDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
AND O.Status = 'COMPLETED'
AND O.CompletedDateTime IS NOT NULL
UNION ALL
/* 11. Patient Transferred */
SELECT
V.VisitID AS PatientEpisode,
'Patient Transferred' AS ActivityName,
TX.TransferDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
TX.ToLocation AS HospitalDepartment,
NULL AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmRoomTx] TX
INNER JOIN BaseVisits V ON TX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
TX.TransferDateTime IS NOT NULL
UNION ALL
/* 12. Discharge Order Written */
SELECT
V.VisitID AS PatientEpisode,
'Discharge Order Written' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'DISCHARGE'
OR O.Mnemonic LIKE '%DISCHARGE%'
UNION ALL
/* 13. Patient Discharged */
SELECT
V.VisitID AS PatientEpisode,
'Patient Discharged' AS ActivityName,
V.DischargeDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.DischargeDateTime IS NOT NULL
UNION ALL
/* 14. Follow-up Booked */
SELECT
V.VisitID AS PatientEpisode,
'Follow-up Booked' AS ActivityName,
S.BookDateTime AS EventTimestamp,
'MEDITECH_SCH' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
S.ApptDepartment AS HospitalDepartment,
S.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[SchAppt] S
INNER JOIN BaseVisits V ON S.PatientID = V.PatientID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
S.BookDateTime > V.AdmitDateTime
AND S.BookDateTime <= DATEADD(day, 30, V.DischargeDateTime) /* Logic to link appt to episode */
AND S.Status NOT IN ('CANCELLED', 'NOSHOW');