From ef82c77e0dcf6b16ebd78d3c5dde08fee3c41a5e Mon Sep 17 00:00:00 2001 From: Masroor Ehsan Date: Wed, 8 Jan 2025 18:17:02 +0600 Subject: [PATCH] FIX #3 stat --- app/Services/Pacs/Sync/StudiesSync.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/Services/Pacs/Sync/StudiesSync.php b/app/Services/Pacs/Sync/StudiesSync.php index 3505fd2..f505e6f 100644 --- a/app/Services/Pacs/Sync/StudiesSync.php +++ b/app/Services/Pacs/Sync/StudiesSync.php @@ -2,6 +2,7 @@ namespace App\Services\Pacs\Sync; +use App\Domain\Study\Priority; use App\Domain\Study\StudyLevelStatus; use App\Services\Pacs\DicomUtils; use App\Services\Pacs\InstituteMapper; @@ -103,6 +104,8 @@ public function transformData(mixed $orthanc_src): array $inst_name = data_get($orthanc_src, 'MainDicomTags.InstitutionName'); $inst_id = InstituteMapper::map($inst_name); + $patient_name = data_get($orthanc_src, 'PatientMainDicomTags.PatientName'); + $study = [ 'orthanc_uuid' => strtolower($orthanc_src['ID']), 'institution_name' => $inst_name, @@ -110,7 +113,7 @@ public function transformData(mixed $orthanc_src): array 'patient_uuid' => strtolower($orthanc_src['ParentPatient']), 'patient_id' => data_get($orthanc_src, 'PatientMainDicomTags.PatientID'), - 'patient_name' => data_get($orthanc_src, 'PatientMainDicomTags.PatientName'), + 'patient_name' => $patient_name, 'patient_sex' => data_get($orthanc_src, 'PatientMainDicomTags.PatientSex'), 'accession_number' => data_get($orthanc_src, 'MainDicomTags.AccessionNumber'), @@ -152,6 +155,11 @@ public function transformData(mixed $orthanc_src): array } $this->setValue($study, 'study_description', trim($descr)); + // check for priority in patient name or description + if (preg_match('/\b(urgent|stat)\b/i', implode(' ', [$descr, $patient_name]))) { + $this->setValue($study, 'priority', Priority::Stat->value); + } + $properties = [ 'other_patient_names' => data_get($orthanc_src, 'RequestedTags.OtherPatientNames'), 'other_patient_ids' => data_get($orthanc_src, 'RequestedTags.OtherPatientIDs'),