@ubercode/dcmtk 0.12.1 → 0.13.1

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.
@@ -1,6 +1,6 @@
1
- export { A as AssociationAcknowledgedData, a as AssociationCompleteData, b as AssociationContext, c as AssociationReceivedData, d as AssociationSummary, e as AssociationTracker, C as CStoreRequestData, f as CannotStartListenerData, g as ConfigErrorData, D as DCMPRSCP_FATAL_EVENTS, h as DCMPRSCP_PATTERNS, i as DCMPSRCV_FATAL_EVENTS, j as DCMPSRCV_PATTERNS, k as DCMQRSCP_FATAL_EVENTS, l as DCMQRSCP_PATTERNS, m as DCMRECV_FATAL_EVENTS, n as DCMRECV_PATTERNS, o as DatabaseReadyData, p as DcmQRSCP, q as DcmQRSCPEventMap, r as DcmQRSCPOptions, s as DcmprsCP, t as DcmprsCPEventMap, u as DcmprsCPOptions, v as DcmprscpEvent, w as DcmprscpEventValue, x as Dcmpsrcv, y as DcmpsrcvEvent, z as DcmpsrcvEventMap, B as DcmpsrcvEventValue, E as DcmpsrcvOptions, F as DcmqrscpEvent, G as DcmqrscpEventValue, H as Dcmrecv, I as DcmrecvEvent, J as DcmrecvEventMap, K as DcmrecvEventValue, L as DcmrecvOptions, M as DcmtkProcess, N as DcmtkProcessConfig, O as DcmtkProcessEventMap, P as DicomReceiver, Q as DicomReceiverEventMap, R as DicomReceiverOptions, S as EventPattern, T as FileDeletedData, U as FileReceivedData, V as FilenameMode, W as FilenameModeValue, X as LineParser, Y as LineParserEventMap, Z as MultiLineConfig, a2 as PoolStatus, a3 as PreferredTransferSyntax, a4 as PreferredTransferSyntaxValue, a5 as PrintAssociationAcknowledgedData, a6 as PrintAssociationReceivedData, a7 as PrintCannotStartListenerData, a8 as ProcessState, a9 as ProcessStateValue, aa as QRAssociationAcknowledgedData, ab as QRAssociationReceivedData, ac as QRCFindRequestData, ad as QRCGetRequestData, ae as QRCMoveRequestData, af as QRCStoreRequestData, ag as QRCannotStartListenerData, ah as QRListeningData, ai as ReceiverAssociationAcknowledgedData, aj as ReceiverAssociationData, ak as ReceiverAssociationFinalizedData, al as ReceiverAssociationReceivedData, am as ReceiverCStoreRequestData, an as ReceiverCannotStartListenerData, ao as ReceiverConfigErrorData, ap as ReceiverDatabaseReadyData, aq as ReceiverEchoRequestData, ar as ReceiverErrorData, as as ReceiverFileData, at as ReceiverFileReceivedData, au as ReceiverFileStoredData, av as ReceiverInstanceData, aw as ReceiverInstanceErrorData, ax as ReceiverListeningData, ay as RefusingAssociationData, az as STORESCP_FATAL_EVENTS, aA as STORESCP_PATTERNS, aB as StorageMode, aC as StorageModeValue, aD as StoreSCP, aE as StoreSCPEventMap, aF as StoreSCPOptions, aG as StoreSCPPreset, aH as StoreSCPPresetName, aI as StoredFileData, aJ as StorescpEvent, aK as StorescpEventValue, aL as StoringFileData, aM as SubdirectoryCreatedData, aN as SubdirectoryMode, aO as SubdirectoryModeValue, aP as TrackedFile, aQ as WLMSCPFS_FATAL_EVENTS, aR as WLMSCPFS_PATTERNS, aS as WlmAssociationAcknowledgedData, aT as WlmAssociationReceivedData, aU as WlmCFindRequestData, aV as WlmCannotStartListenerData, aW as WlmListeningData, aX as Wlmscpfs, aY as WlmscpfsEvent, aZ as WlmscpfsEventMap, a_ as WlmscpfsEventValue, a$ as WlmscpfsOptions } from './index-DV8HaHEX.cjs';
1
+ export { A as AssociationAcknowledgedData, a as AssociationCompleteData, b as AssociationContext, c as AssociationReceivedData, d as AssociationSummary, e as AssociationTracker, C as CStoreRequestData, f as CannotStartListenerData, g as ConfigErrorData, D as DCMPRSCP_FATAL_EVENTS, h as DCMPRSCP_PATTERNS, i as DCMPSRCV_FATAL_EVENTS, j as DCMPSRCV_PATTERNS, k as DCMQRSCP_FATAL_EVENTS, l as DCMQRSCP_PATTERNS, m as DCMRECV_FATAL_EVENTS, n as DCMRECV_PATTERNS, o as DatabaseReadyData, p as DcmQRSCP, q as DcmQRSCPEventMap, r as DcmQRSCPOptions, s as DcmprsCP, t as DcmprsCPEventMap, u as DcmprsCPOptions, v as DcmprscpEvent, w as DcmprscpEventValue, x as Dcmpsrcv, y as DcmpsrcvEvent, z as DcmpsrcvEventMap, B as DcmpsrcvEventValue, E as DcmpsrcvOptions, F as DcmqrscpEvent, G as DcmqrscpEventValue, H as Dcmrecv, I as DcmrecvEvent, J as DcmrecvEventMap, K as DcmrecvEventValue, L as DcmrecvOptions, M as DcmtkProcess, N as DcmtkProcessConfig, O as DcmtkProcessEventMap, P as DicomReceiver, Q as DicomReceiverEventMap, R as DicomReceiverOptions, S as EventPattern, T as FileDeletedData, U as FileReceivedData, V as FilenameMode, W as FilenameModeValue, X as LineParser, Y as LineParserEventMap, Z as MultiLineConfig, a2 as PoolStatus, a3 as PreferredTransferSyntax, a4 as PreferredTransferSyntaxValue, a5 as PrintAssociationAcknowledgedData, a6 as PrintAssociationReceivedData, a7 as PrintCannotStartListenerData, a8 as ProcessState, a9 as ProcessStateValue, aa as QRAssociationAcknowledgedData, ab as QRAssociationReceivedData, ac as QRCFindRequestData, ad as QRCGetRequestData, ae as QRCMoveRequestData, af as QRCStoreRequestData, ag as QRCannotStartListenerData, ah as QRListeningData, ai as ReceiverAssociationAcknowledgedData, aj as ReceiverAssociationData, ak as ReceiverAssociationFinalizedData, al as ReceiverAssociationReceivedData, am as ReceiverCStoreRequestData, an as ReceiverCannotStartListenerData, ao as ReceiverConfigErrorData, ap as ReceiverDatabaseReadyData, aq as ReceiverEchoRequestData, ar as ReceiverErrorData, as as ReceiverFileData, at as ReceiverFileReceivedData, au as ReceiverFileStoredData, av as ReceiverInstanceData, aw as ReceiverInstanceErrorData, ax as ReceiverListeningData, ay as RefusingAssociationData, az as STORESCP_FATAL_EVENTS, aA as STORESCP_PATTERNS, aB as StorageMode, aC as StorageModeValue, aD as StoreSCP, aE as StoreSCPEventMap, aF as StoreSCPOptions, aG as StoreSCPPreset, aH as StoreSCPPresetName, aI as StoredFileData, aJ as StorescpEvent, aK as StorescpEventValue, aL as StoringFileData, aM as SubdirectoryCreatedData, aN as SubdirectoryMode, aO as SubdirectoryModeValue, aP as TrackedFile, aQ as WLMSCPFS_FATAL_EVENTS, aR as WLMSCPFS_PATTERNS, aS as WlmAssociationAcknowledgedData, aT as WlmAssociationReceivedData, aU as WlmCFindRequestData, aV as WlmCannotStartListenerData, aW as WlmListeningData, aX as Wlmscpfs, aY as WlmscpfsEvent, aZ as WlmscpfsEventMap, a_ as WlmscpfsEventValue, a$ as WlmscpfsOptions } from './index-Bve4fMIh.cjs';
2
2
  import './types-Cgumy1N4.cjs';
