Files
rkm-conectasus-ci-sandbox/api/app/Models/Apac/SolicitacaoAutorizacao.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

191 lines
4.9 KiB
PHP

<?php
namespace App\Models\Apac;
use App\Models\Cadastro\Estabelecimento\Unidade;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
use App\Models\Sigtap\Cid;
use App\Models\Sigtap\Classificacao;
use App\Models\Sigtap\Competencia;
use App\Models\Sigtap\Ocupacao;
use App\Models\Sigtap\Procedimento;
use App\Models\Sigtap\Servico;
class SolicitacaoAutorizacao extends Model
{
protected $table = 'apac_solicitacao_autorizacao';
protected $casts = [
'data_processamento' => 'datetime:d/m/Y',
'data_inicial_validade' => 'datetime:d/m/Y',
'data_final_validade' => 'datetime:d/m/Y',
'data_ocorrencia' => 'datetime:d/m/Y',
'data_solicitacao' => 'datetime:d/m/Y',
'data_autorizacao' => 'datetime:d/m/Y',
'emenda_parlamentar' => 'boolean',
'is_automatico' => 'boolean',
];
protected $fillable = [
'exportacao_id',
'competencia_id',
'data_processamento',
'numero_apac',
'numero_apac_anterior',
'unidade_solicitante_id',
'unidade_executante_id',
'usuario_executante_id',
'data_inicial_validade',
'data_final_validade',
'paciente_id',
'procedimento_principal_id',
'procedimento_principal_ocupacao_id',
'procedimento_principal_quantidade',
'procedimento_principal_cnpj_cessao_credito',
'procedimento_principal_numero_nota_fiscal_cessao',
'procedimento_principal_cid_principal_id',
'procedimento_principal_cid_secundario_id',
'procedimento_principal_servico_id',
'procedimento_principal_classificacao_id',
'procedimento_principal_unidade_prestadora_terceiro_cnes',
'cid_causa_associada_id',
'motivo_saida_permanencia_id',
'data_ocorrencia',
'tipo_atendimento_id',
'carater_atendimento_id',
'tipo_apac_id',
'usuario_responsavel_id',
'data_solicitacao',
'usuario_autorizador_nome',
'usuario_autorizador_cns',
'data_autorizacao',
'codigo_emissor',
'fonte_orcamentaria_id',
'emenda_parlamentar',
'is_automatico',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function exportacao()
{
return $this->belongsTo(Exportacao::class);
}
public function competencia()
{
return $this->belongsTo(Competencia::class);
}
public function unidadeSolicitante()
{
return $this->belongsTo(Unidade::class);
}
public function unidadeExecutante()
{
return $this->belongsTo(Unidade::class);
}
public function usuarioExecutante()
{
return $this->belongsTo(Usuario::class);
}
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function procedimentoPrincipal()
{
return $this->belongsTo(Procedimento::class);
}
public function procedimentoPrincipalOcupacao()
{
return $this->belongsTo(Ocupacao::class);
}
public function procedimentoPrincipalCidPrincipal()
{
return $this->belongsTo(Cid::class);
}
public function procedimentoPrincipalCidSecundario()
{
return $this->belongsTo(Cid::class);
}
public function procedimentoPrincipalServico()
{
return $this->belongsTo(Servico::class);
}
public function procedimentoPrincipalClassificacao()
{
return $this->belongsTo(Classificacao::class);
}
public function cidCausaAssociada()
{
return $this->belongsTo(Cid::class);
}
public function motivoSaidaPermanencia()
{
return $this->belongsTo(MotivoSaidaPermanencia::class);
}
public function tipoAtendimento()
{
return $this->belongsTo(TipoAtendimento::class);
}
public function caraterAtendimento()
{
return $this->belongsTo(CaraterAtendimento::class);
}
public function tipoApac()
{
return $this->belongsTo(Tipo::class);
}
public function usuarioResponsavel()
{
return $this->belongsTo(Usuario::class);
}
public function fonteOrcamentaria()
{
return $this->belongsTo(FonteOrcamentaria::class);
}
public function inconsistencias()
{
return $this->belongsToMany(Inconsistencia::class, 'apac_solicitacao_autorizacao_inconsistencia')
->using(SolicitacaoAutorizacaoInconsistencia::class)
->withTimestamps();
}
public function laudoGeral()
{
return $this->hasOne(SolicitacaoAutorizacaoLaudoGeral::class);
}
public function procedimentosSecundarios()
{
return $this->hasMany(SolicitacaoAutorizacaoProcedimentoSecundario::class);
}
}