Hi core devs,
We have had this plan for several years now to customize the content of the fields that appear in the DICOM browser. We wanted to get rid of the ^ character in the patient name, show the time a patient/study/series was added, show number if images in a series, etc.
I created a branch during the 2014 CTK Hackfest in Kingston that never got integrated due to the different needs of the MITK and Slicer people. However I decided to resurrect that branch hoping that we can now change this part of CTK. Here is the rebased, merged, squashed, and fixed branch that works with the latest Slicer and CTK.
In a nutshell, this is what it contains:
- For Patient, Study, Series tables there is a corresponging DisplayPatient, DisplayStudies, DisplaySeries table in the database that contain the fields we want to show in the DICOM browser
- Plugins can generate fields from modality-specific data and user needs
- A method calls the plugins to generate the display tables from regular tables when import ended
We talked to @lassoan about how we could continue from here, and this is what we think would be a good plan:
- Use the 3 tables (instead of 3+3), but add new columns for display fields (with prefix “Display”)
- Easier synchronization on removal etc.
- New table for column properties
- Order (-1 for not shown?)
- Format (“last name, first name”, unit properties, etc. - rules can use these for generating displayed fields)
- ViewID (in case there will be multiple property tables - can add later if needed)
- New columns
- Number of slices for series (show number of files for simplicity)
- Number of studies for patients
- Insert timestamp for all three tables
- Number of series for studies
- We need to still decide where the plugins would come from and how. Currently all plugins are C++ and are in CTK (that’s how I did it for easy implementation and testing), but we could use the DICOM plugins in Slicer to define these “rules”.