nothing
This commit is contained in:
@@ -3,13 +3,14 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class MisMedicalHistory extends Model
|
||||
{
|
||||
protected $table = 'stt_medicalhistory';
|
||||
|
||||
protected $primaryKey = 'MedicalHistoryID';
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'MedicalHistoryID',
|
||||
@@ -21,9 +22,64 @@ class MisMedicalHistory extends Model
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'DateRecipient' => 'datetime'
|
||||
'DateRecipient' => 'datetime',
|
||||
'DateExtract' => 'datetime'
|
||||
];
|
||||
|
||||
/**
|
||||
* Проверить, находится ли пациент еще в стационаре
|
||||
*/
|
||||
public function isStillInHospital(): bool
|
||||
{
|
||||
// Проверяем специальное значение даты
|
||||
if ($this->DateExtract && $this->DateExtract->format('dmY') === '01012222') {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Или проверяем по статусу
|
||||
return $this->rf_kl_VisitStatusID === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить реальную дату выписки (если пациент выписан)
|
||||
*/
|
||||
public function getActualDischargeDate(): ?Carbon
|
||||
{
|
||||
if (!$this->DateExtract) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Если это специальное значение - значит не выписан
|
||||
if ($this->DateExtract->format('dmY') === '01012222') {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->DateExtract;
|
||||
}
|
||||
|
||||
/**
|
||||
* Рассчитать койко-дни для данной истории болезни
|
||||
*/
|
||||
public function getBedDays(): int
|
||||
{
|
||||
if (!$this->DateRecipient) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$start = Carbon::parse($this->DateRecipient);
|
||||
|
||||
// Определяем дату окончания
|
||||
if ($this->isStillInHospital()) {
|
||||
// Пациент еще в стационаре
|
||||
$end = Carbon::now();
|
||||
} else {
|
||||
// Пациент выписан
|
||||
$end = Carbon::parse($this->DateExtract);
|
||||
}
|
||||
|
||||
return $start->diffInDays($end);
|
||||
}
|
||||
|
||||
public function observationPatient()
|
||||
{
|
||||
return $this->hasMany(ObservationPatient::class, 'rf_medicalhistory_id', 'MedicalHistoryID');
|
||||
|
||||
Reference in New Issue
Block a user