cod-dicomweb-server 1.3.14 → 1.3.16

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/cjs/main.js CHANGED
@@ -2730,19 +2730,57 @@ var CodDicomWebServer = /*#__PURE__*/function () {
2730
2730
  }()
2731
2731
  }, {
2732
2732
  key: "downloadSeriesFile",
2733
- value: function downloadSeriesFile(seriesInstanceUID) {
2734
- var _Array$from$find;
2735
- var seriesFileURL = (_Array$from$find = Array.from(this.seriesUidFileUrls[seriesInstanceUID]).find(function (_ref3) {
2736
- var url = _ref3.url,
2737
- type = _ref3.type;
2738
- return type === URLType.FILE && url.endsWith('.tar');
2739
- })) === null || _Array$from$find === void 0 ? void 0 : _Array$from$find.url;
2740
- if (seriesFileURL) {
2741
- var seriesArrayBuffer = this.fileManager.get(seriesFileURL);
2742
- return download(seriesFileURL.split('/').at(-1), seriesArrayBuffer);
2733
+ value: function () {
2734
+ var _downloadSeriesFile = CodDicomWebServer_asyncToGenerator(/*#__PURE__*/CodDicomWebServer_regeneratorRuntime().mark(function _callee3(seriesInstanceUID) {
2735
+ var _Array$from$find;
2736
+ var seriesFileURL, _seriesArrayBuffer, seriesArrayBuffer, directoryHandle, fileSystemFile;
2737
+ return CodDicomWebServer_regeneratorRuntime().wrap(function _callee3$(_context3) {
2738
+ while (1) switch (_context3.prev = _context3.next) {
2739
+ case 0:
2740
+ seriesFileURL = (_Array$from$find = Array.from(this.seriesUidFileUrls[seriesInstanceUID]).find(function (_ref3) {
2741
+ var url = _ref3.url,
2742
+ type = _ref3.type;
2743
+ return type === URLType.FILE && url.endsWith('.tar');
2744
+ })) === null || _Array$from$find === void 0 ? void 0 : _Array$from$find.url;
2745
+ if (!seriesFileURL) {
2746
+ _context3.next = 14;
2747
+ break;
2748
+ }
2749
+ seriesArrayBuffer = this.fileManager.get(seriesFileURL);
2750
+ if ((_seriesArrayBuffer = seriesArrayBuffer) !== null && _seriesArrayBuffer !== void 0 && _seriesArrayBuffer.byteLength) {
2751
+ _context3.next = 13;
2752
+ break;
2753
+ }
2754
+ _context3.next = 6;
2755
+ return getDirectoryHandle();
2756
+ case 6:
2757
+ directoryHandle = _context3.sent;
2758
+ _context3.next = 9;
2759
+ return readFile(directoryHandle, createStreamingFileName(seriesFileURL));
2760
+ case 9:
2761
+ fileSystemFile = _context3.sent;
2762
+ if (fileSystemFile !== null && fileSystemFile !== void 0 && fileSystemFile.byteLength) {
2763
+ _context3.next = 12;
2764
+ break;
2765
+ }
2766
+ return _context3.abrupt("return", false);
2767
+ case 12:
2768
+ seriesArrayBuffer = new Uint8Array(fileSystemFile);
2769
+ case 13:
2770
+ return _context3.abrupt("return", download(seriesFileURL.split('/').at(-1), seriesArrayBuffer.buffer));
2771
+ case 14:
2772
+ return _context3.abrupt("return", false);
2773
+ case 15:
2774
+ case "end":
2775
+ return _context3.stop();
2776
+ }
2777
+ }, _callee3, this);
2778
+ }));
2779
+ function downloadSeriesFile(_x4) {
2780
+ return _downloadSeriesFile.apply(this, arguments);
2743
2781
  }
2744
- return false;
2745
- }
2782
+ return downloadSeriesFile;
2783
+ }()
2746
2784
  }, {
2747
2785
  key: "delete",
2748
2786
  value: function _delete(seriesInstanceUID) {
@@ -18,7 +18,7 @@ declare class CodDicomWebServer {
18
18
  addFileUrl(seriesInstanceUID: string, type: Enums.URLType, url: string): void;
19
19
  fetchCod(wadorsUrl: string, headers?: Record<string, string> | undefined, { useSharedArrayBuffer, fetchType }?: CODRequestOptions): Promise<ArrayBufferLike | InstanceMetadata | SeriesMetadata | undefined>;
20
20
  fetchFile(fileUrl: string, headers: Record<string, string>, { offsets, useSharedArrayBuffer, fetchType }?: FileRequestOptions): Promise<ArrayBufferLike | undefined>;
21
- downloadSeriesFile(seriesInstanceUID: string): boolean;
21
+ downloadSeriesFile(seriesInstanceUID: string): Promise<boolean>;
22
22
  delete(seriesInstanceUID: string): void;
23
23
  deleteAll(): void;
24
24
  parseMetadata(metadata: JsonMetadata, type: Enums.RequestType, sopInstanceUID: string): InstanceMetadata | SeriesMetadata;
@@ -7,7 +7,7 @@ import constants, { Enums } from '../constants';
7
7
  import { getDataRetrievalManager } from '../dataRetrieval/dataRetrievalManager';
8
8
  import { CustomError } from './customClasses';
9
9
  import { CustomErrorEvent } from './customClasses';
10
- import { download, getDirectoryHandle } from '../fileAccessSystemUtils';
10
+ import { createStreamingFileName, download, getDirectoryHandle, readFile } from '../fileAccessSystemUtils';
11
11
  class CodDicomWebServer {
12
12
  filePromises = {};
13
13
  files = {};
@@ -337,11 +337,19 @@ class CodDicomWebServer {
337
337
  });
338
338
  });
339
339
  }
340
- downloadSeriesFile(seriesInstanceUID) {
340
+ async downloadSeriesFile(seriesInstanceUID) {
341
341
  const seriesFileURL = Array.from(this.seriesUidFileUrls[seriesInstanceUID]).find(({ url, type }) => type === Enums.URLType.FILE && url.endsWith('.tar'))?.url;
342
342
  if (seriesFileURL) {
343
- const seriesArrayBuffer = this.fileManager.get(seriesFileURL);
344
- return download(seriesFileURL.split('/').at(-1), seriesArrayBuffer);
343
+ let seriesArrayBuffer = this.fileManager.get(seriesFileURL);
344
+ if (!seriesArrayBuffer?.byteLength) {
345
+ const directoryHandle = await getDirectoryHandle();
346
+ const fileSystemFile = (await readFile(directoryHandle, createStreamingFileName(seriesFileURL)));
347
+ if (!fileSystemFile?.byteLength) {
348
+ return false;
349
+ }
350
+ seriesArrayBuffer = new Uint8Array(fileSystemFile);
351
+ }
352
+ return download(seriesFileURL.split('/').at(-1), seriesArrayBuffer.buffer);
345
353
  }
346
354
  return false;
347
355
  }
package/dist/umd/563.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * cod-dicomweb-server v1.3.14
3
+ * cod-dicomweb-server v1.3.16
4
4
  * git+https://github.com/gradienthealth/cod-dicomweb-server.git
5
5
  *
6
6
  * Copyright (c) Adithyan Dinesh and project contributors.
package/dist/umd/846.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * cod-dicomweb-server v1.3.14
3
+ * cod-dicomweb-server v1.3.16
4
4
  * git+https://github.com/gradienthealth/cod-dicomweb-server.git
5
5
  *
6
6
  * Copyright (c) Adithyan Dinesh and project contributors.