/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(DicomFile file, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CStoreRequest, file.FileMetaInfo.MediaStorageSOPClassUID, priority) { File = file; Dataset = file.Dataset; AffectedSOPClassUID = File.FileMetaInfo.MediaStorageSOPClassUID; SOPInstanceUID = File.FileMetaInfo.MediaStorageSOPInstanceUID; }
public DicomCMoveRequest(string destinationAe, string studyInstanceUid, string seriesInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CMoveRequest, DicomUID.StudyRootQueryRetrieveInformationModelMOVE, priority) { DestinationAE = destinationAe; Dataset = new DicomDataset(); Level = DicomQueryRetrieveLevel.Series; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); Dataset.Add(DicomTag.SeriesInstanceUID, seriesInstanceUid); }
protected DicomRequest(DicomCommandField type, DicomUID affectedClassUid, DicomPriority priority) : base() { Type = type; SOPClassUID = affectedClassUid; MessageID = GetNextMessageID(); Priority = priority; Dataset = null; }
public DicomCMoveRequest(string destinationAe, string studyInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CMoveRequest, DicomUID.StudyRootQueryRetrieveInformationModelMOVE, priority) { DestinationAE = destinationAe; Dataset = new DicomDataset(); Level = DicomQueryRetrieveLevel.Study; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(DicomFile file, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CStoreRequest, file.Dataset.Get <DicomUID>(DicomTag.SOPClassUID), priority) { File = file; Dataset = file.Dataset; SOPInstanceUID = File.Dataset.Get <DicomUID>(DicomTag.SOPInstanceUID); }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="level">Query/Retrieve level.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, GetAffectedSOPClassUID(level), priority) { // when creating requests, one may be forced to use invalid UIDs. So turn off validation Dataset = new DicomDataset().NotValidated(); Level = level; }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(DicomFile file, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CStoreRequest, file.Dataset.Get<DicomUID>(DicomTag.SOPClassUID), priority) { File = file; Dataset = file.Dataset; SOPInstanceUID = File.Dataset.Get<DicomUID>(DicomTag.SOPInstanceUID); }
public DicomNDeleteRequest( DicomUID requestedClassUid, DicomUID requestedInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NDeleteRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; }
protected DicomRequest(DicomCommandField type, DicomUID affectedClassUid, DicomPriority priority) : base() { Type = type; AffectedSOPClassUID = affectedClassUid; MessageID = GetNextMessageID(); Priority = priority; Dataset = null; }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(DicomFile file, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CStoreRequest, file.FileMetaInfo.MediaStorageSOPClassUID, priority) { File = file; Dataset = file.Dataset; AffectedSOPClassUID = File.FileMetaInfo.MediaStorageSOPClassUID; SOPInstanceUID = File.FileMetaInfo.MediaStorageSOPInstanceUID; }
public DicomNGetRequest( DicomUID requestedClassUid, DicomUID requestedInstanceUid, DicomTag[] attributes, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NGetRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; }
/// <summary> /// Initializes a new instance of the <see cref="DicomCGetRequest"/> class. /// </summary> /// <param name="studyInstanceUid"> /// The Study Instance UID confining the C-GET operation. /// </param> /// <param name="priority"> /// The priority of the C-GET operation. /// </param> public DicomCGetRequest( string studyInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CGetRequest, DicomUID.StudyRootQueryRetrieveInformationModelGET, priority) { Dataset = new DicomDataset(); Level = DicomQueryRetrieveLevel.Study; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); }
public DicomNCreateRequest( DicomUID affectedClassUid, DicomUID affectedInstanceUid, ushort eventTypeId, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NCreateRequest, affectedClassUid, priority) { SOPInstanceUID = affectedInstanceUid; }
/// <summary> /// Initializes a new instance of the <see cref="DicomCGetRequest"/> class. /// </summary> /// <param name="studyInstanceUid"> /// The Study Instance UID confining the C-GET operation. /// </param> /// <param name="priority"> /// The priority of the C-GET operation. /// </param> public DicomCGetRequest( string studyInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CGetRequest, DicomUID.StudyRootQueryRetrieveInformationModelGET, priority) { // when creating requests, one may be forced to use invalid UIDs. So turn off validation Dataset = new DicomDataset().NotValidated(); Level = DicomQueryRetrieveLevel.Study; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(DicomFile file, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CStoreRequest, file.Dataset.GetSingleValue <DicomUID>(DicomTag.SOPClassUID), priority) { File = file; Dataset = file.Dataset; // for potentially invalid UID values, we have to disable validation using var unvalidated = new UnvalidatedScope(Command); SOPInstanceUID = File.Dataset.GetSingleValue <DicomUID>(DicomTag.SOPInstanceUID); }
public DicomNActionRequest( DicomUID requestedClassUid, DicomUID requestedInstanceUid, ushort actionTypeId, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NActionRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; ActionTypeID = actionTypeId; }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="affectedSopClassUid">Affected SOP Class UID.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomUID affectedSopClassUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, affectedSopClassUid, priority) { if (affectedSopClassUid.Type != DicomUidType.SOPClass) { throw new DicomNetworkException("Overloaded constructor does not support Affected SOP Class UID: {0}", affectedSopClassUid.Name); } // when creating requests, one may be forced to use invalid UIDs. So turn off validation Dataset = new DicomDataset().NotValidated(); }
/// <summary> /// Initializes a new instance of the <see cref="DicomCGetRequest"/> class. /// </summary> /// <param name="studyInstanceUid"> /// The Study Instance UID confining the C-GET operation. /// </param> /// <param name="seriesInstanceUid"> /// The Series Instance UID confining the C-GET operation. /// </param> /// <param name="priority"> /// The priority of the C-GET operation. /// </param> public DicomCGetRequest( string studyInstanceUid, string seriesInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CGetRequest, DicomUID.StudyRootQueryRetrieveInformationModelGET, priority) { Dataset = new DicomDataset(); Level = DicomQueryRetrieveLevel.Series; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); Dataset.Add(DicomTag.SeriesInstanceUID, seriesInstanceUid); }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="affectedSopClassUid">Affected SOP Class UID.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomUID affectedSopClassUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, affectedSopClassUid, priority) { if (!affectedSopClassUid.Equals(DicomUID.ModalityWorklistInformationModelFIND) && !affectedSopClassUid.Equals(DicomUID.UnifiedProcedureStepPullSOPClass) && !affectedSopClassUid.Equals(DicomUID.UnifiedProcedureStepWatchSOPClass)) { throw new DicomNetworkException("Overloaded constructor does not support Affected SOP Class UID: {0}", affectedSopClassUid.Name); } Dataset = new DicomDataset(); }
/// <summary> /// Initializes an instance of the <see cref="DicomCMoveRequest"/> class for a specific image. /// </summary> /// <param name="destinationAe">Move destination Application Entity Title.</param> /// <param name="studyInstanceUid">Study instance UID.</param> /// <param name="seriesInstanceUid">Series instance UID.</param> /// <param name="sopInstanceUid">SOP instance UID.</param> /// <param name="priority">Request priority.</param> public DicomCMoveRequest( string destinationAe, string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CMoveRequest, DicomUID.StudyRootQueryRetrieveInformationModelMove, priority) { DestinationAE = destinationAe; // when creating requests, one may be forced to use invalid UIDs. So turn off validation Dataset = new DicomDataset().NotValidated(); Level = DicomQueryRetrieveLevel.Image; Dataset.Add(DicomTag.StudyInstanceUID, studyInstanceUid); Dataset.Add(DicomTag.SeriesInstanceUID, seriesInstanceUid); Dataset.Add(DicomTag.SOPInstanceUID, sopInstanceUid); }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(string fileName, DicomPriority priority = DicomPriority.Medium) : this(DicomFile.Open(fileName), priority) { }
private DicomCMoveRequest CreateCMoveByPatientId(string destination, string patientId, DicomPriority priority = DicomPriority.Low) { throw new NotImplementedException(); //var request = new DicomCMoveRequest(destination, _patientId); //// no more dicomtags have to be set //return request; }
/// <summary> /// Initializes DICOM C-Store request to be sent to SCP. /// </summary> /// <param name="file">DICOM file to be sent</param> /// <param name="priority">Priority of request</param> public DicomCStoreRequest(string fileName, DicomPriority priority = DicomPriority.Medium) : this(DicomFile.Open(fileName), priority) { }
public DicomNActionRequest(DicomUID requestedClassUid, DicomUID requestedInstanceUid, ushort actionTypeId, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NActionRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; ActionTypeID = actionTypeId; }
public static DicomCMoveRequest CreateCMoveBySeriesUID(string destAET, string studyInstanceUID, string seriesInstanceUID, DicomPriority priority = DicomPriority.Medium) { var request = new DicomCMoveRequest(destAET, studyInstanceUID, seriesInstanceUID, priority); // no more dicomtags have to be set return(request); }
public DicomNCreateRequest(DicomUID affectedClassUid, DicomUID affectedInstanceUid, ushort eventTypeId, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NCreateRequest, affectedClassUid, priority) { SOPInstanceUID = affectedInstanceUid; }
public DicomCFindRequest(DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, DicomUID.StudyRootQueryRetrieveInformationModelFIND, priority) { Dataset = new DicomDataset(); Level = level; }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="affectedSopClassUid">Affected SOP Class UID.</param> /// <param name="level">Query/Retrieve level.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomUID affectedSopClassUid, DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : this(affectedSopClassUid, priority) { Level = level; }
/// <summary> /// Method to send a DICOM C-STORE-RQ message. /// </summary> /// <param name="presentationID"></param> /// <param name="messageID"></param> /// <param name="priority"></param> /// <param name="moveAE"></param> /// <param name="moveMessageID"></param> /// <param name="message"></param> public void SendCStoreRequest(byte presentationID, ushort messageID, DicomPriority priority, string moveAE, ushort moveMessageID, DicomMessage message) { SendCStoreRequest(presentationID, messageID, priority, moveAE, moveMessageID, message, null); }
/// <summary> /// Method to send a DICOM C-STORE-RQ message. /// </summary> /// <param name="presentationID"></param> /// <param name="messageID"></param> /// <param name="priority"></param> /// <param name="message"></param> public void SendCStoreRequest(byte presentationID, ushort messageID, DicomPriority priority, DicomMessage message) { SendCStoreRequest(presentationID, messageID, priority, null, 0, message); }
public static DicomCFindRequest CreateStudyRequestByDateRangeForModality(DateTime dateFrom, DateTime dateTo, string modality, DicomPriority priority = DicomPriority.Low) { var request = new DicomCFindRequest(DicomQueryRetrieveLevel.Study, priority); // always add the encoding - with agnostic encoding request.Dataset.AddOrUpdate(new DicomTag(0x8, 0x5), "ISO_IR 100"); // add the dicom tags with empty values that should be included in the result of the QR Server request.Dataset.AddOrUpdate(DicomTag.PatientID, ""); request.Dataset.AddOrUpdate(DicomTag.StudyInstanceUID, ""); request.Dataset.AddOrUpdate(DicomTag.StudyDescription, ""); string modalityToQuery = modality.Equals("all", StringComparison.OrdinalIgnoreCase) ? "" : modality; // add the dicom tags that contain the filter criteria request.Dataset.AddOrUpdate(DicomTag.ModalitiesInStudy, modalityToQuery); var studyDateRange = new DicomDateRange(dateFrom, dateTo); request.Dataset.AddOrUpdate(DicomTag.StudyDate, studyDateRange); request.Dataset.AddOrUpdate(DicomTag.StudyTime, studyDateRange); return(request); }
public DicomCEchoRequest(DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CEchoRequest, DicomUID.VerificationSOPClass, priority) { }
/// <summary> /// Method to send a DICOM C-STORE-RQ message. /// </summary> /// <param name="presentationID"></param> /// <param name="messageID"></param> /// <param name="priority"></param> /// <param name="moveAE"></param> /// <param name="moveMessageID"></param> /// <param name="dataSetStream"></param> public void SendCStoreRequest(byte presentationID, ushort messageID, DicomPriority priority, string moveAE, ushort moveMessageID, string sopInstanceUid, string sopClassUid, Stream dataSetStream) { DicomUid affectedClass = _assoc.GetAbstractSyntax(presentationID); DicomMessage message = new DicomMessage(); DicomAttributeCollection command = message.MetaInfo; message.MessageId = messageID; message.CommandField = DicomCommandField.CStoreRequest; message.AffectedSopClassUid = sopClassUid; message.DataSetType = 0x0202; message.Priority = priority; message.AffectedSopInstanceUid = sopInstanceUid; if (!string.IsNullOrEmpty(moveAE)) { message.MoveOriginatorApplicationEntityTitle = moveAE; message.MoveOriginatorMessageId = moveMessageID; } SendDimseDataSetStream(presentationID, command, dataSetStream); }
protected DicomCFindRequest CreateSeriesRequestByStudyUid(string studyInstanceUid, DicomPriority priority = DicomPriority.Low) { //create your own request that contains exactly those DicomTags that // you realy need pro process your data and not to cause unneccessary traffic and IO load: var request = new DicomCFindRequest(DicomQueryRetrieveLevel.Series, priority); request.Dataset.AddOrUpdate(new DicomTag(0x8, 0x5), "ISO_IR 100"); // add the dicom tags with empty values that should be included in the result request.Dataset.AddOrUpdate(DicomTag.SeriesInstanceUID, ""); request.Dataset.AddOrUpdate(DicomTag.SeriesDescription, ""); request.Dataset.AddOrUpdate(DicomTag.Modality, ""); request.Dataset.AddOrUpdate(DicomTag.NumberOfSeriesRelatedInstances, ""); // add the dicom tags that contain the filter criteria request.Dataset.AddOrUpdate(DicomTag.StudyInstanceUID, studyInstanceUid); return(request); }
public DicomCEchoRequest(DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CEchoRequest, DicomUID.VerificationSOPClass, priority) { }
public static DicomCGetRequest CreateCGetBySOPInstanceUID(string studyInstanceUID, string seriesInstanceUID, string sopInstanceUID, DicomPriority priority = DicomPriority.Medium) { var request = new DicomCGetRequest(studyInstanceUID, seriesInstanceUID, sopInstanceUID, priority); // no more dicomtags have to be set return(request); }
public DicomNDeleteRequest(DicomUID requestedClassUid, DicomUID requestedInstanceUid, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NDeleteRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; }
/// <summary> /// Initializes an instance of the <see cref="DicomPriorityRequest"/> base class. /// </summary> /// <param name="type">Type of command (command field).</param> /// <param name="requestedClassUid">Requested/affected SOP Class UID</param> /// <param name="priority">Request priority.</param> protected DicomPriorityRequest(DicomCommandField type, DicomUID requestedClassUid, DicomPriority priority) : base(type, requestedClassUid) { Priority = priority; }
protected DicomPriorityRequest(DicomCommandField type, DicomUID affectedClassUid, DicomPriority priority) : base(type, affectedClassUid) { Priority = priority; }
public DicomNGetRequest(DicomUID requestedClassUid, DicomUID requestedInstanceUid, DicomTag[] attributes, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.NGetRequest, requestedClassUid, priority) { SOPInstanceUID = requestedInstanceUid; }
private DicomCMoveRequest CreateCMoveBySopInstanceUid(string destination, string studyUid, string seriesUid, string sopInstanceUid, DicomPriority priority = DicomPriority.Low) { var request = new DicomCMoveRequest(destination, studyUid, seriesUid, sopInstanceUid, priority); Listener.OnNotify(this, new NotifyEventArgs(ProgressEventType.Information, "DicomRetriever.CreateCMoveBySopInstanceUid created request for: " + sopInstanceUid)); // no more dicomtags have to be set return(request); }
public static DicomCFindRequest CreateSopRequestBySeriesUid(string seriesInstanceUid, DicomPriority priority = DicomPriority.Low) { //create your own request that contains exactly those DicomTags that // you realy need pro process your data and not to cause unneccessary traffic and IO load: var request = new DicomCFindRequest(DicomQueryRetrieveLevel.Image, priority); request.Dataset.AddOrUpdate(new DicomTag(0x8, 0x5), "ISO_IR 100"); // add the dicom tags with empty values that should be included in the result request.Dataset.AddOrUpdate(DicomTag.PatientID, ""); request.Dataset.AddOrUpdate(DicomTag.SOPInstanceUID, ""); request.Dataset.AddOrUpdate(DicomTag.Modality, ""); // add the dicom tags that contain the filter criteria request.Dataset.AddOrUpdate(DicomTag.SeriesInstanceUID, seriesInstanceUid); return(request); }
public DicomCFindRequest(DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, DicomUID.StudyRootQueryRetrieveInformationModelFIND, priority) { Dataset = new DicomDataset(); Level = level; }
/// <summary> /// Method to send a DICOM C-STORE-RQ message. /// </summary> /// <param name="presentationID"></param> /// <param name="messageID"></param> /// <param name="priority"></param> /// <param name="message"></param> /// <param name="overrideParameters"></param> public void SendCStoreRequest(byte presentationID, ushort messageID, DicomPriority priority, DicomMessage message, DicomCodecParameters overrideParameters) { SendCStoreRequest(presentationID, messageID, priority, null, 0, message, overrideParameters); }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="level">Query/Retrieve level.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, GetAffectedSOPClassUID(level), priority) { Dataset = new DicomDataset(); Level = level; }
/// <summary> /// Method to send a DICOM C-STORE-RQ message. /// </summary> /// <param name="presentationID"></param> /// <param name="messageID"></param> /// <param name="priority"></param> /// <param name="moveAE"></param> /// <param name="moveMessageID"></param> /// <param name="message"></param> /// <param name="overrideParameters"></param> public void SendCStoreRequest(byte presentationID, ushort messageID, DicomPriority priority, string moveAE, ushort moveMessageID, DicomMessage message, DicomCodecParameters overrideParameters) { DicomUid affectedClass = _assoc.GetAbstractSyntax(presentationID); if (!affectedClass.UID.Equals(message.SopClass.Uid)) throw new DicomException( String.Format( "SOP Class Uid in the message {0} does not match SOP Class UID for presentation context {1}", message.SopClass.Uid, affectedClass.UID)); DicomAttributeCollection command = message.MetaInfo; message.MessageId = messageID; message.CommandField = DicomCommandField.CStoreRequest; message.AffectedSopClassUid = message.SopClass.Uid; message.DataSetType = 0x0202; message.Priority = priority; String sopInstanceUid; bool ok = message.DataSet[DicomTags.SopInstanceUid].TryGetString(0, out sopInstanceUid); if (!ok) throw new DicomException("SOP Instance UID unexpectedly not set in CStore Message being sent."); message.AffectedSopInstanceUid = sopInstanceUid; if (!string.IsNullOrEmpty(moveAE)) { message.MoveOriginatorApplicationEntityTitle = moveAE; message.MoveOriginatorMessageId = moveMessageID; } // Handle compress/decompress if necessary TransferSyntax contextSyntax = _assoc.GetAcceptedTransferSyntax(presentationID); if ((contextSyntax != message.TransferSyntax) && (contextSyntax.Encapsulated || message.TransferSyntax.Encapsulated)) { if (overrideParameters != null) message.ChangeTransferSyntax(contextSyntax, null, overrideParameters); else message.ChangeTransferSyntax(contextSyntax); } SendDimse(presentationID, command, message.DataSet); }
/// <summary> /// Initializes an instance of the <see cref="DicomCFindRequest"/> class. /// </summary> /// <param name="affectedSopClassUid">Affected SOP Class UID.</param> /// <param name="level">Query/Retrieve level.</param> /// <param name="priority">Command priority.</param> public DicomCFindRequest(DicomUID affectedSopClassUid, DicomQueryRetrieveLevel level, DicomPriority priority = DicomPriority.Medium) : base(DicomCommandField.CFindRequest, affectedSopClassUid, priority) { // should we check combination between affectedSopClassUid and level? // should we allow PatientRoot and StudyRoot only ? if (affectedSopClassUid != DicomUID.ModalityWorklistInformationModelFIND && affectedSopClassUid != DicomUID.PatientRootQueryRetrieveInformationModelFIND && affectedSopClassUid != DicomUID.StudyRootQueryRetrieveInformationModelFIND && affectedSopClassUid != DicomUID.UnifiedProcedureStepPullSOPClass && affectedSopClassUid != DicomUID.UnifiedProcedureStepWatchSOPClass) { throw new DicomNetworkException("Overloaded constructor does not support Affected SOP Class UID: {0}", affectedSopClassUid.Name); } Dataset = new DicomDataset(); Level = level; }