Su Template de datos de experiencia del paciente
Su Template de datos de experiencia del paciente
- Atributos recomendados para el contexto clínico
- Hitos clave del proceso para el seguimiento
- Indicaciones específicas de extracción para Epic EHR
Atributos del recorrido del paciente
| Nombre | Descripción | ||
|---|---|---|---|
| Episodio del paciente PatientEpisodeId | El identificador único del encuentro específico del paciente o del episodio de atención. | ||
| Descripción El episodio del paciente actúa como identificador principal del caso para Process Mining. Agrupa todos los eventos clínicos, administrativos y logísticos relacionados con un único periodo continuo de atención, como una hospitalización o una visita al servicio de urgencias. En Epic Clarity, normalmente corresponde al Contact Serial Number (CSN) o al Encounter ID. El análisis de este atributo permite reconstruir el recorrido completo del paciente. También permite asociar las actividades de triaje, diagnóstico, tratamiento y alta en una única instancia de proceso coherente. Por qué es importante Es la clave fundamental para vincular eventos independientes en un único caso de proceso. Dónde obtenerlo Tabla de Epic Clarity: PAT_ENC, columna: PAT_ENC_CSN_ID Ejemplos 200459112200459113200459114200459115 | |||
| Marca de tiempo del evento EventTimestamp | La fecha y hora exactas en que tuvo lugar la actividad. | ||
| Descripción Este atributo registra el momento exacto en que se registró un evento en el sistema Epic. Se utiliza para ordenar las actividades y calcular todas las métricas basadas en la duración, como la duración de la estancia y los tiempos de ciclo. La precisión de este campo es fundamental para identificar cuellos de botella. Proporciona los puntos temporales de inicio y fin que necesitan los Dashboards Triage Throughput y Time to Definitive Diagnosis. Por qué es importante Permite calcular los tiempos de ciclo, los plazos y el orden del proceso. Dónde obtenerlo Varias columnas de marca de tiempo, como EFFECTIVE_TIME y ORDER_TIME, según la tabla de origen. Ejemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Nombre de la actividad ActivityName | La acción clínica o administrativa específica que se realizó. | ||
| Descripción Este atributo registra el nombre del evento que tiene lugar durante el recorrido del paciente, como «Paciente registrado», «Medicamento administrado» o «Orden de alta firmada». Es el elemento central para definir el flujo del proceso. En el análisis, este campo forma los nodos del mapa de procesos. Se obtiene de varios códigos de transacción y estados de órdenes del EHR para crear un registro de eventos legible. Por qué es importante Define los pasos del proceso y permite visualizar el Workflow. Dónde obtenerlo Se obtiene de las tablas CLARITY_ADT, ORDER_PROC y ORDER_MED. Ejemplos Triage completadoPrueba diagnóstica solicitadaPaciente dado de altaMedicamento administrado | |||
| Sistema de origen SourceSystem | El sistema de registro de los datos, normalmente Epic EHR. | ||
| Descripción Este atributo identifica el origen de los datos. Aunque en esta vista suele ser «Epic EHR», resulta útil cuando los datos se combinan con otros sistemas, como un LIS independiente (sistema de información de laboratorio) o un sistema de facturación. En el análisis, garantiza la trazabilidad de los datos y facilita la resolución de problemas cuando determinados eventos parecen faltar o presentan un formato incorrecto respecto al origen. Por qué es importante Proporciona trazabilidad y contexto sobre el origen de los datos. Dónde obtenerlo Codificado directamente o derivado de la configuración de la cadena de conexión. Ejemplos Epic EHREpic ClarityEpic Caboodle | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo en que se extrajeron los datos o se actualizaron por última vez. | ||
| Descripción Este atributo indica cuándo procesó el registro por última vez la canalización ETL. Es distinto de la marca de tiempo del evento y ayuda a supervisar la actualización de los datos. Los analistas lo utilizan para determinar si el Dashboard refleja la realidad en tiempo real o si existe un problema de latencia de datos que afecta a la precisión de KPI como Triage Wait Times. Por qué es importante Ayuda a evaluar la actualidad y fiabilidad de los datos de Process Mining. Dónde obtenerlo Marca de tiempo del sistema ETL. Ejemplos 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Código del diagnóstico principal PrimaryDiagnosisCode | El código ICD-10 o interno que representa el diagnóstico principal. | ||
| Descripción Este atributo registra la afección médica confirmada del paciente. Normalmente se completa durante la actividad «Diagnosis Confirmed». Se utiliza para agrupar los casos por afección clínica en la Clinical Protocol Compliance View. La asignación a «Product» permite a los analistas observar cómo varía la «producción» de la atención según la afección médica. Por qué es importante Agrupa los casos por similitud clínica para analizar los protocolos. Dónde obtenerlo Tabla de Epic Clarity: PAT_ENC_DX, columna: DX_ID Ejemplos J18.9I21.9E11.9 | |||
| Destino al alta DischargeDisposition | El destino del paciente al recibir el alta (domicilio, SNF, fallecimiento). | ||
| Descripción Este atributo registra adónde fue el paciente después de salir del hospital. Se captura durante la actividad «Patient Discharged». Es fundamental para el Dashboard Readmission Risk, ya que los pacientes dados de alta a centros de enfermería especializada (SNF) presentan perfiles de reingreso distintos de los pacientes dados de alta a su domicilio. Por qué es importante Contextualiza el resultado del proceso asistencial. Dónde obtenerlo Tabla de Epic Clarity: PAT_ENC, columna: DISCH_DISP_C Ejemplos DomicilioCentro de enfermería especializadaAtención médica domiciliaria | |||
| Hora de finalización del evento EventEndTime | La marca de tiempo en que se completó la actividad. | ||
| Descripción Aunque muchos eventos son instantáneos, algunas actividades, como «Prueba diagnóstica realizada» o «Consulta completada», tienen una duración. Este atributo registra la hora de finalización. Permite calcular el tiempo de procesamiento activo frente al tiempo de espera. Esto resulta especialmente relevante para el Dashboard Diagnostic Service Cycle Times. Por qué es importante Permite calcular la duración de las actividades y la utilización de los recursos. Dónde obtenerlo Consulte la documentación de Epic EHR para conocer las columnas específicas de hora de finalización en ORDER_PROC. Ejemplos 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| ID del proveedor ProviderId | El identificador del usuario o profesional clínico que realizó la actividad. | ||
| Descripción Este atributo registra el ID único del miembro del personal responsable del evento, como la enfermera que administra un medicamento o el médico que firma las órdenes de alta. Se asigna al atributo genérico «User» para analizar las variaciones entre recursos y la carga de trabajo. En las actividades automatizadas, puede tratarse del ID de un usuario del sistema. Por qué es importante Permite analizar las variaciones de rendimiento y carga de trabajo entre los miembros del personal. Dónde obtenerlo Tabla de Epic Clarity: CLARITY_EMP, columna: USER_ID Ejemplos EMP10023DOC5592SYSTEM | |||
| Indicador de reingreso ReadmissionFlag | Indica si el paciente regresó inesperadamente en un plazo de 30 días. | ||
| Descripción Este atributo booleano identifica si al episodio específico le siguió un ingreso no planificado del mismo paciente en un plazo de 30 días. Es la base del KPI 30-Day Unplanned Readmission Rate. En el análisis, actúa como una variable de resultado clave. Las rutas de proceso que terminan con el indicador «True» 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 relacionados con la calidad de la atención. Dónde obtenerlo Se calcula mediante SQL, consultando los encuentros posteriores del mismo MRN. Ejemplos truefalse | |||
| MRN del paciente PatientMrn | El Medical Record Number que identifica al paciente. | ||
| Descripción El MRN es el identificador único del paciente en todo el sistema sanitario y se diferencia del ID del episodio. Permite seguir el historial del paciente a través de varias visitas. Este atributo se utiliza para detectar reingresos y vincular episodios independientes en el Dashboard Readmission Risk. En el modelo genérico, se asigna a «Customer». Por qué es importante Es esencial para identificar visitas repetidas y analizar el historial del paciente. Dónde obtenerlo Tabla de Epic Clarity: PATIENT, columna: PAT_ID o PAT_MRN_ID Ejemplos MRN-882910MRN-112003MRN-554211 | |||
| Nivel de gravedad del triaje TriageAcuityLevel | La puntuación de gravedad asignada al paciente durante el triaje. | ||
| Descripción Este atributo indica la urgencia del estado del paciente, normalmente en una escala, como los niveles ESI del 1 al 5. Se registra durante la actividad «Triage Completed». Permite segmentar el Dashboard Resource Intensity by Severity Score. Los pacientes con mayor gravedad siguen rutas de proceso diferentes a las de los pacientes con menor gravedad, y este campo ayuda a distinguir esas variantes. Por qué es importante Segmenta el proceso según la urgencia y el consumo previsto de recursos. Dónde obtenerlo Consulte la documentación de Epic EHR para conocer el campo Acuity en los registros de urgencias. Ejemplos 1 - Reanimación2 - Emergencia3 - Urgente | |||
| Nombre del departamento DepartmentName | La unidad hospitalaria o el departamento donde tuvo lugar la actividad. | ||
| Descripción Este atributo identifica la ubicación funcional del evento, como «Servicio de urgencias», «Radiología» o «Planta de cirugía general». Es fundamental para el análisis Internal Ward Transfer Analysis. Los datos se utilizan para segmentar el mapa de procesos por departamento, lo que permite a los responsables aislar los cuellos de botella específicos de su unidad frente a los problemas sistémicos de todo el hospital. Por qué es importante Permite aplicar filtros organizativos y analizar las transferencias entre equipos o unidades. Dónde obtenerlo Tabla de Epic Clarity: CLARITY_DEP, columna: DEPARTMENT_NAME Ejemplos Servicio de urgenciasRadiologíaICUPediatría | |||
| Tipo de encuentro EncounterType | La clasificación de la visita del paciente, como hospitalización o urgencias. | ||
| Descripción Este atributo categoriza la naturaleza del episodio del paciente. Entre los valores habituales se incluyen «Emergency», «Inpatient», «Outpatient» y «Virtual». Al asignarse a «CaseType», este campo es fundamental para filtrar el análisis. Por ejemplo, el Dashboard Discharge Planning es principalmente relevante para los encuentros de hospitalización, mientras que Triage es específico de las urgencias. Por qué es importante Proporciona el contexto general de la instancia del proceso. Dónde obtenerlo Tabla de Epic Clarity: PAT_ENC, columna: ENC_TYPE_C Ejemplos UrgenciasAtención ambulatoria hospitalariaHospitalización | |||
| Coste de la orden diagnóstica DiagnosticOrderCost | El coste interno asociado a una prueba o procedimiento diagnóstico. | ||
| Descripción Este atributo asigna un valor financiero a las actividades «Diagnostic Test Performed». Permite incorporar una perspectiva financiera al mapa de procesos. Aunque no es una métrica clínica principal, ayuda a la administración a comprender el peso financiero de las distintas variantes del proceso, especialmente las que implican puntuaciones de gravedad con un alto consumo de recursos. Por qué es importante Añade una dimensión financiera al análisis de la eficiencia del proceso. Dónde obtenerlo Tablas de facturación o contabilidad de costes vinculadas al procedimiento. Ejemplos 150.001200.0045.00 | |||
| Duración de la espera para la transferencia TransferWaitDuration | Tiempo transcurrido entre la orden de transferencia y la transferencia real. | ||
| Descripción Esta métrica mide la diferencia entre «Transfer Ordered» y «Patient Transferred». Es el dato principal para Internal Ward Transfer Analysis. Los valores elevados indican que los pacientes permanecen a la espera de una cama, lo que bloquea el flujo ascendente desde el servicio de urgencias. Por qué es importante Destaca los cuellos de botella logísticos y de capacidad en el flujo de pacientes. Dónde obtenerlo Diferencia calculada entre las marcas de tiempo de la orden y de la transferencia. Ejemplos 2 h 30 min45 min12 h | |||
| Especialidad del proveedor que realiza la orden OrderingProviderSpecialty | La especialidad médica del profesional que solicita una consulta o prueba. | ||
| Descripción Este atributo registra el departamento o la especialidad, como «Cardiología» u «Oncología», del proveedor que realiza la orden. Se utiliza en el Dashboard Specialist Consultation Latency. Ayuda a analizar si determinadas especialidades afrontan tiempos de espera más largos para los servicios internos que otras, lo que puede revelar sesgos o falta de recursos en determinadas líneas de servicio. Por qué es importante Segmenta la demanda de servicios diagnósticos y de consulta. Dónde obtenerlo Consulte la documentación de Epic EHR para conocer los datos maestros de los proveedores. Ejemplos CardiologíaMedicina internaOrtopedia | |||
| Estado de adherencia al protocolo ProtocolAdherenceStatus | Estado que indica si el caso siguió la ruta clínica estándar. | ||
| Descripción Este atributo compara la secuencia de actividades del caso con un modelo de referencia definido (procedimiento operativo estándar). Es compatible con la Clinical Protocol Compliance View. Los valores pueden incluir «Compliant», «Skipped Step» u «Out of Sequence». Esto permite a los responsables clínicos filtrar rápidamente los casos que no cumplen el protocolo sin revisar manualmente cada mapa de procesos. Por qué es importante Identifica rápidamente las desviaciones respecto a los estándares de atención basados en la evidencia. Dónde obtenerlo Se calcula en la herramienta de Process Mining o se preprocesa en SQL. Ejemplos ConformeDesviadoIncompleto | |||
| Método de programación SchedulingMethod | Indica cómo se reservó la cita de seguimiento. | ||
| Descripción Este atributo registra el canal utilizado para reservar las citas, como «MyChart», «Cadence Auto» o «Front Desk». Es fundamental para el Dashboard Outpatient Follow Up Automation Status. Si el valor indica un canal digital gestionado por el sistema o por el paciente, el indicador «IsAutomated» puede establecerse en true. Esto permite destacar el éxito de las iniciativas de transformación digital. Por qué es importante Registra la adopción de herramientas automatizadas o de autoservicio. Dónde obtenerlo Consulte la documentación de Epic EHR para conocer el origen de creación de la cita. Ejemplos MyChartCadenceTeléfonoPresencial | |||
| Nombre de la región RegionName | La región geográfica o el campus hospitalario. | ||
| Descripción En los sistemas sanitarios con varios campus, este atributo identifica la ubicación del centro. Permite comparar el rendimiento entre distintos centros hospitalarios. La asignación a «Region» permite realizar comparaciones entre centros y comprobar si un hospital gestiona mejor el Triage Throughput que otro. Por qué es importante Permite comparar el rendimiento entre distintos centros de una red sanitaria. Dónde obtenerlo Derivado de los datos maestros del departamento o del centro. Ejemplos Campus norteCentro de la ciudadAla oeste | |||
| Programación automatizada IsAutomatedScheduling | Indicador que señala si la programación se realizó sin intervención del personal. | ||
| Descripción Este atributo booleano se deriva de Scheduling Method. Si la cita se reservó mediante MyChart o un Workflow automatizado de Cadence, su valor es True. Contribuye directamente al KPI Follow-up Scheduling Automation Rate. Ayuda a los responsables operativos a comprender qué parte de la carga administrativa se ha trasladado a la tecnología. Por qué es importante Mide el éxito de la automatización del proceso. Dónde obtenerlo Derivado de SchedulingMethod. Ejemplos truefalse | |||
Actividades del recorrido del paciente
| Actividad | Descripción | ||
|---|---|---|---|
| Diagnóstico confirmado | Introducción 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 Es necesario para el KPI «Time to Definitive Diagnosis». Marca la transición de la evaluación al tratamiento específico. Dónde obtenerlo Tabla PAT_ENC_DX o actualización de PROBLEM_LIST vinculada al encuentro. Recopilar Se registra cuando el profesional clínico añade una entrada a la actividad Encounter Diagnosis. Tipo de evento explicit | |||
| Paciente dado de alta | Cierre oficial del encuentro de hospitalización. Se captura cuando el paciente recibe el alta virtual del censo. | ||
| Por qué es importante Final formal del episodio para calcular la «Length of Stay». Es esencial para «Patient Flow Variant Discovery». Dónde obtenerlo ADT Feed (Event A03) o PAT_ENC_HSP.DISCH_TIME. Recopilar Se registra cuando el personal administrativo completa el flujo de trabajo del alta. Tipo de evento explicit | |||
| Paciente registrado | Creación inicial del registro del encuentro del paciente en el sistema, que marca el inicio del episodio de atención. Se captura explícitamente cuando el paciente llega al mostrador de registro o al servicio de urgencias y se registra en Epic. | ||
| Por qué es importante Establece el punto de referencia para todo el Patient Journey y permite calcular la duración total de la estancia. Es esencial para el panel «Triage Throughput and Wait Times». Dónde obtenerlo ADT Feed (Event A04 or A01) o tabla PAT_ENC de Clarity (creación de HSP_ACCOUNT_ID). Recopilar Se registra cuando se ejecuta la transacción «Check In» o «Admit». Tipo de evento explicit | |||
| Triage completado | Finalización de la evaluación inicial de enfermería o del triaje. Normalmente se captura cuando se presenta el flowsheet de triaje o el estado del triaje cambia a «Complete». | ||
| Por qué es importante Es fundamental para que el panel «Triage Throughput and Wait Times» mida la eficiencia de la fase inicial. Los retrasos en este punto repercuten en toda la ruta asistencial. Dónde obtenerlo PAT_ENC_HSP.TRIAGE_END_TIME o marca de tiempo del registro de una fila específica del Flowsheet (FLO_MEASUREMENT). Recopilar Se registra cuando se firma la documentación del triaje o se actualiza el campo de estado. Tipo de evento explicit | |||
| Cita de seguimiento programada | Reserva de una futura consulta ambulatoria para el paciente. Se captura en el módulo de programación Cadence vinculado al registro del paciente. | ||
| Por qué es importante Contribuye a «Follow-up Scheduling Automation Rate». Garantiza la continuidad de la atención y ayuda a prevenir readmisiones. Dónde obtenerlo PAT_ENC_APPT vinculado al ID del paciente y creado cerca de la hora del alta. Recopilar Se registra cuando se confirma el horario de la cita en Cadence. Tipo de evento explicit | |||
| Consulta completada | Finalización de la evaluación del especialista, normalmente marcada por la firma de una Consult Note o el cierre de la orden de consulta. | ||
| Por qué es importante Punto final de «Specialist Consultation Lead Time». Indica que se ha proporcionado la opinión experta y que el plan de atención puede continuar. Dónde obtenerlo HNO_NOTE_TEXT (nota registrada con el tipo Consult) o cambio de estado de ORDER_PROC a Completed. Recopilar Se infiere a partir de la hora de creación de la Consult Note o de la actualización del estado de la orden. Tipo de evento inferred | |||
| Consulta solicitada | Orden para que un especialista evalúe al paciente. Se captura en Epic como un tipo específico de orden de procedimiento «Consult». | ||
| Por qué es importante Punto de inicio del KPI «Specialist Consultation Lead Time». Ayuda a identificar la escasez de determinadas especialidades médicas. Dónde obtenerlo ORDER_PROC donde ORDER_CLASS = «Consult» u órdenes de derivación específicas. Recopilar Se registra cuando se firma la orden de consulta. Tipo de evento explicit | |||
| Medicamento administrado | Acto de administrar un medicamento al paciente por parte de un profesional de enfermería o proveedor. Se captura en el Medication Administration Record (MAR). | ||
| Por qué es importante Evento central del panel «Medication Delivery Performance». Realiza un seguimiento del cumplimiento del «Treatment Plan Developed». Dónde obtenerlo Tabla MAR_ADMIN_INFO, específicamente eventos con la acción «Given» o «New Bag». Recopilar Se registra cuando el profesional de enfermería escanea la pulsera del paciente y el medicamento (BCMA). Tipo de evento explicit | |||
| Orden de alta firmada | Autorización formal del médico para que el paciente abandone el hospital. Es una entrada de orden específica en Epic. | ||
| Por qué es importante Hito crítico en «Discharge Planning and Execution». El intervalo entre este momento y la salida real representa el retraso administrativo. Dónde obtenerlo ORDER_PROC cuyo tipo es «Discharge Patient». Recopilar Se registra cuando el MD firma la orden de alta. Tipo de evento explicit | |||
| Paciente trasladado | Traslado físico del paciente a un nuevo departamento o unidad. Se captura mediante eventos de transferencia ADT. | ||
| Por qué es importante Punto final de «Average Inter-Ward Transfer Time». Contribuye a «Internal Ward Transfer Analysis» para encontrar cuellos de botella en la logística hospitalaria. Dónde obtenerlo ADT Feed (Event A02) o PAT_ENC_HSP_TRANSACTION (Transfer In). Recopilar Se registra cuando el empleado de la unidad actualiza la ubicación del paciente en Census. Tipo de evento explicit | |||
| Plan de atención iniciado | Asignación de una ruta clínica o un protocolo específicos al paciente. Se captura cuando se aplica un Order Set o Care Plan estándar al contexto del encuentro. | ||
| Por qué es importante Contribuye a la «Clinical Protocol Compliance View» al marcar la intención de seguir un estándar de atención. Las desviaciones respecto a los pasos planificados posteriores pueden medirse a partir de este punto. Dónde obtenerlo ORDER_SET_BKG o tablas de care plan que indican que se vinculó un protocolo al encuentro. Recopilar Se registra cuando el profesional clínico selecciona y firma un Order Set. Tipo de evento explicit | |||
| Planificación del alta iniciada | Inicio de las actividades para preparar la salida del paciente. Se captura mediante la documentación de Case Management o tipos específicos de órdenes «Discharge». | ||
| Por qué es importante Es clave para el panel «Discharge Planning and Execution». El inicio temprano se correlaciona con una menor Length of Stay. Dónde obtenerlo Creación de HSP_DISCH_PLAN o primera nota del Case Manager/Social Worker. Recopilar Se infiere a partir de la primera interacción con Discharge Navigator o de una nota de Case Mgmt. Tipo de evento inferred | |||
| Prueba diagnóstica realizada | Ejecución efectiva de la prueba diagnóstica o registro del resultado. En el caso de los análisis de laboratorio, ocurre cuando se procesa la muestra; en imagenología, cuando se completa la exploración. | ||
| Por qué es importante Punto final del KPI «Mean Diagnostic Test Cycle Time». Es esencial para comprender los retrasos en los servicios de apoyo a la toma de decisiones clínicas. Dónde obtenerlo ORDER_PROC.PROC_END_TIME o ORDER_STAT_HISTORY cuando el estado cambia a «Completed» o «Resulted». Recopilar Se registra cuando el técnico completa la tarea o la interfaz de resultados recibe los datos. Tipo de evento explicit | |||
| Prueba diagnóstica solicitada | Introducción de una orden de imagenología (Radiology) o servicios de laboratorio. Se captura cuando un médico introduce y firma una orden en el sistema CPOE. | ||
| Por qué es importante Es el punto de inicio del panel «Diagnostic Service Cycle Times». Un volumen elevado en este punto sin resultados correspondientes indica la existencia de cuellos de botella. Dónde obtenerlo Tabla ORDER_PROC donde ORDER_TYPE es Lab o Imaging/Radiology. Recopilar Se registra cuando el estado de la orden pasa a «Signed» o «Active». Tipo de evento explicit | |||
| Traslado solicitado | Solicitud para trasladar al paciente a otra unidad o nivel de atención. Se captura en el sistema como «Bed Request» o «Transfer Order». | ||
| Por qué es importante Punto de inicio de «Average Inter-Ward Transfer Time». Distingue entre la decisión clínica de trasladar al paciente y la disponibilidad logística de una cama. Dónde obtenerlo ADT_TRANSFER_ORDER u ORDER_PROC (Bed Request). Recopilar Se registra 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 abra Reporting Workbench (RWB) mediante la actividad Analytics o My Reports.
- Cree un informe nuevo seleccionando la pestaña Library y buscando la plantilla "Encounter Search" o "Patient Encounters". Esta plantilla permite recuperar detalles de contacto identificados mediante el CSN (Contact Serial Number).
- Configure los criterios (pestaña Settings):
- Establezca Date Range, por ejemplo, Discharge Date = Last 90 Days, para incluir episodios completados.
- Filtre por Encounter Type, por ejemplo, «Hospital Encounter» o «Emergency», para excluir visitas ambulatorias irrelevantes.
- Filtre por Departamento o Facility si necesita limitar el alcance.
- Configure las columnas de visualización (pestaña Display):
- Este es el paso de extracción más importante. Busque y añada las columnas específicas que correspondan a las marcas de tiempo de las actividades requeridas.
- Añada Patient Identifiers:
CSN(episodio del paciente),MRN(ID del paciente). - Añada Demographics/Attributes:
Departamento,Discharge Disposition,Primary Diagnosis Code,Provider. - Añada Timestamp Columns: busque columnas como
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time, etc. Consulte la sección Query/Configuration para conocer la asignación exacta.
- Ejecute el informe y compruebe los resultados en la ventana de vista previa.
- Exporte los datos:
- Haga clic en Toolbar > Export.
- Seleccione el formato CSV o Text (Tab Delimited).
- Compruebe que la opción «Include Column Headers» esté seleccionada.
- Guarde el archivo como
Raw_Epic_Extract.csv.
- Transforme los datos (paso crucial):
- La exportación de RWB genera un conjunto de datos «Wide», con una fila por episodio del paciente y varias columnas de marcas de tiempo.
- Debe aplicar Unpivot para reestructurar los datos, de modo que cada columna de marca de tiempo se convierta en una fila independiente del registro de eventos.
- Cree un archivo final con las columnas
PatientEpisodeId,ActivityName,EventTimestampy los atributos asignados.
- Formatee las fechas: Asegúrese de que
EventTimestamputilice el formato ISO (YYYY-MM-DD HH:MM:SS) compatible con ProcessMind. - Realice la validación final: Compruebe que el archivo incluya las cabeceras
PatientEpisodeId,ActivityNameyEventTimestamp, y cárguelo en ProcessMind.
Configuración
- Template: utilice "Encounter Search" (LBF) o "Find Patients", según la versión de Epic.
- Intervalo de fechas: limite inicialmente la consulta a entre 3 y 6 meses para evitar errores de tiempo de espera (RWB no está optimizado para extracciones masivas).
- Límite de filas: Epic RWB suele tener un límite de filas (por ejemplo, 25.000 o 50.000). Asegúrese de que el intervalo de fechas no lo supere o ejecute varias tandas.
- Permisos: se requieren los permisos de seguridad 'Create' y 'Export' de Reporting Workbench.
- Rendimiento: ejecute la consulta fuera de las horas punta si busca grandes intervalos históricos.
- Granularidad: este método proporciona marcas de tiempo resumidas a nivel de Encounter (por ejemplo, 'First Med Admin'). No extrae cada repetición (por ejemplo, cada pastilla administrada), salvo que se utilicen Templates específicos de "Audit", poco habituales en este caso de uso.
a Consulta de ejemplo sql
[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
Solicite 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 informes de Clarity. Necesitará permisos para
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOy las tablas de referencia relacionadas.Identifique el alcance y los ID de filtro: antes de ejecutar el script completo, realice pequeñas consultas de descubrimiento para identificar los valores específicos de
ORDER_TYPE_Ccorrespondientes a laboratorios, radiología, consultas y traslados en su instancia de Epic, ya que estas listas personalizadas (Category Lists) varían según el hospital.Configure el intervalo temporal: localice las cláusulas
WHEREdel script SQL proporcionado que filtran porCONTACT_DATEoHOSP_ADMSN_TIME. Ajústelas al intervalo de extracción deseado (por ejemplo, los últimos 6 meses).Asigne los flowsheets personalizados (opcional): si necesita marcas de tiempo precisas para Triage o Discharge Planning que no estén en la tabla principal de encuentros, identifique el
FLO_MEAS_ID(Flowsheet Measure ID) específico de estos campos y actualice las secciones de marcador de posición del script.Ejecute 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 distintos eventos clínicos en una estructura de Registro de eventos estandarizada.Procesamiento posterior: la consulta devuelve una lista plana. Compruebe que
EventTimestampno sea nulo. Convierta los formatos de fecha y hora específicos de la base de datos a ISO 8601 (YYYY-MM-DDTHH:MM:SS) si su middleware lo requiere.Exporte los datos: guarde el conjunto de resultados como archivo CSV. Asegúrese de que las cabeceras coincidan con los atributos definidos (PatientEpisodeId, ActivityName, etc.).
Cargue los datos en ProcessMind: importe el CSV en ProcessMind. Asigne
PatientEpisodeIdcomo Case ID,ActivityNamecomo Activity yEventTimestampcomo Timestamp.
Configuración
- Conexión a la base de datos: Epic Clarity (normalmente con backend MSSQL u Oracle).
- Filtrado por fecha: filtre por
PAT_ENC.HOSP_ADMSN_TIMEoPAT_ENC.CONTACT_DATE. Para el análisis inicial, se recomienda un intervalo de 3 a 6 meses a fin de controlar el rendimiento de la consulta. - Tipos de Encounter: el script filtra los encuentros de hospitalización y urgencias (
ENC_TYPE_C, normalmente 3 y 50, pero debe verificarlos enZC_ENC_TYPE). - Tipos de órdenes: es necesario personalizar los valores de
ORDER_TYPE_Cpara laboratorios, imágenes y consultas según la configuración local deZC_ORDER_TYPE. - Rendimiento: el script examina tablas de gran volumen (
ORDER_PROC,CLARITY_ADT). Asegúrese de utilizar la indexación adecuada o ejecútelo fuera de las horas punta.
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 ¿Está listo para comenzar?
Comience hoy mismo a transformar sus operaciones clínicas aplicando este Template a sus datos de Epic. Nuestro equipo está aquí para ayudarle a gestionar el proceso de extracción y obtener resultados inmediatos.
Optimice hoy la experiencia del paciente y reduzca el tiempo de ciclo
Identifique los cuellos de botella clínicos para reducir el tiempo de ciclo en un 30 %.
No necesita tarjeta de crédito... La configuración solo lleva unos minutos.