# DICOM information table with no complete information

**URL:** https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250
**Category:** Development
**Tags:** dicom
**Created:** [December 28, 2020, 4:10pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250 "2020-12-28T16:10:14Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Ash\_Alarfaj](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ash_alarfaj/32/3327_2.png) [@Ash\_Alarfaj](https://discourse.slicer.org/u/Ash_Alarfaj)
#### Post date: [December 28, 2020, 4:10pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/1 "2020-12-28T16:10:15Z")

</div>

Problem report for Slicer 4.11.20200930 win-amd64: [in dicom the older versions showed a better table with series date] I can not control the table width, no series date

 ![Screenshot dicom](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/5/9/5961d686392828012f34e3cb8a45e6f18aba1a05.png)

---

<div class="post-metadata">

### Author: ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)
#### Post date: [December 28, 2020, 4:30pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/2 "2020-12-28T16:30:03Z")

</div>

You can now control what fields you want to show in the DICOM browser, what order, format, sorting, and width. This also means that if open an old database then it might be possible that column setup is taken from there, which is not ideal (has the problem you described). I would recommend to create a new DICOM database and import your data sets again. It should just take a few minutes. Let us know if you encounter any problems or need hp with customizing the columns.

---

<div class="post-metadata">

### Author: ![Ash\_Alarfaj](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ash_alarfaj/32/3327_2.png) [@Ash\_Alarfaj](https://discourse.slicer.org/u/Ash_Alarfaj)
#### Post date: [December 28, 2020, 5:32pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/3 "2020-12-28T17:32:44Z")

</div>

Hi Andras

the problem still exists, I think there is a bug, I am happy to continue my work in slicer 10.2. as Dicom table looks like this, also I could control the table columns width. I am using windows version slicer10.2

 ![dicom10.2.png](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/b/8/b8260e1502ad5cfcfed5cd26a557d43f5e47ebea.png)

---

<div class="post-metadata">

### Author: ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)
#### Post date: [December 28, 2020, 6:00pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/4 "2020-12-28T18:00:47Z")

</div>

Do not use Slicer-4.10.2. The DICOM browser in Slicer-4.11.20209030 is vastly superior.

> [@Ash\_Alarfaj](#):
>
> I can not control the table width

You can. Drag-and-drop the _right_ side of any wide column. By default these are the manually resizable columns (the others are either very short, so there is no need for manual size adjustment; or very long and so it is set to use the maximum remaining space):

- Patient: Patient ID, Last Study Date, Date added
- Study: Study ID, Date added
- Series: Date added

Column resize is not enabled by default for other columns because it should not be necessary (there is one auto-fit column that takes up the unused space). If you want to try if you prefer manual resizing then copy-paste this into the Python console, for example for series description:

```python
dicomBrowser = slicer.modules.dicom.widgetRepresentation().self().browserWidget.dicomBrowser
dicomDatabase = dicomBrowser.database()
dicomDatabase.setFormatForField('Series', 'SeriesDescription', '{"resizeMode":"interactive"}')

```

Series Date is intentionally hidden by default:

- It is a type 3 (optional) field, often not set
- Study date is a type 2 (required) field, it is already shown by default in Study table
- Series table is already crowded with several new, very informative fields (Size, Count, Date added), therefore adding more fields would make leave less space for Series description

Anyway, you can customize all the columns to make it fit your workflow. For example, run this to show the series date column:

```python
dicomBrowser = slicer.modules.dicom.widgetRepresentation().self().browserWidget.dicomBrowser
dicomDatabase = dicomBrowser.database()
dicomDatabase.setVisibilityForField('Series', 'SeriesDate', True)

```

Column visualization preferences are stored in the DICOM database, therefore you need to set it only once. Also if you use a separate DICOM database for each project you work on, you can use a different column layout for each. You can find many more examples of how to customize columns in the [script repository](https://www.slicer.org/wiki/Documentation/Nightly/ScriptRepository#Customize_table_columns_in_DICOM_browser).

---

<div class="post-metadata">

### Author: ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)
#### Post date: [October 9, 2025, 3:35pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/5 "2025-10-09T15:35:37Z")

</div>

> [@lassoan](#):
>
> Column resize is not enabled by default for other columns because it should not be necessary (there is one auto-fit column that takes up the unused space).

I ran into the same issue, many years ago, and here we are - 5 years later, and fortunately I remembered this strange UI trick to help @rkikinis who was confused the same way as me and as @Ash_Alarfaj (and also by another user in this thread [New DICOM browser is ready - #13 by lassoan](https://discourse.slicer.org/t/new-dicom-browser-is-ready/8819/13))… Sorry, but this is not a good UI design.

---

<div class="post-metadata">

### Author: ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)
#### Post date: [October 9, 2025, 3:57pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/6 "2025-10-09T15:57:12Z")

</div>

This is standard spreadsheet/table editing behavior, but I agree that it is not intuitive. A better behavior would be to make the field shorter, fixed-size, and more readable (e.g., “just now”, “5 minutes ago”, “2 hours ago”, etc.) but that would require some design changes in CTK (what we display would not be the same as the value in the database). I would not invest time into this now, as @Davide_Punzo will make the patient list in the reworked visual DICOM browser much better than this.

---

<div class="post-metadata">

### Author: ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)
#### Post date: [October 9, 2025, 4:02pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/7 "2025-10-09T16:02:33Z")

</div>

> [@lassoan](#):
>
> I would not invest time into this now, as @Davide_Punzo will make the patient list in the reworked visual DICOM browser much better than this.

Sounds reasonable. What is the recommended mechanism to communicate feedback about Visual DICOM Browser? Is there a single place/document?

We did look into it today with @rkikinis as well, and definitely there’s feedback to communicate…

---

<div class="post-metadata">

### Author: ![Davide\_Punzo](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/davide_punzo/32/66104_2.png) [@Davide\_Punzo](https://discourse.slicer.org/u/Davide_Punzo)
#### Post date: [October 9, 2025, 4:43pm UTC](https://discourse.slicer.org/t/dicom-information-table-with-no-complete-information/15250/8 "2025-10-09T16:43:43Z")

</div>

@fedorov here it is the current To Do roadmap:

> <https://github.com/commontk/CTK/issues/1230>
>
> \- \[\] \*\*1.\*\* Implement sending in C++ in CTK (i.e., adding \`ctkDICOMSendJob\`, \`c…tkDICOMSendWorker\`, and \`ctkDICOMSend\` with underlying DIMSE \`DcmStorageSCU\`). This would allow the use of the background/parallel operations infrastructure for SEND as well.
> \- \[\] \*\*2.\*\* Add DICOMweb support.
> \- \[\] \*\*3.\*\* Handle the jobs queue in the scheduler by file (so we can restart the jobs/workers at application restart).
> \- \[\] \*\*4.\*\* Add data streaming from visual browser series widgets to Slicer volume nodes.
> \- \[\] \*\*5.\*\* Add support for DICOM frame set (\[GitHub issue\](https://github.com/Slicer/Slicer/issues/8102), \[discussion\](https://discourse.slicer.org/t/new-frame-set-table-in-the-dicom-database/35012)).
> \- \[\] \*\*6.\*\* Test loading of series with an extra “localizer” slice (\[discussion link 1\](https://discourse.slicer.org/t/problems-during-dicom-import/9060/31?u=lassoan), \[discussion link 2\](https://github.com/Slicer/Slicer/blob/1f7bb55e84af9eaa8993ea3dd305413f83680721/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L290-L314)). Test also Fluoro acquisitions.
> \- \[\] \*\*7.\*\* Restore the old advanced/examine UI for loading a series in the visual DICOM browser.
> \- \[\] \*\*8.\*\* Improve the visual DICOM browser (and CTK in general) to use \`styleSheet\` instead of \`QPalette\` for dynamic color changes. Ideally, the solution should:
> 1. Use one unique style file containing the stylesheet for all CTK classes.
> 2. Change the color of Qt widgets in CTK dynamically with the Property Selector (e.g., \[Dynamic Properties and Stylesheets\](https://wiki.qt.io/Dynamic\_Properties\_and\_Stylesheets)).
> 3. Allow custom Slicer apps to change the style by simply rewriting and reloading the style file.
> \- \[\] \*\*9.\*\* Add a writing lock static variable in the \`ctkDICOMDatabase\` class.
> \- \[\] \*\*10.\*\* Implement smart management of inserts and memory when retrieving a series (e.g., add a customizable \`framesBatchLimit\` variable).
> \- \[\] \*\*11.\*\* Add infrastructure to set the maximum number of concurrent workers per server (currently, it is per job type).
> \- \[\] \*\*12.\*\* Update retry time delay to be exponential with a factor of 2/3 (with some randomness). The current default of 100ms is insufficient for server recovery. Replace the maximum number of retries (default: 3) with a maximum waiting time (defined in the GUI server settings). Add a timeout warning in the UI and ensure the string is clear.
> \- \[\] \*\*13.\*\* Allow disabling automatic prefetch of the full series (current behavior). If the option is active, retrieval of all frames should occur only when selected series are manually loaded.
> \- \[\] \*\*14.\*\* Replace the Patients list as tabs in the tab control of the Patient widgets with the old widget from the \`ctkDICOMBrowser\` (first one, only the patient list). Add an option to switch between them.
> \- \[\] \*\*15.\*\* Improve UI clarity regarding querying PACS servers vs. filtering the local database.
> \- \[\] \*\*16.\*\* Address UI performance issues when importing a large number of patients (\>500, \>5000 series).
> \- \[\] \*\*17.\*\* Add a button to enable full-screen mode in the visual DICOM browser.
> \- \[\] \*\*18.\*\* Apply thumbnail size settings changes without requiring a restart.
> \- \[\] \*\*19.\*\* Add a feature for force download of series/study:
> - Add a checkable setting (default: False). If any study is 3 hours old (based on DICOM study date), force redownload every time a query is performed (not for local search).
> - Enable monitoring (right-click action) for a configurable time. Automatically fetch and update the UI if any series or instances in a series are uploaded to PACS. Add UI icons to indicate updates. For series, check if new instances have been added to the PACS.
> \- \[\] \*\*20.\*\* Add a feature to check a folder containing DICOM files when clicking the query/retrieve lens button. If files are present, import them and clean the folder. Create a lock file in the DICOM folder with the PID of the session accessing/deleting the files. Investigate using a watcher for automatic import. Treat the local folder as a "local connection" (like a server) to allow adding multiple folders in settings. Ensure the infrastructure is protocol-independent.
> \- \[\] \*\*21.\*\* Fix rendering for Segmentation DICOM objects in the \`ctkThumbnail\` class.
> \- \[\] \*\*22.\*\* Add an option in settings to order series in the study widget by modality.
> \- \[\] \*\*23.\*\* Automatically load the source volume when loading a segmentation.
> \- \[\] \*\*24.\*\* Show a popup warning when loading a series that is unsupported (or supported with an extension).
> 
> 
> References: 
> 
> \- old roadmap: https://github.com/commontk/CTK/issues/1162

You can use the same issue to provide feedback, it would be very welcome!

At the same time, I am currently working on a full refactoring of the UI. The previous widget-based implementation had several limitations both in UI design and perfomances. I am switching into a model/view/delegate design which solves the perfomances issues for large datasets and it will also allow me to fully customize the UI (for example the patient tab was really not optimal).

As soon as I have the new implementation (probably in few weeks) I will create a PR in CTK/Slicer and it will be very nice indeed to receive feedback.

dev branch is [Commits · Punzo/CTK · GitHub](https://github.com/Punzo/CTK/commits/visualDICOMBrowserUIRefactor/)

and this is the UML diagram:

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/2/3/231d040ea8fcf7bb41ff7b682175e30f70f07d25.jpeg)

The UI at series and study levels will not change too much (but the PR will improve on a lot of small things), while at patient level will change. I will share screenshots asap.
