zoumaho / dicompyler Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/dicompyler
Automatically exported from code.google.com/p/dicompyler
Currently only cDVHs are shown. DICOM RT DVH has a the capability to store
dDVHs so
dicompyler should be able to support them as well.
Additionally, it should be possible to switch between cDVH and dDVH
representation
regardless of the original DVH data.
Original issue reported on code.google.com by bastula
on 1 Nov 2009 at 4:02
What steps will reproduce the problem?
1.Using Eclipse 8.2 TPS
2.In TPS, contour an isodose level and a target on the CT
3.Import into dicompyler
What is the expected output? What do you see instead?
Expected isodose level and contours to be aligned. CT is aligned with
structure sets, but small discrepancy (~2mm to patient's right and ~2mm to
patient's anterior side) shifted.
What version of the product are you using? On what operating system?
dicompyler-0.4a2.tgz
windows 7 64-bit
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 20 Jun 2011 at 2:26
Attachments:
Some exported data sets (Pinnacle and Brainlab) did not include the
SliceLocation Tag, leading to program crash on input. Here is my workaround:
In dicomgui, near line 226 (DirectorySearchThread):
image = {}
image['id'] = dp.GetSOPInstanceUID()
image['filename'] = files[n]
#BPT-March 2011
#SliceLocation is not always present, so have a workaround ready
if "SliceLocation" in dp.ds:
image['slicelocation'] = dp.ds.SliceLocation
elif "ImagePositionPatient" in dp.ds:
#Take a slicelocation from ImagePosition z value
image['slicelocation']=dp.ds.ImagePositionPatient[2]
else:
#put something in there anyway
#FIX THIS WITH A SEQUENCE NUMBER
image['slicelocation']=1
image['imagenumber'] = dp.ds.InstanceNumber
And then later, in GetPatientData:
# Sort the images based on Slice Location
if self.patient.has_key('images'):
#Check to see if image has SliceLocation defined. If not, use z axis position
#BPT-March 2011
#SliceLocation is not always present, so have a workaround ready
snumber=1
for image in self.patient['images']:
if "SliceLocation" in image:
image.SliceLocation= image.SliceLocation #do nothing
elif "ImagePositionPatient" in image:
#Take a slicelocation from ImagePosition z value
image.SliceLocation=image.ImagePositionPatient[2]
else:
#put something in there anyway
#FIX THIS WITH A SEQUENCE NUMBER
image.SliceLocation=snumber
snumber=snumber+1
#
#
Original issue reported on code.google.com by [email protected]
on 3 Mar 2011 at 9:15
What steps will reproduce the problem?
1. installed dicompyler using the windows installer on a Windows 7 64 bit system
2. Open Patient ...., find the required patient, select, and enter the
prescription dose (7000cGy)
3. load is successful
What is the expected output? What do you see instead?
expect to see Structures, Isodoses and a CT with overlays
I see Structures list, Isodoses list and a three tab view called '2D view' (but
.... NO CT IMAGE); 'DVH' (has the axes but no lines for selected structures)
and 'DICOM Tree' (lists the file headers).
What version of the product are you using? On what operating system?
dicompyler version 0.3, on Windows 7 64-bit
Please provide any additional information below.
patient planned on Pinnacle V9.0
Original issue reported on code.google.com by [email protected]
on 10 Nov 2010 at 4:29
As of the latest revision, 21 Feb. 2010, the new Credits button seems to
have disappeared from the About dialog (at least in the Gtk version). I did
a clean clone from the code repository and it was still missing.
The button is present in my clone, but I didn't see any differences in what
seemed like the relevant code in main.py (OnAbout()) between the two.
No idea on this one.
Original issue reported on code.google.com by [email protected]
on 25 Feb 2010 at 8:32
What steps will reproduce the problem?
1. load a dicom file (with structures in my case)
2. hit export->as anonymized DICOM
3.
What is the expected output? What do you see instead?
- Expected the export dialog would appear.
What version of the product are you using? On what operating system?
- hg tip 113:730e082a798b
- Running on current Debian testing amd64 01.May.2011.
- wxwidgets2.8 (2.8.10.1-3)
- python-wxgtk2.8 2.8.10.1-3+b2
Please provide any additional information below.
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14614, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
File "/home/bassler/Projects/dicompyler/dicomgui.py", line 510, in AddPatientDataTree
self.EnableItemSelection(patient, dose, filearray)
File "/home/bassler/Projects/dicompyler/dicomgui.py", line 564, in EnableItemSelection
for planid, plan in patient['plans'].iteritems():
KeyError: 'plans'
Traceback (most recent call last):
File "./baseplugins/anonymize.py", line 54, in pluginMenu
dlgAnonymize.Init()
File "./baseplugins/anonymize.py", line 238, in Init
pub.sendMessage('preferences.requested.value', 'general.dicom.import_location')
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 811, in sendMessage
self.__topicTree.sendMessage(aTopic, message, onTopicNeverCreated)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 498, in sendMessage
deliveryCount += node.sendMessage(message)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 336, in sendMessage
listener(message)
File "/home/bassler/Projects/dicompyler/preferences.py", line 98, in GetPreferenceValue
pub.sendMessage(msg.data, v[query[0]][query[1]][query[2]])
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 811, in sendMessage
self.__topicTree.sendMessage(aTopic, message, onTopicNeverCreated)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 498, in sendMessage
deliveryCount += node.sendMessage(message)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/lib/pubsub.py", line 336, in sendMessage
listener(message)
File "/home/bassler/Projects/dicompyler/dicomgui.py", line 122, in OnImportPrefsChange
self.txtDicomImport.SetValue(self.path)
File "/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14564, in __getattr__
raise PyDeadObjectError(self.attrStr % self._name)
wx._core.PyDeadObjectError: The C++ part of the DicomImporterDialog object has
been deleted, attribute access no longer allowed.
Original issue reported on code.google.com by niels.bassler
on 1 May 2011 at 8:12
Currently dicompyler will read the volume data directly from the calculated DVH
(as of r7db70b8ed0 ).
Prior to this, the volume was calculated in dvhdata.py. However, this volume
was inaccurate since only a single contour for the structure on each slice was
used.
After r7db70b8ed0 though, the structure data now contains all contours for each
slice. Therefore the volume calculation needs to be updated to reflect the more
accurate contour data.
Original issue reported on code.google.com by bastula
on 18 Jun 2010 at 3:10
What steps will reproduce the problem?
1. Read a directory full of DICOM files without the .dcm extension
What is the expected output? What do you see instead?
UI doesn't read the files.
According to a thread on the pydicom discussion group (
http://groups.google.com/group/pydicom/browse_thread/thread/acb86a9facd4afa ),
this can be
resolved.
Original issue reported on code.google.com by bastula
on 24 Nov 2009 at 5:02
What steps will reproduce the problem?
1. On Linux, set extension to .DCM on Dicom-RT file
2. Select directory with patient selection dialog
3. Dicom-RT is not seen.
What is the expected output? What do you see instead?
File should be read as it is a valid Dicom(-RT) file.
What version of the product are you using? On what operating system?
The latest code as of 18 Nov. 2009 on Ubuntu 9.04.
The fix is simple. Python's file name matching function defaults to
case-sensitivity on case-sensitive operating systems. One fix is to
explicitly lowercase the file extension to see if it matches.
Here is the output of diff for my patch and the original dicomgui.py file:
169c169
< if (os.path.isfile(dcmfile) and
fnmatch.fnmatch(dcmfile.lower(), '*.dcm')):
---
> if (os.path.isfile(dcmfile) and fnmatch.fnmatch(dcmfile,
'*.dcm')):
Original issue reported on code.google.com by [email protected]
on 18 Nov 2009 at 9:41
Attachments:
What steps will reproduce the problem?
1. Using build from 2/17/2011, ./main.py requires deleted model.py
2.
3.
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Build 2/17/2011 on Ubuntu 10.04
Please provide any additional information below.
Removing reference in plugin.py and anonymize.py allows ./main.py to compile.
Still checking functionality of build.
Original issue reported on code.google.com by [email protected]
on 22 Feb 2011 at 1:18
What steps will reproduce the problem?
1. Open a DVH and zoom in on a region.
2. Slide the dose constraint.
What is the expected output? What do you see instead?
Slider should move along zoomed in plot curve. Instead the plot zooms out
to original zoom level and slides.
What version of the product are you using? On what operating system?
24 Nov.2009 (Revision b8ff08c1a7). Ubuntu 8.04, wxPython 2.8.7.1, wxmpl
1.2.9, matplotlib 0.91.2
This is probably a matplotlib or wxmpl issue.
Original issue reported on code.google.com by [email protected]
on 24 Nov 2009 at 11:18
2D structure/contour view is looking good.
I am wondering what the best way to deal with external/skin contours. I suspect
there is no standard name for this. Maybe the user should be able to designate
the structure as external or simply "filled".
The attached file shows an external contour of a head. The "expected" behavior
is that the contour only displays on the skin itself and is not filled in. That
seems to be the standard behavior for TPS's.
Using the latest revisions as of 19 June 2010.
Original issue reported on code.google.com by [email protected]
on 20 Jun 2010 at 6:22
Attachments:
Some exported Brainlab RTDOSE files contain only DVH info, not a dose "image".
This will cause DicomParser.GetImageData to crash.
Workaround:
def GetImageData(self, window = None, level = None):
"""Return the image data from a DICOM file."""
data = {}
#BPT March 2011. Not every ds has an image
if "PixelData" in self.ds:
data['position'] = self.ds.ImagePositionPatient
data['orientation'] = self.ds.ImageOrientationPatient
data['pixelspacing'] = self.ds.PixelSpacing
data['rows'] = self.ds.Rows
data['columns'] = self.ds.Columns
if 'PatientPosition' in self.ds:
data['patientposition'] = self.ds.PatientPosition
This allows the data to load, but it does not compute the DVH. I'm not sure how
prevalent this case will be, so I have no suggested further action at this time.
Probably most of these types of issues with "imperfect" data sets will vanish
when an exception handler is implemented.
Original issue reported on code.google.com by [email protected]
on 4 Mar 2011 at 8:10
Currently running dicompyler from source with pydicom 0.9.5 will break. This is
because pydicom now raises a InvalidDicomError if files are not valid DICOM -
see
http://code.google.com/p/pydicom/source/detail?r=fc790f01f517f060baa4f92b80311ab
0e9536c8e
Therefore we can remove our own detection in dicomparser.py and use the
detection from pydicom.
Additionally, pydicom 0.9.5 fixes the recursion error on private data elements
which occurs with some vendor data, crashing the DICOM tree view plugin.
Original issue reported on code.google.com by bastula
on 12 Nov 2010 at 4:15
Currently the structure display in the 2D View is rather slow. This can be
improved by caching of the structure data.
One way to improve this would be to cache the data after the user clicks on the
structure checkbox but before each structure is displayed. The existing
progress bar function in guiutil.py can be reused for this.
Another way could be to silently load the data in another thread without the
progress bar function.
Original issue reported on code.google.com by bastula
on 18 Jun 2010 at 2:37
What steps will reproduce the problem?
1. Import a RT Plan from a system such as TomoTherapy
2. Manually enter a Rx Dose in the import dialog
What is the expected output? What do you see instead?
This process works fine, but the user has to manually enter the Rx Dose. The Rx
Dose is listed in organ constraint lists as the Target Prescription Dose in
some RT Plans that have Dose References of 'VOLUME' and can be read instead of
being manually entered.
Original issue reported on code.google.com by bastula
on 9 Nov 2010 at 2:43
In the 2dview, the isodose contour generation fails when using matplotlib 1.0.0
or above due to a change in the function arguments.
Traceback from Steve Terry:
Traceback (most recent call last):
File "C:\Documents and Settings\flounder\Desktop\dicompyler
\baseplugins\2dview
.py", line 426, in OnPaint
self.DrawIsodose(isodose, gc, isodosegen)
File "C:\Documents and Settings\flounder\Desktop\dicompyler
\baseplugins\2dview
.py", line 279, in DrawIsodose
contours = isodosegen.trace(level, points = 0)
TypeError: 'points' is an invalid keyword argument for this function
The change in matplotlib source is documented here:
http://matplotlib.svn.sourceforge.net/viewvc/matplotlib/trunk/matplotlib/src/cnt
r.c?r1=7341&r2=7342
The workaround is to make a conditional to support matplotlib versions 0.99 and
below and versions 1.0.0 and above.
Original issue reported on code.google.com by bastula
on 6 Apr 2011 at 8:06
What steps will reproduce the problem?
1. Load a dataset where the image series (CT images) are not square (number of
rows not equal to number of columns).
2. In the image view (2d View) the following text is displayed at the bottom
left: Image Size: 171x171 px
3. This issue is with the text only. The image itself seems to be displayed
correctly.
What is the expected output? What do you see instead?
In reality, the dimensions of the image is 512 columns and 171 rows.
What version of the product are you using? On what operating system?
dicompyler version 0.4a2
Regards,
Chris
Original issue reported on code.google.com by [email protected]
on 22 Jul 2011 at 12:30
Currently, the isodose levels are fixed. An interface needs to be implemented
so that users can modify the isodose levels that are displayed.
Ideally this code should be generic enough so that it can go into
ColorCheckListBox in guiutil.py.
Original issue reported on code.google.com by bastula
on 24 Nov 2010 at 8:14
What steps will reproduce the problem?
1. point to directory
2. read directory
3. no available files/patients
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
0.3 on Win XP SP3
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 25 Oct 2010 at 5:47
[deleted issue]
What steps will reproduce the problem?
1. Try to anonymize a file that does not have a file meta info with:
* (0002, 0002) Media Storage SOP Class UID
* (0002, 0003) Media Storage SOP Instance UID
What is the expected output? What do you see instead?
It should anonymize normally, however the plugin will crash.
There was a change in pydicom 0.9.4 that moved the file meta info to a separate
object (ds.file_meta). This object needs to be updated with the correct Media
Storage SOP Class and Instance tags before writing out the file, as some DICOM
files do not contain them and will fail upon writing out to disk.
Original issue reported on code.google.com by bastula
on 14 Jul 2010 at 3:59
On Windows Vista/7, writing to the installation folder is prohibited. Currently
the executable version generates a log file wherever the executable is located.
Since the folder is non-writable, any errors cannot be logged. This can be
averted by redirecting the log file to the user's dicompyler data folder.
More information can be found here: http://www.py2exe.org/index.cgi/StderrLog
Original issue reported on code.google.com by bastula
on 12 Nov 2010 at 5:48
Currently, the DVH view only shows one structure at a time. Ideally, when
reviewing a plan,
it is the usual custom to view multiple structures simultaneously. This would
allow the DVH
to be scaled to the scale of the largest structure displayed.
This requires two fixes:
1. Add a checklistbox for th structures so more than one can be selected (along
with color
coding to determine which color belongs to the respective structure).
2. The constraint viewer / cursor should still only be tied to the highlighted
structure, not the
checked ones.
Original issue reported on code.google.com by bastula
on 1 Nov 2009 at 4:16
What steps will reproduce the problem?
1. Run dicompyler for the first time.
What is the expected output? What do you see instead?
Currently dicompyler places dicompyler.db in the same folder that the
app/source is located. It should place the database file in the user's data
folder. This can be adjusted by using wx.StandardPaths to determine the
correct location. Additionally, a check should be made whether the parent
folder exists before writing to disk.
On uninstall of the application, the user should be prompted whether to
remove the data folder or not.
Original issue reported on code.google.com by bastula
on 31 Dec 2009 at 4:09
What steps will reproduce the problem?
1. Created a test phantom in the MasterPlan treatment planning system, having 5
CT slices and a structure set with a few simple contours.
2. Open dicompyler, click open patient button, browse to the folder containing
my 5 CT images and 1 structure set.
What is the expected output? What do you see instead?
Expected to see the phantom in the patient list, be able to select it and load
it in the viewer.
The phantom is listed in the patient list, however it says "Progress: Searching
for patients.... 0% and the select button is not active so Im not able to do
anything.
What version of the product are you using? On what operating system?
dicompyler-0.3.exe running on Win XP SP3.
Please provide any additional information below.
I really like the idea of dicompyler, and would like to try it out, but it may
seem that it is not very robust yet in its handling of dicom files.
If you are interested in looking into this, I can send you the dicom files I
tested with.
From the error log it may seem like it complains about "Slice Location"
(0020,1041) missing. In such a case, would it be possible for the program to
use "Image Position (Patient)" (0020,0032) instead?
Regards,
Chris
Attached: Error log.
Exception in thread Thread-1:
Traceback (most recent call last):
File "threading.pyo", line 532, in __bootstrap_inner
File "threading.pyo", line 484, in run
File "dicomgui.pyo", line 195, in DirectorySearchThread
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in position
47: ordinal not in range(128)
Exception in thread Thread-3:
Traceback (most recent call last):
File "threading.pyo", line 532, in __bootstrap_inner
File "threading.pyo", line 484, in run
File "dicomgui.pyo", line 231, in DirectorySearchThread
File "dicom\dataset.pyo", line 238, in __getattr__
AttributeError: Dataset does not have attribute 'SliceLocation'.
Original issue reported on code.google.com by [email protected]
on 12 May 2011 at 11:14
What steps will reproduce the problem?
1.Open .dcm files
What is the expected output? What do you see instead?
I need to see some images.But the program doesn't open them.
What version of the product are you using? On what operating system?
The version of the program is 0.3, the program is running on Windows 7 32bits
Please provide any additional information below.
I'd like to see some images,but the program doesn't let me open them.
How can I solve this issue?
Original issue reported on code.google.com by [email protected]
on 30 Nov 2010 at 9:22
What steps will reproduce the problem?
1. Read a DICOM RT Dose file that has a different number of frames than image
slices
What is the expected output? What do you see instead?
Isodoses should display properly, but instead they are either not shown or
shown in the wrong location.
The fix is to use the tag Image Position (Patient) (0020,0032) tag in
combination with the Grid Frame Offset Vector (3004,000C) tag to determine the
start location and subsequent locations of the multi-frame dose matrix.
Original issue reported on code.google.com by bastula
on 9 Oct 2010 at 7:06
It would be useful if in the 2D View that when moving the mouse, the DICOM
coordinates / CT values / Dose values could be displayed on screen.
For the current mouse position, the function GetPatientToPixelLUT in
dicomparser can be used, which returns mm coordinate arrays which correspond to
the image pixels.
For the current CT value and dose value, this information can be queried via
the image's pixel_array.
Original issue reported on code.google.com by bastula
on 30 Mar 2011 at 3:14
What steps will reproduce the problem?
1.if there is an error in file loading, the anonymous option is not available,
which makes handing the file off for further testing of solutions a problem
with respect to Privacy Legislation.
What is the expected output? What do you see instead?
Can the Anonymous option be made to work on a file without loading all the
image data first?
What version of the product are you using? On what operating system?
not relevant as this is about design not code
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 23 Feb 2011 at 8:44
What steps will reproduce the problem?
1. Open a patient that is HFP (head first prone)
2. Switch to the 2D View
3. Enable some structures
What is the expected output? What do you see instead?
Structures should be displayed on the 2D View but are missing.
This can be addressed by looking into the coordinates of the structure before
it is drawn. The LUT is not the problem as isodoses are being displayed
properly.
Original issue reported on code.google.com by bastula
on 20 Jun 2010 at 6:53
What steps will reproduce the problem?
1. Open a folder containing a set of MR dicom images.
2. dicompyler will not recognize this as an image series.
3. You will not be able to click 'Select' to view these images in the program.
What is the expected output? What do you see instead?
That it identifies it as an image series, e.g. (MR, 34 images)
That you can select it and view the images as with a CT image series.
What version of the product are you using? On what operating system?
dicompyler version 0.4a2, Windows XP
Please provide any additional information below.
It would be nice if dicompyler worked with MR images too, as this modality is
being used in radiotherapy too.
Best regards,
Chris
Original issue reported on code.google.com by [email protected]
on 2 Aug 2011 at 7:36
Attachments:
What steps will reproduce the problem?
1. Scroll to a slice outside of the dose matrix
What is the expected output? What do you see instead?
The labels should stay on the 2D image. However, they disappear since the
drawing pipeline gets disrupted since the dose matrix does not exist on the
slice.
As soon as you scroll back to a slice where the dose matrix exists, the labels
are restored.
This should be able to be fixed by checking whether the matrix exists before
starting the drawing pipeline.
Original issue reported on code.google.com by bastula
on 6 Oct 2010 at 10:55
What steps will reproduce the problem?
1. Import a RT Plan set with images, structures, plan, and dose /w differential
DVHs
What is the expected output? What do you see instead?
The processing progresses until 100%, where it stops.
The following traceback is given:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "main.py", line 280, in LoadPatientDataThread
dvh['min'] = dvhdoses.get_dvh_min(dvh['data'], ptdata['rxdose'])
File "/Projects/python/dicompyler/dvhdoses.py", line 27, in get_dvh_min
mindose = 100*mindose/doseref
UnboundLocalError: local variable 'mindose' referenced before assignment
Please use labels and text to provide additional information.
Basically, the mindose cannot be calculated, because the function assumes it is
receiving a cDVH array. The proper fix is to convert the dDVH to to a cDVH then
allow the calculation to proceed.
The easiest workaround is to change line 322 in dicomparser.py to:
if self.HasDVHs():
Original issue reported on code.google.com by bastula
on 7 Oct 2010 at 1:49
running DICOMPYLER on Ubuntu 10.10 both of which are up to date (hg update
pulls nothing new). It is a new install since previous comments (#22).
Attempting to open a Pinnacle-created DICOM-RT. After loading the DCMs and
specifying prescription dose (7800), loaded study and DICOMPYLER hung. Here is
the output from the CLI:
Found ROI #1: iso
Found ROI #2: laser
Found ROI #3: calc
Found ROI #4: Seeds
Found ROI #5: CTVp
Found ROI #6: RECTUM
Found ROI #7: BLADDER
Found ROI #8: PTV78
Found ROI #9: CTVn
Found ROI #10: PTV56
Found ROI #11: penumbra
Found ROI #12: PERITONEUM
Found ROI #13: PERITONEUM_PRV
Found ROI #14: RECTUM_PRV
Found ROI #15: BLADDER_PRV
Found ROI #16: Lt HOF
Found ROI #17: Rt HOF
Found ROI #18: ring 78
Found ROI #19: ring 56
Found ROI #20: markers
Found ROI #21: Ring
Found ROI #22: 2cm ring 78
Found ROI #23: 2cm ring 56
Found ROI #24: lt hotspot
Found ROI #25: rt hotspot
Found ROI #26: ant avoid
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "./main.py", line 252, in LoadPatientDataThread
patient['structures'] = dp(ptdata['rtss']).GetStructures()
File "/home/andrew/dicompyler/dicomparser.py", line 254, in GetStructures
structures[number]['color'] = np.array(roi.ROIDisplayColor, dtype=float)
File "/usr/local/lib/python2.6/dist-packages/pydicom-0.9.5-py2.6.egg/dicom/dataset.py", line 237, in __getattr__
raise AttributeError, "Dataset does not have attribute '%s'." % name
AttributeError: Dataset does not have attribute 'ROIDisplayColor'.
As you can see there are many ROIs.
Have we had this problem before??
Original issue reported on code.google.com by [email protected]
on 21 Feb 2011 at 7:13
Currently only tab / main plugins can have toolbar items because they
tab-context specific.
However, it may be useful for menu plugins to also have toolbar buttons for
quick access.
This may be accomplished by having these toolbar items display at all times
regardless of the tab selected.
Probably the best location would be in the __init__ method of the menu plugin.
Additionally, documentation needs to be added to the plugin development guide
for toolbar items for both tab and future menu plugins.
Original issue reported on code.google.com by bastula
on 15 Aug 2011 at 12:58
What steps will reproduce the problem?
1. Try to load a set of RT Dose planes but dicompyler will only import one at
any given time.
What is the expected output? What do you see instead?
Load all the RT Dose files and show the dose grid. Only a single file. This
works for DVH data, as it is stored in each RT Dose file, but only a portion of
the dose grid is stored in each file.
This can be addressed by compiling each dose file similar to the way images are
compiled, but presenting it to the user as a single series of RT Dose files
rather than individual files.
Original issue reported on code.google.com by bastula
on 3 Jul 2010 at 4:10
It would be nice to be able to search the DICOM tree view.
Maybe a first alpha version would just expand the tree and highlight the search
term.
Original issue reported on code.google.com by [email protected]
on 19 Apr 2011 at 9:53
What steps will reproduce the problem?
1. Open any image in 2D view
2. Zoom in
3. Click left and move
What is the expected output? What do you see instead?
We expect that the image follows the pointer.
The image moves faster.
What version of the product are you using? On what operating system?
dicompiler 0.4a1 under fedora (linux)
Please provide any additional information below.
Attached a patch using the zoom variable.
Original issue reported on code.google.com by [email protected]
on 29 Mar 2011 at 2:33
Attachments:
What steps will reproduce the problem?
1.Emported structure/dose/CT set. CT set was 172 images, dose was exported as
absolute.
2.Imported into dicompyler
3.
What is the expected output? What do you see instead?
Expected ~125-130% dosemax (Isodose list screenshot attached)
Only 2D isodose level to show up was 30%.
What version of the product are you using? On what operating system?
dicompyler-0.4a2 [source]
Windows 7 64bit
Please provide any additional information below.
When selecting BODY from structure list, received error when calculating volume:
return self.dvh[int(dose/self.scaling)]
IndexError: index out of bounds
Original issue reported on code.google.com by [email protected]
on 28 May 2011 at 5:12
Attachments:
Currently there is no scale and you have to measure by mouse cursor. A scale
would help the user to better gauge the size of the displayed image.
The scale should be allowed to be arbitrarily moved by the mouse cursor to
facilitate identifying positions of treatment aids such as BBs.
Original issue reported on code.google.com by bastula
on 13 May 2011 at 4:17
Using change set b2db1399c5 (26 Nov. 2010).
I'm getting an error when I load some images in the treeview plugin if they
contain LargestImagePixelValue or SmallestImagePixelValue entries. It appears
that these values are stored as binary data (not quite sure), but treeview.py
tries to read them as unicode.
Here's the error messages (for different CT images):
.../baseplugins/treeview.py", line 178, in AddItemTree
self.tlcTreeView.SetItemText(item, unicode(data_element.value), 1)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid
data
.../baseplugins/treeview.py", line 178, in AddItemTree
self.tlcTreeView.SetItemText(item, unicode(data_element.value), 1)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 0:
unexpected code byte
The code throwing the error is found in AddItemTree in treeview.py. We could
make exceptions specifically for these tags, *PixelValue, but a more general
solution sounds better.
As a side note, I'm not sure what the first else is doing in AddItemTree:
else:
# Account for unicode or string values
if isinstance(data_element.value, unicode):
item = self.tlcTreeView.AppendItem(parent, text=unicode(data_element.name))
else:
item = self.tlcTreeView.AppendItem(parent, text=str(data_element.name)
It seems to be testing the "value", but acting on the "name".
Original issue reported on code.google.com by [email protected]
on 2 Dec 2010 at 7:35
What steps will reproduce the problem?
1. Open a set of dicom files including CT, Struct, Plan and Dose
2. Scroll through images works fine. When I select any of the available ROIs, I
can see in the log that an exception has been raised [1].
3. When trying to scroll (mousewheel) through the images slices following this,
nothing happens. I have to deselct the ROI in order to continue scrolling
through the images.
What is the expected output? What do you see instead?
The expected output is to get structure information at the bottom left, and to
be able to scroll through the images with the ROI delineated in the slices.
Instead I see no structure information and scrolling is halted.
What version of the product are you using? On what operating system?
dicompyler version 0.4a2
WinXp 32bit
Please provide any additional information below.
I dont know if this is related, but when I open the files, it complains that:
RX dose not found in RT Plan.
The DICOM files are exported from the Oncentra MasterPlan treatment planning
system.
Regards,
Chris
Original issue reported on code.google.com by [email protected]
on 28 Jul 2011 at 1:39
Attachments:
What steps will reproduce the problem?
1. Read a DICOM RT Dose file without DVHs
2. dicompyler cannot open the file because it currently does not calculate the
DVH, but uses the
DICOM provided DVH.
What is the expected output? What do you see instead?
dicompyler should be able to calculate the DVHs. This would allow more RT Dose
files to be used
with the platform.
Original issue reported on code.google.com by bastula
on 3 Mar 2010 at 10:04
What steps will reproduce the problem?
1. Load test data set (breast plan)
2. Select Borders or Nodes
3. Select Dose Constraint (D_)
4. Scroll horizontal constraint bar
What is the expected output? What do you see instead?
Constraint marker should travel smoothly along DVH curve, but instead it
jumps along a stair-step path. This is due to the curve being interpolated
but the marker following the data points themselves. Should all DVH's have
the same end value instead of being rescaled along the x axis?
What version of the product are you using? On what operating system?
Oct. 18th update on Ubuntu 9.04, matplotlib 0.98.5.2, WxMpl 1.3.1, WxPython
2.8.9.1
Please provide any additional information below.
Dicompyler!!!
Original issue reported on code.google.com by [email protected]
on 30 Oct 2009 at 7:54
Attachments:
What steps will reproduce the problem?
1. Open a file with a lot of structures
What is the expected output? What do you see instead?
It's impossible to see all the structures.
What version of the product are you using? On what operating system?
Dicompyler 0.4a1 under Fedora (linux).
Please provide any additional information below.
Attached a patch using wx.ScrolledWindow
Original issue reported on code.google.com by [email protected]
on 28 Mar 2011 at 4:14
Attachments:
There doesn't seem to be a build instructions page.
The "build instructions" link in Project Home just points to
BuildRequirements.
Original issue reported on code.google.com by [email protected]
on 25 Aug 2010 at 4:10
I have just re-installed dicompyler on a new PC, so I recorded what I did and
put it into a fancy PDF. It might just help some one.
Original issue reported on code.google.com by [email protected]
on 28 Jan 2011 at 10:22
Attachments:
This issue was created by revision 9da0f34cf2.
Now that the new matplotlib backend for isodose curve generation has been
implemented, the curves need to be smoothed for better visual presentation.
This could be accomplished by various window methods in numpy. See the
following link for more information: http://www.scipy.org/Cookbook/SignalSmooth
Original issue reported on code.google.com by bastula
on 10 Dec 2010 at 5:13
Some DICOM tags will not be anonymized when using the anonymizer.
A list of tags that could potentially be anonymized can be found in Part 3 of
the DICOM standard. It would probably be useful if this document is combed (by
inspection) to find tags which could potentially contain patient/institution
identifying data.
Until then, we will rely on user reports of tags that haven't been anonymized.
Original issue reported on code.google.com by bastula
on 4 Jun 2011 at 7:55
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.