@ubercode/dcmtk 0.7.1 → 0.7.3

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/tools.cjs CHANGED
@@ -2298,7 +2298,18 @@ var ProposedTransferSyntax = {
2298
2298
  J2K_LOSSLESS: "j2kLossless",
2299
2299
  J2K_LOSSY: "j2kLossy",
2300
2300
  JLS_LOSSLESS: "jlsLossless",
2301
- JLS_LOSSY: "jlsLossy"
2301
+ JLS_LOSSY: "jlsLossy",
2302
+ MPEG2: "mpeg2",
2303
+ MPEG2_HIGH: "mpeg2High",
2304
+ MPEG4: "mpeg4",
2305
+ MPEG4_BD: "mpeg4Bd",
2306
+ MPEG4_2_2D: "mpeg4_2_2d",
2307
+ MPEG4_2_3D: "mpeg4_2_3d",
2308
+ MPEG4_2_ST: "mpeg4_2_st",
2309
+ HEVC: "hevc",
2310
+ HEVC10: "hevc10",
2311
+ RLE: "rle",
2312
+ DEFLATED: "deflated"
2302
2313
  };
2303
2314
  var PROPOSED_TS_FLAG_MAP = {
2304
2315
  [ProposedTransferSyntax.UNCOMPRESSED]: "-x=",
@@ -2311,8 +2322,20 @@ var PROPOSED_TS_FLAG_MAP = {
2311
2322
  [ProposedTransferSyntax.J2K_LOSSLESS]: "-xv",
2312
2323
  [ProposedTransferSyntax.J2K_LOSSY]: "-xw",
2313
2324
  [ProposedTransferSyntax.JLS_LOSSLESS]: "-xt",
2314
- [ProposedTransferSyntax.JLS_LOSSY]: "-xu"
2325
+ [ProposedTransferSyntax.JLS_LOSSY]: "-xu",
2326
+ [ProposedTransferSyntax.MPEG2]: "-xm",
2327
+ [ProposedTransferSyntax.MPEG2_HIGH]: "-xh",
2328
+ [ProposedTransferSyntax.MPEG4]: "-xn",
2329
+ [ProposedTransferSyntax.MPEG4_BD]: "-xl",
2330
+ [ProposedTransferSyntax.MPEG4_2_2D]: "-x2",
2331
+ [ProposedTransferSyntax.MPEG4_2_3D]: "-x3",
2332
+ [ProposedTransferSyntax.MPEG4_2_ST]: "-xo",
2333
+ [ProposedTransferSyntax.HEVC]: "-x4",
2334
+ [ProposedTransferSyntax.HEVC10]: "-x5",
2335
+ [ProposedTransferSyntax.RLE]: "-xr",
2336
+ [ProposedTransferSyntax.DEFLATED]: "-xd"
2315
2337
  };
2338
+ var PROPOSED_TS_VALUES = Object.values(ProposedTransferSyntax);
2316
2339
  var StorescuOptionsSchema = zod.z.object({
2317
2340
  timeoutMs: zod.z.number().int().positive().optional(),
2318
2341
  signal: zod.z.instanceof(AbortSignal).optional(),
@@ -2330,21 +2353,21 @@ var StorescuOptionsSchema = zod.z.object({
2330
2353
  acseTimeout: zod.z.number().int().positive().optional(),
2331
2354
  dimseTimeout: zod.z.number().int().positive().optional(),
2332
2355
  noHostnameLookup: zod.z.boolean().optional(),
2333
- proposedTransferSyntax: zod.z.enum([
2334
- "uncompressed",
2335
- "littleEndian",
2336
- "bigEndian",
2337
- "implicitVR",
2338
- "jpegLossless",
2339
- "jpeg8Bit",
2340
- "jpeg12Bit",
2341
- "j2kLossless",
2342
- "j2kLossy",
2343
- "jlsLossless",
2344
- "jlsLossy"
2345
- ]).optional()
2356
+ required: zod.z.boolean().optional(),
2357
+ proposedTransferSyntax: zod.z.union([zod.z.enum(PROPOSED_TS_VALUES), zod.z.array(zod.z.enum(PROPOSED_TS_VALUES)).min(1)]).optional(),
2358
+ combineProposedTransferSyntaxes: zod.z.boolean().optional()
2346
2359
  }).strict();
2360
+ function pushProposedTsArgs(args, ts) {
2361
+ if (typeof ts === "string") {
2362
+ args.push(PROPOSED_TS_FLAG_MAP[ts]);
2363
+ } else {
2364
+ for (let i = 0; i < ts.length; i++) {
2365
+ args.push(PROPOSED_TS_FLAG_MAP[ts[i]]);
2366
+ }
2367
+ }
2368
+ }
2347
2369
  var VERBOSITY_FLAGS20 = { verbose: "-v", debug: "-d" };
2370
+ var DIMSE_ERROR_PATTERN = /^E:.*(?:DIMSE Failed|Store Failed)/m;
2348
2371
  function pushNetworkArgs3(args, options) {
2349
2372
  if (options.verbosity !== void 0) {
2350
2373
  args.push(VERBOSITY_FLAGS20[options.verbosity]);
@@ -2384,7 +2407,13 @@ function buildArgs34(options) {
2384
2407
  args.push("+r");
2385
2408
  }
2386
2409
  if (options.proposedTransferSyntax !== void 0) {
2387
- args.push(PROPOSED_TS_FLAG_MAP[options.proposedTransferSyntax]);
2410
+ pushProposedTsArgs(args, options.proposedTransferSyntax);
2411
+ }
2412
+ if (options.combineProposedTransferSyntaxes === true) {
2413
+ args.push("+C");
2414
+ }
2415
+ if (options.required === true) {
2416
+ args.push("-R");
2388
2417
  }
2389
2418
  args.push(options.host, String(options.port));
2390
2419
  args.push(...options.files);
@@ -2411,6 +2440,9 @@ async function storescu(options) {
2411
2440
  if (result.value.exitCode !== 0) {
2412
2441
  return err(createToolError("storescu", args, result.value.exitCode, result.value.stderr));
2413
2442
  }
2443
+ if (DIMSE_ERROR_PATTERN.test(result.value.stderr)) {
2444
+ return err(createToolError("storescu", args, 0, result.value.stderr));
2445
+ }
2414
2446
  return ok({ success: true, stdout: result.value.stdout, stderr: result.value.stderr });
2415
2447
  }
2416
2448
  var QueryModel = {