@ubercode/dcmtk 0.4.0 → 0.5.0

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/index.d.cts CHANGED
@@ -3,13 +3,14 @@ export { L as LineSource, P as ProcessLine, a as ResultValue, b as assertUnreach
3
3
  import { A as AETitle, D as DicomTag, a as DicomTagPath, P as Port, S as SOPClassUID, T as TransferSyntaxUID, b as DicomDataset } from './DicomInstance-DWOjhccQ.cjs';
4
4
  export { B as Brand, C as ChangeSet, c as DicomFilePath, d as DicomInstance, e as createAETitle, f as createDicomFilePath, g as createDicomTag, h as createDicomTagPath, i as createPort, j as createSOPClassUID, k as createTransferSyntaxUID, t as tag } from './DicomInstance-DWOjhccQ.cjs';
5
5
  import { z } from 'zod';
6
- export { AssociationAcknowledgedData, AssociationCompleteData, AssociationContext, AssociationReceivedData, AssociationSummary, AssociationTracker, CStoreRequestData, CannotStartListenerData, ConfigErrorData, DCMPRSCP_FATAL_EVENTS, DCMPRSCP_PATTERNS, DCMPSRCV_FATAL_EVENTS, DCMPSRCV_PATTERNS, DCMQRSCP_FATAL_EVENTS, DCMQRSCP_PATTERNS, DCMRECV_FATAL_EVENTS, DCMRECV_PATTERNS, DatabaseReadyData, DcmQRSCP, DcmQRSCPEventMap, DcmQRSCPOptions, DcmprsCP, DcmprsCPEventMap, DcmprsCPOptions, DcmprscpEvent, DcmprscpEventValue, Dcmpsrcv, DcmpsrcvEvent, DcmpsrcvEventMap, DcmpsrcvEventValue, DcmpsrcvOptions, DcmqrscpEvent, DcmqrscpEventValue, Dcmrecv, DcmrecvEvent, DcmrecvEventMap, DcmrecvEventValue, DcmrecvOptions, DcmtkProcess, DcmtkProcessConfig, DcmtkProcessEventMap, DicomReceiver, DicomReceiverEventMap, DicomReceiverOptions, EventPattern, FileDeletedData, FileReceivedData, FilenameMode, FilenameModeValue, LineParser, LineParserEventMap, MultiLineConfig, PoolStatus, PreferredTransferSyntax, PreferredTransferSyntaxValue, PrintAssociationAcknowledgedData, PrintAssociationReceivedData, PrintCannotStartListenerData, ProcessState, ProcessStateValue, QRAssociationAcknowledgedData, QRAssociationReceivedData, QRCFindRequestData, QRCGetRequestData, QRCMoveRequestData, QRCStoreRequestData, QRCannotStartListenerData, QRListeningData, ReceiverAssociationAcknowledgedData, ReceiverAssociationData, ReceiverAssociationReceivedData, ReceiverCStoreRequestData, ReceiverCannotStartListenerData, ReceiverConfigErrorData, ReceiverDatabaseReadyData, ReceiverEchoRequestData, ReceiverErrorData, ReceiverFileData, ReceiverListeningData, RefusingAssociationData, STORESCP_FATAL_EVENTS, STORESCP_PATTERNS, StorageMode, StorageModeValue, StoreSCP, StoreSCPEventMap, StoreSCPOptions, StoreSCPPreset, StoreSCPPresetName, StoredFileData, StorescpEvent, StorescpEventValue, StoringFileData, SubdirectoryCreatedData, SubdirectoryMode, SubdirectoryModeValue, TrackedFile, WLMSCPFS_FATAL_EVENTS, WLMSCPFS_PATTERNS, WlmAssociationAcknowledgedData, WlmAssociationReceivedData, WlmCFindRequestData, WlmCannotStartListenerData, WlmListeningData, Wlmscpfs, WlmscpfsEvent, WlmscpfsEventMap, WlmscpfsEventValue, WlmscpfsOptions } from './servers.cjs';
6
+ 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, _ as PoolAssociationReceivedData, $ as PoolCStoreRequestData, a0 as PoolEchoRequestData, a1 as PoolRefusingAssociationData, 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 ReceiverAssociationReceivedData, al as ReceiverCStoreRequestData, am as ReceiverCannotStartListenerData, an as ReceiverConfigErrorData, ao as ReceiverDatabaseReadyData, ap as ReceiverEchoRequestData, aq as ReceiverErrorData, ar as ReceiverFileData, as as ReceiverListeningData, at as RefusingAssociationData, au as STORESCP_FATAL_EVENTS, av as STORESCP_PATTERNS, aw as StorageMode, ax as StorageModeValue, ay as StoreSCP, az as StoreSCPEventMap, aA as StoreSCPOptions, aB as StoreSCPPreset, aC as StoreSCPPresetName, aD as StoredFileData, aE as StorescpEvent, aF as StorescpEventValue, aG as StoringFileData, aH as SubdirectoryCreatedData, aI as SubdirectoryMode, aJ as SubdirectoryModeValue, aK as TrackedFile, aL as WLMSCPFS_FATAL_EVENTS, aM as WLMSCPFS_PATTERNS, aN as WlmAssociationAcknowledgedData, aO as WlmAssociationReceivedData, aP as WlmCFindRequestData, aQ as WlmCannotStartListenerData, aR as WlmListeningData, aS as Wlmscpfs, aT as WlmscpfsEvent, aU as WlmscpfsEventMap, aV as WlmscpfsEventValue, aW as WlmscpfsOptions } from './index-DbUfqT7o.cjs';
7
7
  export { a as DcmodifyOptions, b as DcmodifyResult, D as DicomJsonElement, c as DicomJsonModel, T as TagModification, d as ToolBaseOptions, e as dcmodify, x as xmlToJson } from './dcmodify-B9js5K1f.cjs';
