Su Template de datos para la experiencia del paciente
Su Template de datos para la experiencia del paciente
- Atributos recomendados para el contexto clínico
- Hitos clave del proceso para el seguimiento
- Instrucciones específicas para extraer datos de Epic EHR
Atributos de la experiencia del paciente
| Nombre | Descripción | ||
|---|---|---|---|
| Episodio del paciente PatientEpisodeId | Identificador único del encuentro específico del paciente o del episodio de atención. | ||
| Descripción El episodio del paciente es el identificador principal del caso para Process Mining. Agrupa todos los eventos clínicos, administrativos y logísticos relacionados con un periodo continuo de atención, como una hospitalización o una visita al servicio de urgencias. En Epic Clarity, suele corresponder al número de serie de contacto (CSN) o al ID del encuentro. 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 instancia de proceso coherente. Por qué es importante Es la clave fundamental para vincular eventos distintos 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 | Fecha y hora exactas en que tuvo lugar la actividad. | ||
| Descripción Este atributo registra el momento exacto en que se anotó 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 las referencias temporales de inicio y fin que necesitan los Dashboards de Rendimiento del triaje y Tiempo hasta el diagnóstico definitivo. Por qué es importante Permite calcular los tiempos de ciclo, los tiempos de entrega y el orden de los procesos. Dónde obtenerlo Distintas columnas de marca de tiempo (por ejemplo, EFFECTIVE_TIME, 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 | Acción clínica o administrativa específica que se llevó a cabo. | ||
| Descripción Este atributo registra el nombre del evento que tiene lugar durante el recorrido del paciente, como «Paciente registrado», «Medicamento administrado» u «Orden de alta firmada». Es el elemento central para definir el flujo del proceso. En el análisis, este campo conforma los nodos del mapa de procesos. Se obtiene de distintos 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 flujo de trabajo. Dónde obtenerlo Se obtiene de las tablas CLARITY_ADT, ORDER_PROC y ORDER_MED. Ejemplos Triaje completadoPrueba diagnóstica solicitadaPaciente dado de altaMedicamento administrado | |||
| Sistema de origen SourceSystem | Sistema de registro de los datos, normalmente el EHR Epic. | ||
| Descripción Este atributo identifica el origen de los datos. Aunque en esta vista suele ser «EHR Epic», resulta útil cuando se combinan datos de otros sistemas, como un LIS independiente (sistema de información de laboratorio) o un sistema de facturación. En el análisis, permite rastrear el origen de los datos y facilita la resolución de problemas cuando faltan eventos o estos no coinciden con la fuente. Por qué es importante Permite rastrear el origen de los datos y aporta contexto. 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 los datos LastDataUpdate | Marca de tiempo de la extracción o de la última actualización de los datos. | ||
| Descripción Este atributo indica cuándo se procesó el registro por última vez en el flujo de ETL. Es distinto de la marca de tiempo del evento y ayuda a supervisar la actualidad de los datos. Los analistas lo utilizan para determinar si el Dashboard refleja la situación en tiempo real o si hay un retraso en los datos que afecta la precisión de KPI como los tiempos de espera en el triaje. Por qué es importante Ayuda a evaluar la actualidad y la 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 | Código de la CIE-10 o código 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 «Diagnóstico confirmado». Se utiliza para agrupar los casos por afección clínica en la Vista de cumplimiento de protocolos clínicos. Al asignarlo a «Producto», los analistas pueden ver 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 tras el alta DischargeDisposition | Destino del paciente al recibir el alta (domicilio, centro de enfermería especializada o fallecimiento). | ||
| Descripción Este atributo registra adónde fue el paciente después de salir del hospital. Se registra durante la actividad «Paciente dado de alta». Es fundamental para el Dashboard de Riesgo de reingreso, ya que los perfiles de reingreso de los pacientes dados de alta a centros de enfermería especializada son distintos de los de quienes regresan a su domicilio. Por qué es importante Aporta contexto al resultado del proceso de atención. 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 | 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 y distinguirlo del tiempo de espera. Es especialmente relevante para el Dashboard de Tiempos de ciclo de los servicios de diagnóstico. 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 profesional ProviderId | 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 persona de enfermería que administra un medicamento o el médico que firma las órdenes de alta. Se asigna al atributo genérico «Usuario» para analizar las variaciones entre recursos y la carga de trabajo. En las actividades automatizadas, puede corresponder al ID de un usuario del sistema. Por qué es importante Permite analizar las diferencias de rendimiento y carga de trabajo entre el personal. Dónde obtenerlo Tabla de Epic Clarity: CLARITY_EMP, columna: USER_ID Ejemplos EMP10023DOC5592SISTEMA | |||
| Indicador de reingreso ReadmissionFlag | Indica si el paciente regresó inesperadamente en un plazo de 30 días. | ||
| Descripción Este atributo booleano indica si, en los 30 días posteriores al episodio, el mismo paciente tuvo otro ingreso no programado. Es la base del KPI de Tasa de reingresos no programados en 30 días. En el análisis, funciona como una variable de resultado clave. Se analizan las rutas de proceso que llevan a un valor «Verdadero» para encontrar las causas raíz en la fase de planificación del alta. Por qué es importante Permite identificar procesos de alta fallidos y problemas en la calidad de la atención. Dónde obtenerlo Se calcula mediante SQL, buscando encuentros posteriores del mismo MRN. Ejemplos truefalse | |||
| N.º de historia clínica del paciente PatientMrn | Número de historia clínica que identifica al paciente. | ||
| Descripción El número de historia clínica (MRN) es el identificador único del paciente en todo el sistema de salud y se distingue del ID del episodio. Permite consultar el historial del paciente en varias visitas. Este atributo se utiliza para detectar reingresos y vincular episodios distintos en el Dashboard de Riesgo de reingreso. En el modelo genérico, se asigna a «Cliente». Por qué es importante Es esencial para identificar visitas recurrentes 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 | 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 (por ejemplo, niveles ESI del 1 al 5). Se registra durante la actividad «Triaje completado». Permite segmentar los datos en el Dashboard de Intensidad de recursos según la puntuación de gravedad. Los pacientes con mayor gravedad siguen rutas de proceso distintas 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 de gravedad en los registros del servicio de urgencias. Ejemplos 1 - Reanimación2 - Emergencia3 - Urgente | |||
| Nombre del departamento DepartmentName | Unidad o departamento del hospital donde tuvo lugar la actividad. | ||
| Descripción Este atributo identifica la ubicación funcional del evento, como «Servicio de urgencias», «Radiología» o «Unidad de cirugía general». Es fundamental para el Análisis de traslados internos entre unidades. Los datos permiten segmentar el mapa de procesos por departamento, para que la dirección pueda distinguir los cuellos de botella propios de una unidad de los problemas que afectan a todo el hospital. Por qué es importante Permite filtrar por organización y analizar los traspasos entre equipos. Dónde obtenerlo Tabla de Epic Clarity: CLARITY_DEP, columna: DEPARTMENT_NAME Ejemplos Servicio de urgenciasRadiologíaICUPediatría | |||
| Tipo de encuentro EncounterType | Clasificación de la visita del paciente (por ejemplo, hospitalización o urgencias). | ||
| Descripción Este atributo clasifica la naturaleza del episodio del paciente. Entre los valores habituales se incluyen «Urgencias», «Hospitalización», «Consulta ambulatoria» o «Virtual». Este campo se asigna a «Tipo de caso» y es fundamental para filtrar el análisis. Por ejemplo, el Dashboard de Planificación del alta es principalmente pertinente para los encuentros de hospitalización, mientras que el triaje corresponde a urgencias. Por qué es importante Aporta el contexto general de la instancia del proceso. Dónde obtenerlo Tabla de Epic Clarity: PAT_ENC, columna: ENC_TYPE_C Ejemplos UrgenciasConsulta ambulatoria hospitalariaHospitalización | |||
| Coste de la orden de diagnóstico DiagnosticOrderCost | Coste interno asociado a una prueba diagnóstica o un procedimiento. | ||
| Descripción Este atributo asigna un valor económico a las actividades de «Prueba diagnóstica realizada». Permite incorporar información financiera al mapa de procesos. Aunque no es una métrica clínica principal, ayuda al área administrativa a entender el impacto económico de las distintas variantes del proceso, en particular 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 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 el traslado TransferWaitDuration | Tiempo transcurrido entre la orden de traslado y el traslado efectivo. | ||
| Descripción Esta métrica mide el tiempo entre «Traslado solicitado» y «Paciente trasladado». Es el dato principal para el Análisis de traslados internos entre unidades. Los valores altos indican que los pacientes esperan una cama, lo que bloquea el flujo desde el servicio de urgencias. Por qué es importante Pone de relieve los cuellos de botella logísticos y de capacidad en el flujo de pacientes. Dónde obtenerlo Se calcula como la diferencia entre las marcas de tiempo de la orden y del traslado. Ejemplos 2 h 30 min45 min12 h | |||
| Especialidad del profesional que solicita OrderingProviderSpecialty | Especialidad médica del profesional que solicita una consulta o prueba. | ||
| Descripción Este atributo registra el departamento o la especialidad (por ejemplo, «Cardiología» u «Oncología») del profesional que realiza la solicitud. Se utiliza en el Dashboard de Tiempo de espera para consultas con especialistas. Ayuda a analizar si algunas especialidades esperan más que otras para acceder a los servicios internos, lo que permite detectar posibles sesgos o falta de recursos en determinadas líneas de servicio. Por qué es importante Segmenta la demanda de servicios de diagnóstico y consulta. Dónde obtenerlo Consulte la documentación de Epic EHR para conocer los datos maestros de los profesionales. Ejemplos CardiologíaMedicina internaOrtopedia | |||
| Estado de cumplimiento del 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). Sirve para la Vista de cumplimiento de protocolos clínicos. Entre los valores posibles se incluyen «Cumple», «Paso omitido» o «Fuera de secuencia». Esto permite a los responsables clínicos filtrar rápidamente los casos que no cumplen el protocolo, sin tener que revisar cada mapa de procesos. Por qué es importante Identifica rápidamente las desviaciones de 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 CumpleCon desviacionesIncompleto | |||
| Método de programación SchedulingMethod | Indica cómo se programó la cita de seguimiento. | ||
| Descripción Este atributo registra el canal utilizado para programar las citas, como «MyChart», «Cadence automático» o «Recepción». Es fundamental para el Dashboard de Estado de automatización del seguimiento ambulatorio. Si el valor indica que se utilizó un canal digital del sistema o gestionado por el paciente, el indicador «IsAutomated» puede establecerse en verdadero. Así se muestra el avance de las iniciativas de transformación digital. Por qué es importante Permite hacer un seguimiento de 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 las citas. Ejemplos MyChartCadenceTeléfonoPresencial | |||
| Nombre de la región RegionName | Región geográfica o campus del hospital. | ||
| Descripción En los sistemas de salud con varios campus, este atributo identifica la ubicación del centro. Permite comparar el rendimiento de distintos hospitales. Al asignarlo a «Región», se pueden comparar varios centros para comprobar si un hospital gestiona mejor el rendimiento del triaje que otro. Por qué es importante Permite comparar distintos centros de una red de salud. Dónde obtenerlo Se deriva 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 del método de programación. Si la cita se programó mediante MyChart o un flujo de trabajo automatizado de Cadence, su valor es verdadero. Contribuye directamente al KPI de Tasa de automatización de la programación de citas de seguimiento. Ayuda a la dirección de operaciones a entender qué parte de la carga administrativa se transfiere a la tecnología. Por qué es importante Mide el éxito de la automatización del proceso. Dónde obtenerlo Se deriva de SchedulingMethod. Ejemplos truefalse | |||
Actividades de la experiencia del paciente
| Actividad | Descripción | ||
|---|---|---|---|
| Diagnóstico confirmado | Registro de un diagnóstico confirmado en la lista de problemas del paciente o en el campo de diagnóstico del encuentro. Representa el final de la fase de investigación. | ||
| Por qué es importante Es necesario para el KPI «Tiempo hasta el diagnóstico definitivo». 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. Capturar Se registra cuando el profesional clínico añade una entrada a la actividad de diagnóstico del encuentro. Tipo de evento explicit | |||
| Paciente dado de alta | Cierre oficial del encuentro de hospitalización. Se registra cuando el paciente se da de alta virtualmente del censo. | ||
| Por qué es importante Marca el final formal del episodio para calcular la duración de la estancia. Es esencial para descubrir variantes del flujo de pacientes. Dónde obtenerlo Fuente ADT (evento A03) o PAT_ENC_HSP.DISCH_TIME. Capturar Se registra cuando el personal administrativo completa el flujo de trabajo de alta. Tipo de evento explicit | |||
| Paciente registrado | Creación inicial del registro del encuentro con el paciente en el sistema, que marca el inicio del episodio de atención. Este evento se registra explícitamente cuando el paciente llega al mostrador de admisión o al departamento de urgencias y se registra en Epic. | ||
| Por qué es importante Establece el punto de referencia para toda la trayectoria del paciente y permite calcular la duración total de la estancia. Es esencial para el Dashboard «Rendimiento del triaje y tiempos de espera». Dónde obtenerlo Fuente ADT (evento A04 o A01) o tabla PAT_ENC de Clarity (creación de HSP_ACCOUNT_ID). Capturar Se registra al ejecutar la transacción «Check In» o «Admit». Tipo de evento explicit | |||
| Triaje completado | Finalización de la evaluación inicial de enfermería o del triaje. Por lo general, se registra cuando se guarda el formulario de triaje o el estado del triaje cambia a «Complete». | ||
| Por qué es importante Es fundamental para medir la eficiencia de la atención inicial en el Dashboard «Rendimiento del triaje y tiempos de espera». Las demoras en esta etapa repercuten en toda la ruta de atención. Dónde obtenerlo PAT_ENC_HSP.TRIAGE_END_TIME o marca de tiempo del registro de una fila específica de Flowsheet (FLO_MEASUREMENT). Capturar 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 | Programación de una futura consulta ambulatoria para el paciente. Se registra en el módulo de programación Cadence, vinculado al expediente del paciente. | ||
| Por qué es importante Sirve para calcular la «Tasa de automatización de la programación de citas de seguimiento». Garantiza la continuidad de la atención y ayuda a prevenir los reingresos. Dónde obtenerlo PAT_ENC_APPT vinculado al ID del paciente, creado cerca de la hora del alta. Capturar 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, que suele marcarse al firmar una nota de consulta o cerrar la orden de consulta. | ||
| Por qué es importante Es el punto final del «Tiempo de espera para la consulta con especialistas». Indica que se ha proporcionado asesoramiento especializado y que el plan de atención puede continuar. Dónde obtenerlo HNO_NOTE_TEXT (nota registrada con el tipo Consult) o cambio del estado de ORDER_PROC a Completed. Capturar Se infiere a partir de la hora de creación de la nota de consulta 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. En Epic, se registra como un tipo específico de orden de procedimiento «Consult». | ||
| Por qué es importante Es el punto de inicio del KPI «Tiempo de espera para la consulta con especialistas». Ayuda a identificar la falta de disponibilidad en especialidades médicas concretas. Dónde obtenerlo ORDER_PROC donde ORDER_CLASS = «Consult» u órdenes de derivación específicas. Capturar Se registra cuando se firma la orden de consulta. Tipo de evento explicit | |||
| Medicamento administrado | Administración de un medicamento al paciente por parte del personal de enfermería o de un proveedor. Se registra en el registro de administración de medicamentos (MAR). | ||
| Por qué es importante Evento clave para el Dashboard «Rendimiento de la administración de medicamentos». Permite supervisar la adherencia al «Plan de tratamiento elaborado». Dónde obtenerlo Tabla MAR_ADMIN_INFO, en concreto los eventos con la acción «Given» o «New Bag». Capturar Se registra cuando el personal 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 salga del hospital. En Epic, se registra como una orden específica. | ||
| Por qué es importante Hito fundamental en «Planificación y ejecución del alta». El intervalo entre este momento y la salida efectiva representa una demora administrativa. Dónde obtenerlo ORDER_PROC cuyo tipo es «Discharge Patient». Capturar Se registra cuando el médico firma la orden de alta. Tipo de evento explicit | |||
| Paciente trasladado | Traslado físico del paciente a otro departamento o unidad. Se registra mediante eventos de traslado ADT. | ||
| Por qué es importante Es el punto final del «Tiempo medio de traslado entre unidades». Permite analizar los traslados internos entre unidades para detectar cuellos de botella en la logística hospitalaria. Dónde obtenerlo Fuente ADT (evento A02) o PAT_ENC_HSP_TRANSACTION (Transfer In). Capturar Se registra cuando el auxiliar 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ífico al paciente. Se registra cuando se aplica un conjunto de órdenes estándar o un plan de atención al encuentro. | ||
| Por qué es importante Permite usar la vista «Cumplimiento de protocolos clínicos» al indicar la intención de seguir un estándar de atención. A partir de este punto, se pueden medir las desviaciones respecto de los pasos previstos. Dónde obtenerlo Tablas ORDER_SET_BKG o de planes de atención que indican que se vinculó un protocolo al encuentro. Capturar Se registra cuando el profesional clínico selecciona y firma un conjunto de órdenes. Tipo de evento explicit | |||
| Planificación del alta iniciada | Inicio de las actividades para preparar el alta del paciente. Se registra mediante la documentación de gestión de casos o tipos específicos de órdenes «Discharge». | ||
| Por qué es importante Es clave para el Dashboard «Planificación y ejecución del alta». Un inicio temprano se relaciona con una menor duración de la estancia. Dónde obtenerlo Creación de HSP_DISCH_PLAN o primera nota del gestor de casos o trabajador social. Capturar Se infiere a partir de la primera interacción con Discharge Navigator o de una nota de gestión de casos. Tipo de evento inferred | |||
| Prueba diagnóstica realizada | Realización 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 diagnóstico por imágenes, cuando se completa la exploración. | ||
| Por qué es importante Es el punto final del KPI «Tiempo medio de ciclo de las pruebas diagnósticas». Es fundamental para comprender las demoras en los servicios de apoyo a las decisiones clínicas. Dónde obtenerlo ORDER_PROC.PROC_END_TIME o ORDER_STAT_HISTORY cuando el estado cambia a «Completed» o «Resulted». Capturar 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 | Registro de una orden para diagnóstico por imágenes (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 Dashboard «Tiempos de ciclo de los servicios de diagnóstico». Un volumen elevado de solicitudes sin resultados correspondientes indica posibles cuellos de botella. Dónde obtenerlo Tabla ORDER_PROC, donde ORDER_TYPE es Lab o Imaging/Radiology. Capturar Se registra cuando el estado de la orden cambia a «Signed» o «Active». Tipo de evento explicit | |||
| Traslado solicitado | Solicitud para trasladar al paciente a otra unidad o a otro nivel de atención. Se registra en el sistema como una «Bed Request» o una «Transfer Order». | ||
| Por qué es importante Es el punto de inicio del «Tiempo medio de traslado entre unidades». Permite distinguir 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). Capturar 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) desde la actividad Analítica o My Reports.
- Cree un informe nuevo: Seleccione la pestaña Library y busque la plantilla "Encounter Search" o "Patient Encounters". Esta plantilla permite obtener detalles de contacto identificados por el CSN (número de serie del contacto).
- Configure los criterios (pestaña Settings):
- Establezca el intervalo de fechas (por ejemplo, fecha de alta = últimos 90 días) para incluir los episodios completados.
- Filtre por tipo de encuentro (por ejemplo, 'Hospital Encounter' o 'Emergency') para excluir las visitas ambulatorias que no sean pertinentes.
- Filtre por Departamento o centro si necesita limitar el alcance.
- Configure las columnas que se mostrarán (pestaña Display):
- Este es el paso clave de la extracción. Busque y añada las columnas específicas que correspondan a las marcas de tiempo de las actividades requeridas.
- Añada identificadores del paciente:
CSN(episodio del paciente),MRN(ID del paciente). - Añada datos demográficos y atributos:
Departamento,Discharge Disposition,Primary Diagnosis Code,Provider. - Añada columnas de marcas de tiempo: busque columnas como
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time, etc. (Consulte la sección Consulta/Configuración para ver la asignación exacta).
- Ejecute el informe y verifique los resultados en la ventana de vista previa.
- Exporte los datos:
- Seleccione Toolbar > Export.
- Elija el formato CSV o Text (Tab Delimited).
- Asegúrese de que esté marcada la opción 'Incluir encabezados de columna'.
- Guarde el archivo como
Raw_Epic_Extract.csv.
- Transforme los datos (paso clave):
- La exportación de RWB genera un conjunto de datos «ancho» (una fila por episodio del paciente con varias columnas de marcas de tiempo).
- Debe despivotar (reestructurar) estos datos para 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.
- Dé formato a las fechas: Asegúrese de que
EventTimestamptenga el formato ISO (YYYY-MM-DD HH:MM:SS) compatible con ProcessMind. - Valide el archivo: Compruebe que incluya los encabezados
PatientEpisodeId,ActivityNameyEventTimestamp, y cárguelo en ProcessMind.
Configuración
- Template: use «Encounter Search» (LBF) o «Find Patients», según la versión de Epic.
- Rango de fechas: limite inicialmente el período 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 no superarlo con el rango de fechas o ejecute varias extracciones.
- Permisos: se requieren los permisos de seguridad «Create» y «Export» de Reporting Workbench.
- Rendimiento: ejecute la consulta en horas de menor actividad si busca en períodos históricos extensos.
- Granularidad: este método proporciona marcas de tiempo resumidas por encuentro, como «First Med Admin». No extrae todos los ciclos, por ejemplo, cada dosis administrada, a menos que se utilicen Templates específicos de «Audit», poco habituales para este caso.
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 la consola Epic Clarity 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, ejecute consultas exploratorias breves para identificar los valores específicos de
ORDER_TYPE_Ccorrespondientes a laboratorios, radiología, consultas y traslados en su instancia de Epic. Estas listas personalizadas (listas de categorías) varían según el hospital.Configure el período: localice las cláusulas
WHEREdel script SQL proporcionado que filtran porCONTACT_DATEoHOSP_ADMSN_TIME. Ajuste estos valores al período que desea extraer, por ejemplo, los últimos 6 meses.Asigne los flujos de trabajo personalizados (opcional): si necesita marcas de tiempo precisas para el triaje o la planificación del alta que no estén en la tabla principal de encuentros, identifique el
FLO_MEAS_ID(ID de medida del Flowsheet) correspondiente a esos 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 estandarizada de registro de eventos.Procesamiento posterior: la consulta devuelve una lista plana. Compruebe que
EventTimestampno sea nulo. Si su middleware lo requiere, convierta los formatos de fecha y hora específicos de la base de datos a ISO 8601 (YYYY-MM-DDTHH:MM:SS).Exporte los datos: guarde el conjunto de resultados como archivo CSV. Asegúrese de que los encabezados coincidan con los atributos definidos, como PatientEpisodeId y ActivityName.
Cargue los datos en ProcessMind: importe el archivo CSV en ProcessMind. Asigne
PatientEpisodeIdal ID del caso,ActivityNamea la actividad yEventTimestampa la marca de tiempo.
Configuración
- Conexión a la base de datos: Epic Clarity (normalmente con MSSQL u Oracle como sistema de base de datos).
- Filtro de fechas: filtre por
PAT_ENC.HOSP_ADMSN_TIMEoPAT_ENC.CONTACT_DATE. Para el análisis inicial, se recomienda un período de entre 3 y 6 meses para mantener un buen rendimiento de las consultas. - Tipos de encuentro: el script filtra los encuentros de hospitalización y de emergencia (los valores de
ENC_TYPE_Csuelen ser 3 y 50, pero debe verificarlos enZC_ENC_TYPE). - Tipos de orden: 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 analiza tablas de gran volumen (
ORDER_PROC,CLARITY_ADT). Asegúrese de utilizar los índices adecuados o ejecútelo en horas de menor actividad.
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 ¿Todo listo para comenzar?
Comience hoy mismo a transformar sus operaciones clínicas aplicando este Template a sus datos de Epic. Nuestro equipo puede ayudarle con el proceso de extracción para que obtenga resultados cuanto antes.
Optimice hoy la experiencia del paciente y reduzca el tiempo de ciclo
Identifique los cuellos de botella clínicos y reduzca el tiempo de ciclo en un 30 %.
No se requiere tarjeta de crédito... La configuración tarda solo unos minutos.