Uw Patiëntenreis datatemplate
Uw Patiëntenreis datatemplate
- Aanbevolen klinische attributen
- Essentiële stappen in het proces
- MEDITECH extractiehandleiding
Patiëntenreis Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De specifieke klinische of administratieve actie uitgevoerd. | ||
| Omschrijving Dit attribuut vertegenwoordigt de naam van de gebeurtenis 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 belangrijk 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 kenmerk 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 | |||
| Patiëntepisode PatientEpisode | De unieke kenmerk voor een specifieke periode van patiëntenzorg of bezoek. | ||
| Omschrijving Het Patiënttraject fungeert als de centrale case kenmerk voor de procesanalyse. Het groepeert alle klinische, administratieve en financiële gebeurtenissen 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 attribuut is onmisbaar bij het reconstrueren van het patiënttraject van registratie tot ontslag, waardoor de berekening van de verblijfsduur en de analyse van klinische zorgpaden mogelijk worden. Het belang Het is de verplichte Vindplaats MEDITECH Opname- of Registratiemodule; doorgaans het Account Number-veld. Voorbeelden V100938475AC29384755E993847211O229384711 | |||
| Tijdstempel EventTimestamp | De specifieke datum en tijd waarop de activiteit plaatsvond. | ||
| Omschrijving Dit attribuut registreert het exacte moment waarop een activiteit plaatsvond. Het wordt gebruikt om gebeurtenissen chronologisch te ordenen en duurmetrieken te berekenen tussen processtappen. Hoge-precisie tijdstempels zijn nodig voor nauwkeurige analyse van wachttijden, zoals de duur tussen triage en beoordeling, of de doorlooptijd voor diagnostische resultaten. Het belang Verplicht om gebeurtenissen te ordenen en cyclustijden en doorlooptijd te berekenen. Vindplaats Transactiedatum/tijd kolommen in brontabellen. Voorbeelden 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Tijdstip van extractie LastDataUpdate | De timestamp waarop de data voor het laatst is opgehaald of ververst. | ||
| Omschrijving Geeft aan wanneer het record voor het laatst is verwerkt of geladen in de Het is anders dan de Het belang Belangrijk voor Vindplaats Systeemdatum op het moment van ETL-uitvoering. Voorbeelden 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| 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 attribuut ondersteunt het 'Treatment Plan Development Velocity' dashboard door snelheids- en efficiëntiemetrieken toe te schrijven aan specifiek personeel of specifieke rollen. Het maakt bron-analyse mogelijk om werkbelastingen in evenwicht te brengen en trainingsbehoeften onder klinisch personeel te vinden. Het belang Maakt Vindplaats Provider- of Gebruiker-velden in activiteit logs. Voorbeelden Dr. SmithVerpleegkundige JonesTechnicus Adams | |||
| Hoofddiagnose 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 | |||
| Is Heropname IsReadmission | Vlag die aangeeft of deze episode binnen 30 dagen na een vorig ontslag plaatsvond. | ||
| Omschrijving Een Het vinden van heropnames stelt analysesten 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 `kenmerk` 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 analysesten in staat om meerdere patiënttrajecten van dezelfde patiënt over tijd te koppelen. Dit attribuut is belangrijk 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 vinden of vertragingen bij het regelen van Het belang Belangrijke Vindplaats Ontslagabstractie of registratieschermen. Voorbeelden Ontslagen naar huisOvergeplaatst naar Kortetermijn Algemeen ZiekenhuisOverledenTegen Medisch Advies Vertrokken | |||
| 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 onmisbaar 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 OpnameNoodgevalAmbulante ChirurgieObservatie | |||
| Triage Urgentieniveau 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 analysesten in staat wachttijden te correleren met de Het belang Belangrijk voor het analyseren van SEH-prioritering en Vindplaats SEH- of triage-verpleegkundige beoordelingsschermen. Voorbeelden 1 - Reanimatie2 - Spoedeisend3 - Urgent4 - Minder Urgent | |||
| 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 vinden 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 gebeurtenis, zoals een test of kamertarief. Hoewel primair financieel, heeft het betrekking op bron-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 | |||
| Medicatie Naam 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 Verplicht voor klinische compliance en veiligheidsanalyse. Vindplaats Apotheek (PHA) of Bedside Verification (BMV) modules. Voorbeelden AcetaminophenVancomycineHeparineInsulin | |||
| 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 belangrijk 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' gebeurtenis en de 'Triage Voltooid' gebeurtenis. 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ëntenreisactiviteiten
| 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 | |||
| Ontslagorder 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 gebeurtenis 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 gebeurtenis 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 Belangrijk 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 Verzendend | 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 afgerond | 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. Belangrijk voor het waarborgen van tijdige zorgvoortgang. Vindplaats MEDITECH PCM (Provider Orderbeheer) of EPD. Afgeleid van documentcreatie-tijdstempels met specifieke titels. Vastleggen Vergelijk het statusveld voor en na Gebeurtenistype inferred | |||
| Monster afgenomen | Markeert de fysieke afname van een biologisch monster voor laboratoriumanalyse. Deze activiteit overbrugt de kloof tussen bestellen en processen. | ||
| 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 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 | |||
Extractiegidsen
Stappen
De Data Repository Server Identificeren: Lokaliseer de Microsoft SQL Server-
instantiedie 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 kenmerksals uw DR meerdere locaties host.De Extractie Uitvoeren: Voer het complete T-SQL-script uit. Het maakt gebruik van
Common Table Expressies(CTE's) om eerst de populatie van interesse te definiëren en vervolgens meerderedatabronnenteUNION ALLom een gestandaardiseerdevent logte creëren.NULL
AttributenAfhandelen: Dequerybevat logica om potentiële NULL-waarden intijdstempelsaf 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: Verplicht 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 zorgen. - Facility Filtering: Als de DR
multi-facility databevat, filter deBaseVisits CTEopFacilityIDofBronsysteemID. - 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 optimaleprestaties. - 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');