diff --git a/PW44_2026_GranCanaria/Projects/AddingDicomSupportInformationToExtensionManager/README.md b/PW44_2026_GranCanaria/Projects/AddingDicomSupportInformationToExtensionManager/README.md new file mode 100644 index 000000000..48eed332d --- /dev/null +++ b/PW44_2026_GranCanaria/Projects/AddingDicomSupportInformationToExtensionManager/README.md @@ -0,0 +1,86 @@ +--- +layout: pw44-project + +permalink: /:path/ + +project_title: Adding DICOM Support Information To Extension Manager +category: DICOM +presenter_location: + +key_investigators: + +- name: Kyle Sunderland + affiliation: Queen's University + country: Canada + +- name: Andrey Fedorov + affiliation: BWH + country: USA + +- name: Andras Lasso + affiliation: Queen's University + country: Canada + +--- + +# Project Description + + + + +Currently DICOM support in extensions is written to a json file in the slicer repo ([DICOMExtensions.json](https://github.com/Slicer/Slicer/blob/main/Modules/Scripted/DICOM/DICOMExtensions.json)), however this information is not frequently updated as new extensions are added, unmaintained extensions removed, and additional modality support added to extensions. + + + +## Objective + + + + +1. Add additional metadata to the extension index to describe DICOM support implemented in each extension. +2. During DICOM import if no DICOM plugins are able to load the modality, then query the list of available extensions to find an extension that can import the data. + + + +## Approach and Plan + + + + +1. Update [Slicer Package Manager](https://github.com/girder/slicer_package_manager) to handle additional DICOM support metadata + - This can be done by specifying a [rule-engine](https://pypi.org/project/rule-engine/) string that can be used to define extension compatibility with Modality and SOPClassUID. + - Ex: + ```"(Modality == 'SEG') or (SOPClassUID == '1.2.840.10008.5.1.4.1.1.30') or (Modality == 'SR' and (SOPClassUID == '1.2.840.10008.5.1.4.1.1.88.22' or SOPClassUID == '1.2.840.10008.5.1.4.1.1.88.33'))"``` +3. Update 3D Slicer core to query the list of available extensions to find an extension that can handle the current modality. +4. Integrate this PR with other efforts to update the extension manager (extensions tiers, multiple categories, etc.). + + +## Progress and Next Steps + + + + +1. Describe specific steps you **have actually done**. + + + + +# Illustrations + + + + +_No response_ + + + +# Background and References + + + + +https://github.com/girder/slicer_package_manager +https://pypi.org/project/rule-engine/ +