Files
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

202 lines
5.0 KiB
PHP

<?php
namespace App\Models\ProntoAtendimento\Atendimento\Medico;
use App\Models\Model;
use App\Models\ProntoAtendimento\Atendimento\Atendimento;
use App\Models\ProntoAtendimento\Atendimento\AvaliacaoAntropometrica;
use App\Models\ProntoAtendimento\Atendimento\Cid;
use App\Models\ProntoAtendimento\Atendimento\ClassificacaoRisco;
use App\Models\ProntoAtendimento\Atendimento\Desfecho;
use App\Models\ProntoAtendimento\Atendimento\EncaminhamentoHospitalar;
use App\Models\ProntoAtendimento\Atendimento\EscalaComaGlasgow;
use App\Models\ProntoAtendimento\Atendimento\Gestacao;
use App\Models\ProntoAtendimento\Atendimento\MedicamentoUso;
use App\Models\ProntoAtendimento\Atendimento\Observacao;
use App\Models\ProntoAtendimento\Atendimento\PrescricaoInterna;
use App\Models\ProntoAtendimento\Atendimento\Procedimento;
use App\Models\ProntoAtendimento\Atendimento\RaatParecerMedico;
use App\Models\ProntoAtendimento\Atendimento\ServicoEnfermagem;
use App\Models\ProntoAtendimento\Atendimento\SinalVital;
use App\Models\ProntoAtendimento\PedidoExame\PedidoExame;
use App\Models\ProntoAtendimento\Plantao\Plantao;
use Illuminate\Database\Eloquent\SoftDeletes;
class AtendimentoMedico extends Model
{
use SoftDeletes;
protected $table = 'pronto_atendimento_atendimento_medico';
protected $casts = [
'simples' => 'boolean',
'is_observacao' => 'boolean',
'data_hora_proxima_reavaliacao' => 'datetime:d/m/Y H:i',
'is_faa_assinada' => 'boolean',
];
protected $fillable = [
'plantao_id',
'simples',
'evolucao',
'queixa_principal_duracao',
'historia',
'exame_fisico',
'diagnostico',
'conduta',
'observacoes_enfermagem',
'data_hora_proxima_reavaliacao',
'atendimento_geral',
'orientacoes',
'desfecho_id',
'is_observacao',
'is_faa_assinada',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
'deleted_at',
'deleted_lotacao_id',
'deleted_centro_custo_id',
];
protected $append = [
'solicitou_reavaliacao',
];
public function plantao()
{
return $this->belongsTo(Plantao::class);
}
public function desfecho()
{
return $this->belongsTo(Desfecho::class);
}
public function pedidosExames()
{
return $this->hasMany(PedidoExame::class);
}
public function servicosEnfermagem()
{
return $this->hasMany(ServicoEnfermagem::class);
}
public function atendimento()
{
return $this->belongsTo(Atendimento::class);
}
public function raatParecerMedico()
{
return $this->hasOne(RaatParecerMedico::class);
}
public function atestado()
{
return $this->hasOne(Atestado::class);
}
public function declaracoesComparecimento()
{
return $this->hasMany(DeclaracaoComparecimento::class);
}
public function encaminhamentos()
{
return $this->hasMany(Encaminhamento::class);
}
public function receita()
{
return $this->hasOne(Receita::class);
}
public function prescricoesInternas()
{
return $this->hasMany(PrescricaoInterna::class);
}
public function avaliacaoAntropometrica()
{
return $this->hasOne(AvaliacaoAntropometrica::class);
}
public function cid()
{
return $this->hasOne(Cid::class);
}
public function classificacaoRisco()
{
return $this->hasOne(ClassificacaoRisco::class);
}
public function gestacao()
{
return $this->hasOne(Gestacao::class);
}
public function encaminhamentoHospitalar()
{
return $this->hasOne(EncaminhamentoHospitalar::class);
}
public function medicamentosUso()
{
return $this->hasMany(MedicamentoUso::class);
}
public function observacao()
{
return $this->hasOne(Observacao::class);
}
public function procedimentos()
{
return $this->hasMany(Procedimento::class);
}
public function sinaisVitais()
{
return $this->hasMany(SinalVital::class);
}
public function getSolicitouReavaliacaoAttribute()
{
return $this->desfecho_id === null;
}
public function escalasComaGlasgow()
{
return $this->hasMany(EscalaComaGlasgow::class);
}
public function getIsAllowedToDeleteAttribute()
{
return $this->hasNoOne([
'pedidosExames',
'atestado',
'avaliacaoAntropometrica',
'cid',
'classificacaoRisco',
'declaracoesComparecimento',
'encaminhamentos',
'gestacao',
'medicamentosUso',
'observacao',
'procedimentos',
'raatParecerMedico',
'receitas',
'sinaisVitais',
]);
}
}