@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-CsYd7SMF.d.ts +1735 -0
- package/dist/index-DbUfqT7o.d.cts +1735 -0
- package/dist/index.cjs +130 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +130 -11
- package/dist/index.js.map +1 -1
- package/dist/servers.cjs +130 -11
- package/dist/servers.cjs.map +1 -1
- package/dist/servers.d.cts +5 -1653
- package/dist/servers.d.ts +5 -1653
- package/dist/servers.js +130 -11
- package/dist/servers.js.map +1 -1
- package/package.json +1 -1
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 './
|
|
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 './
|
|
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(
|
|
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 =
|
|
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
|
|
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
|
// -----------------------------------------------------------------------
|