-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #561 from basedosdados/feat/br_ms_sih
[dbt]: add `br_ms_sih` models
- Loading branch information
Showing
5 changed files
with
290 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
models/br_bd_diretorios_brasil/br_bd_diretorios_brasil__cbo_2002.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{{ | ||
config( | ||
alias="cbo_2002", | ||
schema="br_bd_diretorios_brasil", | ||
materialized="table", | ||
) | ||
}} | ||
|
||
|
||
select | ||
safe_cast(cbo_2002 as string) cbo_2002, | ||
safe_cast(descricao as string) descricao, | ||
safe_cast(familia as string) familia, | ||
safe_cast(descricao_familia as string) descricao_familia, | ||
safe_cast(subgrupo as string) subgrupo, | ||
safe_cast(initcap(descricao_subgrupo) as string) descricao_subgrupo, | ||
safe_cast(subgrupo_principal as string) subgrupo_principal, | ||
safe_cast( | ||
initcap(descricao_subgrupo_principal) as string | ||
) descricao_subgrupo_principal, | ||
safe_cast(grande_grupo as string) grande_grupo, | ||
safe_cast(initcap(descricao_grande_grupo) as string) descricao_grande_grupo | ||
from `basedosdados-staging.br_bd_diretorios_brasil_staging.cbo_2002` as t |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
{{ | ||
config( | ||
alias="servicos_profissionais", | ||
schema="br_ms_sih", | ||
materialized="incremental", | ||
partition_by={ | ||
"field": "ano", | ||
"data_type": "int64", | ||
"range": {"start": 2005, "end": 2024, "interval": 1}, | ||
}, | ||
cluster_by=["mes", "sigla_uf"], | ||
) | ||
}} | ||
|
||
select | ||
safe_cast(ano as int64) ano, | ||
safe_cast(mes as int64) mes, | ||
safe_cast(sigla_uf as string) sigla_uf, | ||
safe_cast(sp_aa as int64) ano_internacao, | ||
safe_cast(sp_mm as int64) mes_internacao, | ||
safe_cast( | ||
format_date('%Y-%m-%d', safe.parse_date('%Y%m%d', sp_dtinter)) as date | ||
) data_entrada_internacao, | ||
safe_cast( | ||
format_date('%Y-%m-%d', safe.parse_date('%Y%m%d', sp_dtsaida)) as date | ||
) data_saida_iternacao, | ||
safe_cast(id_municipio as string) id_municipio_estabelecimento_aih, | ||
safe_cast(sp_m_pac as string) id_municipio_paciente, | ||
safe_cast(sp_gestor as string) id_gestor, | ||
safe_cast(sp_cnes as string) id_estabelecimento_cnes, | ||
safe_cast(sp_naih as string) id_aih, | ||
safe_cast(sp_procrea as string) id_procedimento_principal, | ||
safe_cast(serv_cla as string) tipo_servico, | ||
safe_cast(sp_cpfcgc as string) id_prestador_servico, | ||
safe_cast(sp_atoprof as string) id_procedimento_secundario, | ||
safe_cast(sp_pf_cbo as string) cbo_2002_profissional, | ||
safe_cast(ltrim(sp_qt_proc) as int64) quantidade_procedimentos, | ||
safe_cast( | ||
trim( | ||
case when length(trim(sp_cidpri)) = 3 then sp_cidpri else null end | ||
) as string | ||
) id_cid_principal, | ||
safe_cast( | ||
trim( | ||
case | ||
when length(trim(sp_cidpri)) = 4 and sp_cidpri != '0000' | ||
then sp_cidpri | ||
when | ||
length(trim(sp_cidpri)) = 3 | ||
and sp_cidpri in ( | ||
select subcategoria | ||
from `basedosdados.br_bd_diretorios_brasil.cid_10` | ||
where length(subcategoria) = 3 | ||
) | ||
then sp_cidpri | ||
else null | ||
end | ||
) as string | ||
) as id_cid_principal_subcategoria, | ||
safe_cast( | ||
trim( | ||
case when length(trim(sp_cidsec)) = 3 then sp_cidsec else null end | ||
) as string | ||
) id_cid_secundario, | ||
safe_cast( | ||
trim( | ||
case | ||
when length(trim(sp_cidsec)) = 4 and sp_cidsec != '0000' | ||
then sp_cidsec | ||
when | ||
length(trim(sp_cidsec)) = 3 | ||
and sp_cidsec in ( | ||
select subcategoria | ||
from `basedosdados.br_bd_diretorios_brasil.cid_10` | ||
where length(subcategoria) = 3 | ||
) | ||
then sp_cidsec | ||
else null | ||
end | ||
) as string | ||
) as id_cid_secundario_subcategoria, | ||
safe_cast(sp_complex as string) complexidade_ato_profissional, | ||
safe_cast(ltrim(sp_qtd_ato) as int64) quantidade_atos_profissionais, | ||
safe_cast(ltrim(sp_ptsp) as int64) quantidade_pontos, | ||
safe_cast(sp_nf as string) nota_fiscal, | ||
safe_cast(ltrim(sp_valato) as float64) valor_ato_profissional, | ||
safe_cast(sp_des_hos as int64) indicador_uf_hospital, | ||
safe_cast(sp_des_pac as int64) indicador_uf_paciente, | ||
safe_cast(sp_u_aih as int64) indicador_id_aih, | ||
safe_cast(sp_financ as string) tipo_financiamento_ato_profissional, | ||
safe_cast(sp_co_faec as string) tipo_subtipo_financiamento_ato_profissional, | ||
safe_cast(sp_pf_doc as string) tipo_documento_pf, | ||
safe_cast(sp_pj_doc as string) tipo_documento_pj, | ||
safe_cast(in_tp_val as string) tipo_valor, | ||
safe_cast(ltrim(sequencia) as string) sequencia, | ||
safe_cast(remessa as string) nome_remessa, | ||
from `basedosdados-staging.br_ms_sih_staging.servicos_profissionais` as sih | ||
left join | ||
( | ||
select id_municipio, id_municipio_6, | ||
from `basedosdados.br_bd_diretorios_brasil.municipio` | ||
) as mun | ||
on sih.sp_m_hosp = mun.id_municipio_6 | ||
{% if is_incremental() %} | ||
where | ||
date(cast(ano as int64), cast(mes as int64), 1) | ||
> (select max(date(cast(ano as int64), cast(mes as int64), 1)) from {{ this }}) | ||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
version: 2 | ||
|
||
models: | ||
- name: br_ms_sih__servicos_profissionais | ||
description: Sistema de Informações Hospitalares do SUS (SIH/SUS) | ||
columns: | ||
- name: ano | ||
description: Ano | ||
tests: | ||
- not_null: | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: mes | ||
description: Mês | ||
- name: ano_internacao | ||
description: Ano da internação | ||
- name: mes_internacao | ||
description: Mes da internação | ||
- name: data_entrada_internacao | ||
description: Data do início da internação | ||
- name: data_saida_iternacao | ||
description: Data do final da internação | ||
- name: sigla_uf | ||
description: Sigla unidade da fedaração | ||
tests: | ||
- relationships: | ||
to: ref('br_bd_diretorios_data_tempo__uf') | ||
field: sigla | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: id_municipio_estabelecimento_aih | ||
description: Município de localização do Estabelecimento Executante da AIH | ||
tests: | ||
- relationships: | ||
to: ref('br_bd_diretorios_brasil__municipio') | ||
field: id_municipio | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: id_municipio_paciente | ||
description: Município de residência do paciente | ||
tests: | ||
- relationships: | ||
to: ref('br_bd_diretorios_brasil__municipio') | ||
field: id_municipio_6 | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: id_gestor | ||
description: Unidade de Federação + Código Município de Gestão ou UF0000 se | ||
o Estabelecimento Executante está sob Gestão Estadual. | ||
- name: id_estabelecimento_cnes | ||
description: ID do estabelecimento de saúde executante da Autorização de Internação | ||
Hospitalar (AIH) | ||
- name: id_aih | ||
description: ID Autorização de Internação Hospitalar (AIH) | ||
tests: | ||
- not_null: | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: id_procedimento_principal | ||
description: Procedimento principal realizado na AIH. | ||
- name: tipo_servico | ||
description: Classificação do tipo de serviço | ||
- name: id_prestador_servico | ||
description: CNES, CPF ou CNPJ do prestador do serviço do ato profissional | ||
- name: id_procedimento_secundario | ||
description: Procedimento referente ao ato profissional | ||
- name: cbo_2002_profissional | ||
description: Identificador de Ocupação Brasileira do Profissional que realizou | ||
o ato ou “00000” caso não tenha sido | ||
tests: | ||
- relationships: | ||
to: ref('br_bd_diretorios_brasil__cbo_2002') | ||
field: cbo_2002.cbo_2002 | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: quantidade_procedimentos | ||
description: Quantidade de procedimentos realizados | ||
- name: id_cid_principal | ||
description: Identificador principal da Classificação Internacional de Doenças | ||
e Problemas Relacionados com a Saúde (CID) | ||
- name: id_cid_principal_subcategoria | ||
description: Subcategoria do identificador principal da Classificação Internacional de Doenças | ||
e Problemas Relacionados com a Saúde (CID) | ||
tests: | ||
- custom_relationships: | ||
to: ref('br_bd_diretorios_brasil__cid_10') | ||
field: subcategoria | ||
ignore_values: ["'R501','Q314','S571','N182','U109','M723','M725','N975','N184','R500','N183','Q356','B501','N185','U099'"] | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: id_cid_secundario | ||
description: Identificador secundário da Classificação Internacional de Doenças | ||
e Problemas Relacionados com a Saúde (CID) | ||
- name: id_cid_secundario_subcategoria | ||
description: Subcategoria do identificador secundário da Classificação Internacional de Doenças | ||
e Problemas Relacionados com a Saúde (CID) | ||
tests: | ||
- relationships: | ||
to: ref('br_bd_diretorios_brasil__cid_10') | ||
field: subcategoria | ||
config: | ||
where: __most_recent_year_month__ | ||
- name: complexidade_ato_profissional | ||
description: Complexidade do ato profissional | ||
- name: quantidade_atos_profissionais | ||
description: Quantidade de atos profissionais | ||
- name: quantidade_pontos | ||
description: Quantidade de pontos | ||
- name: nota_fiscal | ||
description: Nota fiscal do material empregado quando órtese/prótese, quando não, o campo representa a data do ato | ||
- name: valor_ato_profissional | ||
description: Valor do ato profissional | ||
- name: indicador_uf_hospital | ||
description: Indica se a UF de residência do hospital é diferente da UF de localização do estabelecimento | ||
- name: indicador_uf_paciente | ||
description: Indica se a UF de residência do paciente é diferente da UF de | ||
localização do estabelecimento | ||
- name: indicador_id_aih | ||
description: Indica quais id_aih são únicos | ||
- name: tipo_financiamento_ato_profissional | ||
description: Tipo de financiamento do ato profissional | ||
- name: tipo_subtipo_financiamento_ato_profissional | ||
description: Tipo de financiamento (04-FAEC) + Subtipo de financiamento relacionado ao tipo de financiamento (04-FAEC) do ato profissional | ||
- name: tipo_documento_pf | ||
description: Documento de pessoa jurídica | ||
- name: tipo_documento_pj | ||
description: Documento de pessoa física | ||
- name: tipo_valor | ||
description: 'Tipo de valor: 1 - SP /2 –SH' | ||
- name: sequencia | ||
description: Código sequencial | ||
- name: nome_remessa | ||
description: Nome da remessa |