Su template de data del recorrido del paciente
Su template de data del recorrido del paciente
- Atributos recomendados para el contexto clínico
- Hitos clave del proceso para el seguimiento
- Guía de extracción específica para Epic EHR
Atributos del recorrido del paciente
| Nombre | Descripción | ||
|---|---|---|---|
| Episodio del paciente PatientEpisodeId | El identificador único para el encuentro o episodio de atención específico del paciente. | ||
| Descripción El Episodio del Paciente sirve como el identificador principal de Analizar este Por qué es importante Es la clave fundamental para vincular Dónde obtener Tabla de Epic Clarity: Ejemplos 200459112200459113200459114200459115 | |||
| Nombre de la Actividad ActivityName | La acción clínica o administrativa específica realizada. | ||
| Descripción Este En el análisis, este campo forma los nodos del mapa de procesos. Se deriva de varios códigos de transacción y estados de órdenes dentro del EHR para crear un registro de Por qué es importante Define los pasos del proceso y permite la visualización del Dónde obtener Derivado de las tablas Ejemplos Triage completadoPrueba Diagnóstica OrdenadaPaciente dado de altaMedicamento Administrado | |||
| Timestamp del Evento EventTimestamp | La fecha y hora exactas en que ocurrió la actividad. | ||
| Descripción Este La precisión en este campo es crítica para identificar cuellos de botella. Soporta los Por qué es importante Permite el cálculo de tiempos de ciclo, tiempos de espera y ordenamiento de procesos. Dónde obtener Varias columnas de Ejemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Source System SourceSystem | El sistema de registro para los `data`, usualmente Epic EHR. | ||
| Descripción Este En el análisis, asegura la procedencia de los Por qué es importante Proporciona trazabilidad y contexto para el origen de los Dónde obtener Programado a fuego ( Ejemplos Epic EHREpic ClarityEpic Caboodle | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo cuando los datos fueron extraídos o actualizados por última vez. | ||
| Descripción Este Los analistas lo utilizan para determinar si el Por qué es importante Ayuda a evaluar la actualidad y fiabilidad de los Dónde obtener
Ejemplos 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Código de diagnóstico principal PrimaryDiagnosisCode | El código ICD-10 o interno que representa el diagnóstico principal. | ||
| Descripción Este Se utiliza para agrupar Por qué es importante Agrupa Dónde obtener Tabla de Epic Clarity: Ejemplos J18.9I21.9E11.9 | |||
| Disposición de Alta DischargeDisposition | El destino del paciente al alta (Hogar, Centro de Enfermería Especializada, Fallecido). | ||
| Descripción Este Esto es crucial para el Por qué es importante Contextualiza el resultado del proceso de atención. Dónde obtener Tabla de Epic Clarity: Ejemplos InicioCentro de enfermería especializadaAtención Domiciliaria | |||
| Hora Fin del Evento EventEndTime | El `timestamp` cuando la actividad fue completada. | ||
| Descripción Si bien muchos Habilita el cálculo del tiempo de procesamiento activo versus el tiempo de espera. Esto es particularmente relevante para el Por qué es importante Permite el cálculo de la duración de la Dónde obtener Consulte la documentación de Epic EHR para columnas de hora de finalización específicas en Ejemplos 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| ID del proveedor ProviderId | El identificador del usuario o clínico que realizó la actividad. | ||
| Descripción Este Se mapea al Por qué es importante Permite el análisis de la variación en el rendimiento y la carga de trabajo del personal. Dónde obtener Tabla de Epic Clarity: Ejemplos EMP10023DOC5592SYSTEM | |||
| Indicador de reingreso ReadmissionFlag | Indica si el paciente regresó inesperadamente dentro de los 30 días. | ||
| Descripción Este En el análisis, esto sirve como una variable de resultado principal. Las rutas de proceso que conducen a un indicador 'Verdadero' se analizan para encontrar las causas raíz en la fase de planificación del alta. Por qué es importante Identifica procesos de alta fallidos y problemas de calidad de atención. Dónde obtener Calculado vía SQL, buscando encuentros futuros para el mismo MRN. Ejemplos truefalse | |||
| N.º de Expediente Médico (MRN) del paciente PatientMrn | El número de expediente médico que identifica al paciente. | ||
| Descripción El MRN es el identificador único del paciente en todo el sistema de atención médica, distinto del ID de episodio. Permite rastrear el historial de un paciente a través de múltiples visitas. Este Por qué es importante Es esencial para identificar visitas repetidas y analizar el historial del paciente. Dónde obtener Tabla de Epic Clarity: Ejemplos MRN-882910MRN-112003MRN-554211 | |||
| Nivel de agudeza del triaje TriageAcuityLevel | La puntuación de gravedad asignada al paciente durante el triaje. | ||
| Descripción Este Permite la segmentación en el Por qué es importante Segmenta el proceso según la urgencia y el consumo de recursos esperado. Dónde obtener Consulte la documentación de Epic EHR para el campo de Gravedad en los Ejemplos 1 - Reanimación2 - Urgente3 - Urgente | |||
| Nombre del Departamento DepartmentName | La unidad hospitalaria o departamento donde tuvo lugar la actividad. | ||
| Descripción Este Los Por qué es importante Permite el filtrado organizacional y el análisis de traspasos. Dónde obtener Tabla de Epic Clarity: Ejemplos Departamento de UrgenciasRadiologíaUCIPediatría | |||
| Tipo de Encuentro EncounterType | La clasificación de la visita del paciente (p. ej., Hospitalización, Urgencias). | ||
| Descripción Este Al mapear a 'CaseType', este campo es fundamental para filtrar el análisis. Por ejemplo, el Por qué es importante Proporciona el contexto de alto nivel para la instancia del proceso. Dónde obtener Tabla de Epic Clarity: Ejemplos UrgentePaciente Ambulatorio de HospitalPaciente Hospitalizado | |||
| ¿Es Programación Automatizada? IsAutomatedScheduling | `Flag` que indica si la programación se realizó sin intervención del personal. | ||
| Descripción Este Apoya directamente el KPI de Tasa de Automatización de Programación de Seguimiento. Esto ayuda a los líderes operativos a comprender cuánto de la carga administrativa se está descargando a la tecnología. Por qué es importante Mide el éxito de la automatización de procesos. Dónde obtener Derivado de Ejemplos truefalse | |||
| Costo de Orden Diagnóstica DiagnosticOrderCost | El costo interno asociado con una prueba diagnóstica o procedimiento. | ||
| Descripción Este Aunque no es una métrica clínica principal, ayuda a la administración a comprender el peso financiero de diferentes variantes de proceso, particularmente aquellas que involucran puntuaciones de gravedad de alto recurso. Por qué es importante Añade una dimensión financiera al análisis de eficiencia de procesos. Dónde obtener Tablas de facturación o contabilidad de costos vinculadas al procedimiento. Ejemplos 150.001200.0045.00 | |||
| Duración de la espera para el traslado TransferWaitDuration | Tiempo transcurrido entre una orden de traslado y el traslado real. | ||
| Descripción Esta métrica mide la brecha entre 'Transferencia ordenada' y 'Paciente trasladado'. Es el punto de Valores altos aquí indican 'internamiento' (pacientes esperando camas), lo que bloquea el flujo ascendente desde el Departamento de Urgencias. Por qué es importante Destaca los Dónde obtener Diferencia de Ejemplos 2h 30m45m12h | |||
| Especialidad del médico solicitante OrderingProviderSpecialty | La especialidad médica del médico que solicita una consulta o prueba. | ||
| Descripción Este Ayuda a analizar si ciertas especialidades enfrentan tiempos de espera más largos para servicios internos que otras, revelando posibles sesgos o escasez de recursos en líneas de servicio específicas. Por qué es importante Segmenta la demanda de servicios de diagnóstico y consulta. Dónde obtener Consulte la documentación de Epic EHR para los Ejemplos CardiologíaMedicina InternaOrtopedia | |||
| Estado de adherencia al protocolo ProtocolAdherenceStatus | Estado que indica si el `case` siguió la ruta clínica estándar. | ||
| Descripción Este Los valores pueden incluir 'Conforme', 'Paso omitido' o 'Fuera de secuencia'. Esto permite a los líderes clínicos filtrar rápidamente los Por qué es importante Identifica rápidamente desviaciones de los estándares de atención basados en evidencia. Dónde obtener Calculado dentro de la herramienta de Ejemplos ConformeDesviadoIncompleto | |||
| Método de programación SchedulingMethod | Indica cómo se reservó la cita de seguimiento. | ||
| Descripción Este Si el valor indica un canal digital liderado por el sistema o el paciente, el indicador 'IsAutomated' puede establecerse en verdadero. Esto resalta el éxito de las iniciativas de transformación digital. Por qué es importante Rastrea la adopción de herramientas automatizadas o de Dónde obtener Consulte la documentación de Epic EHR para la fuente de creación de citas. Ejemplos MyChartCadenceTeléfonoEn Persona | |||
| Nombre de Región RegionName | La región geográfica o campus hospitalario. | ||
| Descripción Para sistemas de salud con múltiples El mapeo a 'Región' permite el Por qué es importante Permite el Dónde obtener Derivado de los Ejemplos Campus NorteCentro CiudadAla Oeste | |||
| Retraso en la Administración de Medicación MedicationAdminDelay | Diferencia de tiempo entre la administración de medicación programada y la real. | ||
| Descripción Este Los valores positivos indican administración tardía. Esta métrica permite a los supervisores de enfermería identificar turnos o unidades donde la carga de trabajo está afectando la prestación de atención oportuna. Por qué es importante Es una medida directa de la adherencia al Dónde obtener Calculado a partir de los Ejemplos 15m-5m1h 20m | |||
Actividades del recorrido del paciente
| Actividad | Descripción | ||
|---|---|---|---|
| Diagnóstico Confirmado | El registro de un diagnóstico confirmado en la lista de problemas del paciente o en el campo de diagnóstico del encuentro. Representa la conclusión de la fase de investigación. | ||
| Por qué es importante Necesario para el KPI 'Tiempo hasta el Diagnóstico Definitivo'. Marca la transición de la evaluación al tratamiento dirigido. Dónde obtener Tabla PAT_ENC_DX o actualización de PROBLEM_LIST vinculada al encuentro. Capturar Registrado cuando el clínico añade una entrada a la Tipo de evento explicit | |||
| Paciente dado de alta | El cierre oficial del encuentro de hospitalización. Capturado cuando el paciente es dado de alta virtualmente del censo. | ||
| Por qué es importante El fin formal del episodio para los cálculos de 'Duración de la estancia'. Esencial para el 'Descubrimiento de variantes del flujo de pacientes'. Dónde obtener Flujo ADT ( Capturar Registrado cuando el personal administrativo completa el Tipo de evento explicit | |||
| Paciente registrado | La creación inicial del registro de encuentro del paciente en el sistema, marcando el inicio del episodio de atención. Esto se captura explícitamente cuando un paciente llega al mostrador de registro o al departamento de urgencias y se registra en Epic. | ||
| Por qué es importante Establece el punto de anclaje para toda la Trayectoria del Paciente y permite el cálculo de la duración total de la estancia. Esencial para el Dónde obtener Flujo ADT ( Capturar Registrado cuando se ejecuta la transacción 'Check In' o 'Admitir' Tipo de evento explicit | |||
| Triage completado | La finalización de la evaluación inicial de enfermería o del triaje. Esto se captura típicamente cuando se archiva el flujograma de triaje o el estado del triaje cambia a 'Completado'. | ||
| Por qué es importante Crítico para el Dónde obtener PAT_ENC_HSP.TRIAGE_END_TIME o Capturar Registrado cuando la documentación de triaje es firmada o el campo de estado se actualiza Tipo de evento explicit | |||
| Cita de Seguimiento Programada | La programación de una futura visita ambulatoria para el paciente. Capturado en el módulo de programación Cadence vinculado al registro del paciente. | ||
| Por qué es importante Apoya la 'Tasa de automatización de programación de seguimiento'. Asegura la continuidad de la atención y ayuda a prevenir reingresos. Dónde obtener PAT_ENC_APPT vinculado al ID de paciente, creado cerca del momento del alta. Capturar Registrado cuando la franja horaria de la cita se confirma en Cadence Tipo de evento explicit | |||
| Consulta Completada | La finalización de la evaluación especializada, marcada típicamente por la firma de una Nota de Consulta o el cierre de la orden de consulta. | ||
| Por qué es importante
Dónde obtener
Capturar Inferido del tiempo de creación de la Nota de Consulta o de la actualización del estado de la Orden Tipo de evento inferred | |||
| Consulta Solicitada | Una orden emitida para que un especialista evalúe al paciente. Registrada como un tipo de orden de procedimiento específico 'Consulta' dentro de Epic. | ||
| Por qué es importante Punto de inicio para el KPI 'Tiempo de espera para consulta especializada'. Ayuda a identificar escasez en especialidades médicas específicas. Dónde obtener ORDER_PROC donde ORDER_CLASS = 'Consulta' u órdenes de derivación específicas. Capturar Registrado cuando la orden de consulta es firmada Tipo de evento explicit | |||
| Medicamento Administrado | El acto de un enfermero o proveedor administrando medicación al paciente. Capturado en el Registro de Administración de Medicamentos (MAR). | ||
| Por qué es importante
Dónde obtener Tabla Capturar Registrado cuando la enfermera escanea la pulsera del paciente y la medicación (BCMA) Tipo de evento explicit | |||
| Orden de Alta Firmada | La autorización formal del médico para que el paciente abandone el hospital. Esta es una entrada de orden específica en Epic. | ||
| Por qué es importante Un hito crítico en la 'Planificación y Ejecución del Alta'. La brecha entre este y la partida real representa un retraso administrativo. Dónde obtener ORDER_PROC donde el tipo es 'Alta de Paciente'. Capturar Registrado cuando el médico firma la orden de alta Tipo de evento explicit | |||
| Paciente trasladado | El movimiento físico del paciente a un nuevo departamento o sala. Capturado a través de `eventos` de transferencia ADT. | ||
| Por qué es importante
Dónde obtener Flujo ADT ( Capturar Registrado cuando el empleado de la unidad actualiza la ubicación del paciente en el Censo Tipo de evento explicit | |||
| Plan de Atención Iniciado | La asignación de una ruta clínica o protocolo específico al paciente. Esto se captura cuando un Conjunto de Órdenes o Plan de Atención estándar se aplica al contexto del encuentro. | ||
| Por qué es importante Apoya la 'Vista de Dónde obtener ORDER_SET_BKG o tablas de plan de atención que indican que un protocolo fue vinculado al encuentro. Capturar Registrado cuando el clínico selecciona y firma un Conjunto de Órdenes Tipo de evento explicit | |||
| Planificación del Alta Iniciada | El inicio de las actividades para preparar el alta del paciente. Capturado a través de la documentación de Gestión de `Case` o tipos específicos de órdenes de 'Alta'. | ||
| Por qué es importante Clave para el Dónde obtener Creación de Capturar Inferido de la primera interacción con el Navegador de Altas o la nota de Gestión de Tipo de evento inferred | |||
| Prueba Diagnóstica Ordenada | El ingreso de una orden para servicios de imagenología (Radiología) o laboratorio. Capturado cuando un médico ingresa y firma una orden en el sistema CPOE. | ||
| Por qué es importante El punto de inicio para el Dónde obtener Tabla ORDER_PROC donde ORDER_TYPE es Laboratorio o Imagen/Radiología. Capturar Registrado cuando el estado de la orden cambia a 'Firmada' o 'Activa' Tipo de evento explicit | |||
| Prueba Diagnóstica Realizada | La ejecución real de la prueba diagnóstica o el archivo del resultado. Para laboratorios, es cuando se procesa la muestra; para imagenología, cuando se completa el escaneo. | ||
| Por qué es importante
Dónde obtener ORDER_PROC.PROC_END_TIME o ORDER_STAT_HISTORY cuando el estado cambia a 'Completado' o 'Con resultado'. Capturar Registrado cuando el técnico completa la tarea o la interfaz de resultados recibe Tipo de evento explicit | |||
| Traslado ordenado | Una solicitud para trasladar al paciente a una unidad o nivel de atención diferente. Registrada como una 'Solicitud de Cama' o 'Orden de Traslado' en el sistema. | ||
| Por qué es importante Punto de inicio para el 'Tiempo promedio de traslado entre salas'. Diferencia entre la decisión clínica de trasladar y la disponibilidad logística de una cama. Dónde obtener
Capturar Registrado cuando el médico introduce la orden de traslado Tipo de evento explicit | |||
Guías de Extracción
Pasos
- Inicie sesión en Epic Hyperspace y ejecute el Reporting Workbench (RWB) a través de la actividad de Análisis o Mis Informes.
- Cree un Nuevo Informe seleccionando la pestaña Biblioteca y buscando la
Template"Encounter Search" o "Patient Encounters". EstaTemplatepermite la recuperación de detalles a nivel de contacto identificados por el CSN (Número de Serie de Contacto). - Configure Criterios (Pestaña de Configuración):
- Establezca el Rango de Fechas (ej., Fecha de Alta = Últimos 90 Días) para capturar episodios completados.
- Filtre por Tipo de Encuentro (ej., 'Encuentro Hospitalario', 'Emergencia') para excluir visitas ambulatorias irrelevantes.
- Filtre por Departamento o Instalación si se requiere un alcance específico.
- Configure Columnas de Visualización (Pestaña de Visualización):
- Este es el paso de extracción crítico. Usted debe buscar y añadir columnas específicas que correspondan a las
timestampsde las actividades requeridas. - Añada Identificadores de Paciente:
CSN(Episodio del Paciente),MRN(ID del Paciente). - Añada Demografía/Atributos:
Department,Discharge Disposition,Primary Diagnosis Code,Provider. - Añada Columnas de
Timestamp: Busque columnas comoAdmission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time, etc. (Consulte la sección de Consulta/Configuración para el mapeo exacto).
- Este es el paso de extracción crítico. Usted debe buscar y añadir columnas específicas que correspondan a las
- Ejecute el Informe y verifique los resultados en la ventana de vista previa.
- Exporte
datos:- Haga clic en Barra de Herramientas > Exportar.
- Seleccione el formato CSV o Texto (Delimitado por Tabulaciones).
- Asegúrese de que 'Incluir Encabezados de Columna' esté marcado.
- Guarde el archivo como
Raw_Epic_Extract.csv.
- Transformación de
datos(Crucial):- La exportación de RWB produce un conjunto de
datos"ancho" (una fila por episodio del paciente con múltiples columnas detimestamp). - Usted debe Despivotar (remodelar) estos
datospara que cada columna detimestampse convierta en una fila distinta en elregistro de eventos. - Cree un archivo final con las columnas:
PatientEpisodeId,ActivityName,EventTimestamp, yatributosmapeados.
- La exportación de RWB produce un conjunto de
- Formatee Fechas: Asegúrese de que el
EventTimestampesté en formato ISO (YYYY-MM-DD HH:MM:SS) compatible conProcessMind. - Validación Final: Verifique que el archivo tenga los encabezados
PatientEpisodeId,ActivityName,EventTimestampy cárguelo aProcessMind.
Configuración
- Template: Utilice "Búsqueda de Encuentros" (LBF) o "Buscar Pacientes" según la versión de Epic.
- Rango de Fechas: Limite a 3-6 meses inicialmente para evitar errores de tiempo de espera (RWB no está optimizado para la extracción masiva).
- Límite de Filas: Epic RWB a menudo tiene un límite de filas (ej., 25,000 o 50,000 filas). Asegúrese de que su rango de fechas no exceda este límite, o ejecute múltiples lotes.
- Permisos: Requiere los puntos de seguridad 'Crear' y 'Exportar' de Reporting Workbench.
- Rendimiento: Ejecute durante horas de baja actividad si busca grandes rangos históricos.
- Granularidad: Este método proporciona
timestampsresumidas a nivel de encuentro (ej., 'Primera Adm. de Medicamento'). No extrae cada ciclo (ej., cada píldora administrada) a menos que se utilicenTemplatesde "Auditoría" específicas, que son raras para estecasode uso.
a Consulta de ejemplo config
[REPORT CONFIGURATION SPECIFICATION]
# GENERAL SETTINGS
Application: Epic Reporting Workbench
Template_ID: Encounter_Search_LBF
Time_Horizon: Discharge Date between [Start Date] and [End Date]
Filters: Encounter Type IN ('Hospital Encounter', 'Emergency')
# COLUMN SELECTION MAPPING
# Map the following Epic RWB Columns (Display Names) to the Output Activities.
# Note: Column names may vary slightly by Epic customized build.
[MANDATORY ATTRIBUTES]
Column: Contact Serial Number (CSN) -> Target: PatientEpisodeId
Column: Patient MRN -> Target: PatientMrn
Column: Department at Discharge -> Target: DepartmentName
Column: Discharge Disposition -> Target: DischargeDisposition
Column: Primary Diagnosis ICD-10 -> Target: PrimaryDiagnosisCode
Column: Attending Provider -> Target: ProviderId
Column: Current Date -> Target: LastDataUpdate
Column: System Name (Fixed 'Epic') -> Target: SourceSystem
[ACTIVITY TIMESTAMP MAPPING]
# These columns represent the 'EventTimestamp' for the specific 'ActivityName'
1. Activity: Patient Registered
Epic_Column: Hospital Admission Time OR Check-In Time
2. Activity: Triage Completed
Epic_Column: Triage End Time OR Triage Acuity Time
3. Activity: Care Plan Initiated
Epic_Column: Care Plan Start Date
4. Activity: Diagnostic Test Ordered
Epic_Column: First Lab Order Time OR First Imaging Order Time
(Note: Select 'Earliest' if multiple columns exist)
5. Activity: Diagnostic Test Performed
Epic_Column: First Lab Result Time OR First Imaging End Time
6. Activity: Diagnosis Confirmed
Epic_Column: Principal Diagnosis Problem List Date
7. Activity: Consultation Requested
Epic_Column: Consult Order Create Time
8. Activity: Consultation Completed
Epic_Column: Consult Complete Time
9. Activity: Medication Administered
Epic_Column: First Medication Administration Time
10. Activity: Transfer Ordered
Epic_Column: Transfer Order Time
11. Activity: Patient Transferred
Epic_Column: Last Transfer In Time OR ADT Event Time
12. Activity: Discharge Planning Initiated
Epic_Column: Case Management Start Date
13. Activity: Discharge Order Signed
Epic_Column: Discharge Order Time
14. Activity: Patient Discharged
Epic_Column: Hospital Discharge Time
15. Activity: Follow-up Appointment Scheduled
Epic_Column: Discharge Follow-Up Appointment Made Date
# TRANSFORMATION LOGIC (PSEUDO-CODE)
# The export will be 'Wide'. Apply this logic to create the Event Log:
FOR EACH Row IN Exported_CSV:
EpisodeID = Row['Contact Serial Number']
FUNCTION CreateEvent(ActivityName, TimestampColumn):
IF Row[TimestampColumn] IS NOT NULL:
OUTPUT_ROW = {
'PatientEpisodeId': EpisodeID,
'ActivityName': ActivityName,
'EventTimestamp': Row[TimestampColumn],
'PatientMrn': Row['Patient MRN'],
'DepartmentName': Row['Department at Discharge'],
... [All Attributes]
}
APPEND OUTPUT_ROW TO Event_Log
# Execute for all 15 mappings defined above
CreateEvent('Patient Registered', 'Hospital Admission Time')
CreateEvent('Triage Completed', 'Triage End Time')
... [Repeat for all mapped columns]
END LOOP Pasos
Solicitud de acceso a la base de datos: Asegúrese de tener acceso de lectura a Epic Clarity Console o a un cliente SQL conectado a la base de datos de producción o de informes de Clarity. Necesitará permisos para
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOy las tablas de referencia relacionadas.Identificación del alcance y filtrado de IDs: Antes de ejecutar el script completo, realice pequeñas consultas de exploración para identificar los valores específicos de
ORDER_TYPE_Cpara laboratorios, radiología, consultas y traslados en su instancia de Epic, ya que estas listas personalizadas (Category Lists) varían según el hospital.Configuración de la ventana de tiempo: Localice las cláusulas
WHEREen el script SQL proporcionado que filtran porCONTACT_DATEoHOSP_ADMSN_TIME. Ajústelas según el periodo de extracción deseado (por ejemplo, los últimos 6 meses).Mapeo de flujos de datos personalizados (opcional): Si necesita marcas de tiempo precisas para el triaje o la planificación del alta que no se encuentran en la tabla principal de encuentros, identifique el
FLO_MEAS_ID(Flowsheet Measure ID) específico para estos campos y actualice las secciones de marcadores de posición del script.Ejecución de la consulta: Ejecute el script SQL completo en su cliente SQL (por ejemplo, SQL Server Management Studio u Oracle SQL Developer). El script utiliza
UNION ALLpara combinar diferentes eventos clínicos en una estructura de registro de eventos estandarizada.Postprocesamiento: La consulta devuelve una lista plana. Verifique que
EventTimestampno sea nulo. Convierta cualquier formato de fecha y hora específico de la base de datos a ISO 8601 (YYYY-MM-DDTHH:MM:SS) si su middleware lo requiere.Exportación de datos: Guarde el conjunto de resultados como un archivo CSV. Asegúrese de que los encabezados coincidan con los atributos definidos (PatientEpisodeId, ActivityName, etc.).
Carga en ProcessMind: Importe el CSV en ProcessMind. Mapee
PatientEpisodeIdcomo el ID de caso (Case ID),ActivityNamecomo la actividad yEventTimestampcomo el Timestamp.
Configuración
- Conexión a la Base de Datos: Epic Clarity (normalmente back-end MSSQL u Oracle).
- Filtrado por Fecha: Filtre por
PAT_ENC.HOSP_ADMSN_TIMEoPAT_ENC.CONTACT_DATE. El rango recomendado para el análisis inicial es de 3 a 6 meses para gestionar el rendimiento de la consulta. - Tipos de Encuentro: El script filtra los encuentros de pacientes hospitalizados y de emergencia (valores de
ENC_TYPE_Ccomúnmente 3 y 50, pero verifique conZC_ENC_TYPE). - Tipos de Órdenes: Requiere la personalización de los valores de
ORDER_TYPE_Cpara Laboratorios, Imágenes y Consultas, según la configuración local de ZC_ORDER_TYPE. - Rendimiento: El script escanea tablas de alto volumen (
ORDER_PROC,CLARITY_ADT). Asegúrese de que se utilice una indexación adecuada o ejecútelo durante horas de baja actividad.
a Consulta de ejemplo sql
WITH Cohort AS (
SELECT
pe.PAT_ENC_CSN_ID,
pe.PAT_ID,
pe.HOSP_ADMSN_TIME,
pe.HOSP_DISCH_TIME,
pe.DEPARTMENT_ID,
dep.DEPARTMENT_NAME,
emp.NAME AS ProviderName,
pat.PAT_MRN_ID,
pe.ACUITY_LEVEL_C,
disch.NAME AS DischargeDisposition,
pe.ENC_TYPE_C
FROM PAT_ENC pe
LEFT JOIN CLARITY_DEP dep ON pe.DEPARTMENT_ID = dep.DEPARTMENT_ID
LEFT JOIN CLARITY_EMP emp ON pe.VISIT_PROV_ID = emp.PROV_ID
LEFT JOIN PATIENT pat ON pe.PAT_ID = pat.PAT_ID
LEFT JOIN ZC_DISCH_DISP disch ON pe.DISCH_DISP_C = disch.DISCH_DISP_C
WHERE pe.HOSP_ADMSN_TIME >= DATEADD(month, -6, GETDATE())
AND pe.ENC_TYPE_C IN (3, 50) -- 3=Inpatient, 50=Emergency (Verify local codes)
)
-- 1. Patient Registered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)) AS PatientEpisodeId,
'Patient Registered' AS ActivityName,
c.HOSP_ADMSN_TIME AS EventTimestamp,
c.DepartmentName,
c.ProviderName AS ProviderId,
c.PAT_MRN_ID AS PatientMrn,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)) AS TriageAcuityLevel,
CAST(c.ENC_TYPE_C AS VARCHAR(50)) AS EncounterType,
NULL AS PrimaryDiagnosisCode,
NULL AS ReadmissionFlag,
c.DischargeDisposition,
'Epic EHR' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM Cohort c
WHERE c.HOSP_ADMSN_TIME IS NOT NULL
UNION ALL
-- 2. Triage Completed (Using Flowsheet or Triage Time)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Triage Completed',
ISNULL(pe.TRIAGE_END_INSTANT, c.HOSP_ADMSN_TIME), -- Fallback if specific column unused
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC pe ON c.PAT_ENC_CSN_ID = pe.PAT_ENC_CSN_ID
WHERE pe.TRIAGE_END_INSTANT IS NOT NULL
UNION ALL
-- 3. Care Plan Initiated (Based on Order Type)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Care Plan Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 100 -- Placeholder: Replace with ID for Care Plan/Protocol
UNION ALL
-- 4. Diagnostic Test Ordered (Lab/Radiology)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2) -- Placeholder: 1=Lab, 2=Radiology (Verify local codes)
UNION ALL
-- 5. Diagnostic Test Performed (Result Time or Procedure Start)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Performed',
COALESCE(ord2.PROC_START_TIME, ord2.PROC_ENDING_TIME, ord.ORDER_INST),
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
JOIN ORDER_PROC_2 ord2 ON ord.ORDER_PROC_ID = ord2.ORDER_PROC_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2)
AND ord2.PROC_START_TIME IS NOT NULL
UNION ALL
-- 6. Diagnosis Confirmed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnosis Confirmed',
dx.NOTED_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
edg.DX_NAME,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC_DX dx ON c.PAT_ENC_CSN_ID = dx.PAT_ENC_CSN_ID
JOIN CLARITY_EDG edg ON dx.DX_ID = edg.DX_ID
WHERE dx.NOTED_DATE IS NOT NULL
UNION ALL
-- 7. Consultation Requested
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Requested',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
UNION ALL
-- 8. Consultation Completed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Completed',
ord.ORDER_END_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
AND ord.ORDER_STATUS_C = 5 -- Placeholder: 5=Completed
AND ord.ORDER_END_TIME IS NOT NULL
UNION ALL
-- 9. Medication Administered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Medication Administered',
mar.TAKEN_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_MED med ON c.PAT_ENC_CSN_ID = med.PAT_ENC_CSN_ID
JOIN MAR_ADMIN_INFO mar ON med.ORDER_MED_ID = mar.ORDER_MED_ID
LEFT JOIN CLARITY_EMP emp ON mar.TAKEN_USER_ID = emp.USER_ID
WHERE mar.TAKEN_TIME IS NOT NULL
AND mar.MAR_ACTION_C = 1 -- Placeholder: 1=Given
UNION ALL
-- 10. Transfer Ordered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Transfer Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 60 -- Placeholder: Replace with ID for Transfer/Bed Request
UNION ALL
-- 11. Patient Transferred
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Transferred',
adt.EFFECTIVE_TIME,
dep.DEPARTMENT_NAME,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN CLARITY_ADT adt ON c.PAT_ENC_CSN_ID = adt.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_DEP dep ON adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
WHERE adt.EVENT_TYPE_C = 3 -- 3=Transfer In
UNION ALL
-- 12. Discharge Planning Initiated
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Planning Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 70 -- Placeholder: Case Management/Discharge Order Type
UNION ALL
-- 13. Discharge Order Signed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Order Signed',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.PROC_CODE = 'DISCHARGE' -- Placeholder: Filter by specific discharge procedure code
UNION ALL
-- 14. Patient Discharged
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Discharged',
c.HOSP_DISCH_TIME,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
WHERE c.HOSP_DISCH_TIME IS NOT NULL
UNION ALL
-- 15. Follow-up Appointment Scheduled
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Follow-up Appointment Scheduled',
next_pe.APPT_MADE_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC next_pe ON c.PAT_ID = next_pe.PAT_ID
WHERE next_pe.APPT_MADE_DATE BETWEEN c.HOSP_ADMSN_TIME AND ISNULL(c.HOSP_DISCH_TIME, GETDATE())
AND next_pe.CONTACT_DATE > c.HOSP_ADMSN_TIME -- The appointment is for a future date relative to admission