3
3
  import 'node:events';
4
4
  import 'node:net';
5
- import './DicomInstance-CxLKC-oM.cjs';
5
+ import './DicomInstance-BGXtON9T.cjs';
6
6
  import './dcmodify-Cf-RPHF3.cjs';
package/dist/servers.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { A as AssociationAcknowledgedData, a as AssociationCompleteData, b as AssociationContext, c as AssociationReceivedData, d as AssociationSummary, e as AssociationTracker, C as CStoreRequestData, f as CannotStartListenerData, g as ConfigErrorData, D as DCMPRSCP_FATAL_EVENTS, h as DCMPRSCP_PATTERNS, i as DCMPSRCV_FATAL_EVENTS, j as DCMPSRCV_PATTERNS, k as DCMQRSCP_FATAL_EVENTS, l as DCMQRSCP_PATTERNS, m as DCMRECV_FATAL_EVENTS, n as DCMRECV_PATTERNS, o as DatabaseReadyData, p as DcmQRSCP, q as DcmQRSCPEventMap, r as DcmQRSCPOptions, s as DcmprsCP, t as DcmprsCPEventMap, u as DcmprsCPOptions, v as DcmprscpEvent, w as DcmprscpEventValue, x as Dcmpsrcv, y as DcmpsrcvEvent, z as DcmpsrcvEventMap, B as DcmpsrcvEventValue, E as DcmpsrcvOptions, F as DcmqrscpEvent, G as DcmqrscpEventValue, H as Dcmrecv, I as DcmrecvEvent, J as DcmrecvEventMap, K as DcmrecvEventValue, L as DcmrecvOptions, M as DcmtkProcess, N as DcmtkProcessConfig, O as DcmtkProcessEventMap, P as DicomReceiver, Q as DicomReceiverEventMap, R as DicomReceiverOptions, S as EventPattern, T as FileDeletedData, U as FileReceivedData, V as FilenameMode, W as FilenameModeValue, X as LineParser, Y as LineParserEventMap, Z as MultiLineConfig, a2 as PoolStatus, a3 as PreferredTransferSyntax, a4 as PreferredTransferSyntaxValue, a5 as PrintAssociationAcknowledgedData, a6 as PrintAssociationReceivedData, a7 as PrintCannotStartListenerData, a8 as ProcessState, a9 as ProcessStateValue, aa as QRAssociationAcknowledgedData, ab as QRAssociationReceivedData, ac as QRCFindRequestData, ad as QRCGetRequestData, ae as QRCMoveRequestData, af as QRCStoreRequestData, ag as QRCannotStartListenerData, ah as QRListeningData, ai as ReceiverAssociationAcknowledgedData, aj as ReceiverAssociationData, ak as ReceiverAssociationFinalizedData, al as ReceiverAssociationReceivedData, am as ReceiverCStoreRequestData, an as ReceiverCannotStartListenerData, ao as ReceiverConfigErrorData, ap as ReceiverDatabaseReadyData, aq as ReceiverEchoRequestData, ar as ReceiverErrorData, as as ReceiverFileData, at as ReceiverFileReceivedData, au as ReceiverFileStoredData, av as ReceiverInstanceData, aw as ReceiverInstanceErrorData, ax as ReceiverListeningData, ay as RefusingAssociationData, az as STORESCP_FATAL_EVENTS, aA as STORESCP_PATTERNS, aB as StorageMode, aC as StorageModeValue, aD as StoreSCP, aE as StoreSCPEventMap, aF as StoreSCPOptions, aG as StoreSCPPreset, aH as StoreSCPPresetName, aI as StoredFileData, aJ as StorescpEvent, aK as StorescpEventValue, aL as StoringFileData, aM as SubdirectoryCreatedData, aN as SubdirectoryMode, aO as SubdirectoryModeValue, aP as TrackedFile, aQ as WLMSCPFS_FATAL_EVENTS, aR as WLMSCPFS_PATTERNS, aS as WlmAssociationAcknowledgedData, aT as WlmAssociationReceivedData, aU as WlmCFindRequestData, aV as WlmCannotStartListenerData, aW as WlmListeningData, aX as Wlmscpfs, aY as WlmscpfsEvent, aZ as WlmscpfsEventMap, a_ as WlmscpfsEventValue, a$ as WlmscpfsOptions } from './index-B5FQoIqM.js';
1
+ export { A as AssociationAcknowledgedData, a as AssociationCompleteData, b as AssociationContext, c as AssociationReceivedData, d as AssociationSummary, e as AssociationTracker, C as CStoreRequestData, f as CannotStartListenerData, g as ConfigErrorData, D as DCMPRSCP_FATAL_EVENTS, h as DCMPRSCP_PATTERNS, i as DCMPSRCV_FATAL_EVENTS, j as DCMPSRCV_PATTERNS, k as DCMQRSCP_FATAL_EVENTS, l as DCMQRSCP_PATTERNS, m as DCMRECV_FATAL_EVENTS, n as DCMRECV_PATTERNS, o as DatabaseReadyData, p as DcmQRSCP, q as DcmQRSCPEventMap, r as DcmQRSCPOptions, s as DcmprsCP, t as DcmprsCPEventMap, u as DcmprsCPOptions, v as DcmprscpEvent, w as DcmprscpEventValue, x as Dcmpsrcv, y as DcmpsrcvEvent, z as DcmpsrcvEventMap, B as DcmpsrcvEventValue, E as DcmpsrcvOptions, F as DcmqrscpEvent, G as DcmqrscpEventValue, H as Dcmrecv, I as DcmrecvEvent, J as DcmrecvEventMap, K as DcmrecvEventValue, L as DcmrecvOptions, M as DcmtkProcess, N as DcmtkProcessConfig, O as DcmtkProcessEventMap, P as DicomReceiver, Q as DicomReceiverEventMap, R as DicomReceiverOptions, S as EventPattern, T as FileDeletedData, U as FileReceivedData, V as FilenameMode, W as FilenameModeValue, X as LineParser, Y as LineParserEventMap, Z as MultiLineConfig, a2 as PoolStatus, a3 as PreferredTransferSyntax, a4 as PreferredTransferSyntaxValue, a5 as PrintAssociationAcknowledgedData, a6 as PrintAssociationReceivedData, a7 as PrintCannotStartListenerData, a8 as ProcessState, a9 as ProcessStateValue, aa as QRAssociationAcknowledgedData, ab as QRAssociationReceivedData, ac as QRCFindRequestData, ad as QRCGetRequestData, ae as QRCMoveRequestData, af as QRCStoreRequestData, ag as QRCannotStartListenerData, ah as QRListeningData, ai as ReceiverAssociationAcknowledgedData, aj as ReceiverAssociationData, ak as ReceiverAssociationFinalizedData, al as ReceiverAssociationReceivedData, am as ReceiverCStoreRequestData, an as ReceiverCannotStartListenerData, ao as ReceiverConfigErrorData, ap as ReceiverDatabaseReadyData, aq as ReceiverEchoRequestData, ar as ReceiverErrorData, as as ReceiverFileData, at as ReceiverFileReceivedData, au as ReceiverFileStoredData, av as ReceiverInstanceData, aw as ReceiverInstanceErrorData, ax as ReceiverListeningData, ay as RefusingAssociationData, az as STORESCP_FATAL_EVENTS, aA as STORESCP_PATTERNS, aB as StorageMode, aC as StorageModeValue, aD as StoreSCP, aE as StoreSCPEventMap, aF as StoreSCPOptions, aG as StoreSCPPreset, aH as StoreSCPPresetName, aI as StoredFileData, aJ as StorescpEvent, aK as StorescpEventValue, aL as StoringFileData, aM as SubdirectoryCreatedData, aN as SubdirectoryMode, aO as SubdirectoryModeValue, aP as TrackedFile, aQ as WLMSCPFS_FATAL_EVENTS, aR as WLMSCPFS_PATTERNS, aS as WlmAssociationAcknowledgedData, aT as WlmAssociationReceivedData, aU as WlmCFindRequestData, aV as WlmCannotStartListenerData, aW as WlmListeningData, aX as Wlmscpfs, aY as WlmscpfsEvent, aZ as WlmscpfsEventMap, a_ as WlmscpfsEventValue, a$ as WlmscpfsOptions } from './index-CZiFWENk.js';
2
2
  import './types-Cgumy1N4.js';
