Hi Chris,
The team at the Institute of Cancer Research, London has been working for some time on a coherent method of representing regions-of-interest within XNAT. This was a project that we brought forward at the Rotterdam XNAT Developer Workshop last year and we have since been collaborating closely with Dan's group at WashU. The work is also tightly coupled with our work in integrating the
OHIF viewer into XNAT, and James Petts in my team is playing a very active role in the OHIF open-source development group.
Regarding your specific questions:
1. ROIs can, as you have noted, be represented using many different formats. Possibly the biggest distinction is between formats that are contour-based and those that represent the ROI via a mask or label-map. The first category is very suited to ROIs that are obtained by observers manually drawing round tumours, for example, and also fits very well with radiotherapy workflows that use DICOM RT-STRUCT files to store ROIs. By contrast, mask-based formats are better suited for discontinuous regions of the sort that are often produced by machine-learning segmentations. These ROIs are typically stored as NIFTI or DICOM-SEG files. We aim to support both of these classes of ROI within XNAT.
Because ROIs are the result of processing that has been performed on images, there is a strong argument that (even if they are DICOM files and imported into XNAT at the same time as raw data, say using XNAT's DICOM receiver), they should not be treated in the same way as other DICOM images (i.e., they aren't "scan data" in XNAT parlance). Instead, our framework will treat ROIs as XNAT assessors. When a user uploads ROI data to XNAT, the system will create an assessor, associated with an imaging session, with the original data file as one of its resources.
Assessors are elements in the XNAT schema and, as such, their metadata is captured in XNAT's Postgres database. This means that one will be able to search for ROIs in the same way as for other elements of the schema (subjects, imaging sessions, scans, etc.).
Our beta software (which will be delivered via an XNAT 1.7 plugin) currently deals with contour-based ROIs, for which we have an uploader that supports RT-STRUCT and
NCI's Annotation and Image Markup (AIM) standard. We are currently working on support for mask-based formats, explicitly including DICOM-SEG and NIFTI. The plugin also includes a new-style XNAT 1.7 REST API (xapi), which will provide server-side code accessed via REST calls to upload ROIs and convert between different formats. Thus, end users will be able to use their favourite toolkits (scripts, Python, Java, C++, etc.) to automate upload, querying and download of ROIs within the XNAT ecosystem.
2. A second aspect of the work that we are planning to deliver is the facility to save annotations created within the viewer and to add relevant clinical information. Our proposed route is to create more complex XNAT assessors that map to annotation specifications created with the
AIM Template Builder. This work hasn't yet got underway formally, but we need to deliver this for a grant that has just started and our roadmap is to try and get this out by the end of the year.
3. Regarding the documentation of the various datatypes, I'll refer you to the team at WashU. I'm not sure whether there is a web page listing everything in exactly the way you are looking for. However, there is quite a bit of information out there if you have the time to Google for it systematically.
Best wishes,
Simon