Профиль хирургии
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
class Department extends Model
|
||||
{
|
||||
@@ -36,4 +37,19 @@ class Department extends Model
|
||||
{
|
||||
return $this->belongsTo(DepartmentType::class, 'rf_department_type', 'department_type_id');
|
||||
}
|
||||
|
||||
public function userDepartment()
|
||||
{
|
||||
return $this->belongsTo(UserDepartment::class, 'rf_department_id', 'department_id');
|
||||
}
|
||||
|
||||
public function recipientPlanOfYear()
|
||||
{
|
||||
$now = Carbon::now();
|
||||
|
||||
return $this->metrikaDefault()
|
||||
->where('date_end', '>', $now)
|
||||
->where('rf_metrika_item_id', 23)
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class LifeMisMigrationPatient extends Model
|
||||
{
|
||||
$query->where('rf_kl_VisitResultID', 0)
|
||||
->where('rf_kl_StatCureResultID', 0)
|
||||
->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()])
|
||||
// ->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()])
|
||||
// ->whereHas('medicalHistory', function ($query) use ($branchId, $dateRange) {
|
||||
// $query->whereDate('DateExtract', '1900-01-01');
|
||||
// })
|
||||
@@ -48,7 +48,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateIngoing', '>=', $dateRange->startSql())
|
||||
->where('DateIngoing', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -79,7 +81,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -102,7 +106,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -125,7 +131,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -148,7 +156,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -168,7 +178,9 @@ class LifeMisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -182,7 +194,9 @@ class LifeMisMigrationPatient extends Model
|
||||
$query->where('rf_kl_VisitResultID', '<>', 0)
|
||||
->where('rf_MedicalHistoryID', '<>', 0)
|
||||
->when($dateRange, function($query) use ($dateRange) {
|
||||
return $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// return $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
return $query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
});
|
||||
|
||||
if ($branchId) {
|
||||
|
||||
@@ -102,7 +102,9 @@ class MisMedicalHistory extends Model
|
||||
public function scopeOperationOnBranch($query, $branchId, $startDate, $endDate)
|
||||
{
|
||||
return $this->surgicalOperations()->where('rf_StationarBranchID', $branchId)
|
||||
->whereBetween('Date', [$startDate, $endDate]);
|
||||
->where('Date', '>=', $startDate)
|
||||
->where('Date', '<=', $endDate);
|
||||
// ->whereBetween('Date', [$startDate, $endDate]);
|
||||
}
|
||||
|
||||
public function scopeCurrentlyHospitalized($query)
|
||||
@@ -143,6 +145,13 @@ class MisMedicalHistory extends Model
|
||||
return $this->hasMany(MisMigrationPatient::class, 'rf_MedicalHistoryID', 'MedicalHistoryID');
|
||||
}
|
||||
|
||||
public function outcomeMigration()
|
||||
{
|
||||
return $this->migrations()
|
||||
->whereDate('DateOut', '<>', '2222-01-01')
|
||||
->orderBy('DateOut', 'desc');
|
||||
}
|
||||
|
||||
/*
|
||||
* Движение по StationarBranch
|
||||
*/
|
||||
@@ -166,7 +175,9 @@ class MisMedicalHistory extends Model
|
||||
->where('sb.rf_DepartmentID', $departmentId);
|
||||
|
||||
if ($startDate && $endDate) {
|
||||
$q->whereBetween('mp.DateIngoing', [$startDate, $endDate]);
|
||||
$q->where('mp.DateIngoing', '>=', $startDate)
|
||||
->where('mp.DateIngoing', '<=', $endDate);
|
||||
// $q->whereBetween('mp.DateIngoing', [$startDate, $endDate]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -21,6 +21,11 @@ class MisMigrationPatient extends Model
|
||||
return $this->hasMany(MisDiagnos::class, 'rf_MigrationPatientID', 'MigrationPatientID');
|
||||
}
|
||||
|
||||
public function mainDiagnosis()
|
||||
{
|
||||
return $this->hasOne(MisDiagnos::class, 'rf_MigrationPatientID', 'MigrationPatientID')->where('rf_DiagnosTypeID', 3);
|
||||
}
|
||||
|
||||
public function mkb()
|
||||
{
|
||||
return $this->hasOne(MisMKB::class, 'MKBID', 'rf_MKBID');
|
||||
@@ -48,7 +53,9 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
// $query->whereBetween('DateIngoing', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateIngoing', '>=', $dateRange->startSql())
|
||||
->where('DateIngoing', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -79,7 +86,9 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
// $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -102,7 +111,8 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -125,7 +135,8 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -148,7 +159,8 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -168,7 +180,8 @@ class MisMigrationPatient extends Model
|
||||
}
|
||||
|
||||
if ($dateRange) {
|
||||
$query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
$query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -182,7 +195,8 @@ class MisMigrationPatient extends Model
|
||||
$query->where('rf_kl_VisitResultID', '<>', 0)
|
||||
->where('rf_MedicalHistoryID', '<>', 0)
|
||||
->when($dateRange, function($query) use ($dateRange) {
|
||||
return $query->whereBetween('DateOut', [$dateRange->startSql(), $dateRange->endSql()]);
|
||||
return $query->where('DateOut', '>=', $dateRange->startSql())
|
||||
->where('DateOut', '<=', $dateRange->endSql());
|
||||
});
|
||||
|
||||
if ($branchId) {
|
||||
|
||||
@@ -13,4 +13,9 @@ class MisSurgicalOperation extends Model
|
||||
{
|
||||
return $this->belongsTo(MisServiceMedical::class, 'rf_kl_ServiceMedicalID', 'ServiceMedicalID');
|
||||
}
|
||||
|
||||
public function medicalHistory()
|
||||
{
|
||||
return $this->belongsTo(MisMedicalHistory::class, 'rf_MedicalHistoryID', 'MedicalHistoryID');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
class User extends Authenticatable
|
||||
@@ -61,7 +63,7 @@ class User extends Authenticatable
|
||||
|
||||
public function departments()
|
||||
{
|
||||
return $this->hasMany(UserDepartment::class, 'rf_user_id', 'id');
|
||||
return $this->hasMany(UserDepartment::class, 'rf_user_id', 'id')->orderBy('order');
|
||||
}
|
||||
|
||||
public function favoriteDepartment()
|
||||
@@ -89,9 +91,37 @@ class User extends Authenticatable
|
||||
public function currentRole()
|
||||
{
|
||||
$defaultRoleId = $this->roles()->where('is_default', true)->first()->role_id;
|
||||
$sessionKey = 'user_' . $this->id . '_current_role';
|
||||
$roleId = $this->current_role_id ?? $defaultRoleId;
|
||||
|
||||
if (app()->runningInConsole()) {
|
||||
// Код выполняется в CLI (команда artisan, тесты и т.д.)
|
||||
return Role::where('role_id', $defaultRoleId)->first();
|
||||
}
|
||||
|
||||
$sessionId = session()->getId();
|
||||
$token = Auth::user()->currentAccessToken();
|
||||
// $sessionKey = 'user_' . $this->id . '_current_role';
|
||||
// $roleId = $this->current_role_id ?? $defaultRoleId;
|
||||
//
|
||||
// $role = Role::where('role_id', $roleId)->first();
|
||||
|
||||
if ($token) {
|
||||
foreach ($token->abilities as $ability) {
|
||||
if (str_starts_with($ability, 'role:')) {
|
||||
$apiRoleId = (int) str_replace('role:', '', $ability);
|
||||
$roleId = $apiRoleId ?? $defaultRoleId;
|
||||
$role = Role::where('role_id', $roleId)->first();
|
||||
|
||||
if ($role) {
|
||||
return $role;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sessionRoleId = DB::table('sessions')->where('id', $sessionId)->value('role_id');
|
||||
|
||||
$roleId = $sessionRoleId ?? $defaultRoleId;
|
||||
// dd($sessionId);
|
||||
$role = Role::where('role_id', $roleId)->first();
|
||||
|
||||
return $role;
|
||||
|
||||
@@ -12,6 +12,13 @@ class UserDepartment extends Model
|
||||
'rf_user_id',
|
||||
'rf_department_id',
|
||||
'is_favorite',
|
||||
'order',
|
||||
'user_name'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'is_favorite' => 'boolean',
|
||||
'order' => 'integer',
|
||||
];
|
||||
|
||||
public function user()
|
||||
|
||||
Reference in New Issue
Block a user