Seu Template de dados da jornada do paciente
Seu Template de dados da jornada do paciente
- Atributos recomendados para o contexto clínico
- Principais marcos do processo a acompanhar
- Orientações específicas para extrair dados do prontuário eletrônico Epic
Atributos da jornada do paciente
| Nome | Descrição | ||
|---|---|---|---|
| Data e hora do evento EventTimestamp | A data e a hora exatas em que a atividade ocorreu. | ||
| Descrição Este atributo registra o momento exato em que um evento foi registrado no sistema Epic. Ele é usado para ordenar as atividades e calcular todas as métricas baseadas em duração, como tempo de internação e tempos de ciclo. A precisão deste campo é fundamental para identificar gargalos. Ele dá suporte aos Dashboards de fluxo da triagem e tempo até o diagnóstico definitivo, fornecendo as referências temporais para os pontos de início e fim. Por que isso importa Permite calcular tempos de ciclo, tempos de atravessamento e a ordem dos processos. Onde encontrar Várias colunas de data e hora (por exemplo, EFFECTIVE_TIME, ORDER_TIME), dependendo da tabela de origem. Exemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| Episódio do paciente PatientEpisodeId | Identificador exclusivo do atendimento específico do paciente ou do episódio de cuidado. | ||
| Descrição O episódio do paciente é o principal identificador de caso para Process Mining. Ele reúne todos os eventos clínicos, administrativos e logísticos relacionados a um período contínuo de cuidado, como uma internação ou uma visita ao pronto-socorro. No Epic Clarity, geralmente corresponde ao Contact Serial Number (CSN) ou ao ID do atendimento. A análise desse atributo permite reconstruir a jornada completa do paciente. Com ele, é possível associar as atividades de triagem, diagnóstico, tratamento e alta em uma única instância de processo. Por que isso importa É a chave fundamental para vincular eventos distintos a um único caso de processo. Onde encontrar Tabela do Epic Clarity: PAT_ENC, coluna: PAT_ENC_CSN_ID Exemplos 200459112200459113200459114200459115 | |||
| Nome da atividade ActivityName | A ação clínica ou administrativa específica realizada. | ||
| Descrição Este atributo registra o nome do evento ocorrido na jornada do paciente, como "Paciente cadastrado", "Medicamento administrado" ou "Ordem de alta assinada". É o elemento central para definir o fluxo do processo. Na análise, este campo forma os nós do mapa de processo. Ele é derivado de vários códigos de transação e status de pedidos no EHR para criar um Event Log legível. Por que isso importa Define as etapas do processo e permite visualizar o fluxo de trabalho. Onde encontrar Derivado das tabelas CLARITY_ADT, ORDER_PROC e ORDER_MED. Exemplos Triagem concluídaExame diagnóstico solicitadoPaciente recebeu altaMedicamento administrado | |||
| Sistema de origem SourceSystem | O sistema oficial de registro dos dados, geralmente o Epic EHR. | ||
| Descrição Este atributo identifica a origem dos dados. Embora nesta visualização seja principalmente "Epic EHR", ele é útil quando os dados são combinados com outros sistemas, como um LIS (sistema de informações laboratoriais) separado ou um sistema de faturamento. Na análise, ele garante a rastreabilidade dos dados e ajuda a investigar problemas quando determinados eventos parecem ausentes ou inconsistentes em relação à origem. Por que isso importa Oferece rastreabilidade e contexto sobre a origem dos dados. Onde encontrar Definido diretamente no código ou derivado da configuração da string de conexão. Exemplos Epic EHREpic ClarityEpic Caboodle | |||
| Última atualização dos dados LastDataUpdate | A data e a hora em que os dados foram extraídos ou atualizados pela última vez. | ||
| Descrição Este atributo indica quando o registro foi processado pela última vez pelo pipeline de ETL. Ele é diferente da data e hora do evento e ajuda a monitorar a atualização dos dados. Os analistas usam esse dado para verificar se o Dashboard reflete a situação atual ou se há um atraso nos dados que afeta a precisão de KPIs, como os tempos de espera na triagem. Por que isso importa Ajuda a avaliar a atualidade e a confiabilidade dos dados de Process Mining. Onde encontrar Data e hora do sistema ETL. Exemplos 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| Código do diagnóstico principal PrimaryDiagnosisCode | O código ICD-10 ou interno que representa o diagnóstico principal. | ||
| Descrição Este atributo registra a condição médica confirmada do paciente. Geralmente, é preenchido durante a atividade "Diagnóstico confirmado". Ele é usado para agrupar casos por condição clínica na visualização de conformidade com protocolos clínicos. O mapeamento para "Produto" permite que os analistas vejam como a "produção" do cuidado varia conforme a condição médica. Por que isso importa Agrupa casos com semelhanças clínicas para analisar protocolos. Onde encontrar Tabela do Epic Clarity: PAT_ENC_DX, coluna: DX_ID Exemplos J18.9I21.9E11.9 | |||
| Destino após a alta DischargeDisposition | O destino do paciente após a alta (casa, instituição de enfermagem especializada, óbito). | ||
| Descrição Este atributo registra para onde o paciente foi após sair do hospital. Ele é registrado na atividade "Paciente recebeu alta". É fundamental para o Dashboard de risco de reinternação, pois os perfis de reinternação de pacientes encaminhados a instituições de enfermagem especializada são diferentes dos perfis daqueles que recebem alta para casa. Por que isso importa Contextualiza o resultado do processo de cuidado. Onde encontrar Tabela do Epic Clarity: PAT_ENC, coluna: DISCH_DISP_C Exemplos CasaInstituição de enfermagem especializadaAssistência domiciliar à saúde | |||
| Flag de reinternação ReadmissionFlag | Indica se o paciente retornou inesperadamente em até 30 dias. | ||
| Descrição Este atributo booleano identifica se, nos 30 dias seguintes ao episódio, o mesmo paciente teve outra internação não planejada. Ele é a base do KPI de taxa de reinternação não planejada em 30 dias. Na análise, funciona como uma importante variável de resultado. Os fluxos de processo associados a uma flag verdadeira são analisados para encontrar as causas raiz na etapa de planejamento da alta. Por que isso importa Identifica falhas no processo de alta e problemas na qualidade do cuidado. Onde encontrar Calculado por SQL, consultando atendimentos futuros do mesmo MRN. Exemplos truefalse | |||
| Horário de término do evento EventEndTime | A data e a hora em que a atividade foi concluída. | ||
| Descrição Embora muitos eventos sejam instantâneos, algumas atividades, como "Exame diagnóstico realizado" ou "Consulta concluída", têm duração. Este atributo registra o horário de conclusão. Ele permite calcular o tempo de processamento ativo em comparação com o tempo de espera. Isso é especialmente relevante para o Dashboard de tempos de ciclo dos serviços de diagnóstico. Por que isso importa Permite calcular a duração das atividades e a utilização de recursos. Onde encontrar Consulte a documentação do Epic EHR para encontrar as colunas específicas de horário de término em ORDER_PROC. Exemplos 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| ID do profissional ProviderId | O identificador do usuário ou profissional de saúde que realizou a atividade. | ||
| Descrição Este atributo registra o ID exclusivo do membro da equipe responsável pelo evento, como o enfermeiro que administra um medicamento ou o médico que assina as ordens de alta. Ele é mapeado para o atributo genérico "Usuário" para analisar variações entre recursos e a carga de trabalho. Em atividades automatizadas, o ID pode corresponder a um usuário do sistema. Por que isso importa Permite analisar as variações de performance e carga de trabalho entre os membros da equipe. Onde encontrar Tabela do Epic Clarity: CLARITY_EMP, coluna: USER_ID Exemplos EMP10023DOC5592SISTEMA | |||
| Nível de gravidade da triagem TriageAcuityLevel | A pontuação de gravidade atribuída ao paciente durante a triagem. | ||
| Descrição Este atributo indica a urgência do quadro do paciente, geralmente em uma escala (por exemplo, níveis ESI de 1 a 5). Ele é registrado durante a atividade "Triagem concluída". Permite segmentar os dados no Dashboard de intensidade de recursos por pontuação de gravidade. Pacientes com maior gravidade seguem fluxos de processo diferentes dos pacientes com menor gravidade, e este campo ajuda a distinguir essas variações. Por que isso importa Segmenta o processo com base na urgência e no consumo esperado de recursos. Onde encontrar Consulte a documentação do Epic EHR sobre o campo de gravidade nos registros do pronto-socorro. Exemplos 1 - Ressuscitação2 - Emergência3 - Urgente | |||
| Nome do departamento DepartmentName | A unidade ou o departamento do hospital onde a atividade ocorreu. | ||
| Descrição Este atributo identifica o local funcional do evento, como "Pronto-socorro", "Radiologia" ou "Unidade de cirurgia geral". É fundamental para a análise de transferências internas entre unidades. Os dados permitem segmentar o mapa de processo por departamento, ajudando os gestores a identificar gargalos específicos da unidade e diferenciá-los de problemas que afetam todo o hospital. Por que isso importa Permite filtrar os dados por organização e analisar as transferências entre equipes. Onde encontrar Tabela do Epic Clarity: CLARITY_DEP, coluna: DEPARTMENT_NAME Exemplos Pronto-socorroRadiologiaICUPediatria | |||
| Número do prontuário do paciente (MRN) PatientMrn | O número do prontuário médico que identifica o paciente. | ||
| Descrição O MRN é o identificador exclusivo do paciente em todo o sistema de saúde, diferente do ID do episódio. Ele permite acompanhar o histórico do paciente em várias consultas. Este atributo é usado para detectar reinternações e vincular episódios distintos no Dashboard de risco de reinternação. No modelo genérico, ele corresponde a "Cliente". Por que isso importa É essencial para identificar consultas recorrentes e analisar o histórico do paciente. Onde encontrar Tabela do Epic Clarity: PATIENT, coluna: PAT_ID ou PAT_MRN_ID Exemplos MRN-882910MRN-112003MRN-554211 | |||
| Tipo de atendimento EncounterType | A classificação da consulta do paciente (por exemplo, internação ou emergência). | ||
| Descrição Este atributo classifica a natureza do episódio do paciente. Os valores comuns incluem "Emergência", "Internação", "Ambulatorial" ou "Virtual". Mapeado para "CaseType", este campo é fundamental para filtrar a análise. Por exemplo, o Dashboard de planejamento de alta é mais relevante para atendimentos de internação, enquanto a triagem é específica para emergências. Por que isso importa Fornece o contexto geral da instância do processo. Onde encontrar Tabela do Epic Clarity: PAT_ENC, coluna: ENC_TYPE_C Exemplos EmergênciaAtendimento ambulatorial hospitalarInternação | |||
| Agendamento automatizado IsAutomatedScheduling | Flag que indica se o agendamento foi realizado sem a intervenção da equipe. | ||
| Descrição Este atributo booleano é derivado do método de agendamento. Se a consulta foi marcada pelo MyChart ou por um fluxo de trabalho automatizado do Cadence, o valor é verdadeiro. Ele dá suporte direto ao KPI de taxa de automação do agendamento de consultas de acompanhamento. Isso ajuda as lideranças operacionais a entender quanto da carga administrativa está sendo transferida para a tecnologia. Por que isso importa Mede o sucesso da automação do processo. Onde encontrar Derivado de SchedulingMethod. Exemplos truefalse | |||
| Custo do pedido de diagnóstico DiagnosticOrderCost | O custo interno associado a um exame ou procedimento diagnóstico. | ||
| Descrição Este atributo atribui um valor financeiro às atividades de "Exame diagnóstico realizado". Ele permite adicionar uma dimensão financeira ao mapa de processo. Embora não seja uma métrica clínica principal, ajuda a administração a entender o impacto financeiro das diferentes variações do processo, especialmente as que envolvem pontuações de gravidade com alto consumo de recursos. Por que isso importa Acrescenta uma dimensão financeira à análise de eficiência do processo. Onde encontrar Tabelas de faturamento ou contabilidade de custos vinculadas ao procedimento. Exemplos 150.001200.0045.00 | |||
| Especialidade do profissional solicitante OrderingProviderSpecialty | A especialidade médica do profissional que solicita uma consulta ou exame. | ||
| Descrição Este atributo registra o departamento ou a especialidade (por exemplo, "Cardiologia" ou "Oncologia") do profissional solicitante. Ele é usado no Dashboard de tempo de espera por consulta com especialista. Ajuda a analisar se algumas especialidades enfrentam tempos de espera maiores por serviços internos do que outras, revelando possíveis desigualdades ou falta de recursos em determinadas áreas de atendimento. Por que isso importa Segmenta a demanda por serviços de diagnóstico e consulta. Onde encontrar Consulte a documentação do Epic EHR sobre os dados mestres dos profissionais. Exemplos CardiologiaClínica médicaOrtopedia | |||
| Método de agendamento SchedulingMethod | Indica como a consulta de acompanhamento foi agendada. | ||
| Descrição Este atributo registra o canal usado para agendar consultas, como "MyChart", "Cadence automático" ou "Recepção". É fundamental para o Dashboard de status da automação de consultas ambulatoriais de acompanhamento. Se o valor indicar um canal digital usado pelo sistema ou pelo paciente, a flag "IsAutomated" pode ser definida como verdadeira. Isso destaca os resultados das iniciativas de transformação digital. Por que isso importa Acompanha a adoção de ferramentas automatizadas ou de autoatendimento. Onde encontrar Consulte a documentação do Epic EHR sobre a origem da criação de consultas. Exemplos MyChartCadenceTelefonePresencial | |||
| Nome da região RegionName | A região geográfica ou o campus do hospital. | ||
| Descrição Em sistemas de saúde com vários campi, este atributo identifica a localização da unidade. Ele permite comparar a performance entre diferentes hospitais. O mapeamento para "Região" permite comparar unidades e verificar se um hospital gerencia melhor o fluxo da triagem do que outro. Por que isso importa Permite comparar diferentes unidades de uma rede de saúde. Onde encontrar Derivado dos dados mestres de departamento ou unidade. Exemplos Campus NorteCentro da cidadeAla Oeste | |||
| Status de adesão ao protocolo ProtocolAdherenceStatus | Status que indica se o caso seguiu o plano clínico padrão. | ||
| Descrição Este atributo compara a sequência de atividades do caso com um modelo de referência definido (procedimento operacional padrão, POP). Ele dá suporte à visualização de conformidade com protocolos clínicos. Os valores podem incluir "Em conformidade", "Etapa ignorada" ou "Fora de sequência". Assim, as lideranças clínicas podem filtrar rapidamente os casos fora de conformidade, sem precisar inspecionar cada mapa de processo manualmente. Por que isso importa Identifica rapidamente desvios dos padrões de cuidado baseados em evidências. Onde encontrar Calculado na ferramenta de Process Mining ou pré-processado em SQL. Exemplos Em conformidadeCom desvioIncompleto | |||
| Tempo de espera pela transferência TransferWaitDuration | Tempo decorrido entre a ordem de transferência e a transferência efetiva. | ||
| Descrição Esta métrica mede o intervalo entre "Transferência solicitada" e "Paciente transferido". É o principal dado da análise de transferências internas entre unidades. Valores altos indicam pacientes aguardando leitos, o que bloqueia o fluxo vindo do pronto-socorro. Por que isso importa Destaca gargalos logísticos e de capacidade no fluxo de pacientes. Onde encontrar Calculado pela diferença entre as datas e horas dos eventos de solicitação e transferência. Exemplos 2 h 30 min45 min12 h | |||
Atividades da jornada do paciente
| Atividade | Descrição | ||
|---|---|---|---|
| Diagnóstico confirmado | Registro de um diagnóstico confirmado na lista de problemas do paciente ou no campo de diagnóstico do atendimento. Marca a conclusão da etapa de investigação. | ||
| Por que isso importa É necessário para o KPI de tempo até o diagnóstico definitivo. Marca a transição da avaliação para o tratamento direcionado. Onde encontrar Tabela PAT_ENC_DX ou atualização de PROBLEM_LIST vinculada ao atendimento. Coleta Registrado quando o profissional de saúde adiciona uma entrada à atividade Encounter Diagnosis Tipo de evento explicit | |||
| Paciente cadastrado | Criação inicial do registro de atendimento do paciente no sistema, que marca o início do episódio de atendimento. Esse evento é registrado quando o paciente chega ao balcão de cadastro ou ao pronto-socorro e faz o check-in no Epic. | ||
| Por que isso importa Define o ponto de partida de todo o percurso do paciente e permite calcular o tempo total de internação. É essencial para o Dashboard de capacidade de triagem e tempos de espera. Onde encontrar Feed ADT (evento A04 ou A01) ou tabela PAT_ENC do Clarity (criação de HSP_ACCOUNT_ID). Coleta Registrado quando a transação 'Check In' ou 'Admit' é executada Tipo de evento explicit | |||
| Paciente recebeu alta | Encerramento oficial do atendimento hospitalar. O evento é registrado quando o paciente recebe alta virtual no censo. | ||
| Por que isso importa Marca o fim formal do episódio para o cálculo do tempo de internação. É essencial para a descoberta de variantes do fluxo de pacientes. Onde encontrar Feed ADT (evento A03) ou PAT_ENC_HSP.DISCH_TIME. Coleta Registrado quando a equipe administrativa conclui o fluxo de trabalho de alta Tipo de evento explicit | |||
| Triagem concluída | Conclusão da avaliação inicial de enfermagem ou da triagem. Em geral, esse evento é registrado quando a planilha de triagem é preenchida ou o status da triagem muda para 'Complete'. | ||
| Por que isso importa É essencial para medir a eficiência do atendimento inicial no Dashboard de capacidade de triagem e tempos de espera. Demoras nessa etapa afetam todo o percurso de atendimento. Onde encontrar PAT_ENC_HSP.TRIAGE_END_TIME ou data e hora do registro de uma linha específica da Flowsheet (FLO_MEASUREMENT). Coleta Registrado quando a documentação da triagem é assinada ou o campo de status é atualizado Tipo de evento explicit | |||
| Consulta concluída | Conclusão da avaliação do especialista, geralmente marcada pela assinatura de uma nota de consulta ou pelo encerramento da solicitação. | ||
| Por que isso importa É o ponto final do tempo até a consulta com um especialista. Indica que a orientação especializada foi fornecida e que o plano de atendimento pode seguir. Onde encontrar HNO_NOTE_TEXT (nota registrada com o tipo Consult) ou mudança do status de ORDER_PROC para Completed. Coleta Inferido a partir do horário de criação da nota de consulta ou da atualização do status da solicitação Tipo de evento inferred | |||
| Consulta de acompanhamento agendada | Agendamento de uma consulta ambulatorial futura para o paciente. Registrado no módulo de agendamento Cadence, vinculado ao prontuário do paciente. | ||
| Por que isso importa Dá suporte à métrica "Taxa de automação do agendamento de consultas de acompanhamento". Garante a continuidade do cuidado e ajuda a prevenir reinternações. Onde encontrar PAT_ENC_APPT vinculado ao ID do paciente, criado próximo ao horário da alta. Coleta Registrado quando o horário da consulta é confirmado no Cadence Tipo de evento explicit | |||
| Consulta solicitada | Solicitação para que um especialista avalie o paciente. No Epic, esse evento é registrado como um tipo específico de procedimento, 'Consult'. | ||
| Por que isso importa É o ponto de partida do KPI de tempo até a consulta com um especialista. Ajuda a identificar a falta de profissionais em especialidades médicas específicas. Onde encontrar ORDER_PROC em que ORDER_CLASS = 'Consult' ou solicitações específicas de encaminhamento. Coleta Registrado quando a solicitação de consulta é assinada Tipo de evento explicit | |||
| Exame diagnóstico realizado | Realização efetiva do exame diagnóstico ou registro do resultado. No caso de exames laboratoriais, ocorre quando a amostra é processada; no caso de exames de imagem, quando o exame é concluído. | ||
| Por que isso importa É o ponto final do KPI de tempo médio de ciclo dos exames diagnósticos. É essencial para entender as demoras nos serviços de apoio à decisão clínica. Onde encontrar ORDER_PROC.PROC_END_TIME ou ORDER_STAT_HISTORY quando o status muda para 'Completed' ou 'Resulted'. Coleta Registrado quando o técnico conclui a tarefa ou a interface de resultados recebe os dados Tipo de evento explicit | |||
| Exame diagnóstico solicitado | Registro de uma solicitação de exame de imagem (Radiology) ou de serviços laboratoriais. O evento é registrado quando o médico insere e assina uma solicitação no sistema CPOE. | ||
| Por que isso importa É o ponto de partida do Dashboard de tempos de ciclo dos serviços de diagnóstico. Um grande volume de solicitações sem resultados correspondentes indica gargalos. Onde encontrar Tabela ORDER_PROC em que ORDER_TYPE é Lab ou Imaging/Radiology. Coleta Registrado quando o status da solicitação muda para 'Signed' ou 'Active' Tipo de evento explicit | |||
| Medicamento administrado | Administração de um medicamento ao paciente por um profissional de enfermagem ou outro prestador de serviços de saúde. O evento é registrado no Registro de Administração de Medicamentos (MAR). | ||
| Por que isso importa Evento central do Dashboard de performance da administração de medicamentos. Acompanha a adesão ao plano de tratamento elaborado. Onde encontrar Tabela MAR_ADMIN_INFO, especificamente eventos com a ação 'Given' ou 'New Bag'. Coleta Registrado quando o profissional de enfermagem escaneia a pulseira do paciente e o medicamento (BCMA) Tipo de evento explicit | |||
| Paciente transferido | Transferência física do paciente para um novo setor ou unidade. O evento é registrado por meio dos eventos de transferência ADT. | ||
| Por que isso importa É o ponto final do tempo médio de transferência entre unidades. Dá suporte à análise de transferências internas entre unidades para identificar gargalos na logística hospitalar. Onde encontrar Feed ADT (evento A02) ou PAT_ENC_HSP_TRANSACTION (Transfer In). Coleta Registrado quando o funcionário da unidade atualiza a localização do paciente no Census Tipo de evento explicit | |||
| Planejamento da alta iniciado | Início das atividades de preparação para a alta do paciente. O evento é registrado na documentação de gerenciamento de casos ou em tipos específicos de solicitação de alta. | ||
| Por que isso importa É essencial para o Dashboard de planejamento e execução da alta. O início antecipado está associado à redução do tempo de internação. Onde encontrar Criação de HSP_DISCH_PLAN ou primeira nota do gerente de casos ou assistente social. Coleta Inferido a partir da primeira interação com o Discharge Navigator ou de uma nota de gerenciamento de casos Tipo de evento inferred | |||
| Plano de atendimento iniciado | Atribuição de um percurso clínico ou protocolo específico ao paciente. Esse evento é registrado quando um conjunto padrão de pedidos ou um plano de atendimento é aplicado ao contexto do atendimento. | ||
| Por que isso importa Dá suporte à visualização de conformidade com protocolos clínicos ao registrar a intenção de seguir um padrão de atendimento. A partir desse ponto, é possível medir desvios das etapas planejadas seguintes. Onde encontrar ORDER_SET_BKG ou tabelas do plano de atendimento que indiquem a vinculação de um protocolo ao atendimento. Coleta Registrado quando o profissional de saúde seleciona e assina um conjunto de pedidos Tipo de evento explicit | |||
| Solicitação de alta assinada | Autorização formal do médico para que o paciente deixe o hospital. No Epic, esse evento é registrado como uma solicitação específica. | ||
| Por que isso importa Marco essencial no planejamento e na execução da alta. O intervalo entre essa etapa e a saída efetiva representa a demora administrativa. Onde encontrar ORDER_PROC cujo tipo é 'Discharge Patient'. Coleta Registrado quando o médico assina a solicitação de alta Tipo de evento explicit | |||
| Transferência solicitada | Solicitação para transferir o paciente para outra unidade ou nível de atendimento. O evento é registrado no sistema como uma solicitação de leito ou uma solicitação de transferência. | ||
| Por que isso importa É o ponto de partida do tempo médio de transferência entre unidades. Diferencia a decisão clínica de transferir da disponibilidade logística de um leito. Onde encontrar ADT_TRANSFER_ORDER ou ORDER_PROC (solicitação de leito). Coleta Registrado quando o médico insere a solicitação de transferência Tipo de evento explicit | |||
Guias de extração
Etapas
- Entre no Epic Hyperspace e abra o Reporting Workbench (RWB) pela atividade Análises ou My Reports.
- Crie um novo relatório: Selecione a aba Library e pesquise o Template "Encounter Search" ou "Patient Encounters". Esse Template permite recuperar detalhes do contato identificados pelo CSN (Contact Serial Number).
- Configure os critérios (aba Settings):
- Defina o período (por exemplo, Data de alta = últimos 90 dias) para incluir episódios concluídos.
- Filtre por tipo de atendimento (por exemplo, 'Hospital Encounter' ou 'Emergency') para excluir consultas ambulatoriais irrelevantes.
- Filtre por Departamento ou Facility se precisar delimitar o escopo.
- Configure as colunas exibidas (aba Display):
- Esta é a etapa essencial da extração. Pesquise e adicione colunas específicas que correspondam aos timestamps das atividades necessárias.
- Adicione identificadores do paciente:
CSN(episódio do paciente),MRN(ID do paciente). - Adicione dados demográficos e atributos:
Departamento,Discharge Disposition,Primary Diagnosis Code,Provider. - Adicione colunas de data e hora: procure colunas como
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Timeetc. (Consulte a seção Query/Configuration para ver o mapeamento exato.)
- Execute o relatório e confira os resultados na janela de visualização.
- Exporte os dados:
- Clique em Toolbar > Export.
- Selecione o formato CSV ou Text (Tab Delimited).
- Verifique se a opção 'Include Column Headers' está marcada.
- Salve o arquivo como
Raw_Epic_Extract.csv.
- Transforme os dados (etapa essencial):
- A exportação do RWB gera um conjunto de dados em formato amplo, com uma linha por episódio do paciente e várias colunas de timestamp.
- Você precisa despivotar (remodelar) os dados para que cada coluna de timestamp se torne uma linha distinta no Event Log.
- Crie um arquivo final com as colunas
PatientEpisodeId,ActivityName,EventTimestampe os atributos associados.
- Formate as datas: Verifique se
EventTimestampestá no formato ISO (YYYY-MM-DD HH:MM:SS), compatível com o ProcessMind. - Validação final: Confira se o arquivo tem os cabeçalhos
PatientEpisodeId,ActivityNameeEventTimestampe carregue-o no ProcessMind.
Configuração
- Template: use "Encounter Search" (LBF) ou "Find Patients", dependendo da versão do Epic.
- Intervalo de datas: limite inicialmente a 3 a 6 meses para evitar erros de tempo limite (o RWB não é otimizado para extrações em massa de grandes volumes).
- Limite de linhas: o Epic RWB costuma ter um limite de linhas (por exemplo, 25.000 ou 50.000). Verifique se o intervalo de datas não ultrapassa esse limite ou execute várias extrações.
- Permissões: são necessários os pontos de segurança 'Create' e 'Export' do Reporting Workbench.
- Performance: execute a consulta fora dos horários de pico se estiver pesquisando períodos históricos extensos.
- Granularidade: este método fornece datas e horas resumidas no nível do atendimento (por exemplo, 'First Med Admin'). Ele não extrai todos os ciclos (por exemplo, cada comprimido administrado), a menos que você use Templates específicos de "Audit", raros neste caso.
Consulta de exemplo 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 Etapas
Solicite acesso ao banco de dados: confirme se você tem acesso de leitura ao Epic Clarity Console ou a um cliente SQL conectado ao banco de dados de produção ou relatórios do Clarity. Você precisará de permissões para
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFOe tabelas de referência relacionadas.Identifique o escopo e os IDs dos filtros: antes de executar o script completo, faça consultas exploratórias menores para identificar os valores específicos de
ORDER_TYPE_Cpara exames laboratoriais, radiologia, consultas e transferências na sua instância do Epic. Essas listas personalizadas (listas de categorias) variam de hospital para hospital.Configure o período: localize as cláusulas
WHEREdo script SQL fornecido que filtram porCONTACT_DATEouHOSP_ADMSN_TIME. Ajuste-as ao período de extração desejado (por exemplo, os últimos 6 meses).Mapeie os formulários personalizados (opcional): se você precisar de datas e horas precisas para triagem ou planejamento da alta que não estejam na tabela principal de atendimentos, identifique o
FLO_MEAS_ID(ID da medida do formulário) desses campos e atualize as seções de exemplo do script.Execute a consulta: rode o script SQL completo no seu cliente SQL (por exemplo, SQL Server Management Studio ou Oracle SQL Developer). O script usa
UNION ALLpara combinar diferentes eventos clínicos em uma estrutura padronizada de Event Log.Pós-processamento: a consulta retorna uma lista simples. Verifique se
EventTimestampnão está nulo. Se o middleware exigir, converta os formatos de data e hora específicos do banco para ISO 8601 (YYYY-MM-DDTHH:MM:SS).Exporte os dados: salve o conjunto de resultados como arquivo CSV. Confira se os cabeçalhos correspondem aos atributos definidos (PatientEpisodeId, ActivityName etc.).
Carregue os dados no ProcessMind: importe o CSV para o ProcessMind. Mapeie
PatientEpisodeIdcomo ID do caso,ActivityNamecomo atividade eEventTimestampcomo data e hora.
Configuração
- Conexão com o banco de dados: Epic Clarity (geralmente com back-end MSSQL ou Oracle).
- Filtro de datas: filtre por
PAT_ENC.HOSP_ADMSN_TIMEouPAT_ENC.CONTACT_DATE. Para a análise inicial, recomenda-se um período de 3 a 6 meses para manter a performance das consultas. - Tipos de atendimento: o script filtra atendimentos de internação e emergência (valores comuns de
ENC_TYPE_Csão 3 e 50, mas confirme emZC_ENC_TYPE). - Tipos de pedido: é necessário personalizar os valores de
ORDER_TYPE_Cpara exames laboratoriais, exames de imagem e consultas, conforme a configuração local de ZC_ORDER_TYPE. - Performance: o script consulta tabelas de alto volume (
ORDER_PROC,CLARITY_ADT). Verifique se há índices adequados ou execute-o fora dos horários de pico.
Consulta de exemplo 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 Pronto para começar?
Comece hoje a transformar suas operações clínicas aplicando este Template aos dados do Epic. Nossa equipe pode ajudar você a conduzir o processo de extração e gerar resultados desde o início.
Otimize hoje a jornada do paciente e reduza o tempo de ciclo
Identifique gargalos clínicos e reduza o tempo de ciclo em 30%.
Não é necessário informar o cartão de crédito... A configuração leva poucos minutos.