Su Template de datos para la experiencia del paciente
Su Template de datos para la experiencia del paciente
- Atributos clínicos recomendados
- Hitos esenciales del proceso
- Guía para extraer datos de MEDITECH
Atributos de la experiencia 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 El episodio del paciente funciona como identificador central del caso para el análisis del proceso. Agrupa en un único recorrido todos los eventos clínicos, administrativos y financieros relacionados con una estancia hospitalaria o una visita ambulatoria. En los sistemas MEDITECH, suele corresponder al número de cuenta o al ID de la visita. 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 rutas clínicas. Por qué es importante Es la clave de caso obligatoria para vincular eventos distintos en una única instancia del proceso. Dónde obtenerlo Módulo Admissions o Registration de MEDITECH; normalmente, el campo Account Number. Ejemplos V100938475AC29384755E993847211O229384711 | |||
| Marca de tiempo del evento EventTimestamp | Fecha y hora exactas en que se realizó la actividad. | ||
| Descripción Este atributo registra el momento exacto en que tuvo lugar una actividad. Se utiliza para ordenar cronológicamente los eventos y calcular la 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 el intervalo 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 flujo de pacientes. 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 | Acción clínica o administrativa específica que se realiza. | ||
| Descripción Este atributo indica el nombre del evento o la tarea que tiene lugar durante el recorrido del paciente. Registra pasos concretos, como 'Paciente registrado', 'Medicamento administrado' u 'Orden de alta emitida'. Identificar correctamente las actividades es fundamental para mapear el flujo del proceso. Estos valores suelen obtenerse de códigos de transacción, estados de órdenes o intervenciones documentadas en el expediente electrónico de salud. Por qué es importante Define los pasos del proceso y es necesario para visualizar el mapa del proceso. Dónde obtenerlo Se obtiene de varios registros de transacciones (órdenes OE, intervenciones NUR y eventos ADM). Ejemplos Paciente registradoTriaje completadoMedicamento administradoResultado diagnóstico verificado | |||
| Sistema de origen SourceSystem | 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 de eventos. En entornos con varios hospitales, permite distinguir los datos de diferentes centros o versiones del sistema. Este atributo es estático cuando la extracción procede de un solo sistema, pero resulta fundamental al combinar datos para obtener 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 al configurar el ID del sistema. Ejemplos MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Última actualización de los datos LastDataUpdate | Fecha y hora de la última extracción o actualización de los datos. | ||
| Descripción Indica cuándo se procesó por última vez el registro o cuándo se cargó en la herramienta de Process Mining. Permite auditar la vigencia de los datos y comprobar que el análisis refleja el estado más reciente del sistema. Se diferencia de la marca de tiempo del evento 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 los datos y para garantizar que el análisis se realice con datos actualizados. Dónde obtenerlo Fecha del sistema en el momento de la ejecución de ETL. Ejemplos 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Departamento hospitalario HospitalDepartment | Unidad o departamento específico donde se realizó la actividad. | ||
| Descripción Identifica la unidad funcional responsable de la actividad, como «Urgencias», «Radiología», «UCI» o «Hospitalización general». Este atributo es fundamental para el Dashboard «Rendimiento de los recursos por departamento». Permite segmentar las métricas de rendimiento por unidad y detectar cuellos de botella en los traslados internos y el uso de recursos. Por qué es importante Es clave para el análisis organizativo y para detectar cuellos de botella en unidades específicas. Dónde obtenerlo Campos de ubicación o departamento en las tablas de transacciones. Ejemplos Servicio de urgenciasRadiologíaUnidad de cuidados intensivosSala de cirugía 3 | |||
| Destino al alta DischargeDisposition | Destino o situación del paciente al recibir el alta. | ||
| Descripción Indica adónde fue el paciente tras el episodio, por ejemplo, «Domicilio», «Centro de enfermería especializada», «Atención domiciliaria» o «Fallecido». Es una métrica clave de resultados para el Dashboard «Optimización de la planificación del alta». Su análisis permite determinar si los retrasos para conseguir plazas de atención posaguda prolongan la estancia hospitalaria. Por qué es importante Métrica clave de resultados para analizar la duración de la estancia y el riesgo de reingreso. Dónde obtenerlo Pantallas de codificación del alta o de registro. Ejemplos Alta a domicilioTraslado a un hospital general de corta estanciaFallecidoAlta voluntaria contra recomendación médica | |||
| Diagnóstico principal PrimaryDiagnosis | Afección médica principal identificada para 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 del «Análisis de variantes de las vías clínicas». Al agrupar los casos por diagnóstico principal, los responsables clínicos pueden comparar las rutas de tratamiento reales con la vía clínica ideal para esa afección. Por qué es importante Es esencial para agrupar casos y analizar las vías clínicas. Dónde obtenerlo Módulo de historias clínicas o de codificación de diagnósticos. Ejemplos J18.9 - NeumoníaI21.9 - Infarto agudo de miocardioS72.0 - Fractura de fémur | |||
| Es un reingreso IsReadmission | Indicador de 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 está dentro de los 30 días posteriores a la fecha de alta de un episodio anterior. Este atributo permite usar el Dashboard «Reingresos y calidad de la atención». Identificar los reingresos permite rastrear el episodio anterior para detectar deficiencias en la planificación del alta o en la atención de seguimiento. Por qué es importante Métrica de calidad fundamental que influye en el reembolso y 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 gravedad en triaje TriageAcuityLevel | Nivel de gravedad asignado al 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 corresponde a un estado crítico). Este atributo es fundamental para el «Análisis del flujo del servicio de urgencias». Permite relacionar los tiempos de espera con la gravedad del paciente y comprobar si se da prioridad a quienes más lo necesitan. Por qué es importante Es fundamental para analizar la priorización en urgencias y el cumplimiento de los estándares de seguridad. Dónde obtenerlo Pantallas de evaluación de enfermería de urgencias o de triaje. Ejemplos 1 - Reanimación2 - Emergencia3 - Urgente4 - Menos urgente | |||
| Número de historia clínica MedicalRecordNumber | Identificador único del paciente para todas sus visitas. | ||
| Descripción El número de historia clínica (MRN) identifica de forma única a cada paciente dentro de la organización sanitaria y se diferencia del ID específico de cada episodio. Permite vincular varios episodios del mismo paciente a lo largo del tiempo. Este atributo es esencial para el Dashboard «Reingresos y calidad de la atención», que permite detectar a pacientes que vuelven al hospital en los 30 días posteriores al alta. Por qué es importante Permite analizar varios episodios y obtener una perspectiva centrada en el paciente. Dónde obtenerlo Índice maestro de pacientes o tabla de registro. Ejemplos MRN-100293MRN-55928388291002 | |||
| Profesional responsable de la atención AttendingProvider | Profesional clínico o proveedor principal responsable de la actividad. | ||
| Descripción Registra el nombre o el ID del médico, personal de enfermería o técnico que realiza la tarea o supervisa la atención. Este atributo permite asignar métricas de rapidez y eficiencia a personas o Roles específicos en el Dashboard «Rapidez en la elaboración del plan de tratamiento». El análisis de recursos permite 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 actividad. 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. Entre los valores habituales se encuentran «Hospitalización», «Atención ambulatoria», «Urgencias» y «Observación». Esta clasificación es fundamental para filtrar y comparar procesos, ya que los estándares de atención y la duración prevista varían considerablemente según el tipo. Este campo permite segmentar las expectativas de duración de la estancia en el Dashboard «Optimización de la planificación del alta». Por qué es importante Es fundamental para segmentar y comparar procesos (hospitalización frente a atención ambulatoria). Dónde obtenerlo Tablas de admisiones o visitas (por ejemplo, AdmVisits.Status). Ejemplos HospitalizaciónUrgenciasCirugí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 «Laboratorio», «Radiología», «Dietética» o «Consulta». Es esencial para el Dashboard «Tiempo de respuesta de los servicios de diagnóstico». Permite separar los flujos de trabajo para analizar los tiempos de ciclo de las pruebas de imagen y los análisis de sangre, que suelen tener cuellos de botella distintos. 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 ingreso de órdenes (OE). Ejemplos LaboratorioRadiologíaEnfermeríaFarmacia | |||
| Importe facturado ChargeAmount | Valor financiero asociado a una actividad o servicio específico. | ||
| Descripción Representa el coste o cargo registrado por un evento específico, como una prueba o el uso de una habitación. Aunque es principalmente un dato financiero, está relacionado con la intensidad de uso de recursos. Al agregarlo, permite 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 (facturación y cuentas por cobrar). Ejemplos 150.001200.5045.00 | |||
| Incumple la vía clínica IsAdherenceViolation | Indicador de si el caso se desvió de la vía 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. Este atributo permite realizar el «Análisis de variantes de las vías clínicas». Permite filtrar rápidamente los casos que no cumplen la vía clínica para investigar por qué no se siguió el estándar de atención. Por qué es importante Permite detectar rápidamente las desviaciones y variaciones del proceso. Dónde obtenerlo Se calcula mediante algoritmos de comprobación de conformidad. Ejemplos truefalse | |||
| Nombre del medicamento MedicationName | Nombre del medicamento administrado. | ||
| Descripción Registra el medicamento específico de los eventos «Medicamento administrado». Es necesario para el Dashboard «Cumplimiento en la administración de medicamentos». Permite al personal de enfermería verificar que los medicamentos de alto riesgo o que requieren administración en un momento preciso, como los antibióticos para la sepsis, se administren dentro del intervalo terapéutico adecuado. Por qué es importante Es necesario para analizar el cumplimiento clínico y la seguridad. Dónde obtenerlo Módulos de farmacia (PHA) o de verificación a pie de cama (BMV). Ejemplos AcetaminofénVancomicinaHeparinaInsulina | |||
| Origen del ingreso AdmitSource | Procedencia del paciente (por ejemplo, domicilio, traslado o derivación). | ||
| Descripción Describe el origen del ingreso del paciente, como «Derivación médica», «Servicio de urgencias» o «Traslado desde otro hospital». Aporta contexto sobre cómo ingresan los pacientes al sistema. Resulta útil para comprender los patrones de entrada y su impacto en el «Análisis del flujo del servicio de urgencias» y en la planificación de recursos. Por qué es importante Aporta contexto sobre la entrada de pacientes y los canales de demanda. Dónde obtenerlo Datos de registro de admisiones. Ejemplos Servicio de urgenciasDerivación de una clínicaTraslado desde un centro de enfermería especializada | |||
| Tiempo de espera para el triaje TriageWaitTime | Tiempo transcurrido entre el registro y la finalización del triaje. | ||
| Descripción Duración calculada entre los eventos «Paciente registrado» y «Triaje completado». Este dato alimenta directamente el KPI «Tiempo medio de atención en triaje». El seguimiento de esta duración ayuda a los responsables de urgencias a ajustar la dotación de personal en las horas de mayor actividad y a cumplir los estándares de seguridad del paciente. Por qué es importante Métrica operativa 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 de la experiencia 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 expediente del paciente. A menudo, esto activa rutas clínicas específicas. | ||
| Por qué es importante Permite el 'Análisis de variantes de rutas clínicas' al categorizar el caso. Es fundamental para agrupar pacientes y compararlos. Dónde obtenerlo Módulo ABS (Abstracting) o Medical Records de MEDITECH. Se registra cuando los códigos de diagnóstico se asocian a la cuenta. Capturar 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. Suele capturarse mediante el escaneo de un código de barras junto a la cama. | ||
| Por qué es importante Permite analizar el 'Cumplimiento de la administración de medicamentos'. Ayuda a identificar riesgos de seguridad e interrupciones del flujo de trabajo en las unidades de enfermería. Dónde obtenerlo MEDITECH PHA (Pharmacy) o eMAR (Electronic Medication Administration Record). Campo 'AdminDateTime' del historial de administración. Capturar Se registra cuando se ejecuta la transacción Med Admin Tipo de evento explicit | |||
| Orden de alta emitida | Marca de tiempo en que el médico firma la orden que autoriza el alta del paciente. Marca el inicio de la etapa de planificación del alta. | ||
| Por qué es importante Establece el valor de referencia del 'Tiempo de entrega de la planificación del alta'. La diferencia entre este momento y la salida efectiva refleja ineficiencias operativas. Dónde obtenerlo MEDITECH OE (Order Entry). Filtre las órdenes por Category = Discharge. Capturar Se registra cuando se ejecuta la transacción Order Enter Tipo de evento explicit | |||
| Paciente dado de alta | Cierre administrativo de la visita. El paciente ya salió del hospital 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 reingreso de 30 días. Dónde obtenerlo MEDITECH ADM (Admissions). Campo 'DischargeDateTime' del registro de la visita. Capturar 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. Registra el punto de entrada inicial en el módulo ADM (Admissions) de MEDITECH. | ||
| Por qué es importante Establece el inicio del recorrido del paciente y permite calcular el tiempo de ciclo. Es esencial para calcular la duración total de la estancia. Dónde obtenerlo Módulo ADM de MEDITECH. Se obtiene de la tabla 'Admissions', específicamente del campo 'AdmitDateTime' o de la marca de tiempo de creación del registro de transacciones. Capturar Se registra cuando se ejecuta la transacción New Visit Tipo de evento explicit | |||
| Paciente trasladado | Indica el traslado físico del paciente de una ubicación a otra, como una unidad, habitación o cama. Permite hacer un seguimiento de su recorrido por el hospital. | ||
| Por qué es importante Es clave para detectar 'Cuellos de botella en los traslados internos'. Los traslados prolongados indican competencia por los recursos o demoras en el transporte de pacientes. Dónde obtenerlo MEDITECH ADM (Admissions). Se obtiene del historial de ubicaciones o de los registros de transacciones 'RoomBed'. Capturar 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 los resultados. Este evento cierra el ciclo de una solicitud de diagnóstico. | ||
| Por qué es importante Es el punto final para medir el 'Tiempo de respuesta de los servicios de diagnóstico'. Es esencial para analizar los cuellos de botella en los departamentos auxiliares. Dónde obtenerlo Módulos LAB o ITS (Imaging and Therapeutic Services) de MEDITECH. Se obtiene de los cambios de estado del resultado a Verified o Signed. Capturar Se registra cuando el campo de estado cambia a Verified Tipo de evento explicit | |||
| Solicitud ingresada | Registra la solicitud de un servicio, medicamento o prueba diagnóstica por parte de un profesional clínico. Este evento activa las actividades clínicas posteriores. | ||
| Por qué es importante Establece el valor de referencia del KPI 'Tiempo de respuesta de los servicios de diagnóstico'. Compararlo con el tiempo de ejecución permite detectar demoras en la prestación del servicio. Dónde obtenerlo Módulo OE (Order Entry) de MEDITECH. Se obtiene de la tabla 'OeOrders' mediante el campo Order Date/Time. Capturar 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. Esta evaluación determina el nivel de gravedad y la puntuación de severidad del paciente. | ||
| Por qué es importante Es fundamental para el Dashboard de análisis del flujo del servicio de urgencias, que mide el flujo de pacientes y los tiempos de espera. Dónde obtenerlo Módulo EDM (Emergency Department Management) de MEDITECH. Se obtiene de los cambios de estado en el registro de seguimiento de EDM o de la marca de tiempo del documento de evaluación de triaje. Capturar Se registra cuando el campo de estado cambia a Triaged Tipo de evento explicit | |||
| Cita de seguimiento programada | Es la programación de una cita futura para el paciente. Esta actividad contribuye a la continuidad de la atención después del alta. | ||
| Por qué es importante Permite analizar la 'Programación de citas de seguimiento'. Se relaciona con tasas de reingreso más bajas. Dónde obtenerlo MEDITECH SCH (Scheduling). Se infiere al vincular un nuevo registro de cita, creado cerca de la fecha del alta, con el ID del paciente. Capturar Se obtiene comparando los campos Appointment Created Date y Discharge Date Tipo de evento inferred | |||
| 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, por ejemplo, 'Cardiology Consult Note'. | ||
| Por qué es importante Es el punto final para medir la capacidad de respuesta de los especialistas. Es fundamental para garantizar que la atención avance a tiempo. 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. Capturar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Muestra recolectada | Marca la recolección 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 Este paso detallado suele ser una causa de demoras en el ciclo de diagnóstico. Ayuda a distinguir las demoras de enfermería de las del laboratorio. Dónde obtenerlo Módulo LAB de MEDITECH. Suele registrarse cuando el flebotomista escanea el código de barras o cambia el estado de la muestra a Collected. Capturar 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 'Plan de tratamiento elaborado'. | ||
| Por qué es importante Mide la 'Velocidad de elaboración del plan de tratamiento'. Las demoras en esta etapa pueden indicar dificultades en la toma de decisiones clínicas. Dónde obtenerlo MEDITECH PCS (Patient Care System) o Care Manager. Marca de tiempo en que se aplica al paciente un plan de atención estándar. Capturar Se registra cuando se ejecuta la transacción Care Plan Add Tipo de evento explicit | |||
| Solicitud de consulta enviada | Es una solicitud específica para obtener la opinión de un especialista. Inicia el cómputo del tiempo en el Dashboard de 'Respuesta a consultas con especialistas'. | ||
| Por qué es importante Permite detectar cuellos de botella en la coordinación de la atención multidisciplinaria. Las esperas prolongadas en esta etapa alargan la estancia. Dónde obtenerlo MEDITECH OE (Order Entry). Se identifica filtrando 'OeOrders' por Category = Consult. Capturar Se registra cuando se ejecuta la transacción Order Enter Tipo de evento explicit | |||
Guías de extracción
Pasos
Identifique el servidor de Data Repository: localice la instancia de Microsoft SQL Server que aloja su MEDITECH Data Repository (DR). No es la base de datos transaccional M-AT ni la base de datos basada en archivos. Necesitará credenciales de solo lectura, normalmente las de una cuenta de servicio.
Determine la versión del esquema: las estructuras de MEDITECH DR varían ligeramente entre Magic, Client/Server (6.x) y Expanse. La consulta siguiente utiliza convenciones de nomenclatura habituales (por ejemplo, AdmVisits y OeOrders). Compruebe los nombres de las tablas en el Explorador de objetos de SQL Server Management Studio (SSMS) de su entorno.
Defina el alcance: identifique la tabla principal de las visitas de pacientes. Según la configuración de DR, suele llamarse AdmVisits, RegAcct o AbstractData. La consulta utiliza AdmVisits como tabla de referencia para el episodio del paciente.
Prepare el entorno SQL: abra SSMS y conéctese a DR. Abra una ventana de consulta nueva y compruebe que esté seleccionada la base de datos correcta, que suele llamarse livedb o algo similar.
Configure los parámetros: en el script SQL proporcionado, sustituya los marcadores de posición de los intervalos de fechas (por ejemplo, '2023-01-01') y los identificadores de las instalaciones, si DR aloja varios centros.
Ejecute la extracción: ejecute el script T-SQL completo. Utiliza expresiones de tabla comunes (CTE) para definir primero la población de interés y, después, combinar varias fuentes de datos con UNION ALL y crear un Registro de eventos estandarizado.
Gestione los atributos NULL: la consulta incluye lógica para tratar posibles valores NULL en las marcas de tiempo (con COALESCE cuando corresponde) y comprobar que estén presentes las claves de unión esenciales (SourceID/VisitID).
Compruebe los datos de clasificación y urgencias: MEDITECH almacena los datos de urgencias en módulos específicos. Si analiza los flujos de trabajo de urgencias, compruebe que las tablas EdVisits o NurInterventions contengan datos.
Valide las categorías de pedidos: la consulta separa los pedidos generales, las consultas a especialistas y los pedidos de alta según los identificadores o las abreviaturas de Category. Quizá deba ajustar las cláusulas WHERE para que coincidan con el diccionario de abreviaturas de su centro.
Exporte los datos: cuando aparezcan los resultados, haga clic con el botón derecho en la cuadrícula de SSMS y seleccione Save Results As CSV. Compruebe que se incluyan los encabezados.
Verifique el formato final: abra el archivo CSV y compruebe que las fechas cumplan con ISO 8601 (YYYY-MM-DD HH:MM:SS) antes de importarlo a ProcessMind.
Configuración
- Acceso a la base de datos: se requieren permisos db_datareader en la base de datos SQL de MEDITECH DR.
- Intervalo de fechas: se recomienda extraer datos de pacientes dados de alta durante los últimos 3 a 6 meses para analizar ciclos completos.
- Filtro por centro: si DR contiene datos de varios centros, filtre la CTE BaseVisits por FacilityID o SourceSystemID.
- Definición del episodio: el script utiliza el VisitID único, también llamado Account Number o Episode Number, como ID del caso.
- Rendimiento: la consulta utiliza una CTE como referencia para limitar el intervalo de búsqueda. Para obtener un rendimiento óptimo, compruebe que haya índices en AdmitDate y DischargeDate en la tabla AdmVisits.
- Latencia: las transferencias de Data Repository pueden tardar entre 15 minutos y 24 horas, según la configuración del centro. Compruebe la marca de tiempo LastDataUpdate.
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'); ¿Todo listo para comenzar?
Empiece hoy mismo a transformar sus operaciones clínicas aplicando este Template a sus datos de MEDITECH. Nuestro equipo puede ayudarle a perfeccionar la extracción de datos para mejorar al máximo la eficiencia hospitalaria.
Optimice la experiencia de sus pacientes y reduzca las demoras hoy mismo
Reduzca los tiempos de ciclo un 30 % y mejore la eficiencia hospitalaria
No se requiere tarjeta de crédito. Comience en unos minutos.