* добавил исход спец контингенту

* оптимизация обновления при редактировании спец контингента
* добавил поддержку заключительных диагнозов
* изменил определение законченной операции
* добавил поддержку исхода операции
* добавил определение отмены для операции через назначение
* работа над диапазонами календарей, подсчет статистики
* добавил статусы отчетов и подкорректировал привязку спец контингента к отчету
* добавил новые сервисы для будущего кеширования
* частичное разделение логики подсчета пациентов
This commit is contained in:
brusnitsyn
2026-04-22 20:35:39 +09:00
parent 2041ab54ea
commit 719eb1403f
39 changed files with 1458 additions and 763 deletions

View File

@@ -43,11 +43,15 @@ class UnifiedPatientData
$birthDate = $birthDateValue?->format('Y-m-d');
$manualId = $linkedManualPatient?->department_patient_id;
$outcomeMigration = $patient->relationLoaded('outcomeMigration')
? $patient->outcomeMigration->first()
? $patient->outcomeMigration()->first()
: null;
$migration = $patient->relationLoaded('migrations')
? $patient->migrations->first()
: null;
if (!$migration && $patient->relationLoaded('latestMigration')) {
$migration = $patient->latestMigration;
}
$diagnosisMkb = $outcomeMigration?->mainDiagnosis?->mkb ?? $migration?->mainDiagnosis?->mkb;
$operations = $patient->relationLoaded('surgicalOperations')
? $patient->surgicalOperations->map(fn ($operation) => [
@@ -91,7 +95,7 @@ class UnifiedPatientData
$manualId = $linkedManualPatient?->department_patient_id;
$medicalHistory = $migration->medicalHistory;
$outcomeMigration = $medicalHistory->relationLoaded('outcomeMigration')
? $medicalHistory->outcomeMigration->first()
? $medicalHistory->outcomeMigration()->first()
: null;
$operations = $medicalHistory->relationLoaded('surgicalOperations')
? $medicalHistory->surgicalOperations->map(fn ($operation) => [
@@ -164,6 +168,9 @@ class UnifiedPatientData
{
$birthDate = self::normalizeDate($snapshot->birth_date);
// if ($snapshot->rf_medicalhistory_id === 334148)
// dd($snapshot);
return new self(
id: $snapshot->rf_department_patient_id ? "manual:{$snapshot->rf_department_patient_id}" : ($snapshot->patient_uid ?: "mis:{$snapshot->rf_medicalhistory_id}"),
patientUid: $snapshot->patient_uid ?: ($snapshot->rf_medicalhistory_id ? "mis:{$snapshot->rf_medicalhistory_id}" : "snapshot:{$snapshot->medical_history_snapshot_id}"),