SQL para o cuidado de saúde

SQL - análise de dados de um serviço de saúde

Isabel Cruz

O primeiro estudo sobre SL tratou de consultas para obter informações sobre o volume de determinados dados do banco consultado, enquanto o segundo texto abordou alguns determinantes sociais como foco das consultas estruturadas. Neste estudo, abordaremos a análise do volume de atendimento em um serviço de emergência, por meio de consulta estruturada (structured query) que pode servir de subsídio para análises correlatas.

Tal como os demais estudos publicados, este estudo tem como referencial a estratégia de saúde digital  (Cruz, 2020), segundo a qual, cabe a enfermeiras(os) e obstetrizes usar dados de uma ampla gama de fontes para criar informações para a enfermagem, seus pacientes/clientes e demais profissionais de saúde e usuários para apoiar o cuidado. Igualmente, com o prontuário eletrônico da pessoa (PEP), ressalta-se a relevância dos dados para a gestão do cuidado de saúde em tempo real. 

Damos continuidade a uma série de publicações que visa incentivar a aquisição de habilidades no sentido de recuperar informações de um banco de dados. A “SQL”( Structured Query Language) é utilizada neste estudo para extrair informações de um banco de dados relacional fictício e, assim, demonstrar sua aplicabilidade para obtenção de informações e respectivas análises sobre pacientes e resultados de saúde.

Os exercícios aqui apresentados foram elaborados por Connoly(2020).

Isto posto, seguem os exercícios.

Observe a cena: 
"Haverá uma reunião do staff e lhe pediram para apresentar uma sinopse dos atendimentos no setor de emergência. Você acessa o banco de dados 'HEALTHCARE' para extrair os dados de interesse, iniciando as consultas para obtenção das informações sobre a população atendida na instituição."

-- Quantos(as) pacientes foram atendidos antes de 2020? 
SELECT COUNT(*) AS ER_VOLUMES
FROM HEALTHCARE.ENCOUNTERS
WHERE START>='2019-01-01'
AND START<'2020-01-01'
AND ENCOUNTERCLASS='emergency';



 

 

 

 

 

 

No ano de 2020, aconteceram 39 atendimentos pela emergência.

Dando continuidade ao nosso exercício, agora interessam os problemas de saúde que deram início ao atendimento.

SELECT CON.DESCRIPTION
,COUNT(*) AS CONDITION_VOLUMES
FROM HEALTHCARE.ENCOUNTERS ENC
LEFT JOIN HEALTHCARE.CONDITIONS CON ON ENC.ID=CON.ENCOUNTER
-- uma união seletiva entre 2 tabelas
WHERE ENC.START>='2020-01-01'
AND ENC.START<'2020-12-31'
AND ENC.ENCOUNTERCLASS='emergency'
GROUP BY CON.DESCRIPTION;


 

 

 

 

 

 

 

 

Não aparece na imagem acima, mas na consulta retornaram 16 registros dem indicação da condição ou diagnóstico. Algo relevante quanto à integridade do banco de dados. 

Agora, interessa uma consulta sobre o tempo médio de permanência do(a) paciente na emergência.

SELECT 
THROUGHPUT.DESCRIPTION
,AVG(THROUGHPUT_IN_MIN) AS THR_AVG
-- função para calcular a média
FROM (
-- este é um exemplo de uma 'inner query'
        SELECT ENC.ID
        ,CON.DESCRIPTION
        ,TIMESTAMPDIFF(MINUTE,ENC.START,ENC.STOP) THROUGHPUT_IN_MIN
-- função para calcular a diferença entre datas
        FROM HEALTHCARE.ENCOUNTERS ENC
        LEFT JOIN HEALTHCARE.CONDITIONS CON ON ENC.ID=CON.ENCOUNTER
        WHERE ENC.START>='2019-01-01'
        AND ENC.START<'2020-01-01'
        AND ENC.ENCOUNTERCLASS='emergency'
) THROUGHPUT
GROUP BY THROUGHPUT.DESCRIPTION;

 Nesta tabela, a consulta também indicou registros nulos para a condição de saúde. É possível criar uma consulta dentro de outra (inner query). Assim como a mesma consulta pode se repetir diversas vezes para fins de monitoramento ou relatório, por exemplo. Há no SQL um recurso para fazer isso criando "VIEWS".

Acrescentando um filtro para identificar quais as condições têm maior tempo de permanência no setor.

SELECT 
THROUGHPUT.DESCRIPTION
,AVG(THROUGHPUT_IN_MIN) AS THR_AVG
FROM (
        SELECT ENC.ID
        ,CON.DESCRIPTION
        ,TIMESTAMPDIFF(MINUTE,ENC.START,ENC.STOP) THROUGHPUT_IN_MIN
        FROM HEALTHCARE.ENCOUNTERS ENC
        LEFT JOIN HEALTHCARE.CONDITIONS CON ON ENC.ID=CON.ENCOUNTER
        WHERE ENC.START>='2019-01-01'
        AND ENC.START<'2020-01-01'
        AND ENC.ENCOUNTERCLASS='emergency' 
) THROUGHPUT WHERE THROUGHPUT_IN_MIN >= 100.0 
-- filtro
GROUP BY THROUGHPUT.DESCRIPTION;

Em 2020, 08 condições mantiveram o(a) paciente por mais de 100 minutos no setor de emergência. Uma informação relevante para a gestão do cuidado de saúde.

Vamos ampliando nossas referências com algumas consultas básicas para um relatório geral. Obviamente precisamos investir na elaboração dos scripts para associair o perfil da clientela. O aprimoramento não para.

Considerações finais

Este estudo de uma série sobre a aplicação da linguagem SQL para alguns casos de interesse. O objetivo é compartilhar estruturas básicas de consultas para a gestão do cuidado de saúde e, especialmente, para o monitoramento da equidade nos resultados. Seguramente a aplicação do SQL pode ser uma ferramenta no cotidiano do trabalho na área da saúde.

Bibliografia

CRUZ, Isabel CF da. The Priority 4 at Brazilian Digital Health Strategy 2020-2028: analysis from the nurse's perspective. Journal of Specialized Nursing Care, [S.l.], v. 12, n. 1, dec. 2020. ISSN ISSN 1983-4152. Available at: <http://www.jsncare.uff.br/index.php/jsncare/article/view/3387/842>. Date accessed: 08 june 2022.

Caruso, G Queremos saber #OndeEstãoDadosLGBTQIA. 2021. Disponível em https://dev.to/basedosdados/queremos-saber-ondeestaodadoslgbtqia-2mmp 

Connolly, M -SQL for Healthcare.2020. Available at https://www.themillennialanalyst.com/

Ozar, B - Designing a Data Model for Gender and Sexuality (Oh And Also, I’m Pansexual). 2022. Disponível em https://www.brentozar.com/archive/2022/05/designing-a-data-model-for-gender-and-sexuality-oh-and-also-im-pansexual/

Apontamentos

  • Não há apontamentos.


BNN - ISSN 1676-4893 

Boletim do Núcleo de Estudos e Pesquisas sobre as Atividades de Enfermagem (NEPAE)e do Núcleo de Estudos sobre Saúde e Etnia Negra (NESEN).