From a3dbdf44bc9e503f74a77706554c7a059a604a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Fri, 3 May 2024 16:42:46 -0300 Subject: [PATCH 1/2] fix: cvm fi tests --- models/br_cvm_fi/schema.yml | 93 ++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 28 deletions(-) diff --git a/models/br_cvm_fi/schema.yml b/models/br_cvm_fi/schema.yml index e6d3249e..141857a2 100644 --- a/models/br_cvm_fi/schema.yml +++ b/models/br_cvm_fi/schema.yml @@ -2,28 +2,24 @@ version: 2 models: - name: documentos_balancete - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - data_competencia - - plano_contabil_balancete - - codigo_conta - - cnpj - - cnpj_basico - - ano - - mes - - saldo_conta description: O balancete é um documento gerado mensalmente pela contabilidade do fundo. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, mes,cnpj, data_competencia, plano_contabil_balancete,codigo_conta ] + config: + where: __most_recent_year_month__ columns: - name: ano description: Ano + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: mes description: Mês - name: cnpj description: CNPJ do fundo - - name: cnpj_basico - description: CNPJ Básico do fundo - name: data_competencia description: Data de competência - name: plano_contabil_balancete @@ -38,16 +34,26 @@ models: columns: - name: ano description: Ano + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: mes description: Mês - name: id_fundo description: Tipo do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: bloco description: Bloco - name: cnpj description: CNPJ do Fundo - - name: cnpj_basico - description: CNPJ Básico do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: denominacao_social description: Denominação Social - name: data_competencia @@ -89,8 +95,6 @@ models: description: Data de vencimento - name: cnpj_fundo_investido description: CNPJ do fundo investido - - name: cnpj_basico_fundo_investido - description: CNPJ Básico do fundo investido - name: denominacao_social_fundo_investido description: Denominação social do fundo investido - name: codigo_swap @@ -107,8 +111,6 @@ models: description: Data fim da vigência - name: cnpj_emissor description: CNPJ do emissor - - name: cnpj_basico_emissor - description: CNPJ Básico do emissor - name: nome_emissor description: Nome do Emissor - name: indicador_titulo_pos_fixado @@ -171,12 +173,18 @@ models: columns: - name: ano description: Ano + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: mes description: Mês - name: cnpj description: CNPJ do Fundo - - name: cnpj_basico - description: CNPJ Básico do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: denominacao_social description: Denominação Social - name: data_competencia @@ -498,8 +506,16 @@ models: columns: - name: id_fundo description: Tipo do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: cnpj description: CNPJ do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: cnpj_basico description: CNPJ Básico do Fundo - name: denominacao_social @@ -588,9 +604,6 @@ models: - name: indicador_aplicacao_total_recursos_exterior description: Indica se o fundo pode aplicar 100% dos recursos no exterior - name: documentos_informe_diario - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: [data_competencia, id_fundo, cnpj] description: O Informe Diário é um demonstrativo que contém as seguintes informações do fundo, relativas à data de competência - Valor total da carteira do fundo; Patrimônio líquido; Valor da cota; Captações realizadas no dia; Resgates pagos @@ -598,16 +611,30 @@ models: columns: - name: ano description: Ano + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: mes description: Mês - name: id_fundo description: Tipo do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: cnpj description: CNPJ do Fundo - - name: cnpj_basico - description: CNPJ Básico do Fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: data_competencia description: Data de Competência + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: valor_total description: Valor total da carteira - name: valor_cota @@ -626,16 +653,26 @@ models: columns: - name: ano description: Ano + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: mes description: Mês - name: cnpj description: CNPJ do fundo - - name: cnpj_basico - description: CNPJ Básico do fundo + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: denominacao_social description: Denominacao Social - name: data_competencia description: Data de competência do documento + tests: + - not_null: + config: + where: __most_recent_year_month__ - name: versao description: Versão do documento - name: quantidade_clientes_cotitstas_pessoa_fisica_private_banking From bbd467ab38444a6951a274b5c304c78fbf2a2407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Fri, 3 May 2024 16:42:58 -0300 Subject: [PATCH 2/2] feat: add dicionario sih --- models/br_ms_sih/br_ms_sih__dicionario.sql | 8 +++++ models/br_ms_sih/schema.yml | 42 ++++++++++++++++------ 2 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 models/br_ms_sih/br_ms_sih__dicionario.sql diff --git a/models/br_ms_sih/br_ms_sih__dicionario.sql b/models/br_ms_sih/br_ms_sih__dicionario.sql new file mode 100644 index 00000000..5bbe47b5 --- /dev/null +++ b/models/br_ms_sih/br_ms_sih__dicionario.sql @@ -0,0 +1,8 @@ +{{ config(alias="dicionario", schema="br_ms_sih") }} +select + safe_cast(id_tabela as string) id_tabela, + safe_cast(nome_coluna as string) nome_coluna, + safe_cast(chave as string) chave, + safe_cast(cobertura_temporal as string) cobertura_temporal, + safe_cast(valor as string) valor +from `basedosdados-staging.br_ms_sih_staging.dicionario` diff --git a/models/br_ms_sih/schema.yml b/models/br_ms_sih/schema.yml index f1f35913..33a96de4 100644 --- a/models/br_ms_sih/schema.yml +++ b/models/br_ms_sih/schema.yml @@ -2,14 +2,14 @@ version: 2 models: - name: br_ms_sih__servicos_profissionais - description: Sistema de Informações Hospitalares do SUS (SIH/SUS) + description: Sistema de Informações Hospitalares do SUS (SIH/SUS) columns: - name: ano description: Ano tests: - not_null: config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: mes description: Mês - name: ano_internacao @@ -27,7 +27,7 @@ models: to: ref('br_bd_diretorios_data_tempo__uf') field: sigla config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: id_municipio_estabelecimento_aih description: Município de localização do Estabelecimento Executante da AIH tests: @@ -35,7 +35,7 @@ models: to: ref('br_bd_diretorios_brasil__municipio') field: id_municipio config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: id_municipio_paciente description: Município de residência do paciente tests: @@ -43,7 +43,7 @@ models: to: ref('br_bd_diretorios_brasil__municipio') field: id_municipio_6 config: - where: __most_recent_year_month__ + 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. @@ -55,7 +55,7 @@ models: tests: - not_null: config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: id_procedimento_principal description: Procedimento principal realizado na AIH. - name: tipo_servico @@ -72,7 +72,7 @@ models: to: ref('br_bd_diretorios_brasil__cbo_2002') field: cbo_2002.cbo_2002 config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: quantidade_procedimentos description: Quantidade de procedimentos realizados - name: id_cid_principal @@ -85,9 +85,9 @@ models: - 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'"] + ignore_values: ["'R501','Q314','S571','N182','U109','M723','M725','N975','N184','R500','N183','Q356','B501','N185','U099'"] config: - where: __most_recent_year_month__ + 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) @@ -99,7 +99,7 @@ models: to: ref('br_bd_diretorios_brasil__cid_10') field: subcategoria config: - where: __most_recent_year_month__ + where: __most_recent_year_month__ - name: complexidade_ato_profissional description: Complexidade do ato profissional - name: quantidade_atos_profissionais @@ -131,3 +131,25 @@ models: description: Código sequencial - name: nome_remessa description: Nome da remessa + - name: br_ms_sih__dicionario + description: Dicionário para tradução dos códigos das tabelas do do conjunto SIH/SUS. Para códigos definidos por outras instituições, como id_municipio ou cnaes, buscar por diretórios. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - id_tabela + - nome_coluna + - chave + - cobertura_temporal + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: id_tabela + description: ID Tabela + - name: nome_coluna + description: Nome da coluna + - name: chave + description: Chave + - name: cobertura_temporal + description: Cobertura Temporal + - name: valor + description: Valor \ No newline at end of file