Seu Template de dados da jornada do paciente
Seu Template de dados da jornada do paciente
- Atributos clínicos recomendados
- Marcos essenciais do processo
- Orientações para extração de dados do MEDITECH
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 uma atividade ocorreu. Ele é usado para ordenar os eventos cronologicamente e calcular a duração entre as etapas do processo. Datas e horas com alta precisão são necessárias para analisar corretamente os tempos de espera, como o intervalo entre a triagem e a avaliação ou o tempo de processamento dos resultados de exames diagnósticos. Por que isso importa Necessário para ordenar os eventos e calcular os tempos de ciclo e o fluxo de pacientes. Onde encontrar Colunas de data e hora da transação nas tabelas de origem. Exemplos 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| Episódio do paciente PatientEpisode | Identificador único de um período específico de cuidado ou atendimento do paciente. | ||
| Descrição O episódio do paciente funciona como o identificador central do caso na análise do processo. Ele reúne em uma única jornada todos os eventos clínicos, administrativos e financeiros relacionados a uma internação ou consulta ambulatorial. Nos sistemas MEDITECH, esse identificador costuma corresponder ao número da conta ou ao ID do atendimento. Esse atributo é fundamental para reconstruir a jornada do paciente, do registro à alta, calcular o tempo de internação e analisar os protocolos clínicos. Por que isso importa É a chave obrigatória do caso, necessária para vincular eventos distintos a uma única instância do processo. Onde encontrar Módulo de admissões ou registro do MEDITECH; geralmente, o campo Account Number. Exemplos V100938475AC29384755E993847211O229384711 | |||
| Nome da atividade ActivityName | A ação clínica ou administrativa específica realizada. | ||
| Descrição Este atributo representa o nome do evento ou da tarefa que ocorre durante a jornada do paciente. Ele registra etapas específicas, como 'Paciente registrado', 'Medicamento administrado' ou 'Ordem de alta registrada'. Identificar corretamente as atividades é essencial para mapear o fluxo do processo. Esses valores costumam ser obtidos de códigos de transação, status de solicitações ou intervenções registradas no prontuário eletrônico. Por que isso importa Define as etapas do processo e é necessário para visualizar o mapa do processo. Onde encontrar Derivado de vários logs de transações (solicitações OE, intervenções NUR e eventos ADM). Exemplos Paciente registradoTriagem concluídaMedicamento administradoResultado do exame diagnóstico validado | |||
| Sistema de origem SourceSystem | Identificador do sistema de onde os dados vieram. | ||
| Descrição Identifica a instância do MEDITECH ou o módulo específico de onde os dados dos eventos foram extraídos. Em ambientes com vários hospitais, ajuda a distinguir dados de diferentes unidades ou versões do sistema. Esse atributo é estático quando a extração vem de um único sistema, mas é essencial para combinar dados e criar uma visão unificada da rede hospitalar. Por que isso importa Garante a linhagem e a rastreabilidade dos dados em ambientes com vários sistemas. Onde encontrar Definido durante a extração ou na configuração do ID do sistema. Exemplos MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| Última atualização dos dados LastDataUpdate | Data e hora da última extração ou atualização dos dados. | ||
| Descrição Indica quando o registro foi processado pela última vez ou carregado na ferramenta de Process Mining. Isso ajuda a auditar a atualização dos dados e a garantir que a análise reflita o estado mais recente do sistema. É diferente do horário do evento, pois representa o momento técnico do fluxo de dados, e não o momento do evento clínico. Por que isso importa Essencial para a governança dos dados e para garantir que a análise use dados atualizados. Onde encontrar Data do sistema no momento da execução do ETL. Exemplos 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| Departamento hospitalar HospitalDepartment | Unidade ou departamento específico onde a atividade ocorreu. | ||
| Descrição Identifica a unidade funcional responsável pela atividade, como pronto-socorro, radiologia, UTI ou enfermaria geral. Esse atributo é essencial para o Dashboard de produtividade dos recursos por departamento. Ele permite segmentar as métricas de performance por unidade e ajuda a identificar gargalos nas transferências internas e no uso de recursos. Por que isso importa Essencial para a análise organizacional e a identificação de gargalos em unidades específicas. Onde encontrar Campos de localização ou departamento nas tabelas de transações. Exemplos Pronto-socorroRadiologiaUnidade de terapia intensivaEnfermaria cirúrgica 3 | |||
| Destino após a alta DischargeDisposition | Destino ou situação do paciente após a alta. | ||
| Descrição Indica para onde o paciente foi após o episódio, como para casa, uma instituição de cuidados especializados, atendimento domiciliar ou óbito. É uma métrica de resultado importante para o Dashboard de otimização do planejamento de alta. A análise ajuda a identificar se atrasos na obtenção de vagas para cuidados pós-agudos estão prolongando o tempo de permanência. Por que isso importa Métrica de resultado importante para analisar o tempo de permanência e o risco de reinternação. Onde encontrar Telas de codificação da alta ou de cadastro. Exemplos Alta para casaTransferência para hospital geral de curta permanênciaÓbitoSaída contra recomendação médica | |||
| Diagnóstico principal PrimaryDiagnosis | Principal condição médica identificada no episódio do paciente. | ||
| Descrição Contém o código ou a descrição da CID-10 referente ao principal motivo do atendimento. É a base da análise de variantes do percurso clínico. Ao agrupar os casos pelo diagnóstico principal, gestores clínicos podem comparar os percursos de tratamento realizados com o percurso clínico ideal para cada condição. Por que isso importa Essencial para agrupar casos e analisar percursos clínicos. Onde encontrar Prontuários médicos ou módulo de codificação clínica. Exemplos J18.9 - PneumoniaI21.9 - Infarto agudo do miocárdioS72.0 - Fratura do fêmur | |||
| É reinternação IsReadmission | Indicador de que o episódio ocorreu em até 30 dias após uma alta anterior. | ||
| Descrição Atributo booleano que retorna verdadeiro quando a data de cadastro atual do paciente está dentro de 30 dias da data de alta de um episódio anterior. Isso dá suporte ao Dashboard de reinternações e qualidade do atendimento. A identificação de reinternações permite que analistas consultem o episódio anterior para encontrar falhas no planejamento da alta ou no acompanhamento do paciente. Por que isso importa Métrica de qualidade crítica, com impacto no reembolso e nos resultados dos pacientes. Onde encontrar Calculado comparando o StartTime atual com o Case EndTime anterior para o mesmo MedicalRecordNumber. Exemplos truefalse | |||
| Nível de gravidade na triagem TriageAcuityLevel | Classificação da gravidade atribuída ao paciente durante a triagem. | ||
| Descrição Indica a urgência do quadro do paciente, geralmente em uma escala (por exemplo, de 1 a 5, em que 1 representa um caso crítico). Esse atributo é central para a análise do fluxo do pronto-socorro. Ele permite que analistas relacionem o tempo de espera à gravidade do quadro e verifiquem se os pacientes em estado mais crítico estão sendo priorizados adequadamente. Por que isso importa Essencial para analisar a priorização e a Conformidade com os padrões de segurança no pronto-socorro. Onde encontrar Telas de avaliação da enfermagem no pronto-socorro ou na triagem. Exemplos 1 - Reanimação2 - Emergência3 - Urgente4 - Menos urgente | |||
| Número do prontuário médico MedicalRecordNumber | Identificador único do paciente em todas as consultas. | ||
| Descrição O número do prontuário médico (MRN) identifica cada paciente de forma única na organização de saúde, diferentemente do ID específico de cada episódio. Ele permite que analistas relacionem vários episódios do mesmo paciente ao longo do tempo. Esse atributo é essencial para o Dashboard de reinternações e qualidade do atendimento, que permite identificar pacientes que voltam ao hospital em até 30 dias após a alta. Por que isso importa Permite analisar vários episódios e criar visões centradas no paciente. Onde encontrar Índice mestre de pacientes ou tabela de cadastro. Exemplos MRN-100293MRN-55928388291002 | |||
| Profissional responsável pelo atendimento AttendingProvider | Profissional de saúde responsável principalmente pela atividade. | ||
| Descrição Registra o nome ou ID do médico, enfermeiro ou técnico que executa a tarefa ou acompanha o atendimento. Esse atributo ajuda a compor o Dashboard de velocidade de elaboração do plano de tratamento, atribuindo métricas de velocidade e eficiência a profissionais ou funções específicas. Ele permite analisar os recursos para equilibrar a carga de trabalho e identificar necessidades de treinamento entre os profissionais de saúde. Por que isso importa Permite analisar a performance dos recursos e equilibrar a carga de trabalho. Onde encontrar Campos de profissional responsável ou usuário nos registros de atividades. Exemplos Dr. SmithEnfermeira JonesTécnico Adams | |||
| Tipo de paciente PatientType | Classificação da consulta do paciente (por exemplo, internação, atendimento ambulatorial ou emergência). | ||
| Descrição Classifica a natureza da visita ao hospital. Os valores comuns incluem internação, atendimento ambulatorial, emergência ou observação. Essa classificação é fundamental para filtrar e comparar processos, pois o padrão de atendimento e a duração esperada variam bastante conforme o tipo. Esse campo ajuda no Dashboard de otimização do planejamento de alta, segmentando as expectativas de tempo de permanência. Por que isso importa Segmentação fundamental para comparar processos (internação e atendimento ambulatorial). Onde encontrar Tabelas de internações ou consultas (por exemplo, AdmVisits.Status). Exemplos InternaçãoEmergênciaCirurgia ambulatorialObservação | |||
| Categoria do pedido OrderCategory | Classificação dos pedidos clínicos (por exemplo, laboratório, radiologia ou consulta). | ||
| Descrição Agrupa os pedidos em categorias mais amplas, como laboratório, radiologia, nutrição ou consulta. É essencial para o Dashboard de tempo de resposta dos serviços de diagnóstico. Permite separar os fluxos de trabalho para analisar o tempo de ciclo de exames de imagem e de sangue, que costumam ter gargalos diferentes. Por que isso importa Segmenta os fluxos de trabalho de diagnóstico e tratamento. Onde encontrar Campos de categoria do módulo de entrada de pedidos (OE). Exemplos LaboratórioRadiologiaEnfermagemFarmácia | |||
| É uma violação de conformidade IsAdherenceViolation | Indicador de que o caso se desviou do percurso clínico padrão. | ||
| Descrição Indicador booleano definido como verdadeiro quando a sequência de atividades não corresponde ao modelo de referência definido para o diagnóstico principal do paciente. Isso dá suporte à análise de variantes do percurso clínico. Permite filtrar rapidamente os casos fora de Conformidade e investigar por que o padrão de atendimento não foi seguido. Por que isso importa Identifica rapidamente desvios e variações no processo. Onde encontrar Calculado por algoritmos de verificação de Conformidade. Exemplos truefalse | |||
| Nome do medicamento MedicationName | Nome do medicamento administrado. | ||
| Descrição Registra o medicamento específico associado aos eventos de administração de medicamentos. É necessário para o Dashboard de Conformidade na administração de medicamentos. Ele permite que a liderança da enfermagem verifique se medicamentos de alto risco ou com horário crítico, como antibióticos para sepse, são administrados dentro do período terapêutico adequado. Por que isso importa Necessário para análises de Conformidade clínica e segurança. Onde encontrar Módulos de farmácia (PHA) ou de verificação à beira do leito (BMV). Exemplos ParacetamolVancomicinaHeparinaInsulina | |||
| Origem da internação AdmitSource | De onde o paciente veio (por exemplo, de casa, transferência ou encaminhamento). | ||
| Descrição Descreve a origem da internação do paciente, como encaminhamento médico, pronto-socorro ou transferência de outro hospital. Isso dá contexto sobre como os pacientes entram no sistema. É útil para entender os padrões de entrada e o impacto deles na análise do fluxo do pronto-socorro e no planejamento de recursos. Por que isso importa Dá contexto sobre a entrada de pacientes e os canais de demanda. Onde encontrar Dados de cadastro de internações. Exemplos Pronto-socorroEncaminhamento de clínicaTransferência de instituição de cuidados especializados | |||
| Tempo de espera na triagem TriageWaitTime | Intervalo entre o cadastro e a conclusão da triagem. | ||
| Descrição Duração calculada entre os eventos de cadastro do paciente e conclusão da triagem. Esse dado alimenta diretamente o KPI de tempo médio de atendimento na triagem. O acompanhamento dessa duração ajuda os gestores do pronto-socorro a ajustar as equipes nos horários de pico e a manter os padrões de segurança dos pacientes. Por que isso importa Métrica operacional importante para prontos-socorros. Onde encontrar Diferença calculada entre os horários de atividades específicas. Exemplos 15 minutos1 hora e 20 minutos | |||
| Valor cobrado ChargeAmount | Valor financeiro associado a uma atividade ou serviço específico. | ||
| Descrição Representa o custo ou valor cobrado por um evento específico, como um exame ou a diária de um quarto. Embora seja principalmente financeiro, está relacionado à intensidade do uso de recursos. Quando agregado, ajuda a entender o impacto financeiro das variações do processo, embora o foco principal da visão solicitada seja o fluxo clínico. Por que isso importa Acrescenta uma dimensão financeira à análise de processos. Onde encontrar Módulo de faturamento ou BAR (faturamento e contas a receber). Exemplos 150.001200.5045.00 | |||
Atividades da jornada do paciente
| Atividade | Descrição | ||
|---|---|---|---|
| Diagnóstico documentado | Momento em que um profissional de saúde registra no prontuário do paciente um diagnóstico codificado (ICD-10). Isso costuma acionar protocolos clínicos específicos. | ||
| Por que isso importa Permite a 'Análise de variações nos protocolos clínicos' ao categorizar o caso. É essencial para agrupar pacientes e compará-los. Onde encontrar MEDITECH ABS (Abstracting) ou Medical Records. Registrado quando os códigos de diagnóstico são associados à conta. Coleta Registrado quando a transação Diagnosis Enter é executada Tipo de evento explicit | |||
| Medicamento administrado | Registra a administração efetiva do medicamento ao paciente pela equipe de enfermagem. Geralmente, o registro é feito pela leitura do código de barras à beira do leito. | ||
| Por que isso importa Dá suporte à análise de 'Conformidade na administração de medicamentos'. Identifica riscos à segurança e interrupções no fluxo de trabalho das unidades de enfermagem. Onde encontrar MEDITECH PHA (Pharmacy) ou eMAR (Electronic Medication Administration Record). Campo 'AdminDateTime' no histórico de administração. Coleta Registrado quando a transação Med Admin é executada Tipo de evento explicit | |||
| Ordem de alta registrada | Data e hora em que o médico assina a ordem que autoriza a alta do paciente. Marca o início da etapa de planejamento da alta. | ||
| Por que isso importa Define a linha de base do 'Tempo de planejamento da alta'. O intervalo entre esse momento e a saída efetiva representa uma ineficiência operacional. Onde encontrar MEDITECH OE (Order Entry). Filtre Orders por Category = Discharge. Coleta Registrado quando a transação Order Enter é executada Tipo de evento explicit | |||
| Paciente recebeu alta | Encerramento administrativo do atendimento. O paciente já saiu fisicamente e o leito foi liberado. | ||
| Por que isso importa Marca o fim formal do processo. É usado para calcular o tempo final de internação e definir o período de 30 dias para reinternação. Onde encontrar MEDITECH ADM (Admissions). Campo 'DischargeDateTime' no registro do atendimento. Coleta Registrado quando a transação Discharge Patient é executada Tipo de evento explicit | |||
| Paciente registrado | Este evento marca a criação administrativa do episódio ou registro de atendimento do paciente no sistema. Ele registra o primeiro ponto de entrada no módulo MEDITECH ADM (Admissions). | ||
| Por que isso importa Define o início da jornada do paciente e serve de base para calcular o tempo de ciclo. É essencial para calcular o tempo total de internação. Onde encontrar Módulo MEDITECH ADM. A informação vem da tabela 'Admissions', especificamente do campo 'AdmitDateTime' ou da data e hora de criação do log de transações. Coleta Registrado quando a transação New Visit é executada Tipo de evento explicit | |||
| Paciente transferido | Indica a movimentação física do paciente de um local, como unidade, quarto ou leito, para outro. Acompanha o fluxo pelo hospital. | ||
| Por que isso importa Essencial para identificar 'Gargalos nas transferências internas'. Tempos elevados de transferência indicam disputa por recursos ou atrasos no transporte de pacientes. Onde encontrar MEDITECH ADM (Admissions). Registrado nos logs de transações 'Location History' ou 'RoomBed'. Coleta Registrado quando a transação Transfer Patient é executada Tipo de evento explicit | |||
| Resultado do exame diagnóstico validado | Indica que um exame diagnóstico, laboratorial ou radiológico, foi realizado e que um técnico ou radiologista validou os resultados. Esse evento encerra o ciclo da solicitação do exame. | ||
| Por que isso importa Marca o fim do 'Tempo de processamento dos serviços de diagnóstico'. É essencial para analisar gargalos nos departamentos de apoio. Onde encontrar Módulos MEDITECH LAB ou ITS (Imaging and Therapeutic Services). Registrado quando o status do resultado muda para Verified ou Signed. Coleta Registrado quando o campo de status muda para Verified Tipo de evento explicit | |||
| Solicitação registrada | Registra a solicitação de um serviço, medicamento ou exame diagnóstico feita por um profissional de saúde. Esse evento dá início às atividades clínicas seguintes. | ||
| Por que isso importa Define a linha de base do KPI 'Tempo de processamento dos serviços de diagnóstico'. A comparação com o tempo de execução ajuda a identificar atrasos na prestação do serviço. Onde encontrar Módulo MEDITECH OE (Order Entry). Registrado na tabela 'OeOrders', usando o campo Order Date/Time. Coleta Registrado quando a transação Order Enter é executada Tipo de evento explicit | |||
| Triagem concluída | Indica a conclusão da avaliação inicial de enfermagem no pronto-socorro. Essa etapa define o nível de acuidade e a pontuação de gravidade do paciente. | ||
| Por que isso importa Essencial para o Dashboard de análise do fluxo do pronto-socorro, que mede o fluxo de pacientes e os tempos de espera. Onde encontrar Módulo MEDITECH EDM (Emergency Department Management). Derivado de mudanças de status no rastreador EDM ou da data e hora do documento de avaliação de triagem. Coleta Registrado quando o campo de status muda para Triaged Tipo de evento explicit | |||
| Amostra coletada | Marca a coleta física de uma amostra biológica para análise laboratorial. Essa atividade conecta a solicitação ao processamento. | ||
| Por que isso importa Etapa detalhada que costuma causar atrasos no ciclo de diagnóstico. Ajuda a diferenciar atrasos da equipe de enfermagem dos atrasos do laboratório. Onde encontrar Módulo MEDITECH LAB. Geralmente registrado quando um flebotomista lê o código de barras ou atualiza o status da amostra para Collected. Coleta Registrado quando a transação Collect Specimen é executada Tipo de evento explicit | |||
| Consulta concluída | Conclusão da avaliação do especialista. Muitas vezes, é inferida pelo registro de um tipo específico de documento, como 'Cardiology Consult Note'. | ||
| Por que isso importa Marca o fim da medição do tempo de resposta do especialista. É essencial para garantir a continuidade oportuna do cuidado. Onde encontrar MEDITECH PCM (Provider Order Management) ou EMR. Inferido pelas datas e horas de criação de documentos com títulos específicos. Coleta Compare o campo de status antes e depois Tipo de evento inferred | |||
| Consulta de acompanhamento agendada | Agendamento de uma consulta futura para o paciente. Essa atividade contribui para a continuidade do cuidado após a alta. | ||
| Por que isso importa Dá suporte à análise de 'Agendamento de consultas de acompanhamento'. Está associado a taxas menores de reinternação. Onde encontrar MEDITECH SCH (Scheduling). Inferido ao vincular um novo registro de Appointment, criado próximo à data da alta, ao ID do paciente. Coleta Derivado da comparação entre os campos Appointment Created Date e Discharge Date Tipo de evento inferred | |||
| Plano de cuidados iniciado | Representa a criação ou atribuição de um plano de cuidados específico, de enfermagem ou interdisciplinar. Corresponde ao conceito de 'Plano de tratamento elaborado'. | ||
| Por que isso importa Mede a 'Velocidade de elaboração do plano de tratamento'. Atrasos nessa etapa podem indicar lacunas na tomada de decisões clínicas. Onde encontrar MEDITECH PCS (Patient Care System) ou Care Manager. Data e hora em que um plano de cuidados padrão é aplicado ao paciente. Coleta Registrado quando a transação Care Plan Add é executada Tipo de evento explicit | |||
| Solicitação de consulta enviada | Tipo específico de solicitação para obter a opinião de um especialista. Esse evento inicia a contagem do tempo no Dashboard de 'Resposta à consulta com especialista'. | ||
| Por que isso importa Identifica gargalos na coordenação do cuidado multidisciplinar. Tempos de espera elevados nessa etapa prolongam a internação. Onde encontrar MEDITECH OE (Order Entry). Identificado filtrando 'OeOrders' por Category = Consult. Coleta Registrado quando a transação Order Enter é executada Tipo de evento explicit | |||
Guias de extração
Etapas
Identifique o servidor do repositório de dados: localize a instância do Microsoft SQL Server que hospeda o repositório de dados (DR) do MEDITECH. Ela é diferente do banco de dados transacional M-AT ou do banco baseado em arquivos. Você precisará de credenciais somente leitura, geralmente de uma conta de serviço.
Determine a versão do esquema: as estruturas do DR do MEDITECH variam um pouco entre Magic, Client/Server (6.x) e Expanse. A consulta abaixo usa convenções de nomenclatura comuns (por exemplo, AdmVisits, OeOrders). Confira os nomes das tabelas no Object Explorer do SQL Server Management Studio (SSMS) local.
Defina o escopo: identifique a tabela principal das visitas dos pacientes. Ela costuma se chamar AdmVisits, RegAcct ou AbstractData, dependendo da configuração do seu DR. A consulta usa AdmVisits como referência para o episódio do paciente.
Prepare o ambiente SQL: abra o SSMS e conecte-se ao DR. Abra uma nova janela de consulta e confirme que você está usando o banco de dados correto, geralmente chamado livedb ou algo semelhante.
Configure os parâmetros: no script SQL fornecido, substitua os marcadores de posição dos períodos (por exemplo, '2023-01-01') e os identificadores das unidades, caso o DR hospede vários locais.
Execute a extração: execute o script T-SQL completo. Ele usa Common Table Expressions (CTEs) para definir primeiro a população de interesse e, em seguida, combinar várias fontes de dados com UNION ALL para criar um Event Log padronizado.
Trate atributos NULL: a consulta inclui uma lógica para lidar com possíveis valores NULL nos registros de data e hora (usando COALESCE quando apropriado) e verifica se as chaves essenciais para junção (SourceID/VisitID) estão preenchidas.
Verifique os dados de triagem e emergência: o MEDITECH armazena os dados do pronto-socorro em módulos específicos. Se você estiver analisando fluxos de trabalho de emergência, confirme se as tabelas EdVisits ou NurInterventions contêm dados.
Valide as categorias de pedidos: a consulta separa pedidos gerais, consultas e pedidos de alta com base em URNs ou mnemônicos de categoria. Talvez seja necessário ajustar as cláusulas WHERE para corresponder ao dicionário de mnemônicos específico da sua unidade.
Exporte os dados: quando os resultados forem exibidos, clique com o botão direito na grade de resultados do SSMS e selecione Save Results As CSV. Verifique se os cabeçalhos estão incluídos.
Faça a formatação final: abra o CSV e confirme se as datas seguem o padrão ISO 8601 (YYYY-MM-DD HH:MM:SS) antes de importar os dados para o ProcessMind.
Configuração
- Acesso ao banco de dados: requer permissões db_datareader no banco SQL do DR do MEDITECH.
- Período: recomenda-se extrair dados de pacientes que receberam alta nos últimos 3 a 6 meses para garantir que os ciclos estejam completos.
- Filtro por unidade: se o DR contiver dados de várias unidades, filtre a CTE BaseVisits por FacilityID ou SourceSystemID.
- Definição do episódio: o script usa o VisitID exclusivo, também chamado de número da conta ou do episódio, como ID do caso.
- Performance: a consulta usa uma CTE de referência para limitar o intervalo da busca. Para obter a melhor performance, verifique se há índices em AdmitDate e DischargeDate na tabela AdmVisits.
- Latência: as transferências do repositório de dados podem ter latência de 15 minutos a 24 horas, dependendo da configuração da unidade. Confira o registro de data e hora de LastDataUpdate.
a Consulta de exemplo sql
/* MEDITECH Data Repository T-SQL Extraction for ProcessMind */
/* Process: Patient Journey */
/* Dialect: T-SQL */
WITH BaseVisits AS (
/* Define the population: Discharged patients within a date range */
SELECT
V.VisitID,
V.PatientID,
V.AccountNumber AS MedicalRecordNumber,
V.AdmitDateTime,
V.DischargeDateTime,
V.FacilityID,
V.PatientType,
V.AttendingProviderID,
V.DischargeDisposition,
NULLIF(DATEDIFF(MINUTE, V.AdmitDateTime, V.DischargeDateTime), 0) / 1440.0 AS LengthOfStay,
/* Flag readmissions logic would go here, simplified as 0 for base script */
0 AS IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmVisits] V
WHERE
V.DischargeDateTime >= '2023-01-01'
AND V.DischargeDateTime < '2023-04-01'
AND V.Status = 'DIS' /* Discharged Status */
),
PatientDiagnoses AS (
/* Helper CTE for Primary Diagnosis to avoid duplicates in joins */
SELECT
D.VisitID,
MAX(D.ICDCode) AS PrimaryDiagnosis
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] D
WHERE
D.Rank = 1 /* Primary Diagnosis Rank */
GROUP BY
D.VisitID
),
TriageData AS (
/* Helper CTE for Triage Acuity */
SELECT
T.VisitID,
MAX(T.AcuityLevel) AS TriageAcuityLevel
FROM
[YourDatabaseName].[dbo].[EdTriage] T
GROUP BY
T.VisitID
)
/* 1. Patient Registered */
SELECT
V.VisitID AS PatientEpisode,
'Patient Registered' AS ActivityName,
V.AdmitDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.AdmitDateTime IS NOT NULL
UNION ALL
/* 2. Triage Completed */
SELECT
V.VisitID AS PatientEpisode,
'Triage Completed' AS ActivityName,
ED.TriageDateTime AS EventTimestamp,
'MEDITECH_ED' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Emergency Department' AS HospitalDepartment,
ED.TriageNurseID AS AttendingProvider,
V.PatientType,
ED.AcuityLevel AS TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[EdTriage] ED
INNER JOIN BaseVisits V ON ED.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
WHERE
ED.TriageDateTime IS NOT NULL
UNION ALL
/* 3. Order Placed (General) */
SELECT
V.VisitID AS PatientEpisode,
'Order Placed' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category NOT IN ('CONSULT', 'DISCHARGE') /* Exclude specific types handled elsewhere */
UNION ALL
/* 4. Specimen Collected */
SELECT
V.VisitID AS PatientEpisode,
'Specimen Collected' AS ActivityName,
L.CollectionDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
L.CollectedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabSpecimens] L
INNER JOIN BaseVisits V ON L.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
L.CollectionDateTime IS NOT NULL
UNION ALL
/* 5. Diagnostic Result Verified */
SELECT
V.VisitID AS PatientEpisode,
'Diagnostic Result Verified' AS ActivityName,
R.VerifiedDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
R.VerifiedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabResults] R
INNER JOIN BaseVisits V ON R.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
R.VerifiedDateTime IS NOT NULL
UNION ALL
/* 6. Diagnosis Documented */
SELECT
V.VisitID AS PatientEpisode,
'Diagnosis Documented' AS ActivityName,
DX.EntryDateTime AS EventTimestamp,
'MEDITECH_ABS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
DX.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] DX
INNER JOIN BaseVisits V ON DX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
DX.EntryDateTime IS NOT NULL
UNION ALL
/* 7. Care Plan Initiated */
SELECT
V.VisitID AS PatientEpisode,
'Care Plan Initiated' AS ActivityName,
N.CreateDateTime AS EventTimestamp,
'MEDITECH_NUR' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
N.NurseUnit AS HospitalDepartment,
N.NurseID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[NurPlan] N
INNER JOIN BaseVisits V ON N.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
N.CreateDateTime IS NOT NULL
UNION ALL
/* 8. Medication Administered */
SELECT
V.VisitID AS PatientEpisode,
'Medication Administered' AS ActivityName,
M.AdminDateTime AS EventTimestamp,
'MEDITECH_PHA' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
M.AdminLocation AS HospitalDepartment,
M.AdministeredBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[PhaMedAdmin] M
INNER JOIN BaseVisits V ON M.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
M.Status = 'ADMINISTERED'
UNION ALL
/* 9. Consult Request Sent */
SELECT
V.VisitID AS PatientEpisode,
'Consult Request Sent' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
UNION ALL
/* 10. Consultation Completed */
SELECT
V.VisitID AS PatientEpisode,
'Consultation Completed' AS ActivityName,
O.CompletedDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
AND O.Status = 'COMPLETED'
AND O.CompletedDateTime IS NOT NULL
UNION ALL
/* 11. Patient Transferred */
SELECT
V.VisitID AS PatientEpisode,
'Patient Transferred' AS ActivityName,
TX.TransferDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
TX.ToLocation AS HospitalDepartment,
NULL AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmRoomTx] TX
INNER JOIN BaseVisits V ON TX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
TX.TransferDateTime IS NOT NULL
UNION ALL
/* 12. Discharge Order Written */
SELECT
V.VisitID AS PatientEpisode,
'Discharge Order Written' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'DISCHARGE'
OR O.Mnemonic LIKE '%DISCHARGE%'
UNION ALL
/* 13. Patient Discharged */
SELECT
V.VisitID AS PatientEpisode,
'Patient Discharged' AS ActivityName,
V.DischargeDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.DischargeDateTime IS NOT NULL
UNION ALL
/* 14. Follow-up Booked */
SELECT
V.VisitID AS PatientEpisode,
'Follow-up Booked' AS ActivityName,
S.BookDateTime AS EventTimestamp,
'MEDITECH_SCH' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
S.ApptDepartment AS HospitalDepartment,
S.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[SchAppt] S
INNER JOIN BaseVisits V ON S.PatientID = V.PatientID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
S.BookDateTime > V.AdmitDateTime
AND S.BookDateTime <= DATEADD(day, 30, V.DischargeDateTime) /* Logic to link appt to episode */
AND S.Status NOT IN ('CANCELLED', 'NOSHOW'); Pronto para começar?
Comece a transformar suas operações clínicas aplicando este Template aos seus dados do MEDITECH. Nossa equipe pode ajudar você a aprimorar a extração de dados e aumentar a eficiência hospitalar.
Otimize a jornada do paciente e reduza atrasos agora
Reduza o tempo de ciclo em 30% e aumente a eficiência hospitalar
Não é necessário cartão de crédito. Comece em poucos minutos.