@ohif/app 3.8.0-beta.53 → 3.8.0-beta.55
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/{223.bundle.d4ac6ef2cfe47a9c4afc.js → 109.bundle.b4fee2a22b622839baf5.js} +50 -50
- package/dist/{471.bundle.eeb78105b59e688832a6.js → 121.bundle.5d0736acd6a7090ff2d0.js} +18 -18
- package/dist/{19.bundle.96d32f49277b19b2dff6.js → 155.bundle.e813e01526393fc0c81d.js} +93 -93
- package/dist/{687.bundle.3e0af85fe7f39e8e10cc.js → 164.bundle.c5c6a095c04bf80c9dc6.js} +4 -4
- package/dist/{506.bundle.4f9d7c5385f3529f0eab.js → 188.bundle.df0f701a626b2bdd5607.js} +11 -11
- package/dist/{199.bundle.d85920889bb66d8a1098.js → 250.bundle.20d6ff7e3aa73db874d9.js} +42 -42
- package/dist/{965.bundle.2fb2086fa4b6d3e2f4cc.js → 270.bundle.24bd8268981ff45bc5ed.js} +60 -60
- package/dist/{95.bundle.2236101be3cc36b322e8.js → 290.bundle.88e45f20df861f74b040.js} +12 -12
- package/dist/{451.bundle.311cd3be9916e08450e9.js → 295.bundle.5d7c931dcc154900b181.js} +21 -22
- package/dist/{125.bundle.df666cb677e5a8982157.js → 297.bundle.81d63bb0b66d63df6d86.js} +4 -4
- package/dist/{613.bundle.f651f6498eca367893bc.js → 317.bundle.4bbbbeacc63a87fe0052.js} +9 -9
- package/dist/{483.bundle.560f95b85cbf8abb8d72.js → 339.bundle.6071d0db23a8fd7b4ce1.js} +65 -65
- package/dist/{202.bundle.495cba6bbee744cf8f72.js → 342.bundle.c260b2f9105f31c53e06.js} +93 -93
- package/dist/{466.bundle.b9a71a0e831fe4834c94.js → 50.bundle.a02f930758203e922b61.js} +47 -47
- package/dist/{886.bundle.94a4536167d0f8cae1ae.js → 530.bundle.59fb7594f8c8fc3bb3cc.js} +24 -24
- package/dist/{250.bundle.577da106dd763c7bf9d0.js → 544.bundle.757758f236737ef68537.js} +22 -22
- package/dist/{170.bundle.5d2c9436559a23e5dbee.js → 559.bundle.8c5f8069652858166212.js} +63 -63
- package/dist/{410.bundle.56642de2df55878a1853.js → 594.bundle.5587e112957597bfa00e.js} +11 -11
- package/dist/{661.bundle.949c984fe2f9f753b65c.js → 644.bundle.1e77691d2eeb96a423b0.js} +4 -4
- package/dist/{185.bundle.65dfcd19fcdd2aad3ea6.js → 68.bundle.3f8ecb580774e553c5e2.js} +47 -47
- package/dist/{738.bundle.a82a4d4d9f917a2961a5.js → 704.bundle.5f768638951d88f5b04a.js} +221 -221
- package/dist/{359.bundle.2376cffe4225c0ba02b3.js → 724.bundle.3d153d487a4df09d7fc1.js} +12 -12
- package/dist/{831.bundle.127a3064e8844d6d2c82.js → 726.bundle.ca49b063dace33d27ae3.js} +512 -512
- package/dist/{530.bundle.f904325ef4195d69ac0e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +28 -28
- package/dist/{822.bundle.8b745e28bc9eb9afbc61.js → 862.bundle.9495643df5c63de0ac57.js} +19 -19
- package/dist/{181.bundle.aff453c348111303ceac.js → 889.bundle.3fbb54e829d5c48d82fd.js} +33 -38
- package/dist/{281.bundle.0a4249ca51e44ac8912f.js → 905.bundle.290943a93a696c835e94.js} +8 -8
- package/dist/{814.bundle.fa36ecb2cc7acf96aa61.js → 907.bundle.d161c4269937e5e77f2d.js} +9 -9
- package/dist/{417.bundle.5c66801d23d0e98c00e6.js → 931.bundle.d270a1fda9a2836c3cc5.js} +25 -25
- package/dist/{686.bundle.62c827fe4f0d054c164e.js → 939.bundle.84ee0b844023d924a22b.js} +4 -4
- package/dist/{12.bundle.f620665da5ed13b3e015.js → 961.bundle.2ada19a2348f025c8eca.js} +8 -8
- package/dist/{290.bundle.7dedf462349c0bc03037.js → 963.bundle.a998a59f759bd3be3e47.js} +440 -218
- package/dist/{app.bundle.db3a4b9e3e9a9169200b.js → app.bundle.708fb56d4d3a283387f4.js} +5485 -5144
- package/dist/app.bundle.css +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +21 -18
- package/dist/23.bundle.9d989522a6e4fdcb9c72.js +0 -900
- /package/dist/{19.css → 155.css} +0 -0
- /package/dist/{579.css → 481.css} +0 -0
- /package/dist/{466.css → 50.css} +0 -0
- /package/dist/{250.css → 544.css} +0 -0
- /package/dist/{181.css → 889.css} +0 -0
- /package/dist/{290.css → 963.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[704],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 49704:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -30,11 +30,11 @@ __webpack_require__.d(utils_namespaceObject, {
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
// EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
|
|
33
|
-
var dicomweb_client_es = __webpack_require__(
|
|
33
|
+
var dicomweb_client_es = __webpack_require__(36922);
|
|
34
34
|
// EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
|
|
35
|
-
var src = __webpack_require__(
|
|
35
|
+
var src = __webpack_require__(30257);
|
|
36
36
|
// EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
|
|
37
|
-
var sortStudy = __webpack_require__(
|
|
37
|
+
var sortStudy = __webpack_require__(45476);
|
|
38
38
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
|
|
39
39
|
/**
|
|
40
40
|
* QIDO - Query based on ID for DICOM Objects
|
|
@@ -66,7 +66,7 @@ const {
|
|
|
66
66
|
getString,
|
|
67
67
|
getName,
|
|
68
68
|
getModalities
|
|
69
|
-
} = src
|
|
69
|
+
} = src/* DICOMWeb */.ll;
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* Parses resulting data from a QIDO call into a set of Study MetaData
|
|
@@ -93,7 +93,7 @@ function processResults(qidoStudies) {
|
|
|
93
93
|
// short string, probably a number?
|
|
94
94
|
mrn: getString(qidoStudy['00100020']) || '',
|
|
95
95
|
// medicalRecordNumber
|
|
96
|
-
patientName: src
|
|
96
|
+
patientName: src/* utils */.Wp.formatPN(getName(qidoStudy['00100010'])) || '',
|
|
97
97
|
instances: Number(getString(qidoStudy['00201208'])) || 0,
|
|
98
98
|
// number
|
|
99
99
|
description: getString(qidoStudy['00081030']) || '',
|
|
@@ -120,12 +120,12 @@ function processSeriesResults(qidoSeries) {
|
|
|
120
120
|
seriesInstanceUid: getString(qidoSeries['0020000E']),
|
|
121
121
|
modality: getString(qidoSeries['00080060']),
|
|
122
122
|
seriesNumber: getString(qidoSeries['00200011']),
|
|
123
|
-
seriesDate: src
|
|
123
|
+
seriesDate: src/* utils */.Wp.formatDate(getString(qidoSeries['00080021'])),
|
|
124
124
|
numSeriesInstances: Number(getString(qidoSeries['00201209'])),
|
|
125
125
|
description: getString(qidoSeries['0008103E'])
|
|
126
126
|
}));
|
|
127
127
|
}
|
|
128
|
-
(0,sortStudy/* sortStudySeries */.
|
|
128
|
+
(0,sortStudy/* sortStudySeries */.LM)(series);
|
|
129
129
|
return series;
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -378,7 +378,7 @@ function getImageId({
|
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
380
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
381
|
-
var dcmjs_es = __webpack_require__(
|
|
381
|
+
var dcmjs_es = __webpack_require__(31426);
|
|
382
382
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/wado/retrieveMetadataLoader.js
|
|
383
383
|
/**
|
|
384
384
|
* Class to define inheritance of load retrieve strategy.
|
|
@@ -630,9 +630,9 @@ class RetrieveMetadataLoaderAsync extends RetrieveMetadataLoader {
|
|
|
630
630
|
const sortFunction = this.sortFunction;
|
|
631
631
|
const {
|
|
632
632
|
naturalizeDataset
|
|
633
|
-
} = dcmjs_es
|
|
633
|
+
} = dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary;
|
|
634
634
|
const naturalized = result.map(naturalizeDataset);
|
|
635
|
-
return (0,sortStudy/* sortStudySeries */.
|
|
635
|
+
return (0,sortStudy/* sortStudySeries */.LM)(naturalized, sortCriteria, sortFunction);
|
|
636
636
|
}
|
|
637
637
|
async load(preLoadData) {
|
|
638
638
|
const {
|
|
@@ -814,7 +814,7 @@ function deleteStudyMetadataPromise(StudyInstanceUID) {
|
|
|
814
814
|
* by manually implementing a query option.
|
|
815
815
|
*/
|
|
816
816
|
|
|
817
|
-
class StaticWadoClient extends dicomweb_client_es
|
|
817
|
+
class StaticWadoClient extends dicomweb_client_es/* api */.FH.DICOMwebClient {
|
|
818
818
|
constructor(qidoConfig) {
|
|
819
819
|
super(qidoConfig);
|
|
820
820
|
this.staticWado = qidoConfig.staticWado;
|
|
@@ -1014,7 +1014,7 @@ const getDirectURL = (config, params) => {
|
|
|
1014
1014
|
return value.DirectRetrieveURL;
|
|
1015
1015
|
}
|
|
1016
1016
|
if (value.InlineBinary) {
|
|
1017
|
-
const blob = src
|
|
1017
|
+
const blob = src/* utils */.Wp.b64toBlob(value.InlineBinary, defaultType);
|
|
1018
1018
|
value.DirectRetrieveURL = URL.createObjectURL(blob);
|
|
1019
1019
|
return value.DirectRetrieveURL;
|
|
1020
1020
|
}
|
|
@@ -1115,7 +1115,7 @@ function fixBulkDataURI(value, instance, dicomWebConfig) {
|
|
|
1115
1115
|
const {
|
|
1116
1116
|
DicomMetaDictionary,
|
|
1117
1117
|
DicomDict
|
|
1118
|
-
} = dcmjs_es
|
|
1118
|
+
} = dcmjs_es/* default.data */.Ay.data;
|
|
1119
1119
|
const {
|
|
1120
1120
|
naturalizeDataset,
|
|
1121
1121
|
denaturalizeDataset
|
|
@@ -1123,7 +1123,7 @@ const {
|
|
|
1123
1123
|
const ImplementationClassUID = '2.25.270695996825855179949881587723571202391.2.0.0';
|
|
1124
1124
|
const ImplementationVersionName = 'OHIF-VIEWER-2.0.0';
|
|
1125
1125
|
const EXPLICIT_VR_LITTLE_ENDIAN = '1.2.840.10008.1.2.1';
|
|
1126
|
-
const metadataProvider = src
|
|
1126
|
+
const metadataProvider = src/* classes */.Ly.MetadataProvider;
|
|
1127
1127
|
|
|
1128
1128
|
/**
|
|
1129
1129
|
* Creates a DICOM Web API based on the provided configuration.
|
|
@@ -1185,7 +1185,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1185
1185
|
generateWadoHeader = () => {
|
|
1186
1186
|
let authorizationHeader = getAuthrorizationHeader();
|
|
1187
1187
|
//Generate accept header depending on config params
|
|
1188
|
-
let formattedAcceptHeader = src
|
|
1188
|
+
let formattedAcceptHeader = src/* utils */.Wp.generateAcceptHeader(dicomWebConfig.acceptHeader, dicomWebConfig.requestTransferSyntaxUID, dicomWebConfig.omitQuotationForMultipartRequest);
|
|
1189
1189
|
return {
|
|
1190
1190
|
...authorizationHeader,
|
|
1191
1191
|
Accept: formattedAcceptHeader
|
|
@@ -1196,20 +1196,20 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1196
1196
|
staticWado: dicomWebConfig.staticWado,
|
|
1197
1197
|
singlepart: dicomWebConfig.singlepart,
|
|
1198
1198
|
headers: userAuthenticationService.getAuthorizationHeader(),
|
|
1199
|
-
errorInterceptor: src/* errorHandler */.
|
|
1199
|
+
errorInterceptor: src/* errorHandler */.r_.getHTTPErrorHandler()
|
|
1200
1200
|
};
|
|
1201
1201
|
wadoConfig = {
|
|
1202
1202
|
url: dicomWebConfig.wadoRoot,
|
|
1203
1203
|
staticWado: dicomWebConfig.staticWado,
|
|
1204
1204
|
singlepart: dicomWebConfig.singlepart,
|
|
1205
1205
|
headers: userAuthenticationService.getAuthorizationHeader(),
|
|
1206
|
-
errorInterceptor: src/* errorHandler */.
|
|
1206
|
+
errorInterceptor: src/* errorHandler */.r_.getHTTPErrorHandler()
|
|
1207
1207
|
};
|
|
1208
1208
|
|
|
1209
1209
|
// TODO -> Two clients sucks, but its better than 1000.
|
|
1210
1210
|
// TODO -> We'll need to merge auth later.
|
|
1211
|
-
qidoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(qidoConfig) : new dicomweb_client_es
|
|
1212
|
-
wadoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(wadoConfig) : new dicomweb_client_es
|
|
1211
|
+
qidoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(qidoConfig) : new dicomweb_client_es/* api */.FH.DICOMwebClient(qidoConfig);
|
|
1212
|
+
wadoDicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(wadoConfig) : new dicomweb_client_es/* api */.FH.DICOMwebClient(wadoConfig);
|
|
1213
1213
|
},
|
|
1214
1214
|
query: {
|
|
1215
1215
|
studies: {
|
|
@@ -1374,8 +1374,8 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1374
1374
|
|
|
1375
1375
|
// grab all the series metadata
|
|
1376
1376
|
const seriesMetadata = Object.values(seriesSummaryMetadata);
|
|
1377
|
-
src
|
|
1378
|
-
Object.keys(instancesPerSeries).forEach(seriesInstanceUID => src
|
|
1377
|
+
src/* DicomMetadataStore */.H8.addSeriesMetadata(seriesMetadata, madeInClient);
|
|
1378
|
+
Object.keys(instancesPerSeries).forEach(seriesInstanceUID => src/* DicomMetadataStore */.H8.addInstances(instancesPerSeries[seriesInstanceUID], madeInClient));
|
|
1379
1379
|
return seriesSummaryMetadata;
|
|
1380
1380
|
},
|
|
1381
1381
|
_retrieveSeriesMetadataAsync: async (StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient = false, returnPromises = false) => {
|
|
@@ -1472,10 +1472,10 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1472
1472
|
SOPInstanceUID: instance.SOPInstanceUID
|
|
1473
1473
|
});
|
|
1474
1474
|
});
|
|
1475
|
-
src
|
|
1475
|
+
src/* DicomMetadataStore */.H8.addInstances(naturalizedInstances, madeInClient);
|
|
1476
1476
|
}
|
|
1477
1477
|
function setSuccessFlag() {
|
|
1478
|
-
const study = src
|
|
1478
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(StudyInstanceUID);
|
|
1479
1479
|
if (!study) {
|
|
1480
1480
|
return;
|
|
1481
1481
|
}
|
|
@@ -1487,7 +1487,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1487
1487
|
seriesSummaryMetadata.forEach(aSeries => {
|
|
1488
1488
|
aSeries.StudyInstanceUID = StudyInstanceUID;
|
|
1489
1489
|
});
|
|
1490
|
-
src
|
|
1490
|
+
src/* DicomMetadataStore */.H8.addSeriesMetadata(seriesSummaryMetadata, madeInClient);
|
|
1491
1491
|
const seriesDeliveredPromises = seriesPromises.map(promise => {
|
|
1492
1492
|
if (!returnPromises) {
|
|
1493
1493
|
promise?.start();
|
|
@@ -1552,7 +1552,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1552
1552
|
const {
|
|
1553
1553
|
StudyInstanceUIDs: paramsStudyInstanceUIDs
|
|
1554
1554
|
} = params;
|
|
1555
|
-
const queryStudyInstanceUIDs = src
|
|
1555
|
+
const queryStudyInstanceUIDs = src/* utils */.Wp.splitComma(query.getAll('StudyInstanceUIDs'));
|
|
1556
1556
|
const StudyInstanceUIDs = queryStudyInstanceUIDs.length && queryStudyInstanceUIDs || paramsStudyInstanceUIDs;
|
|
1557
1557
|
const StudyInstanceUIDsAsArray = StudyInstanceUIDs && Array.isArray(StudyInstanceUIDs) ? StudyInstanceUIDs : [StudyInstanceUIDs];
|
|
1558
1558
|
return StudyInstanceUIDsAsArray;
|
|
@@ -1561,7 +1561,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1561
1561
|
if (dicomWebConfig.supportsReject) {
|
|
1562
1562
|
implementation.reject = dcm4cheeReject(dicomWebConfig.wadoRoot);
|
|
1563
1563
|
}
|
|
1564
|
-
return src/* IWebApiDataSource */.
|
|
1564
|
+
return src/* IWebApiDataSource */.pt.create(implementation);
|
|
1565
1565
|
}
|
|
1566
1566
|
|
|
1567
1567
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomJSONDataSource/index.js
|
|
@@ -1569,7 +1569,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1569
1569
|
|
|
1570
1570
|
|
|
1571
1571
|
|
|
1572
|
-
const DicomJSONDataSource_metadataProvider = src
|
|
1572
|
+
const DicomJSONDataSource_metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
1573
1573
|
const mappings = {
|
|
1574
1574
|
studyInstanceUid: 'StudyInstanceUID',
|
|
1575
1575
|
patientId: 'PatientID'
|
|
@@ -1596,7 +1596,7 @@ function wrapSequences(obj) {
|
|
|
1596
1596
|
acc[key] = obj[key];
|
|
1597
1597
|
}
|
|
1598
1598
|
if (key.endsWith('Sequence')) {
|
|
1599
|
-
acc[key] = src
|
|
1599
|
+
acc[key] = src/* default.utils */.Ay.utils.addAccessors(acc[key]);
|
|
1600
1600
|
}
|
|
1601
1601
|
return acc;
|
|
1602
1602
|
}, Array.isArray(obj) ? [] : {});
|
|
@@ -1750,11 +1750,11 @@ function createDicomJSONApi(dicomJsonConfig) {
|
|
|
1750
1750
|
|
|
1751
1751
|
// Async load series, store as retrieved
|
|
1752
1752
|
function storeInstances(naturalizedInstances) {
|
|
1753
|
-
src
|
|
1753
|
+
src/* DicomMetadataStore */.H8.addInstances(naturalizedInstances, madeInClient);
|
|
1754
1754
|
}
|
|
1755
|
-
src
|
|
1755
|
+
src/* DicomMetadataStore */.H8.addSeriesMetadata(seriesSummaryMetadata, madeInClient);
|
|
1756
1756
|
function setSuccessFlag() {
|
|
1757
|
-
const study = src
|
|
1757
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(StudyInstanceUID, madeInClient);
|
|
1758
1758
|
study.isLoaded = true;
|
|
1759
1759
|
}
|
|
1760
1760
|
const numberOfSeries = series.length;
|
|
@@ -1834,17 +1834,17 @@ function createDicomJSONApi(dicomJsonConfig) {
|
|
|
1834
1834
|
return _store.studyInstanceUIDMap.get(url);
|
|
1835
1835
|
}
|
|
1836
1836
|
};
|
|
1837
|
-
return src/* IWebApiDataSource */.
|
|
1837
|
+
return src/* IWebApiDataSource */.pt.create(implementation);
|
|
1838
1838
|
}
|
|
1839
1839
|
|
|
1840
1840
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomLocalDataSource/index.js
|
|
1841
1841
|
|
|
1842
1842
|
|
|
1843
1843
|
|
|
1844
|
-
const DicomLocalDataSource_metadataProvider = src
|
|
1844
|
+
const DicomLocalDataSource_metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
1845
1845
|
const {
|
|
1846
1846
|
EVENTS
|
|
1847
|
-
} = src
|
|
1847
|
+
} = src/* DicomMetadataStore */.H8;
|
|
1848
1848
|
const END_MODALITIES = {
|
|
1849
1849
|
SR: true,
|
|
1850
1850
|
SEG: true,
|
|
@@ -1890,14 +1890,14 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
1890
1890
|
studies: {
|
|
1891
1891
|
mapParams: () => {},
|
|
1892
1892
|
search: params => {
|
|
1893
|
-
const studyUIDs = src
|
|
1893
|
+
const studyUIDs = src/* DicomMetadataStore */.H8.getStudyInstanceUIDs();
|
|
1894
1894
|
return studyUIDs.map(StudyInstanceUID => {
|
|
1895
1895
|
let numInstances = 0;
|
|
1896
1896
|
const modalities = new Set();
|
|
1897
1897
|
|
|
1898
1898
|
// Calculating the number of instances in the study and modalities
|
|
1899
1899
|
// present in the study
|
|
1900
|
-
const study = src
|
|
1900
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(StudyInstanceUID);
|
|
1901
1901
|
study.series.forEach(aSeries => {
|
|
1902
1902
|
numInstances += aSeries.instances.length;
|
|
1903
1903
|
modalities.add(aSeries.instances[0].Modality);
|
|
@@ -1911,7 +1911,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
1911
1911
|
date: firstInstance.StudyDate,
|
|
1912
1912
|
description: firstInstance.StudyDescription,
|
|
1913
1913
|
mrn: firstInstance.PatientID,
|
|
1914
|
-
patientName: src
|
|
1914
|
+
patientName: src/* utils */.Wp.formatPN(firstInstance.PatientName),
|
|
1915
1915
|
studyInstanceUid: firstInstance.StudyInstanceUID,
|
|
1916
1916
|
time: firstInstance.StudyTime,
|
|
1917
1917
|
//
|
|
@@ -1928,7 +1928,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
1928
1928
|
},
|
|
1929
1929
|
series: {
|
|
1930
1930
|
search: studyInstanceUID => {
|
|
1931
|
-
const study = src
|
|
1931
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(studyInstanceUID);
|
|
1932
1932
|
return study.series.map(aSeries => {
|
|
1933
1933
|
const firstInstance = aSeries?.instances[0];
|
|
1934
1934
|
return {
|
|
@@ -1973,10 +1973,10 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
1973
1973
|
}
|
|
1974
1974
|
|
|
1975
1975
|
// Instances metadata already added via local upload
|
|
1976
|
-
const study = src
|
|
1976
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(StudyInstanceUID, madeInClient);
|
|
1977
1977
|
|
|
1978
1978
|
// Series metadata already added via local upload
|
|
1979
|
-
src
|
|
1979
|
+
src/* DicomMetadataStore */.H8._broadcastEvent(EVENTS.SERIES_ADDED, {
|
|
1980
1980
|
StudyInstanceUID,
|
|
1981
1981
|
madeInClient
|
|
1982
1982
|
});
|
|
@@ -2002,7 +2002,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2002
2002
|
frameIndex: isMultiframe ? index : 1
|
|
2003
2003
|
});
|
|
2004
2004
|
});
|
|
2005
|
-
src
|
|
2005
|
+
src/* DicomMetadataStore */.H8._broadcastEvent(EVENTS.INSTANCES_ADDED, {
|
|
2006
2006
|
StudyInstanceUID,
|
|
2007
2007
|
SeriesInstanceUID,
|
|
2008
2008
|
madeInClient
|
|
@@ -2013,7 +2013,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2013
2013
|
},
|
|
2014
2014
|
store: {
|
|
2015
2015
|
dicom: naturalizedReport => {
|
|
2016
|
-
const reportBlob = dcmjs_es
|
|
2016
|
+
const reportBlob = dcmjs_es/* default.data */.Ay.data.datasetToBlob(naturalizedReport);
|
|
2017
2017
|
|
|
2018
2018
|
//Create a URL for the binary.
|
|
2019
2019
|
var objectUrl = URL.createObjectURL(reportBlob);
|
|
@@ -2055,7 +2055,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2055
2055
|
SeriesInstanceUID,
|
|
2056
2056
|
SOPInstanceUID
|
|
2057
2057
|
} = instance;
|
|
2058
|
-
const storedInstance = src
|
|
2058
|
+
const storedInstance = src/* DicomMetadataStore */.H8.getInstance(StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID);
|
|
2059
2059
|
let imageId = storedInstance.url;
|
|
2060
2060
|
if (frame !== undefined) {
|
|
2061
2061
|
imageId += `&frame=${frame}`;
|
|
@@ -2079,7 +2079,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2079
2079
|
// Put SRs at the end of series list to make sure images are loaded first
|
|
2080
2080
|
let isStudyInCache = false;
|
|
2081
2081
|
StudyInstanceUIDsAsArray.forEach(StudyInstanceUID => {
|
|
2082
|
-
const study = src
|
|
2082
|
+
const study = src/* DicomMetadataStore */.H8.getStudy(StudyInstanceUID);
|
|
2083
2083
|
if (study) {
|
|
2084
2084
|
study.series = study.series.sort(customSort);
|
|
2085
2085
|
isStudyInCache = true;
|
|
@@ -2088,7 +2088,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2088
2088
|
return isStudyInCache ? StudyInstanceUIDsAsArray : [];
|
|
2089
2089
|
}
|
|
2090
2090
|
};
|
|
2091
|
-
return src/* IWebApiDataSource */.
|
|
2091
|
+
return src/* IWebApiDataSource */.pt.create(implementation);
|
|
2092
2092
|
}
|
|
2093
2093
|
|
|
2094
2094
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebProxyDataSource/index.js
|
|
@@ -2167,11 +2167,11 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
|
|
|
2167
2167
|
return studyInstanceUIDs;
|
|
2168
2168
|
}
|
|
2169
2169
|
};
|
|
2170
|
-
return src/* IWebApiDataSource */.
|
|
2170
|
+
return src/* IWebApiDataSource */.pt.create(implementation);
|
|
2171
2171
|
}
|
|
2172
2172
|
|
|
2173
2173
|
// EXTERNAL MODULE: ../../../node_modules/lodash/lodash.js
|
|
2174
|
-
var lodash = __webpack_require__(
|
|
2174
|
+
var lodash = __webpack_require__(5517);
|
|
2175
2175
|
;// CONCATENATED MODULE: ../../../extensions/default/src/MergeDataSource/index.ts
|
|
2176
2176
|
|
|
2177
2177
|
|
|
@@ -2185,7 +2185,7 @@ const mergeMap = {
|
|
|
2185
2185
|
tagFunc: (series, sourceName) => {
|
|
2186
2186
|
series.forEach(series => {
|
|
2187
2187
|
series.RetrieveAETitle = sourceName;
|
|
2188
|
-
src
|
|
2188
|
+
src/* DicomMetadataStore */.H8.updateSeriesMetadata(series);
|
|
2189
2189
|
});
|
|
2190
2190
|
return series;
|
|
2191
2191
|
}
|
|
@@ -2321,7 +2321,7 @@ const callByRetrieveAETitle = ({
|
|
|
2321
2321
|
extensionManager
|
|
2322
2322
|
}) => {
|
|
2323
2323
|
const [displaySet] = args;
|
|
2324
|
-
const seriesMetadata = src
|
|
2324
|
+
const seriesMetadata = src/* DicomMetadataStore */.H8.getSeries(displaySet.StudyInstanceUID, displaySet.SeriesInstanceUID);
|
|
2325
2325
|
const [dataSource] = extensionManager.getDataSources(seriesMetadata.RetrieveAETitle || defaultDataSourceName);
|
|
2326
2326
|
return dataSource[path](...args);
|
|
2327
2327
|
};
|
|
@@ -2434,7 +2434,7 @@ function createMergeDataSourceApi(mergeConfig, servicesManager, extensionManager
|
|
|
2434
2434
|
defaultDataSourceName
|
|
2435
2435
|
})
|
|
2436
2436
|
};
|
|
2437
|
-
return src/* IWebApiDataSource */.
|
|
2437
|
+
return src/* IWebApiDataSource */.pt.create(implementation);
|
|
2438
2438
|
}
|
|
2439
2439
|
|
|
2440
2440
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getDataSourcesModule.js
|
|
@@ -2476,24 +2476,24 @@ function getDataSourcesModule() {
|
|
|
2476
2476
|
}
|
|
2477
2477
|
/* harmony default export */ const src_getDataSourcesModule = (getDataSourcesModule);
|
|
2478
2478
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
2479
|
-
var react = __webpack_require__(
|
|
2479
|
+
var react = __webpack_require__(41766);
|
|
2480
2480
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
2481
|
-
var prop_types = __webpack_require__(
|
|
2481
|
+
var prop_types = __webpack_require__(11374);
|
|
2482
2482
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
2483
2483
|
// EXTERNAL MODULE: ../../ui/src/index.js + 487 modules
|
|
2484
|
-
var ui_src = __webpack_require__(
|
|
2484
|
+
var ui_src = __webpack_require__(55395);
|
|
2485
2485
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
2486
|
-
var state = __webpack_require__(
|
|
2486
|
+
var state = __webpack_require__(15575);
|
|
2487
2487
|
// EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
|
|
2488
|
-
var dist = __webpack_require__(
|
|
2488
|
+
var dist = __webpack_require__(37396);
|
|
2489
2489
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
2490
|
-
var es = __webpack_require__(
|
|
2490
|
+
var es = __webpack_require__(80619);
|
|
2491
2491
|
// EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
|
|
2492
|
-
var react_router_dist = __webpack_require__(
|
|
2492
|
+
var react_router_dist = __webpack_require__(10971);
|
|
2493
2493
|
// EXTERNAL MODULE: ../../i18n/src/index.js + 148 modules
|
|
2494
|
-
var i18n_src = __webpack_require__(
|
|
2494
|
+
var i18n_src = __webpack_require__(69536);
|
|
2495
2495
|
// EXTERNAL MODULE: ../../../node_modules/classnames/index.js
|
|
2496
|
-
var classnames = __webpack_require__(
|
|
2496
|
+
var classnames = __webpack_require__(61466);
|
|
2497
2497
|
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
|
|
2498
2498
|
;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/Toolbar.tsx
|
|
2499
2499
|
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); }
|
|
@@ -2506,7 +2506,7 @@ function Toolbar({
|
|
|
2506
2506
|
const {
|
|
2507
2507
|
toolbarService
|
|
2508
2508
|
} = servicesManager.services;
|
|
2509
|
-
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.
|
|
2509
|
+
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
2510
2510
|
const [toolbarButtons, setToolbarButtons] = (0,react.useState)([]);
|
|
2511
2511
|
(0,react.useEffect)(() => {
|
|
2512
2512
|
const updateToolbar = () => {
|
|
@@ -2558,15 +2558,15 @@ const {
|
|
|
2558
2558
|
availableLanguages,
|
|
2559
2559
|
defaultLanguage,
|
|
2560
2560
|
currentLanguage
|
|
2561
|
-
} = i18n_src
|
|
2561
|
+
} = i18n_src/* default */.A;
|
|
2562
2562
|
function ViewerHeader({
|
|
2563
2563
|
hotkeysManager,
|
|
2564
2564
|
extensionManager,
|
|
2565
2565
|
servicesManager
|
|
2566
2566
|
}) {
|
|
2567
|
-
const [appConfig] = (0,state/* useAppConfig */.
|
|
2568
|
-
const navigate = (0,dist/* useNavigate */.
|
|
2569
|
-
const location = (0,react_router_dist/* useLocation */.
|
|
2567
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
2568
|
+
const navigate = (0,dist/* useNavigate */.Zp)();
|
|
2569
|
+
const location = (0,react_router_dist/* useLocation */.zy)();
|
|
2570
2570
|
const onClickReturnButton = () => {
|
|
2571
2571
|
const {
|
|
2572
2572
|
pathname
|
|
@@ -2590,22 +2590,22 @@ function ViewerHeader({
|
|
|
2590
2590
|
};
|
|
2591
2591
|
const {
|
|
2592
2592
|
t
|
|
2593
|
-
} = (0,es/* useTranslation
|
|
2593
|
+
} = (0,es/* useTranslation */.Bd)();
|
|
2594
2594
|
const {
|
|
2595
2595
|
show,
|
|
2596
2596
|
hide
|
|
2597
|
-
} = (0,ui_src/* useModal */.
|
|
2597
|
+
} = (0,ui_src/* useModal */.hS)();
|
|
2598
2598
|
const {
|
|
2599
2599
|
hotkeyDefinitions,
|
|
2600
2600
|
hotkeyDefaults
|
|
2601
2601
|
} = hotkeysManager;
|
|
2602
|
-
const versionNumber = "3.8.0-beta.
|
|
2603
|
-
const commitHash = "
|
|
2602
|
+
const versionNumber = "3.8.0-beta.55";
|
|
2603
|
+
const commitHash = "b3a0faf5f5f0a1993b2b017eb4cc1216164ea2c6";
|
|
2604
2604
|
const menuOptions = [{
|
|
2605
2605
|
title: t('Header:About'),
|
|
2606
2606
|
icon: 'info',
|
|
2607
2607
|
onClick: () => show({
|
|
2608
|
-
content: ui_src/* AboutModal */.
|
|
2608
|
+
content: ui_src/* AboutModal */.VT,
|
|
2609
2609
|
title: t('AboutModal:About OHIF Viewer'),
|
|
2610
2610
|
contentProps: {
|
|
2611
2611
|
versionNumber,
|
|
@@ -2617,7 +2617,7 @@ function ViewerHeader({
|
|
|
2617
2617
|
icon: 'settings',
|
|
2618
2618
|
onClick: () => show({
|
|
2619
2619
|
title: t('UserPreferencesModal:User preferences'),
|
|
2620
|
-
content: ui_src/* UserPreferences */.
|
|
2620
|
+
content: ui_src/* UserPreferences */.im,
|
|
2621
2621
|
contentProps: {
|
|
2622
2622
|
hotkeyDefaults: hotkeysManager.getValidHotkeyDefinitions(hotkeyDefaults),
|
|
2623
2623
|
hotkeyDefinitions,
|
|
@@ -2625,8 +2625,8 @@ function ViewerHeader({
|
|
|
2625
2625
|
availableLanguages,
|
|
2626
2626
|
defaultLanguage,
|
|
2627
2627
|
onCancel: () => {
|
|
2628
|
-
src/* hotkeys */.
|
|
2629
|
-
src/* hotkeys */.
|
|
2628
|
+
src/* hotkeys */.ot.stopRecord();
|
|
2629
|
+
src/* hotkeys */.ot.unpause();
|
|
2630
2630
|
hide();
|
|
2631
2631
|
},
|
|
2632
2632
|
onSubmit: ({
|
|
@@ -2634,13 +2634,13 @@ function ViewerHeader({
|
|
|
2634
2634
|
language
|
|
2635
2635
|
}) => {
|
|
2636
2636
|
if (language.value !== currentLanguage().value) {
|
|
2637
|
-
i18n_src
|
|
2637
|
+
i18n_src/* default */.A.changeLanguage(language.value);
|
|
2638
2638
|
}
|
|
2639
2639
|
hotkeysManager.setHotkeys(hotkeyDefinitions);
|
|
2640
2640
|
hide();
|
|
2641
2641
|
},
|
|
2642
2642
|
onReset: () => hotkeysManager.restoreDefaultBindings(),
|
|
2643
|
-
hotkeysModule: src/* hotkeys */.
|
|
2643
|
+
hotkeysModule: src/* hotkeys */.ot
|
|
2644
2644
|
}
|
|
2645
2645
|
})
|
|
2646
2646
|
}];
|
|
@@ -2653,12 +2653,12 @@ function ViewerHeader({
|
|
|
2653
2653
|
}
|
|
2654
2654
|
});
|
|
2655
2655
|
}
|
|
2656
|
-
return /*#__PURE__*/react.createElement(ui_src/* Header */.
|
|
2656
|
+
return /*#__PURE__*/react.createElement(ui_src/* Header */.Y9, {
|
|
2657
2657
|
menuOptions: menuOptions,
|
|
2658
2658
|
isReturnEnabled: !!appConfig.showStudyList,
|
|
2659
2659
|
onClickReturnButton: onClickReturnButton,
|
|
2660
2660
|
WhiteLabeling: appConfig.whiteLabeling
|
|
2661
|
-
}, /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.
|
|
2661
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.tH, {
|
|
2662
2662
|
context: "Primary Toolbar"
|
|
2663
2663
|
}, /*#__PURE__*/react.createElement("div", {
|
|
2664
2664
|
className: "relative flex justify-center"
|
|
@@ -2699,7 +2699,7 @@ const SidePanelWithServices = ({
|
|
|
2699
2699
|
};
|
|
2700
2700
|
}
|
|
2701
2701
|
}, [tabs, hasBeenOpened, panelService]);
|
|
2702
|
-
return /*#__PURE__*/react.createElement(ui_src/* SidePanel */.
|
|
2702
|
+
return /*#__PURE__*/react.createElement(ui_src/* SidePanel */.wv, {
|
|
2703
2703
|
side: side,
|
|
2704
2704
|
className: className,
|
|
2705
2705
|
activeTabIndex: activeTabIndex,
|
|
@@ -2733,7 +2733,7 @@ function ViewerLayout({
|
|
|
2733
2733
|
leftPanelDefaultClosed = false,
|
|
2734
2734
|
rightPanelDefaultClosed = false
|
|
2735
2735
|
}) {
|
|
2736
|
-
const [appConfig] = (0,state/* useAppConfig */.
|
|
2736
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
2737
2737
|
const {
|
|
2738
2738
|
hangingProtocolService
|
|
2739
2739
|
} = servicesManager.services;
|
|
@@ -2785,7 +2785,7 @@ function ViewerLayout({
|
|
|
2785
2785
|
(0,react.useEffect)(() => {
|
|
2786
2786
|
const {
|
|
2787
2787
|
unsubscribe
|
|
2788
|
-
} = hangingProtocolService.subscribe(src/* HangingProtocolService */.
|
|
2788
|
+
} = hangingProtocolService.subscribe(src/* HangingProtocolService */.Qe.EVENTS.PROTOCOL_CHANGED,
|
|
2789
2789
|
// Todo: right now to set the loading indicator to false, we need to wait for the
|
|
2790
2790
|
// hangingProtocolService to finish applying the viewport matching to each viewport,
|
|
2791
2791
|
// however, this might not be the only approach to set the loading indicator to false. we need to explore this further.
|
|
@@ -2817,9 +2817,9 @@ function ViewerLayout({
|
|
|
2817
2817
|
style: {
|
|
2818
2818
|
height: 'calc(100vh - 52px'
|
|
2819
2819
|
}
|
|
2820
|
-
}, /*#__PURE__*/react.createElement(react.Fragment, null, showLoadingIndicator && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorProgress */.
|
|
2820
|
+
}, /*#__PURE__*/react.createElement(react.Fragment, null, showLoadingIndicator && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorProgress */.Jx, {
|
|
2821
2821
|
className: "h-full w-full bg-black"
|
|
2822
|
-
}), leftPanelComponents.length ? /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.
|
|
2822
|
+
}), leftPanelComponents.length ? /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.tH, {
|
|
2823
2823
|
context: "Left Panel"
|
|
2824
2824
|
}, /*#__PURE__*/react.createElement(Components_SidePanelWithServices, {
|
|
2825
2825
|
side: "left",
|
|
@@ -2830,13 +2830,13 @@ function ViewerLayout({
|
|
|
2830
2830
|
className: "flex h-full flex-1 flex-col"
|
|
2831
2831
|
}, /*#__PURE__*/react.createElement("div", {
|
|
2832
2832
|
className: "relative flex h-full flex-1 items-center justify-center overflow-hidden bg-black"
|
|
2833
|
-
}, /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.
|
|
2833
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.tH, {
|
|
2834
2834
|
context: "Grid"
|
|
2835
2835
|
}, /*#__PURE__*/react.createElement(ViewportGridComp, {
|
|
2836
2836
|
servicesManager: servicesManager,
|
|
2837
2837
|
viewportComponents: viewportComponents,
|
|
2838
2838
|
commandsManager: commandsManager
|
|
2839
|
-
})))), rightPanelComponents.length ? /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.
|
|
2839
|
+
})))), rightPanelComponents.length ? /*#__PURE__*/react.createElement(ui_src/* ErrorBoundary */.tH, {
|
|
2840
2840
|
context: "Right Panel"
|
|
2841
2841
|
}, /*#__PURE__*/react.createElement(Components_SidePanelWithServices, {
|
|
2842
2842
|
side: "right",
|
|
@@ -2850,8 +2850,8 @@ ViewerLayout.propTypes = {
|
|
|
2850
2850
|
extensionManager: prop_types_default().shape({
|
|
2851
2851
|
getModuleEntry: (prop_types_default()).func.isRequired
|
|
2852
2852
|
}).isRequired,
|
|
2853
|
-
commandsManager: prop_types_default().instanceOf(src/* CommandsManager */.
|
|
2854
|
-
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.
|
|
2853
|
+
commandsManager: prop_types_default().instanceOf(src/* CommandsManager */.Sp),
|
|
2854
|
+
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS),
|
|
2855
2855
|
// From modes
|
|
2856
2856
|
leftPanels: (prop_types_default()).array,
|
|
2857
2857
|
rightPanels: (prop_types_default()).array,
|
|
@@ -2903,7 +2903,7 @@ ViewerLayout.propTypes = {
|
|
|
2903
2903
|
const {
|
|
2904
2904
|
sortStudyInstances,
|
|
2905
2905
|
formatDate
|
|
2906
|
-
} = src
|
|
2906
|
+
} = src/* utils */.Wp;
|
|
2907
2907
|
|
|
2908
2908
|
/**
|
|
2909
2909
|
*
|
|
@@ -2921,18 +2921,18 @@ function PanelStudyBrowser({
|
|
|
2921
2921
|
displaySetService,
|
|
2922
2922
|
uiNotificationService
|
|
2923
2923
|
} = servicesManager.services;
|
|
2924
|
-
const navigate = (0,dist/* useNavigate */.
|
|
2924
|
+
const navigate = (0,dist/* useNavigate */.Zp)();
|
|
2925
2925
|
|
|
2926
2926
|
// Normally you nest the components so the tree isn't so deep, and the data
|
|
2927
2927
|
// doesn't have to have such an intense shape. This works well enough for now.
|
|
2928
2928
|
// Tabs --> Studies --> DisplaySets --> Thumbnails
|
|
2929
2929
|
const {
|
|
2930
2930
|
StudyInstanceUIDs
|
|
2931
|
-
} = (0,ui_src/* useImageViewer */.
|
|
2931
|
+
} = (0,ui_src/* useImageViewer */.Bz)();
|
|
2932
2932
|
const [{
|
|
2933
2933
|
activeViewportId,
|
|
2934
2934
|
viewports
|
|
2935
|
-
}, viewportGridService] = (0,ui_src/* useViewportGrid */.
|
|
2935
|
+
}, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
2936
2936
|
const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
|
|
2937
2937
|
const [expandedStudyInstanceUIDs, setExpandedStudyInstanceUIDs] = (0,react.useState)([...StudyInstanceUIDs]);
|
|
2938
2938
|
const [studyDisplayList, setStudyDisplayList] = (0,react.useState)([]);
|
|
@@ -3098,7 +3098,7 @@ function PanelStudyBrowser({
|
|
|
3098
3098
|
}
|
|
3099
3099
|
}
|
|
3100
3100
|
const activeDisplaySetInstanceUIDs = viewports.get(activeViewportId)?.displaySetInstanceUIDs;
|
|
3101
|
-
return /*#__PURE__*/react.createElement(ui_src/* StudyBrowser */.
|
|
3101
|
+
return /*#__PURE__*/react.createElement(ui_src/* StudyBrowser */.M4, {
|
|
3102
3102
|
tabs: tabs,
|
|
3103
3103
|
servicesManager: servicesManager,
|
|
3104
3104
|
activeTabName: activeTabName,
|
|
@@ -3339,14 +3339,14 @@ function ActionButtons({
|
|
|
3339
3339
|
}) {
|
|
3340
3340
|
const {
|
|
3341
3341
|
t
|
|
3342
|
-
} = (0,es/* useTranslation
|
|
3343
|
-
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* LegacyButtonGroup */.
|
|
3342
|
+
} = (0,es/* useTranslation */.Bd)('MeasurementTable');
|
|
3343
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* LegacyButtonGroup */.xA, {
|
|
3344
3344
|
color: "black",
|
|
3345
3345
|
size: "inherit"
|
|
3346
|
-
}, /*#__PURE__*/react.createElement(ui_src/* LegacyButton */.
|
|
3346
|
+
}, /*#__PURE__*/react.createElement(ui_src/* LegacyButton */._H, {
|
|
3347
3347
|
className: "px-2 py-2 text-base",
|
|
3348
3348
|
onClick: onExportClick
|
|
3349
|
-
}, t('Export CSV')), /*#__PURE__*/react.createElement(ui_src/* LegacyButton */.
|
|
3349
|
+
}, t('Export CSV')), /*#__PURE__*/react.createElement(ui_src/* LegacyButton */._H, {
|
|
3350
3350
|
className: "px-2 py-2 text-base",
|
|
3351
3351
|
onClick: onCreateReportClick
|
|
3352
3352
|
}, t('Create Report'))));
|
|
@@ -3361,7 +3361,7 @@ ActionButtons.defaultProps = {
|
|
|
3361
3361
|
};
|
|
3362
3362
|
/* harmony default export */ const Panels_ActionButtons = (ActionButtons);
|
|
3363
3363
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
3364
|
-
var lodash_debounce = __webpack_require__(
|
|
3364
|
+
var lodash_debounce = __webpack_require__(14771);
|
|
3365
3365
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
3366
3366
|
;// CONCATENATED MODULE: ../../../extensions/default/src/Panels/createReportDialogPrompt.tsx
|
|
3367
3367
|
|
|
@@ -3431,7 +3431,7 @@ function CreateReportDialogPrompt(uiDialogService, {
|
|
|
3431
3431
|
dialogId = uiDialogService.create({
|
|
3432
3432
|
centralize: true,
|
|
3433
3433
|
isDraggable: false,
|
|
3434
|
-
content: ui_src/* Dialog */.
|
|
3434
|
+
content: ui_src/* Dialog */.lG,
|
|
3435
3435
|
useLastPosition: false,
|
|
3436
3436
|
showOverlay: true,
|
|
3437
3437
|
contentProps: {
|
|
@@ -3445,11 +3445,11 @@ function CreateReportDialogPrompt(uiDialogService, {
|
|
|
3445
3445
|
actions: [{
|
|
3446
3446
|
id: 'cancel',
|
|
3447
3447
|
text: 'Cancel',
|
|
3448
|
-
type: ui_src/* ButtonEnums.type */.
|
|
3448
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary
|
|
3449
3449
|
}, {
|
|
3450
3450
|
id: 'save',
|
|
3451
3451
|
text: 'Save',
|
|
3452
|
-
type: ui_src/* ButtonEnums.type */.
|
|
3452
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary
|
|
3453
3453
|
}],
|
|
3454
3454
|
// TODO: Should be on button press...
|
|
3455
3455
|
onSubmit: _handleFormSubmit,
|
|
@@ -3477,7 +3477,7 @@ function CreateReportDialogPrompt(uiDialogService, {
|
|
|
3477
3477
|
};
|
|
3478
3478
|
return /*#__PURE__*/react.createElement(react.Fragment, null, dataSourcesOpts.length > 1 && window.config?.allowMultiSelectExport && /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("label", {
|
|
3479
3479
|
className: "text-[14px] leading-[1.2] text-white"
|
|
3480
|
-
}, "Data Source"), /*#__PURE__*/react.createElement(ui_src/* Select */.
|
|
3480
|
+
}, "Data Source"), /*#__PURE__*/react.createElement(ui_src/* Select */.l6, {
|
|
3481
3481
|
closeMenuOnSelect: true,
|
|
3482
3482
|
className: "border-primary-main mt-2 bg-black",
|
|
3483
3483
|
options: dataSourcesOpts,
|
|
@@ -3492,7 +3492,7 @@ function CreateReportDialogPrompt(uiDialogService, {
|
|
|
3492
3492
|
isClearable: false
|
|
3493
3493
|
})), /*#__PURE__*/react.createElement("div", {
|
|
3494
3494
|
className: "mt-3"
|
|
3495
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Input */.
|
|
3495
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Input */.pd, {
|
|
3496
3496
|
autoFocus: true,
|
|
3497
3497
|
label: "Enter the report name",
|
|
3498
3498
|
labelClassName: "text-white text-[14px] leading-[1.2]",
|
|
@@ -3538,7 +3538,7 @@ async function createReportAsync({
|
|
|
3538
3538
|
// The "Mode" route listens for DicomMetadataStore changes
|
|
3539
3539
|
// When a new instance is added, it listens and
|
|
3540
3540
|
// automatically calls makeDisplaySets
|
|
3541
|
-
src
|
|
3541
|
+
src/* DicomMetadataStore */.H8.addInstances([naturalizedReport], true);
|
|
3542
3542
|
const displaySet = displaySetService.getMostRecentDisplaySet();
|
|
3543
3543
|
const displaySetInstanceUID = displaySet.displaySetInstanceUID;
|
|
3544
3544
|
uiNotificationService.show({
|
|
@@ -3634,7 +3634,7 @@ function findSRWithSameSeriesDescription(SeriesDescription, displaySetService) {
|
|
|
3634
3634
|
|
|
3635
3635
|
const {
|
|
3636
3636
|
downloadCSVReport
|
|
3637
|
-
} = src
|
|
3637
|
+
} = src/* utils */.Wp;
|
|
3638
3638
|
function PanelMeasurementTable({
|
|
3639
3639
|
servicesManager,
|
|
3640
3640
|
commandsManager,
|
|
@@ -3642,8 +3642,8 @@ function PanelMeasurementTable({
|
|
|
3642
3642
|
}) {
|
|
3643
3643
|
const {
|
|
3644
3644
|
t
|
|
3645
|
-
} = (0,es/* useTranslation
|
|
3646
|
-
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.
|
|
3645
|
+
} = (0,es/* useTranslation */.Bd)('MeasurementTable');
|
|
3646
|
+
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
3647
3647
|
const {
|
|
3648
3648
|
activeViewportId,
|
|
3649
3649
|
viewports
|
|
@@ -3769,7 +3769,7 @@ function PanelMeasurementTable({
|
|
|
3769
3769
|
centralize: true,
|
|
3770
3770
|
isDraggable: false,
|
|
3771
3771
|
showOverlay: true,
|
|
3772
|
-
content: ui_src/* Dialog */.
|
|
3772
|
+
content: ui_src/* Dialog */.lG,
|
|
3773
3773
|
contentProps: {
|
|
3774
3774
|
title: 'Annotation',
|
|
3775
3775
|
noCloseButton: true,
|
|
@@ -3797,7 +3797,7 @@ function PanelMeasurementTable({
|
|
|
3797
3797
|
});
|
|
3798
3798
|
}
|
|
3799
3799
|
};
|
|
3800
|
-
return /*#__PURE__*/react.createElement(ui_src/* Input */.
|
|
3800
|
+
return /*#__PURE__*/react.createElement(ui_src/* Input */.pd, {
|
|
3801
3801
|
label: "Enter your annotation",
|
|
3802
3802
|
labelClassName: "text-white text-[14px] leading-[1.2]",
|
|
3803
3803
|
autoFocus: true,
|
|
@@ -3812,11 +3812,11 @@ function PanelMeasurementTable({
|
|
|
3812
3812
|
actions: [{
|
|
3813
3813
|
id: 'cancel',
|
|
3814
3814
|
text: 'Cancel',
|
|
3815
|
-
type: ui_src/* ButtonEnums.type */.
|
|
3815
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary
|
|
3816
3816
|
}, {
|
|
3817
3817
|
id: 'save',
|
|
3818
3818
|
text: 'Save',
|
|
3819
|
-
type: ui_src/* ButtonEnums.type */.
|
|
3819
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary
|
|
3820
3820
|
}],
|
|
3821
3821
|
onSubmit: onSubmitHandler
|
|
3822
3822
|
}
|
|
@@ -3837,7 +3837,7 @@ function PanelMeasurementTable({
|
|
|
3837
3837
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
3838
3838
|
className: "ohif-scrollbar overflow-y-auto overflow-x-hidden",
|
|
3839
3839
|
"data-cy": 'measurements-panel'
|
|
3840
|
-
}, /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.
|
|
3840
|
+
}, /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.V, {
|
|
3841
3841
|
title: t("Measurements"),
|
|
3842
3842
|
servicesManager: servicesManager,
|
|
3843
3843
|
data: displayMeasurements,
|
|
@@ -3852,7 +3852,7 @@ function PanelMeasurementTable({
|
|
|
3852
3852
|
})));
|
|
3853
3853
|
}
|
|
3854
3854
|
PanelMeasurementTable.propTypes = {
|
|
3855
|
-
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.
|
|
3855
|
+
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS).isRequired
|
|
3856
3856
|
};
|
|
3857
3857
|
function _getMappedMeasurements(measurementService) {
|
|
3858
3858
|
const measurements = measurementService.getMeasurements();
|
|
@@ -3910,7 +3910,7 @@ function _mapMeasurementToDisplay(measurement, index, types) {
|
|
|
3910
3910
|
|
|
3911
3911
|
|
|
3912
3912
|
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
3913
|
-
var i18next = __webpack_require__(
|
|
3913
|
+
var i18next = __webpack_require__(92344);
|
|
3914
3914
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getPanelModule.tsx
|
|
3915
3915
|
|
|
3916
3916
|
|
|
@@ -3937,7 +3937,7 @@ function getPanelModule({
|
|
|
3937
3937
|
name: 'seriesList',
|
|
3938
3938
|
iconName: 'tab-studies',
|
|
3939
3939
|
iconLabel: 'Studies',
|
|
3940
|
-
label: i18next/* default */.
|
|
3940
|
+
label: i18next/* default */.A.t('SidePanel:Studies'),
|
|
3941
3941
|
component: Panels_WrappedPanelStudyBrowser.bind(null, {
|
|
3942
3942
|
commandsManager,
|
|
3943
3943
|
extensionManager,
|
|
@@ -3947,28 +3947,28 @@ function getPanelModule({
|
|
|
3947
3947
|
name: 'measure',
|
|
3948
3948
|
iconName: 'tab-linear',
|
|
3949
3949
|
iconLabel: 'Measure',
|
|
3950
|
-
label: i18next/* default */.
|
|
3951
|
-
secondaryLabel: i18next/* default */.
|
|
3950
|
+
label: i18next/* default */.A.t('SidePanel:Measurements'),
|
|
3951
|
+
secondaryLabel: i18next/* default */.A.t('SidePanel:Measurements'),
|
|
3952
3952
|
component: wrappedMeasurementPanel
|
|
3953
3953
|
}];
|
|
3954
3954
|
}
|
|
3955
3955
|
/* harmony default export */ const src_getPanelModule = (getPanelModule);
|
|
3956
3956
|
// EXTERNAL MODULE: ../../core/src/utils/isImage.js
|
|
3957
|
-
var isImage = __webpack_require__(
|
|
3957
|
+
var isImage = __webpack_require__(8094);
|
|
3958
3958
|
// EXTERNAL MODULE: ../../core/src/utils/sopClassDictionary.js
|
|
3959
|
-
var sopClassDictionary = __webpack_require__(
|
|
3959
|
+
var sopClassDictionary = __webpack_require__(48085);
|
|
3960
3960
|
// EXTERNAL MODULE: ../../core/src/classes/ImageSet.ts
|
|
3961
|
-
var ImageSet = __webpack_require__(
|
|
3961
|
+
var ImageSet = __webpack_require__(14169);
|
|
3962
3962
|
// EXTERNAL MODULE: ../../core/src/utils/isDisplaySetReconstructable.js
|
|
3963
|
-
var isDisplaySetReconstructable = __webpack_require__(
|
|
3963
|
+
var isDisplaySetReconstructable = __webpack_require__(13835);
|
|
3964
3964
|
;// CONCATENATED MODULE: ../../../extensions/default/package.json
|
|
3965
|
-
const package_namespaceObject = JSON.parse('{"
|
|
3965
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-default"}');
|
|
3966
3966
|
;// CONCATENATED MODULE: ../../../extensions/default/src/id.js
|
|
3967
3967
|
|
|
3968
|
-
const id = package_namespaceObject.
|
|
3968
|
+
const id = package_namespaceObject.UU;
|
|
3969
3969
|
|
|
3970
3970
|
// EXTERNAL MODULE: ../../core/src/utils/sortInstancesByPosition.ts
|
|
3971
|
-
var sortInstancesByPosition = __webpack_require__(
|
|
3971
|
+
var sortInstancesByPosition = __webpack_require__(44563);
|
|
3972
3972
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/checkMultiframe.ts
|
|
3973
3973
|
|
|
3974
3974
|
|
|
@@ -3979,18 +3979,18 @@ var sortInstancesByPosition = __webpack_require__(87425);
|
|
|
3979
3979
|
* @param {*} warnings
|
|
3980
3980
|
*/
|
|
3981
3981
|
function checkMultiFrame(multiFrameInstance, messages) {
|
|
3982
|
-
if (!(0,isDisplaySetReconstructable/* hasPixelMeasurements */.
|
|
3983
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
3982
|
+
if (!(0,isDisplaySetReconstructable/* hasPixelMeasurements */.Yt)(multiFrameInstance)) {
|
|
3983
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.MULTIFRAME_NO_PIXEL_MEASUREMENTS);
|
|
3984
3984
|
}
|
|
3985
|
-
if (!(0,isDisplaySetReconstructable/* hasOrientation */.
|
|
3986
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
3985
|
+
if (!(0,isDisplaySetReconstructable/* hasOrientation */.VX)(multiFrameInstance)) {
|
|
3986
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.MULTIFRAME_NO_ORIENTATION);
|
|
3987
3987
|
}
|
|
3988
|
-
if (!(0,isDisplaySetReconstructable/* hasPosition */.
|
|
3989
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
3988
|
+
if (!(0,isDisplaySetReconstructable/* hasPosition */.sL)(multiFrameInstance)) {
|
|
3989
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.MULTIFRAME_NO_POSITION_INFORMATION);
|
|
3990
3990
|
}
|
|
3991
3991
|
}
|
|
3992
3992
|
// EXTERNAL MODULE: ../../core/src/utils/toNumber.js
|
|
3993
|
-
var toNumber = __webpack_require__(
|
|
3993
|
+
var toNumber = __webpack_require__(58099);
|
|
3994
3994
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/areAllImageDimensionsEqual.ts
|
|
3995
3995
|
|
|
3996
3996
|
|
|
@@ -4004,8 +4004,8 @@ function areAllImageDimensionsEqual(instances) {
|
|
|
4004
4004
|
return false;
|
|
4005
4005
|
}
|
|
4006
4006
|
const firstImage = instances[0];
|
|
4007
|
-
const firstImageRows = (0,toNumber/* default */.
|
|
4008
|
-
const firstImageColumns = (0,toNumber/* default */.
|
|
4007
|
+
const firstImageRows = (0,toNumber/* default */.A)(firstImage.Rows);
|
|
4008
|
+
const firstImageColumns = (0,toNumber/* default */.A)(firstImage.Columns);
|
|
4009
4009
|
for (let i = 1; i < instances.length; i++) {
|
|
4010
4010
|
const instance = instances[i];
|
|
4011
4011
|
const {
|
|
@@ -4031,7 +4031,7 @@ function areAllImageComponentsEqual(instances) {
|
|
|
4031
4031
|
return false;
|
|
4032
4032
|
}
|
|
4033
4033
|
const firstImage = instances[0];
|
|
4034
|
-
const firstImageSamplesPerPixel = (0,toNumber/* default */.
|
|
4034
|
+
const firstImageSamplesPerPixel = (0,toNumber/* default */.A)(firstImage.SamplesPerPixel);
|
|
4035
4035
|
for (let i = 1; i < instances.length; i++) {
|
|
4036
4036
|
const instance = instances[i];
|
|
4037
4037
|
const {
|
|
@@ -4057,18 +4057,18 @@ function areAllImageOrientationsEqual(instances) {
|
|
|
4057
4057
|
return false;
|
|
4058
4058
|
}
|
|
4059
4059
|
const firstImage = instances[0];
|
|
4060
|
-
const firstImageOrientationPatient = (0,toNumber/* default */.
|
|
4060
|
+
const firstImageOrientationPatient = (0,toNumber/* default */.A)(firstImage.ImageOrientationPatient);
|
|
4061
4061
|
for (let i = 1; i < instances.length; i++) {
|
|
4062
4062
|
const instance = instances[i];
|
|
4063
|
-
const imageOrientationPatient = (0,toNumber/* default */.
|
|
4064
|
-
if (!(0,isDisplaySetReconstructable/* _isSameOrientation */.
|
|
4063
|
+
const imageOrientationPatient = (0,toNumber/* default */.A)(instance.ImageOrientationPatient);
|
|
4064
|
+
if (!(0,isDisplaySetReconstructable/* _isSameOrientation */.sW)(imageOrientationPatient, firstImageOrientationPatient)) {
|
|
4065
4065
|
return false;
|
|
4066
4066
|
}
|
|
4067
4067
|
}
|
|
4068
4068
|
return true;
|
|
4069
4069
|
}
|
|
4070
4070
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 10 modules
|
|
4071
|
-
var esm = __webpack_require__(
|
|
4071
|
+
var esm = __webpack_require__(83636);
|
|
4072
4072
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/calculateScanAxisNormal.ts
|
|
4073
4073
|
|
|
4074
4074
|
|
|
@@ -4078,9 +4078,9 @@ var esm = __webpack_require__(45451);
|
|
|
4078
4078
|
* @returns
|
|
4079
4079
|
*/
|
|
4080
4080
|
function calculateScanAxisNormal(imageOrientation) {
|
|
4081
|
-
const rowCosineVec = esm/* vec3.fromValues */.
|
|
4082
|
-
const colCosineVec = esm/* vec3.fromValues */.
|
|
4083
|
-
return esm/* vec3.cross */.
|
|
4081
|
+
const rowCosineVec = esm/* vec3.fromValues */.eR.fromValues(imageOrientation[0], imageOrientation[1], imageOrientation[2]);
|
|
4082
|
+
const colCosineVec = esm/* vec3.fromValues */.eR.fromValues(imageOrientation[3], imageOrientation[4], imageOrientation[5]);
|
|
4083
|
+
return esm/* vec3.cross */.eR.cross(esm/* vec3.create */.eR.create(), rowCosineVec, colCosineVec);
|
|
4084
4084
|
}
|
|
4085
4085
|
;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/areAllImagePositionsEqual.ts
|
|
4086
4086
|
|
|
@@ -4099,8 +4099,8 @@ function calculateScanAxisNormal(imageOrientation) {
|
|
|
4099
4099
|
function _checkSeriesPositionShift(previousPosition, actualPosition, scanAxisNormal, averageSpacingBetweenFrames) {
|
|
4100
4100
|
// predicted position should be the previous position added by the multiplication
|
|
4101
4101
|
// of the scanAxisNormal and the average spacing between frames
|
|
4102
|
-
const predictedPosition = esm/* vec3.scaleAndAdd */.
|
|
4103
|
-
return esm/* vec3.distance */.
|
|
4102
|
+
const predictedPosition = esm/* vec3.scaleAndAdd */.eR.scaleAndAdd(esm/* vec3.create */.eR.create(), previousPosition, scanAxisNormal, averageSpacingBetweenFrames);
|
|
4103
|
+
return esm/* vec3.distance */.eR.distance(actualPosition, predictedPosition) > averageSpacingBetweenFrames;
|
|
4104
4104
|
}
|
|
4105
4105
|
|
|
4106
4106
|
/**
|
|
@@ -4112,18 +4112,18 @@ function areAllImagePositionsEqual(instances) {
|
|
|
4112
4112
|
if (!instances?.length) {
|
|
4113
4113
|
return false;
|
|
4114
4114
|
}
|
|
4115
|
-
const firstImageOrientationPatient = (0,toNumber/* default */.
|
|
4115
|
+
const firstImageOrientationPatient = (0,toNumber/* default */.A)(instances[0].ImageOrientationPatient);
|
|
4116
4116
|
if (!firstImageOrientationPatient) {
|
|
4117
4117
|
return false;
|
|
4118
4118
|
}
|
|
4119
4119
|
const scanAxisNormal = calculateScanAxisNormal(firstImageOrientationPatient);
|
|
4120
|
-
const firstImagePositionPatient = (0,toNumber/* default */.
|
|
4121
|
-
const lastIpp = (0,toNumber/* default */.
|
|
4122
|
-
const averageSpacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.
|
|
4120
|
+
const firstImagePositionPatient = (0,toNumber/* default */.A)(instances[0].ImagePositionPatient);
|
|
4121
|
+
const lastIpp = (0,toNumber/* default */.A)(instances[instances.length - 1].ImagePositionPatient);
|
|
4122
|
+
const averageSpacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.jj)(firstImagePositionPatient, lastIpp) / (instances.length - 1);
|
|
4123
4123
|
let previousImagePositionPatient = firstImagePositionPatient;
|
|
4124
4124
|
for (let i = 1; i < instances.length; i++) {
|
|
4125
4125
|
const instance = instances[i];
|
|
4126
|
-
const imagePositionPatient = (0,toNumber/* default */.
|
|
4126
|
+
const imagePositionPatient = (0,toNumber/* default */.A)(instance.ImagePositionPatient);
|
|
4127
4127
|
if (_checkSeriesPositionShift(previousImagePositionPatient, imagePositionPatient, scanAxisNormal, averageSpacingBetweenFrames)) {
|
|
4128
4128
|
return false;
|
|
4129
4129
|
}
|
|
@@ -4144,29 +4144,29 @@ function areAllImageSpacingEqual(instances, messages) {
|
|
|
4144
4144
|
if (!instances?.length) {
|
|
4145
4145
|
return;
|
|
4146
4146
|
}
|
|
4147
|
-
const firstImagePositionPatient = (0,toNumber/* default */.
|
|
4147
|
+
const firstImagePositionPatient = (0,toNumber/* default */.A)(instances[0].ImagePositionPatient);
|
|
4148
4148
|
if (!firstImagePositionPatient) {
|
|
4149
4149
|
return;
|
|
4150
4150
|
}
|
|
4151
|
-
const lastIpp = (0,toNumber/* default */.
|
|
4152
|
-
const averageSpacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.
|
|
4151
|
+
const lastIpp = (0,toNumber/* default */.A)(instances[instances.length - 1].ImagePositionPatient);
|
|
4152
|
+
const averageSpacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.jj)(firstImagePositionPatient, lastIpp) / (instances.length - 1);
|
|
4153
4153
|
let previousImagePositionPatient = firstImagePositionPatient;
|
|
4154
4154
|
const issuesFound = [];
|
|
4155
4155
|
for (let i = 1; i < instances.length; i++) {
|
|
4156
4156
|
const instance = instances[i];
|
|
4157
|
-
const imagePositionPatient = (0,toNumber/* default */.
|
|
4158
|
-
const spacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.
|
|
4159
|
-
const spacingIssue = (0,isDisplaySetReconstructable/* _getSpacingIssue */.
|
|
4157
|
+
const imagePositionPatient = (0,toNumber/* default */.A)(instance.ImagePositionPatient);
|
|
4158
|
+
const spacingBetweenFrames = (0,isDisplaySetReconstructable/* _getPerpendicularDistance */.jj)(imagePositionPatient, previousImagePositionPatient);
|
|
4159
|
+
const spacingIssue = (0,isDisplaySetReconstructable/* _getSpacingIssue */.Op)(spacingBetweenFrames, averageSpacingBetweenFrames);
|
|
4160
4160
|
if (spacingIssue) {
|
|
4161
4161
|
const issue = spacingIssue.issue;
|
|
4162
4162
|
|
|
4163
4163
|
// avoid multiple warning of the same thing
|
|
4164
4164
|
if (!issuesFound.includes(issue)) {
|
|
4165
4165
|
issuesFound.push(issue);
|
|
4166
|
-
if (issue === isDisplaySetReconstructable/* reconstructionIssues */.
|
|
4167
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4168
|
-
} else if (issue === isDisplaySetReconstructable/* reconstructionIssues */.
|
|
4169
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4166
|
+
if (issue === isDisplaySetReconstructable/* reconstructionIssues */.JG.MISSING_FRAMES) {
|
|
4167
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.MISSING_FRAMES);
|
|
4168
|
+
} else if (issue === isDisplaySetReconstructable/* reconstructionIssues */.JG.IRREGULAR_SPACING) {
|
|
4169
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.IRREGULAR_SPACING);
|
|
4170
4170
|
}
|
|
4171
4171
|
}
|
|
4172
4172
|
// we just want to find issues not how many
|
|
@@ -4193,16 +4193,16 @@ function areAllImageSpacingEqual(instances, messages) {
|
|
|
4193
4193
|
function checkSingleFrames(instances, messages) {
|
|
4194
4194
|
if (instances.length > 2) {
|
|
4195
4195
|
if (!areAllImageDimensionsEqual(instances)) {
|
|
4196
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4196
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.INCONSISTENT_DIMENSIONS);
|
|
4197
4197
|
}
|
|
4198
4198
|
if (!areAllImageComponentsEqual(instances)) {
|
|
4199
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4199
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.INCONSISTENT_COMPONENTS);
|
|
4200
4200
|
}
|
|
4201
4201
|
if (!areAllImageOrientationsEqual(instances)) {
|
|
4202
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4202
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.INCONSISTENT_ORIENTATIONS);
|
|
4203
4203
|
}
|
|
4204
4204
|
if (!areAllImagePositionsEqual(instances)) {
|
|
4205
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4205
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.INCONSISTENT_POSITION_INFORMATION);
|
|
4206
4206
|
}
|
|
4207
4207
|
areAllImageSpacingEqual(instances, messages);
|
|
4208
4208
|
}
|
|
@@ -4219,9 +4219,9 @@ function checkSingleFrames(instances, messages) {
|
|
|
4219
4219
|
* @param {Object[]} instances An array of `OHIFInstanceMetadata` objects.
|
|
4220
4220
|
*/
|
|
4221
4221
|
function getDisplaySetMessages(instances, isReconstructable) {
|
|
4222
|
-
const messages = new src/* DisplaySetMessageList */.
|
|
4222
|
+
const messages = new src/* DisplaySetMessageList */.WZ();
|
|
4223
4223
|
if (!instances.length) {
|
|
4224
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4224
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.NO_VALID_INSTANCES);
|
|
4225
4225
|
return;
|
|
4226
4226
|
}
|
|
4227
4227
|
const firstInstance = instances[0];
|
|
@@ -4234,18 +4234,18 @@ function getDisplaySetMessages(instances, isReconstructable) {
|
|
|
4234
4234
|
if (ImageType?.includes('LOCALIZER')) {
|
|
4235
4235
|
return messages;
|
|
4236
4236
|
}
|
|
4237
|
-
if (!isDisplaySetReconstructable/* constructableModalities */.
|
|
4237
|
+
if (!isDisplaySetReconstructable/* constructableModalities */.Hf.includes(Modality)) {
|
|
4238
4238
|
return messages;
|
|
4239
4239
|
}
|
|
4240
4240
|
const isMultiframe = NumberOfFrames > 1;
|
|
4241
4241
|
// Can't reconstruct if all instances don't have the ImagePositionPatient.
|
|
4242
4242
|
if (!isMultiframe && !instances.every(instance => instance.ImagePositionPatient)) {
|
|
4243
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4243
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.NO_POSITION_INFORMATION);
|
|
4244
4244
|
}
|
|
4245
|
-
const sortedInstances = (0,sortInstancesByPosition/* default */.
|
|
4245
|
+
const sortedInstances = (0,sortInstancesByPosition/* default */.A)(instances);
|
|
4246
4246
|
isMultiframe ? checkMultiFrame(sortedInstances[0], messages) : checkSingleFrames(sortedInstances, messages);
|
|
4247
4247
|
if (!isReconstructable) {
|
|
4248
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4248
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.NOT_RECONSTRUCTABLE);
|
|
4249
4249
|
}
|
|
4250
4250
|
return messages;
|
|
4251
4251
|
}
|
|
@@ -4256,9 +4256,9 @@ function getDisplaySetMessages(instances, isReconstructable) {
|
|
|
4256
4256
|
* Default handler for a instance list with an unsupported sopClassUID
|
|
4257
4257
|
*/
|
|
4258
4258
|
function getDisplaySetsFromUnsupportedSeries(instances) {
|
|
4259
|
-
const imageSet = new ImageSet/* default */.
|
|
4260
|
-
const messages = new src/* DisplaySetMessageList */.
|
|
4261
|
-
messages.addMessage(src/* DisplaySetMessage */.
|
|
4259
|
+
const imageSet = new ImageSet/* default */.A(instances);
|
|
4260
|
+
const messages = new src/* DisplaySetMessageList */.WZ();
|
|
4261
|
+
messages.addMessage(src/* DisplaySetMessage */.Ob.CODES.UNSUPPORTED_DISPLAYSET);
|
|
4262
4262
|
const instance = instances[0];
|
|
4263
4263
|
imageSet.setAttributes({
|
|
4264
4264
|
displaySetInstanceUID: imageSet.uid,
|
|
@@ -4294,11 +4294,11 @@ const isMultiFrame = instance => {
|
|
|
4294
4294
|
};
|
|
4295
4295
|
const makeDisplaySet = instances => {
|
|
4296
4296
|
const instance = instances[0];
|
|
4297
|
-
const imageSet = new ImageSet/* default */.
|
|
4297
|
+
const imageSet = new ImageSet/* default */.A(instances);
|
|
4298
4298
|
const {
|
|
4299
4299
|
value: isReconstructable,
|
|
4300
4300
|
averageSpacingBetweenFrames
|
|
4301
|
-
} = (0,isDisplaySetReconstructable/* default */.
|
|
4301
|
+
} = (0,isDisplaySetReconstructable/* default */.Ay)(instances);
|
|
4302
4302
|
// set appropriate attributes to image set...
|
|
4303
4303
|
const messages = getDisplaySetMessages(instances, isReconstructable);
|
|
4304
4304
|
imageSet.setAttributes({
|
|
@@ -4383,7 +4383,7 @@ function getDisplaySetsFromSeries(instances) {
|
|
|
4383
4383
|
const stackableInstances = [];
|
|
4384
4384
|
instances.forEach(instance => {
|
|
4385
4385
|
// All imaging modalities must have a valid value for sopClassUid (x00080016) or rows (x00280010)
|
|
4386
|
-
if (!(0,isImage/* isImage */.
|
|
4386
|
+
if (!(0,isImage/* isImage */.w)(instance.SOPClassUID) && !instance.Rows) {
|
|
4387
4387
|
return;
|
|
4388
4388
|
}
|
|
4389
4389
|
let displaySet;
|
|
@@ -4419,7 +4419,7 @@ function getDisplaySetsFromSeries(instances) {
|
|
|
4419
4419
|
}
|
|
4420
4420
|
return displaySets;
|
|
4421
4421
|
}
|
|
4422
|
-
const sopClassUids = [sopClassDictionary/* default */.
|
|
4422
|
+
const sopClassUids = [sopClassDictionary/* default */.A.ComputedRadiographyImageStorage, sopClassDictionary/* default */.A.DigitalXRayImageStorageForPresentation, sopClassDictionary/* default */.A.DigitalXRayImageStorageForProcessing, sopClassDictionary/* default */.A.DigitalMammographyXRayImageStorageForPresentation, sopClassDictionary/* default */.A.DigitalMammographyXRayImageStorageForProcessing, sopClassDictionary/* default */.A.DigitalIntraOralXRayImageStorageForPresentation, sopClassDictionary/* default */.A.DigitalIntraOralXRayImageStorageForProcessing, sopClassDictionary/* default */.A.CTImageStorage, sopClassDictionary/* default */.A.EnhancedCTImageStorage, sopClassDictionary/* default */.A.LegacyConvertedEnhancedCTImageStorage, sopClassDictionary/* default */.A.UltrasoundMultiframeImageStorage, sopClassDictionary/* default */.A.MRImageStorage, sopClassDictionary/* default */.A.EnhancedMRImageStorage, sopClassDictionary/* default */.A.EnhancedMRColorImageStorage, sopClassDictionary/* default */.A.LegacyConvertedEnhancedMRImageStorage, sopClassDictionary/* default */.A.UltrasoundImageStorage, sopClassDictionary/* default */.A.UltrasoundImageStorageRET, sopClassDictionary/* default */.A.SecondaryCaptureImageStorage, sopClassDictionary/* default */.A.MultiframeSingleBitSecondaryCaptureImageStorage, sopClassDictionary/* default */.A.MultiframeGrayscaleByteSecondaryCaptureImageStorage, sopClassDictionary/* default */.A.MultiframeGrayscaleWordSecondaryCaptureImageStorage, sopClassDictionary/* default */.A.MultiframeTrueColorSecondaryCaptureImageStorage, sopClassDictionary/* default */.A.XRayAngiographicImageStorage, sopClassDictionary/* default */.A.EnhancedXAImageStorage, sopClassDictionary/* default */.A.XRayRadiofluoroscopicImageStorage, sopClassDictionary/* default */.A.EnhancedXRFImageStorage, sopClassDictionary/* default */.A.XRay3DAngiographicImageStorage, sopClassDictionary/* default */.A.XRay3DCraniofacialImageStorage, sopClassDictionary/* default */.A.BreastTomosynthesisImageStorage, sopClassDictionary/* default */.A.BreastProjectionXRayImageStorageForPresentation, sopClassDictionary/* default */.A.BreastProjectionXRayImageStorageForProcessing, sopClassDictionary/* default */.A.IntravascularOpticalCoherenceTomographyImageStorageForPresentation, sopClassDictionary/* default */.A.IntravascularOpticalCoherenceTomographyImageStorageForProcessing, sopClassDictionary/* default */.A.NuclearMedicineImageStorage, sopClassDictionary/* default */.A.VLEndoscopicImageStorage, sopClassDictionary/* default */.A.VideoEndoscopicImageStorage, sopClassDictionary/* default */.A.VLMicroscopicImageStorage, sopClassDictionary/* default */.A.VideoMicroscopicImageStorage, sopClassDictionary/* default */.A.VLSlideCoordinatesMicroscopicImageStorage, sopClassDictionary/* default */.A.VLPhotographicImageStorage, sopClassDictionary/* default */.A.VideoPhotographicImageStorage, sopClassDictionary/* default */.A.OphthalmicPhotography8BitImageStorage, sopClassDictionary/* default */.A.OphthalmicPhotography16BitImageStorage, sopClassDictionary/* default */.A.OphthalmicTomographyImageStorage, sopClassDictionary/* default */.A.VLWholeSlideMicroscopyImageStorage, sopClassDictionary/* default */.A.PositronEmissionTomographyImageStorage, sopClassDictionary/* default */.A.EnhancedPETImageStorage, sopClassDictionary/* default */.A.LegacyConvertedEnhancedPETImageStorage, sopClassDictionary/* default */.A.RTImageStorage, sopClassDictionary/* default */.A.EnhancedUSVolumeStorage];
|
|
4423
4423
|
function getSopClassHandlerModule() {
|
|
4424
4424
|
return [{
|
|
4425
4425
|
name: sopClassHandlerName,
|
|
@@ -4488,8 +4488,8 @@ function LayoutSelector({
|
|
|
4488
4488
|
};
|
|
4489
4489
|
}, [isOpen]);
|
|
4490
4490
|
const onInteractionHandler = () => setIsOpen(!isOpen);
|
|
4491
|
-
const DropdownContent = isOpen ? ui_src/* LayoutSelector */.
|
|
4492
|
-
return /*#__PURE__*/react.createElement(ui_src/* ToolbarButton */.
|
|
4491
|
+
const DropdownContent = isOpen ? ui_src/* LayoutSelector */.sG : null;
|
|
4492
|
+
return /*#__PURE__*/react.createElement(ui_src/* ToolbarButton */.IB, {
|
|
4493
4493
|
id: "Layout",
|
|
4494
4494
|
label: "Grid Layout",
|
|
4495
4495
|
icon: "tool-layout",
|
|
@@ -4509,7 +4509,7 @@ LayoutSelector.propTypes = {
|
|
|
4509
4509
|
rows: (prop_types_default()).number,
|
|
4510
4510
|
columns: (prop_types_default()).number,
|
|
4511
4511
|
onLayoutChange: (prop_types_default()).func,
|
|
4512
|
-
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.
|
|
4512
|
+
servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS)
|
|
4513
4513
|
};
|
|
4514
4514
|
LayoutSelector.defaultProps = {
|
|
4515
4515
|
rows: 3,
|
|
@@ -4581,7 +4581,7 @@ function ToolbarSplitButtonWithServices({
|
|
|
4581
4581
|
} = buttonsState;
|
|
4582
4582
|
const isPrimaryToggle = state.primary.type === 'toggle';
|
|
4583
4583
|
const isPrimaryActive = state.primary.type === 'tool' && primaryToolId === state.primary.id || isPrimaryToggle && toggles[state.primary.id] === true;
|
|
4584
|
-
const PrimaryButtonComponent = toolbarService?.getButtonComponentForUIType(state.primary.uiType) ?? ui_src/* ToolbarButton */.
|
|
4584
|
+
const PrimaryButtonComponent = toolbarService?.getButtonComponentForUIType(state.primary.uiType) ?? ui_src/* ToolbarButton */.IB;
|
|
4585
4585
|
(0,react.useEffect)(() => {
|
|
4586
4586
|
const {
|
|
4587
4587
|
unsubscribe
|
|
@@ -4618,7 +4618,7 @@ function ToolbarSplitButtonWithServices({
|
|
|
4618
4618
|
className: classnames_default()('hover:bg-primary-dark flex h-8 w-full flex-row items-center p-3', 'whitespace-pre text-base', isActive && 'bg-primary-dark', isActive ? 'text-[#348CFD]' : 'text-common-bright hover:bg-primary-dark hover:text-primary-light')
|
|
4619
4619
|
}, icon && /*#__PURE__*/react.createElement("span", {
|
|
4620
4620
|
className: "mr-4"
|
|
4621
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4621
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4622
4622
|
name: icon,
|
|
4623
4623
|
className: "h-5 w-5"
|
|
4624
4624
|
})), /*#__PURE__*/react.createElement("span", {
|
|
@@ -4626,7 +4626,7 @@ function ToolbarSplitButtonWithServices({
|
|
|
4626
4626
|
}, t(label)));
|
|
4627
4627
|
};
|
|
4628
4628
|
const listItemRenderer = renderer || DefaultListItemRenderer;
|
|
4629
|
-
return /*#__PURE__*/react.createElement(ui_src/* SplitButton */.
|
|
4629
|
+
return /*#__PURE__*/react.createElement(ui_src/* SplitButton */.fk, {
|
|
4630
4630
|
isRadio: isRadio,
|
|
4631
4631
|
isAction: isAction,
|
|
4632
4632
|
primary: state.primary,
|
|
@@ -4715,7 +4715,7 @@ function ToolbarButtonWithServices({
|
|
|
4715
4715
|
unsubscribe();
|
|
4716
4716
|
};
|
|
4717
4717
|
}, [toolbarService]);
|
|
4718
|
-
return /*#__PURE__*/react.createElement(ui_src/* ToolbarButton */.
|
|
4718
|
+
return /*#__PURE__*/react.createElement(ui_src/* ToolbarButton */.IB, ToolbarButtonWithServices_extends({
|
|
4719
4719
|
commands: commands,
|
|
4720
4720
|
id: id,
|
|
4721
4721
|
type: type,
|
|
@@ -4946,9 +4946,9 @@ function adaptItem(item, subProps) {
|
|
|
4946
4946
|
return newItem;
|
|
4947
4947
|
}
|
|
4948
4948
|
// EXTERNAL MODULE: ../../ui/src/components/ContextMenu/ContextMenu.tsx
|
|
4949
|
-
var ContextMenu = __webpack_require__(
|
|
4949
|
+
var ContextMenu = __webpack_require__(59852);
|
|
4950
4950
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 454 modules
|
|
4951
|
-
var dist_esm = __webpack_require__(
|
|
4951
|
+
var dist_esm = __webpack_require__(28649);
|
|
4952
4952
|
;// CONCATENATED MODULE: ../../../extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx
|
|
4953
4953
|
var _class;
|
|
4954
4954
|
|
|
@@ -5020,7 +5020,7 @@ class ContextMenuController {
|
|
|
5020
5020
|
preventCutOf: true,
|
|
5021
5021
|
defaultPosition: ContextMenuController._getDefaultPosition(defaultPointsPosition, event?.detail, viewportElement),
|
|
5022
5022
|
event,
|
|
5023
|
-
content: ContextMenu/* default */.
|
|
5023
|
+
content: ContextMenu/* default */.A,
|
|
5024
5024
|
// This naming is part of the uiDialogService convention
|
|
5025
5025
|
// Clicking outside simply closes the dialog box.
|
|
5026
5026
|
onClickOutside: () => this.services.uiDialogService.dismiss({
|
|
@@ -5165,10 +5165,10 @@ const defaultContextMenu = {
|
|
|
5165
5165
|
|
|
5166
5166
|
|
|
5167
5167
|
// EXTERNAL MODULE: ../../../node_modules/moment/moment.js
|
|
5168
|
-
var moment = __webpack_require__(
|
|
5168
|
+
var moment = __webpack_require__(8291);
|
|
5169
5169
|
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
5170
5170
|
// EXTERNAL MODULE: ../../../node_modules/react-window/dist/index.esm.js
|
|
5171
|
-
var index_esm = __webpack_require__(
|
|
5171
|
+
var index_esm = __webpack_require__(6943);
|
|
5172
5172
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomTagBrowser/DicomTagTable.tsx
|
|
5173
5173
|
|
|
5174
5174
|
|
|
@@ -5341,7 +5341,7 @@ function DicomTagTable({
|
|
|
5341
5341
|
style: {
|
|
5342
5342
|
height: '32rem'
|
|
5343
5343
|
}
|
|
5344
|
-
}, isHeaderRendered() && /*#__PURE__*/react.createElement(index_esm/* VariableSizeList */.
|
|
5344
|
+
}, isHeaderRendered() && /*#__PURE__*/react.createElement(index_esm/* VariableSizeList */._m, {
|
|
5345
5345
|
ref: listRef,
|
|
5346
5346
|
height: 500,
|
|
5347
5347
|
itemCount: rows.length,
|
|
@@ -5365,10 +5365,10 @@ function DicomTagTable({
|
|
|
5365
5365
|
|
|
5366
5366
|
const {
|
|
5367
5367
|
ImageSet: DicomTagBrowser_ImageSet
|
|
5368
|
-
} = src
|
|
5368
|
+
} = src/* classes */.Ly;
|
|
5369
5369
|
const {
|
|
5370
5370
|
DicomMetaDictionary: DicomTagBrowser_DicomMetaDictionary
|
|
5371
|
-
} = dcmjs_es
|
|
5371
|
+
} = dcmjs_es/* default.data */.Ay.data;
|
|
5372
5372
|
const {
|
|
5373
5373
|
nameMap
|
|
5374
5374
|
} = DicomTagBrowser_DicomMetaDictionary;
|
|
@@ -5458,12 +5458,12 @@ const DicomTagBrowser = ({
|
|
|
5458
5458
|
className: "mb-6 flex flex-row items-center pl-1"
|
|
5459
5459
|
}, /*#__PURE__*/react.createElement("div", {
|
|
5460
5460
|
className: "flex w-1/2 flex-row items-center"
|
|
5461
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Typography */.
|
|
5461
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Typography */.o5, {
|
|
5462
5462
|
variant: "subtitle",
|
|
5463
5463
|
className: "mr-4"
|
|
5464
5464
|
}, "Series"), /*#__PURE__*/react.createElement("div", {
|
|
5465
5465
|
className: "mr-8 grow"
|
|
5466
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Select */.
|
|
5466
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Select */.l6, {
|
|
5467
5467
|
id: "display-set-selector",
|
|
5468
5468
|
isClearable: false,
|
|
5469
5469
|
onChange: onSelectChange,
|
|
@@ -5472,12 +5472,12 @@ const DicomTagBrowser = ({
|
|
|
5472
5472
|
className: "text-white"
|
|
5473
5473
|
}))), /*#__PURE__*/react.createElement("div", {
|
|
5474
5474
|
className: "flex w-1/2 flex-row items-center"
|
|
5475
|
-
}, showInstanceList && /*#__PURE__*/react.createElement(ui_src/* Typography */.
|
|
5475
|
+
}, showInstanceList && /*#__PURE__*/react.createElement(ui_src/* Typography */.o5, {
|
|
5476
5476
|
variant: "subtitle",
|
|
5477
5477
|
className: "mr-4"
|
|
5478
5478
|
}, "Instance Number"), showInstanceList && /*#__PURE__*/react.createElement("div", {
|
|
5479
5479
|
className: "grow"
|
|
5480
|
-
}, /*#__PURE__*/react.createElement(ui_src/* InputRange */.
|
|
5480
|
+
}, /*#__PURE__*/react.createElement(ui_src/* InputRange */.Qr, {
|
|
5481
5481
|
value: instanceNumber,
|
|
5482
5482
|
key: selectedDisplaySetInstanceUID,
|
|
5483
5483
|
onChange: value => {
|
|
@@ -5493,7 +5493,7 @@ const DicomTagBrowser = ({
|
|
|
5493
5493
|
className: "h-1 w-full bg-black"
|
|
5494
5494
|
}), /*#__PURE__*/react.createElement("div", {
|
|
5495
5495
|
className: "my-3 flex w-1/2 flex-row"
|
|
5496
|
-
}, /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.
|
|
5496
|
+
}, /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.Cv, {
|
|
5497
5497
|
className: "mr-8 block w-full",
|
|
5498
5498
|
placeholder: "Search metadata...",
|
|
5499
5499
|
onDebounceChange: setFilterValue
|
|
@@ -5517,7 +5517,7 @@ function getFormattedRowsFromTags(tags, metadata) {
|
|
|
5517
5517
|
} else {
|
|
5518
5518
|
if (tagInfo.vr === 'xs') {
|
|
5519
5519
|
try {
|
|
5520
|
-
const tag = dcmjs_es
|
|
5520
|
+
const tag = dcmjs_es/* default.data */.Ay.data.Tag.fromPString(tagInfo.tag).toCleanString();
|
|
5521
5521
|
const originalTagInfo = metadata[tag];
|
|
5522
5522
|
tagInfo.vr = originalTagInfo.vr;
|
|
5523
5523
|
} catch (error) {
|
|
@@ -5828,7 +5828,7 @@ const findViewportsByPosition = (state, {
|
|
|
5828
5828
|
};
|
|
5829
5829
|
/* harmony default export */ const src_findViewportsByPosition = (findViewportsByPosition);
|
|
5830
5830
|
// EXTERNAL MODULE: ./index.js + 33 modules
|
|
5831
|
-
var index = __webpack_require__(
|
|
5831
|
+
var index = __webpack_require__(45573);
|
|
5832
5832
|
;// CONCATENATED MODULE: ../../../extensions/default/src/commandsModule.ts
|
|
5833
5833
|
|
|
5834
5834
|
|
|
@@ -5838,7 +5838,7 @@ var index = __webpack_require__(59754);
|
|
|
5838
5838
|
|
|
5839
5839
|
const {
|
|
5840
5840
|
subscribeToNextViewportGridChange
|
|
5841
|
-
} = src
|
|
5841
|
+
} = src/* utils */.Wp;
|
|
5842
5842
|
/**
|
|
5843
5843
|
* Determine if a command is a hanging protocol one.
|
|
5844
5844
|
* For now, just use the two hanging protocol commands that are in this
|
|
@@ -6294,7 +6294,7 @@ const commandsModule = ({
|
|
|
6294
6294
|
* for `replace` is false
|
|
6295
6295
|
*/
|
|
6296
6296
|
navigateHistory(historyArgs) {
|
|
6297
|
-
index/* history */.
|
|
6297
|
+
index/* history */.b.navigate(historyArgs.to, historyArgs.options);
|
|
6298
6298
|
},
|
|
6299
6299
|
openDICOMTagViewer() {
|
|
6300
6300
|
const {
|
|
@@ -6979,8 +6979,8 @@ function getHangingProtocolModule() {
|
|
|
6979
6979
|
|
|
6980
6980
|
|
|
6981
6981
|
function DataSourceSelector() {
|
|
6982
|
-
const [appConfig] = (0,state/* useAppConfig */.
|
|
6983
|
-
const navigate = (0,dist/* useNavigate */.
|
|
6982
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
6983
|
+
const navigate = (0,dist/* useNavigate */.Zp)();
|
|
6984
6984
|
|
|
6985
6985
|
// This is frowned upon, but the raw config is needed here to provide
|
|
6986
6986
|
// the selector
|
|
@@ -7004,8 +7004,8 @@ function DataSourceSelector() {
|
|
|
7004
7004
|
key: ds.sourceName
|
|
7005
7005
|
}, /*#__PURE__*/react.createElement("h1", {
|
|
7006
7006
|
className: "text-white"
|
|
7007
|
-
}, ds.configuration?.friendlyName || ds.friendlyName), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
7008
|
-
type: ui_src/* ButtonEnums.type */.
|
|
7007
|
+
}, ds.configuration?.friendlyName || ds.friendlyName), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
|
|
7008
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary,
|
|
7009
7009
|
className: classnames_default()('ml-2'),
|
|
7010
7010
|
onClick: () => {
|
|
7011
7011
|
navigate({
|
|
@@ -7028,7 +7028,7 @@ function ItemListComponent({
|
|
|
7028
7028
|
}) {
|
|
7029
7029
|
const {
|
|
7030
7030
|
t
|
|
7031
|
-
} = (0,es/* useTranslation
|
|
7031
|
+
} = (0,es/* useTranslation */.Bd)('DataSourceConfiguration');
|
|
7032
7032
|
const [filterValue, setFilterValue] = (0,react.useState)('');
|
|
7033
7033
|
(0,react.useEffect)(() => {
|
|
7034
7034
|
setFilterValue('');
|
|
@@ -7039,18 +7039,18 @@ function ItemListComponent({
|
|
|
7039
7039
|
className: "flex items-center justify-between"
|
|
7040
7040
|
}, /*#__PURE__*/react.createElement("div", {
|
|
7041
7041
|
className: "text-primary-light text-[20px]"
|
|
7042
|
-
}, t(`Select ${itemLabel}`)), /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.
|
|
7042
|
+
}, t(`Select ${itemLabel}`)), /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.Cv, {
|
|
7043
7043
|
className: "max-w-[40%] grow",
|
|
7044
7044
|
value: filterValue,
|
|
7045
7045
|
onDebounceChange: setFilterValue,
|
|
7046
7046
|
placeholder: t(`Search ${itemLabel} list`)
|
|
7047
7047
|
})), /*#__PURE__*/react.createElement("div", {
|
|
7048
7048
|
className: "relative flex min-h-[1px] grow flex-col bg-black text-[14px]"
|
|
7049
|
-
}, itemList == null ? /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorProgress */.
|
|
7049
|
+
}, itemList == null ? /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorProgress */.Jx, {
|
|
7050
7050
|
className: 'h-full w-full'
|
|
7051
7051
|
}) : itemList.length === 0 ? /*#__PURE__*/react.createElement("div", {
|
|
7052
7052
|
className: "text-primary-light flex h-full flex-col items-center justify-center px-6 py-4"
|
|
7053
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
7053
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
7054
7054
|
name: "magnifier",
|
|
7055
7055
|
className: "mb-4"
|
|
7056
7056
|
}), /*#__PURE__*/react.createElement("span", null, t(`No ${itemLabel} available`))) : /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
@@ -7062,10 +7062,10 @@ function ItemListComponent({
|
|
|
7062
7062
|
return /*#__PURE__*/react.createElement("div", {
|
|
7063
7063
|
className: classnames_default()('hover:text-primary-light hover:bg-primary-dark group mx-2 flex items-center justify-between px-6 py-2', border),
|
|
7064
7064
|
key: item.id
|
|
7065
|
-
}, /*#__PURE__*/react.createElement("div", null, item.name), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
7065
|
+
}, /*#__PURE__*/react.createElement("div", null, item.name), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
|
|
7066
7066
|
onClick: () => onItemClicked(item),
|
|
7067
7067
|
className: "invisible group-hover:visible",
|
|
7068
|
-
endIcon: /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
7068
|
+
endIcon: /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
7069
7069
|
name: "arrow-left"
|
|
7070
7070
|
})
|
|
7071
7071
|
}, t('Select')));
|
|
@@ -7086,7 +7086,7 @@ function DataSourceConfigurationModalComponent({
|
|
|
7086
7086
|
}) {
|
|
7087
7087
|
const {
|
|
7088
7088
|
t
|
|
7089
|
-
} = (0,es/* useTranslation
|
|
7089
|
+
} = (0,es/* useTranslation */.Bd)('DataSourceConfiguration');
|
|
7090
7090
|
const [itemList, setItemList] = (0,react.useState)();
|
|
7091
7091
|
const [selectedItems, setSelectedItems] = (0,react.useState)(configuredItems);
|
|
7092
7092
|
const [errorMessage, setErrorMessage] = (0,react.useState)();
|
|
@@ -7160,9 +7160,9 @@ function DataSourceConfigurationModalComponent({
|
|
|
7160
7160
|
} : undefined
|
|
7161
7161
|
}, /*#__PURE__*/react.createElement("div", {
|
|
7162
7162
|
className: "text- flex items-center gap-2"
|
|
7163
|
-
}, itemLabelIndex < selectedItems.length ? /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
7163
|
+
}, itemLabelIndex < selectedItems.length ? /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
7164
7164
|
name: "status-tracked"
|
|
7165
|
-
}) : /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
7165
|
+
}) : /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
7166
7166
|
name: "status-untracked"
|
|
7167
7167
|
}), /*#__PURE__*/react.createElement("div", {
|
|
7168
7168
|
className: classnames_default()(NO_WRAP_ELLIPSIS_CLASS_NAMES)
|
|
@@ -7196,11 +7196,11 @@ function DataSourceConfigurationComponent({
|
|
|
7196
7196
|
}) {
|
|
7197
7197
|
const {
|
|
7198
7198
|
t
|
|
7199
|
-
} = (0,es/* useTranslation
|
|
7199
|
+
} = (0,es/* useTranslation */.Bd)('DataSourceConfiguration');
|
|
7200
7200
|
const {
|
|
7201
7201
|
show,
|
|
7202
7202
|
hide
|
|
7203
|
-
} = (0,ui_src/* useModal */.
|
|
7203
|
+
} = (0,ui_src/* useModal */.hS)();
|
|
7204
7204
|
const {
|
|
7205
7205
|
customizationService
|
|
7206
7206
|
} = servicesManager.services;
|
|
@@ -7259,7 +7259,7 @@ function DataSourceConfigurationComponent({
|
|
|
7259
7259
|
}, [configurationAPI, configuredItems, showConfigurationModal]);
|
|
7260
7260
|
return configuredItems ? /*#__PURE__*/react.createElement("div", {
|
|
7261
7261
|
className: "text-aqua-pale flex items-center overflow-hidden"
|
|
7262
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
7262
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
7263
7263
|
name: "settings",
|
|
7264
7264
|
className: "mr-2.5 h-3.5 w-3.5 shrink-0 cursor-pointer",
|
|
7265
7265
|
onClick: showConfigurationModal
|
|
@@ -7588,10 +7588,10 @@ function getCustomizationModule({
|
|
|
7588
7588
|
}];
|
|
7589
7589
|
}
|
|
7590
7590
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/calculate-suv/dist/calculate-suv.esm.js
|
|
7591
|
-
var calculate_suv_esm = __webpack_require__(
|
|
7591
|
+
var calculate_suv_esm = __webpack_require__(79717);
|
|
7592
7592
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getPTImageIdInstanceMetadata.ts
|
|
7593
7593
|
|
|
7594
|
-
const getPTImageIdInstanceMetadata_metadataProvider = src
|
|
7594
|
+
const getPTImageIdInstanceMetadata_metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
7595
7595
|
function getPTImageIdInstanceMetadata(imageId) {
|
|
7596
7596
|
const dicomMetaData = getPTImageIdInstanceMetadata_metadataProvider.get('instance', imageId);
|
|
7597
7597
|
if (!dicomMetaData) {
|
|
@@ -7660,7 +7660,7 @@ function convertInterfaceDateToString(date) {
|
|
|
7660
7660
|
|
|
7661
7661
|
|
|
7662
7662
|
|
|
7663
|
-
const init_metadataProvider = src
|
|
7663
|
+
const init_metadataProvider = src/* classes */.Ly.MetadataProvider;
|
|
7664
7664
|
|
|
7665
7665
|
/**
|
|
7666
7666
|
*
|
|
@@ -7675,11 +7675,11 @@ function init({
|
|
|
7675
7675
|
stateSyncService
|
|
7676
7676
|
} = servicesManager.services;
|
|
7677
7677
|
// Add
|
|
7678
|
-
src
|
|
7678
|
+
src/* DicomMetadataStore */.H8.subscribe(src/* DicomMetadataStore */.H8.EVENTS.INSTANCES_ADDED, handlePETImageMetadata);
|
|
7679
7679
|
|
|
7680
7680
|
// If the metadata for PET has changed by the user (e.g. manually changing the PatientWeight)
|
|
7681
7681
|
// we need to recalculate the SUV Scaling Factors
|
|
7682
|
-
src
|
|
7682
|
+
src/* DicomMetadataStore */.H8.subscribe(src/* DicomMetadataStore */.H8.EVENTS.SERIES_UPDATED, handlePETImageMetadata);
|
|
7683
7683
|
|
|
7684
7684
|
// viewportGridStore is a sync state which stores the entire
|
|
7685
7685
|
// ViewportGridService getState, by the keys `<activeStudyUID>:<protocolId>:<stageIndex>`
|
|
@@ -7723,7 +7723,7 @@ const handlePETImageMetadata = ({
|
|
|
7723
7723
|
}) => {
|
|
7724
7724
|
const {
|
|
7725
7725
|
instances
|
|
7726
|
-
} = src
|
|
7726
|
+
} = src/* DicomMetadataStore */.H8.getSeries(StudyInstanceUID, SeriesInstanceUID);
|
|
7727
7727
|
if (!instances?.length) {
|
|
7728
7728
|
return;
|
|
7729
7729
|
}
|
|
@@ -7745,7 +7745,7 @@ const handlePETImageMetadata = ({
|
|
|
7745
7745
|
if (!instanceMetadataArray.length) {
|
|
7746
7746
|
return;
|
|
7747
7747
|
}
|
|
7748
|
-
const suvScalingFactors = (0,calculate_suv_esm/* calculateSUVScalingFactors */.
|
|
7748
|
+
const suvScalingFactors = (0,calculate_suv_esm/* calculateSUVScalingFactors */.C)(instanceMetadataArray);
|
|
7749
7749
|
instanceMetadataArray.forEach((instanceMetadata, index) => {
|
|
7750
7750
|
init_metadataProvider.addCustomMetadata(imageIds[index], 'scalingModule', suvScalingFactors[index]);
|
|
7751
7751
|
});
|