Il Suo Template dei dati del percorso del paziente
Il Suo Template dei dati del percorso del paziente
- Attributi clinici consigliati
- Tappe fondamentali del processo
- Indicazioni per l'estrazione da MEDITECH
Attributi del percorso del paziente
| Nome | Descrizione | ||
|---|---|---|---|
| Episodio assistenziale del paziente PatientEpisode | L’identificativo univoco di uno specifico periodo di assistenza o di una visita del paziente. | ||
| Descrizione Il Patient Episode funge da identificativo centrale del caso per l’analisi del processo. Raggruppa in un unico percorso coerente tutti gli eventi clinici, amministrativi e finanziari relativi a una singola degenza ospedaliera o a una visita ambulatoriale. Nei sistemi MEDITECH, spesso corrisponde all’Account Number o al Visit ID. Questo Attributo è fondamentale per ricostruire il percorso del paziente dalla registrazione alla dimissione, consentendo di calcolare la durata della degenza e analizzare i percorsi clinici. Perché è importante È la chiave obbligatoria del caso necessaria per collegare eventi distinti in una singola istanza di processo. Dove reperirlo Modulo MEDITECH Admissions o Registration; in genere il campo Account Number. Esempi V100938475AC29384755E993847211O229384711 | |||
| Marca temporale dell’evento EventTimestamp | La data e l’ora specifiche in cui si è verificata l’attività. | ||
| Descrizione Questo Attributo registra il momento esatto in cui si è svolta un’attività. Viene utilizzato per ordinare cronologicamente gli eventi e calcolare le metriche di durata tra le fasi del processo. Le marche temporali ad alta precisione sono necessarie per analizzare correttamente i tempi di attesa, come la durata tra triage e valutazione o il tempo di esecuzione dei risultati diagnostici. Perché è importante È necessario per ordinare gli eventi e calcolare i tempi di ciclo e il throughput. Dove reperirlo Colonne di data e ora della transazione nelle tabelle di origine. Esempi 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Nome dell’attività ActivityName | L’azione clinica o amministrativa specifica eseguita. | ||
| Descrizione Questo Attributo rappresenta il nome dell’evento o dell’attività che si verifica nel percorso del paziente. Acquisisce i singoli passaggi, come 'Patient Registered', 'Medication Administered' o 'Discharge Order Written'. L’identificazione corretta delle attività è fondamentale per mappare il flusso del processo. Questi valori derivano spesso dai codici delle transazioni, dagli stati degli ordini o dagli interventi documentati nella cartella clinica elettronica. Perché è importante Definisce le fasi del processo ed è necessario per visualizzare la mappa del processo. Dove reperirlo Derivato da diversi log delle transazioni (OE Orders, NUR Interventions, ADM Events). Esempi Paziente registratoTriage completatoFarmaco somministratoRisultato diagnostico verificato | |||
| Sistema di origine SourceSystem | L’identificativo del sistema da cui hanno avuto origine i dati. | ||
| Descrizione Identifica l’istanza MEDITECH o il modulo specifico da cui sono stati estratti i dati degli eventi. Negli ambienti con più ospedali, aiuta a distinguere i dati provenienti da strutture o versioni diverse del sistema. Questo Attributo è statico per un’estrazione da un singolo sistema, ma diventa fondamentale quando si uniscono dati provenienti da più origini per creare una vista unificata della rete ospedaliera. Perché è importante Garantisce la provenienza e la tracciabilità dei dati negli ambienti con più sistemi. Dove reperirlo Codificato durante l’estrazione o la configurazione dell’ID del sistema. Esempi MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Ultimo aggiornamento dei dati LastDataUpdate | La marca temporale dell’ultima estrazione o dell’ultimo aggiornamento dei dati. | ||
| Descrizione Indica quando il record è stato elaborato per l’ultima volta o caricato nello strumento di Process Mining. Aiuta a verificare l’aggiornamento dei dati e ad assicurare che l’analisi rifletta lo stato più recente del sistema. È distinto dalla marca temporale dell’evento, poiché riflette il momento tecnico della pipeline dei dati e non quello dell’evento clinico. Perché è importante È fondamentale per la governance dei dati e per garantire che l’analisi venga eseguita su dati aggiornati. Dove reperirlo Data di sistema al momento dell'esecuzione dell'ETL. Esempi 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Destinazione alla dimissione DischargeDisposition | La destinazione o lo stato del paziente al momento della dimissione. | ||
| Descrizione Indica dove si è recato il paziente dopo l'episodio, ad esempio «Domicilio», «Struttura infermieristica specializzata», «Assistenza sanitaria domiciliare» o «Deceduto». È una metrica chiave di esito per la Dashboard «Ottimizzazione della pianificazione della dimissione». La sua analisi aiuta a individuare se i ritardi nell'assegnazione dell'assistenza post-acuta contribuiscano a prolungare la degenza. Perché è importante Metrica di esito fondamentale per analizzare la durata della degenza e il rischio di riammissione. Dove reperirlo Schermate di abstracting o registrazione della dimissione. Esempi Dimesso al domicilioTrasferito in un ospedale generale per degenze breviDecedutoDimesso contro il parere medico | |||
| Diagnosi principale PrimaryDiagnosis | La principale condizione medica identificata per l'episodio del paziente. | ||
| Descrizione Contiene il codice ICD-10 o la descrizione del motivo principale dell'accesso. È il fondamento dell'«Analisi delle varianti dei percorsi clinici». Raggruppando i casi per diagnosi principale, i responsabili clinici possono confrontare i percorsi terapeutici effettivi con il percorso clinico ideale per quella specifica condizione. Perché è importante È essenziale per raggruppare i casi e analizzare i percorsi clinici. Dove reperirlo Modulo Medical Records o Abstracting. Esempi J18.9 - PolmoniteI21.9 - Infarto miocardico acutoS72.0 - Frattura del femore | |||
| È una riammissione IsReadmission | Indicatore che segnala se l'episodio si è verificato entro 30 giorni da una precedente dimissione. | ||
| Descrizione Attributo booleano che restituisce true se la data di registrazione attuale del paziente rientra nei 30 giorni successivi alla data di dimissione di un episodio precedente. Supporta la Dashboard «Riammissioni e qualità dell'assistenza». L'individuazione delle riammissioni consente agli analisti di risalire all'episodio precedente per individuare lacune nella pianificazione della dimissione o nell'assistenza di follow-up. Perché è importante Metrica di qualità critica, con impatto sul rimborso e sugli esiti dei pazienti. Dove reperirlo Calcolato confrontando StartTime attuale con Case EndTime precedente per lo stesso MedicalRecordNumber. Esempi truefalse | |||
| Livello di priorità del triage TriageAcuityLevel | Il livello di gravità assegnato al paziente durante il triage. | ||
| Descrizione Indica l'urgenza della condizione del paziente, generalmente su una scala, ad esempio da 1 a 5, dove 1 indica una condizione critica. Questo attributo è centrale per l'«Analisi del flusso del pronto soccorso». Consente agli analisti di correlare i tempi di attesa con la gravità del paziente, verificando che i casi più critici ricevano effettivamente la priorità necessaria. Perché è importante È fondamentale per analizzare la definizione delle priorità nel pronto soccorso e la conformità agli standard di sicurezza. Dove reperirlo Schermate di valutazione infermieristica del pronto soccorso o del triage. Esempi 1 - Rianimazione2 - Emergenza3 - Urgenza4 - Meno urgente | |||
| Numero di cartella clinica MedicalRecordNumber | Identificativo univoco del paziente per tutte le visite. | ||
| Descrizione Il Medical Record Number (MRN) identifica in modo univoco un paziente all'interno dell'organizzazione sanitaria, distinguendolo dall'ID specifico dell'episodio. Consente agli analisti di collegare nel tempo più episodi relativi allo stesso paziente. Questo attributo è essenziale per la Dashboard «Riammissioni e qualità dell'assistenza», che permette di individuare i pazienti che tornano in ospedale entro 30 giorni dalla dimissione. Perché è importante Consente di analizzare più episodi e di ottenere viste incentrate sul paziente. Dove reperirlo Indice anagrafico principale dei pazienti o tabella di registrazione. Esempi MRN-100293MRN-55928388291002 | |||
| Professionista sanitario responsabile AttendingProvider | Il medico o il professionista sanitario principale responsabile dell'attività. | ||
| Descrizione Registra il nome o l'ID del medico, dell'infermiere o del tecnico che esegue l'attività o supervisiona l'assistenza. Questo attributo supporta la Dashboard «Velocità di elaborazione del piano terapeutico», associando le metriche di rapidità ed efficienza a specifici membri del personale o ruoli. Consente di analizzare le risorse per bilanciare i carichi di lavoro e individuare le esigenze formative del personale clinico. Perché è importante Consente di analizzare le performance delle risorse e di bilanciare i carichi di lavoro. Dove reperirlo Campi Provider o User nei log delle attività. Esempi Dott. SmithInfermiere JonesTecnico Adams | |||
| Reparto ospedaliero HospitalDepartment | L'unità o il reparto specifico in cui si è svolta l'attività. | ||
| Descrizione Identifica l'unità funzionale, ad esempio «Pronto soccorso», «Radiologia», «Terapia intensiva» o «Reparto generale», responsabile dell'attività. Questo attributo è fondamentale per la Dashboard «Throughput delle risorse per reparto». Consente di segmentare le metriche di performance per unità, aiutando a individuare i colli di bottiglia nei trasferimenti interni e nell'utilizzo delle risorse. Perché è importante È fondamentale per l'analisi organizzativa e per individuare i colli di bottiglia nelle singole unità. Dove reperirlo Campi Location o Department nelle tabelle delle transazioni. Esempi Pronto soccorsoRadiologiaUnità di terapia intensivaReparto di chirurgia 3 | |||
| Tipologia di paziente PatientType | Classificazione della visita del paziente, ad esempio ricoverato, ambulatoriale o in emergenza. | ||
| Descrizione Classifica la natura della visita ospedaliera. I valori più comuni includono «Ricoverato», «Ambulatoriale», «Emergenza» o «Osservazione». Questa classificazione è fondamentale per filtrare e confrontare i processi, poiché gli standard assistenziali e la durata prevista variano significativamente in base alla tipologia. Questo campo supporta la Dashboard «Ottimizzazione della pianificazione della dimissione», segmentando le aspettative relative alla durata della degenza. Perché è importante Segmentazione fondamentale per confrontare i processi, ad esempio ricoverati rispetto a pazienti ambulatoriali. Dove reperirlo Tabelle Admission o Visit, ad esempio AdmVisits.Status. Esempi Paziente ricoveratoEmergenzaChirurgia ambulatorialeOsservazione | |||
| Categoria dell'ordine OrderCategory | Classificazione degli ordini clinici, ad esempio laboratorio, radiologia o consulenza. | ||
| Descrizione Raggruppa gli ordini in categorie più ampie, come «Laboratorio», «Radiologia», «Dietetica» o «Consulenza». È essenziale per la Dashboard «Tempi di esecuzione dei servizi diagnostici». Consente di separare i Workflow e analizzare i tempi di ciclo specifici degli esami di diagnostica per immagini rispetto agli esami del sangue, che spesso presentano colli di bottiglia differenti. Perché è importante Segmenta i Workflow diagnostici e terapeutici. Dove reperirlo Campi di categoria del modulo Order Entry (OE). Esempi LaboratorioRadiologiaAssistenza infermieristicaFarmacia | |||
| È una violazione dell'aderenza IsAdherenceViolation | Indicatore che segnala se il caso si è discostato dal percorso clinico standard. | ||
| Descrizione Indicatore booleano impostato su true se la sequenza delle attività non corrisponde al modello di riferimento definito per la diagnosi principale del paziente. Supporta l'«Analisi delle varianti dei percorsi clinici». Consente di filtrare rapidamente i casi «non conformi» per analizzare le ragioni del mancato rispetto dello standard assistenziale. Perché è importante Individua rapidamente le deviazioni e le variazioni del processo. Dove reperirlo Calcolato mediante algoritmi di conformance checking. Esempi truefalse | |||
| Importo addebitato ChargeAmount | Il valore finanziario associato a una specifica attività o servizio. | ||
| Descrizione Rappresenta il costo o l'addebito registrato per uno specifico evento, ad esempio un esame o l'addebito di una stanza. Sebbene sia principalmente finanziario, è correlato all'intensità di utilizzo delle risorse. Quando viene aggregato, aiuta a comprendere l'impatto finanziario delle variazioni di processo, anche se la vista richiesta si concentra principalmente sul flusso clinico. Perché è importante Aggiunge una dimensione finanziaria all'analisi del processo. Dove reperirlo Modulo Billing o BAR (Billing/Accounts Receivable). Esempi 150.001200.5045.00 | |||
| Nome del farmaco MedicationName | Il nome del farmaco somministrato. | ||
| Descrizione Registra il farmaco specifico associato agli eventi «Farmaco somministrato». È necessario per la Dashboard «Conformità della somministrazione dei farmaci». Consente ai responsabili infermieristici di verificare che i farmaci specifici ad alto rischio o soggetti a tempistiche critiche, come gli antibiotici per la sepsi, vengano somministrati entro le finestre terapeutiche appropriate. Perché è importante È necessario per l'analisi della conformità clinica e della sicurezza. Dove reperirlo Moduli Pharmacy (PHA) o Bedside Verification (BMV). Esempi ParacetamoloVancomicinaEparinaInsulina | |||
| Provenienza del ricovero AdmitSource | La provenienza del paziente, ad esempio domicilio, trasferimento o invio. | ||
| Descrizione Descrive l'origine del ricovero del paziente, ad esempio «Invio da parte del medico», «Pronto soccorso» o «Trasferimento da un altro ospedale». Fornisce il contesto sulle modalità di ingresso dei pazienti nel sistema. È utile per comprendere i modelli di afflusso e il loro impatto sull'«Analisi del flusso del pronto soccorso» e sulla pianificazione delle risorse. Perché è importante Fornisce il contesto sull'afflusso dei pazienti e sui canali della domanda. Dove reperirlo Dati di registrazione dei ricoveri. Esempi Pronto soccorsoInvio dalla clinicaTrasferimento da una struttura infermieristica qualificata | |||
| Tempo di attesa del triage TriageWaitTime | Durata compresa tra la registrazione e il completamento del triage. | ||
| Descrizione Durata calcolata tra l'evento «Paziente registrato» e l'evento «Triage completato». Alimenta direttamente il KPI «Tempo medio di throughput del triage». Il monitoraggio di questa durata aiuta i responsabili del pronto soccorso ad adeguare il personale nelle ore di punta, garantendo il rispetto degli standard di sicurezza dei pazienti. Perché è importante Metrica operativa fondamentale per i pronto soccorso. Dove reperirlo Differenza calcolata tra i timestamp di specifiche attività. Esempi 15 minuti1 ora e 20 minuti | |||
Attività del percorso del paziente
| Attività | Descrizione | ||
|---|---|---|---|
| Diagnosi documentata | È il momento in cui un medico inserisce nella cartella del paziente una diagnosi codificata (ICD-10). Spesso attiva specifici percorsi clinici. | ||
| Perché è importante Consente la 'Clinical Pathway Variant Analysis' classificando il caso. È fondamentale per raggruppare i pazienti ai fini del confronto. Dove reperirlo MEDITECH ABS (Abstracting) o Medical Records. Acquisito quando i codici diagnostici vengono associati all’account. Acquisizione Registrato quando viene eseguita la transazione Diagnosis Enter Tipo di evento explicit | |||
| Farmaco somministrato | Registra l’effettiva somministrazione del farmaco al paziente da parte del personale infermieristico. Generalmente viene acquisita tramite la scansione del codice a barre al letto del paziente. | ||
| Perché è importante Supporta la 'Medication Administration Compliance'. Individua i rischi per la sicurezza e le interruzioni del Workflow nelle unità infermieristiche. Dove reperirlo MEDITECH PHA (Pharmacy) o eMAR (Electronic Medication Administration Record). Il campo 'AdminDateTime' nella cronologia delle somministrazioni. Acquisizione Registrato quando viene eseguita la transazione Med Admin Tipo di evento explicit | |||
| Ordine di dimissione redatto | La marca temporale corrispondente al momento in cui il medico firma l’ordine che autorizza la dimissione del paziente. Segna l’inizio della fase di 'Discharge Planning'. | ||
| Perché è importante Stabilisce il valore di riferimento del 'Discharge Planning Lead Time'. L’intervallo tra questo momento e l’effettiva uscita rappresenta un’inefficienza operativa. Dove reperirlo MEDITECH OE (Order Entry). Filtrare gli ordini per Category = Discharge. Acquisizione Registrato quando viene eseguita la transazione Order Enter Tipo di evento explicit | |||
| Ordine inserito | Registra la richiesta di un servizio, di un farmaco o di un esame diagnostico da parte di un medico. È l’evento di attivazione delle attività cliniche successive. | ||
| Perché è importante Stabilisce il valore di riferimento del KPI 'Diagnostic Services Turnaround'. Il confronto con il tempo di esecuzione consente di individuare i ritardi nell’erogazione del servizio. Dove reperirlo Modulo MEDITECH OE (Order Entry). Acquisito dalla tabella 'OeOrders' utilizzando il campo Order Date/Time. Acquisizione Registrato quando viene eseguita la transazione Order Enter Tipo di evento explicit | |||
| Paziente dimesso | La chiusura amministrativa della visita. Il paziente ha lasciato fisicamente la struttura e il letto viene reso disponibile. | ||
| Perché è importante La conclusione formale del processo. Viene utilizzata per calcolare la durata finale della degenza e definire la finestra di rientro di 30 giorni. Dove reperirlo MEDITECH ADM (Admissions). Il campo 'DischargeDateTime' nella registrazione della visita. Acquisizione Registrato quando viene eseguita la transazione Discharge Patient Tipo di evento explicit | |||
| Paziente registrato | Questo evento indica la creazione amministrativa dell’episodio del paziente o della registrazione della visita nel sistema. Rappresenta il punto iniziale di accesso al modulo MEDITECH ADM (Admissions). | ||
| Perché è importante Stabilisce l’inizio del percorso del paziente e dei calcoli del tempo di ciclo. È essenziale per calcolare la durata totale della degenza. Dove reperirlo Modulo MEDITECH ADM. Origine: tabella 'Admissions', in particolare il campo 'AdmitDateTime' o la marca temporale di creazione del log della transazione. Acquisizione Registrato quando viene eseguita la transazione New Visit Tipo di evento explicit | |||
| Paziente trasferito | Indica lo spostamento fisico del paziente da una posizione, ovvero unità, stanza o letto, a un’altra. Monitora il flusso del paziente all’interno dell’ospedale. | ||
| Perché è importante È fondamentale per i 'Internal Transfer Bottlenecks'. Durate elevate dei trasferimenti indicano una competizione per le risorse o ritardi nel trasporto dei pazienti. Dove reperirlo MEDITECH ADM (Admissions). Acquisito dai log delle transazioni 'Location History' o 'RoomBed'. Acquisizione Registrato quando viene eseguita la transazione Transfer Patient Tipo di evento explicit | |||
| Risultato diagnostico verificato | Indica che un esame diagnostico di laboratorio o di radiologia è stato eseguito e che i risultati sono stati convalidati da un tecnico o da un radiologo. Chiude di fatto il ciclo di una richiesta diagnostica. | ||
| Perché è importante È il punto finale del KPI 'Diagnostic Services Turnaround'. È essenziale per analizzare i colli di bottiglia nei reparti di supporto diagnostico. Dove reperirlo Moduli MEDITECH LAB o ITS (Imaging and Therapeutic Services). Acquisito dai cambiamenti dello stato del risultato a Verified o Signed. Acquisizione Registrato quando il campo di stato cambia in Verified Tipo di evento explicit | |||
| Triage completato | Indica il completamento della valutazione infermieristica iniziale nel Pronto Soccorso. Definisce il livello di urgenza e il punteggio di gravità del paziente. | ||
| Perché è importante È fondamentale per la Dashboard Emergency Department Flow Analysis, che misura il flusso e i tempi di attesa. Dove reperirlo Modulo MEDITECH EDM (Emergency Department Management). Derivato dai cambiamenti di stato nel tracker EDM o dalla marca temporale del documento Triage Assessment. Acquisizione Registrato quando il campo di stato cambia in Triaged Tipo di evento explicit | |||
| Campione raccolto | Indica la raccolta fisica di un campione biologico per l’analisi di laboratorio. Questa attività colma il divario tra la richiesta e l’elaborazione. | ||
| Perché è importante È un passaggio granulare spesso responsabile dei ritardi nel ciclo diagnostico. Aiuta a distinguere i ritardi infermieristici da quelli di laboratorio. Dove reperirlo Modulo MEDITECH LAB. Generalmente acquisito quando un flebotomista scansiona il codice a barre o aggiorna lo stato del campione a Collected. Acquisizione Registrato quando viene eseguita la transazione Collect Specimen Tipo di evento explicit | |||
| Consulto completato | Indica il completamento della valutazione specialistica. Spesso viene dedotto dall’archiviazione di uno specifico tipo di documento, ad esempio 'Cardiology Consult Note'. | ||
| Perché è importante È il punto finale per misurare la reattività dello specialista. È fondamentale per garantire la tempestiva prosecuzione dell’assistenza. Dove reperirlo MEDITECH PCM (Provider Order Management) o EMR. Dedotto dalle marche temporali di creazione dei documenti con titoli specifici. Acquisizione Confrontare il campo di stato prima e dopo Tipo di evento inferred | |||
| Follow-up prenotato | La programmazione di un appuntamento futuro per il paziente. Questa attività favorisce la continuità assistenziale dopo la dimissione. | ||
| Perché è importante Supporta l’analisi 'Follow-up Appointment Scheduling'. È correlata a tassi di rientro più bassi. Dove reperirlo MEDITECH SCH (Scheduling). Dedotto collegando un nuovo record Appointment creato in prossimità della data di dimissione all’ID del paziente. Acquisizione Derivato dal confronto tra il campo Appointment Created Date e Discharge Date Tipo di evento inferred | |||
| Piano assistenziale avviato | Rappresenta la creazione o l’assegnazione di uno specifico piano assistenziale infermieristico o interdisciplinare. Corrisponde al concetto di 'Treatment Plan Developed'. | ||
| Perché è importante Misura la 'Treatment Plan Development Velocity'. I ritardi in questa fase suggeriscono lacune nel processo decisionale clinico. Dove reperirlo MEDITECH PCS (Patient Care System) o Care Manager. Marca temporale del momento in cui un Plan of Care standard viene applicato al paziente. Acquisizione Registrato quando viene eseguita la transazione Care Plan Add Tipo di evento explicit | |||
| Richiesta di consulto inviata | È un tipo specifico di ordine con cui si richiede il parere di uno specialista. Avvia il conteggio del tempo per la Dashboard 'Specialist Consultation Response'. | ||
| Perché è importante Individua i colli di bottiglia nel coordinamento dell’assistenza multidisciplinare. Tempi di attesa elevati in questa fase prolungano la degenza. Dove reperirlo MEDITECH OE (Order Entry). Identificato filtrando 'OeOrders' per Category = Consult. Acquisizione Registrato quando viene eseguita la transazione Order Enter Tipo di evento explicit | |||
Guide all'estrazione
Passaggi
Identifichi il server del Data Repository: individui l’istanza Microsoft SQL Server che ospita il MEDITECH Data Repository (DR). Si tratta di un ambiente distinto dal database transazionale M-AT o dal database basato su file. Avrà bisogno di credenziali di sola lettura, generalmente quelle di un account di servizio.
Determini la versione dello schema: le strutture del MEDITECH DR variano leggermente tra Magic, Client/Server (6.x) ed Expanse. La query seguente utilizza convenzioni di denominazione standard, ad esempio AdmVisits e OeOrders. Verifichi i nomi delle tabelle nel locale SQL Server Management Studio (SSMS) Object Explorer.
Definisca l’ambito: identifichi la tabella principale delle visite dei pazienti. In base alla configurazione del DR, potrebbe chiamarsi AdmVisits, RegAcct o AbstractData. La query utilizza AdmVisits come tabella di riferimento per il Patient Episode.
Prepari l’ambiente SQL: apra SSMS e si connetta al DR. Apra una nuova finestra di query e verifichi di aver selezionato il database corretto, spesso denominato livedb o con un nome simile.
Configuri i parametri: nello script SQL fornito, sostituisca i segnaposto relativi agli intervalli di date, ad esempio '2023-01-01', e agli identificativi delle strutture, qualora il DR ospiti più sedi.
Esegua l’estrazione: esegua lo script T-SQL completo. Lo script utilizza Common Table Expressions (CTE) per definire innanzitutto la popolazione di interesse e quindi applica UNION ALL a più origini dati, creando un Event Log standardizzato.
Gestisca gli Attributi NULL: la query include una logica per gestire eventuali valori NULL nei timestamp, utilizzando COALESCE ove appropriato, e verifica la presenza delle chiavi di join critiche, SourceID/VisitID.
Verifichi i dati di triage e di emergenza: MEDITECH memorizza i dati del pronto soccorso in moduli specifici. Se sta analizzando i Workflow di emergenza, verifichi che le tabelle EdVisits o NurInterventions siano valorizzate.
Convalidi le categorie degli ordini: la query separa gli ordini generali, le consulenze e gli ordini di dimissione in base agli urn o ai mnemonic delle categorie. Potrebbe essere necessario modificare le clausole WHERE per adattarle al dizionario dei mnemonic della Sua struttura.
Esporti i dati: una volta restituiti i risultati, faccia clic con il pulsante destro del mouse sulla griglia dei risultati in SSMS e selezioni Save Results As CSV. Verifichi che le intestazioni siano incluse.
Esegua la formattazione finale: apra il CSV e verifichi che i formati delle date siano conformi a ISO 8601 (YYYY-MM-DD HH:MM:SS) prima di importare il file in ProcessMind.
Configurazione
- Accesso al database: sono necessarie autorizzazioni db_datareader sul database SQL del MEDITECH DR.
- Intervallo di date: si raccomanda una finestra di estrazione compresa tra 3 e 6 mesi di pazienti dimessi, così da includere cicli completati.
- Filtro per struttura: se il DR contiene dati relativi a più strutture, filtri la CTE BaseVisits per FacilityID o SourceSystemID.
- Definizione dell’episodio: lo script utilizza il VisitID univoco, spesso denominato Account Number o Episode Number, come Case ID.
- Prestazioni: la query utilizza una CTE di riferimento per limitare l’intervallo di scansione. Per ottenere prestazioni ottimali, verifichi che nella tabella AdmVisits siano presenti indici su AdmitDate e DischargeDate.
- Latenza: i trasferimenti dal Data Repository possono presentare una latenza compresa tra 15 minuti e 24 ore, in base alla configurazione della sede. Verifichi il timestamp LastDataUpdate.
a Query di esempio 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'); Pronto per iniziare?
Inizi oggi stesso a trasformare le Sue attività cliniche applicando questo Template ai dati MEDITECH. Il nostro team è a Sua disposizione per aiutarLa a perfezionare l’estrazione dei dati e massimizzare l’efficienza ospedaliera.
Ottimizzi subito il percorso dei pazienti e riduca i ritardi
Riduca del 30% i tempi di ciclo e migliori l’efficienza ospedaliera
Non è richiesta alcuna carta di credito. Inizi in pochi minuti.