8
8
  export { DictionaryEntry, SOPClassName, SOP_CLASSES, TagSegment, VR, VRCategoryName, VRMetadata, VRValue, VR_CATEGORY, VR_CATEGORY_NAME, VR_META, getVRCategory, isBinaryVR, isNumericVR, isStringVR, lookupTag, lookupTagByKeyword, lookupTagByName, segmentsToModifyPath, segmentsToString, sopClassNameFromUID, tagPathToSegments } from './dicom.cjs';
9
9
  import { ProposedTransferSyntaxValue } from './tools.cjs';
10
10
  export { Cda2dcmOptions, Cda2dcmResult, ColorConversion, ColorConversionValue, Dcm2cdaOptions, Dcm2cdaResult, Dcm2jsonOptions, Dcm2jsonResult, Dcm2jsonSource, Dcm2pdfOptions, Dcm2pdfResult, Dcm2pnmOptions, Dcm2pnmOutputFormat, Dcm2pnmOutputFormatValue, Dcm2pnmResult, Dcm2xmlCharset, Dcm2xmlCharsetValue, Dcm2xmlOptions, Dcm2xmlResult, DcmcjpegOptions, DcmcjpegResult, DcmcjplsOptions, DcmcjplsResult, DcmconvOptions, DcmconvResult, DcmcrleOptions, DcmcrleResult, DcmdecapOptions, DcmdecapResult, DcmdjpegOptions, DcmdjpegResult, DcmdjplsOptions, DcmdjplsResult, DcmdrleOptions, DcmdrleResult, DcmdspfnOptions, DcmdspfnResult, DcmdumpFormat, DcmdumpFormatValue, DcmdumpOptions, DcmdumpResult, DcmencapOptions, DcmencapResult, DcmftestOptions, DcmftestResult, DcmgpdirOptions, DcmgpdirResult, Dcmj2pnmOptions, Dcmj2pnmOutputFormat, Dcmj2pnmOutputFormatValue, Dcmj2pnmResult, DcmmkcrvOptions, DcmmkcrvResult, DcmmkdirOptions, DcmmkdirResult, DcmmklutOptions, DcmmklutResult, Dcmp2pgmOptions, Dcmp2pgmResult, DcmprscuOptions, DcmprscuResult, DcmpschkOptions, DcmpschkResult, DcmpsmkOptions, DcmpsmkResult, DcmpsprtOptions, DcmpsprtResult, DcmqridxOptions, DcmqridxResult, DcmquantOptions, DcmquantResult, DcmscaleOptions, DcmscaleResult, DcmsendOptions, DcmsendResult, Dcod2lumOptions, Dcod2lumResult, DconvlumOptions, DconvlumResult, DrtdumpOptions, DrtdumpResult, Dsr2xmlOptions, Dsr2xmlResult, DsrdumpOptions, DsrdumpResult, Dump2dcmOptions, Dump2dcmResult, EchoscuOptions, EchoscuResult, FindscuOptions, FindscuResult, GetQueryModel, GetQueryModelValue, GetscuOptions, GetscuResult, Img2dcmInputFormat, Img2dcmInputFormatValue, Img2dcmOptions, Img2dcmResult, JplsColorConversion, JplsColorConversionValue, Json2dcmOptions, Json2dcmResult, LutType, LutTypeValue, MoveQueryModel, MoveQueryModelValue, MovescuOptions, MovescuResult, Pdf2dcmOptions, Pdf2dcmResult, ProposedTransferSyntax, QueryModel, QueryModelValue, Stl2dcmOptions, Stl2dcmResult, StorescuOptions, StorescuResult, TermscuOptions, TermscuResult, TransferSyntax, TransferSyntaxValue, Xml2dcmOptions, Xml2dcmResult, Xml2dsrOptions, Xml2dsrResult, cda2dcm, dcm2cda, dcm2json, dcm2pdf, dcm2pnm, dcm2xml, dcmcjpeg, dcmcjpls, dcmconv, dcmcrle, dcmdecap, dcmdjpeg, dcmdjpls, dcmdrle, dcmdspfn, dcmdump, dcmencap, dcmftest, dcmgpdir, dcmj2pnm, dcmmkcrv, dcmmkdir, dcmmklut, dcmp2pgm, dcmprscu, dcmpschk, dcmpsmk, dcmpsprt, dcmqridx, dcmquant, dcmscale, dcmsend, dcod2lum, dconvlum, drtdump, dsr2xml, dsrdump, dump2dcm, echoscu, findscu, getscu, img2dcm, json2dcm, movescu, pdf2dcm, stl2dcm, storescu, termscu, xml2dcm, xml2dsr } from './tools.cjs';
