Skip to content

Commit

Permalink
feat: add br_ms_sih models
Browse files Browse the repository at this point in the history
  • Loading branch information
arthurfg committed Apr 25, 2024
1 parent b9154a7 commit fbb4118
Show file tree
Hide file tree
Showing 3 changed files with 248 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,9 @@ models:
br_ms_sia:
+materialized: table
+schema: br_ms_sia
br_ms_sih:
+materialized: table
+schema: br_ms_sih
br_ms_sim:
+materialized: table
+schema: br_ms_sim
Expand Down
103 changes: 103 additions & 0 deletions models/br_ms_sih/br_ms_sih__servicos_profissionais.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{{
config(
alias="servicos_profissionais",
schema="br_ms_sih",
materialized="table",
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(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(sp_uf as string) sigla_uf,
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,
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_paciente,
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-dev.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
142 changes: 142 additions & 0 deletions models/br_ms_sih/schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
version: 2

models:
- name: br_ms_sih__servicos_profissionais
description: Insert `servicos_profissionais` table description here
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- id_aih
- not_null_proportion_multiple_columns:
at_least: 0.05
columns:
- name: ano
description: Ano
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__ano')
field: ano.ano
- name: mes
description: Mês
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__ano')
field: mes
- name: ano_internacao
description: Ano da internação
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__ano')
field: ano.ano
- name: mes_internacao
description: Mes da internação
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__ano')
field: mes
- name: data_entrada_internacao
description: Data do início da internação
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__data')
field: data.data
- name: data_saida_iternacao
description: Data do final da internação
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__data')
field: data.data
- name: sigla_uf
description: Sigla unidade da fedaração
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__uf')
field: sigla
- 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
- name: id_municipio_paciente
description: Município de residência do paciente
tests:
- relationships:
to: ref('br_bd_diretorios_brasil__municipio')
field: id_municipio
- 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)
- 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
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
- 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:
- relationships:
to: ref('br_bd_diretorios_brasil__cid_10')
field: subcategoria
- 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
- 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_paciente
description: Indica se a UF de residência do paciente é 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

0 comments on commit fbb4118

Please sign in to comment.