Hello everyone,
I have a question regarding accessing and modifying clinical or derived data directly via the XNAT PostgreSQL database.
In my XNAT 1.8.9 instance, I noticed that some information displayed in the UI (for example Patient Age shown in the MR Session details) is read from the DICOM files at display time and does not appear to be persisted in PostgreSQL (e.g. dcmpatientbirthdate is NULL, and there is no age column in xnat_subjectdata).
On the other hand, values entered through Custom Field Sets / Form Manager (such as MMSE scores) are stored in PostgreSQL (for example in xnat_experimentdata.custom_fields as JSONB), and can be queried with SQL.
My questions are:
Is it recommended or supported to insert or update values directly in PostgreSQL (e.g. updating custom_fields JSONB) for derived or clinical variables like MMSE or Age?
For DICOM-derived values such as PatientAge (0010,1010), is there a recommended way to persist them in XNAT so that they become searchable via SQL or XNAT search (e.g. via Subject Variables, Assessors, or custom datatypes)?
Are there best practices for making DICOM-derived metadata queryable (without breaking XNAT indexing, permissions, or audit trails)?
The goal is to enable queries such as “all sessions/subjects with age = 55” or “MMSE ≥ 24” in a safe and XNAT-compliant way.
Thank you in advance for your guidance.
Best regards,
Reda
Timothy R Olsen
Founder, President
--
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 visit https://groups.google.com/d/msgid/xnat_discussion/27230e22-2bcc-45d4-a998-a5549d936ebdn%40googlegroups.com.
Thanks for the clarification. In my instance, session dates are populated, but the subject DOB/YOB isn’t stored (likely due to anonymization), so Age can’t be calculated. I also don’t see an Age column under Edit Columns when listing sessions. Is Age computed strictly from stored DOB/YOB, or can it also use the DICOM PatientAge (0010,1010) tag?
To view this discussion visit https://groups.google.com/d/msgid/xnat_discussion/36cc889e-0eab-4043-8a0d-2559ade0b229n%40googlegroups.com.