<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/138793</link>
    <title>MATLAB Central Newsreader - dicominfo bug?</title>
    <description>Feed for thread: dicominfo bug?</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 02 Jan 2007 12:54:03 -0500</pubDate>
      <title>dicominfo bug?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/138793#349595</link>
      <author>Ofek Shilon</author>
      <description>Note to dicom function users (and authors?)&lt;br&gt;
&lt;br&gt;
I recommend the following modification to dicominfo code&lt;br&gt;
go to the function getItemNames on line 554 of dicominfo,&lt;br&gt;
and replace it with the following code:&lt;br&gt;
&lt;br&gt;
%%%%%%%%% start snipping:&lt;br&gt;
function itemNames = getItemNames(numberOfItems)&lt;br&gt;
&lt;br&gt;
% Create a cell array of item names, which can be quickly used.&lt;br&gt;
persistent namesCell maxItemsPreStored&lt;br&gt;
if (isempty(namesCell))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;maxItemsPreStored = 300;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namesCell = cell(1, maxItemsPreStored);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for idx = 1:maxItemsPreStored&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namesCell{idx} = sprintf('Item_%d', idx);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
% Return the first n item names.&lt;br&gt;
if numberOfItems &amp;lt;= maxItemsPreStored&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemNames = namesCell(1:numberOfItems);&lt;br&gt;
else % slow but necessary fallback&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemNames = cell(1, numberOfItems);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for idx = 1:numberOfItems&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemNames{idx} = sprintf('Item_%d', idx);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
%%%%%%%%% snip end&lt;br&gt;
&lt;br&gt;
the original code lacks a fallback for the case of more than 300&lt;br&gt;
items - which is not too rare, e.g. in DICOMDIR files.&lt;br&gt;
&lt;br&gt;
Ofek</description>
    </item>
    <item>
      <pubDate>Thu, 04 Jan 2007 13:05:35 -0500</pubDate>
      <title>Re: dicominfo bug?</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/138793#349873</link>
      <author>Jeff Mather</author>
      <description>Ofek Shilon wrote:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; the original code lacks a fallback for the case of more than 300&lt;br&gt;
&amp;gt; items - which is not too rare, e.g. in DICOMDIR files.&lt;br&gt;
&lt;br&gt;
We just recently fixed this in our code base.  A fix will appear in a &lt;br&gt;
future release of the Image Processing Toolbox.  The attached code &lt;br&gt;
should perform a little better than the previous suggestion.&lt;br&gt;
&lt;br&gt;
Jeff Mather&lt;br&gt;
Image Processing Group&lt;br&gt;
The MathWorks, Inc.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
%% In toolbox/images/medformats/dicominfo.m&lt;br&gt;
&lt;br&gt;
function itemNames = getItemNames(numberOfItems)&lt;br&gt;
&lt;br&gt;
% Create a cell array of item names, which can be quickly used.&lt;br&gt;
persistent namesCell&lt;br&gt;
if (isempty(namesCell))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namesCell = generateItemNames(50);&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
% If the number of cached names is too small, expand it and recache.&lt;br&gt;
if (numberOfItems &amp;gt; numel(namesCell))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namesCell = generateItemNames(numberOfItems);&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
% Return the first n item names.&lt;br&gt;
itemNames = namesCell(1:numberOfItems);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
function namesCell = generateItemNames(numberOfItems)&lt;br&gt;
&lt;br&gt;
namesCell = cell(1, numberOfItems);&lt;br&gt;
for idx = 1:numberOfItems&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namesCell{idx} = sprintf('Item_%d', idx);&lt;br&gt;
end</description>
    </item>
  </channel>
</rss>

