wip
This commit is contained in:
parent
9811638361
commit
adce481226
@ -8,6 +8,7 @@
|
||||
use App\Services\Pacs\DicomUtils;
|
||||
use App\Services\Pacs\OrthancRestClient;
|
||||
use App\Services\StudyRouter\DicomStudyRouter;
|
||||
use App\Services\StudyRouter\DicomTagIdentifiers;
|
||||
use Carbon\Carbon;
|
||||
use Exception;
|
||||
use Illuminate\Pipeline\Pipeline;
|
||||
@ -105,6 +106,40 @@ public function fetchStudyDetails(string $orthanc_uuid): ?array
|
||||
return $study;
|
||||
}
|
||||
|
||||
public function matchOrganization(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::BodyPartExamined->value => data_get($orthanc_src, 'RequestedTags.BodyPartExamined'),
|
||||
DicomTagIdentifiers::InstitutionName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::InstitutionAddress->value => data_get($orthanc_src, 'RequestedTags.InstitutionAddress'),
|
||||
DicomTagIdentifiers::StudyDescription->value => $this->getStudyDescription($orthanc_src),
|
||||
DicomTagIdentifiers::OperatorsName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::StationName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::ReferringPhysicianName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::Manufacturer->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::SoftwareVersions->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
DicomTagIdentifiers::ProtocolName->value => data_get($orthanc_src, 'MainDicomTags.InstitutionName'),
|
||||
];
|
||||
}
|
||||
|
||||
public function getStudyDescription(mixed $orthanc_src): ?string
|
||||
{
|
||||
$result = data_get($orthanc_src, 'MainDicomTags.StudyDescription');
|
||||
|
||||
if (blank($result)) {
|
||||
$result = data_get($orthanc_src, 'RequestedTags.AcquisitionDeviceProcessingDescription');
|
||||
}
|
||||
|
||||
if (blank($result)) {
|
||||
$result = data_get($orthanc_src, 'MainDicomTags.AcquisitionDeviceProcessingDescription');
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function transformData(mixed $orthanc_src): array
|
||||
{
|
||||
$inst_name = data_get($orthanc_src, 'MainDicomTags.InstitutionName');
|
||||
@ -112,6 +147,7 @@ public function transformData(mixed $orthanc_src): array
|
||||
|
||||
$patient_name = data_get($orthanc_src, 'PatientMainDicomTags.PatientName');
|
||||
|
||||
$descr = $this->getStudyDescription($orthanc_src);
|
||||
$study = [
|
||||
'dicom_server_id' => $this->dicomServer->id,
|
||||
'orthanc_uuid' => strtolower($orthanc_src['ID']),
|
||||
@ -137,6 +173,8 @@ public function transformData(mixed $orthanc_src): array
|
||||
'image_count' => data_get($orthanc_src, 'Statistics.CountInstances'),
|
||||
'series_count' => data_get($orthanc_src, 'Statistics.CountSeries'),
|
||||
'disk_size' => data_get($orthanc_src, 'Statistics.DiskSize'),
|
||||
|
||||
'study_description' =>$descr,
|
||||
];
|
||||
|
||||
if ((bool) data_get($orthanc_src, 'IsStable', false)) {
|
||||
@ -155,15 +193,6 @@ public function transformData(mixed $orthanc_src): array
|
||||
}
|
||||
}
|
||||
|
||||
$descr = data_get($orthanc_src, 'MainDicomTags.StudyDescription');
|
||||
if (blank($descr)) {
|
||||
$descr = data_get($orthanc_src, 'RequestedTags.AcquisitionDeviceProcessingDescription');
|
||||
}
|
||||
if (blank($descr)) {
|
||||
$descr = data_get($orthanc_src, 'MainDicomTags.AcquisitionDeviceProcessingDescription');
|
||||
}
|
||||
$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);
|
||||
|
Loading…
Reference in New Issue
Block a user