ArvoAgentHub

Limite de Procedimentos Diagnósticos Per-Operatórios

Overview

Limits peroperatory diagnostic procedures per surgery on surgical invoices.

Architecture

Field Value
Name Limite de Procedimentos Diagnósticos Per-Operatórios
Agent ID AI018
Version 0.0.0
Nature tech
Layer

Inheritance

PeroperatoryDiagnosticLimitRule → ExcessiveAmountRule → BaseAgent

Core Functionality

  1. load_artifacts
  2. prepare_data
  3. rule_assessment

Business Rules

Pertinência da cobrança

Constantes:

  • CODE_SEM_DESLOCAMENTO = "40601013" # first specimen, without pathologist displacement
  • CODE_COM_DESLOCAMENTO = "40601030" # first specimen, with pathologist displacement
  • CODE_PECA_ADICIONAL = "40601021" # additional specimen / surgical margin
  • PRINCIPAL_CODES = [CODE_SEM_DESLOCAMENTO, CODE_COM_DESLOCAMENTO]
  • TARGET_CODES = PRINCIPAL_CODES + [CODE_PECA_ADICIONAL]
  • MAX_ADDITIONAL_SPECIMENS_PER_INVOICE = 5 # cap for code 40601021 per invoice
  • CBHPM_SURGICAL_CHAPTER = 3 # CBHPM chapter that holds surgical procedures
  • CBHPM_EDITION = "cbhpm2012"
  • DENIAL_STRATEGY = "mais_baratas" # keep the most expensive (principal) unit
  • ANS_MOTIVE_INCOMPATIBLE_QUANTITY = "1318 - QUANTIDADE INCOMPATÍVEL COM O PROCEDIMENTO/EVENTO REALIZADO"

Usage

from agents.peroperatorydiagnosticlimitrule import PeroperatoryDiagnosticLimitRule

rule = PeroperatoryDiagnosticLimitRule()
violations_df = rule.rule_assessment(claims_df)

Configuration

rule = PeroperatoryDiagnosticLimitRule(
    evaluated=False,
    evaluated=evaluated,
    artifact_loader=ArtifactLoader(self.logger),
    taxonomy=pd.DataFrame(),
    cbhpm_cirurgico=pd.DataFrame(),
    taxonomy=self.artifact_loader.load_taxonomy(id_evento_list=TARGET_CODES),
    taxonomy=(,
    subset=[EVENT_COLUMNS.id_evento,
)

Input Requirements

Column Type Description
EVENT_COLUMNS.id - -
EVENT_COLUMNS.id_fatura - -
EVENT_COLUMNS.id_evento - -
EVENT_COLUMNS.evento - -
EVENT_COLUMNS.guia - -
EVENT_COLUMNS.vl_pago - -
EVENT_COLUMNS.qt_paga - -
EVENT_COLUMNS.vl_unitario_pago - -
EVENT_COLUMNS.dt_atendimento - -

Output Format

Glosa DataFrame Columns

Column Description
agent_id AI018
version 0.0.0
id_arvo Original record ID
vl_glosa_arvo Glosa value
qt_glosa_arvo Glosa quantity
score_arvo Confidence score
motivo_glosa_arvo Detailed reason in Portuguese
motivo_glosa_ANS ANS standard code
data_dict JSON metadata with calculation details

Error Handling

  • DataFrames vazios retornam estrutura vazia com colunas obrigatórias.
  • Colunas ausentes geram warning mas não causam crash.
  • Conversões numéricas usam errors="coerce" para evitar falhas.