From a64959b2d0369cc8463f02c934d1647f3c4b3c6d Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Thu, 23 Jan 2025 10:19:11 +0600 Subject: [PATCH] refx --- app/Services/Pacs/DicomUtils.php | 116 ++++++++++++------------- app/Services/Pacs/Sync/StudiesSync.php | 32 +++---- 2 files changed, 74 insertions(+), 74 deletions(-) diff --git a/app/Services/Pacs/DicomUtils.php b/app/Services/Pacs/DicomUtils.php index 411041e..9b28693 100644 --- a/app/Services/Pacs/DicomUtils.php +++ b/app/Services/Pacs/DicomUtils.php @@ -2,7 +2,7 @@ namespace App\Services\Pacs; -use App\Services\StudyRouter\DicomTagIdentifiers; +use App\Services\StudyRouter\RawDicomTag; use Carbon\Carbon; use Illuminate\Support\Str; @@ -26,65 +26,65 @@ public static function dateTimeToCarbon(?string $datePart, ?string $timePart, st return Carbon::createFromFormat('YmdHis', $datePart . Str::before($timePart, '.'), $timezone); } - public static function getDicomTagDescription(DicomTagIdentifiers $tag): string + public static function getDicomTagDescription(RawDicomTag $tag): string { return match ($tag) { - DicomTagIdentifiers::PatientName => "Patient's Name", - DicomTagIdentifiers::PatientID => 'Patient ID', - DicomTagIdentifiers::PatientBirthDate => "Patient's Birth Date", - DicomTagIdentifiers::PatientSex => "Patient's Sex", - DicomTagIdentifiers::StudyInstanceUID => 'Study Instance UID', - DicomTagIdentifiers::SeriesInstanceUID => 'Series Instance UID', - DicomTagIdentifiers::StudyID => 'Study ID', - DicomTagIdentifiers::SeriesNumber => 'Series Number', - DicomTagIdentifiers::InstanceNumber => 'Instance Number', - DicomTagIdentifiers::SOPClassUID => 'SOP Class UID', - DicomTagIdentifiers::SOPInstanceUID => 'SOP Instance UID', - DicomTagIdentifiers::StudyDate => 'Study Date', - DicomTagIdentifiers::StudyTime => 'Study Time', - DicomTagIdentifiers::AccessionNumber => 'Accession Number', - DicomTagIdentifiers::Modality => 'Modality', - DicomTagIdentifiers::Manufacturer => 'Manufacturer', - DicomTagIdentifiers::InstitutionName => 'Institution Name', - DicomTagIdentifiers::ReferringPhysicianName => "Referring Physician's Name", - DicomTagIdentifiers::StationName => 'Station Name', - DicomTagIdentifiers::SeriesDescription => 'Series Description', - DicomTagIdentifiers::ManufacturerModelName => "Manufacturer's Model Name", - DicomTagIdentifiers::PatientAge => "Patient's Age", - DicomTagIdentifiers::PatientWeight => "Patient's Weight", - DicomTagIdentifiers::BodyPartExamined => 'Body Part Examined', - DicomTagIdentifiers::ProtocolName => 'Protocol Name', - DicomTagIdentifiers::SoftwareVersions => 'Software Versions', - DicomTagIdentifiers::AcquisitionDate => 'Acquisition Date', - DicomTagIdentifiers::AcquisitionTime => 'Acquisition Time', - DicomTagIdentifiers::ContentDate => 'Content Date', - DicomTagIdentifiers::ContentTime => 'Content Time', - DicomTagIdentifiers::AcquisitionDeviceProcessingDescription => 'Acquisition Device Processing Description', - DicomTagIdentifiers::InstitutionAddress => 'Institution Address', - DicomTagIdentifiers::StudyDescription => 'Study Description', - DicomTagIdentifiers::OperatorsName => "Operator's Name", - DicomTagIdentifiers::Private10 => 'Private Tag 10', - DicomTagIdentifiers::IW_Private => 'IW Private Tag', - DicomTagIdentifiers::ImageType => 'Image Type', - DicomTagIdentifiers::PatientOrientation => 'Patient Orientation', - DicomTagIdentifiers::ImagePositionPatient => 'Image Position (Patient)', - DicomTagIdentifiers::ImageOrientationPatient => 'Image Orientation (Patient)', - DicomTagIdentifiers::FrameOfReferenceUID => 'Frame of Reference UID', - DicomTagIdentifiers::PositionReferenceIndicator => 'Position Reference Indicator', - DicomTagIdentifiers::SliceLocation => 'Slice Location', - DicomTagIdentifiers::SamplesPerPixel => 'Samples per Pixel', - DicomTagIdentifiers::PhotometricInterpretation => 'Photometric Interpretation', - DicomTagIdentifiers::Rows => 'Rows', - DicomTagIdentifiers::Columns => 'Columns', - DicomTagIdentifiers::PixelSpacing => 'Pixel Spacing', - DicomTagIdentifiers::BitsAllocated => 'Bits Allocated', - DicomTagIdentifiers::BitsStored => 'Bits Stored', - DicomTagIdentifiers::HighBit => 'High Bit', - DicomTagIdentifiers::PixelRepresentation => 'Pixel Representation', - DicomTagIdentifiers::WindowCenter => 'Window Center', - DicomTagIdentifiers::WindowWidth => 'Window Width', - DicomTagIdentifiers::RescaleIntercept => 'Rescale Intercept', - DicomTagIdentifiers::RescaleSlope => 'Rescale Slope', + RawDicomTag::PatientName => "Patient's Name", + RawDicomTag::PatientID => 'Patient ID', + RawDicomTag::PatientBirthDate => "Patient's Birth Date", + RawDicomTag::PatientSex => "Patient's Sex", + RawDicomTag::StudyInstanceUID => 'Study Instance UID', + RawDicomTag::SeriesInstanceUID => 'Series Instance UID', + RawDicomTag::StudyID => 'Study ID', + RawDicomTag::SeriesNumber => 'Series Number', + RawDicomTag::InstanceNumber => 'Instance Number', + RawDicomTag::SOPClassUID => 'SOP Class UID', + RawDicomTag::SOPInstanceUID => 'SOP Instance UID', + RawDicomTag::StudyDate => 'Study Date', + RawDicomTag::StudyTime => 'Study Time', + RawDicomTag::AccessionNumber => 'Accession Number', + RawDicomTag::Modality => 'Modality', + RawDicomTag::Manufacturer => 'Manufacturer', + RawDicomTag::InstitutionName => 'Institution Name', + RawDicomTag::ReferringPhysicianName => "Referring Physician's Name", + RawDicomTag::StationName => 'Station Name', + RawDicomTag::SeriesDescription => 'Series Description', + RawDicomTag::ManufacturerModelName => "Manufacturer's Model Name", + RawDicomTag::PatientAge => "Patient's Age", + RawDicomTag::PatientWeight => "Patient's Weight", + RawDicomTag::BodyPartExamined => 'Body Part Examined', + RawDicomTag::ProtocolName => 'Protocol Name', + RawDicomTag::SoftwareVersions => 'Software Versions', + RawDicomTag::AcquisitionDate => 'Acquisition Date', + RawDicomTag::AcquisitionTime => 'Acquisition Time', + RawDicomTag::ContentDate => 'Content Date', + RawDicomTag::ContentTime => 'Content Time', + RawDicomTag::AcquisitionDeviceProcessingDescription => 'Acquisition Device Processing Description', + RawDicomTag::InstitutionAddress => 'Institution Address', + RawDicomTag::StudyDescription => 'Study Description', + RawDicomTag::OperatorsName => "Operator's Name", + RawDicomTag::Private10 => 'Private Tag 10', + RawDicomTag::IW_Private => 'IW Private Tag', + RawDicomTag::ImageType => 'Image Type', + RawDicomTag::PatientOrientation => 'Patient Orientation', + RawDicomTag::ImagePositionPatient => 'Image Position (Patient)', + RawDicomTag::ImageOrientationPatient => 'Image Orientation (Patient)', + RawDicomTag::FrameOfReferenceUID => 'Frame of Reference UID', + RawDicomTag::PositionReferenceIndicator => 'Position Reference Indicator', + RawDicomTag::SliceLocation => 'Slice Location', + RawDicomTag::SamplesPerPixel => 'Samples per Pixel', + RawDicomTag::PhotometricInterpretation => 'Photometric Interpretation', + RawDicomTag::Rows => 'Rows', + RawDicomTag::Columns => 'Columns', + RawDicomTag::PixelSpacing => 'Pixel Spacing', + RawDicomTag::BitsAllocated => 'Bits Allocated', + RawDicomTag::BitsStored => 'Bits Stored', + RawDicomTag::HighBit => 'High Bit', + RawDicomTag::PixelRepresentation => 'Pixel Representation', + RawDicomTag::WindowCenter => 'Window Center', + RawDicomTag::WindowWidth => 'Window Width', + RawDicomTag::RescaleIntercept => 'Rescale Intercept', + RawDicomTag::RescaleSlope => 'Rescale Slope', }; } } diff --git a/app/Services/Pacs/Sync/StudiesSync.php b/app/Services/Pacs/Sync/StudiesSync.php index b6a23e8..022fdf1 100644 --- a/app/Services/Pacs/Sync/StudiesSync.php +++ b/app/Services/Pacs/Sync/StudiesSync.php @@ -8,7 +8,7 @@ use App\Services\Pacs\DicomUtils; use App\Services\Pacs\OrthancRestClient; use App\Services\StudyRouter\DicomStudyRouter; -use App\Services\StudyRouter\DicomTagIdentifiers; +use App\Services\StudyRouter\RawDicomTag; use Carbon\Carbon; use Exception; use Illuminate\Pipeline\Pipeline; @@ -109,21 +109,21 @@ public function fetchStudyDetails(string $orthanc_uuid): ?array public function matchRouting(mixed $orthanc_src) { $dicomData = [ - DicomTagIdentifiers::PatientName->value => data_get($orthanc_src, 'PatientMainDicomTags.PatientName'), - DicomTagIdentifiers::PatientID->value => data_get($orthanc_src, 'PatientMainDicomTags.PatientID'), - DicomTagIdentifiers::Modality->value => data_get($orthanc_src, 'RequestedTags.Modality'), - DicomTagIdentifiers::StudyDescription->value => $this->getStudyDescription($orthanc_src), - DicomTagIdentifiers::BodyPartExamined->value => data_get($orthanc_src, 'RequestedTags.BodyPartExamined'), - DicomTagIdentifiers::ReferringPhysicianName->value => data_get($orthanc_src, 'MainDicomTags.ReferringPhysicianName'), - DicomTagIdentifiers::AccessionNumber->value => data_get($orthanc_src, 'MainDicomTags.AccessionNumber'), - DicomTagIdentifiers::InstitutionName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'), - DicomTagIdentifiers::InstitutionAddress->value => data_get($orthanc_src, 'RequestedTags.InstitutionAddress'), - DicomTagIdentifiers::OperatorsName->value => data_get($orthanc_src, 'RequestedTags.OperatorsName'), - DicomTagIdentifiers::StationName->value => data_get($orthanc_src, 'RequestedTags.StationName'), - DicomTagIdentifiers::Manufacturer->value => data_get($orthanc_src, 'RequestedTags.Manufacturer'), - DicomTagIdentifiers::ManufacturerModelName->value => data_get($orthanc_src, 'RequestedTags.ManufacturerModelName'), - DicomTagIdentifiers::SoftwareVersions->value => data_get($orthanc_src, 'RequestedTags.SoftwareVersions'), - DicomTagIdentifiers::ProtocolName->value => data_get($orthanc_src, 'xxx'), + RawDicomTag::PatientName->value => data_get($orthanc_src, 'PatientMainDicomTags.PatientName'), + RawDicomTag::PatientID->value => data_get($orthanc_src, 'PatientMainDicomTags.PatientID'), + RawDicomTag::Modality->value => data_get($orthanc_src, 'RequestedTags.Modality'), + RawDicomTag::StudyDescription->value => $this->getStudyDescription($orthanc_src), + RawDicomTag::BodyPartExamined->value => data_get($orthanc_src, 'RequestedTags.BodyPartExamined'), + RawDicomTag::ReferringPhysicianName->value => data_get($orthanc_src, 'MainDicomTags.ReferringPhysicianName'), + RawDicomTag::AccessionNumber->value => data_get($orthanc_src, 'MainDicomTags.AccessionNumber'), + RawDicomTag::InstitutionName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'), + RawDicomTag::InstitutionAddress->value => data_get($orthanc_src, 'RequestedTags.InstitutionAddress'), + RawDicomTag::OperatorsName->value => data_get($orthanc_src, 'RequestedTags.OperatorsName'), + RawDicomTag::StationName->value => data_get($orthanc_src, 'RequestedTags.StationName'), + RawDicomTag::Manufacturer->value => data_get($orthanc_src, 'RequestedTags.Manufacturer'), + RawDicomTag::ManufacturerModelName->value => data_get($orthanc_src, 'RequestedTags.ManufacturerModelName'), + RawDicomTag::SoftwareVersions->value => data_get($orthanc_src, 'RequestedTags.SoftwareVersions'), + RawDicomTag::ProtocolName->value => data_get($orthanc_src, 'xxx'), ]; $dicomData = array_purge($dicomData);