@ohif/app 3.14.0-beta.4 → 3.14.0-beta.6
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/{7248.bundle.6919a718dc2d7916.js → 7248.bundle.cb725f90fdcaaa98.js} +17 -1
- package/dist/{89.bundle.67f2919789bc2d62.js → 89.bundle.2585645860c98cc2.js} +52 -46
- package/dist/{app.bundle.cae100772c9eae23.js → app.bundle.c9cee93304900a58.js} +82 -4
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +5 -5
- /package/dist/{100.bundle.c2f36ed149bbc980.js → 100.bundle.f11be0a921cb4e85.js} +0 -0
- /package/dist/{1180.bundle.df81706e465740df.js → 1180.bundle.2d9ea30c57f234bb.js} +0 -0
- /package/dist/{1483.bundle.235a698c74fd24b3.js → 1483.bundle.067ff45a0bd998bf.js} +0 -0
- /package/dist/{1602.bundle.bb0d5eaa9bbbe942.js → 1602.bundle.e5d51e96cad709c8.js} +0 -0
- /package/dist/{2779.bundle.fa0ff7dfd445cff3.js → 2779.bundle.17128e8949bc4a2d.js} +0 -0
- /package/dist/{3500.bundle.50765d4835f8f3e3.js → 3500.bundle.86c37007114ef2a2.js} +0 -0
- /package/dist/{3760.bundle.eba736b0ed687ca5.js → 3760.bundle.16f9f50d52771ffc.js} +0 -0
- /package/dist/{4556.bundle.afe15cf044ec5226.js → 4556.bundle.2de24b5ad059eebb.js} +0 -0
- /package/dist/{4683.bundle.26d4b1274fea6880.js → 4683.bundle.e3a8f3c2d3236e66.js} +0 -0
- /package/dist/{5696.bundle.edcfbfc789283b9f.js → 5696.bundle.4393e87706f9d481.js} +0 -0
- /package/dist/{6749.bundle.6f0b8d2e08d5bba7.js → 6749.bundle.4410d977a2920c78.js} +0 -0
- /package/dist/{7499.bundle.9249385348abc8cb.js → 7499.bundle.555efeb709e90aa9.js} +0 -0
- /package/dist/{781.bundle.a948dcc12d7032f4.js → 781.bundle.efddbf6ed49a1d19.js} +0 -0
- /package/dist/{8423.bundle.9a44242bea5f03d0.js → 8423.bundle.d1d3cf2232b82988.js} +0 -0
- /package/dist/{8492.bundle.db05fa037156f477.js → 8492.bundle.39785564ef29e43d.js} +0 -0
- /package/dist/{8832.bundle.08c78ed50060ed15.js → 8832.bundle.12ea9c13b00a1504.js} +0 -0
- /package/dist/{9116.bundle.4f118da37e8ea6a9.js → 9116.bundle.23095a73825f3e48.js} +0 -0
- /package/dist/{9290.bundle.1f7a97778e12e1c2.js → 9290.bundle.77bef0d11caf6b43.js} +0 -0
- /package/dist/{9415.bundle.939a5f6b8750e591.js → 9415.bundle.eb42a435d1111e97.js} +0 -0
- /package/dist/{9437.bundle.f0d11daeb4442731.js → 9437.bundle.26d6aeb36856d782.js} +0 -0
|
@@ -542,7 +542,22 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
542
542
|
} = instance;
|
|
543
543
|
validateSameStudyUID(instance.StudyInstanceUID, instances);
|
|
544
544
|
const is3DSR = SOPClassUID === sopClassDictionary.Comprehensive3DSR;
|
|
545
|
-
const
|
|
545
|
+
const conceptIsImagingMeasurementReport = ConceptNameCodeSequence?.CodeValue === enums/* .CodeNameCodeSequenceValues.ImagingMeasurementReport */.n7.ImagingMeasurementReport;
|
|
546
|
+
|
|
547
|
+
// A report flagged as an Imaging Measurement Report but stored without its
|
|
548
|
+
// report body (no ContentSequence / (0040,A730)) cannot be parsed or rendered
|
|
549
|
+
// as one. Treat it as a plain SR so neither the loader nor the SR viewport
|
|
550
|
+
// takes the measurement path (which calls `.find` on the missing content and
|
|
551
|
+
// assumes at least one measurement exists), both of which would crash.
|
|
552
|
+
const hasReportContent = !!instance.ContentSequence;
|
|
553
|
+
const isImagingMeasurementReport = conceptIsImagingMeasurementReport && hasReportContent;
|
|
554
|
+
|
|
555
|
+
// Surface the empty report through the standard display set message list, so
|
|
556
|
+
// it is reported in the display set tray like any other display set problem.
|
|
557
|
+
const messages = new src/* .DisplaySetMessageList */.WZ();
|
|
558
|
+
if (!hasReportContent) {
|
|
559
|
+
messages.addMessage(src/* .DisplaySetMessage.CODES.MISSING_REPORT_CONTENT */.Ob.CODES.MISSING_REPORT_CONTENT);
|
|
560
|
+
}
|
|
546
561
|
const displaySet = {
|
|
547
562
|
Modality: 'SR',
|
|
548
563
|
displaySetInstanceUID: src/* .utils.guid */.Wp.guid(),
|
|
@@ -561,6 +576,7 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
561
576
|
isDerivedDisplaySet: true,
|
|
562
577
|
isLoaded: false,
|
|
563
578
|
isImagingMeasurementReport,
|
|
579
|
+
messages,
|
|
564
580
|
sopClassUids,
|
|
565
581
|
instance,
|
|
566
582
|
predecessorImageId,
|
|
@@ -34095,7 +34095,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34095
34095
|
const {
|
|
34096
34096
|
userAuthenticationService
|
|
34097
34097
|
} = servicesManager.services;
|
|
34098
|
-
let dicomWebConfigCopy,
|
|
34098
|
+
let dicomWebConfigCopy, clientConfig, dicomWebClient, getAuthorizationHeader, generateWadoHeader;
|
|
34099
34099
|
// Default to enabling bulk data retrieves, with no other customization as
|
|
34100
34100
|
// this is part of hte base standard.
|
|
34101
34101
|
dicomWebConfig.bulkDataURI ||= {
|
|
@@ -34126,7 +34126,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34126
34126
|
// handle the scenarios where bulkDataURI is relative path
|
|
34127
34127
|
fixBulkDataURI(value, instance, dicomWebConfig);
|
|
34128
34128
|
// Provide a method to fetch bulkdata
|
|
34129
|
-
value.retrieveBulkData = retrieveBulkData.bind(
|
|
34129
|
+
value.retrieveBulkData = retrieveBulkData.bind(dicomWebClient, value);
|
|
34130
34130
|
}
|
|
34131
34131
|
}
|
|
34132
34132
|
return naturalized;
|
|
@@ -34192,33 +34192,37 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34192
34192
|
};
|
|
34193
34193
|
}
|
|
34194
34194
|
};
|
|
34195
|
-
|
|
34196
|
-
|
|
34197
|
-
|
|
34198
|
-
|
|
34199
|
-
|
|
34200
|
-
|
|
34201
|
-
|
|
34202
|
-
|
|
34203
|
-
wadoConfig = {
|
|
34204
|
-
url: dicomWebConfig.wadoRoot,
|
|
34195
|
+
|
|
34196
|
+
// Each service falls back to the other configured roots so that no URL is
|
|
34197
|
+
// left undefined when a deployment configures only one of them.
|
|
34198
|
+
const qidoURL = dicomWebConfig.qidoRoot ?? dicomWebConfig.wadoRoot;
|
|
34199
|
+
const wadoURL = dicomWebConfig.wadoRoot ?? dicomWebConfig.qidoRoot;
|
|
34200
|
+
const stowURL = dicomWebConfig.stowRoot ?? wadoURL;
|
|
34201
|
+
clientConfig = {
|
|
34202
|
+
url: wadoURL,
|
|
34205
34203
|
staticWado: dicomWebConfig.staticWado,
|
|
34206
34204
|
singlepart: dicomWebConfig.singlepart,
|
|
34207
34205
|
headers: userAuthenticationService.getAuthorizationHeader(),
|
|
34208
34206
|
errorInterceptor: src/* .errorHandler.getHTTPErrorHandler */.r_.getHTTPErrorHandler(),
|
|
34209
34207
|
supportsFuzzyMatching: dicomWebConfig.supportsFuzzyMatching
|
|
34210
34208
|
};
|
|
34211
|
-
|
|
34212
|
-
|
|
34213
|
-
//
|
|
34214
|
-
|
|
34215
|
-
|
|
34209
|
+
dicomWebClient = dicomWebConfig.staticWado ? new StaticWadoClient(clientConfig) : new dicomweb_client_es/* .api.DICOMwebClient */.FH.DICOMwebClient(clientConfig);
|
|
34210
|
+
|
|
34211
|
+
// dicomweb-client reads `qidoURL`, `wadoURL` and `stowURL` fresh on every
|
|
34212
|
+
// request, so a single client can serve all three services. Its
|
|
34213
|
+
// constructor can only differentiate them via the `*URLPrefix` options,
|
|
34214
|
+
// which are concatenated onto the single `baseURL` - OHIF's roots are
|
|
34215
|
+
// independent absolute URLs that need not even share a host, so the
|
|
34216
|
+
// prefixes cannot express them and the fields are assigned directly.
|
|
34217
|
+
dicomWebClient.qidoURL = qidoURL;
|
|
34218
|
+
dicomWebClient.wadoURL = wadoURL;
|
|
34219
|
+
dicomWebClient.stowURL = stowURL;
|
|
34216
34220
|
},
|
|
34217
34221
|
query: {
|
|
34218
34222
|
studies: {
|
|
34219
34223
|
mapParams: mapParams.bind(),
|
|
34220
34224
|
search: async function (origParams) {
|
|
34221
|
-
|
|
34225
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34222
34226
|
const {
|
|
34223
34227
|
studyInstanceUid,
|
|
34224
34228
|
seriesInstanceUid,
|
|
@@ -34227,7 +34231,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34227
34231
|
supportsFuzzyMatching: dicomWebConfig.supportsFuzzyMatching,
|
|
34228
34232
|
supportsWildcard: dicomWebConfig.supportsWildcard
|
|
34229
34233
|
}) || {};
|
|
34230
|
-
const results = await search(
|
|
34234
|
+
const results = await search(dicomWebClient, undefined, undefined, mappedParams);
|
|
34231
34235
|
return processResults(results);
|
|
34232
34236
|
},
|
|
34233
34237
|
processResults: processResults.bind()
|
|
@@ -34235,16 +34239,16 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34235
34239
|
series: {
|
|
34236
34240
|
// mapParams: mapParams.bind(),
|
|
34237
34241
|
search: async function (studyInstanceUid) {
|
|
34238
|
-
|
|
34239
|
-
const results = await seriesInStudy(
|
|
34242
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34243
|
+
const results = await seriesInStudy(dicomWebClient, studyInstanceUid);
|
|
34240
34244
|
return processSeriesResults(results);
|
|
34241
34245
|
}
|
|
34242
34246
|
// processResults: processResults.bind(),
|
|
34243
34247
|
},
|
|
34244
34248
|
instances: {
|
|
34245
34249
|
search: (studyInstanceUid, queryParameters) => {
|
|
34246
|
-
|
|
34247
|
-
return search.call(undefined,
|
|
34250
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34251
|
+
return search.call(undefined, dicomWebClient, studyInstanceUid, null, queryParameters);
|
|
34248
34252
|
}
|
|
34249
34253
|
}
|
|
34250
34254
|
},
|
|
@@ -34267,7 +34271,7 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34267
34271
|
imageId,
|
|
34268
34272
|
config: dicomWebConfig,
|
|
34269
34273
|
getAuthorizationHeader,
|
|
34270
|
-
qidoDicomWebClient,
|
|
34274
|
+
qidoDicomWebClient: dicomWebClient,
|
|
34271
34275
|
retrieve: this
|
|
34272
34276
|
});
|
|
34273
34277
|
},
|
|
@@ -34289,10 +34293,10 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34289
34293
|
* Provide direct access to the dicom web client for certain use cases
|
|
34290
34294
|
* where the dicom web client is used by an external library such as the
|
|
34291
34295
|
* microscopy viewer.
|
|
34292
|
-
*
|
|
34293
|
-
*
|
|
34296
|
+
* The returned instance is configured for all three services, so QIDO and
|
|
34297
|
+
* STOW operations are also routed to the correct root.
|
|
34294
34298
|
*/
|
|
34295
|
-
getWadoDicomWebClient: () =>
|
|
34299
|
+
getWadoDicomWebClient: () => dicomWebClient,
|
|
34296
34300
|
/**
|
|
34297
34301
|
* Best-effort prefetch of a whole multiframe instance as a single Part 10
|
|
34298
34302
|
* object, registered into the Cornerstone3D NATURALIZED frame registry so
|
|
@@ -34331,8 +34335,8 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34331
34335
|
// instance as an ArrayBuffer, unwrapping multipart/related transparently
|
|
34332
34336
|
// (and returning the raw object for single-part responses).
|
|
34333
34337
|
const resolvePart10 = async () => {
|
|
34334
|
-
|
|
34335
|
-
const result = await
|
|
34338
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34339
|
+
const result = await dicomWebClient.retrieveInstance({
|
|
34336
34340
|
studyInstanceUID: StudyInstanceUID,
|
|
34337
34341
|
seriesInstanceUID: SeriesInstanceUID,
|
|
34338
34342
|
sopInstanceUID: SOPInstanceUID
|
|
@@ -34371,13 +34375,13 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34371
34375
|
StudyInstanceUID,
|
|
34372
34376
|
BulkDataURI
|
|
34373
34377
|
}) => {
|
|
34374
|
-
|
|
34378
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34375
34379
|
const options = {
|
|
34376
34380
|
multipart: false,
|
|
34377
34381
|
BulkDataURI,
|
|
34378
34382
|
StudyInstanceUID
|
|
34379
34383
|
};
|
|
34380
|
-
return
|
|
34384
|
+
return dicomWebClient.retrieveBulkData(options).then(val => {
|
|
34381
34385
|
const ret = val && val[0] || undefined;
|
|
34382
34386
|
return ret;
|
|
34383
34387
|
});
|
|
@@ -34403,13 +34407,13 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34403
34407
|
},
|
|
34404
34408
|
store: {
|
|
34405
34409
|
dicom: async (dataset, request, dicomDict) => {
|
|
34406
|
-
|
|
34410
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34407
34411
|
if (dataset instanceof ArrayBuffer) {
|
|
34408
34412
|
const options = {
|
|
34409
34413
|
datasets: [dataset],
|
|
34410
34414
|
request
|
|
34411
34415
|
};
|
|
34412
|
-
await
|
|
34416
|
+
await dicomWebClient.storeInstances(options);
|
|
34413
34417
|
} else {
|
|
34414
34418
|
let effectiveDicomDict = dicomDict;
|
|
34415
34419
|
if (!dicomDict) {
|
|
@@ -34431,15 +34435,15 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34431
34435
|
datasets: [part10Buffer],
|
|
34432
34436
|
request
|
|
34433
34437
|
};
|
|
34434
|
-
await
|
|
34438
|
+
await dicomWebClient.storeInstances(options);
|
|
34435
34439
|
}
|
|
34436
34440
|
}
|
|
34437
34441
|
},
|
|
34438
34442
|
_retrieveSeriesMetadataSync: async (StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient) => {
|
|
34439
34443
|
const enableStudyLazyLoad = false;
|
|
34440
|
-
|
|
34444
|
+
dicomWebClient.headers = generateWadoHeader(excludeTransferSyntax);
|
|
34441
34445
|
// data is all SOPInstanceUIDs
|
|
34442
|
-
const data = await retrieveStudyMetadata(
|
|
34446
|
+
const data = await retrieveStudyMetadata(dicomWebClient, StudyInstanceUID, enableStudyLazyLoad, filters, sortCriteria, sortFunction, dicomWebConfig);
|
|
34443
34447
|
|
|
34444
34448
|
// first naturalize the data, attaching bulkdata retrieve methods so that
|
|
34445
34449
|
// bulkdata-valued tags can be resolved (matching the lazy-load path).
|
|
@@ -34447,9 +34451,10 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34447
34451
|
|
|
34448
34452
|
// Resolve the registered bulkdata tags (e.g. the Philips SUV Scale
|
|
34449
34453
|
// Factor) delivered as bulkdata into plain numbers BEFORE
|
|
34450
|
-
// INSTANCES_ADDED fires. retrieveBulkData is bound to
|
|
34451
|
-
// so refresh its auth headers first (matching every other
|
|
34452
|
-
|
|
34454
|
+
// INSTANCES_ADDED fires. retrieveBulkData is bound to the shared
|
|
34455
|
+
// dicomWebClient, so refresh its auth headers first (matching every other
|
|
34456
|
+
// qido op here).
|
|
34457
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34453
34458
|
await src/* .utils.resolveBulkDataTags */.Wp.resolveBulkDataTags(naturalizedInstancesMetadata);
|
|
34454
34459
|
const seriesSummaryMetadata = {};
|
|
34455
34460
|
const instancesPerSeries = {};
|
|
@@ -34492,12 +34497,12 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34492
34497
|
},
|
|
34493
34498
|
_retrieveSeriesMetadataAsync: async (StudyInstanceUID, filters, sortCriteria, sortFunction, madeInClient = false, returnPromises = false) => {
|
|
34494
34499
|
const enableStudyLazyLoad = true;
|
|
34495
|
-
|
|
34500
|
+
dicomWebClient.headers = generateWadoHeader(excludeTransferSyntax);
|
|
34496
34501
|
// Get Series
|
|
34497
34502
|
const {
|
|
34498
34503
|
preLoadData: seriesSummaryMetadata,
|
|
34499
34504
|
promises: seriesPromises
|
|
34500
|
-
} = await retrieveStudyMetadata(
|
|
34505
|
+
} = await retrieveStudyMetadata(dicomWebClient, StudyInstanceUID, enableStudyLazyLoad, filters, sortCriteria, sortFunction, dicomWebConfig);
|
|
34501
34506
|
|
|
34502
34507
|
// Async load series, store as retrieved
|
|
34503
34508
|
async function storeInstances(instances) {
|
|
@@ -34507,9 +34512,10 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
34507
34512
|
// Factor) that the server delivered as bulkdata into plain numbers
|
|
34508
34513
|
// BEFORE INSTANCES_ADDED fires, so SUV scaling and every other
|
|
34509
34514
|
// subscriber read a fully-resolved value rather than an unresolved
|
|
34510
|
-
// { BulkDataURI }. retrieveBulkData is bound to
|
|
34511
|
-
// refresh its auth headers first (matching every
|
|
34512
|
-
|
|
34515
|
+
// { BulkDataURI }. retrieveBulkData is bound to the shared
|
|
34516
|
+
// dicomWebClient, so refresh its auth headers first (matching every
|
|
34517
|
+
// other qido op here).
|
|
34518
|
+
dicomWebClient.headers = getAuthorizationHeader();
|
|
34513
34519
|
await src/* .utils.resolveBulkDataTags */.Wp.resolveBulkDataTags(naturalizedInstances);
|
|
34514
34520
|
|
|
34515
34521
|
// Adding instanceMetadata to OHIF MetadataProvider
|
|
@@ -42797,8 +42803,8 @@ function AboutModalDefault() {
|
|
|
42797
42803
|
name
|
|
42798
42804
|
} = (0,browser_detect_es5/* ["default"] */.A)();
|
|
42799
42805
|
const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
|
|
42800
|
-
const versionNumber = "3.14.0-beta.
|
|
42801
|
-
const commitHash = "
|
|
42806
|
+
const versionNumber = "3.14.0-beta.6";
|
|
42807
|
+
const commitHash = "f6d84690bfbdef11fb1b8104f1a62539a0e946a1";
|
|
42802
42808
|
const [main, beta] = versionNumber.split('-');
|
|
42803
42809
|
return /*#__PURE__*/react.createElement(ui_next_src/* .AboutModal */.VTU, {
|
|
42804
42810
|
className: "w-[400px]"
|
|
@@ -57748,7 +57748,8 @@ DisplaySetMessage.CODES = {
|
|
|
57748
57748
|
INCONSISTENT_POSITION_INFORMATION: 12,
|
|
57749
57749
|
UNSUPPORTED_DISPLAYSET: 13,
|
|
57750
57750
|
UNSUPPORTED_SOP_CLASS_UID: 14,
|
|
57751
|
-
MISSING_SOP_CLASS_UID: 15
|
|
57751
|
+
MISSING_SOP_CLASS_UID: 15,
|
|
57752
|
+
MISSING_REPORT_CONTENT: 16
|
|
57752
57753
|
};
|
|
57753
57754
|
class DisplaySetMessageList {
|
|
57754
57755
|
constructor() {
|
|
@@ -72310,6 +72311,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
72310
72311
|
// TODO: Is 10% a reasonable spacingTolerance for spacing?
|
|
72311
72312
|
const spacingTolerance = 0.2;
|
|
72312
72313
|
const iopTolerance = 0.01;
|
|
72314
|
+
// Real slice spacing is on the order of millimetres; a set of frames whose
|
|
72315
|
+
// positions all fall within this distance occupies a single location and has no
|
|
72316
|
+
// through-plane extent to reconstruct (e.g. a cine / multi-time series).
|
|
72317
|
+
const zeroExtentTolerance = 0.01;
|
|
72313
72318
|
|
|
72314
72319
|
/**
|
|
72315
72320
|
* Checks if a series is reconstructable to a 3D volume.
|
|
@@ -72398,6 +72403,17 @@ function processMultiframe(multiFrameInstance) {
|
|
|
72398
72403
|
};
|
|
72399
72404
|
}
|
|
72400
72405
|
|
|
72406
|
+
// A multi-frame cine / multi-time series is many frames acquired at a single
|
|
72407
|
+
// location (every frame shares one ImagePositionPatient), so it has no
|
|
72408
|
+
// through-plane extent: building a volume yields zero slice spacing that
|
|
72409
|
+
// renders black in every MPR plane. Treat it as non-reconstructable rather
|
|
72410
|
+
// than a degenerate volume.
|
|
72411
|
+
if (hasSingleSpatialLocation(getPerFramePositions(multiFrameInstance))) {
|
|
72412
|
+
return {
|
|
72413
|
+
value: false
|
|
72414
|
+
};
|
|
72415
|
+
}
|
|
72416
|
+
|
|
72401
72417
|
// TODO - check spacing consistency
|
|
72402
72418
|
return {
|
|
72403
72419
|
value: true
|
|
@@ -72430,6 +72446,16 @@ function processSingleframe(instances) {
|
|
|
72430
72446
|
};
|
|
72431
72447
|
}
|
|
72432
72448
|
}
|
|
72449
|
+
|
|
72450
|
+
// Many single-frame instances acquired at one location (a cine / multi-time
|
|
72451
|
+
// series) share one ImagePositionPatient and have no through-plane extent, so
|
|
72452
|
+
// they can't form a volume. Guard it explicitly instead of relying on the
|
|
72453
|
+
// degenerate zero-spacing path below.
|
|
72454
|
+
if (hasSingleSpatialLocation(instances.map(instance => (0,_toNumber__rspack_import_0/* ["default"] */.A)(instance.ImagePositionPatient)))) {
|
|
72455
|
+
return {
|
|
72456
|
+
value: false
|
|
72457
|
+
};
|
|
72458
|
+
}
|
|
72433
72459
|
let missingFrames = 0;
|
|
72434
72460
|
let averageSpacingBetweenFrames;
|
|
72435
72461
|
|
|
@@ -72507,6 +72533,58 @@ function _getSpacingIssue(spacing, averageSpacing) {
|
|
|
72507
72533
|
function _getPerpendicularDistance(a, b) {
|
|
72508
72534
|
return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2) + Math.pow(a[2] - b[2], 2));
|
|
72509
72535
|
}
|
|
72536
|
+
function isValidImagePosition(position) {
|
|
72537
|
+
return Array.isArray(position) && position.length === 3 && position.every(Number.isFinite);
|
|
72538
|
+
}
|
|
72539
|
+
|
|
72540
|
+
/**
|
|
72541
|
+
* True when two or more frame positions are known and all collapse to one
|
|
72542
|
+
* spatial location, so the series has no through-plane extent to reconstruct.
|
|
72543
|
+
* Returns false whenever this can't be determined confidently (fewer than two
|
|
72544
|
+
* valid positions), so a genuine volume is never wrongly blocked.
|
|
72545
|
+
*
|
|
72546
|
+
* @param {Array} positions The `ImagePositionPatient` of each frame.
|
|
72547
|
+
*/
|
|
72548
|
+
function hasSingleSpatialLocation(positions) {
|
|
72549
|
+
const validPositions = positions.filter(isValidImagePosition);
|
|
72550
|
+
if (validPositions.length < 2) {
|
|
72551
|
+
return false;
|
|
72552
|
+
}
|
|
72553
|
+
const origin = validPositions[0];
|
|
72554
|
+
return validPositions.every(position => _getPerpendicularDistance(position, origin) < zeroExtentTolerance);
|
|
72555
|
+
}
|
|
72556
|
+
|
|
72557
|
+
/**
|
|
72558
|
+
* The `ImagePositionPatient` of every frame of a multi-frame instance.
|
|
72559
|
+
*
|
|
72560
|
+
* Prefers the per-frame functional groups, but only once they carry the two
|
|
72561
|
+
* valid positions `hasSingleSpatialLocation` needs to decide anything. Below
|
|
72562
|
+
* that, falls back to the *shared* functional group broadcast to the frame
|
|
72563
|
+
* count: a single-location cine has one constant position, which the more
|
|
72564
|
+
* common DICOM encoding stores in `SharedFunctionalGroupsSequence` rather than
|
|
72565
|
+
* repeating it per frame. Without this fallback a per-frame sequence that is
|
|
72566
|
+
* absent — or present but too sparse to judge — would hide the constant
|
|
72567
|
+
* position, so the single-location check would never fire and the degenerate
|
|
72568
|
+
* volume would be wrongly reported reconstructable. Empty when neither source
|
|
72569
|
+
* carries enough to inspect confidently.
|
|
72570
|
+
*
|
|
72571
|
+
* @param {Object} multiFrameInstance
|
|
72572
|
+
*/
|
|
72573
|
+
function getPerFramePositions(multiFrameInstance) {
|
|
72574
|
+
const perFrameSequence = multiFrameInstance.PerFrameFunctionalGroupsSequence;
|
|
72575
|
+
if (Array.isArray(perFrameSequence)) {
|
|
72576
|
+
const perFramePositions = perFrameSequence.map(group => (0,_toNumber__rspack_import_0/* ["default"] */.A)(group?.PlanePositionSequence?.[0]?.ImagePositionPatient));
|
|
72577
|
+
if (perFramePositions.filter(isValidImagePosition).length >= 2) {
|
|
72578
|
+
return perFramePositions;
|
|
72579
|
+
}
|
|
72580
|
+
}
|
|
72581
|
+
const sharedPosition = (0,_toNumber__rspack_import_0/* ["default"] */.A)(multiFrameInstance.SharedFunctionalGroupsSequence?.[0]?.PlanePositionSequence?.[0]?.ImagePositionPatient);
|
|
72582
|
+
if (!isValidImagePosition(sharedPosition)) {
|
|
72583
|
+
return [];
|
|
72584
|
+
}
|
|
72585
|
+
const frameCount = Number(multiFrameInstance.NumberOfFrames) || perFrameSequence?.length || 0;
|
|
72586
|
+
return new Array(frameCount).fill(sharedPosition);
|
|
72587
|
+
}
|
|
72510
72588
|
const constructableModalities = ['MR', 'CT', 'PT', 'NM'];
|
|
72511
72589
|
const reconstructionIssues = {
|
|
72512
72590
|
MISSING_FRAMES: 'missingframes',
|
|
@@ -74096,7 +74174,7 @@ const detectionOptions = {
|
|
|
74096
74174
|
}
|
|
74097
74175
|
});
|
|
74098
74176
|
;// CONCATENATED MODULE: ../../i18n/package.json
|
|
74099
|
-
var package_namespaceObject = JSON.parse('{"rE":"3.14.0-beta.
|
|
74177
|
+
var package_namespaceObject = JSON.parse('{"rE":"3.14.0-beta.5"}')
|
|
74100
74178
|
;// CONCATENATED MODULE: ../../i18n/src/utils.js
|
|
74101
74179
|
const languagesMap = {
|
|
74102
74180
|
ar: 'Arabic',
|
|
@@ -74419,7 +74497,7 @@ var en_US_UserPreferencesModal_namespaceObject = JSON.parse('{"Cancel":"$t(Butto
|
|
|
74419
74497
|
;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/ViewportDownloadForm.json
|
|
74420
74498
|
var en_US_ViewportDownloadForm_namespaceObject = JSON.parse('{"emptyFilenameError":"The file name cannot be empty.","fileType":"File Type","filename":"File Name","formTitle":"Please specify the dimensions, filename, and desired type for the output image.","imageHeight":"Image height (px)","imagePreview":"Image Preview","imageWidth":"Image width (px)","keepAspectRatio":"Keep aspect ratio","loadingPreview":"Loading Image Preview...","minHeightError":"The minimum valid height is 100px.","minWidthError":"The minimum valid width is 100px.","showAnnotations":"Show Annotations"}')
|
|
74421
74499
|
;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/Messages.json
|
|
74422
|
-
var en_US_Messages_namespaceObject = JSON.parse('{"Display Set Messages":"Display Set Messages","1":"No valid instances found in series.","2":"Display set has missing position information.","3":"Display set is not a reconstructable 3D volume.","4":"Multi frame display sets do not have pixel measurement information.","5":"Multi frame display sets do not have orientation information.","6":"Multi frame display sets do not have position information.","7":"Display set has missing frames.","8":"Display set has irregular spacing.","9":"Display set has inconsistent dimensions between frames.","10":"Display set has frames with inconsistent number of components.","11":"Display set has frames with inconsistent orientations.","12":"Display set has inconsistent position information.","13":"Unsupported display set.","14":"SOP Class UID {{ sopClassUid }} is not supported.","15":"Display Set is missing a SOP Class UID. Please check the file."}')
|
|
74500
|
+
var en_US_Messages_namespaceObject = JSON.parse('{"Display Set Messages":"Display Set Messages","1":"No valid instances found in series.","2":"Display set has missing position information.","3":"Display set is not a reconstructable 3D volume.","4":"Multi frame display sets do not have pixel measurement information.","5":"Multi frame display sets do not have orientation information.","6":"Multi frame display sets do not have position information.","7":"Display set has missing frames.","8":"Display set has irregular spacing.","9":"Display set has inconsistent dimensions between frames.","10":"Display set has frames with inconsistent number of components.","11":"Display set has frames with inconsistent orientations.","12":"Display set has inconsistent position information.","13":"Unsupported display set.","14":"SOP Class UID {{ sopClassUid }} is not supported.","15":"Display Set is missing a SOP Class UID. Please check the file.","16":"Report has no content to display."}')
|
|
74423
74501
|
;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/WindowLevelActionMenu.json
|
|
74424
74502
|
var en_US_WindowLevelActionMenu_namespaceObject = JSON.parse('{"Back to Display Options":"Back to Display Options","Modality Presets":"Modality Presets","Modality Window Presets":"Modality Window Presets","Display Color bar":"Display Color bar","Color LUT":"Color LUT","Preview in viewport":"Preview in viewport","Grayscale":"Grayscale","Rendering Options":"Rendering Options","Rendering Presets":"Rendering Presets","Search all":"Search all","Quality":"Quality","Lighting":"Lighting","Shade":"Shade","Ambient":"Ambient","Diffuse":"Diffuse","Specular":"Specular","Shift":"Shift"}')
|
|
74425
74503
|
;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/CaptureViewportModal.json
|
|
@@ -458278,7 +458356,7 @@ __webpack_require__.u = (chunkId) => {
|
|
|
458278
458356
|
// return url for filenames not based on template
|
|
458279
458357
|
|
|
458280
458358
|
// return url for filenames based on template
|
|
458281
|
-
return "" + ({1644: "interpolation",6915: "histogram-worker",8547: "compute",8781: "polySeg",}[chunkId] || chunkId) + ".bundle." + {100: "
|
|
458359
|
+
return "" + ({1644: "interpolation",6915: "histogram-worker",8547: "compute",8781: "polySeg",}[chunkId] || chunkId) + ".bundle." + {100: "f11be0a921cb4e85",1180: "2d9ea30c57f234bb",1206: "786e5b556f903028",1229: "f721ec472f3d61bf",1483: "067ff45a0bd998bf",1602: "e5d51e96cad709c8",1644: "fa54018d8628f8c0",1673: "76779c7722e8c6c0",2623: "44c0c8ec6fa40d03",2779: "17128e8949bc4a2d",3500: "86c37007114ef2a2",3760: "16f9f50d52771ffc",4556: "2de24b5ad059eebb",4683: "e3a8f3c2d3236e66",5189: "ae2e6c3b91f526f7",5302: "d6194babac4a763e",5406: "4dcfa7c697973300",5448: "ac180bf858959dd5",5696: "4393e87706f9d481",5731: "694bce33e168bf29",5910: "f969465957013c3e",6489: "95cb243641a61a2f",6495: "8e8306fedff44999",6749: "4410d977a2920c78",6915: "ec5f0cf05ce3909c",6938: "34415aaeea5935b3",7248: "cb725f90fdcaaa98",7463: "40668aa8d083d077",7499: "555efeb709e90aa9",781: "efddbf6ed49a1d19",8097: "8ae6404ba94890a0",8423: "d1d3cf2232b82988",8478: "4520037e6185b95f",8492: "39785564ef29e43d",8547: "0fc3a3ee85296cf2",8781: "2c5892e4c5a6bdd5",8832: "12ea9c13b00a1504",89: "2585645860c98cc2",899: "3ea5c8d021b1e60d",9068: "e1d5946c370fd4ee",9116: "23095a73825f3e48",9290: "77bef0d11caf6b43",9383: "40008913697b48b8",9415: "eb42a435d1111e97",9437: "26d6aeb36856d782",}[chunkId] + ".js"
|
|
458282
458360
|
}
|
|
458283
458361
|
})();
|
|
458284
458362
|
// webpack/runtime/get mini-css chunk filename
|
package/dist/index.html
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,maximum-scale=1.0,user-scalable=no"><meta name="theme-color" content="#000000"><meta name="mobile-web-app-capable" content="yes"><meta name="application-name" content="OHIF Viewer"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-title" content="@ohif/app"><meta name="msapplication-TileColor" content="#fff"><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"><meta name="msapplication-config" content="/assets/browserconfig.xml"><script>console.time("scriptToView"),window.PUBLIC_URL="/"</script><link rel="manifest" href="/manifest.json"><link rel="icon shortcut" href="/assets/favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><script>function browserImportFunction(n){return import(n)}window.PUBLIC_URL="/"</script><script defer src="/app.bundle.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,maximum-scale=1.0,user-scalable=no"><meta name="theme-color" content="#000000"><meta name="mobile-web-app-capable" content="yes"><meta name="application-name" content="OHIF Viewer"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-title" content="@ohif/app"><meta name="msapplication-TileColor" content="#fff"><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"><meta name="msapplication-config" content="/assets/browserconfig.xml"><script>console.time("scriptToView"),window.PUBLIC_URL="/"</script><link rel="manifest" href="/manifest.json"><link rel="icon shortcut" href="/assets/favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><script>function browserImportFunction(n){return import(n)}window.PUBLIC_URL="/"</script><script defer src="/app.bundle.c9cee93304900a58.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript> You need to enable JavaScript to run this app. </noscript>
|
|
2
2
|
<div id="react-portal"></div>
|
|
3
3
|
<div id="root"></div></body></html>
|
package/dist/sw.js
CHANGED
|
@@ -62,7 +62,7 @@ self.addEventListener('message', event => {
|
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
|
|
65
|
-
workbox.precaching.precacheAndRoute([{"url":"/781.css","revision":null},{"url":"/8423.bundle.9a44242bea5f03d0.js","revision":null},{"url":"/89.bundle.67f2919789bc2d62.js","revision":null},{"url":"/dicom-microscopy-viewer/dicomiccwasm.wasm","revision":null},{"url":"/assets/apple-touch-icon-57x57.png","revision":null},{"url":"/assets/apple-touch-icon-114x114.png","revision":null},{"url":"/assets/apple-touch-icon-120x120.png","revision":null},{"url":"/ort/ort.training.wasm.min.js","revision":null},{"url":"/dicom-microscopy-viewer/openjpegwasm_decode.wasm","revision":null},{"url":"/assets/images/VolumeRendering.png","revision":null},{"url":"/assets/images/CT-Bone.png","revision":null},{"url":"/assets/android-chrome-48x48.png","revision":null},{"url":"/2779.bundle.fa0ff7dfd445cff3.js","revision":null},{"url":"/3833.css","revision":null},{"url":"/1206.bundle.786e5b556f903028.js","revision":null},{"url":"/8492.css","revision":null},{"url":"/8097.bundle.8ae6404ba94890a0.js","revision":null},{"url":"/assets/images/CT-Chest-Vessels.png","revision":null},{"url":"/assets/images/CT-Coronary-Arteries-3.png","revision":null},{"url":"/9383.bundle.40008913697b48b8.js","revision":null},{"url":"/8423.css","revision":null},{"url":"/assets/android-chrome-192x192.png","revision":null},{"url":"/5910.css","revision":null},{"url":"/assets/apple-touch-icon-76x76.png","revision":null},{"url":"/assets/apple-touch-startup-image-1536x2008.png","revision":null},{"url":"/ort/ort.wasm.min.js","revision":null},{"url":"/ort/ort.webgl.min.js","revision":null},{"url":"/1602.css","revision":null},{"url":"/assets/images/DTI-FA-Brain.png","revision":null},{"url":"/assets/apple-touch-startup-image-1496x2048.png","revision":null},{"url":"/assets/mstile-310x310.png","revision":null},{"url":"/3500.bundle.50765d4835f8f3e3.js","revision":null},{"url":"/3760.bundle.eba736b0ed687ca5.js","revision":null},{"url":"/assets/android-chrome-96x96.png","revision":null},{"url":"/assets/manifest.webapp","revision":null},{"url":"/assets/apple-touch-icon-72x72.png","revision":null},{"url":"/customizations/segmentation/uncompressed.jsonc","revision":null},{"url":"/ort/ort.all.js","revision":null},{"url":"/ort/esm/ort.wasm.min.js","revision":null},{"url":"/ort/ort-wasm-simd-threaded.wasm","revision":null},{"url":"/assets/images/CT-AAA.png","revision":null},{"url":"/assets/yandex-browser-50x50.png","revision":null},{"url":"/assets/images/CT-AAA2.png","revision":null},{"url":"/assets/android-chrome-512x512.png","revision":null},{"url":"/6758.bundle.b174316beaf1a9a5.js","revision":null},{"url":"/ort/cjs/ort.webgpu.min.js","revision":null},{"url":"/assets/images/CT-Cardiac3.png","revision":null},{"url":"/assets/images/CT-Chest-Contrast-Enhanced.png","revision":null},{"url":"/_headers","revision":null},{"url":"/2623.css","revision":null},{"url":"/assets/apple-touch-icon-152x152.png","revision":null},{"url":"/assets/apple-touch-icon-167x167.png","revision":null},{"url":"/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm","revision":null},{"url":"/assets/apple-touch-startup-image-320x460.png","revision":null},{"url":"/manifest.json","revision":null},{"url":"/ort/ort-wasm-simd.jsep.wasm","revision":null},{"url":"/a34f9d1faa5f3315.woff2","revision":null},{"url":"/serve.json","revision":null},{"url":"/ort/cjs/ort.wasm-core.min.js","revision":null},{"url":"/assets/images/CT-Bones.png","revision":null},{"url":"/assets/apple-touch-icon-144x144.png","revision":null},{"url":"/assets/apple-touch-icon-180x180.png","revision":null},{"url":"/assets/apple-touch-icon-1024x1024.png","revision":null},{"url":"/assets/images/CT-Cropped-Volume-Bone.png","revision":null},{"url":"/5406.bundle.4dcfa7c697973300.js","revision":null},{"url":"/8492.bundle.db05fa037156f477.js","revision":null},{"url":"/ort/esm/ort.min.js","revision":null},{"url":"/dicom-microscopy-viewer/charlswasm_decode.wasm","revision":null},{"url":"/_redirects","revision":null},{"url":"/index.html","revision":null},{"url":"/assets/firefox_app_60x60.png","revision":null},{"url":"/assets/mstile-144x144.png","revision":null},{"url":"/9068.bundle.e1d5946c370fd4ee.js","revision":null},{"url":"/assets/apple-touch-startup-image-748x1024.png","revision":null},{"url":"/9437.bundle.f0d11daeb4442731.js","revision":null},{"url":"/3552.bundle.da459dba452ba7a2.js","revision":null},{"url":"/899.bundle.3ea5c8d021b1e60d.js","revision":null},{"url":"/4683.bundle.26d4b1274fea6880.js","revision":null},{"url":"/assets/apple-touch-startup-image-750x1294.png","revision":null},{"url":"/5731.bundle.694bce33e168bf29.js","revision":null},{"url":"/100.bundle.c2f36ed149bbc980.js","revision":null},{"url":"/assets/favicon.ico","revision":null},{"url":"/assets/apple-touch-icon-60x60.png","revision":null},{"url":"/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js","revision":null},{"url":"/ohif-logo.svg","revision":null},{"url":"/ort/ort.all.min.js","revision":null},{"url":"/7841.bundle.58ac0fd73e8a784f.js","revision":null},{"url":"/5302.bundle.d6194babac4a763e.js","revision":null},{"url":"/37fa160cc3a47cfd.wasm","revision":null},{"url":"/ort/ort-training-wasm-simd.wasm","revision":null},{"url":"/2493.bundle.c4af70e46357151f.js","revision":null},{"url":"/assets/images/CT-Air.png","revision":null},{"url":"/776f756dd939124e.wasm","revision":null},{"url":"/9116.bundle.4f118da37e8ea6a9.js","revision":null},{"url":"/7964.bundle.b72dd7b70fa710fb.js","revision":null},{"url":"/customizations/index.html","revision":null},{"url":"/polySeg.bundle.2c5892e4c5a6bdd5.js","revision":null},{"url":"/assets/apple-touch-startup-image-1242x2148.png","revision":null},{"url":"/ort/ort.node.min.js","revision":null},{"url":"/customizations/segmentation/segmentationAnnotationTools.jsonc","revision":null},{"url":"/assets/apple-touch-icon.png","revision":null},{"url":"/6938.bundle.34415aaeea5935b3.js","revision":null},{"url":"/es6-shim.min.js","revision":null},{"url":"/google.js","revision":null},{"url":"/ort/cjs/ort.min.js","revision":null},{"url":"/assets/images/CT-Cardiac2.png","revision":null},{"url":"/assets/images/MR-Angio.png","revision":null},{"url":"/app.bundle.css","revision":null},{"url":"/ort/esm/ort.training.wasm.min.js","revision":null},{"url":"/assets/android-chrome-36x36.png","revision":null},{"url":"/ort/esm/ort.all.min.js","revision":null},{"url":"/0ddf166f7a343eda.wasm","revision":null},{"url":"/assets/firefox_app_128x128.png","revision":null},{"url":"/assets/images/CT-Muscle.png","revision":null},{"url":"/customizations/tools/smoothRotate.jsonc","revision":null},{"url":"/assets/images/CT-Soft-Tissue.png","revision":null},{"url":"/histogram-worker.bundle.ec5f0cf05ce3909c.js","revision":null},{"url":"/assets/images/CT-Lung.png","revision":null},{"url":"/5130ccb17e3f3f5b.wasm","revision":null},{"url":"/assets/mstile-310x150.png","revision":null},{"url":"/9270.bundle.c84785d8c6dbcffd.js","revision":null},{"url":"/ort/cjs/ort.training.wasm.min.js","revision":null},{"url":"/5696.bundle.edcfbfc789283b9f.js","revision":null},{"url":"/ohif-logo-light.svg","revision":null},{"url":"/ort/cjs/ort.webgl.min.js","revision":null},{"url":"/136.bundle.b948da0438a0a660.js","revision":null},{"url":"/customizations/veterinary/veterinaryOverlay.jsonc","revision":null},{"url":"/compute.bundle.0fc3a3ee85296cf2.js","revision":null},{"url":"/assets/apple-touch-startup-image-1182x2208.png","revision":null},{"url":"/ort/ort-wasm-threaded.wasm","revision":null},{"url":"/9415.bundle.939a5f6b8750e591.js","revision":null},{"url":"/ort/esm/ort.webgpu.min.js","revision":null},{"url":"/2299.bundle.2375af8b16a1702e.js","revision":null},{"url":"/ort/cjs/package.json","revision":null},{"url":"/init-service-worker.js","revision":null},{"url":"/ort/cjs/ort.wasm.min.js","revision":null},{"url":"/assets/images/CT-Fat.png","revision":null},{"url":"/assets/images/MR-T2-Brain.png","revision":null},{"url":"/341.bundle.9b269d53a3b9875b.js","revision":null},{"url":"/5060.bundle.09456fba37e490bf.js","revision":null},{"url":"/ort/ort-wasm-simd.wasm","revision":null},{"url":"/assets/favicon-32x32.png","revision":null},{"url":"/customizations/segmentation/binary.jsonc","revision":null},{"url":"/1673.bundle.76779c7722e8c6c0.js","revision":null},{"url":"/assets/apple-touch-startup-image-640x920.png","revision":null},{"url":"/9415.css","revision":null},{"url":"/6749.bundle.6f0b8d2e08d5bba7.js","revision":null},{"url":"/assets/images/CT-Coronary-Arteries.png","revision":null},{"url":"/4712.bundle.5b97e12639f3c299.js","revision":null},{"url":"/ort/esm/ort.webgl.min.js","revision":null},{"url":"/app-config.js","revision":null},{"url":"/customizations/tools/ctPresets.jsonc","revision":null},{"url":"/assets/android-chrome-384x384.png","revision":null},{"url":"/assets/coast-228x228.png","revision":null},{"url":"/5189.bundle.ae2e6c3b91f526f7.js","revision":null},{"url":"/assets/mstile-70x70.png","revision":null},{"url":"/ort/cjs/ort.all.min.js","revision":null},{"url":"/781.bundle.a948dcc12d7032f4.js","revision":null},{"url":"/ort/esm/package.json","revision":null},{"url":"/4556.bundle.afe15cf044ec5226.js","revision":null},{"url":"/976.css","revision":null},{"url":"/1229.bundle.f721ec472f3d61bf.js","revision":null},{"url":"/dicom-microscopy-viewer/dataLoader.worker.min.js","revision":null},{"url":"/6214.css","revision":null},{"url":"/12.bundle.b4688cdbdd856b75.js","revision":null},{"url":"/app.bundle.cae100772c9eae23.js","revision":null},{"url":"/8832.bundle.08c78ed50060ed15.js","revision":null},{"url":"/8478.bundle.4520037e6185b95f.js","revision":null},{"url":"/1602.bundle.bb0d5eaa9bbbe942.js","revision":null},{"url":"/assets/favicon-16x16.png","revision":null},{"url":"/interpolation.bundle.fa54018d8628f8c0.js","revision":null},{"url":"/ort/ort.wasm-core.min.js","revision":null},{"url":"/assets/images/MR-MIP.png","revision":null},{"url":"/7248.bundle.6919a718dc2d7916.js","revision":null},{"url":"/assets/images/CT-Liver-Vasculature.png","revision":null},{"url":"/5910.bundle.f969465957013c3e.js","revision":null},{"url":"/assets/mstile-150x150.png","revision":null},{"url":"/customizations/veterinary/veterinary.jsonc","revision":null},{"url":"/assets/images/CT-Cardiac.png","revision":null},{"url":"/assets/firefox_app_512x512.png","revision":null},{"url":"/5189.css","revision":null},{"url":"/3332.bundle.ce66b6ddb60945a7.js","revision":null},{"url":"/assets/images/CT-Pulmonary-Arteries.png","revision":null},{"url":"/ort/ort.js","revision":null},{"url":"/customizations/segmentation/segmentationEditing.jsonc","revision":null},{"url":"/assets/images/CT-MIP.png","revision":null},{"url":"/ort/ort-wasm-simd-threaded.jsep.wasm","revision":null},{"url":"/7463.css","revision":null},{"url":"/34b1e6b1deb5828e.wasm","revision":null},{"url":"/assets/images/MR-Default.png","revision":null},{"url":"/assets/android-chrome-144x144.png","revision":null},{"url":"/assets/android-chrome-256x256.png","revision":null},{"url":"/assets/browserconfig.xml","revision":null},{"url":"/customizations/worklist/patientBirthDate.jsonc","revision":null},{"url":"/5448.bundle.ac180bf858959dd5.js","revision":null},{"url":"/7071.bundle.de8df9d95b2ba245.js","revision":null},{"url":"/customizations/tools/measurementLabels.jsonc","revision":null},{"url":"/polyfill.min.js","revision":null},{"url":"/assets/apple-touch-startup-image-640x1096.png","revision":null},{"url":"/1483.bundle.235a698c74fd24b3.js","revision":null},{"url":"/8832.css","revision":null},{"url":"/ort/ort.min.js","revision":null},{"url":"/assets/apple-touch-startup-image-768x1004.png","revision":null},{"url":"/assets/android-chrome-72x72.png","revision":null},{"url":"/ort/ort.webgpu.min.js","revision":null},{"url":"/assets/apple-touch-icon-precomposed.png","revision":null},{"url":"/8033.bundle.8161dea771856d11.js","revision":null},{"url":"/ort/esm/ort.wasm-core.min.js","revision":null},{"url":"/silent-refresh.html","revision":null},{"url":"/7499.bundle.9249385348abc8cb.js","revision":null},{"url":"/assets/yandex-browser-manifest.json","revision":null},{"url":"/6495.bundle.8e8306fedff44999.js","revision":null},{"url":"/6489.bundle.95cb243641a61a2f.js","revision":null},{"url":"/ort/ort-wasm.wasm","revision":null},{"url":"/1180.bundle.df81706e465740df.js","revision":null},{"url":"/3760.css","revision":null},{"url":"/oidc-client.min.js","revision":null},{"url":"/assets/images/CT-Coronary-Arteries-2.png","revision":null},{"url":"/7463.bundle.40668aa8d083d077.js","revision":null},{"url":"/9290.bundle.1f7a97778e12e1c2.js","revision":null},{"url":"/2623.bundle.44c0c8ec6fa40d03.js","revision":null}]);
|
|
65
|
+
workbox.precaching.precacheAndRoute([{"url":"/781.css","revision":null},{"url":"/assets/apple-touch-icon-57x57.png","revision":null},{"url":"/dicom-microscopy-viewer/dicomiccwasm.wasm","revision":null},{"url":"/ort/ort.training.wasm.min.js","revision":null},{"url":"/assets/apple-touch-icon-114x114.png","revision":null},{"url":"/assets/apple-touch-icon-120x120.png","revision":null},{"url":"/dicom-microscopy-viewer/openjpegwasm_decode.wasm","revision":null},{"url":"/100.bundle.f11be0a921cb4e85.js","revision":null},{"url":"/assets/images/VolumeRendering.png","revision":null},{"url":"/assets/images/CT-Bone.png","revision":null},{"url":"/assets/android-chrome-48x48.png","revision":null},{"url":"/3833.css","revision":null},{"url":"/1206.bundle.786e5b556f903028.js","revision":null},{"url":"/8492.css","revision":null},{"url":"/8097.bundle.8ae6404ba94890a0.js","revision":null},{"url":"/assets/images/CT-Chest-Vessels.png","revision":null},{"url":"/assets/images/CT-Coronary-Arteries-3.png","revision":null},{"url":"/9383.bundle.40008913697b48b8.js","revision":null},{"url":"/8423.css","revision":null},{"url":"/assets/android-chrome-192x192.png","revision":null},{"url":"/5910.css","revision":null},{"url":"/assets/apple-touch-icon-76x76.png","revision":null},{"url":"/assets/apple-touch-startup-image-1536x2008.png","revision":null},{"url":"/ort/ort.wasm.min.js","revision":null},{"url":"/8492.bundle.39785564ef29e43d.js","revision":null},{"url":"/1602.css","revision":null},{"url":"/assets/images/DTI-FA-Brain.png","revision":null},{"url":"/app.bundle.c9cee93304900a58.js","revision":null},{"url":"/assets/apple-touch-startup-image-1496x2048.png","revision":null},{"url":"/assets/mstile-310x310.png","revision":null},{"url":"/ort/ort.webgl.min.js","revision":null},{"url":"/assets/android-chrome-96x96.png","revision":null},{"url":"/assets/manifest.webapp","revision":null},{"url":"/assets/apple-touch-icon-72x72.png","revision":null},{"url":"/customizations/segmentation/uncompressed.jsonc","revision":null},{"url":"/ort/ort.all.js","revision":null},{"url":"/ort/esm/ort.wasm.min.js","revision":null},{"url":"/ort/ort-wasm-simd-threaded.wasm","revision":null},{"url":"/assets/images/CT-AAA.png","revision":null},{"url":"/assets/yandex-browser-50x50.png","revision":null},{"url":"/assets/images/CT-AAA2.png","revision":null},{"url":"/assets/android-chrome-512x512.png","revision":null},{"url":"/6758.bundle.b174316beaf1a9a5.js","revision":null},{"url":"/ort/cjs/ort.webgpu.min.js","revision":null},{"url":"/assets/images/CT-Cardiac3.png","revision":null},{"url":"/assets/images/CT-Chest-Contrast-Enhanced.png","revision":null},{"url":"/_headers","revision":null},{"url":"/2623.css","revision":null},{"url":"/assets/apple-touch-icon-152x152.png","revision":null},{"url":"/assets/apple-touch-icon-167x167.png","revision":null},{"url":"/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm","revision":null},{"url":"/assets/apple-touch-startup-image-320x460.png","revision":null},{"url":"/3760.bundle.16f9f50d52771ffc.js","revision":null},{"url":"/manifest.json","revision":null},{"url":"/ort/ort-wasm-simd.jsep.wasm","revision":null},{"url":"/9290.bundle.77bef0d11caf6b43.js","revision":null},{"url":"/a34f9d1faa5f3315.woff2","revision":null},{"url":"/3500.bundle.86c37007114ef2a2.js","revision":null},{"url":"/serve.json","revision":null},{"url":"/ort/cjs/ort.wasm-core.min.js","revision":null},{"url":"/89.bundle.2585645860c98cc2.js","revision":null},{"url":"/assets/images/CT-Bones.png","revision":null},{"url":"/assets/apple-touch-icon-144x144.png","revision":null},{"url":"/assets/apple-touch-icon-180x180.png","revision":null},{"url":"/assets/apple-touch-icon-1024x1024.png","revision":null},{"url":"/assets/images/CT-Cropped-Volume-Bone.png","revision":null},{"url":"/5406.bundle.4dcfa7c697973300.js","revision":null},{"url":"/1180.bundle.2d9ea30c57f234bb.js","revision":null},{"url":"/7248.bundle.cb725f90fdcaaa98.js","revision":null},{"url":"/ort/esm/ort.min.js","revision":null},{"url":"/dicom-microscopy-viewer/charlswasm_decode.wasm","revision":null},{"url":"/_redirects","revision":null},{"url":"/index.html","revision":null},{"url":"/1483.bundle.067ff45a0bd998bf.js","revision":null},{"url":"/8423.bundle.d1d3cf2232b82988.js","revision":null},{"url":"/assets/firefox_app_60x60.png","revision":null},{"url":"/assets/mstile-144x144.png","revision":null},{"url":"/9068.bundle.e1d5946c370fd4ee.js","revision":null},{"url":"/assets/apple-touch-startup-image-748x1024.png","revision":null},{"url":"/3552.bundle.da459dba452ba7a2.js","revision":null},{"url":"/899.bundle.3ea5c8d021b1e60d.js","revision":null},{"url":"/assets/apple-touch-startup-image-750x1294.png","revision":null},{"url":"/5731.bundle.694bce33e168bf29.js","revision":null},{"url":"/assets/favicon.ico","revision":null},{"url":"/assets/apple-touch-icon-60x60.png","revision":null},{"url":"/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js","revision":null},{"url":"/ohif-logo.svg","revision":null},{"url":"/ort/ort.all.min.js","revision":null},{"url":"/7841.bundle.58ac0fd73e8a784f.js","revision":null},{"url":"/5302.bundle.d6194babac4a763e.js","revision":null},{"url":"/37fa160cc3a47cfd.wasm","revision":null},{"url":"/ort/ort-training-wasm-simd.wasm","revision":null},{"url":"/2779.bundle.17128e8949bc4a2d.js","revision":null},{"url":"/2493.bundle.c4af70e46357151f.js","revision":null},{"url":"/assets/images/CT-Air.png","revision":null},{"url":"/776f756dd939124e.wasm","revision":null},{"url":"/7964.bundle.b72dd7b70fa710fb.js","revision":null},{"url":"/customizations/index.html","revision":null},{"url":"/polySeg.bundle.2c5892e4c5a6bdd5.js","revision":null},{"url":"/assets/apple-touch-startup-image-1242x2148.png","revision":null},{"url":"/ort/ort.node.min.js","revision":null},{"url":"/customizations/segmentation/segmentationAnnotationTools.jsonc","revision":null},{"url":"/assets/apple-touch-icon.png","revision":null},{"url":"/6938.bundle.34415aaeea5935b3.js","revision":null},{"url":"/es6-shim.min.js","revision":null},{"url":"/google.js","revision":null},{"url":"/ort/cjs/ort.min.js","revision":null},{"url":"/assets/images/CT-Cardiac2.png","revision":null},{"url":"/assets/images/MR-Angio.png","revision":null},{"url":"/app.bundle.css","revision":null},{"url":"/ort/esm/ort.training.wasm.min.js","revision":null},{"url":"/4556.bundle.2de24b5ad059eebb.js","revision":null},{"url":"/assets/android-chrome-36x36.png","revision":null},{"url":"/ort/esm/ort.all.min.js","revision":null},{"url":"/0ddf166f7a343eda.wasm","revision":null},{"url":"/assets/firefox_app_128x128.png","revision":null},{"url":"/assets/images/CT-Muscle.png","revision":null},{"url":"/customizations/tools/smoothRotate.jsonc","revision":null},{"url":"/assets/images/CT-Soft-Tissue.png","revision":null},{"url":"/histogram-worker.bundle.ec5f0cf05ce3909c.js","revision":null},{"url":"/assets/images/CT-Lung.png","revision":null},{"url":"/4683.bundle.e3a8f3c2d3236e66.js","revision":null},{"url":"/5130ccb17e3f3f5b.wasm","revision":null},{"url":"/9270.bundle.c84785d8c6dbcffd.js","revision":null},{"url":"/assets/mstile-310x150.png","revision":null},{"url":"/ort/cjs/ort.training.wasm.min.js","revision":null},{"url":"/8832.bundle.12ea9c13b00a1504.js","revision":null},{"url":"/ohif-logo-light.svg","revision":null},{"url":"/ort/cjs/ort.webgl.min.js","revision":null},{"url":"/136.bundle.b948da0438a0a660.js","revision":null},{"url":"/customizations/veterinary/veterinaryOverlay.jsonc","revision":null},{"url":"/compute.bundle.0fc3a3ee85296cf2.js","revision":null},{"url":"/assets/apple-touch-startup-image-1182x2208.png","revision":null},{"url":"/ort/ort-wasm-threaded.wasm","revision":null},{"url":"/ort/esm/ort.webgpu.min.js","revision":null},{"url":"/2299.bundle.2375af8b16a1702e.js","revision":null},{"url":"/ort/cjs/package.json","revision":null},{"url":"/init-service-worker.js","revision":null},{"url":"/ort/cjs/ort.wasm.min.js","revision":null},{"url":"/9116.bundle.23095a73825f3e48.js","revision":null},{"url":"/assets/images/CT-Fat.png","revision":null},{"url":"/assets/images/MR-T2-Brain.png","revision":null},{"url":"/341.bundle.9b269d53a3b9875b.js","revision":null},{"url":"/5060.bundle.09456fba37e490bf.js","revision":null},{"url":"/781.bundle.efddbf6ed49a1d19.js","revision":null},{"url":"/ort/ort-wasm-simd.wasm","revision":null},{"url":"/assets/favicon-32x32.png","revision":null},{"url":"/customizations/segmentation/binary.jsonc","revision":null},{"url":"/1673.bundle.76779c7722e8c6c0.js","revision":null},{"url":"/assets/apple-touch-startup-image-640x920.png","revision":null},{"url":"/9415.css","revision":null},{"url":"/assets/images/CT-Coronary-Arteries.png","revision":null},{"url":"/4712.bundle.5b97e12639f3c299.js","revision":null},{"url":"/ort/esm/ort.webgl.min.js","revision":null},{"url":"/6749.bundle.4410d977a2920c78.js","revision":null},{"url":"/app-config.js","revision":null},{"url":"/customizations/tools/ctPresets.jsonc","revision":null},{"url":"/assets/android-chrome-384x384.png","revision":null},{"url":"/9437.bundle.26d6aeb36856d782.js","revision":null},{"url":"/assets/coast-228x228.png","revision":null},{"url":"/5189.bundle.ae2e6c3b91f526f7.js","revision":null},{"url":"/assets/mstile-70x70.png","revision":null},{"url":"/ort/cjs/ort.all.min.js","revision":null},{"url":"/ort/esm/package.json","revision":null},{"url":"/976.css","revision":null},{"url":"/5696.bundle.4393e87706f9d481.js","revision":null},{"url":"/1229.bundle.f721ec472f3d61bf.js","revision":null},{"url":"/dicom-microscopy-viewer/dataLoader.worker.min.js","revision":null},{"url":"/6214.css","revision":null},{"url":"/12.bundle.b4688cdbdd856b75.js","revision":null},{"url":"/8478.bundle.4520037e6185b95f.js","revision":null},{"url":"/assets/favicon-16x16.png","revision":null},{"url":"/interpolation.bundle.fa54018d8628f8c0.js","revision":null},{"url":"/ort/ort.wasm-core.min.js","revision":null},{"url":"/assets/images/MR-MIP.png","revision":null},{"url":"/assets/images/CT-Liver-Vasculature.png","revision":null},{"url":"/5910.bundle.f969465957013c3e.js","revision":null},{"url":"/assets/mstile-150x150.png","revision":null},{"url":"/customizations/veterinary/veterinary.jsonc","revision":null},{"url":"/assets/images/CT-Cardiac.png","revision":null},{"url":"/assets/firefox_app_512x512.png","revision":null},{"url":"/5189.css","revision":null},{"url":"/3332.bundle.ce66b6ddb60945a7.js","revision":null},{"url":"/assets/images/CT-Pulmonary-Arteries.png","revision":null},{"url":"/ort/ort.js","revision":null},{"url":"/customizations/segmentation/segmentationEditing.jsonc","revision":null},{"url":"/assets/images/CT-MIP.png","revision":null},{"url":"/ort/ort-wasm-simd-threaded.jsep.wasm","revision":null},{"url":"/7463.css","revision":null},{"url":"/7499.bundle.555efeb709e90aa9.js","revision":null},{"url":"/assets/images/MR-Default.png","revision":null},{"url":"/34b1e6b1deb5828e.wasm","revision":null},{"url":"/assets/android-chrome-144x144.png","revision":null},{"url":"/assets/android-chrome-256x256.png","revision":null},{"url":"/assets/browserconfig.xml","revision":null},{"url":"/5448.bundle.ac180bf858959dd5.js","revision":null},{"url":"/customizations/worklist/patientBirthDate.jsonc","revision":null},{"url":"/7071.bundle.de8df9d95b2ba245.js","revision":null},{"url":"/customizations/tools/measurementLabels.jsonc","revision":null},{"url":"/polyfill.min.js","revision":null},{"url":"/assets/apple-touch-startup-image-640x1096.png","revision":null},{"url":"/8832.css","revision":null},{"url":"/ort/ort.min.js","revision":null},{"url":"/assets/apple-touch-startup-image-768x1004.png","revision":null},{"url":"/assets/android-chrome-72x72.png","revision":null},{"url":"/ort/ort.webgpu.min.js","revision":null},{"url":"/assets/apple-touch-icon-precomposed.png","revision":null},{"url":"/8033.bundle.8161dea771856d11.js","revision":null},{"url":"/ort/esm/ort.wasm-core.min.js","revision":null},{"url":"/silent-refresh.html","revision":null},{"url":"/9415.bundle.eb42a435d1111e97.js","revision":null},{"url":"/assets/yandex-browser-manifest.json","revision":null},{"url":"/6495.bundle.8e8306fedff44999.js","revision":null},{"url":"/6489.bundle.95cb243641a61a2f.js","revision":null},{"url":"/ort/ort-wasm.wasm","revision":null},{"url":"/3760.css","revision":null},{"url":"/1602.bundle.e5d51e96cad709c8.js","revision":null},{"url":"/oidc-client.min.js","revision":null},{"url":"/assets/images/CT-Coronary-Arteries-2.png","revision":null},{"url":"/7463.bundle.40668aa8d083d077.js","revision":null},{"url":"/2623.bundle.44c0c8ec6fa40d03.js","revision":null}]);
|
|
66
66
|
|
|
67
67
|
// TODO: Cache API
|
|
68
68
|
// https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohif/app",
|
|
3
|
-
"version": "3.14.0-beta.
|
|
3
|
+
"version": "3.14.0-beta.6",
|
|
4
4
|
"productVersion": "3.4.0",
|
|
5
5
|
"description": "OHIF Viewer",
|
|
6
6
|
"author": "OHIF Contributors",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"shepherd.js": "15.2.2",
|
|
58
58
|
"url-loader": "4.1.1",
|
|
59
59
|
"zustand": "4.5.5",
|
|
60
|
-
"@ohif/core": "3.14.0-beta.
|
|
61
|
-
"@ohif/
|
|
62
|
-
"@ohif/ui": "3.14.0-beta.
|
|
63
|
-
"@ohif/
|
|
60
|
+
"@ohif/core": "3.14.0-beta.6",
|
|
61
|
+
"@ohif/ui-next": "3.14.0-beta.6",
|
|
62
|
+
"@ohif/ui": "3.14.0-beta.6",
|
|
63
|
+
"@ohif/i18n": "3.14.0-beta.6"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@babel/plugin-transform-private-methods": "7.29.7",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|