CatPhan604 module

Hi James

I am trying to develop a module for the CatPhan 604 now used by Varian. I’ve now got something that is giving me sensible results, but I have a few questions:

  1. I see you started a branch for this phantom, but it appears to be dormant. What is its status? I don’t want to reinvent the wheel.

  2. The HU linearity module of the CatPhan604 has two additional inserts, 50% Bone and 20% Bone. These two inserts along with the air inserts are asymmetrically longer than the other inserts. This is throwing off the algorithm to find the centre of the HU linearity module. I can work around this by increasing the range of HU values the algorithm works on from +/- 400 to +/- 800. From the function documentation it seems that this range was originally +/- 800. What effect will this change have on other CatPhan phantoms?

  3. The spatial resolution slice is very thin (2mm) and depending on how you scan and where the algorithm finds the 0 slice it is possible to land up calculating the spatial resolution on the slice just before or after the slice actually containing the resolution image which affects the reported MTF markedly. I’ve worked around this by using “combine_method” = max and num_slices = 1. Again what effect with this have on other CatPhan scans?

Changes are at

Alan Chamberlain

You’ve clearly done some serious work here!

  1. IIRC I received some images that I thought were catphan604 but ended up being 600. So I made that branch and then figured out it was really something different and forgot to delete it. In reviewing my pile of test images I don’t have catphan 604 images, so this confirms the idea. If you have 604 images I’d be happy to take a look at them.

  2. At first glance I don’t think this would hurt anything (famous last words). Running the modified code on the catphan 503/4/600 demo datasets would be a good idea though.

  3. This will likely artificially increase the MTF. Since the max is being used across several slices, you’re kind of cheating rather than using the slice you’re actually testing. For thick slices this probably wouldn’t have a large effect but for thin slices it’s likely.

Hi James

Thanks for your comments. I will test further. I’ve created a pull request so you can get the CatPhan604 datasets from my fork. They are in /pylinac/demo_files/cbct/.


Got it. Let’s see what happens!