Dear all, dear John,
We are working with a site having several Issuers of Patient IDs.
When looking at the DICOM header of those exams, it may look like this:
- (0010,0020)Patient ID --> PatientID A
- (0010,0021)Issuer of Patient ID --> Issuer A
- (0010,1002)Other Patient IDs Sequence
- 1>(0010,0020)Patient ID --> PatientID B
- 1>(0010,0021)Issuer of Patient ID --> Issuer B
While on some other exams, this will be reversed:
- (0010,0020)Patient ID --> PatientID B
- (0010,0021)Issuer of Patient ID --> Issuer B
- (0010,1002)Other Patient IDs Sequence
- 1>(0010,0020)Patient ID --> PatientID A
- 1>(0010,0021)Issuer of Patient ID --> Issuer A
We are not sure why that is and don't know enough about DICOM to tell wether there is some kind of hierarchy in those patient ID numbering.
We want to process PatientID A from Issuer A, and remove PatientID B from Issuer B.
Our CTP pipelines may be of two kinds:
Type 1:
- DirectoryImportService
- LookupTableChecker
- DICOM Anonymizer :
(0010,0020) PatientID --> @lookup(this,PatientID)
(0010,1002) OtherPatientIDsSeq --> @process()
==> This does not do what we want since we only enter a replacement value for PatientID A and exams get quarantines at the LookupTableChecker stage waiting to get a replacement value for PatientID B
- DirectoryStorageService
Type 2:
- DirectoryImportService
- DICOM Anonymizer:
(0010,0020) PatientID --> @hash(this,16)
(0010,1002) OtherPatientIDsSeq --> @process()
- IDMap
==> Here we want to get the pseudonymization table for Issuer A IDs, which we cannot have when the Issuer A ID is in the (0010,1002)Other Patient IDs Sequence field.
- DirectoryStorageService
Can you help us find the right configuration?
One thing we thought of was to have a preliminary DICOM Anonymizer stage that would remove the Patient ID when Issuer of Patient ID is Issuer B, but we are not sure whether this is a good idea and how to do this.
Thank you very much in advance for your help!
Best regards,
Karine