UPSERT series

This commit is contained in:
Masroor Ehsan 2024-12-30 19:41:56 +06:00
parent c257464c13
commit f144862bd6

View File

@ -148,7 +148,7 @@ private function prepareData(mixed $orthanc_src): array
$series = []; $series = [];
foreach ($orthanc_src['Series'] as $ser) { foreach ($orthanc_src['Series'] as $ser) {
$params = [ $params = [
'orthanc_uid' => $ser['ID'], 'orthanc_uid' => strtolower($ser['ID']),
'series_instance_uid' => data_get($ser, 'MainDicomTags.SeriesInstanceUID'), 'series_instance_uid' => data_get($ser, 'MainDicomTags.SeriesInstanceUID'),
'series_date' => DicomUtils::dateTimeToCarbon($ser['MainDicomTags']['SeriesDate'], $ser['MainDicomTags']['SeriesTime']), 'series_date' => DicomUtils::dateTimeToCarbon($ser['MainDicomTags']['SeriesDate'], $ser['MainDicomTags']['SeriesTime']),
'series_number' => data_get($ser, 'MainDicomTags.SeriesNumber'), 'series_number' => data_get($ser, 'MainDicomTags.SeriesNumber'),
@ -183,9 +183,16 @@ private function updateStudy(int $row_id, mixed $study): void
$data = $this->prepareData($study); $data = $this->prepareData($study);
unset($data['study']['orthanc_uid']); unset($data['study']['orthanc_uid']);
DB::table('studies')->where('id', $row_id)->update($data['study']); DB::table('studies')->where('id', $row_id)->update($data['study']);
if (! empty($data['details'])) { if (! empty($data['details'])) {
DB::table('study_details')->where('study_id', $row_id)->update($data['details']); DB::table('study_details')->where('study_id', $row_id)->update($data['details']);
} }
foreach ($study['series'] as $series) {
$series_id = $series['orthanc_uid'];
unset($series['orthanc_uid']);
DB::table('study_series')->where('orthanc_uid', $series_id)->update($series);
}
} }
private function insertStudy(mixed $study): void private function insertStudy(mixed $study): void
@ -194,5 +201,10 @@ private function insertStudy(mixed $study): void
$study = Study::create($data['study']); $study = Study::create($data['study']);
$data['details']['study_id'] = $study->id; $data['details']['study_id'] = $study->id;
StudyDetails::create($data['details']); StudyDetails::create($data['details']);
foreach ($study['series'] as $series) {
$series['study_id'] = $study->id;
DB::table('study_series')->insert($series);
}
} }
} }