@ohif/app 3.9.0-beta.4 → 3.9.0-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.1f7b56504d506e7259e3.js} +66 -69
- package/dist/{889.bundle.6df37a2db81b97f4a76a.js → 121.bundle.e65afd9bfd1a425d0050.js} +40 -12
- package/dist/{998.bundle.f2ba5b6c1aa0caa6d672.js → 129.bundle.0be30c39fe5d8557b083.js} +40 -25
- package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.09e5af0a9ae8a285af77.js} +25 -37
- package/dist/{989.bundle.bf32dc457ea9abccca09.js → 14.bundle.cfafff5ce33c8fe9e536.js} +5 -5
- package/dist/{783.bundle.1f650e1ef1b10d19870f.js → 140.bundle.ebaef33bd84b37213744.js} +2 -2
- package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.2b23bfbcb23497d7c87a.js} +548 -301
- package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e0ee762bee7496d6491e.js} +16 -30
- package/dist/{487.bundle.a517b1d6cd2d82b9a7ea.js → 194.bundle.9044099acbadc4c02d04.js} +5 -5
- package/dist/{699.bundle.f62694527f6dfe417f81.js → 211.bundle.318a1dde2daf28c0ca7e.js} +43 -5
- package/dist/{776.bundle.91747df457143051f872.js → 218.bundle.e00a7676e115e4bd4f0f.js} +10 -12
- package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.34db90a140e37d34fd71.js} +544 -221
- package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
- package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.955cc8f5eb5c01295118.js} +5 -9
- package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.fcb2038060a062129d34.js} +7 -0
- package/dist/{550.bundle.4f728d9ab7a8c7685abd.js → 363.bundle.e7332abbff673d8a79e4.js} +234 -150
- package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.bd9884c274c26a54dfae.js} +101 -18
- package/dist/{682.bundle.0909fbf9a76430e4bbc9.js → 382.bundle.3060bce26740a347900b.js} +38 -5
- package/dist/{907.bundle.d2c612ec56380e73df89.js → 444.bundle.1a872eddff40579d7c84.js} +4 -4
- package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.0f1848f6a2cf34829fef.js} +16 -3
- package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.2f703ca4598a3be0d748.js} +950 -348
- package/dist/{905.bundle.c1c60224a599e789feb4.js → 552.bundle.61343aead612379fb815.js} +3 -3
- package/dist/{981.bundle.cccdc8caaa5a11f4a998.js → 555.bundle.e849661a6879ce530191.js} +14 -13
- package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
- package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
- package/dist/{325.bundle.1c54c1689fb4b1955e8c.js → 717.bundle.444382300af90e310557.js} +58 -26
- package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
- package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
- package/dist/{721.bundle.0de8f780088aee87dbd9.js → 799.bundle.1dde0deef2be81924d9d.js} +12 -12
- package/dist/{448.bundle.077b4b50ee63487516eb.js → 806.bundle.05f48607cfe443d63fc6.js} +19 -6
- package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
- package/dist/{961.bundle.6aea7b3de9e93a9ebab1.js → 853.bundle.72427df14c9e5f55b0d6.js} +4 -4
- package/dist/{473.bundle.6cd4be953853f35b29c3.js → 914.bundle.e15be8089bf422ed7b51.js} +512 -274
- package/dist/{94.bundle.08683468d52365475d9a.js → 920.bundle.2ce2755d7ba79de478a2.js} +39 -9
- package/dist/{390.bundle.5a21388b461ee51db594.js → 944.bundle.260e4bf5a03ad05d11b7.js} +655 -95
- package/dist/{243.bundle.391c2805222b849abc2c.js → 989.bundle.50e94f736258c5d8f5b6.js} +4 -4
- package/dist/app-config.js +5 -1
- package/dist/{app.bundle.9e22e72ec23a08cde379.js → app.bundle.6834e46debda9e53f119.js} +167495 -48675
- package/dist/app.bundle.css +5 -4
- package/dist/assets/images/action-new-dialog.svg +14 -0
- package/dist/assets/images/arrow-down.svg +5 -0
- package/dist/assets/images/arrow-left-small.svg +6 -0
- package/dist/assets/images/arrow-left.svg +6 -0
- package/dist/assets/images/arrow-right-small.svg +6 -0
- package/dist/assets/images/arrow-right.svg +6 -0
- package/dist/assets/images/calendar.svg +5 -0
- package/dist/assets/images/cancel.svg +8 -0
- package/dist/assets/images/checkbox-active.svg +9 -0
- package/dist/assets/images/checkbox-checked.svg +9 -0
- package/dist/assets/images/checkbox-default.svg +3 -0
- package/dist/assets/images/checkbox-unchecked.svg +3 -0
- package/dist/assets/images/chevron-down.svg +3 -0
- package/dist/assets/images/chevron-left.svg +3 -0
- package/dist/assets/images/chevron-menu.svg +12 -0
- package/dist/assets/images/chevron-next.svg +6 -0
- package/dist/assets/images/chevron-prev.svg +6 -0
- package/dist/assets/images/chevron-right.svg +3 -0
- package/dist/assets/images/circled-checkmark.svg +6 -0
- package/dist/assets/images/clipboard.svg +1 -0
- package/dist/assets/images/closeIcon.svg +3 -0
- package/dist/assets/images/content-next.svg +9 -0
- package/dist/assets/images/content-prev.svg +9 -0
- package/dist/assets/images/dotted-circle.svg +3 -0
- package/dist/assets/images/edit-patient.svg +15 -0
- package/dist/assets/images/exclamation.svg +9 -0
- package/dist/assets/images/external-link.svg +5 -0
- package/dist/assets/images/eye-hidden.svg +8 -0
- package/dist/assets/images/eye-visible.svg +6 -0
- package/dist/assets/images/focus-frame-target.svg +13 -0
- package/dist/assets/images/group-layers.svg +6 -0
- package/dist/assets/images/icon-add.svg +15 -0
- package/dist/assets/images/icon-alert-small.svg +8 -0
- package/dist/assets/images/icon-chevron-patient.svg +12 -0
- package/dist/assets/images/icon-clear-field.svg +8 -0
- package/dist/assets/images/icon-close.svg +8 -0
- package/dist/assets/images/icon-color-lut.svg +23 -0
- package/dist/assets/images/icon-delete.svg +17 -0
- package/dist/assets/images/icon-disclosure-close.svg +12 -0
- package/dist/assets/images/icon-disclosure-open.svg +12 -0
- package/dist/assets/images/icon-display-settings.svg +21 -0
- package/dist/assets/images/icon-more-menu.svg +17 -0
- package/dist/assets/images/icon-mpr-alt.svg +9 -0
- package/dist/assets/images/icon-multiple-patients.svg +21 -0
- package/dist/assets/images/icon-next-inactive.svg +6 -0
- package/dist/assets/images/icon-next.svg +6 -0
- package/dist/assets/images/icon-patient.svg +13 -0
- package/dist/assets/images/icon-pause.svg +6 -0
- package/dist/assets/images/icon-play.svg +6 -0
- package/dist/assets/images/icon-prev-inactive.svg +6 -0
- package/dist/assets/images/icon-prev.svg +6 -0
- package/dist/assets/images/icon-rename.svg +15 -0
- package/dist/assets/images/icon-search.svg +9 -0
- package/dist/assets/images/icon-settings.svg +13 -0
- package/dist/assets/images/icon-status-alert.svg +8 -0
- package/dist/assets/images/icon-tool-scissor.svg +17 -0
- package/dist/assets/images/icon-toolbar-back.svg +12 -0
- package/dist/assets/images/icon-transferring.svg +6 -0
- package/dist/assets/images/icon-upload.svg +6 -0
- package/dist/assets/images/icons-alert-outline.svg +8 -0
- package/dist/assets/images/illustration-investigational-use.svg +20 -0
- package/dist/assets/images/info-action.svg +10 -0
- package/dist/assets/images/info-link.svg +7 -0
- package/dist/assets/images/info.svg +3 -0
- package/dist/assets/images/launch-arrow.svg +7 -0
- package/dist/assets/images/launch-info.svg +8 -0
- package/dist/assets/images/layout-advanced-3d-four-up.svg +13 -0
- package/dist/assets/images/layout-advanced-3d-main.svg +12 -0
- package/dist/assets/images/layout-advanced-3d-only.svg +9 -0
- package/dist/assets/images/layout-advanced-3d-primary.svg +12 -0
- package/dist/assets/images/layout-advanced-axial-primary.svg +11 -0
- package/dist/assets/images/layout-advanced-mpr.svg +11 -0
- package/dist/assets/images/layout-common-1x1.svg +9 -0
- package/dist/assets/images/layout-common-1x2.svg +10 -0
- package/dist/assets/images/layout-common-2x2.svg +11 -0
- package/dist/assets/images/layout-common-2x3.svg +12 -0
- package/dist/assets/images/list-bullets.svg +10 -0
- package/dist/assets/images/loading-ohif-mark.svg +5 -0
- package/dist/assets/images/lock.svg +1 -0
- package/dist/assets/images/logo-ohif-small.svg +5 -0
- package/dist/assets/images/magnifier.svg +7 -0
- package/dist/assets/images/navigation-panel-right-hide.svg +5 -0
- package/dist/assets/images/navigation-panel-right-reveal.svg +5 -0
- package/dist/assets/images/next-arrow.svg +12 -0
- package/dist/assets/images/notifications-error.svg +8 -0
- package/dist/assets/images/notifications-info.svg +8 -0
- package/dist/assets/images/notifications-success.svg +6 -0
- package/dist/assets/images/notifications-warning.svg +8 -0
- package/dist/assets/images/notificationwarning-diamond.svg +10 -0
- package/dist/assets/images/ohif-logo-color-darkbg.svg +20 -0
- package/dist/assets/images/ohif-logo.svg +18 -0
- package/dist/assets/images/old-play.svg +9 -0
- package/dist/assets/images/old-stop.svg +9 -0
- package/dist/assets/images/old-trash.svg +9 -0
- package/dist/assets/images/panel-group-more.svg +6 -0
- package/dist/assets/images/panel-group-open-close.svg +6 -0
- package/dist/assets/images/pencil.svg +4 -0
- package/dist/assets/images/power-off.svg +11 -0
- package/dist/assets/images/prev-arrow.svg +12 -0
- package/dist/assets/images/profile.svg +1 -0
- package/dist/assets/images/push-left.svg +5 -0
- package/dist/assets/images/push-right.svg +5 -0
- package/dist/assets/images/row-add.svg +8 -0
- package/dist/assets/images/row-edit.svg +9 -0
- package/dist/assets/images/row-hidden.svg +11 -0
- package/dist/assets/images/row-lock.svg +7 -0
- package/dist/assets/images/row-shown.svg +9 -0
- package/dist/assets/images/row-unlock.svg +7 -0
- package/dist/assets/images/settings.svg +6 -0
- package/dist/assets/images/side-panel-close-left.svg +14 -0
- package/dist/assets/images/side-panel-close-right.svg +14 -0
- package/dist/assets/images/sorting-active-down.svg +6 -0
- package/dist/assets/images/sorting-active-up.svg +6 -0
- package/dist/assets/images/sorting.svg +6 -0
- package/dist/assets/images/status-alert-warning.svg +9 -0
- package/dist/assets/images/status-alert.svg +7 -0
- package/dist/assets/images/status-locked.svg +7 -0
- package/dist/assets/images/status-tracked.svg +7 -0
- package/dist/assets/images/status-untracked.svg +6 -0
- package/dist/assets/images/tab-4d.svg +13 -0
- package/dist/assets/images/tab-linear.svg +8 -0
- package/dist/assets/images/tab-patient-info.svg +7 -0
- package/dist/assets/images/tab-roi-threshold.svg +10 -0
- package/dist/assets/images/tab-segmentation.svg +11 -0
- package/dist/assets/images/tab-studies.svg +13 -0
- package/dist/assets/images/tool-3d-rotate.svg +20 -0
- package/dist/assets/images/tool-angle.svg +12 -0
- package/dist/assets/images/tool-annotate.svg +11 -0
- package/dist/assets/images/tool-bidirectional.svg +21 -0
- package/dist/assets/images/tool-calibrate.svg +19 -0
- package/dist/assets/images/tool-capture.svg +10 -0
- package/dist/assets/images/tool-cine.svg +9 -0
- package/dist/assets/images/tool-circle.svg +8 -0
- package/dist/assets/images/tool-cobb-angle.svg +14 -0
- package/dist/assets/images/tool-create-threshold.svg +9 -0
- package/dist/assets/images/tool-crosshair.svg +14 -0
- package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
- package/dist/assets/images/tool-flip-horizontal.svg +10 -0
- package/dist/assets/images/tool-freehand-polygon.svg +37 -0
- package/dist/assets/images/tool-freehand-roi.svg +12 -0
- package/dist/assets/images/tool-freehand.svg +34 -0
- package/dist/assets/images/tool-fusion-color.svg +13 -0
- package/dist/assets/images/tool-invert.svg +10 -0
- package/dist/assets/images/tool-layout-default.svg +22 -0
- package/dist/assets/images/tool-length.svg +16 -0
- package/dist/assets/images/tool-magnetic-roi.svg +17 -0
- package/dist/assets/images/tool-magnify.svg +7 -0
- package/dist/assets/images/tool-measure-elipse.svg +12 -0
- package/dist/assets/images/tool-more-menu.svg +6 -0
- package/dist/assets/images/tool-move.svg +13 -0
- package/dist/assets/images/tool-polygon.svg +3 -0
- package/dist/assets/images/tool-quick-magnify.svg +11 -0
- package/dist/assets/images/tool-rectangle.svg +12 -0
- package/dist/assets/images/tool-reference-lines.svg +13 -0
- package/dist/assets/images/tool-reset.svg +9 -0
- package/dist/assets/images/tool-rotate-right.svg +12 -0
- package/dist/assets/images/tool-seg-brush.svg +9 -0
- package/dist/assets/images/tool-seg-eraser.svg +10 -0
- package/dist/assets/images/tool-seg-shape.svg +9 -0
- package/dist/assets/images/tool-seg-threshold.svg +17 -0
- package/dist/assets/images/tool-spline-roi.svg +14 -0
- package/dist/assets/images/tool-stack-image-sync.svg +10 -0
- package/dist/assets/images/tool-stack-scroll.svg +10 -0
- package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
- package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
- package/dist/assets/images/tool-window-level.svg +9 -0
- package/dist/assets/images/tool-window-region.svg +12 -0
- package/dist/assets/images/tool-zoom.svg +9 -0
- package/dist/assets/images/tracked.svg +6 -0
- package/dist/assets/images/ui-arrow-down.svg +3 -0
- package/dist/assets/images/ui-arrow-left.svg +3 -0
- package/dist/assets/images/ui-arrow-right.svg +3 -0
- package/dist/assets/images/ui-arrow-up.svg +3 -0
- package/dist/assets/images/unlink.svg +9 -0
- package/dist/assets/images/viewport-status-tracked.svg +13 -0
- package/dist/assets/images/viewport-window-level.svg +17 -0
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/google.js +1 -0
- package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.df492df5042827938ba4.js} +3 -3
- package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.8f4b505fad3d371489fe.js} +4 -4
- package/dist/sw.js +1 -1
- package/package.json +26 -23
- /package/dist/{998.css → 129.css} +0 -0
- /package/dist/{574.css → 139.css} +0 -0
- /package/dist/{544.css → 172.css} +0 -0
- /package/dist/{550.css → 363.css} +0 -0
- /package/dist/{325.css → 404.css} +0 -0
- /package/dist/{481.css → 717.css} +0 -0
- /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
- /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
- /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[944],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 16944:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -33,9 +33,9 @@ __webpack_require__.d(utils_namespaceObject, {
|
|
|
33
33
|
// EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
|
|
34
34
|
var dicomweb_client_es = __webpack_require__(36922);
|
|
35
35
|
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
36
|
-
var src = __webpack_require__(
|
|
36
|
+
var src = __webpack_require__(75186);
|
|
37
37
|
// EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
|
|
38
|
-
var sortStudy = __webpack_require__(
|
|
38
|
+
var sortStudy = __webpack_require__(75773);
|
|
39
39
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
|
|
40
40
|
/**
|
|
41
41
|
* QIDO - Query based on ID for DICOM Objects
|
|
@@ -1135,9 +1135,82 @@ StaticWadoClient.seriesFilterKeys = {
|
|
|
1135
1135
|
seriesnumber: '00200011',
|
|
1136
1136
|
modality: '00080060'
|
|
1137
1137
|
};
|
|
1138
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/getBulkdataValue.js
|
|
1139
|
+
/**
|
|
1140
|
+
* Generates a URL that can be used for direct retrieve of the bulkdata.
|
|
1141
|
+
*
|
|
1142
|
+
* @param {object} config - The configuration object.
|
|
1143
|
+
* @param {object} params - The parameters object.
|
|
1144
|
+
* @param {string} params.tag - The tag name of the URL to retrieve.
|
|
1145
|
+
* @param {string} params.defaultPath - The path for the pixel data URL.
|
|
1146
|
+
* @param {object} params.instance - The instance object that the tag is in.
|
|
1147
|
+
* @param {string} params.defaultType - The mime type of the response.
|
|
1148
|
+
* @param {string} params.singlepart - The type of the part to retrieve.
|
|
1149
|
+
* @param {string} params.fetchPart - Unknown.
|
|
1150
|
+
* @returns {string|Promise<string>} - An absolute URL to the resource, if the absolute URL can be retrieved as singlepart,
|
|
1151
|
+
* or is already retrieved, or a promise to a URL for such use if a BulkDataURI.
|
|
1152
|
+
*/
|
|
1153
|
+
const getBulkdataValue = (config, params) => {
|
|
1154
|
+
const {
|
|
1155
|
+
instance,
|
|
1156
|
+
tag = 'PixelData',
|
|
1157
|
+
defaultPath = '/pixeldata',
|
|
1158
|
+
defaultType = 'video/mp4'
|
|
1159
|
+
} = params;
|
|
1160
|
+
const value = instance[tag];
|
|
1161
|
+
const {
|
|
1162
|
+
SeriesInstanceUID,
|
|
1163
|
+
SOPInstanceUID
|
|
1164
|
+
} = instance;
|
|
1165
|
+
const BulkDataURI = value && value.BulkDataURI || `series/${SeriesInstanceUID}/instances/${SOPInstanceUID}${defaultPath}`;
|
|
1166
|
+
const hasQuery = BulkDataURI.indexOf('?') !== -1;
|
|
1167
|
+
const hasAccept = BulkDataURI.indexOf('accept=') !== -1;
|
|
1168
|
+
const acceptUri = BulkDataURI + (hasAccept ? '' : (hasQuery ? '&' : '?') + `accept=${defaultType}`);
|
|
1169
|
+
|
|
1170
|
+
// The DICOMweb standard states that the default is multipart related, and then
|
|
1171
|
+
// separately states that the accept parameter is the URL parameter equivalent of the accept header.
|
|
1172
|
+
return acceptUri;
|
|
1173
|
+
};
|
|
1174
|
+
/* harmony default export */ const utils_getBulkdataValue = (getBulkdataValue);
|
|
1175
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/createRenderedRetrieve.js
|
|
1176
|
+
/**
|
|
1177
|
+
* Generates the rendered URL that can be used for direct retrieve of the pixel data binary stream.
|
|
1178
|
+
*
|
|
1179
|
+
* @param {object} config - The configuration object.
|
|
1180
|
+
* @param {string} config.wadoRoot - The root URL for the WADO service.
|
|
1181
|
+
* @param {object} params - The parameters object.
|
|
1182
|
+
* @param {string} params.tag - The tag name of the URL to retrieve.
|
|
1183
|
+
* @param {string} params.defaultPath - The path for the pixel data URL.
|
|
1184
|
+
* @param {object} params.instance - The instance object that the tag is in.
|
|
1185
|
+
* @param {string} params.defaultType - The mime type of the response.
|
|
1186
|
+
* @param {string} params.singlepart - The type of the part to retrieve.
|
|
1187
|
+
* @param {string} params.fetchPart - Unknown parameter.
|
|
1188
|
+
* @param {string} params.url - Unknown parameter.
|
|
1189
|
+
* @returns {string|Promise<string>} - An absolute URL to the binary stream.
|
|
1190
|
+
*/
|
|
1191
|
+
const createRenderedRetrieve = (config, params) => {
|
|
1192
|
+
const {
|
|
1193
|
+
wadoRoot
|
|
1194
|
+
} = config;
|
|
1195
|
+
const {
|
|
1196
|
+
instance,
|
|
1197
|
+
tag = 'PixelData'
|
|
1198
|
+
} = params;
|
|
1199
|
+
const {
|
|
1200
|
+
StudyInstanceUID,
|
|
1201
|
+
SeriesInstanceUID,
|
|
1202
|
+
SOPInstanceUID
|
|
1203
|
+
} = instance;
|
|
1204
|
+
if (tag === 'PixelData' || tag === 'EncapsulatedDocument') {
|
|
1205
|
+
return `${wadoRoot}/studies/${StudyInstanceUID}/series/${SeriesInstanceUID}/instances/${SOPInstanceUID}/rendered`;
|
|
1206
|
+
}
|
|
1207
|
+
};
|
|
1208
|
+
/* harmony default export */ const utils_createRenderedRetrieve = (createRenderedRetrieve);
|
|
1138
1209
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/getDirectURL.js
|
|
1139
1210
|
|
|
1140
1211
|
|
|
1212
|
+
|
|
1213
|
+
|
|
1141
1214
|
/**
|
|
1142
1215
|
* Generates a URL that can be used for direct retrieve of the bulkdata
|
|
1143
1216
|
*
|
|
@@ -1154,13 +1227,11 @@ StaticWadoClient.seriesFilterKeys = {
|
|
|
1154
1227
|
*/
|
|
1155
1228
|
const getDirectURL = (config, params) => {
|
|
1156
1229
|
const {
|
|
1157
|
-
wadoRoot,
|
|
1158
1230
|
singlepart
|
|
1159
1231
|
} = config;
|
|
1160
1232
|
const {
|
|
1161
1233
|
instance,
|
|
1162
1234
|
tag = 'PixelData',
|
|
1163
|
-
defaultPath = '/pixeldata',
|
|
1164
1235
|
defaultType = 'video/mp4',
|
|
1165
1236
|
singlepart: fetchPart = 'video',
|
|
1166
1237
|
url = null
|
|
@@ -1169,49 +1240,33 @@ const getDirectURL = (config, params) => {
|
|
|
1169
1240
|
return url;
|
|
1170
1241
|
}
|
|
1171
1242
|
const value = instance[tag];
|
|
1172
|
-
if (
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
})
|
|
1193
|
-
|
|
1194
|
-
|
|
1243
|
+
if (value) {
|
|
1244
|
+
if (value.DirectRetrieveURL) {
|
|
1245
|
+
return value.DirectRetrieveURL;
|
|
1246
|
+
}
|
|
1247
|
+
if (value.InlineBinary) {
|
|
1248
|
+
const blob = src.utils.b64toBlob(value.InlineBinary, defaultType);
|
|
1249
|
+
value.DirectRetrieveURL = URL.createObjectURL(blob);
|
|
1250
|
+
return value.DirectRetrieveURL;
|
|
1251
|
+
}
|
|
1252
|
+
if (!singlepart || singlepart !== true && singlepart.indexOf(fetchPart) === -1) {
|
|
1253
|
+
if (value.retrieveBulkData) {
|
|
1254
|
+
// Try the specified retrieve type.
|
|
1255
|
+
const options = {
|
|
1256
|
+
mediaType: defaultType
|
|
1257
|
+
};
|
|
1258
|
+
return value.retrieveBulkData(options).then(arr => {
|
|
1259
|
+
value.DirectRetrieveURL = URL.createObjectURL(new Blob([arr], {
|
|
1260
|
+
type: defaultType
|
|
1261
|
+
}));
|
|
1262
|
+
return value.DirectRetrieveURL;
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1265
|
+
console.warn('Unable to retrieve', tag, 'from', instance);
|
|
1266
|
+
return undefined;
|
|
1195
1267
|
}
|
|
1196
|
-
console.warn('Unable to retrieve', tag, 'from', instance);
|
|
1197
|
-
return undefined;
|
|
1198
|
-
}
|
|
1199
|
-
const {
|
|
1200
|
-
StudyInstanceUID,
|
|
1201
|
-
SeriesInstanceUID,
|
|
1202
|
-
SOPInstanceUID
|
|
1203
|
-
} = instance;
|
|
1204
|
-
const BulkDataURI = value && value.BulkDataURI || `series/${SeriesInstanceUID}/instances/${SOPInstanceUID}${defaultPath}`;
|
|
1205
|
-
const hasQuery = BulkDataURI.indexOf('?') !== -1;
|
|
1206
|
-
const hasAccept = BulkDataURI.indexOf('accept=') !== -1;
|
|
1207
|
-
const acceptUri = BulkDataURI + (hasAccept ? '' : (hasQuery ? '&' : '?') + `accept=${defaultType}`);
|
|
1208
|
-
if (tag === 'PixelData' || tag === 'EncapsulatedDocument') {
|
|
1209
|
-
return `${wadoRoot}/studies/${StudyInstanceUID}/series/${SeriesInstanceUID}/instances/${SOPInstanceUID}/rendered`;
|
|
1210
1268
|
}
|
|
1211
|
-
|
|
1212
|
-
// The DICOMweb standard states that the default is multipart related, and then
|
|
1213
|
-
// separately states that the accept parameter is the URL parameter equivalent of the accept header.
|
|
1214
|
-
return acceptUri;
|
|
1269
|
+
return utils_createRenderedRetrieve(config, params) || utils_getBulkdataValue(config, params);
|
|
1215
1270
|
};
|
|
1216
1271
|
/* harmony default export */ const utils_getDirectURL = (getDirectURL);
|
|
1217
1272
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/utils/fixBulkDataURI.ts
|
|
@@ -2653,10 +2708,10 @@ var react = __webpack_require__(41766);
|
|
|
2653
2708
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
2654
2709
|
var prop_types = __webpack_require__(11374);
|
|
2655
2710
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
2656
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
2657
|
-
var ui_src = __webpack_require__(
|
|
2711
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 782 modules
|
|
2712
|
+
var ui_src = __webpack_require__(79047);
|
|
2658
2713
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
2659
|
-
var state = __webpack_require__(
|
|
2714
|
+
var state = __webpack_require__(81883);
|
|
2660
2715
|
// EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
|
|
2661
2716
|
var dist = __webpack_require__(37396);
|
|
2662
2717
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
@@ -2664,7 +2719,7 @@ var es = __webpack_require__(80619);
|
|
|
2664
2719
|
// EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
|
|
2665
2720
|
var react_router_dist = __webpack_require__(10971);
|
|
2666
2721
|
// EXTERNAL MODULE: ../../i18n/src/index.js + 150 modules
|
|
2667
|
-
var i18n_src = __webpack_require__(
|
|
2722
|
+
var i18n_src = __webpack_require__(43608);
|
|
2668
2723
|
;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/Toolbar.tsx
|
|
2669
2724
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2670
2725
|
|
|
@@ -2757,8 +2812,8 @@ function ViewerHeader({
|
|
|
2757
2812
|
hotkeyDefinitions,
|
|
2758
2813
|
hotkeyDefaults
|
|
2759
2814
|
} = hotkeysManager;
|
|
2760
|
-
const versionNumber = "3.9.0-beta.
|
|
2761
|
-
const commitHash = "
|
|
2815
|
+
const versionNumber = "3.9.0-beta.41";
|
|
2816
|
+
const commitHash = "55dcfa1f6994a7036e7e594efb23673382a41915";
|
|
2762
2817
|
const menuOptions = [{
|
|
2763
2818
|
title: t('Header:About'),
|
|
2764
2819
|
icon: 'info',
|
|
@@ -4122,13 +4177,13 @@ function getPanelModule({
|
|
|
4122
4177
|
}
|
|
4123
4178
|
/* harmony default export */ const src_getPanelModule = (getPanelModule);
|
|
4124
4179
|
// EXTERNAL MODULE: ../../core/src/utils/isImage.js
|
|
4125
|
-
var isImage = __webpack_require__(
|
|
4180
|
+
var isImage = __webpack_require__(92087);
|
|
4126
4181
|
// EXTERNAL MODULE: ../../core/src/utils/sopClassDictionary.js
|
|
4127
|
-
var sopClassDictionary = __webpack_require__(
|
|
4182
|
+
var sopClassDictionary = __webpack_require__(6342);
|
|
4128
4183
|
// EXTERNAL MODULE: ../../core/src/classes/ImageSet.ts
|
|
4129
|
-
var ImageSet = __webpack_require__(
|
|
4184
|
+
var ImageSet = __webpack_require__(61378);
|
|
4130
4185
|
// EXTERNAL MODULE: ../../core/src/utils/isDisplaySetReconstructable.js
|
|
4131
|
-
var isDisplaySetReconstructable = __webpack_require__(
|
|
4186
|
+
var isDisplaySetReconstructable = __webpack_require__(52378);
|
|
4132
4187
|
;// CONCATENATED MODULE: ../../../extensions/default/package.json
|
|
4133
4188
|
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-default"}');
|
|
4134
4189
|
;// CONCATENATED MODULE: ../../../extensions/default/src/id.js
|
|
@@ -4136,7 +4191,7 @@ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-
|
|
|
4136
4191
|
const id = package_namespaceObject.UU;
|
|
4137
4192
|
|
|
4138
4193
|
// EXTERNAL MODULE: ../../core/src/utils/sortInstancesByPosition.ts
|
|
4139
|
-
var sortInstancesByPosition = __webpack_require__(
|
|
4194
|
+
var sortInstancesByPosition = __webpack_require__(7986);
|
|
4140
4195
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/checkMultiframe.ts
|
|
4141
4196
|
|
|
4142
4197
|
|
|
@@ -4158,7 +4213,7 @@ function checkMultiFrame(multiFrameInstance, messages) {
|
|
|
4158
4213
|
}
|
|
4159
4214
|
}
|
|
4160
4215
|
// EXTERNAL MODULE: ../../core/src/utils/toNumber.js
|
|
4161
|
-
var toNumber = __webpack_require__(
|
|
4216
|
+
var toNumber = __webpack_require__(69508);
|
|
4162
4217
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/areAllImageDimensionsEqual.ts
|
|
4163
4218
|
|
|
4164
4219
|
|
|
@@ -4853,8 +4908,9 @@ function ToolbarLayoutSelectorWithServices({
|
|
|
4853
4908
|
})));
|
|
4854
4909
|
}
|
|
4855
4910
|
function LayoutSelector({
|
|
4856
|
-
rows,
|
|
4857
|
-
columns,
|
|
4911
|
+
rows = 3,
|
|
4912
|
+
columns = 4,
|
|
4913
|
+
onLayoutChange = () => {},
|
|
4858
4914
|
className,
|
|
4859
4915
|
onSelection,
|
|
4860
4916
|
onSelectionPreset,
|
|
@@ -4863,6 +4919,7 @@ function LayoutSelector({
|
|
|
4863
4919
|
...rest
|
|
4864
4920
|
}) {
|
|
4865
4921
|
const [isOpen, setIsOpen] = (0,react.useState)(false);
|
|
4922
|
+
const dropdownRef = (0,react.useRef)(null);
|
|
4866
4923
|
const {
|
|
4867
4924
|
customizationService
|
|
4868
4925
|
} = servicesManager.services;
|
|
@@ -4870,15 +4927,21 @@ function LayoutSelector({
|
|
|
4870
4927
|
const advancedPresets = customizationService.get('advancedPresets') || generateAdvancedPresets({
|
|
4871
4928
|
servicesManager
|
|
4872
4929
|
});
|
|
4873
|
-
const closeOnOutsideClick =
|
|
4874
|
-
if (isOpen) {
|
|
4930
|
+
const closeOnOutsideClick = event => {
|
|
4931
|
+
if (isOpen && dropdownRef.current) {
|
|
4875
4932
|
setIsOpen(false);
|
|
4876
4933
|
}
|
|
4877
4934
|
};
|
|
4878
4935
|
(0,react.useEffect)(() => {
|
|
4879
|
-
|
|
4936
|
+
if (!isOpen) {
|
|
4937
|
+
return;
|
|
4938
|
+
}
|
|
4939
|
+
setTimeout(() => {
|
|
4940
|
+
window.addEventListener('click', closeOnOutsideClick);
|
|
4941
|
+
}, 0);
|
|
4880
4942
|
return () => {
|
|
4881
4943
|
window.removeEventListener('click', closeOnOutsideClick);
|
|
4944
|
+
dropdownRef.current = null;
|
|
4882
4945
|
};
|
|
4883
4946
|
}, [isOpen]);
|
|
4884
4947
|
const onInteractionHandler = () => {
|
|
@@ -4894,7 +4957,8 @@ function LayoutSelector({
|
|
|
4894
4957
|
rounded: rest.rounded,
|
|
4895
4958
|
disableToolTip: tooltipDisabled,
|
|
4896
4959
|
dropdownContent: DropdownContent !== null && /*#__PURE__*/react.createElement("div", {
|
|
4897
|
-
className: "flex
|
|
4960
|
+
className: "flex",
|
|
4961
|
+
ref: dropdownRef
|
|
4898
4962
|
}, /*#__PURE__*/react.createElement("div", {
|
|
4899
4963
|
className: "bg-secondary-dark flex flex-col gap-2.5 p-2"
|
|
4900
4964
|
}, /*#__PURE__*/react.createElement("div", {
|
|
@@ -4942,11 +5006,6 @@ LayoutSelector.propTypes = {
|
|
|
4942
5006
|
onLayoutChange: (prop_types_default()).func,
|
|
4943
5007
|
servicesManager: (prop_types_default()).object.isRequired
|
|
4944
5008
|
};
|
|
4945
|
-
LayoutSelector.defaultProps = {
|
|
4946
|
-
columns: 4,
|
|
4947
|
-
rows: 3,
|
|
4948
|
-
onLayoutChange: () => {}
|
|
4949
|
-
};
|
|
4950
5009
|
/* harmony default export */ const ToolbarLayoutSelector = (ToolbarLayoutSelectorWithServices);
|
|
4951
5010
|
;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx
|
|
4952
5011
|
function ToolbarSplitButtonWithServices_extends() { ToolbarSplitButtonWithServices_extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ToolbarSplitButtonWithServices_extends.apply(this, arguments); }
|
|
@@ -4993,7 +5052,6 @@ function ToolbarSplitButtonWithServices({
|
|
|
4993
5052
|
});
|
|
4994
5053
|
}
|
|
4995
5054
|
ToolbarSplitButtonWithServices.propTypes = {
|
|
4996
|
-
isRadio: (prop_types_default()).bool,
|
|
4997
5055
|
groupId: (prop_types_default()).string,
|
|
4998
5056
|
primary: prop_types_default().shape({
|
|
4999
5057
|
id: (prop_types_default()).string.isRequired,
|
|
@@ -5023,10 +5081,6 @@ ToolbarSplitButtonWithServices.propTypes = {
|
|
|
5023
5081
|
})
|
|
5024
5082
|
})
|
|
5025
5083
|
};
|
|
5026
|
-
ToolbarSplitButtonWithServices.defaultProps = {
|
|
5027
|
-
isRadio: false,
|
|
5028
|
-
isAction: false
|
|
5029
|
-
};
|
|
5030
5084
|
/* harmony default export */ const Toolbar_ToolbarSplitButtonWithServices = (ToolbarSplitButtonWithServices);
|
|
5031
5085
|
;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx
|
|
5032
5086
|
|
|
@@ -5062,7 +5116,7 @@ function ToolbarButtonGroupWithServices({
|
|
|
5062
5116
|
return /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.e2, null, getSplitButtonItems(items));
|
|
5063
5117
|
}
|
|
5064
5118
|
/* harmony default export */ const Toolbar_ToolbarButtonGroupWithServices = (ToolbarButtonGroupWithServices);
|
|
5065
|
-
;// CONCATENATED MODULE: ../../../extensions/default/src/
|
|
5119
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/Components/ProgressDropdownWithService.tsx
|
|
5066
5120
|
|
|
5067
5121
|
|
|
5068
5122
|
const workflowStepsToDropdownOptions = (steps = []) => steps.map(step => ({
|
|
@@ -5143,9 +5197,6 @@ function ProgressDropdownWithService({
|
|
|
5143
5197
|
onChange: handleDropdownChange
|
|
5144
5198
|
});
|
|
5145
5199
|
}
|
|
5146
|
-
/* harmony default export */ const ProgressDropdownWithService_ProgressDropdownWithService = (ProgressDropdownWithService);
|
|
5147
|
-
;// CONCATENATED MODULE: ../../../extensions/default/src/components/ProgressDropdownWithService/index.js
|
|
5148
|
-
|
|
5149
5200
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getToolbarModule.tsx
|
|
5150
5201
|
|
|
5151
5202
|
|
|
@@ -5186,7 +5237,7 @@ function getToolbarModule({
|
|
|
5186
5237
|
defaultComponent: Toolbar_ToolbarButtonGroupWithServices
|
|
5187
5238
|
}, {
|
|
5188
5239
|
name: 'ohif.progressDropdown',
|
|
5189
|
-
defaultComponent:
|
|
5240
|
+
defaultComponent: ProgressDropdownWithService
|
|
5190
5241
|
}, {
|
|
5191
5242
|
name: 'evaluate.group.promoteToPrimary',
|
|
5192
5243
|
evaluate: ({
|
|
@@ -5384,7 +5435,7 @@ function adaptItem(item, subProps) {
|
|
|
5384
5435
|
return newItem;
|
|
5385
5436
|
}
|
|
5386
5437
|
// EXTERNAL MODULE: ../../ui/src/components/ContextMenu/ContextMenu.tsx
|
|
5387
|
-
var ContextMenu = __webpack_require__(
|
|
5438
|
+
var ContextMenu = __webpack_require__(117);
|
|
5388
5439
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
5389
5440
|
var dist_esm = __webpack_require__(39371);
|
|
5390
5441
|
;// CONCATENATED MODULE: ../../../extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx
|
|
@@ -6282,7 +6333,7 @@ const findViewportsByPosition = (state, {
|
|
|
6282
6333
|
};
|
|
6283
6334
|
/* harmony default export */ const src_findViewportsByPosition = (findViewportsByPosition);
|
|
6284
6335
|
// EXTERNAL MODULE: ./index.js + 35 modules
|
|
6285
|
-
var index = __webpack_require__(
|
|
6336
|
+
var index = __webpack_require__(40335);
|
|
6286
6337
|
;// CONCATENATED MODULE: ../../../extensions/default/src/commandsModule.ts
|
|
6287
6338
|
|
|
6288
6339
|
|
|
@@ -6847,7 +6898,7 @@ const commandsModule = ({
|
|
|
6847
6898
|
};
|
|
6848
6899
|
};
|
|
6849
6900
|
/* harmony default export */ const src_commandsModule = (commandsModule);
|
|
6850
|
-
;// CONCATENATED MODULE: ../../../extensions/default/src/hpMNGrid.ts
|
|
6901
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpMNGrid.ts
|
|
6851
6902
|
/**
|
|
6852
6903
|
* This hanging protocol can be activated on the primary mode by directly
|
|
6853
6904
|
* referencing it in a URL or by directly including it within a mode, e.g.:
|
|
@@ -7064,7 +7115,7 @@ const hpMN = {
|
|
|
7064
7115
|
numberOfPriorsReferenced: -1
|
|
7065
7116
|
};
|
|
7066
7117
|
/* harmony default export */ const hpMNGrid = (hpMN);
|
|
7067
|
-
;// CONCATENATED MODULE: ../../../extensions/default/src/hpCompare.ts
|
|
7118
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpCompare.ts
|
|
7068
7119
|
const defaultDisplaySetSelector = {
|
|
7069
7120
|
studyMatchingRules: [{
|
|
7070
7121
|
// The priorInstance is a study counter that indicates what position this study is in
|
|
@@ -7173,9 +7224,9 @@ const hpMNCompare = {
|
|
|
7173
7224
|
protocolMatchingRules: [{
|
|
7174
7225
|
id: 'Two Studies',
|
|
7175
7226
|
weight: 1000,
|
|
7227
|
+
// is there a second study or in another work the attribute
|
|
7228
|
+
// studyInstanceUIDsIndex that we get from prior should not be null
|
|
7176
7229
|
attribute: 'StudyInstanceUID',
|
|
7177
|
-
// The 'from' attribute says where to get the 'attribute' value from. In this case
|
|
7178
|
-
// prior means the second study in the study list.
|
|
7179
7230
|
from: 'prior',
|
|
7180
7231
|
required: true,
|
|
7181
7232
|
constraint: {
|
|
@@ -7231,9 +7282,463 @@ const hpMNCompare = {
|
|
|
7231
7282
|
}]
|
|
7232
7283
|
};
|
|
7233
7284
|
/* harmony default export */ const hpCompare = (hpMNCompare);
|
|
7285
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/mammoDisplaySetSelector.ts
|
|
7286
|
+
const priorStudyMatchingRules = [{
|
|
7287
|
+
// The priorInstance is a study counter that indicates what position this study is in
|
|
7288
|
+
// and the value comes from the options parameter.
|
|
7289
|
+
attribute: 'studyInstanceUIDsIndex',
|
|
7290
|
+
from: 'options',
|
|
7291
|
+
required: true,
|
|
7292
|
+
constraint: {
|
|
7293
|
+
equals: {
|
|
7294
|
+
value: 1
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7297
|
+
}];
|
|
7298
|
+
const currentStudyMatchingRules = [{
|
|
7299
|
+
// The priorInstance is a study counter that indicates what position this study is in
|
|
7300
|
+
// and the value comes from the options parameter.
|
|
7301
|
+
attribute: 'studyInstanceUIDsIndex',
|
|
7302
|
+
from: 'options',
|
|
7303
|
+
required: true,
|
|
7304
|
+
constraint: {
|
|
7305
|
+
equals: {
|
|
7306
|
+
value: 0
|
|
7307
|
+
}
|
|
7308
|
+
}
|
|
7309
|
+
}];
|
|
7310
|
+
const LCCSeriesMatchingRules = [{
|
|
7311
|
+
weight: 10,
|
|
7312
|
+
attribute: 'ViewCode',
|
|
7313
|
+
constraint: {
|
|
7314
|
+
contains: 'SCT:399162004'
|
|
7315
|
+
}
|
|
7316
|
+
}, {
|
|
7317
|
+
weight: 5,
|
|
7318
|
+
attribute: 'PatientOrientation',
|
|
7319
|
+
constraint: {
|
|
7320
|
+
contains: 'L'
|
|
7321
|
+
}
|
|
7322
|
+
}, {
|
|
7323
|
+
weight: 20,
|
|
7324
|
+
attribute: 'SeriesDescription',
|
|
7325
|
+
constraint: {
|
|
7326
|
+
contains: 'L CC'
|
|
7327
|
+
}
|
|
7328
|
+
}];
|
|
7329
|
+
const RCCSeriesMatchingRules = [{
|
|
7330
|
+
weight: 10,
|
|
7331
|
+
attribute: 'ViewCode',
|
|
7332
|
+
constraint: {
|
|
7333
|
+
contains: 'SCT:399162004'
|
|
7334
|
+
}
|
|
7335
|
+
}, {
|
|
7336
|
+
weight: 5,
|
|
7337
|
+
attribute: 'PatientOrientation',
|
|
7338
|
+
constraint: {
|
|
7339
|
+
equals: ['P', 'L']
|
|
7340
|
+
}
|
|
7341
|
+
}, {
|
|
7342
|
+
attribute: 'PatientOrientation',
|
|
7343
|
+
constraint: {
|
|
7344
|
+
doesNotEqual: ['A', 'R']
|
|
7345
|
+
},
|
|
7346
|
+
required: true
|
|
7347
|
+
}, {
|
|
7348
|
+
weight: 20,
|
|
7349
|
+
attribute: 'SeriesDescription',
|
|
7350
|
+
constraint: {
|
|
7351
|
+
contains: 'CC'
|
|
7352
|
+
}
|
|
7353
|
+
}];
|
|
7354
|
+
const LMLOSeriesMatchingRules = [{
|
|
7355
|
+
weight: 10,
|
|
7356
|
+
attribute: 'ViewCode',
|
|
7357
|
+
constraint: {
|
|
7358
|
+
contains: 'SCT:399368009'
|
|
7359
|
+
}
|
|
7360
|
+
}, {
|
|
7361
|
+
weight: 0,
|
|
7362
|
+
attribute: 'ViewCode',
|
|
7363
|
+
constraint: {
|
|
7364
|
+
doesNotEqual: 'SCT:399162004'
|
|
7365
|
+
},
|
|
7366
|
+
required: true
|
|
7367
|
+
}, {
|
|
7368
|
+
weight: 5,
|
|
7369
|
+
attribute: 'PatientOrientation',
|
|
7370
|
+
constraint: {
|
|
7371
|
+
equals: ['A', 'R']
|
|
7372
|
+
}
|
|
7373
|
+
}, {
|
|
7374
|
+
weight: 20,
|
|
7375
|
+
attribute: 'SeriesDescription',
|
|
7376
|
+
constraint: {
|
|
7377
|
+
contains: 'L MLO'
|
|
7378
|
+
}
|
|
7379
|
+
}];
|
|
7380
|
+
const RMLOSeriesMatchingRules = [{
|
|
7381
|
+
weight: 10,
|
|
7382
|
+
attribute: 'ViewCode',
|
|
7383
|
+
constraint: {
|
|
7384
|
+
contains: 'SCT:399368009'
|
|
7385
|
+
}
|
|
7386
|
+
}, {
|
|
7387
|
+
attribute: 'ViewCode',
|
|
7388
|
+
constraint: {
|
|
7389
|
+
doesNotEqual: 'SCT:399162004'
|
|
7390
|
+
},
|
|
7391
|
+
required: true
|
|
7392
|
+
}, {
|
|
7393
|
+
attribute: 'PatientOrientation',
|
|
7394
|
+
constraint: {
|
|
7395
|
+
doesNotContain: ['P', 'FL']
|
|
7396
|
+
},
|
|
7397
|
+
required: true
|
|
7398
|
+
}, {
|
|
7399
|
+
weight: 5,
|
|
7400
|
+
attribute: 'PatientOrientation',
|
|
7401
|
+
constraint: {
|
|
7402
|
+
equals: ['P', 'L']
|
|
7403
|
+
}
|
|
7404
|
+
}, {
|
|
7405
|
+
weight: 5,
|
|
7406
|
+
attribute: 'PatientOrientation',
|
|
7407
|
+
constraint: {
|
|
7408
|
+
equals: ['A', 'FR']
|
|
7409
|
+
}
|
|
7410
|
+
}, {
|
|
7411
|
+
weight: 20,
|
|
7412
|
+
attribute: 'SeriesDescription',
|
|
7413
|
+
constraint: {
|
|
7414
|
+
contains: 'R MLO'
|
|
7415
|
+
}
|
|
7416
|
+
}, {
|
|
7417
|
+
attribute: 'SeriesDescription',
|
|
7418
|
+
required: true,
|
|
7419
|
+
constraint: {
|
|
7420
|
+
doesNotContain: 'CC'
|
|
7421
|
+
}
|
|
7422
|
+
}, {
|
|
7423
|
+
attribute: 'SeriesDescription',
|
|
7424
|
+
required: true,
|
|
7425
|
+
constraint: {
|
|
7426
|
+
doesNotEqual: 'L MLO'
|
|
7427
|
+
},
|
|
7428
|
+
required: true
|
|
7429
|
+
}];
|
|
7430
|
+
const RCC = {
|
|
7431
|
+
seriesMatchingRules: RCCSeriesMatchingRules,
|
|
7432
|
+
studyMatchingRules: currentStudyMatchingRules
|
|
7433
|
+
};
|
|
7434
|
+
const RCCPrior = {
|
|
7435
|
+
seriesMatchingRules: RCCSeriesMatchingRules,
|
|
7436
|
+
studyMatchingRules: priorStudyMatchingRules
|
|
7437
|
+
};
|
|
7438
|
+
const LCC = {
|
|
7439
|
+
seriesMatchingRules: LCCSeriesMatchingRules,
|
|
7440
|
+
studyMatchingRules: currentStudyMatchingRules
|
|
7441
|
+
};
|
|
7442
|
+
const LCCPrior = {
|
|
7443
|
+
seriesMatchingRules: LCCSeriesMatchingRules,
|
|
7444
|
+
studyMatchingRules: priorStudyMatchingRules
|
|
7445
|
+
};
|
|
7446
|
+
const RMLO = {
|
|
7447
|
+
seriesMatchingRules: RMLOSeriesMatchingRules,
|
|
7448
|
+
studyMatchingRules: currentStudyMatchingRules
|
|
7449
|
+
};
|
|
7450
|
+
const RMLOPrior = {
|
|
7451
|
+
seriesMatchingRules: RMLOSeriesMatchingRules,
|
|
7452
|
+
studyMatchingRules: priorStudyMatchingRules
|
|
7453
|
+
};
|
|
7454
|
+
const LMLO = {
|
|
7455
|
+
seriesMatchingRules: LMLOSeriesMatchingRules,
|
|
7456
|
+
studyMatchingRules: currentStudyMatchingRules
|
|
7457
|
+
};
|
|
7458
|
+
const LMLOPrior = {
|
|
7459
|
+
seriesMatchingRules: LMLOSeriesMatchingRules,
|
|
7460
|
+
studyMatchingRules: priorStudyMatchingRules
|
|
7461
|
+
};
|
|
7462
|
+
|
|
7463
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpMammo.ts
|
|
7464
|
+
|
|
7465
|
+
const rightDisplayArea = {
|
|
7466
|
+
storeAsInitialCamera: true,
|
|
7467
|
+
imageArea: [0.8, 0.8],
|
|
7468
|
+
imageCanvasPoint: {
|
|
7469
|
+
imagePoint: [0, 0.5],
|
|
7470
|
+
canvasPoint: [0, 0.5]
|
|
7471
|
+
}
|
|
7472
|
+
};
|
|
7473
|
+
const leftDisplayArea = {
|
|
7474
|
+
storeAsInitialCamera: true,
|
|
7475
|
+
imageArea: [0.8, 0.8],
|
|
7476
|
+
imageCanvasPoint: {
|
|
7477
|
+
imagePoint: [1, 0.5],
|
|
7478
|
+
canvasPoint: [1, 0.5]
|
|
7479
|
+
}
|
|
7480
|
+
};
|
|
7481
|
+
const hpMammography = {
|
|
7482
|
+
id: '@ohif/hpMammo',
|
|
7483
|
+
hasUpdatedPriorsInformation: false,
|
|
7484
|
+
name: 'Mammography Breast Screening',
|
|
7485
|
+
protocolMatchingRules: [{
|
|
7486
|
+
id: 'Mammography',
|
|
7487
|
+
weight: 150,
|
|
7488
|
+
attribute: 'ModalitiesInStudy',
|
|
7489
|
+
constraint: {
|
|
7490
|
+
contains: 'MG'
|
|
7491
|
+
},
|
|
7492
|
+
required: true
|
|
7493
|
+
}, {
|
|
7494
|
+
id: 'numberOfImages',
|
|
7495
|
+
attribute: 'numberOfDisplaySetsWithImages',
|
|
7496
|
+
constraint: {
|
|
7497
|
+
greaterThan: 2
|
|
7498
|
+
},
|
|
7499
|
+
required: true
|
|
7500
|
+
}],
|
|
7501
|
+
toolGroupIds: ['default'],
|
|
7502
|
+
displaySetSelectors: {
|
|
7503
|
+
RCC: RCC,
|
|
7504
|
+
LCC: LCC,
|
|
7505
|
+
RMLO: RMLO,
|
|
7506
|
+
LMLO: LMLO,
|
|
7507
|
+
RCCPrior: RCCPrior,
|
|
7508
|
+
LCCPrior: LCCPrior,
|
|
7509
|
+
RMLOPrior: RMLOPrior,
|
|
7510
|
+
LMLOPrior: LMLOPrior
|
|
7511
|
+
},
|
|
7512
|
+
stages: [{
|
|
7513
|
+
name: 'CC/MLO',
|
|
7514
|
+
viewportStructure: {
|
|
7515
|
+
type: 'grid',
|
|
7516
|
+
layoutType: 'grid',
|
|
7517
|
+
properties: {
|
|
7518
|
+
rows: 2,
|
|
7519
|
+
columns: 2
|
|
7520
|
+
}
|
|
7521
|
+
},
|
|
7522
|
+
viewports: [{
|
|
7523
|
+
viewportOptions: {
|
|
7524
|
+
toolGroupId: 'default',
|
|
7525
|
+
displayArea: leftDisplayArea,
|
|
7526
|
+
// flipHorizontal: true,
|
|
7527
|
+
// rotation: 180,
|
|
7528
|
+
allowUnmatchedView: true
|
|
7529
|
+
},
|
|
7530
|
+
displaySets: [{
|
|
7531
|
+
id: 'RCC'
|
|
7532
|
+
}]
|
|
7533
|
+
}, {
|
|
7534
|
+
viewportOptions: {
|
|
7535
|
+
toolGroupId: 'default',
|
|
7536
|
+
// flipHorizontal: true,
|
|
7537
|
+
displayArea: rightDisplayArea,
|
|
7538
|
+
allowUnmatchedView: true
|
|
7539
|
+
},
|
|
7540
|
+
displaySets: [{
|
|
7541
|
+
id: 'LCC'
|
|
7542
|
+
}]
|
|
7543
|
+
}, {
|
|
7544
|
+
viewportOptions: {
|
|
7545
|
+
toolGroupId: 'default',
|
|
7546
|
+
displayArea: leftDisplayArea,
|
|
7547
|
+
// rotation: 180,
|
|
7548
|
+
// flipHorizontal: true,
|
|
7549
|
+
allowUnmatchedView: true
|
|
7550
|
+
},
|
|
7551
|
+
displaySets: [{
|
|
7552
|
+
id: 'RMLO'
|
|
7553
|
+
}]
|
|
7554
|
+
}, {
|
|
7555
|
+
viewportOptions: {
|
|
7556
|
+
toolGroupId: 'default',
|
|
7557
|
+
displayArea: rightDisplayArea,
|
|
7558
|
+
// flipHorizontal: true,
|
|
7559
|
+
allowUnmatchedView: true
|
|
7560
|
+
},
|
|
7561
|
+
displaySets: [{
|
|
7562
|
+
id: 'LMLO'
|
|
7563
|
+
}]
|
|
7564
|
+
}]
|
|
7565
|
+
},
|
|
7566
|
+
// Compare CC current/prior top/bottom
|
|
7567
|
+
{
|
|
7568
|
+
name: 'CC compare',
|
|
7569
|
+
viewportStructure: {
|
|
7570
|
+
type: 'grid',
|
|
7571
|
+
layoutType: 'grid',
|
|
7572
|
+
properties: {
|
|
7573
|
+
rows: 2,
|
|
7574
|
+
columns: 2
|
|
7575
|
+
}
|
|
7576
|
+
},
|
|
7577
|
+
viewports: [{
|
|
7578
|
+
viewportOptions: {
|
|
7579
|
+
toolGroupId: 'default',
|
|
7580
|
+
displayArea: leftDisplayArea,
|
|
7581
|
+
flipHorizontal: true,
|
|
7582
|
+
rotation: 180
|
|
7583
|
+
},
|
|
7584
|
+
displaySets: [{
|
|
7585
|
+
id: 'RCC'
|
|
7586
|
+
}]
|
|
7587
|
+
}, {
|
|
7588
|
+
viewportOptions: {
|
|
7589
|
+
toolGroupId: 'default',
|
|
7590
|
+
flipHorizontal: true,
|
|
7591
|
+
displayArea: rightDisplayArea
|
|
7592
|
+
},
|
|
7593
|
+
displaySets: [{
|
|
7594
|
+
id: 'LCC'
|
|
7595
|
+
}]
|
|
7596
|
+
}, {
|
|
7597
|
+
viewportOptions: {
|
|
7598
|
+
toolGroupId: 'default',
|
|
7599
|
+
displayArea: leftDisplayArea,
|
|
7600
|
+
flipHorizontal: true
|
|
7601
|
+
},
|
|
7602
|
+
displaySets: [{
|
|
7603
|
+
id: 'RCCPrior'
|
|
7604
|
+
}]
|
|
7605
|
+
}, {
|
|
7606
|
+
viewportOptions: {
|
|
7607
|
+
toolGroupId: 'default',
|
|
7608
|
+
displayArea: rightDisplayArea
|
|
7609
|
+
},
|
|
7610
|
+
displaySets: [{
|
|
7611
|
+
id: 'LCCPrior'
|
|
7612
|
+
}]
|
|
7613
|
+
}]
|
|
7614
|
+
}],
|
|
7615
|
+
// Indicates it is prior aware, but will work with no priors
|
|
7616
|
+
numberOfPriorsReferenced: 0
|
|
7617
|
+
};
|
|
7618
|
+
/* harmony default export */ const hpMammo = (hpMammography);
|
|
7619
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpScale.ts
|
|
7620
|
+
const displayAreaScale1 = {
|
|
7621
|
+
type: 'SCALE',
|
|
7622
|
+
scale: 1,
|
|
7623
|
+
storeAsInitialCamera: true
|
|
7624
|
+
};
|
|
7625
|
+
const displayAreaScale15 = {
|
|
7626
|
+
...displayAreaScale1,
|
|
7627
|
+
scale: 15
|
|
7628
|
+
};
|
|
7629
|
+
|
|
7630
|
+
/**
|
|
7631
|
+
* This hanging protocol can be activated on the primary mode by directly
|
|
7632
|
+
* referencing it in a URL or by directly including it within a mode, e.g.:
|
|
7633
|
+
* `&hangingProtocolId=@ohif/mnGrid` added to the viewer URL
|
|
7634
|
+
* It is not included in the viewer mode by default.
|
|
7635
|
+
*/
|
|
7636
|
+
const hpScale = {
|
|
7637
|
+
id: '@ohif/hpScale',
|
|
7638
|
+
description: 'Has various hanging protocol grid layouts',
|
|
7639
|
+
name: 'Scale Images',
|
|
7640
|
+
protocolMatchingRules: [{
|
|
7641
|
+
id: 'OneOrMoreSeries',
|
|
7642
|
+
weight: 25,
|
|
7643
|
+
attribute: 'numberOfDisplaySetsWithImages',
|
|
7644
|
+
constraint: {
|
|
7645
|
+
greaterThan: 0
|
|
7646
|
+
}
|
|
7647
|
+
}],
|
|
7648
|
+
toolGroupIds: ['default'],
|
|
7649
|
+
displaySetSelectors: {
|
|
7650
|
+
defaultDisplaySetId: {
|
|
7651
|
+
seriesMatchingRules: [{
|
|
7652
|
+
attribute: 'numImageFrames',
|
|
7653
|
+
constraint: {
|
|
7654
|
+
greaterThan: {
|
|
7655
|
+
value: 0
|
|
7656
|
+
}
|
|
7657
|
+
},
|
|
7658
|
+
required: true
|
|
7659
|
+
},
|
|
7660
|
+
// This display set will select the specified items by preference
|
|
7661
|
+
// It has no affect if nothing is specified in the URL.
|
|
7662
|
+
{
|
|
7663
|
+
attribute: 'isDisplaySetFromUrl',
|
|
7664
|
+
weight: 10,
|
|
7665
|
+
constraint: {
|
|
7666
|
+
equals: true
|
|
7667
|
+
}
|
|
7668
|
+
}]
|
|
7669
|
+
}
|
|
7670
|
+
},
|
|
7671
|
+
defaultViewport: {
|
|
7672
|
+
viewportOptions: {
|
|
7673
|
+
viewportType: 'stack',
|
|
7674
|
+
toolGroupId: 'default',
|
|
7675
|
+
displayArea: displayAreaScale1,
|
|
7676
|
+
allowUnmatchedView: true
|
|
7677
|
+
},
|
|
7678
|
+
displaySets: [{
|
|
7679
|
+
id: 'defaultDisplaySetId',
|
|
7680
|
+
matchedDisplaySetsIndex: -1
|
|
7681
|
+
}]
|
|
7682
|
+
},
|
|
7683
|
+
stages: [
|
|
7684
|
+
// A 1x1 stage - should be automatically activated if there is only 1 viewable instance
|
|
7685
|
+
{
|
|
7686
|
+
name: 'Scale 1:1',
|
|
7687
|
+
stageActivation: {
|
|
7688
|
+
enabled: {
|
|
7689
|
+
minViewportsMatched: 1
|
|
7690
|
+
}
|
|
7691
|
+
},
|
|
7692
|
+
viewportStructure: {
|
|
7693
|
+
layoutType: 'grid',
|
|
7694
|
+
properties: {
|
|
7695
|
+
rows: 1,
|
|
7696
|
+
columns: 1
|
|
7697
|
+
}
|
|
7698
|
+
},
|
|
7699
|
+
viewports: [{
|
|
7700
|
+
viewportOptions: {
|
|
7701
|
+
toolGroupId: 'default',
|
|
7702
|
+
allowUnmatchedView: true,
|
|
7703
|
+
displayArea: displayAreaScale1
|
|
7704
|
+
},
|
|
7705
|
+
displaySets: [{
|
|
7706
|
+
id: 'defaultDisplaySetId'
|
|
7707
|
+
}]
|
|
7708
|
+
}]
|
|
7709
|
+
}, {
|
|
7710
|
+
name: 'Scale 1:15',
|
|
7711
|
+
stageActivation: {
|
|
7712
|
+
enabled: {
|
|
7713
|
+
minViewportsMatched: 1
|
|
7714
|
+
}
|
|
7715
|
+
},
|
|
7716
|
+
viewportStructure: {
|
|
7717
|
+
layoutType: 'grid',
|
|
7718
|
+
properties: {
|
|
7719
|
+
rows: 1,
|
|
7720
|
+
columns: 1
|
|
7721
|
+
}
|
|
7722
|
+
},
|
|
7723
|
+
viewports: [{
|
|
7724
|
+
viewportOptions: {
|
|
7725
|
+
toolGroupId: 'default',
|
|
7726
|
+
allowUnmatchedView: true,
|
|
7727
|
+
displayArea: displayAreaScale15
|
|
7728
|
+
},
|
|
7729
|
+
displaySets: [{
|
|
7730
|
+
id: 'defaultDisplaySetId'
|
|
7731
|
+
}]
|
|
7732
|
+
}]
|
|
7733
|
+
}],
|
|
7734
|
+
numberOfPriorsReferenced: -1
|
|
7735
|
+
};
|
|
7736
|
+
/* harmony default export */ const hangingprotocols_hpScale = (hpScale);
|
|
7234
7737
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getHangingProtocolModule.js
|
|
7235
7738
|
|
|
7236
7739
|
|
|
7740
|
+
|
|
7741
|
+
|
|
7237
7742
|
const defaultProtocol = {
|
|
7238
7743
|
id: 'default',
|
|
7239
7744
|
locked: true,
|
|
@@ -7247,9 +7752,6 @@ const defaultProtocol = {
|
|
|
7247
7752
|
editableBy: {},
|
|
7248
7753
|
protocolMatchingRules: [],
|
|
7249
7754
|
toolGroupIds: ['default'],
|
|
7250
|
-
hpInitiationCriteria: {
|
|
7251
|
-
minSeriesLoaded: 1
|
|
7252
|
-
},
|
|
7253
7755
|
// -1 would be used to indicate active only, whereas other values are
|
|
7254
7756
|
// the number of required priors referenced - so 0 means active with
|
|
7255
7757
|
// 0 or more priors.
|
|
@@ -7340,6 +7842,12 @@ function getHangingProtocolModule() {
|
|
|
7340
7842
|
{
|
|
7341
7843
|
name: hpCompare.id,
|
|
7342
7844
|
protocol: hpCompare
|
|
7845
|
+
}, {
|
|
7846
|
+
name: hpMammo.id,
|
|
7847
|
+
protocol: hpMammo
|
|
7848
|
+
}, {
|
|
7849
|
+
name: hangingprotocols_hpScale.id,
|
|
7850
|
+
protocol: hangingprotocols_hpScale
|
|
7343
7851
|
}];
|
|
7344
7852
|
}
|
|
7345
7853
|
/* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
|
|
@@ -7834,6 +8342,7 @@ function getCustomizationModule({
|
|
|
7834
8342
|
}) {
|
|
7835
8343
|
return [{
|
|
7836
8344
|
name: 'helloPage',
|
|
8345
|
+
merge: 'Append',
|
|
7837
8346
|
value: {
|
|
7838
8347
|
id: 'customRoutes',
|
|
7839
8348
|
routes: [{
|
|
@@ -7849,6 +8358,7 @@ function getCustomizationModule({
|
|
|
7849
8358
|
// Example customization to list a set of datasources
|
|
7850
8359
|
{
|
|
7851
8360
|
name: 'datasources',
|
|
8361
|
+
merge: 'Append',
|
|
7852
8362
|
value: {
|
|
7853
8363
|
id: 'customRoutes',
|
|
7854
8364
|
routes: [{
|
|
@@ -7958,7 +8468,7 @@ function getCustomizationModule({
|
|
|
7958
8468
|
factory: dataSourceName => new GoogleCloudDataSourceConfigurationAPI(dataSourceName, servicesManager, extensionManager)
|
|
7959
8469
|
}, {
|
|
7960
8470
|
id: 'progressDropdownWithServiceComponent',
|
|
7961
|
-
component:
|
|
8471
|
+
component: ProgressDropdownWithService
|
|
7962
8472
|
}]
|
|
7963
8473
|
}];
|
|
7964
8474
|
}
|
|
@@ -8020,7 +8530,7 @@ function getPTImageIdInstanceMetadata(imageId) {
|
|
|
8020
8530
|
if (!dicomMetaData) {
|
|
8021
8531
|
throw new Error('dicom metadata are required');
|
|
8022
8532
|
}
|
|
8023
|
-
if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence
|
|
8533
|
+
if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime === undefined) {
|
|
8024
8534
|
throw new Error('required metadata are missing');
|
|
8025
8535
|
}
|
|
8026
8536
|
if (dicomMetaData.PatientWeight === undefined) {
|
|
@@ -8029,10 +8539,10 @@ function getPTImageIdInstanceMetadata(imageId) {
|
|
|
8029
8539
|
const instanceMetadata = {
|
|
8030
8540
|
CorrectedImage: dicomMetaData.CorrectedImage,
|
|
8031
8541
|
Units: dicomMetaData.Units,
|
|
8032
|
-
RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence
|
|
8033
|
-
RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence
|
|
8034
|
-
RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence
|
|
8035
|
-
RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence
|
|
8542
|
+
RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife,
|
|
8543
|
+
RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose,
|
|
8544
|
+
RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime,
|
|
8545
|
+
RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime,
|
|
8036
8546
|
DecayCorrection: dicomMetaData.DecayCorrection,
|
|
8037
8547
|
PatientWeight: dicomMetaData.PatientWeight,
|
|
8038
8548
|
SeriesDate: dicomMetaData.SeriesDate,
|
|
@@ -8079,10 +8589,55 @@ function convertInterfaceDateToString(date) {
|
|
|
8079
8589
|
return dateString;
|
|
8080
8590
|
}
|
|
8081
8591
|
|
|
8592
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/viewCode.ts
|
|
8593
|
+
/* harmony default export */ const viewCode = (displaySet => {
|
|
8594
|
+
const ViewCodeSequence = displaySet?.images[0]?.ViewCodeSequence[0];
|
|
8595
|
+
if (!ViewCodeSequence) {
|
|
8596
|
+
return undefined;
|
|
8597
|
+
}
|
|
8598
|
+
const {
|
|
8599
|
+
CodingSchemeDesignator,
|
|
8600
|
+
CodeValue
|
|
8601
|
+
} = ViewCodeSequence;
|
|
8602
|
+
if (!CodingSchemeDesignator || !CodeValue) {
|
|
8603
|
+
return undefined;
|
|
8604
|
+
}
|
|
8605
|
+
return `${CodingSchemeDesignator}:${CodeValue}`;
|
|
8606
|
+
});
|
|
8607
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/laterality.ts
|
|
8608
|
+
/* harmony default export */ const laterality = (displaySet => {
|
|
8609
|
+
const frameAnatomy = displaySet?.images?.[0]?.SharedFunctionalGroupsSequence?.[0]?.FrameAnatomySequence?.[0];
|
|
8610
|
+
if (!frameAnatomy) {
|
|
8611
|
+
return undefined;
|
|
8612
|
+
}
|
|
8613
|
+
const laterality = frameAnatomy?.FrameLaterality;
|
|
8614
|
+
return laterality;
|
|
8615
|
+
});
|
|
8616
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/registerHangingProtocolAttributes.ts
|
|
8617
|
+
|
|
8618
|
+
|
|
8619
|
+
function registerHangingProtocolAttributes({
|
|
8620
|
+
servicesManager
|
|
8621
|
+
}) {
|
|
8622
|
+
const {
|
|
8623
|
+
hangingProtocolService
|
|
8624
|
+
} = servicesManager.services;
|
|
8625
|
+
hangingProtocolService.addCustomAttribute('ViewCode', 'View Code Designator:Value', viewCode);
|
|
8626
|
+
hangingProtocolService.addCustomAttribute('Laterality', 'Laterality of object', laterality);
|
|
8627
|
+
}
|
|
8628
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/index.ts
|
|
8629
|
+
|
|
8630
|
+
|
|
8631
|
+
|
|
8632
|
+
|
|
8633
|
+
|
|
8634
|
+
|
|
8635
|
+
|
|
8082
8636
|
;// CONCATENATED MODULE: ../../../extensions/default/src/init.ts
|
|
8083
8637
|
|
|
8084
8638
|
|
|
8085
8639
|
|
|
8640
|
+
|
|
8086
8641
|
const init_metadataProvider = src.classes.MetadataProvider;
|
|
8087
8642
|
|
|
8088
8643
|
/**
|
|
@@ -8151,6 +8706,11 @@ function init({
|
|
|
8151
8706
|
clearOnModeExit: true
|
|
8152
8707
|
});
|
|
8153
8708
|
|
|
8709
|
+
// Adds extra custom attributes for use by hanging protocols
|
|
8710
|
+
registerHangingProtocolAttributes({
|
|
8711
|
+
servicesManager
|
|
8712
|
+
});
|
|
8713
|
+
|
|
8154
8714
|
// Function to process and subscribe to events for a given set of commands and listeners
|
|
8155
8715
|
const subscribeToEvents = listeners => {
|
|
8156
8716
|
Object.entries(listeners).forEach(([event, commands]) => {
|