001package org.dcm4che3.net;
002
003import org.dcm4che3.data.UID;
004
005import java.util.EnumSet;
006
007/**
008 * @author Roman K
009 */
010public class DefaultTransferCapabilities {
011    public static final String[] IMAGE_TSUIDS = {
012        UID.ImplicitVRLittleEndian,
013        UID.ExplicitVRLittleEndian,
014        UID.DeflatedExplicitVRLittleEndian,
015        UID.ExplicitVRBigEndianRetired,
016        UID.JPEGBaseline1,
017        UID.JPEGExtended24,
018        UID.JPEGLossless,
019        UID.JPEGLosslessNonHierarchical14,
020        UID.JPEGLSLossless,
021        UID.JPEGLSLossyNearLossless,
022        UID.JPEG2000LosslessOnly,
023        UID.JPEG2000,
024        UID.RLELossless
025    };
026    public static final String[] VIDEO_TSUIDS = {
027        UID.JPEGBaseline1,
028        UID.MPEG2,
029        UID.MPEG2MainProfileHighLevel,
030        UID.MPEG4AVCH264BDCompatibleHighProfileLevel41,
031        UID.MPEG4AVCH264HighProfileLevel41
032    };
033    public static final String[] OTHER_TSUIDS = {
034        UID.ImplicitVRLittleEndian,
035        UID.ExplicitVRLittleEndian,
036        UID.DeflatedExplicitVRLittleEndian,
037        UID.ExplicitVRBigEndianRetired,
038    };
039    public static final String[] IMAGE_CUIDS = {
040        UID.ComputedRadiographyImageStorage,
041        UID.DigitalXRayImageStorageForPresentation,
042        UID.DigitalXRayImageStorageForProcessing,
043        UID.DigitalMammographyXRayImageStorageForPresentation,
044        UID.DigitalMammographyXRayImageStorageForProcessing,
045        UID.DigitalIntraOralXRayImageStorageForPresentation,
046        UID.DigitalIntraOralXRayImageStorageForProcessing,
047        UID.CTImageStorage,
048        UID.EnhancedCTImageStorage,
049        UID.UltrasoundMultiFrameImageStorageRetired,
050        UID.UltrasoundMultiFrameImageStorage,
051        UID.MRImageStorage,
052        UID.EnhancedMRImageStorage,
053        UID.EnhancedMRColorImageStorage,
054        UID.NuclearMedicineImageStorageRetired,
055        UID.UltrasoundImageStorageRetired,
056        UID.UltrasoundImageStorage,
057        UID.EnhancedUSVolumeStorage,
058        UID.SecondaryCaptureImageStorage,
059        UID.MultiFrameGrayscaleByteSecondaryCaptureImageStorage,
060        UID.MultiFrameGrayscaleWordSecondaryCaptureImageStorage,
061        UID.MultiFrameTrueColorSecondaryCaptureImageStorage,
062        UID.XRayAngiographicImageStorage,
063        UID.EnhancedXAImageStorage,
064        UID.XRayRadiofluoroscopicImageStorage,
065        UID.EnhancedXRFImageStorage,
066        UID.XRayAngiographicBiPlaneImageStorageRetired,
067        UID.XRay3DAngiographicImageStorage,
068        UID.XRay3DCraniofacialImageStorage,
069        UID.BreastTomosynthesisImageStorage,
070        UID.IntravascularOpticalCoherenceTomographyImageStorageForPresentation,
071        UID.IntravascularOpticalCoherenceTomographyImageStorageForProcessing,
072        UID.NuclearMedicineImageStorage,
073        UID.VLEndoscopicImageStorage,
074        UID.VLMicroscopicImageStorage,
075        UID.VLSlideCoordinatesMicroscopicImageStorage,
076        UID.VLPhotographicImageStorage,
077        UID.OphthalmicPhotography8BitImageStorage,
078        UID.OphthalmicPhotography16BitImageStorage,
079        UID.OphthalmicTomographyImageStorage,
080        UID.VLWholeSlideMicroscopyImageStorage,
081        UID.PositronEmissionTomographyImageStorage,
082        UID.EnhancedPETImageStorage,
083        UID.RTImageStorage,
084    };
085    public static final String[] VIDEO_CUIDS = {
086        UID.VideoEndoscopicImageStorage,
087        UID.VideoMicroscopicImageStorage,
088        UID.VideoPhotographicImageStorage,
089    };
090    public static final String[] OTHER_CUIDS = {
091        UID.MRSpectroscopyStorage,
092        UID.MultiFrameSingleBitSecondaryCaptureImageStorage,
093        UID.StandaloneOverlayStorageRetired,
094        UID.StandaloneCurveStorageRetired,
095        UID.TwelveLeadECGWaveformStorage,
096        UID.GeneralECGWaveformStorage,
097        UID.AmbulatoryECGWaveformStorage,
098        UID.HemodynamicWaveformStorage,
099        UID.CardiacElectrophysiologyWaveformStorage,
100        UID.BasicVoiceAudioWaveformStorage,
101        UID.GeneralAudioWaveformStorage,
102        UID.ArterialPulseWaveformStorage,
103        UID.RespiratoryWaveformStorage,
104        UID.StandaloneModalityLUTStorageRetired,
105        UID.StandaloneVOILUTStorageRetired,
106        UID.GrayscaleSoftcopyPresentationStateStorage,
107        UID.ColorSoftcopyPresentationStateStorage,
108        UID.PseudoColorSoftcopyPresentationStateStorage,
109        UID.BlendingSoftcopyPresentationStateStorage,
110        UID.XAXRFGrayscaleSoftcopyPresentationStateStorage,
111        UID.RawDataStorage,
112        UID.SpatialRegistrationStorage,
113        UID.SpatialFiducialsStorage,
114        UID.DeformableSpatialRegistrationStorage,
115        UID.SegmentationStorage,
116        UID.SurfaceSegmentationStorage,
117        UID.RealWorldValueMappingStorage,
118        UID.StereometricRelationshipStorage,
119        UID.LensometryMeasurementsStorage,
120        UID.AutorefractionMeasurementsStorage,
121        UID.KeratometryMeasurementsStorage,
122        UID.SubjectiveRefractionMeasurementsStorage,
123        UID.VisualAcuityMeasurementsStorage,
124        UID.SpectaclePrescriptionReportStorage,
125        UID.OphthalmicAxialMeasurementsStorage,
126        UID.IntraocularLensCalculationsStorage,
127        UID.MacularGridThicknessAndVolumeReportStorage,
128        UID.OphthalmicVisualFieldStaticPerimetryMeasurementsStorage,
129        UID.BasicStructuredDisplayStorage,
130        UID.BasicTextSRStorage,
131        UID.EnhancedSRStorage,
132        UID.ComprehensiveSRStorage,
133        UID.ProcedureLogStorage,
134        UID.MammographyCADSRStorage,
135        UID.KeyObjectSelectionDocumentStorage,
136        UID.ChestCADSRStorage,
137        UID.XRayRadiationDoseSRStorage,
138        UID.ColonCADSRStorage,
139        UID.ImplantationPlanSRStorage,
140        UID.EncapsulatedPDFStorage,
141        UID.EncapsulatedCDAStorage,
142        UID.StandalonePETCurveStorageRetired,
143        UID.RTDoseStorage,
144        UID.RTStructureSetStorage,
145        UID.RTBeamsTreatmentRecordStorage,
146        UID.RTPlanStorage,
147        UID.RTBrachyTreatmentRecordStorage,
148        UID.RTTreatmentSummaryRecordStorage,
149        UID.RTIonPlanStorage,
150        UID.RTIonBeamsTreatmentRecordStorage,
151    };
152
153    public static final String[] QUERY_CUIDS = {
154            UID.PatientRootQueryRetrieveInformationModelFIND,
155            UID.StudyRootQueryRetrieveInformationModelFIND,
156            UID.PatientStudyOnlyQueryRetrieveInformationModelFINDRetired
157            //UID.ModalityWorklistInformationModelFIND - handled separately
158    };
159
160    public static final String[] RETRIEVE_CUIDS = {
161        UID.PatientRootQueryRetrieveInformationModelGET,
162        UID.PatientRootQueryRetrieveInformationModelMOVE,
163        UID.StudyRootQueryRetrieveInformationModelGET,
164        UID.StudyRootQueryRetrieveInformationModelMOVE,
165        UID.PatientStudyOnlyQueryRetrieveInformationModelGETRetired,
166        UID.PatientStudyOnlyQueryRetrieveInformationModelMOVERetired
167    };
168
169    public static void addTCs(ApplicationEntity ae, EnumSet<QueryOption> queryOpts,
170                              TransferCapability.Role role, String[] cuids, String... tss) {
171        for (String cuid : cuids)
172            addTC(ae, queryOpts, role, cuid, tss);
173    }
174
175    public static void addTC(ApplicationEntity ae, EnumSet<QueryOption> queryOpts,
176                             TransferCapability.Role role, String cuid, String... tss) {
177        String name = UID.nameOf(cuid).replace('/', ' ');
178        TransferCapability tc = new TransferCapability(name + ' ' + role, cuid, role, tss);
179        tc.setQueryOptions(queryOpts);
180        ae.addTransferCapability(tc);
181    }
182
183}