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
- load_artifacts
- prepare_data
- 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,
)
| 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 |
- |
- |
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.