104 lines
2.5 KiB
PHP
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.
|
|
]);
|
|
}
|
|
}
|