// Example demonstrates an N-Action for MPPS
using (var cn = new DicomAssociation())
{
DicomDataSetCollection emptydss = new DicomDataSetCollection();
var dataset = new DicomDataSet();
dataset.Add(Keyword.PerformedProtocolCodeSequence, emptydss);
dataset.Add(Keyword.ProcedureCodeSequence, emptydss);
dataset.Add(Keyword.PerformedSeriesSequence, emptydss);
dataset.Add(Keyword.PerformedProcedureStepStatus, "IN PROGRESS");
dataset.Add(Keyword.PerformedProcedureStepStartDate, "20240225");
dataset.Add(Keyword.PerformedProcedureStepStartTime, "140000");
cn.RequestedContexts.Add(SOPClasses.ModalityPerformedProcedureStep);
cn.Open("localhost", 104, "callingAET", "calledAET");
string sopClassUID = SOPClasses.ModalityPerformedProcedureStep;
string instanceUID = "1.2.840.113619.2.55.3.604688745.703"; // replace with a real MPPS instanceUID
int actionID = 1;
cn.NAction(sopClassUID, instanceUID, actionID, dataset);
// List containing result status codes returned
var moveStatus = cn.Status;
// Result of last status code - 0 means success
var status = cn.LastStatus;
cn.Close();