←Select platform

Create<TData>(DicomScp,TData) Method

Summary

Sends an N-CREATE-REQ to the SCP.

Syntax

C#
VB
C++
public void Create<TData>(  
   Leadtools.Dicom.Scu.DicomScp Scp, 
   TData Data 
) 
Public Overloads Sub Create(Of TData)( _ 
   ByVal Scp As Leadtools.Dicom.Scu.DicomScp, _ 
   ByVal Data As TData _ 
) 
public: 
void Creategeneric<typename TData> 
(  
   Leadtools.Dicom.Scu.DicomScp^ Scp, 
   _TData^_ Data 
) 

Parameters

Scp
The peer connection to send the N-CREATE-REQ to.

Data
The data to send in the request.

Type Parameters

TData
The type of the data to create the dataset from.

Remarks

A DicomDataset will be created from the Data parameter. This dataset will then be sent in the N-CREATE-REQ. The Data class should be decorated with the correct attributes for creating the dataset.

Example

Create a Modality Performed Procedure Step and sets it to complete.

C#
VB
Imports Leadtools.Dicom.Common.DataTypes.Modality 
Imports Leadtools.Dicom 
Imports Leadtools.Dicom.Scu.Queries 
Imports Leadtools.Dicom.Scu 
Imports Leadtools.Dicom.Scu.Common 
Imports Leadtools.Dicom.Common.Extensions 
 
Private WorkLists As New List(Of ModalityWorklistResult)() 
 
<TestMethod()> _ 
Public Sub PerformMPPS() 
   DicomEngine.Startup() 
   DicomNet.Startup() 
 
   Dim query As New ModalityWorklistQuery() 
   Dim scp As New DicomScp() 
   Dim findMwl As New QueryRetrieveScu() 
 
   scp.AETitle = "MWL_SERVER" 
   scp.Port = 104 
   scp.Timeout = 60 
   scp.PeerAddress = IPAddress.Parse("192.168.0.209") 
   findMwl.AETitle = "LEAD_CLIENT" 
   findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf FoundWorklist) 
 
   ' 
   ' Create a Modality Perform Procedure Step 
   If WorkLists.Count > 0 Then 
      Dim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkLists(0)) 
      Dim pps As New PerformedProcedureStepScu() 
 
      pps.AETitle = "LEAD_CLIENT" 
      AddHandler pps.BeforeNCreate, AddressOf pps_BeforeNCreate 
      AddHandler pps.AfterNCreate, AddressOf pps_AfterNCreate 
      AddHandler pps.BeforeNSet, AddressOf pps_BeforeNSet 
      AddHandler pps.AfterNSet, AddressOf pps_AfterNSet 
 
      ' 
      ' Initialize required procedure step variables 
      ' 
      mpps.PerformedStationAeTitle = Environment.MachineName 
      mpps.PerformedProcedureStepStartDate = DateTime.Now 
      mpps.PerformedProcedureStepStartTime = DateTime.Now 
      mpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16) 
      mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232" 
      mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1" 
 
      Try 
         pps.Create(Of ModalityPerformedProcedureStep)(scp, mpps) 
 
         ' 
         ' Set the procedure step to done 
         ' 
         mpps.PerformedProcedureStepEndDate = DateTime.Now 
         mpps.PerformedProcedureStepEndTime = DateTime.Now 
         mpps.PerformedProcedureStepStatus = "COMPLETED" 
         pps.[Set](of modalityperformedprocedurestep)(scp, mpps) 
      Catch e As Exception 
         Console.WriteLine(e.Message) 
      End Try 
   End If 
 
   DicomEngine.Shutdown() 
   DicomNet.Startup() 
End Sub 
 
Private Sub FoundWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet) 
   WorkLists.Add(result) 
End Sub 
 
Private Sub pps_BeforeNCreate(ByVal sender As Object, ByVal e As CommonEventArgs) 
   Console.WriteLine("Before N-CREATE-REQ") 
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass) 
   Console.WriteLine(vbTab & "Instance: " & e.Instance) 
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString()) 
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString()) 
End Sub 
 
Private Sub pps_AfterNCreate(ByVal sender As Object, ByVal e As StatusCommonEventArgs) 
   Console.WriteLine("After N-CREATE-REQ") 
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass) 
   Console.WriteLine(vbTab & "Instance: " & e.Instance) 
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString()) 
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString()) 
   Console.WriteLine(vbTab & "Status: " & e.Status.ToString()) 
End Sub 
 
Private Sub pps_BeforeNSet(ByVal sender As Object, ByVal e As CommonEventArgs) 
   Console.WriteLine("Before N-SET-REQ") 
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass) 
   Console.WriteLine(vbTab & "Instance: " & e.Instance) 
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString()) 
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString()) 
End Sub 
 