3
3
  import 'node:events';
4
4
  import 'node:net';
5
- import './DicomInstance-BKUiir0G.js';
5
+ import './DicomInstance-DGWB2mfD.js';
6
6
  import './dcmodify-CHvwChFu.js';
package/dist/servers.js CHANGED
@@ -2287,6 +2287,7 @@ var Dcm2jsonOptionsSchema = z.object({
2287
2287
  signal: z.instanceof(AbortSignal).optional(),
2288
2288
  directOnly: z.boolean().optional(),
2289
2289
  charsetAssume: z.string().min(1).optional(),
2290
+ charsetFallback: z.string().min(1).optional(),
2290
2291
  verbosity: z.enum(["verbose", "debug"]).optional()
2291
2292
  }).strict().optional();
2292
2293
  var VERBOSITY_FLAGS = { verbose: "-v", debug: "-d" };
@@ -2300,27 +2301,34 @@ function buildXmlOpts(options) {
2300
2301
  const result = {};
2301
2302
  if (options?.verbosity !== void 0) result["verbosity"] = options.verbosity;
2302
2303
  if (options?.charsetAssume !== void 0) result["charsetAssume"] = options.charsetAssume;
2304
+ if (options?.charsetFallback !== void 0) result["charsetFallback"] = options.charsetFallback;
2303
2305
  return result;
2304
2306
  }
