jpr [Wed, 31 May 2006 16:16:04 +0000 (16:16 +0000)]
Fix troubles in AnonymizeMultiPatient.
(It ensures (hope so) that all the Patient names will be different
after anonymization.
It will probabely replace AnonymizeNoLoad
jpr [Wed, 31 May 2006 16:09:29 +0000 (16:09 +0000)]
Add an open source code for MD5.
This will allowed to use a rough way to anonymize Patient's name, instead of
writing an arbitrary value.
(When we anonymized a multi-patient Directory, it leaded to a mees -all the
patients with the same name-)
jpr [Tue, 30 May 2006 08:10:19 +0000 (08:10 +0000)]
Comment out some deprecated function (instead of GDCM_LEGACY, that seems to be
dealt with in a mood-dependant way by swig), to be able to compile everywhere.
malaterre [Thu, 11 May 2006 20:01:28 +0000 (20:01 +0000)]
ENH: vtkgdcmSerieViewer2 looks like it's completely duplicated code. oh god we love duplicated code in gdcm, do we. Fix a minor warning (perf reason cast to bool thing)
jpr [Tue, 2 May 2006 13:11:57 +0000 (13:11 +0000)]
Add some comments about
// Description:
// Aware user is allowed to pass his own gdcm::File *, so he may set *any Dicom field* he wants.
// (including his own Shadow Eleents, or any gdcm::SeqEntry)
// gdcm::FileHelper::CheckMandatoryElements() will check inconsistencies, as far as it knows how.
// Sorry, not yet available under Python.
vtkSetMacro(GdcmFile, gdcm::File *);
and
// gdcm cannot guess how user built his image (and therefore cannot be clever about some Dicom fields)
// It's up to the user to tell gdcm what he did.
// -1) user created ex nihilo his own image and wants to write it as a Dicom image.
// USER_OWN_IMAGE
// -2) user modified the pixels of an existing image.
// FILTERED_IMAGE
// -3) user created a new image, using existing a set of images (eg MIP, MPR, cartography image)
// CREATED_IMAGE
// -4) user modified/added some tags *without processing* the pixels (anonymization..
// UNMODIFIED_PIXELS_IMAGE
// -Probabely some more to be added
//(see gdcmFileHelper.h for more explanations)
jpr [Tue, 2 May 2006 10:09:43 +0000 (10:09 +0000)]
Propagate Mathieu's modif from 1.2 to CVS version.
ENH: A few stuff:
Do not call ResetCameraClippingRange in VTK5 and above (fixed)
Update to new API for the ZSlicer stuff in vtkImageViewer2
Add a vtkMedicalImageProperties to the writer to pass in medical information from VTK context (pretty neat...)
Minor style, avoid including too many header files
Minor fix in FileHelper::CheckMandatoryElements :
At write time, when we re write an old ACR-NEMA file as a DICOM one,
// Replace deprecated 0028 0012 US Planes
// by new 0028 0008 IS Number of Frames
Some clinical softwares *demand* Patient ID (0x0010,0x0020)
although it's a 'type 2' entry.
Use a default value
//CheckMandatoryEntry(0x0010,0x0020,"gdcm ID","LO");
jpr [Thu, 30 Mar 2006 16:41:22 +0000 (16:41 +0000)]
As a side effect,
bool SerieHelper::ImagePositionPatientOrdering( FileList *fileList )
computes ZSpacing, according to Jolinda Smith's algorithm, already used to sort
the images.
Retrieve it with
double SerieHelper::GetZSpacing();
The pb of using it within vtkgdcmReader() is still pending.
jpr [Wed, 29 Mar 2006 16:09:48 +0000 (16:09 +0000)]
Unnormalized 4th dimension is now dealt with.
User tells gdcm *where* it is.
File::SetFourthDimensionLocation(groupNb, elementNb);
After Load(), he may use int File::GetTSize();
As a proof of concept, PrintFile has one more option :
4Dloc=0x3001-0x1001, for instance.
One can see pixel size is now computed properly.
jpr [Wed, 22 Mar 2006 13:19:25 +0000 (13:19 +0000)]
To speed up the parsing process (avoid accessing HTable when useless):
VR and Key are now stored int the DocEntry
DefaultPubDict is stored as well outsite the Htable.
jpr [Tue, 14 Mar 2006 12:09:18 +0000 (12:09 +0000)]
BUG: Newer version of the software on Siemens MR write proper lenght.
GDCM was overriding without checking for wrong length first.
Can now read old (broken) and new Siemens DICOM files.
Thx to Mathieu.
jpr [Mon, 13 Mar 2006 14:44:07 +0000 (14:44 +0000)]
// User should ask gdcm to write an image in Explicit VR mode
// only when he is sure the VR of *all* the DataElements is known.
// i.e : when there are *only* Public Groups,
// or *all* the Shadow Groups are fully described in
// the relevant Shadow Dictionnary.
// Let's just *dream* about it; *never* trust a user !
// If he doesn't, it write process will produce an 'illegal' Dicom image.
// (it doesn't bother most of Dicom readers, but ...
// Therae are enought illegal Dicom image in the world.
// Don't add illegal gdcm-written Dicom images !
In order to avoid furter troubles,
We turn to Implicit VR if at least the VR of one element is unknown.