Su Template de datos de experiencia del paciente
Su Template de datos de experiencia del paciente
- Atributos clínicos recomendados
- Hitos esenciales del proceso
- Guía para extraer datos de MEDITECH
Atributos del recorrido del paciente
| Nombre | Descripción | ||
|---|---|---|---|
| Episodio del paciente PatientEpisode | Identificador único de un periodo específico de atención o de una visita del paciente. | ||
| Descripción Patient Episode actúa como identificador central del caso para el análisis del proceso. Agrupa en un único recorrido coherente todos los eventos clínicos, administrativos y financieros relacionados con una estancia hospitalaria o una visita ambulatoria. En los sistemas MEDITECH, suele corresponder al Account Number o Visit ID. Este atributo es fundamental para reconstruir el recorrido del paciente desde el registro hasta el alta, calcular la duración de la estancia y analizar las vías clínicas. Por qué es importante Es la clave de caso obligatoria para vincular eventos independientes en una única instancia del proceso. Dónde obtenerlo Módulo MEDITECH Admissions o Registration; normalmente, el campo Account Number. Ejemplos V100938475AC29384755E993847211O229384711 | |||
| Marca de tiempo del evento EventTimestamp | La fecha y hora exactas en las que tuvo lugar la actividad. | ||
| Descripción Este atributo registra el momento exacto en que se produjo una actividad. Se utiliza para ordenar cronológicamente los eventos y calcular métricas de duración entre los pasos del proceso. Las marcas de tiempo de alta precisión son necesarias para analizar correctamente los tiempos de espera, como la duración entre el triaje y la evaluación o el tiempo de respuesta de los resultados diagnósticos. Por qué es importante Es necesario para ordenar los eventos y calcular los tiempos de ciclo y el rendimiento. Dónde obtenerlo Columnas de fecha y hora de las transacciones en las tablas de origen. Ejemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Nombre de la actividad ActivityName | La acción clínica o administrativa específica que se ha realizado. | ||
| Descripción Este atributo representa el nombre del evento o la tarea que tiene lugar durante el recorrido del paciente. Registra pasos concretos, como 'Patient Registered', 'Medication Administered' o 'Discharge Order Written'. Identificar correctamente las actividades es fundamental para representar el flujo del proceso. Estos valores suelen derivarse de códigos de transacción, estados de órdenes o intervenciones documentadas en la historia clínica electrónica. Por qué es importante Define los pasos del proceso y es necesario para visualizar el mapa del proceso. Dónde obtenerlo Se obtiene de diversos registros de transacciones, como OE Orders, NUR Interventions y ADM Events. Ejemplos Paciente registradoTriaje completadoMedicamento administradoResultado diagnóstico verificado | |||
| Sistema de origen SourceSystem | El identificador del sistema del que proceden los datos. | ||
| Descripción Identifica la instancia de MEDITECH o el módulo específico del que se extrajeron los datos del evento. En entornos con varios hospitales, ayuda a distinguir los datos de diferentes centros o versiones del sistema. Este atributo es estático en una extracción de un único sistema, pero resulta fundamental al combinar datos para crear una vista unificada de una red hospitalaria. Por qué es importante Garantiza la trazabilidad y el linaje de los datos en entornos con varios sistemas. Dónde obtenerlo Se establece durante la extracción o en la configuración del ID del sistema. Ejemplos MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo en la que se extrajeron o actualizaron los datos por última vez. | ||
| Descripción Indica cuándo se procesó o cargó por última vez el registro en la herramienta de Process Mining. Ayuda a auditar la actualidad de los datos y a garantizar que el análisis refleje el estado más reciente del sistema. Se diferencia de Event Timestamp porque refleja el momento técnico de la canalización de datos, no el momento del evento clínico. Por qué es importante Es fundamental para la gobernanza de datos y para garantizar que el análisis se realice con datos actualizados. Dónde obtenerlo Fecha del sistema en el momento de ejecutar el proceso ETL. Ejemplos 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Departamento hospitalario HospitalDepartment | Unidad o departamento específico donde tuvo lugar la actividad. | ||
| Descripción Identifica la unidad funcional, como «Urgencias», «Radiología», «UCI» o «Unidad general», responsable de la actividad. Este atributo es fundamental para el Dashboard «Rendimiento de recursos departamentales». Permite segmentar las métricas de rendimiento por unidad y ayuda a localizar cuellos de botella en las transferencias internas y el uso de recursos. Por qué es importante Es clave para el análisis organizativo y la identificación de cuellos de botella en unidades concretas. Dónde obtenerlo Campos de ubicación o departamento en las tablas de transacciones. Ejemplos Departamento de EmergenciasRadiologíaUnidad de Cuidados IntensivosUnidad Quirúrgica 3 | |||
| Destino del alta DischargeDisposition | Destino o estado del paciente al recibir el alta. | ||
| Descripción Indica adónde fue el paciente después del episodio, por ejemplo, «Home», «Skilled Nursing Facility», «Home Health» o «Expired». Es un indicador clave de resultados para el Dashboard «Discharge Planning Optimization». Su análisis ayuda a identificar si los retrasos para conseguir atención posterior al alta están contribuyendo a prolongar la estancia. Por qué es importante Indicador clave de resultados para analizar la duración de la estancia y el riesgo de readmisión. Dónde obtenerlo Pantallas de abstracción o registro del alta. Ejemplos Alta a domicilioTraslado a un hospital general de corta estanciaFallecidoAbandono contra recomendación médica | |||
| Diagnóstico principal PrimaryDiagnosis | La principal afección médica identificada en el episodio del paciente. | ||
| Descripción Contiene el código ICD-10 o la descripción del motivo principal de la consulta. Es la base de «Clinical Pathway Variant Analysis». Al agrupar los casos por diagnóstico principal, los responsables clínicos pueden comparar las rutas de tratamiento reales con la ruta clínica ideal para esa afección concreta. Por qué es importante Esencial para agrupar casos y analizar las rutas clínicas. Dónde obtenerlo Módulo de historias clínicas o abstracción de datos. Ejemplos J18.9 - NeumoníaI21.9 - Infarto agudo de miocardioS72.0 - Fractura de fémur | |||
| Es una readmisión IsReadmission | Indicador que señala si este episodio ocurrió en los 30 días posteriores a un alta anterior. | ||
| Descripción Atributo booleano que devuelve true si la fecha de registro actual del paciente se encuentra dentro de los 30 días posteriores a la fecha de alta de un episodio anterior. Esto permite utilizar el Dashboard «Readmission and Care Quality». Identificar las readmisiones permite a los analistas volver al episodio anterior para detectar deficiencias en la planificación del alta o en la atención de seguimiento. Por qué es importante Indicador de calidad fundamental que afecta al reembolso y a los resultados de los pacientes. Dónde obtenerlo Se calcula comparando StartTime actual con Case EndTime anterior para el mismo MedicalRecordNumber. Ejemplos truefalse | |||
| Nivel de prioridad del triaje TriageAcuityLevel | Nivel de gravedad asignado a un paciente durante el triaje. | ||
| Descripción Indica la urgencia del estado del paciente, normalmente en una escala (por ejemplo, de 1 a 5, donde 1 es crítico). Este atributo es fundamental para «Emergency Department Flow Analysis». Permite a los analistas relacionar los tiempos de espera con la gravedad del paciente y garantizar que los casos más críticos reciban prioridad de forma eficaz. Por qué es importante Fundamental para analizar la priorización en urgencias y el cumplimiento de las normas de seguridad. Dónde obtenerlo Pantallas de evaluación de enfermería de urgencias o triaje. Ejemplos 1 - Reanimación2 - Emergencia3 - Urgente4 - Menos urgente | |||
| Número de historia clínica MedicalRecordNumber | Identificador único del paciente en todas sus visitas. | ||
| Descripción El número de historia clínica (MRN) identifica de forma única a un paciente dentro de la organización sanitaria y se distingue del ID específico del episodio. Permite a los analistas vincular varios episodios del mismo paciente a lo largo del tiempo. Este atributo es esencial para el Dashboard «Reingresos y calidad asistencial», ya que permite detectar a los pacientes que regresan al hospital en los 30 días posteriores al alta. Por qué es importante Permite analizar varios episodios y obtener una visión centrada en el paciente. Dónde obtenerlo Índice maestro de pacientes o tabla de registro. Ejemplos MRN-100293MRN-55928388291002 | |||
| Profesional responsable AttendingProvider | Profesional clínico o proveedor principal responsable de la actividad. | ||
| Descripción Registra el nombre o ID del médico, enfermero o técnico que realiza la tarea o supervisa la atención. Este atributo respalda el Dashboard «Velocidad de elaboración del plan de tratamiento» al atribuir las métricas de rapidez y eficiencia a profesionales o funciones concretas. Permite analizar los recursos para equilibrar las cargas de trabajo e identificar necesidades de formación entre el personal clínico. Por qué es importante Permite analizar el rendimiento de los recursos y equilibrar las cargas de trabajo. Dónde obtenerlo Campos de profesional o usuario en los registros de actividades. Ejemplos Dr. SmithEnfermero JonesTécnico Adams | |||
| Tipo de paciente PatientType | Clasificación de la visita del paciente, por ejemplo, hospitalización, atención ambulatoria o urgencias. | ||
| Descripción Clasifica la naturaleza de la visita hospitalaria. Los valores habituales incluyen «Inpatient», «Outpatient», «Emergency» u «Observation». Esta clasificación es fundamental para filtrar y comparar procesos, ya que el nivel de atención y la duración prevista varían considerablemente según el tipo. Este campo ayuda al Dashboard «Discharge Planning Optimization» a segmentar las expectativas de duración de la estancia. Por qué es importante Segmentación fundamental para comparar procesos («Inpatient» frente a «Outpatient»). Dónde obtenerlo Tablas de admisiones o visitas (por ejemplo, AdmVisits.Status). Ejemplos Paciente hospitalizadoEmergenciaCirugía ambulatoriaObservación | |||
| Categoría de la orden OrderCategory | Clasificación de las órdenes clínicas (por ejemplo, laboratorio, radiología o consulta). | ||
| Descripción Agrupa las órdenes en categorías generales como «Laboratory», «Radiology», «Dietary» o «Consult». Es esencial para el Dashboard «Diagnostic Services Turnaround». Permite separar los flujos de trabajo para analizar los tiempos de ciclo específicos de las pruebas de imagen y los análisis de sangre, que suelen presentar cuellos de botella diferentes. Por qué es importante Segmenta los flujos de trabajo de diagnóstico y tratamiento. Dónde obtenerlo Campos de categoría del módulo de entrada de órdenes (OE). Ejemplos LaboratorioRadiologíaEnfermeríaFarmacia | |||
| Es una infracción de adherencia IsAdherenceViolation | Indicador que señala si el caso se desvió de la ruta clínica estándar. | ||
| Descripción Indicador booleano que se establece en true si la secuencia de actividades no coincide con el modelo de referencia definido para el diagnóstico principal del paciente. Esto permite utilizar «Clinical Pathway Variant Analysis». Permite filtrar rápidamente los casos «non-conformant» para investigar por qué no se siguió el estándar de atención. Por qué es importante Identifica rápidamente las desviaciones y variaciones del proceso. Dónde obtenerlo Se calcula mediante algoritmos de comprobación de conformidad. Ejemplos truefalse | |||
| Importe facturado ChargeAmount | Valor financiero asociado a una actividad o servicio específico. | ||
| Descripción Representa el coste o importe registrado para un evento específico, como una prueba o el uso de una habitación. Aunque es principalmente financiero, se relaciona con la intensidad de uso de recursos. Cuando se agrega, ayuda a comprender el impacto financiero de las variaciones del proceso, aunque la vista solicitada se centra principalmente en el flujo clínico. Por qué es importante Añade una dimensión financiera al análisis del proceso. Dónde obtenerlo Módulo de facturación o BAR (Billing/Accounts Receivable). Ejemplos 150.001200.5045.00 | |||
| Nombre del medicamento MedicationName | Nombre del producto farmacéutico administrado. | ||
| Descripción Registra el medicamento específico asociado a los eventos «Medication Administered». Es necesario para el Dashboard «Medication Administration Compliance». Permite a los responsables de enfermería verificar que los medicamentos específicos de alto riesgo o críticos por tiempo, como los antibióticos para la sepsis, se administren dentro de las ventanas terapéuticas adecuadas. Por qué es importante Necesario para el análisis del cumplimiento clínico y la seguridad. Dónde obtenerlo Módulos de farmacia (PHA) o verificación al pie de cama (BMV). Ejemplos ParacetamolVancomicinaHeparinaInsulina | |||
| Origen del ingreso AdmitSource | Procedencia del paciente (por ejemplo, domicilio, traslado o derivación). | ||
| Descripción Describe el origen del ingreso del paciente, como «Physician Referral», «Emergency Room» o «Transfer from other Hospital». Proporciona contexto sobre cómo entran los pacientes en el sistema. Resulta útil para comprender los patrones de entrada y su impacto en «Emergency Department Flow Analysis» y en la planificación de recursos. Por qué es importante Proporciona contexto sobre la entrada de pacientes y los canales de demanda. Dónde obtenerlo Datos de registro de admisiones. Ejemplos Sala de emergenciasDerivación de la clínicaTraslado desde un centro de cuidados especializados | |||
| Tiempo de espera del triaje TriageWaitTime | Duración entre el registro y la finalización del triaje. | ||
| Descripción Duración calculada entre el evento «Patient Registered» y el evento «Triage Completed». Alimenta directamente el KPI «Average Triage Throughput Time». Supervisar esta duración ayuda a los responsables de urgencias a ajustar la dotación de personal durante las horas punta y garantizar el cumplimiento de los estándares de seguridad del paciente. Por qué es importante Indicador operativo clave para los servicios de urgencias. Dónde obtenerlo Diferencia calculada entre las marcas de tiempo de actividades específicas. Ejemplos 15 minutos1 hora y 20 minutos | |||
Actividades del recorrido del paciente
| Actividad | Descripción | ||
|---|---|---|---|
| Diagnóstico documentado | Es el momento en que un profesional clínico introduce un diagnóstico codificado (ICD-10) en el registro del paciente. A menudo activa vías clínicas específicas. | ||
| Por qué es importante Permite el análisis 'Clinical Pathway Variant Analysis' al categorizar el caso. Es fundamental para agrupar pacientes con fines comparativos. Dónde obtenerlo MEDITECH ABS (Abstracting) o Medical Records. Se captura cuando los códigos de diagnóstico se asocian a la cuenta. Recopilar Se registra cuando se ejecuta la transacción Diagnosis Enter Tipo de evento explicit | |||
| Medicamento administrado | Registra la administración efectiva del medicamento al paciente por parte del personal de enfermería. Normalmente se captura mediante el escaneo del código de barras junto a la cama. | ||
| Por qué es importante Permite analizar 'Medication Administration Compliance'. Identifica riesgos de seguridad e interrupciones del Workflow en las unidades de enfermería. Dónde obtenerlo MEDITECH PHA (Pharmacy) o eMAR (Electronic Medication Administration Record). El campo 'AdminDateTime' del historial de administración. Recopilar Se registra cuando se ejecuta la transacción Med Admin Tipo de evento explicit | |||
| Orden de alta redactada | Es la marca de tiempo en la que el médico firma la orden que autoriza el alta del paciente. Marca el inicio de la fase 'Discharge Planning'. | ||
| Por qué es importante Establece la línea base de 'Discharge Planning Lead Time'. La diferencia entre este momento y la salida real representa una ineficiencia operativa. Dónde obtenerlo MEDITECH OE (Order Entry). Filtre las órdenes por Category = Discharge. Recopilar Se registra cuando se ejecuta la transacción Order Enter Tipo de evento explicit | |||
| Paciente dado de alta | Es el cierre administrativo de la visita. El paciente ha salido físicamente y la cama queda disponible. | ||
| Por qué es importante Es el final formal del proceso. Se utiliza para calcular la duración final de la estancia y definir el periodo de readmisión de 30 días. Dónde obtenerlo MEDITECH ADM (Admissions). El campo 'DischargeDateTime' del registro de la visita. Recopilar Se registra cuando se ejecuta la transacción Discharge Patient Tipo de evento explicit | |||
| Paciente registrado | Este evento marca la creación administrativa del episodio del paciente o del registro de la visita en el sistema. Captura el punto inicial de entrada en el módulo MEDITECH ADM (Admissions). | ||
| Por qué es importante Establece el inicio del recorrido del paciente y de los cálculos del tiempo de ciclo. Es esencial para calcular la duración total de la estancia. Dónde obtenerlo Módulo MEDITECH ADM. Procede de la tabla 'Admissions', concretamente de 'AdmitDateTime' o de la marca de tiempo de creación del registro de transacciones. Recopilar Se registra cuando se ejecuta la transacción New Visit Tipo de evento explicit | |||
| Paciente trasladado | Indica el traslado físico de un paciente de una ubicación, como unidad, habitación o cama, a otra. Permite hacer un seguimiento del flujo por el hospital. | ||
| Por qué es importante Es clave para analizar los 'Internal Transfer Bottlenecks'. Las duraciones elevadas de los traslados indican competencia por los recursos o demoras del personal de transporte. Dónde obtenerlo MEDITECH ADM (Admissions). Se captura del historial de ubicaciones o de los registros de transacciones 'RoomBed'. Recopilar Se registra cuando se ejecuta la transacción Transfer Patient Tipo de evento explicit | |||
| Resultado diagnóstico verificado | Indica que se ha realizado una prueba diagnóstica, de laboratorio o radiología, y que un técnico o radiólogo ha validado sus resultados. Esto cierra efectivamente el ciclo de una solicitud diagnóstica. | ||
| Por qué es importante Es el punto final de 'Diagnostic Services Turnaround'. Resulta esencial para analizar los cuellos de botella en los departamentos auxiliares. Dónde obtenerlo Módulos MEDITECH LAB o ITS (Imaging and Therapeutic Services). Se captura a partir de los cambios de estado del resultado a Verified o Signed. Recopilar Se registra cuando el campo de estado cambia a Verified Tipo de evento explicit | |||
| Solicitud realizada | Registra la solicitud de un servicio, medicamento o prueba diagnóstica por parte de un profesional clínico. Es el evento que activa las actividades clínicas posteriores. | ||
| Por qué es importante Establece la línea base del KPI 'Diagnostic Services Turnaround'. Compararlo con el tiempo de ejecución permite identificar retrasos en la prestación del servicio. Dónde obtenerlo Módulo MEDITECH OE (Order Entry). Se captura de la tabla 'OeOrders' mediante el campo Order Date/Time. Recopilar Se registra cuando se ejecuta la transacción Order Enter Tipo de evento explicit | |||
| Triaje completado | Indica que se ha completado la evaluación inicial de enfermería en el servicio de urgencias. Define el nivel de gravedad y la puntuación de severidad del paciente. | ||
| Por qué es importante Es fundamental para que el Dashboard Emergency Department Flow Analysis mida el rendimiento y los tiempos de espera. Dónde obtenerlo Módulo MEDITECH EDM (Emergency Department Management). Se obtiene de los cambios de estado en el rastreador EDM o de la marca de tiempo del documento Triage Assessment. Recopilar Se registra cuando el campo de estado cambia a Triaged Tipo de evento explicit | |||
| Consulta completada | Es la finalización de la evaluación del especialista. A menudo se infiere a partir del registro de un tipo de documento específico, como 'Cardiology Consult Note'. | ||
| Por qué es importante Es el punto final para medir la capacidad de respuesta del especialista. Resulta fundamental para garantizar una progresión oportuna de la atención. Dónde obtenerlo MEDITECH PCM (Provider Order Management) o EMR. Se infiere a partir de las marcas de tiempo de creación de documentos con títulos específicos. Recopilar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Muestra recogida | Marca la recogida física de una muestra biológica para su análisis en el laboratorio. Esta actividad conecta la solicitud con el procesamiento. | ||
| Por qué es importante Es un paso detallado que suele ser responsable de los retrasos en el ciclo diagnóstico. Ayuda a separar las demoras de enfermería de las del laboratorio. Dónde obtenerlo Módulo MEDITECH LAB. Normalmente se captura cuando un flebotomista escanea el código de barras o actualiza el estado de la muestra a Collected. Recopilar Se registra cuando se ejecuta la transacción Collect Specimen Tipo de evento explicit | |||
| Plan de atención iniciado | Representa la creación o asignación de un plan de atención específico de enfermería o interdisciplinario. Corresponde al concepto 'Treatment Plan Developed'. | ||
| Por qué es importante Mide 'Treatment Plan Development Velocity'. Las demoras en este punto pueden indicar deficiencias en la toma de decisiones clínicas. Dónde obtenerlo MEDITECH PCS (Patient Care System) o Care Manager. Marca de tiempo correspondiente al momento en que se aplica al paciente un Plan of Care estándar. Recopilar Se registra cuando se ejecuta la transacción Care Plan Add Tipo de evento explicit | |||
| Seguimiento programado | Es la programación de una cita futura para el paciente. Esta actividad favorece la continuidad de la atención después del alta. | ||
| Por qué es importante Permite analizar 'Follow-up Appointment Scheduling'. Se correlaciona con menores tasas de readmisión. Dónde obtenerlo MEDITECH SCH (Scheduling). Se infiere vinculando un nuevo registro de Appointment creado cerca de la fecha de alta con el ID del paciente. Recopilar Se obtiene comparando el campo Appointment Created Date con Discharge Date Tipo de evento inferred | |||
| Solicitud de consulta enviada | Es un tipo específico de solicitud que pide la opinión de un especialista. Inicia el contador del Dashboard 'Specialist Consultation Response'. | ||
| Por qué es importante Identifica cuellos de botella en la coordinación de la atención multidisciplinaria. Los tiempos de espera elevados en este punto prolongan la duración de la estancia. Dónde obtenerlo MEDITECH OE (Order Entry). Se identifica filtrando 'OeOrders' por Category = Consult. Recopilar Se registra cuando se ejecuta la transacción Order Enter Tipo de evento explicit | |||
Guías de extracción
Pasos
Identifique el servidor del repositorio de datos: localice la instancia de Microsoft SQL Server que aloja su MEDITECH Data Repository (DR). Es distinta de la base de datos transaccional M-AT o basada en archivos. Necesitará credenciales de solo lectura, normalmente las de una cuenta de servicio.
Determine la versión del esquema: las estructuras del MEDITECH DR varían ligeramente entre Magic, Client/Server (6.x) y Expanse. La consulta siguiente utiliza convenciones de nomenclatura estándar, como AdmVisits y OeOrders. Verifique estos nombres de tabla en el Object Explorer de SQL Server Management Studio (SSMS) local.
Defina el alcance: identifique la tabla principal de visitas de pacientes. Normalmente se denomina AdmVisits, RegAcct o AbstractData, según la configuración específica del DR. La consulta utiliza AdmVisits como referencia para Patient Episode.
Prepare el entorno SQL: abra SSMS y conéctese al DR. Abra una ventana de consulta nueva. Asegúrese de haber cambiado el contexto a la base de datos correcta, que a menudo se denomina livedb o algo similar.
Configure los parámetros: en el script SQL proporcionado, sustituya los marcadores de posición correspondientes a los intervalos de fechas, por ejemplo, '2023-01-01', y a los identificadores de centros si su DR aloja varios centros.
Ejecute la extracción: ejecute el script T-SQL completo. Utiliza Common Table Expressions (CTE) para definir primero la población de interés y, después, combinar mediante UNION ALL varias fuentes de datos con el fin de crear un registro de eventos estandarizado.
Gestione los atributos NULL: la consulta incluye lógica para gestionar posibles valores NULL en las marcas de tiempo, utilizando COALESCE cuando corresponde, y garantiza que las claves de unión críticas, SourceID/VisitID, estén presentes.
Verifique los datos de triaje y urgencias: MEDITECH almacena los datos de urgencias en módulos específicos. Asegúrese de que las tablas EdVisits o NurInterventions estén pobladas si analiza Workflows de urgencias.
Valide las categorías de órdenes: la consulta separa las órdenes generales, las consultas y las órdenes de alta según los identificadores Category o los mnemónicos. Puede ser necesario ajustar las cláusulas WHERE específicas para adaptarlas al diccionario de mnemónicos de su centro.
Exporte los datos: cuando se devuelvan los resultados, haga clic con el botón derecho en la cuadrícula de resultados de SSMS y seleccione Save Results As CSV. Asegúrese de incluir los encabezados.
Dé formato final a los datos: abra el CSV para verificar que los formatos de fecha cumplen con ISO 8601 (YYYY-MM-DD HH:MM:SS) antes de importarlo en ProcessMind.
Configuración
- Acceso a la base de datos: requiere permisos db_datareader en la base de datos SQL del MEDITECH DR.
- Intervalo de fechas: se recomienda extraer entre 3 y 6 meses de pacientes dados de alta para garantizar ciclos completos.
- Filtrado por centro: si el DR contiene datos de varios centros, filtre el CTE BaseVisits por FacilityID o SourceSystemID.
- Definición del episodio: el script utiliza el VisitID único, a menudo denominado Account Number o Episode Number, como Case ID.
- Rendimiento: la consulta utiliza un ancla CTE para limitar el intervalo de exploración. Para obtener un rendimiento óptimo, asegúrese de que existan índices en AdmitDate y DischargeDate de la tabla AdmVisits.
- Latencia: las transferencias del Data Repository pueden tener una latencia de 15 minutos a 24 horas, según la configuración del centro. Confirme la marca de tiempo LastDataUpdate.
a Consulta de ejemplo 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'); ¿Listo para empezar?
Empiece hoy mismo a transformar sus operaciones clínicas aplicando esta plantilla a sus datos de MEDITECH. Nuestro equipo está disponible para ayudarle a perfeccionar la extracción de datos y maximizar la eficiencia del hospital.
Optimice el recorrido de sus pacientes y reduzca las demoras ahora
Reduzca los tiempos de ciclo un 30 % y mejore la eficiencia hospitalaria
No necesita tarjeta de crédito. Empiece en cuestión de minutos.