DROP PROCEDURE IF EXISTS IndexDICOMObject; CREATE PROCEDURE IndexDICOMObject ( /*Instance */ IN d00080012 varchar(255) , IN d00080008 varchar(255) , IN d00080013 varchar(255) , IN d00080016 varchar(255) , IN d00080018 varchar(255) , IN d00200013 varchar(255) , IN d00200037 varchar(255) , IN d00200032 varchar(255) , IN d00080032 time , IN d00080022 date , IN d00080023 varchar(255) , IN d00082218 varchar(255) , IN d00200012 varchar(255) , IN d00200020 varchar(255) , IN d00204000 varchar(255) , IN d00080301 varchar(255) , IN d00280302 varchar(255) , IN d20500020 varchar(255) , IN d00880200 varchar(255) , IN d00280002 varchar(255) , /* sample per pixel */ IN d00280004 varchar(255) , /* Photometric Intepretation */ IN d00280010 varchar(255) , /* Number of rows */ IN d00280011 varchar(255) , /* number of columns */ IN d00280100 varchar(255) , /* Bits allocated */ IN d00280102 varchar(255) , /* High Bit */ IN d00280103 varchar(255) , /* pixel representation */ IN d00281052 varchar(255) , /* Rescale Interept */ IN d00281053 varchar(255) , /* Rescale Slope */ /*series*/ IN d0020000e varchar(255) , IN d00080031 varchar(255) , IN d00080021 varchar(255) , IN d0008103e varchar(255) , IN d0008103f varchar(255) , IN d00200011 varchar(255) , IN d00080015 varchar(255) , IN d00080060 varchar(255) , IN d00081050 varchar(255) , IN d00081052 varchar(255) , IN d00102210 varchar(255) , IN d00180015 varchar(255) , IN d00181030 varchar(255) , IN d00185100 varchar(255) , /*study*/ IN d0020000d varchar(255), IN d00080061 varchar(255), IN d00080050 varchar(255), IN d00081060 varchar(255), IN d00080020 date, IN d00080030 time, IN d00080090 varchar(255), IN d0008009C varchar(255), IN d00081030 varchar(255), IN d00080005 varchar(255), IN d00080051 varchar(255), IN d00081032 varchar(255), IN d00321033 varchar(255), /*patient*/ IN d00100010 varchar(255), IN d00100020 varchar(255), IN d00100021 varchar(255), IN d00100030 date, IN d00100040 varchar(255), /*Instancelocation*/ IN bucketname varchar(255), IN region varchar(255), IN filekey nvarchar(2048) ) BEGIN DECLARE retpatid bigint; DECLARE retstudyid bigint; DECLARE retseriesid bigint; DECLARE retnewseries boolean; DECLARE retinstanceid bigint; DECLARE retnewinstance boolean; call InsertUpdatePatient( d00100010 , d00100020 , d00100021 , d00100030 , d00100040 , retpatid ); call InsertUpdateStudy( d0020000d , d00080061 , d00080050 , d00081060 , d00080020 , d00080030 , d00080090 , d0008009C , d00081030 , d00080005 , d00080051 , d00081032 , d00321033 , retpatid , retstudyid ); SELECT retstudyid; call InsertUpdateSeries( d0020000e , d00080031 , d00080021 , d0008103e , d0008103f , d00200011 , d00080015 , d00080060 , d00081050 , d00081052 , d00102210 , d00180015 , d00181030 , d00185100 , retstudyid , retseriesid, retnewseries ); SELECT retseriesid; call InsertUpdateInstance( d00080012 , d00080008 , d00080013 , d00080016 , d00080018 , d00200013 , d00200037 , d00200032 , d00080032 , d00080022 , d00080023 , d00082218 , d00200012 , d00200020 , d00204000 , d00080301 , d00280302 , d20500020 , d00880200 , d00280002 , d00280004 , d00280010 , d00280011 , d00280100 , d00280102 , d00280103 , d00281052 , d00281053 , retseriesid , retinstanceid, retnewinstance ); call InsertInstanceLocation( retinstanceid , bucketname , region , filekey ); if retnewseries = TRUE then UPDATE Study set seriescount = seriescount+1 where studyid = retstudyid; call UpdateModalitiesInStudy(retstudyid , d00080060); end if; if retnewinstance = TRUE then UPDATE Series set imagecount = imagecount+1 where seriesid = retseriesid; UPDATE Study set totalimagecount = totalimagecount+1 where studyid = retstudyid; end if; END;