I use pydicom[1] quite a lot. It is an open source, pure Python module for reading & writing DICOM files. Works very well by essentially transforming the whole DICOM file into a big dictionary.
pydicom is nice but it lacks network functionality: find, send, store and so on. And it cannot decompress jpegs.
Two large open source toolkits are dcmtk[1] and gdcm[2]. Both comes with commandline applications for viewing dicom files and querying pacs servers. gdcm is bundled with itk[3].
[1]https://code.google.com/p/pydicom/