diff --git a/dbt_project.yml b/dbt_project.yml index 44e3b739..044ca313 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -23,6 +23,17 @@ clean-targets: # directories to be removed by `dbt clean` - "target" - "dbt_modules" +# Defining variables +vars: + TAG_CPF: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/2725924647574340150' + TAG_CNS: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/8466642122276519749' + TAG_NOME: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/6653540523349836867' + TAG_TELEFONE: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/4821430283459568091' + TAG_EMAIL: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/7952571888021215204' + TAG_ENDERECO: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/4420561030199075247' + TAG_CRM: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/3383058637162172795' + TAG_MATERIAL: 'projects/rj-sms/locations/us/taxonomies/1484589960313336167/policyTags/2594193206394513245' + # Configuring models # Full documentation: https://docs.getdbt.com/docs/configuring-models @@ -40,13 +51,14 @@ models: +required_tests: {"unique.*|not_null": 2} +required_docs: true raw: - +materialized: view + +materialized: table cnes: +schema: brutos_cnes estoque_central_tpc: +schema: brutos_estoque_central_tpc prontuario_vitacare: +schema: brutos_prontuario_vitacare + materialized: table prontuario_vitai: +schema: brutos_prontuario_vitai sheets: diff --git a/models/raw/cnes/_cnes_schema.yml b/models/raw/cnes/_cnes_schema.yml index eefc4e6b..231955a9 100644 --- a/models/raw/cnes/_cnes_schema.yml +++ b/models/raw/cnes/_cnes_schema.yml @@ -94,6 +94,8 @@ models: description: | CPF do Estabelecimento Esse campo só é preenchido no caso do campo tipo_pfpj = 1 + policy_tags: + - '{{ var ("TAG_CPF") }}' - name: cnpj description: |- CNPJ do Estabelecimento @@ -124,7 +126,11 @@ models: 2 - Parcial/Restrições - name: diretor_clinico_cpf description: CPF do Diretor Clínico ou Gerente / Administrador + policy_tags: + - '{{ var ("TAG_CPF") }}' - name: diretor_clinico_conselho + policy_tags: + - '{{ var ("TAG_NOME") }}' description: Registro no Conselho de Classe do Diretor Clinico - name: adesao_hospital_filantropico description: Indica se o hospital fez adesão ao Programa de Reestruturação de @@ -143,10 +149,12 @@ models: description: Nome do Usuário que atualizou as Coordenadas - name: data_atualizacao_geolocalizacao description: Data de atualização das Coordenadas + - name: mes_particao + description: Data de referência da partição formato (YYYY-MM) - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_cnes__tipo_unidade description: |- Tabela contendo os tipo de unidades de saúde @@ -161,7 +169,7 @@ models: - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_cnes__tipo_nivel_atencao description: |- Tabela contendo os níveis de atenção / atividade. @@ -182,7 +190,7 @@ models: - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_cnes__gestao_nivel_atencao description: |- Tabela contendo a relação do nível de atenção correspondente à @@ -209,7 +217,7 @@ models: - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_cnes__turno_atendimento description: |- Tabelas contendo os tipo de turno de atendimento das unidades de saúde @@ -224,4 +232,4 @@ models: - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset \ No newline at end of file + description: Data e hora (GMT-3) no qual foi feito o download do dataset \ No newline at end of file diff --git a/models/raw/estoque_central_tpc/_estoque_central_tpc_schema.yml b/models/raw/estoque_central_tpc/_estoque_central_tpc_schema.yml index eb6393d5..72358141 100644 --- a/models/raw/estoque_central_tpc/_estoque_central_tpc_schema.yml +++ b/models/raw/estoque_central_tpc/_estoque_central_tpc_schema.yml @@ -7,13 +7,17 @@ models: columns: - name: id_lote description: Identificador do lote do medicamento/insumo - - name: id_produto + - name: id_material description: Identificador do medicamento/insumo + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: estoque_secao description: Local dentro da unidade de saúde onde está armazenado o medicamento/insumo - name: material_descricao description: Descrição do medicamento/insumo + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_unidade description: Unidade de estocagem do medicamento/insumo - name: lote_data_vencimento diff --git a/models/raw/estoque_central_tpc/raw_estoque_central_tpc__estoque_posicao.sql b/models/raw/estoque_central_tpc/raw_estoque_central_tpc__estoque_posicao.sql index ae28558b..cb45674f 100644 --- a/models/raw/estoque_central_tpc/raw_estoque_central_tpc__estoque_posicao.sql +++ b/models/raw/estoque_central_tpc/raw_estoque_central_tpc__estoque_posicao.sql @@ -2,12 +2,11 @@ config( alias="estoque_posicao", schema="brutos_estoque_central_tpc", - labels={"contains_pii": "no"}, - materialized="view", + materialized="table", partition_by={ "field": "data_particao", "data_type": "date", - "granularity": "month", + "granularity": "day", }, ) }} diff --git a/models/raw/prontuario_vitacare/_prontuario_vitacare_schema.yml b/models/raw/prontuario_vitacare/_prontuario_vitacare_schema.yml index 79dcbfeb..38a09029 100644 --- a/models/raw/prontuario_vitacare/_prontuario_vitacare_schema.yml +++ b/models/raw/prontuario_vitacare/_prontuario_vitacare_schema.yml @@ -1,13 +1,17 @@ models: - name: raw_prontuario_vitacare__estoque_posicao - description: "" + description: > + Posição diária dos estoques de medicamentos e insumos das unidades de + saúde que utilizam o prontuário VitaCare para gestão de estoque de + farmácia e almoxarifado columns: - name: id_estoque_posicao - description: "" + description: Identificador único do registro - name: area_programatica - description: "" + description: Área programática da unidade de saúde onde o item está localizado - name: id_cnes - description: "" + description: Número do CNES (Cadastro Nacional de Estabelecimentos de Saúde) da + unidade de saúde onde o item está localizado tests: - not_null - relationships: @@ -21,34 +25,45 @@ models: severity: warn error_if: ">10" - name: id_lote - description: "" + description: Identificador do lote do medicamento/insumo - name: id_material - description: "" + description: Código de identificação do material cadastrado no prontuário + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' + tests: + - not_null - name: id_atc - description: "" + description: Código de identificação do material cadastrado no prontuário no padrão ATC + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: estabelecimento_nome - description: "" + description: Nome da unidade de saúde onde o item está localizado - name: lote_data_cadastro - description: "" + description: Data de cadastro do lote - name: lote_data_vencimento - description: "" + description: Data de vecimento do lote - name: material_descricao - description: "" + description: Descrição do medicamento/insumo + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_quantidade - description: "" + description: Quantidade disponível do medicamento/insumo - name: data_particao - description: "" + description: Data de referencia da posição do estoque - name: data_carga - description: "" + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_prontuario_vitacare__estoque_movimento - description: "" + description: Movimentação diária dos estoques de medicamentos e insumos das + unidades de saúde que utilizam o prontuário Vitacare para gestão de + estoque de farmácia e almoxarifado columns: - name: id_estoque_movimento - description: "" + description: Identificador único do registro - name: area_programatica - description: "" + description: Área programática da unidade de saúde onde o item está localizado - name: id_cnes - description: "" + description: Número do CNES (Cadastro Nacional de Estabelecimentos de Saúde) da + unidade de saúde onde o item está localizado tests: - not_null - relationships: @@ -63,32 +78,47 @@ models: severity: warn error_if: ">10" - name: id_lote - description: "" + description: Identificador do lote do medicamento/insumo - name: id_material - description: "" + description: Código de identificação do material cadastrado no prontuário + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: id_atc - description: "" + description: Código de identificação do material cadastrado no prontuário no padrão ATC + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: estabelecimento_nome - description: "" + description: Nome da unidade de saúde onde o item está localizado - name: material_descricao - description: "" + description: Descrição do medicamento/insumo + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: estoque_movimento_data_hora - description: "" + description: Data e hora da movimentação do estoque - name: estoque_movimento_tipo - description: "" + description: Tipo de movimentação do estoque - name: estoque_movimento_correcao_tipo - description: "" + description: Tipo de correção da movimentação do estoque - name: estoque_movimento_justificativa - description: "" + description: Justificativa da movimentação do estoque - name: dispensacao_prescritor_cns - description: "" + policy_tags: + - '{{ var ("TAG_CNS") }}' + description: CNS do prescritor no caso de dispensação para usuário - name: dispensacao_paciente_cpf - description: "" + description: CPF do paciente no caso de dispensação para usuário + policy_tags: + - '{{ var ("TAG_CPF") }}' - name: dispensacao_paciente_cns - description: "" + description: CNS do paciente no caso de dispensação para usuário + policy_tags: + - '{{ var ("TAG_CNS") }}' - name: material_quantidade - description: "" + description: Quantidade movimentada do medicamento/insumo + tests: + - dbt_expectations.expect_column_values_to_be_between: + min_value: 0 - name: data_particao - description: "" + description: Data de referencia da posição do estoque - name: data_carga - description: "" + description: Data e hora (GMT-3) no qual foi feito o download do dataset \ No newline at end of file diff --git a/models/raw/prontuario_vitai/_prontuario_vitai__schema.yml b/models/raw/prontuario_vitai/_prontuario_vitai__schema.yml index 87a220da..01e27585 100644 --- a/models/raw/prontuario_vitai/_prontuario_vitai__schema.yml +++ b/models/raw/prontuario_vitai/_prontuario_vitai__schema.yml @@ -24,14 +24,18 @@ models: - name: id_lote description: Identificador do lote do medicamento/insumo - name: id_material + description: Código de identificação do material cadastrado no prontuário + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' tests: - not_null - description: Código de identificação do material cadastrado no prontuário - name: estoque_secao description: Local dentro da unidade de saúde onde está armazenado o medicamento/insumo - name: material_descricao description: Descrição do medicamento/insumo + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_unidade description: Unidade de estocagem do medicamento/insumo - name: lote_data_vencimento @@ -48,7 +52,7 @@ models: - name: data_snapshot description: Momento no qual foi feito o snapshot do registro - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset - name: raw_prontuario_vitai__estoque_movimento description: Movimentação diária dos estoques de medicamentos e insumos das unidades de saúde que utilizam o prontuário Timed (Vitai) para gestão de @@ -85,10 +89,14 @@ models: error_if: ">2" - name: id_material description: Código de identificação do material cadastrado no prontuário + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' tests: - not_null - name: material_descricao description: Descrição do materil (medicamento/insumo) + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_unidade description: Unidade de estocagem do material(medicamento/insumo) - name: estoque_secao_origem @@ -114,4 +122,4 @@ models: - name: data_particao description: Data de referencia da posição do estoque - name: data_carga - description: Momento (GMT-3) no qual foi feito o download do dataset + description: Data e hora (GMT-3) no qual foi feito o download do dataset diff --git a/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_movimento.sql b/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_movimento.sql index 30fa1b54..3bc271a3 100644 --- a/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_movimento.sql +++ b/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_movimento.sql @@ -3,7 +3,6 @@ alias="estoque_movimento", schema="brutos_prontuario_vitai", labels={"contains_pii": "no"}, - materialized="view", partition_by={ "field": "data_particao", "data_type": "date", diff --git a/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_posicao.sql b/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_posicao.sql index 93bd38d6..c90d3339 100644 --- a/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_posicao.sql +++ b/models/raw/prontuario_vitai/raw_prontuario_vitai__estoque_posicao.sql @@ -3,7 +3,6 @@ alias="estoque_posicao", schema="brutos_prontuario_vitai", labels={"contains_pii": "no"}, - materialized="view", partition_by={ "field": "data_particao", "data_type": "date", diff --git a/models/raw/sheets/_sheets_schema.yml b/models/raw/sheets/_sheets_schema.yml index ff34aab2..0f89d287 100644 --- a/models/raw/sheets/_sheets_schema.yml +++ b/models/raw/sheets/_sheets_schema.yml @@ -49,6 +49,8 @@ models: columns: - name: id_material description: Código de identificação do material cadastrado no prontuário + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' tests: - relationships: to: ref('dim_material') @@ -57,10 +59,14 @@ models: description: Agrupor de materias - name: material_descricao_generica description: Descrição genérica do material + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_concetracao description: Concentração do medicamento - name: material_forma_farmaceutica description: Forma farmacêutica do medicamento + policy_tags: + - '{{ var ("TAG_MATERIAL") }}' - name: material_apresentacao description: Apresentação comercial do material - name: estabelecimento_disponibilidade