'Contactless' custom dicom routing rules e.g. for QA scans

Skip to first unread message

John McLean

Nov 16, 2021, 10:40:11 AM11/16/21
to xnat_discussion
Dear XNAT folks, 

I'd like to create a 'contactless' rule for dicom routing for specific projects in our XNAT instance. By contactless, i mean, no technologist or radiographer input/editing of the dicom fields is required. My initial thought was to label a protocol with project and subject information in a dicom field that will not change and then to use a custom rule for the session label, ideally where the date and timestamp of the scan becomes the session id. The idea behind this is to make acquiring our MR QA data as simple and error free as possible. 

I have read through the pages below: 

But I'm not convinced I can achieve my goal within the custom rules in the admin UI. Some specific questions as follows.

Can I attribute just the custom session rule for a specific project or will the session rule be enacted for every project? I thought because i am only using a custom rule for the session id that this might be ok but on reading the documentation, my interpretation is that the custom rule (being the first rule) at the session level would trump the session rules for all projects, which is not what i want.   

Can I use the Regular expression logic (anyhow) to pull out the dicom date/timestamp and use that as the session id input ? 

I haven't done any trial and error yet of pushing data through with custom rules, as my reading of the documentation is that I might not be approaching this problem in the best way, but I thought this is something someone might have tackled already? Here's hoping, any advice very welcome.

John McLean 

Herrick, Rick

Nov 16, 2021, 11:29:36 AM11/16/21
to xnat_di...@googlegroups.com

The question is what distinguishes data that’s intended for the project(s) where you want to use this naming logic from data that’s intended for other projects? Without knowing that it’s hard to say if this is doable with the custom routing features.


The biggest issue is that, as best I can tell (it’s been QUITE a while since I’ve messed with this functionality, so I may be wrong on this), you can’t use the value of one tag when evaluating/expanding another. Say you want a rule something like:


“If the project found in StudyDescription is A, then if PatientID matches ^Session: (.*)$ use capture group 1 as the session label.”


That doesn’t work because the custom rule implementation only looks at a single tag at a time.


DicomEdit can do this sort of thing, though, something like:


(0008,1030) == "A" ? session := format["{0} {1}", StudyDate, StudyTime]


Outside of that, my first impulse would be to write a custom DICOM object identifier implementation that does exactly what you want (including handling the conditionals) then assign that to the DICOM receiver where this data will be sent. But I spend all day every day writing Java code in XNAT, so it’s probably not too surprising that that’s my first impulse 😊



Rick Herrick

XNAT Architect/Developer

Computational Imaging Laboratory

Washington University School of Medicine



From: xnat_di...@googlegroups.com <xnat_di...@googlegroups.com> on behalf of John McLean <johnmc...@gmail.com>
Date: Tuesday, November 16, 2021 at 9:40 AM
To: xnat_discussion <xnat_di...@googlegroups.com>
Subject: [XNAT Discussion] 'Contactless' custom dicom routing rules e.g. for QA scans

* External Email - Caution *

You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xnat_discussion/6aa37fb0-cb53-4586-84ec-f0a65d77651an%40googlegroups.com.


The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Moore, Charlie

Nov 16, 2021, 11:49:24 AM11/16/21
to xnat_di...@googlegroups.com
Hi John,

I would also echo making a DICOM object identifier to implement the behavior you want. The custom routing rules are indeed only available sitewide. Additionally, project IDs or subject/session labels can only be pulled from one DICOM element (so grabbing Study Date & Study Time isn't possible).


From: xnat_di...@googlegroups.com <xnat_di...@googlegroups.com> on behalf of Herrick, Rick <jrhe...@wustl.edu>
Sent: Tuesday, November 16, 2021 10:29 AM
To: xnat_di...@googlegroups.com <xnat_di...@googlegroups.com>
Subject: Re: [XNAT Discussion] 'Contactless' custom dicom routing rules e.g. for QA scans
Reply all
Reply to author
0 new messages