Su Plantilla de Datos del Recorrido del Paciente
Su Plantilla de Datos del Recorrido del Paciente
- Atributos clínicos recomendados
- Hitos esenciales del proceso
- Guía de extracción de MEDITECH
Atributos del Recorrido del Paciente
| Nombre | Descripción | ||
|---|---|---|---|
| Episodio del Paciente PatientEpisode | El identificador único para un período específico de atención al paciente o visita. | ||
| Descripción El Episodio del Paciente actúa como el identificador central de caso para el análisis de procesos. Agrupa todos los eventos clínicos, administrativos y financieros relacionados con una sola estancia hospitalaria o visita ambulatoria en un recorrido cohesivo. En los sistemas MEDITECH, esto a menudo se correlaciona con el Número de Cuenta o ID de Visita. Este atributo es fundamental para reconstruir el recorrido del paciente desde el registro hasta el alta, permitiendo el cálculo de la duración de la estancia y el análisis de las rutas clínicas. Por qué es importante Es la clave de caso obligatoria requerida para vincular Dónde obtener Módulo MEDITECH Admisiones o Registro; típicamente el campo Número de Cuenta. Ejemplos V100938475AC29384755E993847211O229384711 | |||
| Nombre de la Actividad ActivityName | La acción clínica o administrativa específica realizada. | ||
| Descripción Este atributo representa el nombre del evento o tarea que ocurre dentro del recorrido del paciente. Captura los pasos distintos como 'Paciente Registrado', 'Medicamento Administrado' o 'Orden de Alta Escrita'. La identificación correcta de las actividades es crucial para mapear el flujo del proceso. Estos valores a menudo se derivan de códigos de transacción, estados de órdenes o intervenciones documentadas dentro del historial médico electrónico. Por qué es importante Define los pasos del proceso y es necesario para visualizar el mapa de procesos. Dónde obtener Derivado de varios Ejemplos Paciente RegistradoTriage completadoMedicamento AdministradoResultado Diagnóstico Verificado | |||
| Source System SourceSystem | El identificador del sistema donde se originaron los datos. | ||
| Descripción Identifica la instancia de MEDITECH o el módulo específico del cual se extrajeron los Este Por qué es importante Garantiza la trazabilidad y el linaje de los datos en entornos multisistema. Dónde obtener Codificado de forma fija durante la extracción o la configuración del ID del sistema. Ejemplos MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Timestamp del Evento EventTimestamp | La fecha y hora específicas en que ocurrió la actividad. | ||
| Descripción Este atributo registra el momento exacto en que tuvo lugar una actividad. Se utiliza para secuenciar eventos cronológicamente y calcular métricas de duración entre los pasos del proceso. Las marcas de tiempo de alta precisión son necesarias para un análisis exacto de los tiempos de espera, como la duración entre el triage y la evaluación, o el tiempo de respuesta de los resultados diagnósticos. Por qué es importante Requerido para ordenar eventos y calcular tiempos de ciclo y rendimiento. Dónde obtener Columnas de fecha/hora de transacción en las tablas de origen. Ejemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Última actualización de datos LastDataUpdate | El `timestamp` cuando los `datos` fueron extraídos o actualizados por última vez. | ||
| Descripción Indica cuándo el registro fue procesado o cargado por última vez en la herramienta de Es distinto de la Marca de Tiempo del Por qué es importante Crítico para la gobernanza de Dónde obtener Fecha del sistema al momento de la ejecución de ETL. Ejemplos 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Departamento del Hospital HospitalDepartment | La unidad o departamento específico donde ocurrió la actividad. | ||
| Descripción Identifica la unidad funcional, como 'Emergencias', 'Radiología', 'UCI' o 'Sala General', responsable de la Permite la segmentación de métricas de rendimiento por unidad, ayudando a identificar Por qué es importante Clave para el análisis organizacional e identificación de Dónde obtener Campos de Ubicación o Departamento en tablas de transacciones. Ejemplos Departamento de EmergenciasRadiologíaUnidad de Cuidados IntensivosSala de Cirugía 3 | |||
| Diagnóstico Principal PrimaryDiagnosis | La principal condición médica identificada para el episodio del paciente. | ||
| Descripción Contiene el código ICD-10 o la descripción del motivo principal del encuentro. Esta es la piedra angular del 'Análisis de Variantes de Rutas Clínicas'. Al agrupar los casos por Diagnóstico Principal, los gerentes clínicos pueden comparar las rutas de tratamiento reales con la ruta clínica ideal para esa condición específica. Por qué es importante Esencial para agrupar casos y analizar rutas clínicas. Dónde obtener Módulo de Expedientes Médicos o Resumen. Ejemplos J18.9 - NeumoníaI21.9 - Infarto Agudo de MiocardioS72.0 - Fractura de Fémur | |||
| Disposición de Alta DischargeDisposition | El destino o estado del paciente al alta. | ||
| Descripción Indica a dónde fue el paciente después del episodio, como 'Casa', 'Centro de Enfermería Especializada', 'Atención Domiciliaria' o 'Fallecido'. Esta es una métrica de resultado clave para el Analizar esto ayuda a identificar si los retrasos en asegurar la ubicación de cuidados post-agudos están contribuyendo a estancias más largas. Por qué es importante Métrica de resultado clave para analizar la duración de la estancia y el riesgo de readmisión. Dónde obtener Pantallas de abstracción o registro de alta. Ejemplos Dado de Alta a CasaTrasladado a Hospital General de Corta EstanciaVencidoAlta Voluntaria | |||
| Duración de la Estancia LengthOfStay | Duración total del episodio del paciente desde el ingreso hasta el alta. | ||
| Descripción Una métrica calculada que representa el tiempo total transcurrido entre la hora de inicio del registro/admisión y la hora del alta. Esta es la métrica principal para el Sirve como un indicador de eficiencia de alto nivel y se utiliza a menudo para normalizar comparaciones entre diferentes departamentos o grupos de diagnóstico. Por qué es importante KPI principal de eficiencia para las operaciones hospitalarias. Dónde obtener Calculado a partir de StartTime de Registro vs Alta. Ejemplos 4 días 2 horas45 minutos12 días | |||
| Es Readmisión IsReadmission | Indicador que señala si este episodio ocurrió dentro de los 30 días posteriores a un alta previa. | ||
| Descripción Un Identificar las readmisiones permite a los analistas rastrear el episodio anterior para encontrar brechas en la planificación del alta o en la atención de seguimiento. Por qué es importante Métrica de calidad crítica que impacta el reembolso y los resultados del paciente. Dónde obtener Calculado comparando el StartTime actual con el Case EndTime anterior para el mismo MedicalRecordNumber. Ejemplos truefalse | |||
| Médico Tratante AttendingProvider | El médico o proveedor principal responsable de la actividad. | ||
| Descripción Registra el nombre o ID del médico, enfermera o técnico que realiza la tarea o supervisa la atención. Este atributo apoya el dashboard de 'Velocidad de Desarrollo del Plan de Tratamiento' al atribuir métricas de velocidad y eficiencia a personal o roles específicos. Permite el análisis de recursos para equilibrar las cargas de trabajo e identificar necesidades de capacitación entre el personal clínico. Por qué es importante Permite el análisis del rendimiento de los recursos y el equilibrio de la carga de trabajo. Dónde obtener Campos de Proveedor o Usuario en los registros de actividad. Ejemplos Dr. SmithEnfermera JonesTécnico Adams | |||
| Nivel de Agudeza del Triage TriageAcuityLevel | La clasificación de gravedad asignada a un paciente durante el triage. | ||
| Descripción Indica la urgencia de la condición del paciente, típicamente en una escala (p. ej., 1-5, donde 1 es crítico). Este Permite a los analistas correlacionar los tiempos de espera con la gravedad del paciente, asegurando que los pacientes más críticos sean priorizados de manera efectiva. Por qué es importante Crítico para analizar la priorización de Urgencias y el Dónde obtener Pantallas de evaluación de enfermería de Urgencias o Triaje. Ejemplos 1 - Reanimación2 - Emergencia3 - Urgente4 - Menos Urgente | |||
| Número de Expediente Médico MedicalRecordNumber | Un identificador único para el paciente en todas las visitas. | ||
| Descripción El Número de Expediente Médico (MRN) identifica de forma única a un paciente dentro de la organización de atención médica, siendo distinto del ID específico del episodio. Permite a los analistas vincular múltiples episodios que involucran al mismo paciente a lo largo del tiempo. Este atributo es esencial para el dashboard de 'Reingreso y Calidad de Atención', posibilitando la detección de pacientes que regresan al hospital dentro de los 30 días posteriores al alta. Por qué es importante Permite el análisis entre episodios y vistas centradas en el paciente. Dónde obtener Índice maestro de pacientes o tabla de registro. Ejemplos MRN-100293MRN-55928388291002 | |||
| Tipo de Paciente PatientType | Categorización de la visita del paciente (p. ej., Hospitalización, Ambulatorio, Emergencia). | ||
| Descripción Clasifica la naturaleza de la visita hospitalaria. Los valores comunes incluyen 'Hospitalización', 'Ambulatorio', 'Emergencia' u 'Observación'. Esta clasificación es fundamental para filtrar y comparar procesos, ya que el estándar de atención y la duración esperada difieren significativamente por tipo. Este campo ayuda en el Por qué es importante Segmentación fundamental para la comparación de procesos (Hospitalización vs Ambulatorio). Dónde obtener Tablas de Admisión o Visita (p. ej., AdmVisits.Status). Ejemplos HospitalizaciónUrgenteCirugía AmbulatoriaObservación | |||
| Categoría de Orden OrderCategory | Clasificación de órdenes clínicas (p. ej., Laboratorio, Radiología, Consulta). | ||
| Descripción Agrupa las órdenes en categorías más amplias como 'Laboratorio', 'Radiología', 'Dietética' o 'Consulta'. Esto es esencial para el Habilita la separación de Por qué es importante Segmenta los flujos de trabajo de diagnóstico y tratamiento. Dónde obtener Campos de categoría del módulo Entrada de Órdenes (OE). Ejemplos LaboratorioRadiologíaEnfermeríaFarmacia | |||
| Es Violación de Adherencia IsAdherenceViolation | Indicador que señala si el caso se desvió de la ruta clínica estándar. | ||
| Descripción Un indicador booleano que se establece en verdadero si la secuencia de Permite un filtrado rápido de casos 'no conformes' para investigar por qué no se siguió el estándar de atención. Por qué es importante Identifica rápidamente desviaciones y variaciones del proceso. Dónde obtener Calculado mediante Ejemplos truefalse | |||
| Monto del Cargo ChargeAmount | El valor financiero asociado a una actividad o servicio específico. | ||
| Descripción Representa el costo o cargo registrado para un evento específico, como una prueba o un cargo por habitación. Aunque es principalmente financiero, se relaciona con la intensidad de los recursos. Cuando se agrega, ayuda a comprender el impacto financiero de las variaciones del proceso, aunque el enfoque principal de la vista solicitada es el flujo clínico. Por qué es importante Añade una dimensión financiera al análisis de procesos. Dónde obtener Módulo de Facturación o BAR (Facturación/Cuentas por Cobrar). Ejemplos 150.001200.5045.00 | |||
| Nombre del Medicamento MedicationName | El nombre del producto farmacéutico administrado. | ||
| Descripción Captura el fármaco específico involucrado en los Permite a la dirección de enfermería verificar que los medicamentos específicos de alto riesgo o críticos en el tiempo (como los antibióticos para la sepsis) se administren dentro de las ventanas terapéuticas apropiadas. Por qué es importante Requerido para el análisis de cumplimiento clínico y seguridad. Dónde obtener Módulos de Farmacia (PHA) o Verificación en Cabecera (BMV). Ejemplos AcetaminofénVancomicinaHeparinaInsulina | |||
| Origen Admisión AdmitSource | De dónde vino el paciente (ej., Domicilio, Traslado, Referencia). | ||
| Descripción Describe el origen de la admisión del paciente, como 'Referencia Médica', 'Sala de Emergencias' o 'Traslado de otro Hospital'. Esto proporciona contexto sobre cómo los pacientes ingresan al sistema. Es útil para comprender los patrones de afluencia y su impacto en el 'Análisis del Flujo del Departamento de Emergencias' y la planificación de recursos. Por qué es importante Proporciona contexto sobre la entrada de pacientes y los canales de demanda. Dónde obtener Datos de registro de admisiones. Ejemplos Sala de EmergenciasDerivación ClínicaTraslado desde SNF | |||
| Tiempo de Espera del Triage TriageWaitTime | Duración del tiempo entre el registro y la finalización del triage. | ||
| Descripción La duración calculada entre el evento 'Paciente Registrado' y el evento 'Triage Completado'. Esto alimenta directamente el KPI 'Tiempo Promedio de Procesamiento del Triage'. Monitorear esta duración ayuda a los gerentes de Urgencias a ajustar el personal durante las horas pico para asegurar que se cumplan los estándares de seguridad del paciente. Por qué es importante Métrica operativa clave para los Departamentos de Emergencias. Dónde obtener Diferencia calculada entre marcas de tiempo de Ejemplos 15 minutos1 hora 20 minutos | |||
Actividades del Recorrido del Paciente
| Actividad | Descripción | ||
|---|---|---|---|
| Diagnóstico Documentado | El punto donde un médico introduce un diagnóstico codificado (CIE-10) en el historial del paciente. Esto a menudo desencadena rutas clínicas específicas. | ||
| Por qué es importante Habilita el 'Análisis de Variantes de Rutas Clínicas' al categorizar el caso. Crítico para agrupar pacientes para comparación. Dónde obtener MEDITECH ABS (Resumen) o Expedientes Médicos. Capturado cuando los códigos de diagnóstico se asocian a la cuenta. Capturar Registrado cuando se ejecuta la transacción Entrada de Diagnóstico Tipo de evento explicit | |||
| Medicamento Administrado | Registra la entrega real de medicación al paciente por parte del personal de enfermería. Generalmente se captura mediante escaneo de código de barras en la cabecera del paciente. | ||
| Por qué es importante Apoya el 'Cumplimiento de la Administración de Medicamentos'. Identifica riesgos de seguridad e interrupciones en el workflow de las unidades de enfermería. Dónde obtener MEDITECH PHA (Farmacia) o eMAR (Registro Electrónico de Administración de Medicamentos). El 'AdminDateTime' en el historial de administración. Capturar Registrado cuando se ejecuta la transacción Administración de Medicamento Tipo de evento explicit | |||
| Orden de Alta Escrita | La marca de tiempo cuando el médico firma la orden autorizando el alta del paciente. Esto marca el inicio de la fase de 'Planificación del Alta'. | ||
| Por qué es importante Establece la línea base para el 'Tiempo de anticipación de la planificación del alta'. La brecha entre este y la salida real representa una ineficiencia operativa. Dónde obtener MEDITECH OE (Entrada de Órdenes). Filtrar órdenes por Categoría = Alta. Capturar Registrado cuando se ejecuta la transacción Entrada de Pedido Tipo de evento explicit | |||
| Paciente Dado de Alta | El cierre administrativo de la visita. El paciente ha salido físicamente y la cama queda liberada. | ||
| Por qué es importante El fin formal del proceso. Se utiliza para calcular la Duración final de la Estancia y definir la ventana de reingreso de 30 días. Dónde obtener MEDITECH ADM (Admisiones). El campo 'DischargeDateTime' en el registro de visita. Capturar Registrado cuando se ejecuta la transacción Alta de Paciente Tipo de evento explicit | |||
| Paciente Registrado | Este evento marca la creación administrativa del episodio del paciente o registro de visita en el sistema. Captura el punto inicial de entrada al módulo MEDITECH ADM (Admisiones). | ||
| Por qué es importante Establece el inicio de la ruta del paciente y los cálculos del tiempo de ciclo. Esencial para calcular la Duración Total de la Estancia. Dónde obtener Módulo MEDITECH ADM. Extraído de la tabla 'Admisiones', específicamente del campo 'AdmitDateTime' o la marca de tiempo de creación del registro de transacciones. Capturar Registrado cuando se ejecuta la transacción Nueva Visita Tipo de evento explicit | |||
| Paciente Trasladado | Indica el movimiento físico de un paciente de una ubicación (Unidad/Habitación/Cama) a otra. Rastrea el flujo a través del hospital. | ||
| Por qué es importante Clave para 'Cuellos de Botella de Transferencia Interna'. Las duraciones de transferencia altas indican contención de recursos o retrasos de transporte de pacientes. Dónde obtener MEDITECH ADM (Admisiones). Capturado de los registros de transacciones de 'Historial de Ubicación' o 'Habitación/Cama'. Capturar Registrado cuando se ejecuta la transacción Traslado de Paciente Tipo de evento explicit | |||
| Pedido Realizado | Registra la solicitud de un servicio, medicamento o prueba diagnóstica por parte de un médico. Este es el evento desencadenante para las actividades clínicas posteriores. | ||
| Por qué es importante Establece la línea base para el KPI 'Tiempo de Respuesta de Servicios Diagnósticos'. Comparar esto con el tiempo de ejecución identifica retrasos en la prestación del servicio. Dónde obtener Módulo MEDITECH OE (Entrada de Órdenes). Capturado de la tabla 'OeOrders' usando el campo Fecha/Hora de la Orden. Capturar Registrado cuando se ejecuta la transacción Entrada de Pedido Tipo de evento explicit | |||
| Resultado Diagnóstico Verificado | Indica que se ha realizado una prueba diagnóstica (Laboratorio o Radiología) y que los resultados han sido aprobados por un técnico o radiólogo. Esto cierra efectivamente el ciclo de una orden diagnóstica. | ||
| Por qué es importante El punto final para el 'Tiempo de Respuesta de Servicios Diagnósticos'. Esencial para analizar los cuellos de botella en los departamentos auxiliares. Dónde obtener Módulos MEDITECH LAB o ITS (Servicios de Imagenología y Terapéuticos). Capturado de los cambios de estado del resultado a Verificado o Firmado. Capturar Registrado cuando el campo de estado cambia a Verificado Tipo de evento explicit | |||
| Triage completado | Indica la finalización de la evaluación inicial de enfermería en el Departamento de Emergencias. Esto define el nivel de gravedad y la puntuación de severidad para el paciente. | ||
| Por qué es importante Crítico para el Dónde obtener Módulo MEDITECH EDM (Gestión de Urgencias). Derivado de cambios de estado en el rastreador EDM o la marca de tiempo del documento de Evaluación de Triage. Capturar Registrado cuando el campo de estado cambia a Triado Tipo de evento explicit | |||
| Consulta Completada | La finalización de la evaluación del especialista. A menudo se infiere de la presentación de un tipo de documento específico (por ejemplo, 'Nota de Consulta de Cardiología'). | ||
| Por qué es importante El punto final para medir la capacidad de respuesta del especialista. Crítico para asegurar la progresión oportuna de la atención. Dónde obtener MEDITECH PCM (Gestión de Órdenes del Proveedor) o EMR. Inferido 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 análisis de laboratorio. Esta actividad une el proceso entre el pedido y el procesamiento. | ||
| Por qué es importante Paso granular a menudo responsable de retrasos en el ciclo de diagnóstico. Útil para separar los retrasos de enfermería de los retrasos de laboratorio. Dónde obtener Módulo MEDITECH LAB. Usualmente capturado cuando un flebotomista escanea el código de barras o actualiza el estado de la muestra a Recolectada. Capturar Registrado cuando se ejecuta la transacción Recolectar Muestra Tipo de evento explicit | |||
| Plan de Atención Iniciado | Representa la creación o asignación de un plan de atención de enfermería o interdisciplinario específico. Esto corresponde al concepto de 'Plan de Tratamiento Desarrollado'. | ||
| Por qué es importante Mide la 'Velocidad de Desarrollo del Plan de Tratamiento'. Los retrasos aquí sugieren deficiencias en la toma de decisiones clínicas. Dónde obtener MEDITECH PCS (Sistema de Atención al Paciente) o Gestor de Atención. Marca de tiempo de cuando se aplica un Plan de Atención estándar al paciente. Capturar Registrado cuando se ejecuta la transacción Agregar Plan de Atención Tipo de evento explicit | |||
| Seguimiento Programado | La programación de una cita futura para el paciente. Esta actividad apoya la continuidad de la atención post-alta. | ||
| Por qué es importante Apoya el análisis de 'Programación de Citas de Seguimiento'. Se correlaciona con tasas de reingreso más bajas. Dónde obtener MEDITECH SCH (Programación). Inferido al vincular un nuevo registro de cita creado cerca de la fecha de alta con el ID del paciente. Capturar Derivar de la comparación del campo Fecha de Creación de Cita con la Fecha de Alta Tipo de evento inferred | |||
| Solicitud de Consulta Enviada | Un tipo específico de orden que solicita una opinión especializada. Esto inicia el cronómetro en el `dashboard` 'Tiempo de Respuesta de Consulta Especializada'. | ||
| Por qué es importante Identifica Dónde obtener MEDITECH OE (Entrada de Órdenes). Identificado filtrando 'OeOrders' por Categoría = Consulta. Capturar Registrado cuando se ejecuta la transacción Entrada de Pedido 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 Repositorio de Datos (DR) de MEDITECH. Esto es distinto de la base de datos transaccional M-AT o basada en archivos. Necesitará credenciales de solo lectura (normalmente una cuenta de servicio).
Determine la Versión del Esquema: Las estructuras del DR de MEDITECH varían ligeramente entre Magic, Client/Server (6.x) y Expanse. La consulta a continuación utiliza convenciones de nomenclatura estándar (p. ej., AdmVisits, OeOrders). Verifique estos nombres de tabla en su Explorador de objetos de SQL Server Management Studio (SSMS) local.
Defina el Alcance: Identifique la tabla principal para las visitas de pacientes. Esta suele llamarse AdmVisits, RegAcct o AbstractData, dependiendo de su configuración específica del DR. La consulta utiliza AdmVisits como ancla para el Episodio del Paciente.
Prepare el Entorno SQL: Abra SSMS y conéctese al DR. Abra una nueva ventana de consulta. Asegúrese de haber cambiado el contexto a la base de datos correcta (a menudo llamada livedb o similar).
Configure los Parámetros: En el script SQL proporcionado, reemplace los marcadores de posición para los rangos de fechas (p. ej., '2023-01-01') y los identificadores de centros si su DR aloja múltiples sitios.
Ejecute la Extracción: Ejecute el script T-SQL completo. Este utiliza Expresiones de Tabla Comunes (CTEs) para definir primero la población de interés y luego UNION ALL múltiples fuentes de
datospara crear unregistro de eventosestandarizado.Maneje los Atributos NULL: La consulta incluye lógica para manejar posibles valores NULL en las marcas de tiempo (usando COALESCE cuando sea apropiado) y asegura que las claves de unión críticas (SourceID/VisitID) estén presentes.
Verifique los Datos de Triaje y Emergencia: MEDITECH almacena los
datosde Urgencias (ED) en módulos específicos. Asegúrese de que las tablas EdVisits o NurInterventions estén pobladas si está analizando losflujos de trabajode Emergencia.Valide las Categorías de Órdenes: La consulta separa las órdenes generales, las consultas y las órdenes de alta basándose en urns de Categoría o mnemotécnicos. Es posible que necesite ajustar las cláusulas WHERE específicas para que coincidan con el diccionario de Mnemotécnicos de su centro.
Exporte los Datos: Una vez que se devuelvan los resultados, haga clic derecho en la cuadrícula de resultados en SSMS y seleccione Guardar resultados como CSV. Asegúrese de incluir los encabezados.
Formato Final: Abra el archivo CSV para verificar que los formatos de fecha cumplen con ISO 8601 (YYYY-MM-DD HH:MM:SS) antes de importarlos a ProcessMind.
Configuración
- Acceso a la Base de Datos: Requiere permisos db_datareader en la base de datos SQL del Repositorio de Datos (DR) de MEDITECH.
- Rango de Fechas: La ventana de extracción recomendada es de 3 a 6 meses de pacientes dados de alta para asegurar ciclos completados.
- Filtrado por Centro: Si el DR contiene datos de múltiples centros, filtre el CTE BaseVisits por FacilityID o SourceSystemID.
- Definición del Episodio: El script utiliza el VisitID único (a menudo llamado Número de Cuenta o Número de Episodio) como el ID de Caso.
- Rendimiento: La consulta utiliza un ancla CTE para limitar el rango de escaneo. Asegúrese de que existan índices en AdmitDate y DischargeDate en la tabla AdmVisits para un rendimiento óptimo.
- Latencia: Las transferencias del Repositorio de Datos pueden tener una latencia de 15 minutos a 24 horas, dependiendo de la configuración del sitio. 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');