diff --git a/app/Http/Controllers/Api/ReportController.php b/app/Http/Controllers/Api/ReportController.php
index 7371c22..9bc96c1 100644
--- a/app/Http/Controllers/Api/ReportController.php
+++ b/app/Http/Controllers/Api/ReportController.php
@@ -136,9 +136,20 @@ class ReportController extends Controller
->map(function ($item, $index) {
$item->num = $index + 1;
return $item;
- });;
+ });
+ } else if ($status === 'observation') {
+ $patients = ObservationPatient::with(['history'])
+ ->where('rf_department_id', $misDepartmentId)
+ ->history;
} else if ($status === 'deceased') {
-
+ $patients = MisMedicalHistory::select(...$model->getFillable())
+ ->deceased()
+ ->inDepartment($misDepartmentId, $startDate, $endDate)
+ ->get()
+ ->map(function ($item, $index) {
+ $item->num = $index + 1;
+ return $item;
+ });
}
$patients->load(['migrations' => function ($query) use ($startDate, $endDate, $misStationarBranchId) {
diff --git a/app/Http/Controllers/Web/StatisticController.php b/app/Http/Controllers/Web/StatisticController.php
index 8234a8b..5524471 100644
--- a/app/Http/Controllers/Web/StatisticController.php
+++ b/app/Http/Controllers/Web/StatisticController.php
@@ -26,7 +26,8 @@ class StatisticController extends Controller
$data = [];
- $departments = Department::select('department_id', 'name_short')->get();
+ $departments = Department::select('department_id', 'name_short')
+ ->orderBy('name_short')->get();
foreach ($departments as $department) {
$allCount = MetrikaResult::whereHas('report', function ($query) use ($userDepartment, $department) {
diff --git a/app/Http/Resources/Mis/FormattedPatientResource.php b/app/Http/Resources/Mis/FormattedPatientResource.php
index 402ebaf..a2ac102 100644
--- a/app/Http/Resources/Mis/FormattedPatientResource.php
+++ b/app/Http/Resources/Mis/FormattedPatientResource.php
@@ -21,8 +21,8 @@ class FormattedPatientResource extends JsonResource
'num' => $this->num,
'mkb' => $this->whenLoaded('migrations', function () {
return [
- 'ds' => $this->migrations()->first()->diagnosis()->first()->mkb()->first()->DS ?? null,
- 'name' => $this->migrations()->first()->diagnosis()->first()->mkb()->first()->NAME ?? null,
+ 'ds' => $this->migrations()->first()->diagnosis()->first()?->mkb()->first()->DS ?? null,
+ 'name' => $this->migrations()->first()->diagnosis()->first()?->mkb()->first()->NAME ?? null,
];
}),
'fullname' => Str::ucwords(Str::lower("$this->FAMILY $this->Name $this->OT")),
diff --git a/app/Models/MisMedicalHistory.php b/app/Models/MisMedicalHistory.php
index e2ba687..8cdf51d 100644
--- a/app/Models/MisMedicalHistory.php
+++ b/app/Models/MisMedicalHistory.php
@@ -40,6 +40,14 @@ class MisMedicalHistory extends Model
return $this->where('rf_EmerSignID', 2);
}
+ /*
+ * Истории с результатом - Умер
+ */
+ public function scopeDeceased()
+ {
+ return $this->where('rf_kl_VisitResultID', 5);
+ }
+
/*
* Движения истории
*/
diff --git a/app/Models/ObservationPatient.php b/app/Models/ObservationPatient.php
index 21f3c18..8fdd51e 100644
--- a/app/Models/ObservationPatient.php
+++ b/app/Models/ObservationPatient.php
@@ -15,4 +15,9 @@ class ObservationPatient extends Model
'rf_department_id',
'rf_report_id',
];
+
+ public function history()
+ {
+ return $this->belongsTo(MisMedicalHistory::class, 'rf_medicalhistory_id', 'MedicalHistoryID');
+ }
}
diff --git a/database/seeders/TestDepartmentDataSeeder.php b/database/seeders/TestDepartmentDataSeeder.php
index f8fac02..ad5a574 100644
--- a/database/seeders/TestDepartmentDataSeeder.php
+++ b/database/seeders/TestDepartmentDataSeeder.php
@@ -105,7 +105,7 @@ class TestDepartmentDataSeeder extends Seeder
DepartmentMetrikaDefault::create([
'rf_department_id' => 2,
'rf_metrika_item_id' => 1,
- 'value' => '45'
+ 'value' => '42'
]);
DepartmentMetrikaDefault::create([
'rf_department_id' => 3,
@@ -135,17 +135,17 @@ class TestDepartmentDataSeeder extends Seeder
DepartmentMetrikaDefault::create([
'rf_department_id' => 8,
'rf_metrika_item_id' => 1,
- 'value' => '50'
+ 'value' => '48'
]);
DepartmentMetrikaDefault::create([
'rf_department_id' => 9,
'rf_metrika_item_id' => 1,
- 'value' => '50'
+ 'value' => '27'
]);
DepartmentMetrikaDefault::create([
'rf_department_id' => 10,
'rf_metrika_item_id' => 1,
- 'value' => '55'
+ 'value' => '58'
]);
DepartmentMetrikaDefault::create([
'rf_department_id' => 11,
diff --git a/resources/js/Pages/Index.vue b/resources/js/Pages/Index.vue
index 34ae1d1..fce6d5d 100644
--- a/resources/js/Pages/Index.vue
+++ b/resources/js/Pages/Index.vue
@@ -41,7 +41,7 @@ const currentDate = computed(() => {
:icon="TbArticle"
/>
diff --git a/resources/js/Pages/Report/Components/ReportFormInput.vue b/resources/js/Pages/Report/Components/ReportFormInput.vue
index 3e930f9..fb2ebfc 100644
--- a/resources/js/Pages/Report/Components/ReportFormInput.vue
+++ b/resources/js/Pages/Report/Components/ReportFormInput.vue
@@ -1,5 +1,5 @@
-
-
+
+
-
-
+
+
diff --git a/resources/js/Stores/report.js b/resources/js/Stores/report.js
index 99290ee..9d6aa3c 100644
--- a/resources/js/Stores/report.js
+++ b/resources/js/Stores/report.js
@@ -24,6 +24,7 @@ export const useReportStore = defineStore('reportStore', () => {
const dataOnReport = ref(null)
const reportInfo = ref(null)
+ const isLoadReportInfo = ref(false)
const patientColumns = [
{
@@ -94,9 +95,14 @@ export const useReportStore = defineStore('reportStore', () => {
}
const getReportInfo = async () => {
- await axios.get('/api/report').then((res) => {
- reportInfo.value = res.data
- })
+ isLoadReportInfo.value = true
+ await axios.get('/api/report')
+ .then((res) => {
+ reportInfo.value = res.data
+ })
+ .finally(() => {
+ isLoadReportInfo.value = false
+ })
}
const getDataOnReportDate = async () => {
@@ -114,6 +120,7 @@ export const useReportStore = defineStore('reportStore', () => {
timestampNow,
timestampCurrent,
timestampCurrentRange,
+ isLoadReportInfo,
dataOnReport,
patientColumns,
patientsData,