I'm working on similar task
I finished the SCP
public IEnumerable<DicomCFindResponse> OnCFindRequest(DicomCFindRequest request)
{
List<DicomCFindResponse> responses = new List<DicomCFindResponse>();
//for modality worklist request
if (request.SOPClassUID == DicomUID.ModalityWorklistInformationModelFIND)
{
// Get List of Orders From Data AccessLayer
OrdersRepo ordersRepo = new OrdersRepo();
var orders = ordersRepo.GetFilteredOrders(request.Dataset);
List<DicomDataset> results = Helper.Helper.OrderToDicomDatasetConverter(orders);
foreach (DicomDataset result in results)
{
result.Add(DicomTag.QueryRetrieveLevel, DicomQueryRetrieveLevel.Patient);
DicomCFindResponse response = new DicomCFindResponse(request, DicomStatus.Pending);
response.Dataset = result;
responses.Add(response);
}
}
responses.Add(new DicomCFindResponse(request, DicomStatus.Success));
return responses;
}
hope this help you