11
11
  import { EventEmitter } from 'node:events';
12
12
  export { BatchOptions, BatchResult, RetryOptions, batch, retry } from './utils.cjs';
13
+ import 'node:net';
13
14
 
14
15
  /**
15
16
  * Runtime validation schemas and parse functions.
package/dist/index.d.ts CHANGED
@@ -3,13 +3,14 @@ export { L as LineSource, P as ProcessLine, a as ResultValue, b as assertUnreach
3
3
  import { A as AETitle, D as DicomTag, a as DicomTagPath, P as Port, S as SOPClassUID, T as TransferSyntaxUID, b as DicomDataset } from './DicomInstance-CGBr3a-C.js';
4
4
  export { B as Brand, C as ChangeSet, c as DicomFilePath, d as DicomInstance, e as createAETitle, f as createDicomFilePath, g as createDicomTag, h as createDicomTagPath, i as createPort, j as createSOPClassUID, k as createTransferSyntaxUID, t as tag } from './DicomInstance-CGBr3a-C.js';
5
5
  import { z } from 'zod';
6
- export { AssociationAcknowledgedData, AssociationCompleteData, AssociationContext, AssociationReceivedData, AssociationSummary, AssociationTracker, CStoreRequestData, CannotStartListenerData, ConfigErrorData, DCMPRSCP_FATAL_EVENTS, DCMPRSCP_PATTERNS, DCMPSRCV_FATAL_EVENTS, DCMPSRCV_PATTERNS, DCMQRSCP_FATAL_EVENTS, DCMQRSCP_PATTERNS, DCMRECV_FATAL_EVENTS, DCMRECV_PATTERNS, DatabaseReadyData, DcmQRSCP, DcmQRSCPEventMap, DcmQRSCPOptions, DcmprsCP, DcmprsCPEventMap, DcmprsCPOptions, DcmprscpEvent, DcmprscpEventValue, Dcmpsrcv, DcmpsrcvEvent, DcmpsrcvEventMap, DcmpsrcvEventValue, DcmpsrcvOptions, DcmqrscpEvent, DcmqrscpEventValue, Dcmrecv, DcmrecvEvent, DcmrecvEventMap, DcmrecvEventValue, DcmrecvOptions, DcmtkProcess, DcmtkProcessConfig, DcmtkProcessEventMap, DicomReceiver, DicomReceiverEventMap, DicomReceiverOptions, EventPattern, FileDeletedData, FileReceivedData, FilenameMode, FilenameModeValue, LineParser, LineParserEventMap, MultiLineConfig, PoolStatus, PreferredTransferSyntax, PreferredTransferSyntaxValue, PrintAssociationAcknowledgedData, PrintAssociationReceivedData, PrintCannotStartListenerData, ProcessState, ProcessStateValue, QRAssociationAcknowledgedData, QRAssociationReceivedData, QRCFindRequestData, QRCGetRequestData, QRCMoveRequestData, QRCStoreRequestData, QRCannotStartListenerData, QRListeningData, ReceiverAssociationAcknowledgedData, ReceiverAssociationData, ReceiverAssociationReceivedData, ReceiverCStoreRequestData, ReceiverCannotStartListenerData, ReceiverConfigErrorData, ReceiverDatabaseReadyData, ReceiverEchoRequestData, ReceiverErrorData, ReceiverFileData, ReceiverListeningData, RefusingAssociationData, STORESCP_FATAL_EVENTS, STORESCP_PATTERNS, StorageMode, StorageModeValue, StoreSCP, StoreSCPEventMap, StoreSCPOptions, StoreSCPPreset, StoreSCPPresetName, StoredFileData, StorescpEvent, StorescpEventValue, StoringFileData, SubdirectoryCreatedData, SubdirectoryMode, SubdirectoryModeValue, TrackedFile, WLMSCPFS_FATAL_EVENTS, WLMSCPFS_PATTERNS, WlmAssociationAcknowledgedData, WlmAssociationReceivedData, WlmCFindRequestData, WlmCannotStartListenerData, WlmListeningData, Wlmscpfs, WlmscpfsEvent, WlmscpfsEventMap, WlmscpfsEventValue, WlmscpfsOptions } from './servers.js';
6
+ 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, _ as PoolAssociationReceivedData, $ as PoolCStoreRequestData, a0 as PoolEchoRequestData, a1 as PoolRefusingAssociationData, 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 ReceiverAssociationReceivedData, al as ReceiverCStoreRequestData, am as ReceiverCannotStartListenerData, an as ReceiverConfigErrorData, ao as ReceiverDatabaseReadyData, ap as ReceiverEchoRequestData, aq as ReceiverErrorData, ar as ReceiverFileData, as as ReceiverListeningData, at as RefusingAssociationData, au as STORESCP_FATAL_EVENTS, av as STORESCP_PATTERNS, aw as StorageMode, ax as StorageModeValue, ay as StoreSCP, az as StoreSCPEventMap, aA as StoreSCPOptions, aB as StoreSCPPreset, aC as StoreSCPPresetName, aD as StoredFileData, aE as StorescpEvent, aF as StorescpEventValue, aG as StoringFileData, aH as SubdirectoryCreatedData, aI as SubdirectoryMode, aJ as SubdirectoryModeValue, aK as TrackedFile, aL as WLMSCPFS_FATAL_EVENTS, aM as WLMSCPFS_PATTERNS, aN as WlmAssociationAcknowledgedData, aO as WlmAssociationReceivedData, aP as WlmCFindRequestData, aQ as WlmCannotStartListenerData, aR as WlmListeningData, aS as Wlmscpfs, aT as WlmscpfsEvent, aU as WlmscpfsEventMap, aV as WlmscpfsEventValue, aW as WlmscpfsOptions } from './index-CsYd7SMF.js';
7
7
  export { a as DcmodifyOptions, b as DcmodifyResult, D as DicomJsonElement, c as DicomJsonModel, T as TagModification, d as ToolBaseOptions, e as dcmodify, x as xmlToJson } from './dcmodify-BvaIeyJg.js';
8
8
  export { DictionaryEntry, SOPClassName, SOP_CLASSES, TagSegment, VR, VRCategoryName, VRMetadata, VRValue, VR_CATEGORY, VR_CATEGORY_NAME, VR_META, getVRCategory, isBinaryVR, isNumericVR, isStringVR, lookupTag, lookupTagByKeyword, lookupTagByName, segmentsToModifyPath, segmentsToString, sopClassNameFromUID, tagPathToSegments } from './dicom.js';
9
9
  import { ProposedTransferSyntaxValue } from './tools.js';
10
10
  export { Cda2dcmOptions, Cda2dcmResult, ColorConversion, ColorConversionValue, Dcm2cdaOptions, Dcm2cdaResult, Dcm2jsonOptions, Dcm2jsonResult, Dcm2jsonSource, Dcm2pdfOptions, Dcm2pdfResult, Dcm2pnmOptions, Dcm2pnmOutputFormat, Dcm2pnmOutputFormatValue, Dcm2pnmResult, Dcm2xmlCharset, Dcm2xmlCharsetValue, Dcm2xmlOptions, Dcm2xmlResult, DcmcjpegOptions, DcmcjpegResult, DcmcjplsOptions, DcmcjplsResult, DcmconvOptions, DcmconvResult, DcmcrleOptions, DcmcrleResult, DcmdecapOptions, DcmdecapResult, DcmdjpegOptions, DcmdjpegResult, DcmdjplsOptions, DcmdjplsResult, DcmdrleOptions, DcmdrleResult, DcmdspfnOptions, DcmdspfnResult, DcmdumpFormat, DcmdumpFormatValue, DcmdumpOptions, DcmdumpResult, DcmencapOptions, DcmencapResult, DcmftestOptions, DcmftestResult, DcmgpdirOptions, DcmgpdirResult, Dcmj2pnmOptions, Dcmj2pnmOutputFormat, Dcmj2pnmOutputFormatValue, Dcmj2pnmResult, DcmmkcrvOptions, DcmmkcrvResult, DcmmkdirOptions, DcmmkdirResult, DcmmklutOptions, DcmmklutResult, Dcmp2pgmOptions, Dcmp2pgmResult, DcmprscuOptions, DcmprscuResult, DcmpschkOptions, DcmpschkResult, DcmpsmkOptions, DcmpsmkResult, DcmpsprtOptions, DcmpsprtResult, DcmqridxOptions, DcmqridxResult, DcmquantOptions, DcmquantResult, DcmscaleOptions, DcmscaleResult, DcmsendOptions, DcmsendResult, Dcod2lumOptions, Dcod2lumResult, DconvlumOptions, DconvlumResult, DrtdumpOptions, DrtdumpResult, Dsr2xmlOptions, Dsr2xmlResult, DsrdumpOptions, DsrdumpResult, Dump2dcmOptions, Dump2dcmResult, EchoscuOptions, EchoscuResult, FindscuOptions, FindscuResult, GetQueryModel, GetQueryModelValue, GetscuOptions, GetscuResult, Img2dcmInputFormat, Img2dcmInputFormatValue, Img2dcmOptions, Img2dcmResult, JplsColorConversion, JplsColorConversionValue, Json2dcmOptions, Json2dcmResult, LutType, LutTypeValue, MoveQueryModel, MoveQueryModelValue, MovescuOptions, MovescuResult, Pdf2dcmOptions, Pdf2dcmResult, ProposedTransferSyntax, QueryModel, QueryModelValue, Stl2dcmOptions, Stl2dcmResult, StorescuOptions, StorescuResult, TermscuOptions, TermscuResult, TransferSyntax, TransferSyntaxValue, Xml2dcmOptions, Xml2dcmResult, Xml2dsrOptions, Xml2dsrResult, cda2dcm, dcm2cda, dcm2json, dcm2pdf, dcm2pnm, dcm2xml, dcmcjpeg, dcmcjpls, dcmconv, dcmcrle, dcmdecap, dcmdjpeg, dcmdjpls, dcmdrle, dcmdspfn, dcmdump, dcmencap, dcmftest, dcmgpdir, dcmj2pnm, dcmmkcrv, dcmmkdir, dcmmklut, dcmp2pgm, dcmprscu, dcmpschk, dcmpsmk, dcmpsprt, dcmqridx, dcmquant, dcmscale, dcmsend, dcod2lum, dconvlum, drtdump, dsr2xml, dsrdump, dump2dcm, echoscu, findscu, getscu, img2dcm, json2dcm, movescu, pdf2dcm, stl2dcm, storescu, termscu, xml2dcm, xml2dsr } from './tools.js';
11
11
  import { EventEmitter } from 'node:events';
12
12
  export { BatchOptions, BatchResult, RetryOptions, batch, retry } from './utils.js';
13
+ import 'node:net';
13
14
 
14
15
  /**
15
16
  * Runtime validation schemas and parse functions.
package/dist/index.js CHANGED
@@ -36094,8 +36094,9 @@ var DEFAULT_MAX_POOL_SIZE = 10;
36094
36094
  var DEFAULT_CONNECTION_TIMEOUT_MS = 1e4;
36095
36095
  var CONNECTION_RETRY_INTERVAL_MS = 500;
36096
36096
  var MAX_CONNECTION_RETRIES = 200;
36097
+ var MAX_OUTPUT_LINES_PER_ASSOCIATION = 500;
36097
36098
  var DicomReceiverOptionsSchema = z.object({
36098
- port: z.number().int().min(1).max(65535),
36099
+ port: z.number().int().min(0).max(65535),
36099
36100
  storageDir: z.string().min(1).refine(isSafePath, { message: "path traversal detected in storageDir" }),
36100
36101
  aeTitle: z.string().min(1).max(16).refine(isValidAETitle, { message: "AE Title contains invalid characters" }).optional(),
36101
36102
  minPoolSize: z.number().int().min(1).max(100).optional(),
@@ -36103,6 +36104,9 @@ var DicomReceiverOptionsSchema = z.object({
36103
36104
  connectionTimeoutMs: z.number().int().positive().optional(),
36104
36105
  configFile: z.string().min(1).refine(isSafePath, { message: "path traversal detected in configFile" }).optional(),
36105
36106
  configProfile: z.string().min(1).optional(),
36107
+ acseTimeout: z.number().int().positive().optional(),
36108
+ dimseTimeout: z.number().int().positive().optional(),
36109
+ maxPdu: z.number().int().min(4096).max(131072).optional(),
36106
36110
  signal: z.instanceof(AbortSignal).optional()
36107
36111
  }).strict().refine((data) => (data.minPoolSize ?? DEFAULT_MIN_POOL_SIZE) <= (data.maxPoolSize ?? DEFAULT_MAX_POOL_SIZE), {
36108
36112
  message: "minPoolSize must be <= maxPoolSize"
@@ -36231,6 +36235,57 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36231
36235
  onAssociationComplete(listener) {
36232
36236
  return this.on("ASSOCIATION_COMPLETE", listener);
36233
36237
  }
36238
+ /**
36239
+ * Registers a listener for new associations (bubbled from workers).
36240
+ *
36241
+ * @param listener - Callback receiving association received data
36242
+ * @returns this for chaining
36243
+ */
36244
+ onAssociationReceived(listener) {
36245
+ return this.on("ASSOCIATION_RECEIVED", listener);
36246
+ }
36247
+ /**
36248
+ * Registers a listener for C-STORE requests (bubbled from workers).
36249
+ *
36250
+ * @param listener - Callback receiving C-STORE request data
36251
+ * @returns this for chaining
36252
+ */
36253
+ onCStoreRequest(listener) {
36254
+ return this.on("C_STORE_REQUEST", listener);
36255
+ }
36256
+ /**
36257
+ * Registers a listener for C-ECHO requests (bubbled from workers).
36258
+ *
36259
+ * @param listener - Callback receiving echo request data
36260
+ * @returns this for chaining
36261
+ */
36262
+ onEchoRequest(listener) {
36263
+ return this.on("ECHO_REQUEST", listener);
36264
+ }
36265
+ /**
36266
+ * Registers a listener for refused associations (bubbled from workers).
36267
+ *
36268
+ * @param listener - Callback receiving refusing association data
36269
+ * @returns this for chaining
36270
+ */
36271
+ onRefusingAssociation(listener) {
36272
+ return this.on("REFUSING_ASSOCIATION", listener);
36273
+ }
36274
+ /**
36275
+ * Routes an external socket to an idle worker.
36276
+ *
36277
+ * The pool must be started via `start()` before calling this method.
36278
+ * Use this when managing your own TCP listener (e.g., protocol router).
36279
+ *
36280
+ * @param socket - An incoming net.Socket to route to a worker
36281
+ */
36282
+ handleSocket(socket) {
36283
+ if (!this.started) {
36284
+ socket.destroy(new Error("DicomReceiver: not started"));
36285
+ return;
36286
+ }
36287
+ void this.handleConnection(socket);
36288
+ }
36234
36289
  /** Current pool status. */
