Anonymization Issue : Related Series Sequence

Hi there,

I think I have hit an anonymization issue for the tag 0008,1250.

This tags is a sequence containing StudyUID / Series UID of related series.
https://dicom.innolitics.com/ciods/cr-image/general-series/00081250

In the current Nema 2020d this tag is not in the anonymization list
http://dicom.nema.org/medical/dicom/current/output/html/part15.html#table_E.1-1

We have here an optional dicom Tag that reference other DICOM UID.
But when you anonymize a study properly as Orthanc does, we change all these UID.

Probleme here, this tag keep a reference of the original Study/Series UID.

So I wanted to get an advice, what should we do with this tag as it is not in the anonymization list of Nema.
Should we warn Nema about this ?

What would be the cleanest way to address this tag ? Remove it as “custum rules” or include this tag to the batch of UID mapping that translate old UID to new anonymized UID (orthanc does that for Referance Frame UID for instance) ?

Thanks for advises / opinions,

Best regards,

Salim

Hello Salim,

Sorry for the delay.

From what I understand, this tag “0008,1250” could be taken into consideration for the “MapDicomIdentifier()” stuff in the “RelationshipsVisitor” that is meant to map old UIDs to anonymized UIDs:
https://hg.orthanc-server.com/orthanc/file/Orthanc-1.8.0/OrthancFramework/Sources/DicomParsing/DicomModification.cpp#l117

Please could you send a sample DICOM series, and highlight what would be the expected answer?

Kind Regards,
Sébastien-

Hi Sebastien,

Thanks for your answer, I asked the Dicom newsgroup, https://groups.google.com/g/comp.protocols.dicom/c/UJkXD5O7v94

What I like in Orthanc is that you rely on the Nema guideline providing refrence for everyone, and then with the api settings we can finetune the anonymization process.

I think the best is to see if there is someone able to answer (espacially from NEMA as it is a clear lack that this tag is not in the nema table).

As a type 3 tag, I think the best way would be simply to clear this tag, I’m going to include that in the RestAPI options on my side, until we get additional data.

Best regards,

Salim

Dear Sebastien,

We got and answer in the dicom newsgroup, this UID sequence should be trated like the main UIDs tags, so yes it should be in the mapidentifier.

Here would need to know at the beginning of the anonymization what SeriesUID you are going to affect to all child series of the study.
Is it feasible for you ?

In attachement you will find a dicom with this sequence tag, this had been anonymized with orthanc, at study level, you will see that the sequence still retains a different StudyUID (the original one) than the new generated StudyUID.

So I expect this UID to be mapped to the new one, I guess the challenge that in this case you need to pre generate seriesUID of all series to be anonymized at the start of the anonymization process. Because otherwise at the anonymization of the first series you will not be able to know what the other series InstanceUID will be if it not determined at the first steps of the anonymization procedure.

Is is something you already handle in your UID mapping ?

Best regards,

Salim

PT000000.dcm (81.4 KB)

Hello,

Thanks for the follow-up.

I can’t analyze this right now. I’ll have a look by the beginning of December.

Sébastien-

Dear Salim,

I finally managed to have a look at this issue.

This should be fixed by the following (quite complex) changeset that has just been committed in the mainline of Orthanc (will be part of Orthanc 1.9.4):
https://hg.orthanc-server.com/orthanc/rev/2e850edf03d6

Feedback is welcome before the official release!

Also, note that I took this opportunity to upgrade the basic anonymization profile from DICOM 2017c to the latest DICOM 2021b, which resolves a bug you opened in our tracker:
https://hg.orthanc-server.com/orthanc/rev/521e39b3f2c0

https://bugs.orthanc-server.com/show_bug.cgi?id=146

I hope this answers your problems.

Kind Regards,
Sébastien-

Dear Sebastien,

Thank you so much !
I didn’t compile Orthanc for years, is there any chance to get a testing container ?

About the anonymization of tags, does the update take account of all tags inside sequence to be anonymized or only thoose refering to UID ?
In the DICOM group it has been responded that the targeted anonymization tags should be looked in all sequences (UID related and orthers).

Thanks for updating the dictionary !
Dicom anonymization is really a mess, 99% of dicom anonymizer are doing garbage, Orthanc has the best anonymizing process by far !

Best regards,

Salim

Hello,

Dear Sebastien,

Thank you so much !
I didn’t compile Orthanc for years, is there any chance to get a testing container ?

For sure: You can use the Docker image “jodogne/orthanc-plugins:latest” (don’t forget to “docker pull jodogne/orthanc-plugins:latest” to make sure you have the latest version).
https://book.orthanc-server.com/users/docker.html

You could also use the precompiled LSB binaries of the mainline of Orthanc:

About the anonymization of tags, does the update take account of all tags inside sequence to be anonymized or only thoose refering to UID ?
In the DICOM group it has been responded that the targeted anonymization tags should be looked in all sequences (UID related and orthers).

Yes, Orthanc now does a recursive exploration of all the sequences, and ensures the consistency of all the tags with “UI” (i.e. UID) value representation in the set of anonymized instances. This part was entirely rewritten wrt. Orthanc 1.9.3, where only a list of hard-coded sequences were considered.

Thanks for updating the dictionary !
Dicom anonymization is really a mess, 99% of dicom anonymizer are doing garbage, Orthanc has the best anonymizing process by far !

Thanks for your support!

Sébastien-

Dear Sebastien,

Thanks for these informations,

I don’t have a full testing dataset to make intensive testing, the anonymization is so complex that it would require almost a production PACS to test it against each particular case.

However I took a random PET/CT and anonymized with the mainline version, I checked that it can be imported in commercial workstation, so far no problem.
I looked at the header looking for remaining PHI tags and didn’t see any, so far looks good !

By the way the streaming of the ZIP of the /archive API is an amazing addition that will give a huge boost in GaelO and OrthancToolsJS,

Thank you again,

Best regards,

Salim

Hi Salim,

Thanks for your positive feedback!

Don’t hesitate to get back in touch with me if you observe an issue with the updated anonymization: I should be able to release Orthanc 1.9.4 within about ten days (which will also include the new support for ZIP streaming).

Kind Regards,
Sébastien-

I’m looking forward to testing the recursive anonymization. That’s probably the most complicated aspect of my Lua anonymization scripts. It will be great if I can jettison that complication in favor of native Orthanc recursive anonymization.

Thanks for all the hard work!
John.