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

Mathieu Malaterre mathieu.malaterre at kitware.com
Tue Oct 4 04:40:14 CEST 2005


I would like to see it as OrderType:

enum OrderType {
   ScoutViewOrder, // well you are on your own
   OrientationOrder,
   PositionOrder,
   TimeOrder,
   FilenameOrder,
   Unknown, // aka Impossible/Crazy/Brain Dead
}

Is that all ?

So we would need a vector containing:
{ list of filename1, OrderType1}
{ list of filename2, OrderType2}
{ list of filename3, OrderType3}
...

Comments ?
Mathieu

Jean-Pierre ROUX wrote:
> 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
>                                    
> _______________________________________________
> Dcmlib mailing list
> Dcmlib at creatis.insa-lyon.fr
> http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
> 




More information about the Dcmlib mailing list