Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/hci/rename-id-column' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
TanookiVerde committed Jan 16, 2025
2 parents 8e5bb6b + 3d31137 commit b158866
Show file tree
Hide file tree
Showing 12 changed files with 128 additions and 118 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@ models:
description: >
Tabela com uma visão consolidada dos atendimentos realizados em
estabelecimentos de saúde.
columns:
columns:
- name: id_hci
description: >
Identificador único para o atendimento
data_tests:
- not_null:
name: int_historico_clinico__episodio__vitai__id__not_null
- unique:
name: int_historico_clinico__episodio__vitai__id__unique
- name: paciente
description: >
Informações sobre os pacientes envolvidos no atendimento, incluindo
Expand Down Expand Up @@ -162,9 +170,9 @@ models:
description: >
Informações adicionais sobre o atendimento, como o fornecedor e o
identificador do atendimento.
- name: prontuario.id_atendimento
- name: prontuario.id_prontuario_global
description: |
ID do atendimento.
ID do atendimento utilizado no prontuário do qual ele vem.
data_tests:
- not_null:
name: int_historico_clinico__episodio__vitai__id_episodio__not_null
Expand Down Expand Up @@ -201,12 +209,9 @@ models:
Tabela com uma visão consolidada dos atendimentos realizados em
estabelecimentos de saúde.
columns:
- name: id
- name: id_hci
description: >
Identificador único para o atendimento, composto pelo CNES do
estabelecimento e pelo identificador do atendimento (`gid`).
Utilizado para diferenciar atendimentos entre diferentes
estabelecimentos.
Identificador único para o atendimento
data_tests:
- not_null:
name: int_historico_clinico__episodio__vitacare__id__not_null
Expand Down Expand Up @@ -443,9 +448,12 @@ models:
description: >
Informações adicionais sobre o atendimento, como o fornecedor e o
identificador do atendimento.
- name: prontuario.id_atendimento
- name: prontuario.id_prontuario_global
description: |
ID do atendimento.
ID do atendimento do prontuário do qual ele vem.
Composto pelo CNES do estabelecimento e pelo identificador do atendimento (`gid`).
Utilizado para diferenciar atendimentos entre diferentes
estabelecimentos.
- name: prontuario.fornecedor
description: |
Fornecedor do prontuário.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ with
),
condicoes as (
select distinct
id as fk_atendimento,
id_prontuario_global as fk_atendimento,

json_extract_scalar(condicao_json, "$.cod_cid10") as id,

Expand Down Expand Up @@ -101,7 +101,7 @@ with
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
procedimentos as (
select
id as fk_atendimento,
id_prontuario_global as fk_atendimento,
case
when
json_extract_scalar(procedimentos_json, '$.procedimento_clinico')
Expand Down Expand Up @@ -151,7 +151,7 @@ with
),
prescricoes as (
select
id as fk_atendimento,
id_prontuario_global as fk_atendimento,
replace(
json_extract_scalar(prescricoes_json, "$.cod_medicamento"), "-", ""
) as id,
Expand Down Expand Up @@ -207,7 +207,7 @@ with

medidas_padronizadas as (
select
id as fk_atendimento,
id_prontuario_global as fk_atendimento,
case
when
nome in (
Expand Down Expand Up @@ -324,7 +324,7 @@ with
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
fato_atendimento as (
select
atendimento.id,
atendimento.id_hci,

-- Paciente
atendimento.cpf,
Expand Down Expand Up @@ -391,7 +391,7 @@ with

-- Prontuário
struct(
atendimento.id as id_atendimento, 'vitacare' as fornecedor
atendimento.id_prontuario_global, 'vitacare' as fornecedor
) as prontuario,

-- Metadados
Expand All @@ -408,17 +408,17 @@ with
left join dim_profissional on atendimento.cns_profissional = dim_profissional.pk
left join
dim_condicoes_atribuidas
on atendimento.id = dim_condicoes_atribuidas.fk_atendimento
left join dim_medidas on atendimento.id = dim_medidas.fk_atendimento
on atendimento.id_prontuario_global = dim_condicoes_atribuidas.fk_atendimento
left join dim_medidas on atendimento.id_prontuario_global = dim_medidas.fk_atendimento
left join
dim_procedimentos_realizados
on atendimento.id = dim_procedimentos_realizados.fk_atendimento
on atendimento.id_prontuario_global = dim_procedimentos_realizados.fk_atendimento
left join
dim_prescricoes_atribuidas
on atendimento.id = dim_prescricoes_atribuidas.fk_atendimento
on atendimento.id_prontuario_global = dim_prescricoes_atribuidas.fk_atendimento
),

episodios_validos as (select * from fato_atendimento where id is not null)
episodios_validos as (select * from fato_atendimento where id_hci is not null)

-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
-- Finalização
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ with
boletim as (
select
b.gid,
b.id_hci,
b.gid_paciente,
b.gid_estabelecimento,
estabelecimento_nome,
Expand Down Expand Up @@ -355,6 +356,7 @@ with
exame as (
select
gid,
id_hci,
gid_paciente,
gid_estabelecimento,
estabelecimento_nome,
Expand Down Expand Up @@ -383,7 +385,7 @@ with
)
) as exames_realizados
from exame_dupl
group by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
group by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,19
),
-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-- Montagem do episódio e enriquecimento
Expand Down Expand Up @@ -429,6 +431,7 @@ with
-- Monta base do episódio para ser enriquecida
atendimento_struct as (
select
id_hci,
episodios_distinct.gid as id,
queixa_final.queixa as motivo_atendimento,
episodios_distinct.tipo,
Expand All @@ -450,7 +453,7 @@ with
estabelecimentos.tipo_sms_simplificado as estabelecimento_tipo
) as estabelecimento,
struct(
episodios_distinct.gid as id_atendimento, "vitai" as fornecedor
episodios_distinct.gid as id_prontuario_global, "vitai" as fornecedor
) as prontuario,
episodios_distinct.imported_at,
episodios_distinct.updated_at,
Expand All @@ -465,6 +468,7 @@ with
from
(
select distinct
id_hci,
gid,
gid_estabelecimento,
estabelecimento_nome,
Expand All @@ -490,6 +494,7 @@ with

final as (
select
id_hci,
-- Paciente
atendimento_struct.paciente.cpf as cpf,

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ models:
- name: cadastros_conflitantes_indicador
description:
Flag que informa se o CPF possui cadastros conflitantes, ou seja, um CPF que possui informações de mais de uma pessoa
- name: id_episodio
- name: id_hci
description: |
Fingerprint determinístico para o atendimento.
data_tests:
Expand Down Expand Up @@ -283,7 +283,7 @@ models:
description: >
Informações adicionais sobre o atendimento, como o fornecedor e o
identificador do atendimento.
- name: prontuario.id_atendimento
- name: prontuario.id_prontuario_global
description: |
ID do atendimento.
- name: prontuario.fornecedor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ with
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
merged_data as (
select
id_hci,
cpf as paciente_cpf,
tipo,
subtipo,
Expand Down Expand Up @@ -57,6 +58,7 @@ with
from {{ ref("int_historico_clinico__episodio__vitai") }}
union all
select
id_hci,
cpf as paciente_cpf,
tipo,
subtipo,
Expand Down Expand Up @@ -112,7 +114,7 @@ with
select *, if(deceased.boletim_obito is null, false, true) as obito_indicador
from merged_data_patient
left join
deceased on merged_data_patient.prontuario.id_atendimento = deceased.boletim_obito
deceased on merged_data_patient.prontuario.id_prontuario_global = deceased.boletim_obito

),
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
Expand All @@ -122,37 +124,18 @@ with
select * from {{ref('int_historico_clinico__pacientes_invalidos')}}
),

-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
-- FINGERPRINT: Adding Unique Hashed Field
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
fingerprinted as (
select
-- Encounter Unique Identifier: for testing purposes
{{
dbt_utils.generate_surrogate_key(
[
"prontuario.id_atendimento",
]
)
}} as id_episodio,

-- Encounter Data
merged_data_deceased.*,
from merged_data_deceased
),

deduped as (
select *
from fingerprinted
qualify row_number() over (partition by id_episodio) = 1
from merged_data_deceased
qualify row_number() over (partition by id_hci) = 1
),

-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
-- CID: Add CID summarization
-- -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
eps_cid_subcat as (
select
id_episodio,
deduped.prontuario.id_prontuario_global,
cid.id,
cid.descricao,
cid.situacao,
Expand All @@ -166,7 +149,7 @@ with
),
eps_cid_cat as (
select
id_episodio,
deduped.prontuario.id_prontuario_global,
cid.id,
cid.descricao,
cid.situacao,
Expand All @@ -181,7 +164,7 @@ with

all_cids as (
select
id_episodio,
id_prontuario_global,
array_agg(
struct(
id, descricao, situacao, data_diagnostico, descricao_agg as resumo
Expand All @@ -200,13 +183,13 @@ with
),

final as (
select
select
deduped.id_hci,
deduped.paciente_cpf,
case
when deduped.paciente_cpf in (select cpf from registration_conflict) then true
else false
end as cadastros_conflitantes_indicador,
deduped.id_episodio,
deduped.paciente,
deduped.tipo,
deduped.subtipo,
Expand All @@ -229,7 +212,7 @@ with
cast(deduped.entrada_datahora as date) as data_particao
from deduped
left join all_cids
on all_cids.id_episodio = deduped.id_episodio
on all_cids.id_prontuario_global = deduped.prontuario.id_prontuario_global
)
select *
from final
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ models:
- name: cpf
description: >
Cadastro de Pessoas Físicas do paciente.
- name: id_episodio
- name: id_hci
description: |
Fingerprint determinístico para o atendimento.
- name: entry_datetime
Expand Down
Loading

0 comments on commit b158866

Please sign in to comment.