In OHIF v2, you could add functionality (e.g., MPR rendering, segmentation, and more) using extensions. However, since extensions frequently included side effects, this meant that reusing extensions usually required maintaining separate forks of OHIF. To address this, we have conducted a comprehensive re-architecture of Extensions, and have introduced the concept of Modes.
Modes are configuration objects that instruct the Viewer how to assemble Extensions to create applications on various routes (i.e., URLs). In more detail, in OHIF v3, extensions are building blocks which provide functionality, and it is the responsibility of Modes to assemble and use them. For instance, you can create a "Measurement Tracking" Mode registered at "mydomain/tracking" to utilize standard tools, panels, and rendering functionalities provided by Cornerstone Extension to annotate and track measurements. In parallel, your application can include the Segmentation mode, which is accessible at "mydomain/segmentation" and provides a segmentation panel, segmentation tools, and AI results that your custom extension will provide. This re-architecture enhances OHIF's modularity and brings us one step closer to enabling the sharing of functionality and workflows within the community. In the long-term, we would like to enable runtime installation of Modes by end users.