In our use of cc, we've come across a few studies with invalid UIDs, involving two periods in a row, such as
1.3.12.2.1107.5.8.2..200912223559125.9072
Such studies store & display OK in efilm.
Not sure if it is necessarily an "error" to choke on such UIDs, but we've seen this a few times, and eFlm doesnt choke on it.
With the following 1-character change in cc source code, such studies now store and display OK for us:
Change the following line in Dicom/Validation/DicomValidator.cs
_uidValidationRegex = new Regex("^[0-9]+([\\.][0-9]+)*$");
to
_uidValidationRegex = new Regex("^[0-9]+([\\.]+|[0-9]+)*$");
— End of inner exception stack trace —
2009-12-03 00:13:27,359 [Pool:15] ERROR - Exception thrown
System.Exception: The file cannot be inserted into the Data Store (.\dicom_interim\jbg05osg.wld.dcm). The file has been moved to C:\ClearCanvas\workstation\badfiles\jv5hj0xd.awz ---> ClearCanvas.Dicom.DicomDataException: Invalid Study Instance UID: Invalid DICOM UID format: 1.3.12.2.1107.5.8.2..200912223559125.9072
at ClearCanvas.Dicom.Validation.DicomValidator.ValidateStudyInstanceUID(String uid)
at ClearCanvas.Dicom.DataStore.Data— End of inner exception stack trace —
2009-12-03 00:13:27,359 [Pool:15] ERROR - Exception thrown
System.Exception: The file cannot be inserted into the Data Store (.\dicom_interim\jbg05osg.wld.dcm). The file has been moved to C:\ClearCanvas\workstation\badfiles\jv5hj0xd.awz ---> ClearCanvas.Dicom.DicomDataException: Invalid Study Instance UID: Invalid DICOM UID format: 1.3.12.2.1107.5.8.2..200912223559125.9072
at ClearCanvas.Dicom.Validation.DicomValidator.ValidateStudyInstanceUID(String uid)
at ClearCanvas.Dicom.DataStore.DataAccessLayer.DicomPersistentStoreValidator.Validate(DicomFile dicomFile)
at ClearCanvas.ImageViewer.Shreds.LocalDataStore.LocalDataStoreService.DicomFileImporter.ParseFile(ImportJobInformation jobInformation)
— End of inner exception stack trace —