XNAT Workshop 2022 Hackathon Projects
This page is meant to be editable by workshop attendees. Log in to edit this page.
If you have registered for this workshop but do not have a login, please contact xnat-workshop@flywheel.io.
This page is being used to propose hackathon projects and get interested people on board to contribute to them. If you would like to join a project, please add your name to the contributors list. If you would like to propose a project, feel free to do so, using the "Heading 2" format for your project title so it will show up in the project list at the top of this page.
Project List
Sample Project 1
Proposed by Will Horton, XNAT Team (Flywheel)
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
This is a description of an example group project. It should have an interest ing feature set that adds something novel to the XNAT universe, while being constrained enough in scope that a two-day hackathon can produce a meaningful minimally viable product to demonstrate. You might propose an estimate of how many man-hours or why type of core expertise you think will be necessary, to help you recruit team members | Plugin |
XNAT with alternate storage backends
Proposed by Simon Doran, Institute of Cancer Research, NCITA
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
There are numerous reasons why it might be helpful for XNAT to work with a data storage backend where the archive structure is different from the way things are currently. Here are three examples:
| Changes to core XNAT |
XNAT federation
Proposed by Simon Doran, Institute of Cancer Research, NCITA
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
The XNAT team has long supported the goals of FAIR research – making data findable, accessible, interoperable, and reusable. There is widespread recognition that "federation" of XNAT systems, that is, creating some mechanism for sharing of either catalogue data or actual data between different XNAT instances is an important development that could play a part in this process, but, to date, there has not been widespread community discussion of exactly what this might look like. Here are two example projects that are currently ongoing:
| Plugin |
XNAT management dashboard
Proposed by Simon Doran, Institute of Cancer Research, NCITA
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
Monitoring XNAT instances is an important management task. In other applications, such features are often provided by "dashboards". Some examples of what one might want to monitor are listed below:
Currently, XNAT monitoring provision is split over a number of different parts of the webapp and external tools:
This potential project asks the question: should we, as a community, try to unify this work and provide a more coherent/common interface? Answering this may also link into the whole discussion of "XNAT 2.0": what do we want XNAT to look like in the future? | Core XNAT? Plugin? External tool in ecosystem? | |
XNAT-OHIF viewer development
Proposed by Simon Doran, Institute of Cancer Research, NCITA
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
This will be a guided session, led by members of the OHIF team The ICR and NCITA teams have been very grateful to the community for the positive reception of our development of the XNAT-OHIF viewer integration and to the WashU and Flywheel teams for all their support. We propose a project to set priorities for future viewer development and would like to canvass the community for ideas and a wish-list. It's likely that we do not have the coding resource to implement everything, but we would like to capture as many different requirements as possible. Areas of need already identified are:
| Plugin |
Establishing a UK XNAT user group
Proposed by Simon Doran, Institute of Cancer Research, NCITA
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
Use of XNAT within the UK is growing fast, with many universities, hospitals and other organisations adopting XNAT as a platform. Should there be a more formal grouping / structure to bring us together to share experiences? If so, what form should this take and what should we do as a UK community? This likely can be done over a short session (or even lunch/dinner). People still register their interest here, but it is unlikely to be a full-fledged hackathon project. | Organisational |
XNAT / Jupyter Hub Playground
Proposed by Will Horton, XNAT Team (Flywheel)
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
This will be a guided session, led by members of the XNATpy and XNAT Team who have been working on Jupyter Hub integration. A free-form, open-ended exercise with guided instruction available. Build a cohort of data in XNAT, and then port that data to a Jupyter Notebook and perform exploratory data mining, or bring your own computation into this environment. Once you develop outputs, discover ways to port those outputs back into your XNAT project. | Integration, ML |
Container Construction for XNAT
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
This will be a guided session, led by members of the XNAT team who have developed the container service Get hands-on guidance on building a container from an executable script of your choice, and learn how to write XNAT-enabling Command JSON scripts that enable you to run those containers from a variety of data contexts within XNAT. | Container Service |
Schema for raw MR and PET data
Proposed by Christoph Kolbitsch
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
We are using XNAT to carry out image reconstruction (currently MR but PET is also in the pipeline) within XNAT using Docker. In order to fully support raw data within XNAT we would like to define new schemas for raw data. We will start with a new schema for MR raw data based on MRD (previously called ISMRMRD) - the open-source data format for MR raw data (https://ismrmrd.readthedocs.io/en/latest/index.html). In a second step we will focus on PET raw data and how to create a schema to support the interfile raw data format (https://stir.sourceforge.net/links/petinterfile03.pdf). | Datatype Plugin |
XNATpy roadmap and collaboration
Proposed by Hakim Achterberg (Erasmus MC)
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
We would like the outcome of this conference workshop session to be an updated roadmap for XNATpy and help increase the number of people that will be contributing to the code. We could add small features together and plan how to make bigger additions in the future collaboratively. Things we already thinking about are:
Everyone will be encouraged to give their input on this. | External Library |
Contactless QA
Proposed by John McLean, NHS GGC
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
Can we create a 'contactless' rule for dicom routing for defined projects in our XNAT instance. By contactless, i mean, no technologist or radiographer input/editing of the dicom tags will be required. My initial thought was to label a protocol with project and subject information in a dicom tag that will not change and then to use a custom rule for the session label, ideally using the date and timestamp (or a derivative of these) to form the session id. The idea behind this is to make acquiring longitudinal MR QA data as simple and error free as possible. I would also be keen to know if there are existing tools / plugins for displaying / interacting with longitudinal QA results accessed via a dashboard type format. If not, then maybes that’s a hackathon project in its own right | script? |
Datastructure definition format of derived data
Proposed by @a user, Erasmus University Medical Center, The Netherlands
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
Storing data that is derived from a raw DICOM image (e.g. nifti's, segmentations, registrations, classifications, etc.) is almost always done in an unorderd fashion, or when there is some organization, it is done according to a locally developed data structure. XNAT of course has a lot of flexibility on how to store derived data, which has the downside that projects vary on how they store this data. Specifically, within collaborations, we would like to define a (meta-)data model or data structure to make sure data collections are searchable. For this we need to define a set of guidelines and a datastructure definition model so you can understand the organization of data set at first glance and it should be machine readable so it can be part of a larger eco-system. With the Imaging Community of the Dutch Health Research Infrastructure (Health-RI) we are starting develop some guidelines/recommendations on how this organization should look like to allow an even further degree of interoperability and standardization. As such this would bring us closer to actual Findability and Interoperability of the data. What: In this session we would like to have a discussion (next to a whiteboard preferrably) on how such a datastructure definition would look like. Scope: Data structure description (file) describing how derived data is organized. Goal: Further development of a common data structure definition and make sure we don't reinvent the wheel 😉 As a starting point we will define a prototype of a data structure definition which adheres to the following: Structure definition:
Here is an example yaml file defining the structure Here is an example notebook XNAT impact: There are a couple of areas in XNAT that can be looked at for improvements →
| Data model, Core XNAT or Plugin, FAIR |
Persistent Identifiers using an Identifier Resolution Service
Proposed by @a user, Erasmus University Medical Center, The Netherlands
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
For reliably referencing data on an XNAT instance from external sources, like a catalog or a publication or other data repositories in case we are dealing with linked data, we need to have globally unique, resolvable and persistent identifiers. When following the FAIR principles data and metadata need be referred to with a globally unique, resolvable and persistent identifiers anyway 😉. One of the ways to implement this, is by using an Identifier Resolution Service like https://identifiers.org/ or https://bioregistry.io/. (Something like a DOI). What: Discussion on how to implement a way to tie persistent identifiers to XNAT resources using a ID resolution service Goal: To formulate a way/guidelines/roadmap to make data persistently identifiable on XNAT. Possible XNAT impact:
| Plugin, FAIR |
Resource Usage Accounting
Proposed by @a user, Erasmus University Medical Center, The Netherlands
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
When maintaining and running storage services using XNAT, accounting the resource usage is a hassle when you have multiple "customers" on your XNAT instance. Usually the biggest resource consumption is storage (if you are not heavily using the container service to train AI models), but under the hood, the way the data is stored on disk is not organized in such a way that you can distinguish users from each other. Therefore we want to propose to implement a mechanism that will keep track of resource usage per: user, PI and project. Since XNAT is a data management platform, this opens up the possibility to add some key functionality like: billing overview, usage reporting, a quota system, etc. There is a possible link or merge opportunity with XNAT management dashboard (What do you think @a user ?) From @a user: I think this also overlaps some with the XNAT with alternate storage backends above. What: Discussion on resource usage account in XNAT Goal: To investigate how to implement a resource usaging accounting system in XNAT Possible XNAT impact:
| Core XNAT or Plugin |
DICOM Supplement 217 support in XNAT
Proposed by James Bowden, Department of Medical Informatics at the University Medical Center Göttingen
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
We would like to use XNAT to store polysomnography data . We have previously been using a custom plugin designed to work with EDF+ files. However DICOM Working Group 32 has introduced DICOM Suppliment 217 for Neurophysiology Waveforms. Their press releases say the following:
We would like ideally to add support for this schema to the XNAT core or if it develop an XNAT plugin that would allow us to store these kind of DICOM files. | Core XNAT Data type or Data type provided via plugin |
XNAT Study Hall
Proposed by @a user, UCL
Description | Type (Plugin, Script, External App) | Contributors |
---|---|---|
This will be a guided session, led by members of the XNAT team If you are relatively new to XNAT, and you are looking to understand some of the core elements a bit better, then these sessions will allow you to dig into the details of various aspects of XNAT and ask some of the experts in-depth questions about how XNAT works and how to make it work for your applications. | N/A |