Il Suo Template Dati per il Percorso del Paziente
Il Suo Template Dati per il Percorso del Paziente
- Attributi clinici raccomandati
- Tappe fondamentali del processo
- Guida all'estrazione dati MEDITECH
Attributi del Percorso del Paziente
| Nome | Descrizione | ||
|---|---|---|---|
| Episodio Paziente PatientEpisode | L'identificatore univoco per un periodo specifico di cura del paziente o visita. | ||
| Descrizione L'Episodio Paziente funge da identificatore case centrale per l'analisi del processo. Raggruppa tutti gli event clinici, amministrativi e finanziari relativi a un singolo ricovero ospedaliero o visita ambulatoriale in un unico percorso coeso. Nei sistemi MEDITECH, questo spesso corrisponde al Numero Conto o all'ID Visita. Questo attributo è fondamentale per ricostruire il percorso del paziente dalla registrazione alla dimissione, consentendo il calcolo della durata della degenza e l'analisi dei percorsi clinici. Perché è importante È la chiave di caso obbligatoria richiesta per collegare eventi disparati in una singola istanza di processo. Dove trovare Modulo MEDITECH Ricoveri o Registrazione; tipicamente il campo Numero Conto. Esempi V100938475AC29384755E993847211O229384711 | |||
| Nome attività ActivityName | L'azione clinica o amministrativa specifica eseguita. | ||
| Descrizione Questo attributo rappresenta il nome dell'event o del task che si verifica all'interno del percorso del paziente. Cattura i passaggi distinti come 'Paziente Registrato', 'Farmaco Somministrato' o 'Ordine di Dimissione Scritto'. La corretta identificazione delle attività è cruciale per la mappatura del flusso di processo. Questi valori sono spesso derivati da codici di transazione, stati degli ordini o interventi documentati all'interno della cartella clinica elettronica. Perché è importante Definisce i passaggi del processo ed è necessario per visualizzare la mappa del processo. Dove trovare Derivato da vari log di transazione (Ordini OE, Interventi NUR, Eventi ADM). Esempi Paziente RegistratoTriage CompletatoFarmaco SomministratoRisultato Diagnostico Verificato | |||
| Sistema di Origine SourceSystem | L'identificatore del sistema da cui provengono i dati. | ||
| Descrizione Identifica l'istanza MEDITECH o il modulo specifico da cui sono stati estratti i dati dell'evento. In ambienti multi-ospedalieri, questo aiuta a distinguere tra dati provenienti da diverse strutture o versioni di sistema. Questo attributo è statico per un'estrazione da singolo sistema ma critico quando si uniscono dati per creare una vista unificata su una rete ospedaliera. Perché è importante Garantisce la tracciabilità e la provenienza dei dati in ambienti multi-sistema. Dove trovare Hardcoded durante l'estrazione o la configurazione dell'ID del sistema. Esempi MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Timestamp Evento EventTimestamp | La data e l'ora specifiche in cui si è verificata l'attività. | ||
| Descrizione Questo attributo registra il momento esatto in cui un'attività ha avuto luogo. Viene utilizzato per sequenziare gli event cronologicamente e calcolare le metriche di durata tra le fasi del processo. Timestamp ad alta precisione sono necessari per un'analisi accurata dei tempi di attesa, come la durata tra triage e valutazione, o il turnaround time per i risultati diagnostici. Perché è importante Richiesto per ordinare gli event e calcolare i tempi di ciclo e la produttività. Dove trovare Colonne data/ora transazione nelle tabelle di origine. Esempi 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Ultimo `Data Update` LastDataUpdate | Il timestamp di quando i dati sono stati estratti o aggiornati l'ultima volta. | ||
| Descrizione Indica quando il record è stato elaborato o caricato l'ultima volta nello strumento di Process Mining. Questo aiuta a verificare la freschezza dei dati e a garantire che l'analisi rifletta lo stato più attuale del sistema. È distinto dal Timestamp dell'Evento, poiché riflette il tempo tecnico della pipeline dati piuttosto che il tempo dell'evento clinico. Perché è importante Critico per la governance dei dati e per garantire che l'analisi venga eseguita su dati aggiornati. Dove trovare Data di sistema al momento dell'esecuzione dell'ETL. Esempi 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Diagnosi Primaria PrimaryDiagnosis | La principale condizione medica identificata per l'episodio paziente. | ||
| Descrizione Contiene il codice ICD-10 o la descrizione del motivo primario dell'incontro. Questo è il fulcro dell''Analisi delle Variazioni del Percorso Clinico'. Raggruppando i casi per Diagnosi Primaria, i responsabili clinici possono confrontare i percorsi di trattamento reali con il percorso clinico ideale per quella specifica condizione. Perché è importante Essenziale per raggruppare i casi per analizzare i percorsi clinici. Dove trovare Modulo Cartelle Cliniche o Riepilogo. Esempi J18.9 - PolmoniteI21.9 - Infarto Miocardico AcutoS72.0 - Frattura del Femore | |||
| Disposizione di Dimissione DischargeDisposition | La destinazione o lo stato del paziente al momento delle dimissioni. | ||
| Descrizione Indica dove è andato il paziente dopo l'episodio, come 'Casa', 'Struttura di Cura Specializzata', 'Assistenza Domiciliare' o 'Deceduto'. Questa è una metrica di risultato chiave per la dashboard 'Ottimizzazione della Pianificazione delle Dimissioni'. Analizzare questo aiuta a identificare se i ritardi nell'ottenere posizionamenti per cure post-acute stiano contribuendo a durate della degenza più lunghe. Perché è importante Metrica di risultato chiave per analizzare la durata della degenza e il rischio di riammissione. Dove trovare Schermate di astrazione o registrazione delle dimissioni. Esempi Dimesso a CasaTrasferito a Ospedale Generale a Breve DegenzaScadutoDimesso Contro il Parere Medico | |||
| Durata della Degenza LengthOfStay | Durata totale dell'episodio paziente dal ricovero alla dimissione. | ||
| Descrizione Una metrica calcolata che rappresenta il tempo totale trascorso tra l'ora di inizio della registrazione/ammissione e l'ora di dimissione. Questa è la metrica primaria per la dashboard 'Analisi del Trend della Durata della Degenza'. Serve come indicatore di efficienza di alto livello ed è spesso utilizzata per normalizzare i confronti tra diversi reparti o gruppi di diagnosi. Perché è importante KPI di efficienza primaria per le operazioni ospedaliere. Dove trovare Calcolato dal StartTime della Registrazione rispetto alla Dimissione. Esempi 4 giorni 2 ore45 minuti12 giorni | |||
| È una Riammissione IsReadmission | Flag che indica se questo episodio si è verificato entro 30 giorni da una dimissione precedente. | ||
| Descrizione Un attributo booleano che restituisce vero se la data di registrazione attuale del paziente rientra entro 30 giorni dalla data di dimissione di un episodio precedente. Questo supporta la dashboard 'Riammissione e Qualità dell'Assistenza'. Identificare le riammissioni consente agli analisti di risalire all'episodio precedente per trovare lacune nella pianificazione delle dimissioni o nell'assistenza di follow-up. Perché è importante Metrica di qualità critica che influenza il rimborso e gli esiti dei pazienti. Dove trovare Calcolato confrontando il StartTime attuale con il Case EndTime precedente per lo stesso MedicalRecordNumber. Esempi truefalse | |||
| Livello di Acuità Triage TriageAcuityLevel | La classificazione di gravità assegnata a un paziente durante il triage. | ||
| Descrizione Indica l'urgenza della condizione del paziente, tipicamente su una scala (es. 1-5, dove 1 è critico). 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, garantendo che i pazienti più critici vengano prioritizzati efficacemente. Perché è importante Critico per analizzare la prioritizzazione del Pronto Soccorso e la Conformità alla sicurezza. Dove trovare Schermate di valutazione infermieristica del Pronto Soccorso o del Triage. Esempi 1 - Rianimazione2 - Emergente3 - Urgente4 - Meno Urgente | |||
| Medico Curante AttendingProvider | Il clinico o fornitore primario responsabile dell'attività. | ||
| Descrizione Registra il nome o l'ID del medico, infermiere o tecnico che esegue il compito o supervisiona le cure. Questo attributo supporta la dashboard 'Velocità di Sviluppo del Piano di Trattamento' attribuendo metriche di velocità ed efficienza a personale o ruoli specifici. Permette l'analisi delle risorse per bilanciare i carichi di lavoro e identificare le esigenze di formazione tra il personale clinico. Perché è importante Consente l'analisi delle prestazioni delle risorse e il bilanciamento del carico di lavoro. Dove trovare Campi Fornitore o Utente nei log delle attività. Esempi Dott. SmithInfermiere JonesTecnico Adams | |||
| Numero di Cartella Clinica MedicalRecordNumber | Un identificatore univoco per il paziente attraverso tutte le visite. | ||
| Descrizione Il Numero di Cartella Clinica (MRN) identifica in modo univoco un paziente all'interno dell'organizzazione sanitaria, distinto dall'ID specifico dell'episodio. Consente agli analisti di collegare più episodi che coinvolgono lo stesso paziente nel tempo. Questo attributo è essenziale per la dashboard 'Ri-ricovero e Qualità delle Cure', consentendo il rilevamento dei pazienti che ritornano in ospedale entro 30 giorni dalla dimissione. Perché è importante Abilita l'analisi cross-episodio e le viste incentrate sul paziente. Dove trovare Anagrafica principale del paziente o tabella di registrazione. Esempi MRN-100293MRN-55928388291002 | |||
| Reparto Ospedaliero HospitalDepartment | L'unità o il reparto specifico in cui si è verificata l'attività. | ||
| Descrizione Identifica l'unità funzionale, come 'Pronto Soccorso', 'Radiologia', 'Terapia Intensiva' o 'Reparto Generale', responsabile dell'attività. Questo attributo è vitale per la dashboard 'Throughput Risorse Dipartimentali'. Consente la segmentazione delle metriche di performance per unità, aiutando a individuare i bottleneck nei trasferimenti interni e nell'utilizzo delle risorse. Perché è importante Chiave per l'analisi organizzativa e l'identificazione dei bottleneck in unità specifiche. Dove trovare Campi di Posizione o Reparto nelle tabelle di transazione. Esempi Pronto SoccorsoRadiologiaUnità di Terapia IntensivaReparto Chirurgico 3 | |||
| Tipo di Paziente PatientType | Categorizzazione della visita del paziente (es. Ricovero, Ambulatoriale, Emergenza). | ||
| Descrizione Classifica la natura della visita ospedaliera. I valori comuni includono 'Ricovero', 'Ambulatoriale', 'Emergenza' o 'Osservazione'. Questa classificazione è fondamentale per filtrare e confrontare i processi, poiché lo standard di cura e la durata prevista differiscono significativamente per tipo. Questo campo aiuta nella dashboard 'Ottimizzazione della Pianificazione delle Dimissioni' segmentando le aspettative sulla durata della degenza. Perché è importante Segmentazione fondamentale per il confronto dei processi (Ricovero vs Ambulatoriale). Dove trovare Tabelle di Ammissione o Visita (es. AdmVisits.Status). Esempi RicoveroEmergenzaChirurgia AmbulatorialeOsservazione | |||
| Categoria Ordine OrderCategory | Classificazione degli ordini clinici (es. Laboratorio, Radiologia, Consulenza). | ||
| Descrizione Raggruppa gli ordini in categorie più ampie come 'Laboratorio', 'Radiologia', 'Dietetica' o 'Consulenza'. Questo è essenziale per la dashboard 'Tempo di Risposta dei Servizi Diagnostici'. Abilita la separazione dei workflow per analizzare i tempi di ciclo specifici per l'imaging rispetto agli esami del sangue, che spesso presentano bottleneck diversi. Perché è importante Segmenta i workflow diagnostici e di trattamento. Dove trovare Campi categoria del modulo Order Entry (OE). Esempi LaboratorioRadiologiaInfermieristicaFarmacia | |||
| Fonte di Ammissione AdmitSource | Da dove proviene il paziente (es. Domicilio, Trasferimento, Rinvio). | ||
| Descrizione Descrive l'origine dell'ammissione del paziente, come 'Referral Medico', 'Pronto Soccorso' o 'Trasferimento da altro Ospedale'. Questo fornisce contesto su come i pazienti entrano 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 contesto sull'afflusso di pazienti e sui canali di domanda. Dove trovare Dati di registrazione delle ammissioni. Esempi Pronto SoccorsoReferral ClinicoTrasferimento da RSA | |||
| Importo dell'Addebito ChargeAmount | Il valore finanziario associato a una specifica attività o servizio. | ||
| Descrizione Rappresenta il costo o l'addebito registrato per un event specifico, come un test o l'addebito della stanza. Sebbene principalmente finanziario, è correlato all'intensità delle risorse. Quando aggregato, aiuta a comprendere l'impatto finanziario delle variazioni di processo, sebbene il focus principale della vista richiesta sia il flusso clinico. Perché è importante Aggiunge una dimensione finanziaria all'analisi dei processi. Dove trovare Modulo di Fatturazione o BAR (Billing/Accounts Receivable). Esempi 150.001200.5045.00 | |||
| Nome del Farmaco MedicationName | Il nome del farmaco somministrato. | ||
| Descrizione Cattura il farmaco specifico coinvolto negli eventi di 'Farmaco Somministrato'. Questo è richiesto per la dashboard 'Conformità Somministrazione Farmaci'. Consente alla leadership infermieristica di verificare che farmaci specifici ad alto rischio o critici per tempo (come gli antibiotici per la sepsi) siano consegnati entro le finestre terapeutiche appropriate. Perché è importante Richiesto per la conformità clinica e l'analisi della sicurezza. Dove trovare Moduli Farmacia (PHA) o Verifica al Letto (BMV). Esempi AcetaminophenVancomicinaEparinaInsulina | |||
| Tempo di Attesa Triage TriageWaitTime | Durata temporale tra la registrazione e il completamento del triage. | ||
| Descrizione La durata calcolata tra l'event 'Paziente Registrato' e l'event 'Triage Completato'. Questo alimenta direttamente il KPI 'Tempo Medio di Triage Throughput'. Monitorare questa durata aiuta i responsabili del PS ad adeguare il personale durante le ore di punta per garantire il rispetto degli standard di sicurezza del paziente. Perché è importante Metrica operativa chiave per i Pronto Soccorso. Dove trovare Differenza calcolata tra timestamp di attività specifici. Esempi 15 minuti1 ora 20 minuti | |||
| Violazione di Aderenza IsAdherenceViolation | Flag che indica se il caso ha deviato dal percorso clinico standard. | ||
| Descrizione Un flag booleano impostato su vero se la sequenza di attività non corrisponde al modello di riferimento definito per la Diagnosi Primaria del paziente. Questo supporta l''Analisi delle Variazioni del Percorso Clinico'. Consente un filtraggio rapido dei casi 'non conformi' per indagare sul perché lo standard di cura non sia stato seguito. Perché è importante Identifica rapidamente deviazioni e varianze di processo. Dove trovare Calcolato da algoritmi di conformance checking. Esempi truefalse | |||
Attività del Percorso del Paziente
| Activity | Descrizione | ||
|---|---|---|---|
| Diagnosi Documentata | Il punto in cui un clinico inserisce una diagnosi codificata (ICD-10) nella cartella clinica del paziente. Questo spesso innesca specifici percorsi clinici. | ||
| Perché è importante Abilita l''Analisi delle Variazioni del Percorso Clinico' categorizzando il caso. Critico per raggruppare i pazienti per il confronto. Dove trovare MEDITECH ABS (Riepilogo) o Cartelle Cliniche. Catturato quando i codici diagnosi sono associati al conto. Acquisisci Registrato all'esecuzione della transazione Inserimento Diagnosi Tipo di evento explicit | |||
| Farmaco Somministrato | Registra l'effettiva somministrazione del farmaco al paziente da parte del personale infermieristico. Solitamente catturato tramite scansione di codice a barre al letto del paziente. | ||
| Perché è importante Supporta la 'Conformità alla Somministrazione dei Farmaci'. Identifica rischi per la sicurezza e interruzioni del workflow nelle unità infermieristiche. Dove trovare MEDITECH PHA (Farmacia) o eMAR (Registro Elettronico di Somministrazione Farmaci). L''AdminDateTime' nella cronologia delle somministrazioni. Acquisisci Registrato all'esecuzione della transazione Somministrazione Farmaci Tipo di evento explicit | |||
| Ordine di Dimissione Scritto | Il timestamp in cui il medico firma l'ordine che autorizza la dimissione del paziente. Questo segna l'inizio della fase di 'Pianificazione delle Dimissioni'. | ||
| Perché è importante Stabilisce il baseline del 'Tempo di Anticipo della Pianificazione delle Dimissioni'. Il divario tra questo e la partenza effettiva rappresenta l'inefficienza operativa. Dove trovare MEDITECH OE (Inserimento Ordini). Filtrare gli Ordini per Categoria = Dimissione. Acquisisci Registrato all'esecuzione della transazione Inserimento Ordine Tipo di evento explicit | |||
| Ordine inserito | Registra la richiesta di un servizio, farmaco o test diagnostico da parte di un clinico. Questo è l'event scatenante per le attività cliniche successive. | ||
| Perché è importante Stabilisce il baseline del KPI 'Tempo di Risposta dei Servizi Diagnostici'. Confrontarlo con il tempo di esecuzione identifica ritardi nella fornitura del servizio. Dove trovare Modulo MEDITECH OE (Inserimento Ordini). Catturato dalla tabella 'OeOrders' utilizzando il campo Data/Ora Ordine. Acquisisci Registrato all'esecuzione della transazione Inserimento Ordine Tipo di evento explicit | |||
| Paziente Dimesso | La chiusura amministrativa della visita. Il paziente ha fisicamente lasciato la struttura e il letto viene rilasciato. | ||
| Perché è importante La fine formale del processo. Utilizzato per calcolare la durata finale della degenza e definire la finestra di ri-ricovero a 30 giorni. Dove trovare MEDITECH ADM (Ricoveri). Il campo 'DataOraDimissione' nel record della visita. Acquisisci Registrato all'esecuzione della transazione Dimissione Paziente Tipo di evento explicit | |||
| Paziente Registrato | Questo event segna la creazione amministrativa dell'episodio paziente o del record della visita nel sistema. Cattura il punto di ingresso iniziale nel modulo MEDITECH ADM (Ricoveri). | ||
| Perché è importante Stabilisce l'inizio del percorso del paziente e i calcoli del tempo di ciclo. Essenziale per il calcolo della Durata Totale della Degenza. Dove trovare Modulo MEDITECH ADM. Ricavato dalla tabella 'Admissions', in particolare dal campo 'AdmitDateTime' o dal timestamp di creazione del log delle transazioni. Acquisisci Registrato all'esecuzione della transazione Nuova Visita Tipo di evento explicit | |||
| Paziente Trasferito | Indica il movimento fisico di un paziente da una posizione (Unità/Stanza/Letto) all'altra. Traccia il flusso attraverso l'ospedale. | ||
| Perché è importante Chiave per i 'Bottleneck nei Trasferimenti Interni'. Durate di trasferimento elevate indicano contenzione delle risorse o ritardi nel trasporto interno. Dove trovare MEDITECH ADM (Ricoveri). Catturato dai log delle transazioni 'Cronologia Località' o 'StanzaLetto'. Acquisisci Registrato all'esecuzione della transazione Trasferimento Paziente Tipo di evento explicit | |||
| Risultato Diagnostico Verificato | Indica che un test diagnostico (Laboratorio o Radiologia) è stato eseguito e i risultati sono stati firmati da un tecnico o radiologo. Questo chiude efficacemente il ciclo su un ordine diagnostico. | ||
| Perché è importante Il punto finale per il 'Turnaround dei Servizi Diagnostici'. Essenziale per analizzare i bottleneck nei reparti ausiliari. Dove trovare Moduli MEDITECH LAB o ITS (Servizi di Imaging e Terapeutici). Catturato dai cambiamenti di stato dei risultati a Verificato o Firmato. Acquisisci Registrato quando il campo stato cambia in Verificato Tipo di evento explicit | |||
| Triage Completato | Indica il completamento della valutazione infermieristica iniziale al Pronto Soccorso. Questo definisce il livello di gravità e il punteggio di severità per il paziente. | ||
| Perché è importante Critico per la dashboard 'Analisi del Flusso del Pronto Soccorso' per misurare il throughput e i tempi di attesa. Dove trovare Modulo MEDITECH EDM (Gestione Pronto Soccorso). Derivato dai cambiamenti di stato nel tracker EDM o dal timestamp del documento di Valutazione Triage. Acquisisci Registrato quando il campo stato cambia in Triage Tipo di evento explicit | |||
| Campione Raccolto | Segna la raccolta fisica di un campione biologico per l'analisi di laboratorio. Questa attività colma il divario tra l'ordinazione e l'elaborazione. | ||
| Perché è importante Passaggio granulare spesso responsabile dei ritardi nel ciclo di vita diagnostico. Utile per separare i ritardi infermieristici dai ritardi di laboratorio. Dove trovare Modulo MEDITECH LAB. Solitamente acquisito quando un flebotomo scansiona il codice a barre o aggiorna lo stato del campione a Raccolto. Acquisisci Registrato quando la transazione Prelievo Campione è eseguita Tipo di evento explicit | |||
| Consultazione Completata | Il completamento della valutazione specialistica. Spesso desunto dalla presentazione di un tipo di documento specifico (es. 'Nota di Consulenza Cardiologica'). | ||
| Perché è importante Il punto finale per misurare la reattività dello specialista. Critico per garantire una progressione tempestiva delle cure. Dove trovare MEDITECH PCM (Gestione Ordini del Fornitore) o EMR. Desunto dai timestamp di creazione dei documenti con titoli specifici. Acquisisci Confrontare il campo stato prima e dopo Tipo di evento inferred | |||
| Follow-up Prenotato | La programmazione di un appuntamento futuro per il paziente. Questa attività supporta la continuità delle cure post-dimissione. | ||
| Perché è importante Supporta l'analisi della 'Programmazione Appuntamenti di Follow-up'. Correlato a tassi di ri-ricovero più bassi. Dove trovare MEDITECH SCH (Programmazione). Desunto collegando un nuovo record di Appuntamento creato in prossimità della data di dimissione all'ID del paziente. Acquisisci Derivare dal confronto del campo Data Creazione Appuntamento con Data Dimissione Tipo di evento inferred | |||
| Piano di Cura Avviato | Rappresenta la creazione o l'assegnazione di un piano di cura infermieristico o interdisciplinare specifico. Ciò corrisponde al concetto di 'Piano di Trattamento Sviluppato'. | ||
| Perché è importante Misura la 'Velocità di Sviluppo del Piano di Trattamento'. Ritardi qui suggeriscono lacune nel processo decisionale clinico. Dove trovare MEDITECH PCS (Sistema di Cura del Paziente) o Care Manager. Timestamp di quando un Piano di Cura standard viene applicato al paziente. Acquisisci Registrato quando la transazione Aggiunta Piano di Cura è eseguita Tipo di evento explicit | |||
| Richiesta di Consulto Inviata | Un tipo specifico di ordine che richiede un'opinione specialistica. Questo avvia il conteggio sulla dashboard 'Risposta alla Consultazione Specialistica'. | ||
| Perché è importante Identifica i bottleneck nella coordinazione delle cure multidisciplinari. Tempi di attesa elevati qui prolungano la durata della degenza. Dove trovare MEDITECH OE (Inserimento Ordini). Identificato filtrando 'OeOrders' per Categoria = Consulenza. Acquisisci Registrato all'esecuzione della transazione Inserimento Ordine Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
Identificare il Server del Data Repository: Individuate l'istanza di Microsoft SQL Server che ospita il vostro Data Repository (DR) MEDITECH. Questo è distinto dal database transazionale M-AT o basato su file. Avrete bisogno di credenziali di sola lettura (tipicamente un account di servizio).
Determinare la Versione dello Schema: Le strutture del DR MEDITECH variano leggermente tra Magic, Client/Server (6.x) ed Expanse. La query seguente utilizza convenzioni di denominazione standard (es. AdmVisits, OeOrders). Verificate questi nomi di tabella nel vostro Esplora Oggetti di SQL Server Management Studio (SSMS) locale.
Definire lo Scopo: Identificate la tabella principale per le visite dei pazienti. Questa è solitamente denominata AdmVisits, RegAcct o AbstractData a seconda della vostra configurazione DR specifica. La query utilizza AdmVisits come ancoraggio per l'Episodio del Paziente.
Preparare l'Ambiente SQL: Aprite SSMS e connettetevi al DR. Aprite una nuova finestra di query. Assicuratevi di essere passati al database corretto (spesso chiamato livedb o simile).
Configurare i Parametri: Nello script SQL fornito, sostituite i segnaposto per gli intervalli di date (es. '2023-01-01') e gli identificatori di struttura se il vostro DR ospita più siti.
Eseguire l'Estrazione: Eseguite lo script T-SQL completo. Utilizza Common Table Expressions (CTE) per definire prima la popolazione di interesse e poi UNION ALL più fonti di dati per creare un log di eventi standardizzato.
Gestire gli Attributi NULL: La query include una logica per gestire potenziali NULL nei timestamp (usando COALESCE dove appropriato) e assicura che le chiavi di unione critiche (SourceID/VisitID) siano presenti.
Verificare i Dati di Triage e di Emergenza: MEDITECH memorizza i dati ED in moduli specifici. Assicuratevi che le tabelle EdVisits o NurInterventions siano popolate se state analizzando i workflow di Emergenza.
Convalidare le Categorie di Ordine: La query separa ordini generali, consulti e ordini di dimissione basati su urn Category o mnemonici. Potrebbe essere necessario regolare le clausole WHERE specifiche per corrispondere al dizionario Mnemonic della vostra struttura.
Esportare i Dati: Una volta restituiti i risultati, fate clic destro sulla griglia dei risultati in SSMS e selezionate Salva Risultati come CSV. Assicuratevi che le intestazioni siano incluse.
Formattazione Finale: Aprite il CSV per verificare che i formati data siano conformi a ISO 8601 (YYYY-MM-DD HH:MM:SS) prima di importare in ProcessMind.
Configurazione
- Accesso al Database: Richiede i permessi db_datareader sul database SQL MEDITECH DR.
- Intervallo di Date: La finestra di estrazione consigliata è di 3-6 mesi di pazienti dimessi per assicurare cicli completati.
- Filtro per Struttura: Se il DR contiene dati multi-struttura, filtrate la CTE BaseVisits per FacilityID o SourceSystemID.
- Definizione dell'Episodio: Lo script utilizza l'ID Visita univoco (spesso chiamato Numero di Conto o Numero di Episodio) come ID Caso.
- Performance: La query utilizza un ancoraggio CTE per limitare l'intervallo di scansione. Assicuratevi che esistano indici su AdmitDate e DischargeDate nella tabella AdmVisits per prestazioni ottimali.
- Latenza: I trasferimenti del Data Repository possono avere una latenza da 15 minuti a 24 ore a seconda della configurazione del sito. Confermate 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');