2307
+ function isCharsetError(stderrOutput) {
2308
+ return stderrOutput.includes("convert character encoding") || stderrOutput.includes("Illegal byte sequence");
2309
+ }
2310
+ async function runXmlAndParse(binary, args, execOpts) {
2311
+ const xmlResult = await execCommand(binary, args, execOpts);
2312
+ if (!xmlResult.ok) return err(xmlResult.error);
2313
+ if (xmlResult.value.exitCode !== 0) {
2314
+ return err(createToolError("dcm2xml", args, xmlResult.value.exitCode, xmlResult.value.stderr));
2315
+ }
2316
+ const jsonResult = xmlToJson(xmlResult.value.stdout);
2317
+ if (!jsonResult.ok) return err(jsonResult.error);
2318
+ return ok({ data: jsonResult.value, source: "xml" });
2319
+ }
2305
2320
  async function tryXmlPath(inputPath, timeoutMs, signal, opts) {
2306
2321
  const xmlBinary = resolveBinary("dcm2xml");
2307
- if (!xmlBinary.ok) {
2308
- return err(xmlBinary.error);
2309
- }
2322
+ if (!xmlBinary.ok) return err(xmlBinary.error);
2310
2323
  const charsetArgs = opts?.charsetAssume !== void 0 ? ["+Ca", opts.charsetAssume] : [];
2311
2324
  const xmlArgs = [...buildVerbosityArgs(opts?.verbosity), ...charsetArgs, "-nat", inputPath];
2312
- const xmlResult = await execCommand(xmlBinary.value, xmlArgs, { timeoutMs, signal });
2313
- if (!xmlResult.ok) {
2314
- return err(xmlResult.error);
2325
+ const execOpts = signal !== void 0 ? { timeoutMs, signal } : { timeoutMs };
2326
+ const result = await runXmlAndParse(xmlBinary.value, xmlArgs, execOpts);
2327
+ if (!result.ok && opts?.charsetFallback !== void 0 && isCharsetError(result.error.message)) {
2328
+ const fallbackArgs = [...buildVerbosityArgs(opts.verbosity), "+Ca", opts.charsetFallback, "-nat", inputPath];
2329
+ return runXmlAndParse(xmlBinary.value, fallbackArgs, execOpts);
2315
2330
  }
2316
- if (xmlResult.value.exitCode !== 0) {
2317
- return err(createToolError("dcm2xml", xmlArgs, xmlResult.value.exitCode, xmlResult.value.stderr));
2318
- }
2319
- const jsonResult = xmlToJson(xmlResult.value.stdout);
2320
- if (!jsonResult.ok) {
2321
- return err(jsonResult.error);
2322
- }
2323
- return ok({ data: jsonResult.value, source: "xml" });
2331
+ return result;
2324
2332
  }
2325
2333
  async function tryDirectPath(inputPath, timeoutMs, signal, verbosity) {
2326
2334
  const jsonBinary = resolveBinary("dcm2json");
@@ -2505,7 +2513,8 @@ var DicomInstance = class _DicomInstance {
2505
2513
  const jsonResult = await dcm2json(path2, {
2506
2514
  timeoutMs: options?.timeoutMs ?? DEFAULT_TIMEOUT_MS,
2507
2515
  signal: options?.signal,
2508
- charsetAssume: options?.charsetAssume
2516
+ charsetAssume: options?.charsetAssume,
2517
+ charsetFallback: options?.charsetFallback
2509
2518
  });
2510
2519
  if (!jsonResult.ok) return err(jsonResult.error);
2511
2520
  const datasetResult = DicomDataset.fromJson(jsonResult.value.data);
@@ -2823,6 +2832,13 @@ var DicomReceiverOptionsSchema = z.object({
2823
2832
  filenameMode: z.enum(["default", "unique", "short-unique", "system-time"]).optional(),
2824
2833
  filenameExtension: z.string().min(1).optional(),
2825
2834
  storageMode: z.enum(["normal", "bit-preserving", "ignore"]).optional(),
2835
+ instanceOpenOptions: z.object({
2836
+ timeoutMs: z.number().int().positive().optional(),
2837
+ signal: z.instanceof(AbortSignal).optional(),
2838
+ charsetAssume: z.string().min(1).optional(),
2839
+ charsetFallback: z.string().min(1).optional()
2840
+ }).strict().optional(),
2841
+ parseInstances: z.boolean().optional(),
2826
2842
  signal: z.instanceof(AbortSignal).optional()
2827
2843
  }).strict().refine((data) => (data.minPoolSize ?? DEFAULT_MIN_POOL_SIZE) <= (data.maxPoolSize ?? DEFAULT_MAX_POOL_SIZE), {
2828
2844
  message: "minPoolSize must be <= maxPoolSize"
@@ -2992,6 +3008,8 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
2992
3008
  __publicField(this, "minPoolSize");
2993
3009
  __publicField(this, "maxPoolSize");
2994
3010
  __publicField(this, "connectionTimeoutMs");
3011
+ __publicField(this, "resolvedInstanceOpenOptions");
3012
+ __publicField(this, "parseInstances");
2995
3013
  __publicField(this, "workers", /* @__PURE__ */ new Map());
2996
3014
  __publicField(this, "tcpServer");
2997
3015
  __publicField(this, "associationCounter", 0);
@@ -3003,6 +3021,8 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
3003
3021
  this.minPoolSize = options.minPoolSize ?? DEFAULT_MIN_POOL_SIZE;
3004
3022
  this.maxPoolSize = options.maxPoolSize ?? DEFAULT_MAX_POOL_SIZE;
3005
3023
  this.connectionTimeoutMs = options.connectionTimeoutMs ?? DEFAULT_CONNECTION_TIMEOUT_MS;
3024
+ this.resolvedInstanceOpenOptions = { charsetFallback: "Latin1", ...options.instanceOpenOptions };
3025
+ this.parseInstances = options.parseInstances ?? true;
3006
3026
  }
3007
3027
  // -----------------------------------------------------------------------
3008
3028
  // Public API
@@ -3455,21 +3475,23 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
3455
3475
  calledAE: data.calledAE,
3456
3476
  source: data.source
3457
3477
  });
3458
- const instanceCtx = {
3459
- filePath: finalPath,
3460
- fileSize,
3461
- associationId: ctx.associationId,
3462
- associationDir: ctx.associationDir,
3463
- callingAE: data.callingAE,
3464
- calledAE: data.calledAE,
3465
- source: data.source
3466
- };
3467
- worker.trackInstance(this.parseAndEmitInstance(worker, instanceCtx));
3478
+ if (this.parseInstances) {
3479
+ const instanceCtx = {
3480
+ filePath: finalPath,
3481
+ fileSize,
3482
+ associationId: ctx.associationId,
3483
+ associationDir: ctx.associationDir,
3484
+ callingAE: data.callingAE,
3485
+ calledAE: data.calledAE,
3486
+ source: data.source
3487
+ };
3488
+ worker.trackInstance(this.parseAndEmitInstance(worker, instanceCtx));
3489
+ }
3468
3490
  }
3469
3491
  /** Parses a DICOM file and emits INSTANCE_RECEIVED or INSTANCE_ERROR. */
3470
3492
  async parseAndEmitInstance(worker, ctx) {
3471
3493
  try {
3472
- const openResult = await DicomInstance.open(ctx.filePath);
3494
+ const openResult = await DicomInstance.open(ctx.filePath, this.resolvedInstanceOpenOptions);
3473
3495
  if (!openResult.ok) {
3474
3496
  worker.recordInstanceError();
3475
3497
  this.emit("INSTANCE_ERROR", { error: openResult.error, thrown: false, ...ctx });