|
@ -0,0 +1,519 @@
|
|
1
|
package com.ekexiu.project.storage.dicom;
|
|
2
|
|
|
3
|
import java.io.File;
|
|
4
|
import java.io.IOException;
|
|
5
|
import java.security.GeneralSecurityException;
|
|
6
|
import java.util.concurrent.ExecutorService;
|
|
7
|
import java.util.concurrent.Executors;
|
|
8
|
import java.util.concurrent.ScheduledExecutorService;
|
|
9
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
10
|
|
|
11
|
import org.dcm4che3.data.Attributes;
|
|
12
|
import org.dcm4che3.data.Tag;
|
|
13
|
import org.dcm4che3.data.UID;
|
|
14
|
import org.dcm4che3.data.VR;
|
|
15
|
import org.dcm4che3.io.DicomOutputStream;
|
|
16
|
import org.dcm4che3.net.ApplicationEntity;
|
|
17
|
import org.dcm4che3.net.Association;
|
|
18
|
import org.dcm4che3.net.Connection;
|
|
19
|
import org.dcm4che3.net.Device;
|
|
20
|
import org.dcm4che3.net.PDVInputStream;
|
|
21
|
import org.dcm4che3.net.Status;
|
|
22
|
import org.dcm4che3.net.TransferCapability;
|
|
23
|
import org.dcm4che3.net.pdu.PresentationContext;
|
|
24
|
import org.dcm4che3.net.service.BasicCEchoSCP;
|
|
25
|
import org.dcm4che3.net.service.BasicCStoreSCP;
|
|
26
|
import org.dcm4che3.net.service.DicomServiceException;
|
|
27
|
import org.dcm4che3.net.service.DicomServiceRegistry;
|
|
28
|
import org.dcm4che3.util.SafeClose;
|
|
29
|
|
|
30
|
public class DicomStoreService
|
|
31
|
{
|
|
32
|
private static AtomicBoolean running = new AtomicBoolean(false);
|
|
33
|
private static final String PART_EXT = ".part";
|
|
34
|
private static Connection closeConn;
|
|
35
|
|
|
36
|
synchronized public static void startup() throws IOException, GeneralSecurityException {
|
|
37
|
if (running.get()) {
|
|
38
|
return;
|
|
39
|
}
|
|
40
|
|
|
41
|
DicomStoreService service = new DicomStoreService();
|
|
42
|
service.run();
|
|
43
|
}
|
|
44
|
|
|
45
|
synchronized public static void stop() {
|
|
46
|
if (!running.get()) {
|
|
47
|
return;
|
|
48
|
}
|
|
49
|
closeConn.unbind();
|
|
50
|
running.set(false);
|
|
51
|
|
|
52
|
}
|
|
53
|
|
|
54
|
private final Device device = new Device("AIADS");
|
|
55
|
private final ApplicationEntity ae = new ApplicationEntity("AIADS");
|
|
56
|
private final Connection conn = new Connection();
|
|
57
|
private File storageDir = new File("/ekexiu/storage_asd/download");
|
|
58
|
private int status;
|
|
59
|
private int responseDelay;
|
|
60
|
private final BasicCStoreSCP cstoreSCP = new BasicCStoreSCP("*") {
|
|
61
|
|
|
62
|
@Override
|
|
63
|
protected void store(Association as, PresentationContext pc, Attributes rq, PDVInputStream data, Attributes rsp)
|
|
64
|
throws IOException {
|
|
65
|
try {
|
|
66
|
rsp.setInt(Tag.Status, VR.US, status);
|
|
67
|
if (storageDir == null)
|
|
68
|
return;
|
|
69
|
|
|
70
|
String cuid = rq.getString(Tag.AffectedSOPClassUID);
|
|
71
|
String iuid = rq.getString(Tag.AffectedSOPInstanceUID);
|
|
72
|
String tsuid = pc.getTransferSyntax();
|
|
73
|
File file = new File(storageDir, iuid + PART_EXT);
|
|
74
|
try {
|
|
75
|
storeTo(as, as.createFileMetaInformation(iuid, cuid, tsuid), data, file);
|
|
76
|
renameTo(as, file, new File(storageDir, iuid));
|
|
77
|
} catch (Exception e) {
|
|
78
|
file.delete();
|
|
79
|
throw new DicomServiceException(Status.ProcessingFailure, e);
|
|
80
|
}
|
|
81
|
} finally {
|
|
82
|
if (responseDelay > 0)
|
|
83
|
try {
|
|
84
|
Thread.sleep(responseDelay);
|
|
85
|
} catch (InterruptedException ignore) {}
|
|
86
|
}
|
|
87
|
}
|
|
88
|
|
|
89
|
};
|
|
90
|
|
|
91
|
public DicomStoreService() {
|
|
92
|
device.setDimseRQHandler(createServiceRegistry());
|
|
93
|
device.addConnection(conn);
|
|
94
|
device.addApplicationEntity(ae);
|
|
95
|
ae.setAssociationAcceptor(true);
|
|
96
|
ae.addConnection(conn);
|
|
97
|
}
|
|
98
|
|
|
99
|
private DicomServiceRegistry createServiceRegistry() {
|
|
100
|
DicomServiceRegistry serviceRegistry = new DicomServiceRegistry();
|
|
101
|
serviceRegistry.addDicomService(new BasicCEchoSCP());
|
|
102
|
serviceRegistry.addDicomService(cstoreSCP);
|
|
103
|
return serviceRegistry;
|
|
104
|
}
|
|
105
|
|
|
106
|
private void storeTo(Association as, Attributes fmi, PDVInputStream data, File file) throws IOException {
|
|
107
|
file.getParentFile().mkdirs();
|
|
108
|
DicomOutputStream out = new DicomOutputStream(file);
|
|
109
|
try {
|
|
110
|
out.writeFileMetaInformation(fmi);
|
|
111
|
data.copyTo(out);
|
|
112
|
} finally {
|
|
113
|
SafeClose.close(out);
|
|
114
|
}
|
|
115
|
}
|
|
116
|
|
|
117
|
private static void renameTo(Association as, File from, File dest) throws IOException {
|
|
118
|
if (!dest.getParentFile().mkdirs())
|
|
119
|
dest.delete();
|
|
120
|
if (!from.renameTo(dest))
|
|
121
|
throw new IOException("Failed to rename " + from + " to " + dest);
|
|
122
|
}
|
|
123
|
|
|
124
|
private void run() throws IOException, GeneralSecurityException {
|
|
125
|
|
|
126
|
conn.setPort(6000);
|
|
127
|
conn.setReceivePDULength(Connection.DEF_MAX_PDU_LENGTH);
|
|
128
|
conn.setSendPDULength(Connection.DEF_MAX_PDU_LENGTH);
|
|
129
|
|
|
130
|
conn.setMaxOpsInvoked(0);
|
|
131
|
conn.setMaxOpsPerformed(0);
|
|
132
|
conn.setPackPDV(true);
|
|
133
|
conn.setConnectTimeout(0);
|
|
134
|
conn.setRequestTimeout(0);
|
|
135
|
conn.setAcceptTimeout(0);
|
|
136
|
conn.setReleaseTimeout(0);
|
|
137
|
conn.setResponseTimeout(0);
|
|
138
|
|
|
139
|
conn.setIdleTimeout(0);
|
|
140
|
conn.setSocketCloseDelay(Connection.DEF_SOCKETDELAY);
|
|
141
|
conn.setSendBufferSize(0);
|
|
142
|
conn.setReceiveBufferSize(0);
|
|
143
|
conn.setTcpNoDelay(true);
|
|
144
|
this.status = 0;
|
|
145
|
this.responseDelay = 0;
|
|
146
|
|
|
147
|
TransferCapability tc = null;
|
|
148
|
|
|
149
|
tc = new TransferCapability(null, UID.VerificationSOPClass, TransferCapability.Role.SCP,
|
|
150
|
UID.ImplicitVRLittleEndian);
|
|
151
|
ae.addTransferCapability(tc);
|
|
152
|
tc = new TransferCapability(null, UID.StorageServiceClass, TransferCapability.Role.SCP, "*");
|
|
153
|
ae.addTransferCapability(tc);
|
|
154
|
tc = new TransferCapability(null, UID.BasicStudyContentNotificationSOPClassRetired, TransferCapability.Role.SCP,
|
|
155
|
"*");
|
|
156
|
ae.addTransferCapability(tc);
|
|
157
|
tc = new TransferCapability(null, UID.StoredPrintStorageSOPClassRetired, TransferCapability.Role.SCP, "*");
|
|
158
|
ae.addTransferCapability(tc);
|
|
159
|
tc = new TransferCapability(null, UID.HardcopyGrayscaleImageStorageSOPClassRetired, TransferCapability.Role.SCP,
|
|
160
|
"*");
|
|
161
|
ae.addTransferCapability(tc);
|
|
162
|
tc = new TransferCapability(null, UID.HardcopyColorImageStorageSOPClassRetired, TransferCapability.Role.SCP,
|
|
163
|
"*");
|
|
164
|
ae.addTransferCapability(tc);
|
|
165
|
tc = new TransferCapability(null, UID.ComputedRadiographyImageStorage, TransferCapability.Role.SCP, "*");
|
|
166
|
ae.addTransferCapability(tc);
|
|
167
|
tc = new TransferCapability(null, UID.DigitalXRayImageStorageForPresentation, TransferCapability.Role.SCP, "*");
|
|
168
|
ae.addTransferCapability(tc);
|
|
169
|
tc = new TransferCapability(null, UID.DigitalXRayImageStorageForProcessing, TransferCapability.Role.SCP, "*");
|
|
170
|
ae.addTransferCapability(tc);
|
|
171
|
tc = new TransferCapability(null, UID.DigitalMammographyXRayImageStorageForPresentation,
|
|
172
|
TransferCapability.Role.SCP, "*");
|
|
173
|
ae.addTransferCapability(tc);
|
|
174
|
tc = new TransferCapability(null, UID.DigitalMammographyXRayImageStorageForProcessing,
|
|
175
|
TransferCapability.Role.SCP, "*");
|
|
176
|
ae.addTransferCapability(tc);
|
|
177
|
tc = new TransferCapability(null, UID.DigitalIntraOralXRayImageStorageForPresentation,
|
|
178
|
TransferCapability.Role.SCP, "*");
|
|
179
|
ae.addTransferCapability(tc);
|
|
180
|
tc = new TransferCapability(null, UID.DigitalIntraOralXRayImageStorageForProcessing,
|
|
181
|
TransferCapability.Role.SCP, "*");
|
|
182
|
ae.addTransferCapability(tc);
|
|
183
|
tc = new TransferCapability(null, UID.CTImageStorage, TransferCapability.Role.SCP, "*");
|
|
184
|
ae.addTransferCapability(tc);
|
|
185
|
tc = new TransferCapability(null, UID.EnhancedCTImageStorage, TransferCapability.Role.SCP, "*");
|
|
186
|
ae.addTransferCapability(tc);
|
|
187
|
tc = new TransferCapability(null, UID.LegacyConvertedEnhancedCTImageStorage, TransferCapability.Role.SCP, "*");
|
|
188
|
ae.addTransferCapability(tc);
|
|
189
|
tc = new TransferCapability(null, UID.UltrasoundMultiFrameImageStorageRetired, TransferCapability.Role.SCP,
|
|
190
|
"*");
|
|
191
|
ae.addTransferCapability(tc);
|
|
192
|
tc = new TransferCapability(null, UID.UltrasoundMultiFrameImageStorage, TransferCapability.Role.SCP, "*");
|
|
193
|
ae.addTransferCapability(tc);
|
|
194
|
tc = new TransferCapability(null, UID.MRImageStorage, TransferCapability.Role.SCP, "*");
|
|
195
|
ae.addTransferCapability(tc);
|
|
196
|
tc = new TransferCapability(null, UID.EnhancedMRImageStorage, TransferCapability.Role.SCP, "*");
|
|
197
|
ae.addTransferCapability(tc);
|
|
198
|
tc = new TransferCapability(null, UID.MRSpectroscopyStorage, TransferCapability.Role.SCP, "*");
|
|
199
|
ae.addTransferCapability(tc);
|
|
200
|
tc = new TransferCapability(null, UID.EnhancedMRColorImageStorage, TransferCapability.Role.SCP, "*");
|
|
201
|
ae.addTransferCapability(tc);
|
|
202
|
tc = new TransferCapability(null, UID.LegacyConvertedEnhancedMRImageStorage, TransferCapability.Role.SCP, "*");
|
|
203
|
ae.addTransferCapability(tc);
|
|
204
|
tc = new TransferCapability(null, UID.NuclearMedicineImageStorageRetired, TransferCapability.Role.SCP, "*");
|
|
205
|
ae.addTransferCapability(tc);
|
|
206
|
tc = new TransferCapability(null, UID.UltrasoundImageStorageRetired, TransferCapability.Role.SCP, "*");
|
|
207
|
ae.addTransferCapability(tc);
|
|
208
|
tc = new TransferCapability(null, UID.UltrasoundImageStorage, TransferCapability.Role.SCP, "*");
|
|
209
|
ae.addTransferCapability(tc);
|
|
210
|
tc = new TransferCapability(null, UID.EnhancedUSVolumeStorage, TransferCapability.Role.SCP, "*");
|
|
211
|
ae.addTransferCapability(tc);
|
|
212
|
tc = new TransferCapability(null, UID.SecondaryCaptureImageStorage, TransferCapability.Role.SCP, "*");
|
|
213
|
ae.addTransferCapability(tc);
|
|
214
|
tc = new TransferCapability(null, UID.MultiFrameSingleBitSecondaryCaptureImageStorage,
|
|
215
|
TransferCapability.Role.SCP, "*");
|
|
216
|
ae.addTransferCapability(tc);
|
|
217
|
tc = new TransferCapability(null, UID.MultiFrameGrayscaleByteSecondaryCaptureImageStorage,
|
|
218
|
TransferCapability.Role.SCP, "*");
|
|
219
|
ae.addTransferCapability(tc);
|
|
220
|
tc = new TransferCapability(null, UID.MultiFrameGrayscaleWordSecondaryCaptureImageStorage,
|
|
221
|
TransferCapability.Role.SCP, "*");
|
|
222
|
ae.addTransferCapability(tc);
|
|
223
|
tc = new TransferCapability(null, UID.MultiFrameTrueColorSecondaryCaptureImageStorage,
|
|
224
|
TransferCapability.Role.SCP, "*");
|
|
225
|
ae.addTransferCapability(tc);
|
|
226
|
tc = new TransferCapability(null, UID.StandaloneOverlayStorageRetired, TransferCapability.Role.SCP, "*");
|
|
227
|
ae.addTransferCapability(tc);
|
|
228
|
tc = new TransferCapability(null, UID.StandaloneCurveStorageRetired, TransferCapability.Role.SCP, "*");
|
|
229
|
ae.addTransferCapability(tc);
|
|
230
|
tc = new TransferCapability(null, UID.WaveformStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
231
|
ae.addTransferCapability(tc);
|
|
232
|
tc = new TransferCapability(null, UID.TwelveLeadECGWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
233
|
ae.addTransferCapability(tc);
|
|
234
|
tc = new TransferCapability(null, UID.GeneralECGWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
235
|
ae.addTransferCapability(tc);
|
|
236
|
tc = new TransferCapability(null, UID.AmbulatoryECGWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
237
|
ae.addTransferCapability(tc);
|
|
238
|
tc = new TransferCapability(null, UID.HemodynamicWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
239
|
ae.addTransferCapability(tc);
|
|
240
|
tc = new TransferCapability(null, UID.CardiacElectrophysiologyWaveformStorage, TransferCapability.Role.SCP,
|
|
241
|
"*");
|
|
242
|
ae.addTransferCapability(tc);
|
|
243
|
tc = new TransferCapability(null, UID.BasicVoiceAudioWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
244
|
ae.addTransferCapability(tc);
|
|
245
|
tc = new TransferCapability(null, UID.GeneralAudioWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
246
|
ae.addTransferCapability(tc);
|
|
247
|
tc = new TransferCapability(null, UID.ArterialPulseWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
248
|
ae.addTransferCapability(tc);
|
|
249
|
tc = new TransferCapability(null, UID.RespiratoryWaveformStorage, TransferCapability.Role.SCP, "*");
|
|
250
|
ae.addTransferCapability(tc);
|
|
251
|
tc = new TransferCapability(null, UID.StandaloneModalityLUTStorageRetired, TransferCapability.Role.SCP, "*");
|
|
252
|
ae.addTransferCapability(tc);
|
|
253
|
tc = new TransferCapability(null, UID.StandaloneVOILUTStorageRetired, TransferCapability.Role.SCP, "*");
|
|
254
|
ae.addTransferCapability(tc);
|
|
255
|
tc = new TransferCapability(null, UID.GrayscaleSoftcopyPresentationStateStorage, TransferCapability.Role.SCP,
|
|
256
|
"*");
|
|
257
|
ae.addTransferCapability(tc);
|
|
258
|
tc = new TransferCapability(null, UID.ColorSoftcopyPresentationStateStorage, TransferCapability.Role.SCP, "*");
|
|
259
|
ae.addTransferCapability(tc);
|
|
260
|
tc = new TransferCapability(null, UID.PseudoColorSoftcopyPresentationStateStorage, TransferCapability.Role.SCP,
|
|
261
|
"*");
|
|
262
|
ae.addTransferCapability(tc);
|
|
263
|
tc = new TransferCapability(null, UID.BlendingSoftcopyPresentationStateStorage, TransferCapability.Role.SCP,
|
|
264
|
"*");
|
|
265
|
ae.addTransferCapability(tc);
|
|
266
|
tc = new TransferCapability(null, UID.XAXRFGrayscaleSoftcopyPresentationStateStorage,
|
|
267
|
TransferCapability.Role.SCP, "*");
|
|
268
|
ae.addTransferCapability(tc);
|
|
269
|
tc = new TransferCapability(null, UID.GrayscalePlanarMPRVolumetricPresentationStateStorage,
|
|
270
|
TransferCapability.Role.SCP, "*");
|
|
271
|
ae.addTransferCapability(tc);
|
|
272
|
tc = new TransferCapability(null, UID.CompositingPlanarMPRVolumetricPresentationStateStorage,
|
|
273
|
TransferCapability.Role.SCP, "*");
|
|
274
|
ae.addTransferCapability(tc);
|
|
275
|
tc = new TransferCapability(null, UID.AdvancedBlendingPresentationStateStorage, TransferCapability.Role.SCP,
|
|
276
|
"*");
|
|
277
|
ae.addTransferCapability(tc);
|
|
278
|
tc = new TransferCapability(null, UID.VolumeRenderingVolumetricPresentationStateStorage,
|
|
279
|
TransferCapability.Role.SCP, "*");
|
|
280
|
ae.addTransferCapability(tc);
|
|
281
|
tc = new TransferCapability(null, UID.SegmentedVolumeRenderingVolumetricPresentationStateStorage,
|
|
282
|
TransferCapability.Role.SCP, "*");
|
|
283
|
ae.addTransferCapability(tc);
|
|
284
|
tc = new TransferCapability(null, UID.MultipleVolumeRenderingVolumetricPresentationStateStorage,
|
|
285
|
TransferCapability.Role.SCP, "*");
|
|
286
|
ae.addTransferCapability(tc);
|
|
287
|
tc = new TransferCapability(null, UID.XRayAngiographicImageStorage, TransferCapability.Role.SCP, "*");
|
|
288
|
ae.addTransferCapability(tc);
|
|
289
|
tc = new TransferCapability(null, UID.EnhancedXAImageStorage, TransferCapability.Role.SCP, "*");
|
|
290
|
ae.addTransferCapability(tc);
|
|
291
|
tc = new TransferCapability(null, UID.XRayRadiofluoroscopicImageStorage, TransferCapability.Role.SCP, "*");
|
|
292
|
ae.addTransferCapability(tc);
|
|
293
|
tc = new TransferCapability(null, UID.EnhancedXRFImageStorage, TransferCapability.Role.SCP, "*");
|
|
294
|
ae.addTransferCapability(tc);
|
|
295
|
tc = new TransferCapability(null, UID.XRayAngiographicBiPlaneImageStorageRetired, TransferCapability.Role.SCP,
|
|
296
|
"*");
|
|
297
|
ae.addTransferCapability(tc);
|
|
298
|
tc = new TransferCapability(null, UID.XRay3DAngiographicImageStorage, TransferCapability.Role.SCP, "*");
|
|
299
|
ae.addTransferCapability(tc);
|
|
300
|
tc = new TransferCapability(null, UID.XRay3DCraniofacialImageStorage, TransferCapability.Role.SCP, "*");
|
|
301
|
ae.addTransferCapability(tc);
|
|
302
|
tc = new TransferCapability(null, UID.BreastTomosynthesisImageStorage, TransferCapability.Role.SCP, "*");
|
|
303
|
ae.addTransferCapability(tc);
|
|
304
|
tc = new TransferCapability(null, UID.BreastProjectionXRayImageStorageForPresentation,
|
|
305
|
TransferCapability.Role.SCP, "*");
|
|
306
|
ae.addTransferCapability(tc);
|
|
307
|
tc = new TransferCapability(null, UID.BreastProjectionXRayImageStorageForProcessing,
|
|
308
|
TransferCapability.Role.SCP, "*");
|
|
309
|
ae.addTransferCapability(tc);
|
|
310
|
tc = new TransferCapability(null, UID.IntravascularOpticalCoherenceTomographyImageStorageForPresentation,
|
|
311
|
TransferCapability.Role.SCP, "*");
|
|
312
|
ae.addTransferCapability(tc);
|
|
313
|
tc = new TransferCapability(null, UID.IntravascularOpticalCoherenceTomographyImageStorageForProcessing,
|
|
314
|
TransferCapability.Role.SCP, "*");
|
|
315
|
ae.addTransferCapability(tc);
|
|
316
|
tc = new TransferCapability(null, UID.NuclearMedicineImageStorage, TransferCapability.Role.SCP, "*");
|
|
317
|
ae.addTransferCapability(tc);
|
|
318
|
tc = new TransferCapability(null, UID.ParametricMapStorage, TransferCapability.Role.SCP, "*");
|
|
319
|
ae.addTransferCapability(tc);
|
|
320
|
tc = new TransferCapability(null, UID.MRImageStorageZeroPaddedRetired, TransferCapability.Role.SCP, "*");
|
|
321
|
ae.addTransferCapability(tc);
|
|
322
|
tc = new TransferCapability(null, UID.RawDataStorage, TransferCapability.Role.SCP, "*");
|
|
323
|
ae.addTransferCapability(tc);
|
|
324
|
tc = new TransferCapability(null, UID.SpatialRegistrationStorage, TransferCapability.Role.SCP, "*");
|
|
325
|
ae.addTransferCapability(tc);
|
|
326
|
tc = new TransferCapability(null, UID.SpatialFiducialsStorage, TransferCapability.Role.SCP, "*");
|
|
327
|
ae.addTransferCapability(tc);
|
|
328
|
tc = new TransferCapability(null, UID.DeformableSpatialRegistrationStorage, TransferCapability.Role.SCP, "*");
|
|
329
|
ae.addTransferCapability(tc);
|
|
330
|
tc = new TransferCapability(null, UID.SegmentationStorage, TransferCapability.Role.SCP, "*");
|
|
331
|
ae.addTransferCapability(tc);
|
|
332
|
tc = new TransferCapability(null, UID.SurfaceSegmentationStorage, TransferCapability.Role.SCP, "*");
|
|
333
|
ae.addTransferCapability(tc);
|
|
334
|
tc = new TransferCapability(null, UID.TractographyResultsStorage, TransferCapability.Role.SCP, "*");
|
|
335
|
ae.addTransferCapability(tc);
|
|
336
|
tc = new TransferCapability(null, UID.RealWorldValueMappingStorage, TransferCapability.Role.SCP, "*");
|
|
337
|
ae.addTransferCapability(tc);
|
|
338
|
tc = new TransferCapability(null, UID.SurfaceScanMeshStorage, TransferCapability.Role.SCP, "*");
|
|
339
|
ae.addTransferCapability(tc);
|
|
340
|
tc = new TransferCapability(null, UID.SurfaceScanPointCloudStorage, TransferCapability.Role.SCP, "*");
|
|
341
|
ae.addTransferCapability(tc);
|
|
342
|
tc = new TransferCapability(null, UID.VLImageStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
343
|
ae.addTransferCapability(tc);
|
|
344
|
tc = new TransferCapability(null, UID.VLMultiFrameImageStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
345
|
ae.addTransferCapability(tc);
|
|
346
|
tc = new TransferCapability(null, UID.VLEndoscopicImageStorage, TransferCapability.Role.SCP, "*");
|
|
347
|
ae.addTransferCapability(tc);
|
|
348
|
tc = new TransferCapability(null, UID.VideoEndoscopicImageStorage, TransferCapability.Role.SCP, "*");
|
|
349
|
ae.addTransferCapability(tc);
|
|
350
|
tc = new TransferCapability(null, UID.VLMicroscopicImageStorage, TransferCapability.Role.SCP, "*");
|
|
351
|
ae.addTransferCapability(tc);
|
|
352
|
tc = new TransferCapability(null, UID.VideoMicroscopicImageStorage, TransferCapability.Role.SCP, "*");
|
|
353
|
ae.addTransferCapability(tc);
|
|
354
|
tc = new TransferCapability(null, UID.VLSlideCoordinatesMicroscopicImageStorage, TransferCapability.Role.SCP,
|
|
355
|
"*");
|
|
356
|
ae.addTransferCapability(tc);
|
|
357
|
tc = new TransferCapability(null, UID.VLPhotographicImageStorage, TransferCapability.Role.SCP, "*");
|
|
358
|
ae.addTransferCapability(tc);
|
|
359
|
tc = new TransferCapability(null, UID.VideoPhotographicImageStorage, TransferCapability.Role.SCP, "*");
|
|
360
|
ae.addTransferCapability(tc);
|
|
361
|
tc = new TransferCapability(null, UID.OphthalmicPhotography8BitImageStorage, TransferCapability.Role.SCP, "*");
|
|
362
|
ae.addTransferCapability(tc);
|
|
363
|
tc = new TransferCapability(null, UID.OphthalmicPhotography16BitImageStorage, TransferCapability.Role.SCP, "*");
|
|
364
|
ae.addTransferCapability(tc);
|
|
365
|
tc = new TransferCapability(null, UID.StereometricRelationshipStorage, TransferCapability.Role.SCP, "*");
|
|
366
|
ae.addTransferCapability(tc);
|
|
367
|
tc = new TransferCapability(null, UID.OphthalmicTomographyImageStorage, TransferCapability.Role.SCP, "*");
|
|
368
|
ae.addTransferCapability(tc);
|
|
369
|
tc = new TransferCapability(null, UID.WideFieldOphthalmicPhotographyStereographicProjectionImageStorage,
|
|
370
|
TransferCapability.Role.SCP, "*");
|
|
371
|
ae.addTransferCapability(tc);
|
|
372
|
tc = new TransferCapability(null, UID.WideFieldOphthalmicPhotography3DCoordinatesImageStorage,
|
|
373
|
TransferCapability.Role.SCP, "*");
|
|
374
|
ae.addTransferCapability(tc);
|
|
375
|
tc = new TransferCapability(null, UID.OphthalmicOpticalCoherenceTomographyEnFaceImageStorage,
|
|
376
|
TransferCapability.Role.SCP, "*");
|
|
377
|
ae.addTransferCapability(tc);
|
|
378
|
tc = new TransferCapability(null, UID.OphthalmicOpticalCoherenceTomographyBScanVolumeAnalysisStorage,
|
|
379
|
TransferCapability.Role.SCP, "*");
|
|
380
|
ae.addTransferCapability(tc);
|
|
381
|
tc = new TransferCapability(null, UID.VLWholeSlideMicroscopyImageStorage, TransferCapability.Role.SCP, "*");
|
|
382
|
ae.addTransferCapability(tc);
|
|
383
|
tc = new TransferCapability(null, UID.LensometryMeasurementsStorage, TransferCapability.Role.SCP, "*");
|
|
384
|
ae.addTransferCapability(tc);
|
|
385
|
tc = new TransferCapability(null, UID.AutorefractionMeasurementsStorage, TransferCapability.Role.SCP, "*");
|
|
386
|
ae.addTransferCapability(tc);
|
|
387
|
tc = new TransferCapability(null, UID.KeratometryMeasurementsStorage, TransferCapability.Role.SCP, "*");
|
|
388
|
ae.addTransferCapability(tc);
|
|
389
|
tc = new TransferCapability(null, UID.SubjectiveRefractionMeasurementsStorage, TransferCapability.Role.SCP,
|
|
390
|
"*");
|
|
391
|
ae.addTransferCapability(tc);
|
|
392
|
tc = new TransferCapability(null, UID.VisualAcuityMeasurementsStorage, TransferCapability.Role.SCP, "*");
|
|
393
|
ae.addTransferCapability(tc);
|
|
394
|
tc = new TransferCapability(null, UID.SpectaclePrescriptionReportStorage, TransferCapability.Role.SCP, "*");
|
|
395
|
ae.addTransferCapability(tc);
|
|
396
|
tc = new TransferCapability(null, UID.OphthalmicAxialMeasurementsStorage, TransferCapability.Role.SCP, "*");
|
|
397
|
ae.addTransferCapability(tc);
|
|
398
|
tc = new TransferCapability(null, UID.IntraocularLensCalculationsStorage, TransferCapability.Role.SCP, "*");
|
|
399
|
ae.addTransferCapability(tc);
|
|
400
|
tc = new TransferCapability(null, UID.MacularGridThicknessAndVolumeReportStorage, TransferCapability.Role.SCP,
|
|
401
|
"*");
|
|
402
|
ae.addTransferCapability(tc);
|
|
403
|
tc = new TransferCapability(null, UID.OphthalmicVisualFieldStaticPerimetryMeasurementsStorage,
|
|
404
|
TransferCapability.Role.SCP, "*");
|
|
405
|
ae.addTransferCapability(tc);
|
|
406
|
tc = new TransferCapability(null, UID.OphthalmicThicknessMapStorage, TransferCapability.Role.SCP, "*");
|
|
407
|
ae.addTransferCapability(tc);
|
|
408
|
tc = new TransferCapability(null, UID.CornealTopographyMapStorage, TransferCapability.Role.SCP, "*");
|
|
409
|
ae.addTransferCapability(tc);
|
|
410
|
tc = new TransferCapability(null, UID.TextSRStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
411
|
ae.addTransferCapability(tc);
|
|
412
|
tc = new TransferCapability(null, UID.AudioSRStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
413
|
ae.addTransferCapability(tc);
|
|
414
|
tc = new TransferCapability(null, UID.DetailSRStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
415
|
ae.addTransferCapability(tc);
|
|
416
|
tc = new TransferCapability(null, UID.ComprehensiveSRStorageTrialRetired, TransferCapability.Role.SCP, "*");
|
|
417
|
ae.addTransferCapability(tc);
|
|
418
|
tc = new TransferCapability(null, UID.BasicTextSRStorage, TransferCapability.Role.SCP, "*");
|
|
419
|
ae.addTransferCapability(tc);
|
|
420
|
tc = new TransferCapability(null, UID.EnhancedSRStorage, TransferCapability.Role.SCP, "*");
|
|
421
|
ae.addTransferCapability(tc);
|
|
422
|
tc = new TransferCapability(null, UID.ComprehensiveSRStorage, TransferCapability.Role.SCP, "*");
|
|
423
|
ae.addTransferCapability(tc);
|
|
424
|
tc = new TransferCapability(null, UID.Comprehensive3DSRStorage, TransferCapability.Role.SCP, "*");
|
|
425
|
ae.addTransferCapability(tc);
|
|
426
|
tc = new TransferCapability(null, UID.ExtensibleSRStorage, TransferCapability.Role.SCP, "*");
|
|
427
|
ae.addTransferCapability(tc);
|
|
428
|
tc = new TransferCapability(null, UID.ProcedureLogStorage, TransferCapability.Role.SCP, "*");
|
|
429
|
ae.addTransferCapability(tc);
|
|
430
|
tc = new TransferCapability(null, UID.MammographyCADSRStorage, TransferCapability.Role.SCP, "*");
|
|
431
|
ae.addTransferCapability(tc);
|
|
432
|
tc = new TransferCapability(null, UID.KeyObjectSelectionDocumentStorage, TransferCapability.Role.SCP, "*");
|
|
433
|
ae.addTransferCapability(tc);
|
|
434
|
tc = new TransferCapability(null, UID.ChestCADSRStorage, TransferCapability.Role.SCP, "*");
|
|
435
|
ae.addTransferCapability(tc);
|
|
436
|
tc = new TransferCapability(null, UID.XRayRadiationDoseSRStorage, TransferCapability.Role.SCP, "*");
|
|
437
|
ae.addTransferCapability(tc);
|
|
438
|
tc = new TransferCapability(null, UID.RadiopharmaceuticalRadiationDoseSRStorage, TransferCapability.Role.SCP,
|
|
439
|
"*");
|
|
440
|
ae.addTransferCapability(tc);
|
|
441
|
tc = new TransferCapability(null, UID.ColonCADSRStorage, TransferCapability.Role.SCP, "*");
|
|
442
|
ae.addTransferCapability(tc);
|
|
443
|
tc = new TransferCapability(null, UID.ImplantationPlanSRStorage, TransferCapability.Role.SCP, "*");
|
|
444
|
ae.addTransferCapability(tc);
|
|
445
|
tc = new TransferCapability(null, UID.AcquisitionContextSRStorage, TransferCapability.Role.SCP, "*");
|
|
446
|
ae.addTransferCapability(tc);
|
|
447
|
tc = new TransferCapability(null, UID.SimplifiedAdultEchoSRStorage, TransferCapability.Role.SCP, "*");
|
|
448
|
ae.addTransferCapability(tc);
|
|
449
|
tc = new TransferCapability(null, UID.PatientRadiationDoseSRStorage, TransferCapability.Role.SCP, "*");
|
|
450
|
ae.addTransferCapability(tc);
|
|
451
|
tc = new TransferCapability(null, UID.ContentAssessmentResultsStorage, TransferCapability.Role.SCP, "*");
|
|
452
|
ae.addTransferCapability(tc);
|
|
453
|
tc = new TransferCapability(null, UID.EncapsulatedPDFStorage, TransferCapability.Role.SCP, "*");
|
|
454
|
ae.addTransferCapability(tc);
|
|
455
|
tc = new TransferCapability(null, UID.EncapsulatedCDAStorage, TransferCapability.Role.SCP, "*");
|
|
456
|
ae.addTransferCapability(tc);
|
|
457
|
tc = new TransferCapability(null, UID.EncapsulatedSTLStorage, TransferCapability.Role.SCP, "*");
|
|
458
|
ae.addTransferCapability(tc);
|
|
459
|
tc = new TransferCapability(null, UID.PositronEmissionTomographyImageStorage, TransferCapability.Role.SCP, "*");
|
|
460
|
ae.addTransferCapability(tc);
|
|
461
|
tc = new TransferCapability(null, UID.LegacyConvertedEnhancedPETImageStorage, TransferCapability.Role.SCP, "*");
|
|
462
|
ae.addTransferCapability(tc);
|
|
463
|
tc = new TransferCapability(null, UID.StandalonePETCurveStorageRetired, TransferCapability.Role.SCP, "*");
|
|
464
|
ae.addTransferCapability(tc);
|
|
465
|
tc = new TransferCapability(null, UID.EnhancedPETImageStorage, TransferCapability.Role.SCP, "*");
|
|
466
|
ae.addTransferCapability(tc);
|
|
467
|
tc = new TransferCapability(null, UID.BasicStructuredDisplayStorage, TransferCapability.Role.SCP, "*");
|
|
468
|
ae.addTransferCapability(tc);
|
|
469
|
tc = new TransferCapability(null, UID.CTDefinedProcedureProtocolStorage, TransferCapability.Role.SCP, "*");
|
|
470
|
ae.addTransferCapability(tc);
|
|
471
|
tc = new TransferCapability(null, UID.CTPerformedProcedureProtocolStorage, TransferCapability.Role.SCP, "*");
|
|
472
|
ae.addTransferCapability(tc);
|
|
473
|
tc = new TransferCapability(null, UID.ProtocolApprovalStorage, TransferCapability.Role.SCP, "*");
|
|
474
|
ae.addTransferCapability(tc);
|
|
475
|
tc = new TransferCapability(null, UID.RTImageStorage, TransferCapability.Role.SCP, "*");
|
|
476
|
ae.addTransferCapability(tc);
|
|
477
|
tc = new TransferCapability(null, UID.RTDoseStorage, TransferCapability.Role.SCP, "*");
|
|
478
|
ae.addTransferCapability(tc);
|
|
479
|
tc = new TransferCapability(null, UID.RTStructureSetStorage, TransferCapability.Role.SCP, "*");
|
|
480
|
ae.addTransferCapability(tc);
|
|
481
|
tc = new TransferCapability(null, UID.RTBeamsTreatmentRecordStorage, TransferCapability.Role.SCP, "*");
|
|
482
|
ae.addTransferCapability(tc);
|
|
483
|
tc = new TransferCapability(null, UID.RTPlanStorage, TransferCapability.Role.SCP, "*");
|
|
484
|
ae.addTransferCapability(tc);
|
|
485
|
tc = new TransferCapability(null, UID.RTBrachyTreatmentRecordStorage, TransferCapability.Role.SCP, "*");
|
|
486
|
ae.addTransferCapability(tc);
|
|
487
|
tc = new TransferCapability(null, UID.RTTreatmentSummaryRecordStorage, TransferCapability.Role.SCP, "*");
|
|
488
|
ae.addTransferCapability(tc);
|
|
489
|
tc = new TransferCapability(null, UID.RTIonPlanStorage, TransferCapability.Role.SCP, "*");
|
|
490
|
ae.addTransferCapability(tc);
|
|
491
|
tc = new TransferCapability(null, UID.RTIonBeamsTreatmentRecordStorage, TransferCapability.Role.SCP, "*");
|
|
492
|
ae.addTransferCapability(tc);
|
|
493
|
tc = new TransferCapability(null, UID.RTBeamsDeliveryInstructionStorageTrialRetired,
|
|
494
|
TransferCapability.Role.SCP, "*");
|
|
495
|
ae.addTransferCapability(tc);
|
|
496
|
tc = new TransferCapability(null, UID.RTBeamsDeliveryInstructionStorage, TransferCapability.Role.SCP, "*");
|
|
497
|
ae.addTransferCapability(tc);
|
|
498
|
tc = new TransferCapability(null, UID.RTBrachyApplicationSetupDeliveryInstructionStorage,
|
|
499
|
TransferCapability.Role.SCP, "*");
|
|
500
|
ae.addTransferCapability(tc);
|
|
501
|
tc = new TransferCapability(null, UID.HangingProtocolStorage, TransferCapability.Role.SCP, "*");
|
|
502
|
ae.addTransferCapability(tc);
|
|
503
|
tc = new TransferCapability(null, UID.ColorPaletteStorage, TransferCapability.Role.SCP, "*");
|
|
504
|
ae.addTransferCapability(tc);
|
|
505
|
tc = new TransferCapability(null, UID.GenericImplantTemplateStorage, TransferCapability.Role.SCP, "*");
|
|
506
|
ae.addTransferCapability(tc);
|
|
507
|
tc = new TransferCapability(null, UID.ImplantAssemblyTemplateStorage, TransferCapability.Role.SCP, "*");
|
|
508
|
ae.addTransferCapability(tc);
|
|
509
|
tc = new TransferCapability(null, UID.ImplantTemplateGroupStorage, TransferCapability.Role.SCP, "*");
|
|
510
|
ae.addTransferCapability(tc);
|
|
511
|
ExecutorService executorService = Executors.newCachedThreadPool();
|
|
512
|
ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
|
|
513
|
device.setScheduledExecutor(scheduledExecutorService);
|
|
514
|
device.setExecutor(executorService);
|
|
515
|
device.bindConnections();
|
|
516
|
closeConn = this.conn;
|
|
517
|
running.set(true);
|
|
518
|
}
|
|
519
|
}
|