[Dcmlib] GetPatSliceOrient(gdcm::File &h) (BIS)

Jean-Pierre ROUX jean-pierre.roux at creatis.insa-lyon.fr
Tue Oct 4 01:05:28 CEST 2005


At 21:24 +0200 3/10/05, Luca Picello wrote:
>Hello JP!!
>Thank you for the check. As you can see this dataset is really 
>nasty, however I do not need to use it in my application.

That's one of the most beautifull data set I've ever seen..
Allmost *all* the possible troubles are here !

I think we should add, to be used on each 'CoherentFileList' - after 
gdcm::SerieHelper constructor - , some methods like :

DiscardMinorityOrientations(), that could be used by aware users to 
drop scout views out of a list of slices (all images but one have the 
same Orientation)

SplitOnOrientation(), that could be used by aware users to create as 
many list as there are orientations

SplitOnPosition(), that could be used by aware users to create as 
many list as there are positions (sometimes, in the same 'Serie', 
there are images corresponding to several slices, at different times; 
what's meaningfull forthe user is the temporal evolution of a given 
slice)

SplitOnTime() (sometimes, in the same 'Serie', there are images 
corresponding to twice the same volume -before and after injection-; 
what's meaningfull for the user is each volume)

SplitOnWhatYouWant( ComparisonFunction) The users knows exactly what 
he wants -hope so-, he passes is own comparison function.

What I didn't think about, is the way we return the result (a list of 
CoherentFileList ?)

Any opinion ?
JPRx

>I tried it just for fun to see what are the parser limits.
>However, it may be another pharentesis we can open to improve gdcm 
>capabilities.
>
>JP, I do not loose any image. I just open the root (ST1) directory. 
>GDCM then scan all the subirs and then creates its internal lists. I 
>just use the first one ;-)
>
>Luca
>
>ps: about orientation, do you have any more docs than 
>http://www.dclunie.com/medical-image-faq/html/part2.html#DICOMOrientat 
>ion ???
>
>
>
>Jean-Pierre ROUX wrote:
>
>>At 17:09 +0200 1/10/05, Luca Picello wrote:
>>
>>>Hi JP,
>>>I believe I wrote my code exactly as you suggest to do.
>>>And I believe it happens exactly what you describe (images are ignored).
>>>Here we can open another parenthesis on how to choose the right 
>>>slices to build the volume ;-)
>>>the anonimized dataset can be downloaded at 
>>>http://www.surgisystems.com/ST1.zip [about 40 megabytes]
>>
>>
>>Luca,
>>I dowloaded the dataset, and I don't get in which Serie is your 
>>problem nad/or haow to solve it automaticaly.
>>
>>The Study, in directory ST1, is splitted into 12 directories SE1, 
>>... SE12, each one has a single Serie (same Series Instance UID).
>>
>>Series SE5, SE6, SE9, SE10 contain MIP images; each image has a 
>>different Orientation.
>>I guess you don't want to make a volume with them ;-)
>>
>>Serie SE1 contains 'scout views' (3 Coronal images + 3 axial + 3 sagital)
>>
>>Series SE2, SE3, SE4, SE7, SE8 are mono-incidence (no problem for 
>>you, I suppose)
>>
>>In Serie SE11, all the images are Axial, but one that's Sagital
>>In Serie SE12, all Coronal + 1 Sagital
>>In Serie SE12, all Sagital + 1 axial
>>
>>For the Series SE11, SE12, SE13, splitting them according to the 
>>Orientation would be usefull for you,
>>but would be stupid for Series holding MIP images....
>>
>>I you think about something clever we could do ...
>>
>>--> Tell me : in which Serie do you 'loose' images ?
>>(When I use
>>gdcmSerieViewer dirname=SE11
>>-just an example to show how to use vtkGdcmReader + gdcm::SerieHelper-
>>I can see *all* the images ).
>>
>>JP
>>
>>
>>
>>>
>>>cya,
>>>Luca
>>>
>>>
>>>
>>>Jean-Pierre ROUX wrote:
>>>
>>>>>Hello everybody.
>>>>>I see you are playing with orientation....
>>>>>I have some new datasets to test...
>>>>>Some are total-body and I can see something strange (to me at least):
>>>>>in the same dicomdir images are oriented differently.
>>>>>thus, the reader return only few slices when I have many and 
>>>>>many of them....
>>>>>does it suggest to you something?
>>>>
>>>>
>>>>
>>>>Hi, Luca.
>>>>How do you use vtkgdcmreader?
>>>>-->The 'usual' way (passing info to build the file names) 
>>>>considers the orientation of the *first* image and discards any 
>>>>image with a different orientation, considering it's a bugged 
>>>>image (?!?)
>>>>(This feature was written a ling time ago ...)
>>>>
>>>>-->You may now pass a CoherentFileList (result of 
>>>>gdcm::SerieHelper -that may build more than one SerieHelper-)
>>>>Normaly (?), within a CoherentFileList (same "Serie Instance 
>>>>UID"), you should have the same orientation.
>>>>
>>>>(note : this is not 100% true, since for MR studies, a single 
>>>>serie may hold all the 'scout views', with 2 or 3 diferrent 
>>>>orientations -but never anybody will try use scout view as 
>>>>'slices' to make a volume-)
>>>>
>>>>If this new feature doesn't help you, could you upload your 
>>>>images somewhere, so we can have a look at them.
>>>>(use
>>>>AnonymizeNoLoad dirin=yourSinglePatientImageDirectory
>>>>to anomymize the whole directory)
>>>
>>
>> Jean-Pierre ROUX
>> CREATIS - CNRS UMR 5515, INSERM U 630
>> Laboratoire de Radiologie Experimentale
>> Hopital Cardiologique
>> 28 Avenue du Doyen LEPINE
>> B.P. Lyon-Montchat
>> 69394 Lyon Cedex 03
>>
>> Tel      : (+33) 04 72 35 74 12
>> Fax      : (+33) 04 72 68 49 16
>> URL      : http://www.creatis.univ-lyon1.fr
>> e-mail   : jpr at creatis.univ-lyon1.fr
>>                                  .

   Jean-Pierre ROUX
   CREATIS - CNRS UMR 5515, INSERM U 630
   Laboratoire de Radiologie Experimentale
   Hopital Cardiologique
   28 Avenue du Doyen LEPINE
   B.P. Lyon-Montchat
   69394 Lyon Cedex 03
 
   Tel      : (+33) 04 72 35 74 12
   Fax      : (+33) 04 72 68 49 16
   URL      : http://www.creatis.univ-lyon1.fr
   e-mail   : jpr at creatis.univ-lyon1.fr
								   



More information about the Dcmlib mailing list