Новые таблицы миса
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class MisMedicalHistory extends Model
|
||||
{
|
||||
@@ -18,4 +19,60 @@ class MisMedicalHistory extends Model
|
||||
'BD',
|
||||
'Address'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'DateRecipient' => 'datetime'
|
||||
];
|
||||
|
||||
/*
|
||||
* Истории со срочностью - Плановая
|
||||
*/
|
||||
public function scopePlan()
|
||||
{
|
||||
return $this->where('rf_EmerSignID', 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Истории со срочностью - Экстренная
|
||||
*/
|
||||
public function scopeEmergency()
|
||||
{
|
||||
return $this->where('rf_EmerSignID', 2);
|
||||
}
|
||||
|
||||
/*
|
||||
* Движения истории
|
||||
*/
|
||||
public function migrations()
|
||||
{
|
||||
return $this->hasMany(MisMigrationPatient::class, 'rf_MedicalHistoryID', 'MedicalHistoryID');
|
||||
}
|
||||
|
||||
/*
|
||||
* Движение по StationarBranch
|
||||
*/
|
||||
public function scopeInStationarBranch($query, $stationarBranchID)
|
||||
{
|
||||
return $this->whereHas('migrations', function ($query) use ($stationarBranchID) {
|
||||
$query->where('rf_StationarBranchID', $stationarBranchID);
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Истории в отделении ($departmentId)
|
||||
*/
|
||||
public function scopeInDepartment($query, $departmentId, $startDate, $endDate)
|
||||
{
|
||||
return $query->whereExists(function ($q) use ($departmentId, $startDate, $endDate) {
|
||||
$q->select(DB::raw(1))
|
||||
->from('stt_migrationpatient as mp')
|
||||
->join('stt_stationarbranch as sb', 'sb.StationarBranchID', '=', 'mp.rf_StationarBranchID')
|
||||
->whereColumn('mp.rf_MedicalHistoryID', 'stt_medicalhistory.MedicalHistoryID')
|
||||
->where('sb.rf_DepartmentID', $departmentId);
|
||||
|
||||
if ($startDate && $endDate) {
|
||||
$q->whereBetween('mp.DateIngoing', [$startDate, $endDate]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user