36235
36290
  get poolStatus() {
36236
36291
  let idle = 0;
@@ -36244,8 +36299,11 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36244
36299
  // -----------------------------------------------------------------------
36245
36300
  // TCP proxy
36246
36301
  // -----------------------------------------------------------------------
36247
- /** Starts the TCP proxy on the configured port. */
36302
+ /** Starts the TCP proxy on the configured port. Skips if port is 0. */
36248
36303
  startTcpProxy() {
36304
+ if (this.options.port === 0) {
36305
+ return Promise.resolve(ok(void 0));
36306
+ }
36249
36307
  return new Promise((resolve) => {
36250
36308
  this.tcpServer = net.createServer((socket) => {
36251
36309
  void this.handleConnection(socket);
@@ -36298,6 +36356,7 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36298
36356
  worker.associationDir = associationDir;
36299
36357
  worker.files = [];
36300
36358
  worker.fileSizes = [];
36359
+ worker.outputLines = [];
36301
36360
  worker.startAt = Date.now();
36302
36361
  this.pipeConnection(worker, remoteSocket);
36303
36362
  void this.replenishPool();
@@ -36356,6 +36415,19 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36356
36415
  }
36357
36416
  return ok(void 0);
36358
36417
  }
36418
+ /** Creates a Dcmrecv instance with the pool's shared options. */
36419
+ createDcmrecv(port, tempDir) {
36420
+ return Dcmrecv.create({
36421
+ port,
36422
+ aeTitle: this.options.aeTitle ?? "DCMRECV",
36423
+ outputDirectory: tempDir,
36424
+ configFile: this.options.configFile,
36425
+ configProfile: this.options.configProfile,
36426
+ acseTimeout: this.options.acseTimeout,
36427
+ dimseTimeout: this.options.dimseTimeout,
36428
+ maxPdu: this.options.maxPdu
36429
+ });
36430
+ }
36359
36431
  /** Spawns a single Dcmrecv worker with an ephemeral port. */
36360
36432
  async spawnWorker() {
36361
36433
  const portResult = await allocatePort();
@@ -36364,13 +36436,7 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36364
36436
  const tempDir = path.join(os.tmpdir(), `dcmrecv-pool-${String(port)}-${String(Date.now())}`);
36365
36437
  const mkdirResult = await ensureDirectory(tempDir);
36366
36438
  if (!mkdirResult.ok) return mkdirResult;
36367
- const createResult = Dcmrecv.create({
36368
- port,
36369
- aeTitle: this.options.aeTitle ?? "DCMRECV",
36370
- outputDirectory: tempDir,
36371
- configFile: this.options.configFile,
36372
- configProfile: this.options.configProfile
36373
- });
36439
+ const createResult = this.createDcmrecv(port, tempDir);
36374
36440
  if (!createResult.ok) return createResult;
36375
36441
  const dcmrecv = createResult.value;
36376
36442
  const worker = {
@@ -36382,6 +36448,7 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36382
36448
  associationDir: void 0,
36383
36449
  files: [],
36384
36450
  fileSizes: [],
36451
+ outputLines: [],
36385
36452
  startAt: void 0,
36386
36453
  remoteSocket: void 0,
36387
36454
  workerSocket: void 0
@@ -36443,10 +36510,15 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36443
36510
  // -----------------------------------------------------------------------
36444
36511
  // Worker event wiring
36445
36512
  // -----------------------------------------------------------------------
36446
- /** Wires FILE_RECEIVED and ASSOCIATION_COMPLETE events on a worker. */
36513
+ /** Wires all events on a worker: file handling, association lifecycle, output capture. */
36447
36514
  wireWorkerEvents(worker) {
36448
36515
  this.wireFileReceived(worker);
36449
36516
  this.wireAssociationComplete(worker);
36517
+ this.wireAssociationReceived(worker);
36518
+ this.wireCStoreRequest(worker);
36519
+ this.wireEchoRequest(worker);
36520
+ this.wireRefusingAssociation(worker);
36521
+ this.wireOutputCapture(worker);
36450
36522
  }
36451
36523
  /** Wires FILE_RECEIVED from dcmrecv worker to handleFileReceived. */
36452
36524
  wireFileReceived(worker) {
@@ -36494,6 +36566,7 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36494
36566
  const assocId = worker.associationId ?? data.associationId;
36495
36567
  const assocDir = worker.associationDir ?? "";
36496
36568
  const files = [...worker.files];
36569
+ const output = [...worker.outputLines];
36497
36570
  const endAt = Date.now();
36498
36571
  const startAt = worker.startAt ?? endAt;
36499
36572
  const totalBytes = sumArray(worker.fileSizes);
@@ -36511,19 +36584,65 @@ var DicomReceiver = class _DicomReceiver extends EventEmitter {
36511
36584
  totalBytes,
36512
36585
  bytesPerSecond,
36513
36586
  startAt,
36514
- endAt
36587
+ endAt,
36588
+ output
36515
36589
  });
36516
36590
  worker.state = "idle";
36517
36591
  worker.associationId = void 0;
36518
36592
  worker.associationDir = void 0;
36519
36593
  worker.files = [];
36520
36594
  worker.fileSizes = [];
36595
+ worker.outputLines = [];
36521
36596
  worker.startAt = void 0;
36522
36597
  worker.remoteSocket = void 0;
36523
36598
  worker.workerSocket = void 0;
36524
36599
  void this.scaleDown();
36525
36600
  });
36526
36601
  }
36602
+ /** Bubbles ASSOCIATION_RECEIVED from dcmrecv worker. */
36603
+ wireAssociationReceived(worker) {
36604
+ worker.dcmrecv.onEvent("ASSOCIATION_RECEIVED", (data) => {
36605
+ this.emit("ASSOCIATION_RECEIVED", {
36606
+ associationId: worker.associationId ?? "",
36607
+ callingAE: data.callingAE,
36608
+ calledAE: data.calledAE,
36609
+ source: data.source
36610
+ });
36611
+ });
36612
+ }
36613
+ /** Bubbles C_STORE_REQUEST from dcmrecv worker. */
36614
+ wireCStoreRequest(worker) {
36615
+ worker.dcmrecv.onEvent("C_STORE_REQUEST", (data) => {
36616
+ this.emit("C_STORE_REQUEST", {
36617
+ associationId: worker.associationId ?? "",
36618
+ raw: data.raw
36619
+ });
36620
+ });
36621
+ }
36622
+ /** Bubbles ECHO_REQUEST from dcmrecv worker. */
36623
+ wireEchoRequest(worker) {
36624
+ worker.dcmrecv.onEvent("ECHO_REQUEST", () => {
36625
+ this.emit("ECHO_REQUEST", {
36626
+ associationId: worker.associationId ?? ""
36627
+ });
36628
+ });
36629
+ }
36630
+ /** Bubbles REFUSING_ASSOCIATION from dcmrecv worker. */
36631
+ wireRefusingAssociation(worker) {
36632
+ worker.dcmrecv.onEvent("REFUSING_ASSOCIATION", (data) => {
36633
+ this.emit("REFUSING_ASSOCIATION", {
36634
+ reason: data.reason
36635
+ });
36636
+ });
36637
+ }
36638
+ /** Captures worker output lines during busy associations. */
36639
+ wireOutputCapture(worker) {
36640
+ worker.dcmrecv.on("line", ({ text }) => {
36641
+ if (worker.state === "busy" && worker.outputLines.length < MAX_OUTPUT_LINES_PER_ASSOCIATION) {
36642
+ worker.outputLines.push(text);
36643
+ }
36644
+ });
36645
+ }
36527
36646
  // -----------------------------------------------------------------------
36528
36647
  // Abort signal
36529
36648
  // -----------------------------------------------------------------------