コード例 #1
0
 // Private -------------------------------------------------------
 private void DoMultiRsp(ActiveAssociation assoc, IDimse request, IDicomCommand rspCmd, IMultiDimseRsp mdr)
 {
     try {
         assoc.AddCancelListener(rspCmd.MessageIDToBeingRespondedTo, mdr.CancelListener);
         do {
             DataSet rspData = mdr.Next(assoc, request, rspCmd);
             IDimse rsp = _associationFactory.NewDimse(request.PresentationContextId(), rspCmd, rspData);
             assoc.Association.Write(rsp);
             DoAfterRsp(assoc, rsp);
         } while (rspCmd.IsPending());
     }
     finally {
         mdr.Release();
     }
 }
コード例 #2
0
 protected override void DoCEcho(ActiveAssociation assoc, IDimse request, IDicomCommand rspCmd)
 {
     rspCmd.PutUS(Tags.Status, Success);
 }
コード例 #3
0
 protected virtual void DoCStore(ActiveAssociation activeAssociation, IDimse request, IDicomCommand responseCommand)
 {
     request.ReadDataset(); // read out DataSet, if any
     throw defEx;
 }
コード例 #4
0
 protected virtual DataSet DoNSet(ActiveAssociation assoc, IDimse request, IDicomCommand rspCmd)
 {
     request.ReadDataset(); // read out DataSet, if any
     throw defEx;
 }
コード例 #5
0
 protected virtual void DoAfterRsp(ActiveAssociation assoc, IDimse rsp)
 {
 }
コード例 #6
0
 protected virtual void DoCEcho(ActiveAssociation assoc, IDimse request, IDicomCommand rspCmd)
 {
     //      request.getDataset(); // read out DataSet
     throw defEx;
 }
コード例 #7
0
 public virtual void NSet(ActiveAssociation assoc, IDimse request)
 {
     IDicomCommand requestCmd = request.DicomCommand;
     IDicomCommand rspCmd = _dcmObjectFactory.NewCommand();
     rspCmd.InitNSetRSP(requestCmd.MessageID, requestCmd.RequestedSOPClassUniqueId, requestCmd.RequestedSOPInstanceUniqueId, Success);
     DataSet rspData = null;
     try {
         rspData = DoNSet(assoc, request, rspCmd);
     }
     catch (DcmServiceException e) {
         e.WriteTo(rspCmd);
     }
     IDimse rsp = _associationFactory.NewDimse(request.PresentationContextId(), rspCmd, rspData);
     assoc.Association.Write(rsp);
     DoAfterRsp(assoc, rsp);
 }
コード例 #8
0
 public virtual void CMove(ActiveAssociation assoc, IDimse request)
 {
     IDicomCommand requestCmd = request.DicomCommand;
     IDicomCommand rspCmd = _dcmObjectFactory.NewCommand();
     rspCmd.InitCMoveRSP(requestCmd.MessageID, requestCmd.AffectedSOPClassUniqueId, Pending);
     try {
         DoMultiRsp(assoc, request, rspCmd, DoCMove(assoc, request, rspCmd));
     }
     catch (DcmServiceException e) {
         e.WriteTo(rspCmd);
         IDimse rsp = _associationFactory.NewDimse(request.PresentationContextId(), rspCmd);
         assoc.Association.Write(rsp);
         DoAfterRsp(assoc, rsp);
     }
 }
コード例 #9
0
 public virtual void CEcho(ActiveAssociation assoc, IDimse request)
 {
     IDicomCommand requestCmd = request.DicomCommand;
     IDicomCommand rspCmd = _dcmObjectFactory.NewCommand();
     rspCmd.InitCEchoRSP(requestCmd.MessageID, requestCmd.AffectedSOPClassUniqueId, Success);
     try {
         DoCEcho(assoc, request, rspCmd);
     }
     catch (DcmServiceException e) {
         Logger.Error(e);
         e.WriteTo(rspCmd);
     }
     IDimse rsp = _associationFactory.NewDimse(request.PresentationContextId(), rspCmd);
     assoc.Association.Write(rsp);
     DoAfterRsp(assoc, rsp);
 }
コード例 #10
0
ファイル: StoreSCP.cs プロジェクト: KnownSubset/DicomSharp
 protected override void DoCStore(ActiveAssociation activeAssociation, IDimse request, IDicomCommand responseCommand)
 {
     IDicomCommand requestCommand = request.DicomCommand;
     Stream inputStream = request.DataAsStream;
     try {
         String instanceUniqueId = requestCommand.AffectedSOPInstanceUniqueId;
         String classUniqueId = requestCommand.AffectedSOPClassUniqueId;
         DcmDecodeParam decParam = DcmDecodeParam.ValueOf(request.TransferSyntaxUniqueId);
         DataSet dataSet = _dcmObjectFactory.NewDataset();
         DcmParser parser = parserFactory.NewDcmParser(inputStream);
         parser.DcmHandler = dataSet.DcmHandler;
         parser.ParseDataset(decParam, Tags.PixelData);
         dataSet.FileMetaInfo = _dcmObjectFactory.NewFileMetaInfo(classUniqueId, instanceUniqueId, request.TransferSyntaxUniqueId);
         FileInfo file = ToFile(dataSet);
         StoreToFile(parser, dataSet, file, (DcmEncodeParam) decParam);
         responseCommand.PutUS(Tags.Status, SUCCESS);
     }
     catch (Exception e) {
         Logger.Error(e.Message, e);
         throw new DcmServiceException(PROCESSING_FAILURE, e);
     }
     finally {
         inputStream.Close();
     }
 }
コード例 #11
0
ファイル: StoreSCP.cs プロジェクト: KnownSubset/DicomSharp
 public override void CFind(ActiveAssociation assoc, IDimse request)
 {
     base.CFind(assoc, request);
 }