public void AddRequestedProcedure(string userName, string accessionNumber, WorklistRequestedProcedure procedure) { ImagingServiceRequest imgRequest = new ImagingServiceRequest() { AccessionNumber = accessionNumber }; Check.ArgumentNotNullOrEmpty(accessionNumber, "accessionNumber"); Check.ArgumentNotNullOrEmpty(procedure.RequestedProcedureID, "RequestedProceureID"); Check.ArgumentNotNullOrEmpty(procedure.RequestedProcedureDescription, "RequestedProcedureDescription"); if (string.IsNullOrEmpty(procedure.StudyInstanceUID)) { procedure.StudyInstanceUID = DicomUtilities.GenerateDicomUniqueIdentifier(); } if (procedure.RequestedProcedureCodeSequence != null) { Check.ArgumentNotNullOrEmpty(procedure.RequestedProcedureCodeSequence.CodeValue, "RequestedProcedureCodeSequence.CodeValue"); Check.ArgumentNotNullOrEmpty(procedure.RequestedProcedureCodeSequence.CodingSchemeDesignator, "RequestedProcedureCodeSequence.CodingSchemeDesignator"); } if (procedure.ReferencedStudySequence != null) { foreach (ReferencedStudySequence rs in procedure.ReferencedStudySequence) { Check.ArgumentNotNullOrEmpty(rs.ReferencedSOPClassUID, "ReferencedStudySequence.ReferencedSOPClassUID"); Check.ArgumentNotNullOrEmpty(rs.ReferencedSOPInstanceUID, "ReferencedStudySequence.ReferencedSOPInstanceUID"); } } using (MWLDataset ds = _DataAccessAgent.Find(imgRequest)) { ImagingServiceRequest isr = new ImagingServiceRequest(); imgRequest.CopyTo(isr); ds.AddRequestedProcedure(isr, procedure); _DataAccessAgent.UpdateMWL(ds); } }
public void AddScheduledProcedureStep(string userName, string accessionNumber, string requestedProcedureID, WorklistScheduledProcedureStep procedureStep) { ImagingServiceRequest imgRequest = new ImagingServiceRequest() { AccessionNumber = accessionNumber }; WorklistRequestedProcedure reqProcedure = new WorklistRequestedProcedure() { RequestedProcedureID = requestedProcedureID }; Check.ArgumentNotNullOrEmpty(requestedProcedureID, "requestedProcedureID"); Check.ArgumentNotNullOrEmpty(accessionNumber, "accessionNumber"); Check.ArgumentNotNullOrEmpty(requestedProcedureID, "requestedProcedureID"); Check.ArgumentNotNull(procedureStep.ScheduledProcedureStepStartDate_Time, "ScheduledProcedureStepStartDate_Time"); Check.ArgumentNotNullOrEmpty(procedureStep.Modality, "Modality"); Check.ArgumentNotNullOrEmpty(procedureStep.ScheduledProcedureStepDescription, "ScheduledProcedureStepDescription"); if (procedureStep.ScheduledProtocolCodeSequence != null) { foreach (ScheduledProtocolCodeSequence cs in procedureStep.ScheduledProtocolCodeSequence) { Check.ArgumentNotNullOrEmpty(cs.CodeValue, "ScheduledProtocolCodeSequence.CodeValue"); Check.ArgumentNotNullOrEmpty(cs.CodingSchemeDesignator, "ScheduledProtocolCodeSequence.CodingSchemeDesignator"); } } using (MWLDataset ds = _DataAccessAgent.Find(imgRequest, reqProcedure)) { if (ds != null && ds.RequestedProcedure.Rows.Count > 0) { ds.AddScheduledProcedureStep(imgRequest, reqProcedure, procedureStep); _DataAccessAgent.UpdateMWL(ds); } } }
public static void AddScheduledProcedureStep(this MWLDataset ds, ImagingServiceRequest request, WorklistRequestedProcedure procedure, WorklistScheduledProcedureStep procedureStep) { MWLDataset.ScheduledProcedureStepRow sps = ds.ScheduledProcedureStep.NewScheduledProcedureStepRow(); procedureStep.CopyTo <MWLDataset.ScheduledProcedureStepRow>(sps); sps.AccessionNumber = request.AccessionNumber; sps.RequestedProcedureID = procedure.RequestedProcedureID; if (procedureStep.ScheduledProcedureStepStartDate_Time != null && procedureStep.ScheduledProcedureStepStartDate_Time.StartDate.HasValue) { sps.ScheduledProcedureStepStartDate_Time = procedureStep.ScheduledProcedureStepStartDate_Time.StartDate.Value; } ds.ScheduledProcedureStep.AddScheduledProcedureStepRow(sps); if (procedureStep.ScheduledStationAETitle != null && procedureStep.ScheduledStationAETitle.Count > 0) { foreach (string ae in procedureStep.ScheduledStationAETitle) { MWLDataset.ScheduledStationAETitlesRow row = ds.ScheduledStationAETitles.NewScheduledStationAETitlesRow(); row.ScheduledStationAETitle = ae; row.ScheduledProcedureStepID = procedureStep.ScheduledProcedureStepID; ds.ScheduledStationAETitles.Rows.Add(row); } } if (procedureStep.ScheduledStationName != null && procedureStep.ScheduledStationName.Count > 0) { foreach (string name in procedureStep.ScheduledStationName) { MWLDataset.ScheduledStationNamesRow row = ds.ScheduledStationNames.NewScheduledStationNamesRow(); row.ScheduledStationName = name; row.ScheduledProcedureStepID = procedureStep.ScheduledProcedureStepID; ds.ScheduledStationNames.Rows.Add(row); } } if (procedureStep.ScheduledProtocolCodeSequence != null) { foreach (ScheduledProtocolCodeSequence spcs in procedureStep.ScheduledProtocolCodeSequence) { MWLDataset.ScheduledProtocolCodeSequenceRow row = ds.ScheduledProtocolCodeSequence.NewScheduledProtocolCodeSequenceRow(); row.CodeMeaning = spcs.CodeMeaning; row.CodeValue = spcs.CodeValue; row.CodingSchemeDesignator = spcs.CodingSchemeDesignator; row.CodingSchemeVersion = spcs.CodingSchemeVersion; row.SetOrderNumberNull(); row.ScheduledProcedureStepID = procedureStep.ScheduledProcedureStepID; ds.ScheduledProtocolCodeSequence.AddScheduledProtocolCodeSequenceRow(row); } } }
public static void AddRequestedProcedure(this MWLDataset ds, ImagingServiceRequest request, WorklistRequestedProcedure procedure) { MWLDataset.RequestedProcedureRow rpr = ds.RequestedProcedure.NewRequestedProcedureRow(); ds.EnforceConstraints = false; procedure.CopyTo <MWLDataset.RequestedProcedureRow>(rpr); rpr.AccessionNumber = request.AccessionNumber; ds.RequestedProcedure.AddRequestedProcedureRow(rpr); if (procedure.RequestedProcedureCodeSequence != null) { MWLDataset.RequestedProcedureCodeSequenceRow row = ds.RequestedProcedureCodeSequence.NewRequestedProcedureCodeSequenceRow(); procedure.RequestedProcedureCodeSequence.CopyTo <MWLDataset.RequestedProcedureCodeSequenceRow>(row); row.AccessionNumber = request.AccessionNumber; row.RequestedProcedureID = procedure.RequestedProcedureID; ds.RequestedProcedureCodeSequence.AddRequestedProcedureCodeSequenceRow(row); } if (procedure.ReferencedStudySequence != null) { foreach (ReferencedStudySequence rs in procedure.ReferencedStudySequence) { MWLDataset.ReferencedStudySequenceRow row = ds.ReferencedStudySequence.NewReferencedStudySequenceRow(); row.SetOrderNumberNull(); row.ReferencedSOPClassUID = rs.ReferencedSOPClassUID; row.ReferencedSOPInstanceUID = rs.ReferencedSOPInstanceUID; row.RequestedProcedureID = procedure.RequestedProcedureID; row.AccessionNumber = request.AccessionNumber; ds.ReferencedStudySequence.AddReferencedStudySequenceRow(row); } } }