pydicom / pydicom Goto Github PK
View Code? Open in Web Editor NEWRead, modify and write DICOM files with python code
Home Page: https://pydicom.github.io/pydicom/dev
License: Other
Read, modify and write DICOM files with python code
Home Page: https://pydicom.github.io/pydicom/dev
License: Other
From [email protected] on October 21, 2008 00:24:03
Let the user set visual preferences such as:
Original issue: http://code.google.com/p/pydicom/issues/detail?id=26
From [email protected] on May 27, 2009 22:18:44
As suggested by brandon.forrester in issue35 , could look into connection of
pydicom to pyglet ( http://www.pyglet.org/ ). It's a good fit with pydicom --
simple installation, very open (BSD) license.
This issue may not require much addition/modification of pydicom code --
perhaps documentation may be sufficient (could be added to WorkingWithPixelData page).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=48
From [email protected] on May 27, 2009 22:09:18
Allow Tags to be created from lists (rather than just tuples) or perhaps
any object which can "unpack" into two items:
group, elem = some_object
Implementation:
In tag.py, replace isinstance check for tuple to a try-except block using
unpack line like above. Write unit tests in test_tag.py to at least add a
list instance to the tests of constructing tag instances. Add tests to
test_dataset.py testContains, at least one for a list like "[0x10,0x10] in
ds".
Original issue: http://code.google.com/p/pydicom/issues/detail?id=47
From [email protected] on December 22, 2008 01:43:35
Python 2.3 doesn't know euc_kr and iso2022_jp encodings used in latest
revisions in repository. Need to remove this test or find alternatives
based on python version.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=34
From [email protected] on December 01, 2008 17:35:29
filereader.ReadFileMetaInfo() can avoid reading a whole file but only gives
limited information. Should add the ability to still read all information
but delay reading of large values (e.g. pixels, dose grid) until actually
needed.
Possible solution: have a flag in Attribute instance to mark whether has
actually been read in. A danger of this is that one has to re-open the file
to read those values ... if any changes have been made to the file then
this could be dangerous. Will need a flag for date/time stamp and/or
recheck the instance UID to make sure is same file.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=28
From [email protected] on October 08, 2008 22:36:28
Util directory not added to setup.py, so is missing from installed
distributions.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=18
From [email protected] on December 18, 2008 17:21:11
Using the following code on the provided image:
dcm = dicom.ReadFile( 'image.dcm' ) # Attached to this issue as 7-zip
dcm.PatientsName = 'Blah'
dcm.SaveAs( 'image2.dcm' )
Gives the following exception:
argument 1 must be string or buffer, not list
The save fails because tag (0045,1029) is a VR=UN with VM=1, yet the values
are stored in a list (must be stored in string to save). The value stored
in the dicom file is a 'delimited' value of "1356\1" which is why I'm sure
it's being stored as the list ["1356", "1"]. However, if the VM is 1,
and/or VR type UN requires a string to save, then the loading code should
load the value "1356\1" as a string literal and not a python list.
Attachment: image.7z
Original issue: http://code.google.com/p/pydicom/issues/detail?id=33
From [email protected] on October 13, 2008 11:50:02
Rename variables, functions etc according to standard python style
conventions, at least for most things.
In particular, change ReadFile to read_file etc. (can keep old one for
backwards compatibility).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=20
From [email protected] on September 07, 2008 23:09:24
Original issue: http://code.google.com/p/pydicom/issues/detail?id=1
From [email protected] on April 04, 2009 23:49:08
Need code to handle encrypted content as per e.g PS 3.15-2008
Page 32
Original issue: http://code.google.com/p/pydicom/issues/detail?id=39
From [email protected] on September 15, 2008 23:34:13
Dictionary based on 03 standard. Need to update to 2008 documents. This
will entail:
Original issue: http://code.google.com/p/pydicom/issues/detail?id=10
From [email protected] on October 08, 2008 00:20:15
Create a new module to turn pydicom into a plug-in for PIL. Instructions at http://www.pythonware.com/library/pil/handbook/decoder.htm
Original issue: http://code.google.com/p/pydicom/issues/detail?id=17
From [email protected] on September 21, 2008 11:12:01
Find example JPEG syntax files and make sure they can be read (but leave
decompression to the user).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=11
From [email protected] on February 12, 2009 21:32:37
See r95 , r96 . Temp fix put in for "Other Patient IDs" colliding with "Other
Patient IDs Sequence" when CleanName drops the "Sequence". Should make a
more general solution that "Sequence" is kept for any name collisions like
this.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=38
From [email protected] on December 23, 2008 23:58:57
Look into ITK/VTK plugins -- may be useful since can be bundled together in
python(x,y).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=35
From [email protected] on October 07, 2008 20:40:33
pydicom can read JPEG files, but the pixel data remains compressed. Should
investigate incorporating JPEG code to allow at least decompression of read
images.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=16
From [email protected] on May 04, 2009 15:42:48
What steps will reproduce the problem? 1. read_file() for dicom file without header info
2. didn't add ds.TransferSyntaxUID checked in PixelArray (corrected in r109 )
3. PixelArray reported as not a member of Dataset
So, root problem is that raised errors were somehow silenced ... and wound
up going to getattr to find a property which should have existed.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=42
From [email protected] on September 15, 2008 19:35:24
See (0008,0005). PS-3.5-2008, 6.1.2.3 Encoding of character repertoires
Original issue: http://code.google.com/p/pydicom/issues/detail?id=9
From [email protected] on May 19, 2009 21:38:50
To simplify package release, need automated tests (ideally unit tests, but
possibly scripts) to run the example programs (in examples directory) and:
As unit tests,
Have to consider how to run GUI examples -- i.e. dicomtree.py. May not be
able to automate checking, in which case it should not go in unittests.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=46
From [email protected] on September 30, 2008 23:26:08
What steps will reproduce the problem? 1. Read a dicom file which is non-standard in not having file meta info
(preamble and group 2)
2. Write it out again.
Current code will also write without the meta info. Need to put in required
tags using pydicom's own Implementation Class UID, (optional) version, etc.
Group 2 elements [0, 1, 2, 3, 0x10, 0x12] are required by the DICOM standard.
Should also have a switch to put pydicom Implementation Class UID in even
if read-in file had proper meta info, as pydicom will have been the last to
process the file.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=14
From [email protected] on May 17, 2009 14:12:54
It's considered bad practice for the library name and it's import name to
be different -- it is confusing for users.
So, should change the import name to "pydicom", which would require:
Original issue: http://code.google.com/p/pydicom/issues/detail?id=45
From [email protected] on May 14, 2009 04:37:44
I'm wondering if pydicom supports multi-frame :? What version of the product are you using? On what operating system? Latest version with WinXP
Original issue: http://code.google.com/p/pydicom/issues/detail?id=44
From [email protected] on September 26, 2008 16:16:42
As of mid-Sept/08, python 3.0 release candidate is out. This changes many
features of the language, some in ways that are not backward compatible.
pydicom code will have to change (perhaps a fork) to run under python 3.0.
It will be some time before python 3.0 is widely adopted, however.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=13
From [email protected] on October 16, 2008 18:46:43
As adding more images, is cluttering the test directory. Restructure so
images have their own subfolder.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=23
From [email protected] on April 10, 2009 10:51:49
See http://groups.google.com/group/pydicom/browse_thread/thread/2e38bcdbf57891e 5.
The entry for (0018,9445) (retired) has blank entries, and should get some
kind of definition.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=40
From [email protected] on October 16, 2008 18:48:46
If header missing, should be more careful about auto-detecting whether is
DICOM or not. Can for example compare group value to guess if big or little
endian.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=24
From [email protected] on April 24, 2009 10:30:43
I ran into this problem while working with some new imagery.
With the attached imagery:
dcm = dicom.ReadFile( 'img3.dcm' )
dicom.WriteFile( 'img3out.dcm', dcm )
You receive "NotImplementedError: WriteDataElement: unknown Value
Representation 'US or SS or OW'".
This error raises when trying to write the tag (0028, 3006) LUTData.
Clearly the writing for this VR is not implemented, but easy to fix since
US, SS and OW are all some binary 16 bit values (ss and us have VM of 2,
where OW can be a large buffer of values).
Note: The following solution works for my needs under limited testing.
First, since US and SS both use write_OWvalue in filewriter.py, add 'US or
SS or OW':write_OWvalue to the writers dictionary.
Now pydicom will most likely raise an error in the write_OWvalue method
because it sees a list instead of a buffer of shorts. This is because the
DataElement constructor does not correctly capture the data for VR 'US or
SS or OW'.. It treats the buffer as a free text type VR and splits on the
text delimiter giving you a list of strings if the delimiter exists within
your data.. To treat the data as binary, do the following:
in the DataElement Constructor:
under _setvalue(self,val)
if isString(val) and self.VR not in
['UT','ST','LT', 'FL','FD','AT','OB','OW','OF','SL','SQ','SS',
'UL','US', 'OW/OB', 'UN', ## ADD THIS ->## 'US or SS or OW']:
Now this should work:
dcm = dicom.ReadFile( 'img3.dcm' )
dicom.WriteFile( 'img3out.dcm', dcm )
Attachment: img3.zip
Original issue: http://code.google.com/p/pydicom/issues/detail?id=41
From [email protected] on December 10, 2008 22:48:30
It looks like filewriter module does not recalc group length fields except
for file meta info section. Should make this the case for all groups.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=30
From [email protected] on October 16, 2008 18:33:36
Create a UID class which subclasses string and prints the name of a UID
(e.g. transfer syntax name) rather than the 1.2.480...
Original issue: http://code.google.com/p/pydicom/issues/detail?id=21
From [email protected] on December 09, 2008 23:33:15
Attribute class str() display usually truncates large items. But if
multi-valued (a list) then len(value) can be small (the number of items in
the list) but the printed list very large. Saw this in Senographe file with
LUTs.
Need to check the overall length of the output in case of lists.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=29
From [email protected] on September 23, 2008 17:25:35
Use python logging module to:
Original issue: http://code.google.com/p/pydicom/issues/detail?id=12
From [email protected] on October 03, 2008 20:17:14
dicom.ReadFile() fails with unpack running out of data on 64-bit systems.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=15
From [email protected] on September 12, 2008 20:50:46
Original code had Numeric library support for coercing image data to the
right form. Need to resurrect that, and update to the latest library (numpy?).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=4
From [email protected] on September 15, 2008 19:26:20
From DICOM standard 08_05 Table 6.2-1, need to add readers and writers for
the following:
Also see if can find files with these in them to test with.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=8
From [email protected] on May 27, 2009 22:58:02
A pydicom "gotcha" comes from disconnect between Dataset.pixel_array
property and Dataset.PixelData. The latter is actually in the Dataset (a
dict), the former is created from it but changes are not written back
unless ds.PixelData is explicitly set with e.g. pixel_array.tostring().
Possible solutions:
I like the second idea better, but am hoping someone can come up with an
even cleaner solution.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=49
From [email protected] on June 11, 2009 22:26:44
As outline in PydicomUserGuide , can delete a data element from a dataset using
the tag. But should be able to do so using the name, just as for getting and
setting DICOM data elements, e.g. del ds.PatientId
Steps:
Then I will need to also edit the deletion part of the PydicomUserGuide to
show how to use the new method.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=50
From [email protected] on September 13, 2008 11:15:04
Find more DICOM files for the test suite.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=5
From [email protected] on December 14, 2008 10:10:46
Investigate BSD or MIT licenses, convert source files to refer to new license.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=31
From [email protected] on October 20, 2008 23:54:20
There may be incompatibilities with python 2.6. Test and see if pydicom
works with it.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=25
From [email protected] on December 18, 2008 00:47:22
Dataset does not give the best tab completion since dicom dataset
attributes are not actually object properties directly but are looked up.
See if can make tab completion (on ipython, perhaps others) work.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=32
From [email protected] on January 24, 2009 11:04:43
I think I saw some published dictionaries for private tags from some of the
vendors -- e.g. Siemens, GE, Philips. "It would be nice" to have
dictionaries available for such private tags.
Needs a little thought since tag numbers could conflict between different
vendors. May have to check the tags near start of dataset (e.g.
Manufacturer (0008,0070)?) and attach only that vendor's private tags
dictionary to the dataset instance somehow.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=36
From [email protected] on September 13, 2008 22:54:38
Investigate the follow methods to deliver pydicom:
Original issue: http://code.google.com/p/pydicom/issues/detail?id=6
Skipping this issue number to maintain synchronization with Google Code issue IDs.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=37
From [email protected] on September 07, 2008 23:14:46
I have turbogears-based code which shows datasets through a javascript
interface with ability to expand and collapse nodes. Would like to add this
in but using a simpler interface like cgi.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=2
From [email protected] on May 13, 2009 20:14:39
Code could be simplified by using python's Decimal object for VR=DS types -
Original issue: http://code.google.com/p/pydicom/issues/detail?id=43
From [email protected] on September 15, 2008 19:04:21
Write code to parse DICOMDIR files (need a short one for unit tests also).
Original issue: http://code.google.com/p/pydicom/issues/detail?id=7
From [email protected] on October 11, 2008 21:44:23
Some dictionary items are OW/OB, 'US or SS' etc. See if can resolve which
was actually used and read with appropriate byte swapping if required.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=19
From [email protected] on November 24, 2008 14:40:43
I loaded the file in other dicom apps (Jdicom, ClearCanvas, Matlab), and
all apps parse these files correctly. Perhaps there is a bug handling null
sequences?
Using pydicom 0.9.1, WinXP 32-bit Python 2.5.2
Original issue: http://code.google.com/p/pydicom/issues/detail?id=27
From [email protected] on September 12, 2008 20:45:27
Need one or more wiki pages to explaing the classes and methods available
in more detail.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=3
From [email protected] on October 16, 2008 18:45:19
Rename Attribute to DataElement to more closely follow DICOM standards.
Attributes are what they are called in IODs, then Attributes are encoded
into Data Elements in actual DICOM files.
Original issue: http://code.google.com/p/pydicom/issues/detail?id=22
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.