This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
<?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.
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user