feat(microscopy): add dicom microscopy extension and mode (#3247)

* skeleton for dicom-microscopy extension

* skeleton for microscopy mode

* [feat] ported @radicalimaging/microscopy-dicom to OHIF's default extension

* [feat] ported microscopy mode from private repo

* added new definitions to the package.json

* webpack configuration update for microscopy extension

* register new icons for microscopy tools

* fixes to the microscopy extension and mode

* trivial error fix - typescript type import error

* link microscopy extension with default OHIF app plugin config

* demo config fix

* fix logs

* remove unsed imports

* [fix] loading of microscopy

* [fix] webworker script loading, normalizing denaturalized dataset

* found the latest version of dicom-microscopy-viewer that works with current OHIF extension : 0.35.2

* hide thumbnail pane by default, as we have issues with

* comments

* remove unused code

* [feat] microscopy - annotation selection

* [feat] microscopy - edit annotation label

* wip

* [bugfix] dicom-microscopy tool

* [bugfix] dicom microscopy annotations

* [fix] mixed-content blocking caused by BulkDataURI

* [fix] microscopy measurements panel - center button

* [fix] microscopy measurements panel - styling

* [fix] microscopy - controls

* fix local loading of microscopy

* fix local loading of dicom microscopy

* fix typo - indexof to indexOf

* [fix] remove unused icons

* remove commented out lines from webpack configuration

* platform/viewer/public/config/default.js - revert accidental changes

* [refactor] redirecting to microscopy mode on Local mode

* attribution to DMV and SLIM viewer

* [fix] code review feedbacks

* fix thumbnails

* [fix] microscopy - fix old publisher.publish() to PubSubService._broadcastEvent()

* [fix] interactions, webpack config, roi selection

* [feat] microscopy - remove select tool  from UI

* microscopy author

* [fix] saving and loading SR

* [bugfix] - missing publish() function in MicroscopyService, replace with _broadcastEvent

* remove author section from readme

* refactor SR saving feature

* fix webpack config after merge

* [bugfix] repeated import

* fix e2e

* webpack configuration

* hide "Create report" button for microscopy
This commit is contained in:
M.D authored and GitHub committed 2023-04-27 20:53:52 -04:00
1 parent dd3944a87c
commit 075008c674
76 files changed
+5868 -31

No files matched your search

@@ -0,0 +1,37 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round">
<line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711" />
<line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386" />
<line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759" />
<line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707" />
<line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828" />
<line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842" />
<line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918" />
<line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153" />
<line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898" />
<line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829" />
<line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918" />
<line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145" />
<line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621" />
<line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352" />
<line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407" />
<line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807" />
<line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758" />
<line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096" />
<line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792" />
<line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171" />
<line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813" />
<line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427" />
<line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013" />
<line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271" />
<line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475" />
<line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758" />
<line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048" />
<line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166" />
<line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794" />
<line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614" />
<line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925" />
<ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -0,0 +1,34 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
<g fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="miter">
<ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499" />
<line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202" />
<line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902" />
<line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026" />
<line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585" />
<line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848" />
<line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688" />
<line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959" />
<line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945" />
<line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655" />
<line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648" />
<line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785" />
<line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779" />
<line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204" />
<line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488" />
<line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774" />
<line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349" />
<line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351" />
<line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213" />
<line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065" />
<line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528" />
<line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926" />
<line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855" />
<line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024" />
<line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895" />
<line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909" />
<line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348" />
<line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359" />
<line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651" />
<ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 50 50">
<polygon points="24 1, 46 18, 40 49, 9 49, 1 18" stroke="currentColor" stroke-width="3" fill="none" />
</svg>

After

Width:  |  Height:  |  Size: 191 B

@@ -97,6 +97,9 @@ import toolRectangle from './../../assets/icons/tool-rectangle.svg';
import toolFusionColor from './../../assets/icons/tool-fusion-color.svg';
import toolCreateThreshold from './../../assets/icons/tool-create-threshold.svg';
import toolCalibration from './../../assets/icons/tool-calibration.svg';
import toolFreehand from './../../assets/icons/tool-freehand.svg';
import toolFreehandPolygon from './../../assets/icons/tool-freehand-polygon.svg';
import toolPolygon from './../../assets/icons/tool-polygon.svg';
import editPatient from './../../assets/icons/edit-patient.svg';
import panelGroupMore from './../../assets/icons/panel-group-more.svg';
import panelGroupOpenClose from './../../assets/icons/panel-group-open-close.svg';
@@ -216,6 +219,11 @@ const ICONS = {
'tool-fusion-color': toolFusionColor,
'tool-create-threshold': toolCreateThreshold,
'tool-calibration': toolCalibration,
'tool-point': toolCircle,
'tool-circle': toolCircle,
'tool-freehand-line': toolFreehand,
'tool-freehand-polygon': toolFreehandPolygon,
'tool-polygon': toolPolygon,
'edit-patient': editPatient,
'icon-mpr': iconMPR,
'icon-next-inactive': iconNextInactive,