Files
rkm-conectasus-ci-sandbox/api/app/Models/ProntoAtendimento/Atendimento/PrescricaoInterna.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

104 lines
2.5 KiB
PHP

<?php
namespace App\Models\ProntoAtendimento\Atendimento;
use App\Models\Geral\MedidaTempo;
use App\Models\Model;
use App\Models\ProntoAtendimento\Atendimento\Medico\AtendimentoMedico;
use App\Models\ProntoAtendimento\Atendimento\PrescricaoInternaAplicacao;
use Dyrynda\Database\Support\CascadeSoftDeletes;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
class PrescricaoInterna extends Model
{
use SoftDeletes, CascadeSoftDeletes;
protected $table = 'pronto_atendimento_atendimento_prescricao_interna';
protected $cascadeDeletes = [
'medicamentos'
];
protected $fillable = [
'atendimento_medico_id',
'frequencia_quantidade_vezes',
'frequencia_tempo',
'frequencia_medida_tempo_id',
'observacoes',
];
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 $with = [
'medicamentos'
];
protected $appends = [
'dose_unica'
];
public function atendimentoMedico()
{
return $this->belongsTo(AtendimentoMedico::class);
}
public function frequenciaMedidaTempo()
{
return $this->belongsTo(MedidaTempo::class);
}
public function medicamentos()
{
return $this->hasMany(PrescricaoInternaMedicamento::class);
}
public function aplicacoes()
{
return $this->hasMany(PrescricaoInternaAplicacao::class);
}
public function getDoseUnicaAttribute()
{
return is_null($this->frequencia_quantidade_vezes)
&& is_null($this->frequencia_tempo)
&& is_null($this->frequencia_medida_tempo_id);
}
public function getFrequenciaAttribute()
{
if ($this->dose_unica) {
return 'Dose única';
}
$labelAplicacao = $this->frequencia_quantidade_vezes > 1 ? 'aplicações' : 'aplicação';
$frequenciaNome = Str::lower($this->frequenciaMedidaTempo->nome);
if ($this->frequencia_tempo < 2) {
$frequenciaNome = str_replace('(s)', '', $frequenciaNome);
}
return "{$this->frequencia_quantidade_vezes} {$labelAplicacao} uma a cada {$this->frequencia_tempo} "
. "{$frequenciaNome}";
}
public function getIsAllowedToDeleteAttribute()
{
return $this->hasNoOne([
// Relations.
]);
}
}