#!/usr/bin/env python3
"""
Exemplo de como integrar a API de predição em seu código
"""

import json
import subprocess

def analisar_guia(dados_guia):
    """
    Analisa uma guia usando a API de predição
    
    Args:
        dados_guia: dict ou list com dados da guia
    
    Returns:
        dict com resultado da análise
    """
    # Converte para JSON string
    json_string = json.dumps(dados_guia)
    
    # Chama a API
    resultado = subprocess.run(
        ['python', 'api_predicao.py', json_string],
        capture_output=True,
        text=True
    )
    
    if resultado.returncode == 0:
        return json.loads(resultado.stdout)
    else:
        return {"erro": "Falha na análise"}

# Exemplo 1: Analisar uma consulta
print("=== EXEMPLO 1: Consulta ===")
consulta = {
    "protocolo": 123456,
    "tipo_guia": 3,  # Consulta
    "id_convenio": 4,
    "cod": 10101012,
    "quantidade": 1,
    "tipo_atendimento": 0
}

resultado = analisar_guia(consulta)
print(json.dumps(resultado, indent=2))

# Exemplo 2: Analisar internação com múltiplos procedimentos
print("\n=== EXEMPLO 2: Internação ===")
internacao = [
    {
        "protocolo": 789012,
        "tipo_guia": 1,  # Internação
        "id_convenio": 13,
        "cod": 31309054,
        "quantidade": 1,
        "tipo_atendimento": 2,
        "via_acesso": 1
    },
    {
        "protocolo": 789012,
        "tipo_guia": 1,
        "id_convenio": 13,
        "cod": 31602150,
        "quantidade": 1,
        "tipo_atendimento": 2,
        "via_acesso": 3
    }
]

resultado = analisar_guia(internacao)
print(json.dumps(resultado, indent=2))

# Exemplo 3: Decisão baseada no resultado
print("\n=== EXEMPLO 3: Tomada de Decisão ===")
if resultado['resultado']['predicao'] == 'glosa_provavel':
    print("⚠️  ATENÇÃO: Alta probabilidade de glosa!")
    print(f"   Risco: {resultado['resultado']['risco']}")
    print(f"   Probabilidade: {resultado['resultado']['maximo']*100:.1f}%")
    
    # Listar procedimentos problemáticos
    for proc in resultado['analise_procedimentos']:
        for cod, prob in proc.items():
            if prob > resultado['resultado']['threshold']:
                print(f"   🔴 Código {cod}: {prob*100:.0f}% de risco")
else:
    print("✅ Guia aprovada para envio")
    print(f"   Risco máximo: {resultado['resultado']['maximo']*100:.1f}%")