Há um termo popular – Business Intelligence (BI) – que trata do compartilhamento de informações nas organizações, visando a tomada de decisões com base nos seus dados. Neste estudo, exercito a programação com a linguagem SQL (Structured Query Language) para aprender como transformar os dados em informações para o Controle Social – “Citizen Intelligence”.

Vamos aos exercícios da nossa série de estudos sobre SQL para análise dos cuidados de saúde (1, 2, 3).

No banco de dados “healthcare”, qual o perfil dos(as) pacientes quanto à raça/cor?

USE healthcare;
SELECT
RACE AS ‘quesito cor’
, count(race) as ‘N’
FROM patients
GROUP BY race
ORDER BY ‘N’ desc;

quesito corN
white965
native13
asian90
black101
other2
tabela de resultado da consulta

Se o banco de dados fosse a partir do Cadastro Individual SUS, o script da consulta pode ser assim

SELECT
racaCorCidadao AS ‘quesito cor’
, count( racaCorCidadao ) as ‘N’
FROM identificacao_do usuario_cidadao
GROUP BY racaCorCidadao — em “Citizen Intelligence”, ‘group by’ propicia a análise desagregada dos dados de interesse
ORDER BY ‘N’ desc;

No banco de dados “healthcare”, qual o perfil dos(as) pacientes quanto ao sexo?

SELECT
GENDER AS ‘sexo’
, count(gender) as ‘N’
FROM patients
GROUP BY gender
ORDER BY ‘N’ desc;

sexoN
M562
F609
tabela de resultado da consulta

Se o banco de dados fosse a partir do Cadastro Individual SUS, o script da consulta pode ser assim

SELECT
sexoCidadao AS ‘sexo’
, count( sexoCidadao ) as ‘N’
FROM identificacao_do usuario_cidadao
GROUP BY sexoCidadao
ORDER BY ‘N’ desc;

No que se refere à orientação sexual, o script seria assim:

SELECT
orientacaoSexualCidadao AS ‘Orientação Sexual’
, count( orientacaoSexualCidadao ) as ‘N’
FROM informacoes_sociodemograficas
GROUP BY orientacaoSexualCidadao
ORDER BY ‘N’ desc;

No banco de dados “healthcare”, qual grupo populacional apresentou maiores valores da pressão arterial (PA), antes de 2022?

SELECT PAT.RACE AS ‘Quesito Cor
, COUNT(DISTINCT PAT.ID) AS ‘Pacientes (N)’ — função ‘distinct’ evita repetições
FROM HEALTHCARE.OBSERVATIONS AS BP
JOIN HEALTHCARE.PATIENTS PAT ON BP.PATIENT=PAT.ID — foi necessário colher dados em 2 tabelas
WHERE
(
(DESCRIPTION = ‘Diastolic Blood Pressure’ AND VALUE>85) — parênteses para organizar a consulta
OR (DESCRIPTION = ‘Systolic Blood Pressure’ AND VALUE>135)
)
AND DATE <‘2022-01-01’
GROUP BY PAT.RACE;

Quesito CorPaciente (N)
white253
black18
asian23
tabela de retorno da consulta

No banco de dados “healthcare”, quantos procedimentos ou cuidados de saúde foram realizados no período com curso superior a US$ 100? SELECT COUNT(*) AS Registros
FROM
procedures
WHERE BASE_COST > 100;

34639
Registros (N)

No banco de dados “healthcare”, há quantos pacientes únicos na tabela ‘patients’?

SELECT
count(distinct LAST) AS ‘Paciente Único’
FROM patients;

490
paciente único (N)

No banco de dados “healthcare”, há quantos “códigos” na tabela “procedimentos” clínicos agrupados por “razão de código”?

SELECT
REASONCODE
, COUNT(DISTINCT CODE) ‘N CÓDIGO’
FROM procedures
GROUP BY REASONCODE
ORDER BY CODE DESC LIMIT 5;

Reason Code – ProceduresCódigo (N)
678110001191022
942600042
4241320002
3634060052
4444700011
Tabela que retorna os 5 primeiros registros, em 42, da consulta

No banco de dados “healthcare”, há quantos(as) profissionais de saúde especializados em clínica geral e agrupados por gênero?

SELECT
count(DISTINCT NAME)
, gender
FROM providers
WHERE SPECIALITY = ‘General Practice’
GROUP BY gender;

Profissionais (N)Sexo
536F
516M
tabela de retorno da consulta

Para o momento é só. Julgo que com estes exercícios é possível entender as oportunidades, assim como os desafios da saúde digital com o uso de dados do mundo real, isto é, do prontuário eletrônico da pessoa (PEP), por exemplo, para o nosso julgamento clínico e consequente tomada de decisões, preferencialmente junto com o(a) paciente.

Como citar:

Cruz, ICF da Structured Query Language (SQL): exercitando “Citizen Intelligence”. NEPAE/UFF. Niterói, julho, 2022 Disponível em https://nepae.uff.br/?p=2485

Translate »
Skip to content