{
  "_comentario": [
    "Allow-list de auditoria da tabela sigh.ficha_amb_int.",
    "Regra de decisao para cada campo do diff, nessa ordem:",
    "  1. valor nulo                       -> trafega como null (nao ha dado pessoal em um nulo)",
    "  2. nome casa com trechos_negados    -> [redigido]  (o deny sempre vence)",
    "  3. nome esta em campos_permitidos   -> valor real",
    "  4. nome comeca com prefixos_permitidos -> valor real",
    "  5. qualquer outro caso              -> [redigido]",
    "Campo novo na tabela cai no caso 5: nunca vaza sem alguem liberar aqui.",
    "permitir_booleanos esta desligado nesta tabela porque varios booleanos dela",
    "sao dado clinico (em_gestacao, aborto, parto_cesareo, complic_neonatal...).",
    "Os booleanos operacionais estao liberados um a um em campos_permitidos."
  ],

  "tabela": "sigh.ficha_amb_int",

  "search_keys": [
    "cod_paciente",
    "cod_unidade",
    "cod_convenio",
    "cod_leito",
    "numero_atendimento"
  ],

  "campos_usuario": {
    "I": "cod_usuario_criacao",
    "U": "cod_usuario_atualizacao",
    "D": "cod_usuario_exclusao"
  },

  "_comentario_ignorados": [
    "Controle interno do SIGH: muda sozinho e nao diz nada numa investigacao.",
    "Nem entra no diff. Se um UPDATE sobrar sem nenhum campo depois deste",
    "filtro, o evento inteiro e descartado no cliente e some da fila local,",
    "sem gastar rede nem espaco no servidor. INSERT e DELETE nunca sao",
    "descartados: a existencia do evento ja e a informacao.",
    "Aceita nome exato ou prefixo terminado em *.",
    "cod_usuario_atualizacao continua chegando: ele vai no topo do payload",
    "como cod_usuario, via campos_usuario. So nao polui o de/para."
  ],

  "campos_ignorados": [
    "cod_usuario_editando*",
    "atendimento_em_edicao_ou_atendido",
    "gravou_fluxo_atend",
    "data_hora_atualizacao",
    "cod_usuario_atualizacao",
    "cod_func_atualizou"
  ],

  "permitir_booleanos": false,

  "prefixos_permitidos": [
    "id_",
    "cod_",
    "codigo_",
    "data_",
    "hora_",
    "dias_",
    "qtd_",
    "valor_",
    "vlr_",
    "diaria_",
    "tipo_atend",
    "tipo_saida",
    "status_",
    "passo_",
    "exportad",
    "alterou_",
    "num_dias"
  ],

  "campos_permitidos": [
    "ativo",
    "urgente_eletivo",
    "tipo_procedimento",
    "numero_atendimento",
    "numero_guia",
    "numero_ticket",
    "numero_nf",
    "alta_libera_ou_higienizacao",
    "voluntaria_compulsoria",
    "internacao_voluntaria",
    "internacao_gsh",
    "reinternacao",
    "dia_int",
    "pos_alta",
    "origem",
    "grade",
    "cmce",
    "rncomalta",
    "proveniente_de",
    "gratuidade",
    "subsidio_pref",
    "divulga",
    "visita",
    "diferenca_dias",
    "dias_utilizados",
    "situacao_aghos",
    "indicador_acidente_tiss",
    "tipo_consulta_tiss",
    "regime_atend_tiss",
    "cobertura_esp_tiss",
    "aplica_pacote_deposito",
    "lanca_diarias_alta",
    "lanca_taxas_conta",
    "lanca_taxas_conta_sai_unidade",
    "gera_requisicao_leito",
    "gerada_a_partir_fia_amb",
    "reservar_leito_origem",
    "realizando_permuta_leito",
    "saida_temporaria",
    "autorizado_aghos",
    "transferencia_aghos",
    "atendimento_rn",
    "libera_med_continuo",
    "exportado_ach",
    "gravou_fluxo_atend",
    "atendimento_em_edicao_ou_atendido"
  ],

  "trechos_negados": [
    "nome",
    "nm_",
    "cpf",
    "cnpj",
    "doc_",
    "fone",
    "telefone",
    "email",
    "senha",
    "matricula",
    "responsavel_paciente",
    "responsavel_aih",
    "laboratorio_responsavel_coleta",
    "logradouro",
    "bairro",
    "municipio",
    "endereco",
    "cep",
    "nasc",
    "cod_cid",
    "idade_paciente",
    "num_end_resp"
  ]
}