Private Sub pps_AfterNSet(ByVal sender As Object, ByVal e As StatusCommonEventArgs) 
   Console.WriteLine("After N-CREATE-REQ") 
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass) 
   Console.WriteLine(vbTab & "Instance: " & e.Instance) 
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString()) 
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString()) 
   Console.WriteLine(vbTab & "Status: " & e.Status.ToString()) 
End Sub 
using Leadtools.Dicom.Common.DataTypes.Modality; 
using Leadtools.Dicom; 
using Leadtools.Dicom.Scu.Queries; 
using Leadtools.Dicom.Scu; 
using Leadtools.Dicom.Common.Extensions; 
using Leadtools.Dicom.Scu.Common; 
 
List<ModalityWorklistResult> WorkLists = new List<ModalityWorklistResult>(); 
 
public void PerformMPPS() 
{ 
    DicomEngine.Startup(); 
    DicomNet.Startup(); 
 
    ModalityWorklistQuery query = new ModalityWorklistQuery(); 
    DicomScp scp = new DicomScp(); 
    QueryRetrieveScu findMwl = new QueryRetrieveScu(); 
 
    scp.AETitle = "MWL_SERVER"; 
    scp.Port = 104; 
    scp.Timeout = 60; 
    scp.PeerAddress = IPAddress.Parse("192.168.0.209"); 
    findMwl.AETitle = "LEAD_CLIENT"; 
    findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, FoundWorklist); 
 
    // 
    // Create a Modality Perform Procedure Step 
    if (WorkLists.Count > 0) 
    { 
        ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkLists[0]); 
        PerformedProcedureStepScu pps = new PerformedProcedureStepScu(); 
 
        pps.AETitle = "LEAD_CLIENT"; 
        pps.BeforeNCreate += new EventHandler<CommonEventArgs>(pps_BeforeNCreate); 
        pps.AfterNCreate += new EventHandler<StatusCommonEventArgs>(pps_AfterNCreate); 
        pps.BeforeNSet += new EventHandler<CommonEventArgs>(pps_BeforeNSet); 
        pps.AfterNSet += new EventHandler<StatusCommonEventArgs>(pps_AfterNSet); 
 
        // 
        // Initialize required procedure step variables 
        // 
 
        mpps.PerformedStationAeTitle = Environment.MachineName; 
        mpps.PerformedProcedureStepStartDate = DateTime.Now; 
        mpps.PerformedProcedureStepStartTime = DateTime.Now; 
        mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16); 
        mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232"; 
        mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1"; 
 
        try 
        { 
            pps.Create<ModalityPerformedProcedureStep>(scp, mpps); 
 
            // 
            // Set the procedure step to done 
            // 
 
            mpps.PerformedProcedureStepEndDate = DateTime.Now; 
            mpps.PerformedProcedureStepEndTime = DateTime.Now; 
            mpps.PerformedProcedureStepStatus = "COMPLETED"; 
            pps.Set<ModalityPerformedProcedureStep>(scp, mpps);                     
        } 
        catch (Exception e) 
        { 
            Console.WriteLine(e.Message); 
        } 
    } 
 
    DicomEngine.Shutdown(); 
    DicomNet.Startup(); 
}         
 
private void FoundWorklist(ModalityWorklistResult result, DicomDataSet ds) 
{ 
    WorkLists.Add(result); 
} 
 
void pps_BeforeNCreate(object sender, CommonEventArgs e) 
{ 
    Console.WriteLine("Before N-CREATE-REQ"); 
    Console.WriteLine("\tAffected Class: " + e.AffectedClass); 
    Console.WriteLine("\tInstance: " + e.Instance); 
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString()); 
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString()); 
} 
 
void pps_AfterNCreate(object sender, StatusCommonEventArgs e) 
{ 
    Console.WriteLine("After N-CREATE-REQ"); 
    Console.WriteLine("\tAffected Class: " + e.AffectedClass); 
    Console.WriteLine("\tInstance: " + e.Instance); 
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString()); 
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString()); 
    Console.WriteLine("\tStatus: " + e.Status.ToString()); 
}         
 
void pps_BeforeNSet(object sender, CommonEventArgs e) 
{ 
    Console.WriteLine("Before N-SET-REQ"); 
    Console.WriteLine("\tAffected Class: " + e.AffectedClass); 
    Console.WriteLine("\tInstance: " + e.Instance); 
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString()); 
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString()); 
} 
 
void pps_AfterNSet(object sender, StatusCommonEventArgs e) 
{ 
    Console.WriteLine("After N-CREATE-REQ"); 
    Console.WriteLine("\tAffected Class: " + e.AffectedClass); 
    Console.WriteLine("\tInstance: " + e.Instance); 
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString()); 
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString()); 
    Console.WriteLine("\tStatus: " + e.Status.ToString()); 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Dicom.Scu Assembly
Click or drag to resize