partial void UpdateWorkItemUid(WorkItemUid instance)
        {
            const string commandText = "UPDATE [WorkItemUid]"
                                       + " SET [Complete]=@p1, [Failed]=@p2, [FailureCount]=@p3, [File]=@p4, [SeriesInstanceUid]=@p5, [SopInstanceUid]=@p6, [WorkItemOid]=@p7"
                                       + " WHERE [Oid]=@oid AND [Version]=@ver";

            using (var cmd = Connection.CreateCommand(commandText, Transaction))
            {
                cmd.SetParameter("p1", instance.Complete);
                cmd.SetParameter("p2", instance.Failed);
                cmd.SetParameter("p3", instance.FailureCount);
                cmd.SetParameter("p4", instance.File);
                cmd.SetParameter("p5", instance.SeriesInstanceUid);
                cmd.SetParameter("p6", instance.SopInstanceUid);
                cmd.SetParameter("p7", instance.WorkItemOid);
                cmd.SetParameter("oid", instance.Oid);
                cmd.SetParameter("ver", instance.Version);

                // if update doesn't affect any rows, then a change conflict has occurred and we must inform LINQ-to-SQL about it
                if (cmd.ExecuteNonQuery() == 0)
                {
                    throw new ChangeConflictException();
                }

                // this is an UPDATE, so we must retrieve and update the row version
                cmd.ReadUpdatedRowVersion(instance, "WorkItemUid");
            }
        }
예제 #2
0
        public InsertWorkItemCommand(WorkItemRequest request, WorkItemProgress progress, string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid) : base("Insert a WorkItem")
        {
            _request = request;
            _progress = progress;
            _studyInstanceUid = studyInstanceUid;
            ExpirationDelaySeconds = 60;

            WorkItemUid = new WorkItemUid
            {
                Complete = false,
                FailureCount = 0,
                SeriesInstanceUid = seriesInstanceUid,
                SopInstanceUid = sopInstanceUid,
                Failed = false
            };
        }
예제 #3
0
        public InsertWorkItemCommand(WorkItem item, string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid)
            : base("Insert a WorkItem")
        {
            _request = item.Request;
            _studyInstanceUid = studyInstanceUid;
            ExpirationDelaySeconds = 60;

            WorkItem = item;

            WorkItemUid = new WorkItemUid
            {
                Complete = false,
                FailureCount = 0,
                WorkItemOid = WorkItem.Oid,
                SeriesInstanceUid = seriesInstanceUid,
                SopInstanceUid = sopInstanceUid,
                Failed = false
            };

        }
        partial void InsertWorkItemUid(WorkItemUid instance)
        {
            const string commandText = "INSERT INTO [WorkItemUid]"
                                       + " ([Complete], [Failed], [FailureCount], [File], [SeriesInstanceUid], [SopInstanceUid], [WorkItemOid])"
                                       + " VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7)";

            using (var cmd = Connection.CreateCommand(commandText, Transaction))
            {
                cmd.SetParameter("p1", instance.Complete);
                cmd.SetParameter("p2", instance.Failed);
                cmd.SetParameter("p3", instance.FailureCount);
                cmd.SetParameter("p4", instance.File);
                cmd.SetParameter("p5", instance.SeriesInstanceUid);
                cmd.SetParameter("p6", instance.SopInstanceUid);
                cmd.SetParameter("p7", instance.WorkItemOid);

                cmd.ExecuteNonQuery();

                // this is an INSERT, so we must retrieve and update the row id and version
                cmd.ReadInsertedRowIdentity(instance, "WorkItemUid");
            }
        }
예제 #5
0
 public ProcessorFile(DicomFile file, WorkItemUid uid)
 {
     File = file;
     ItemUid = uid;
 }
예제 #6
0
 /// <summary>
 /// Process a specific DICOM file which may be related to a <see cref="WorkItem"/> request.
 /// </summary>
 /// <remarks>
 /// <para>
 /// On success and if <see cref="uid"/> is set, the <see cref="WorkItemUid"/> field is marked as complete.  If processing fails, 
 /// the FailureCount field is incremented for the <see cref="WorkItemUid"/>.
 /// </para>
 /// </remarks>
 /// <param name="studyXml">The <see cref="StudyXml"/> file to update with information from the file.</param>
 /// <param name="file">The file to process.</param>
 /// <param name="uid">An optional WorkQueueUid associated with the entry, that will be deleted upon success or failed on failure.</param>
 /// <exception cref="ApplicationException"/>
 /// <exception cref="DicomDataException"/>
 public void ProcessFile(DicomFile file, StudyXml studyXml, WorkItemUid uid)
 {
     Platform.CheckForNullReference(file, "file");
     Platform.CheckForNullReference(studyXml, "studyXml");
     var processFile = new ProcessorFile(file, uid);
     InsertBatch(new List<ProcessorFile> {processFile}, studyXml);
 }
 /// <summary>
 /// Delete WorkItemUid entity.
 /// </summary>
 /// <param name="entity"></param>
 public void Delete(WorkItemUid entity)
 {
     this.Context.WorkItemUids.DeleteOnSubmit(entity);
 }
 /// <summary>
 /// Insert a WorkItemUid
 /// </summary>
 /// <param name="entity"></param>
 public void AddWorkItemUid(WorkItemUid entity)
 {
     Context.WorkItemUids.InsertOnSubmit(entity);
 }
예제 #9
0
		/// <summary>
		/// Insert a WorkItemUid
		/// </summary>
		/// <param name="entity"></param>
		public void AddWorkItemUid(WorkItemUid entity)
		{
			Context.WorkItemUids.InsertOnSubmit(entity);
		}
 public CompleteWorkItemUidCommand(WorkItemUid uid) : base("Complete WorkItemUid")
 {
     _uid = uid;
 }
		private void detach_WorkItemUids(WorkItemUid entity)
		{
			this.SendPropertyChanging();
			entity.WorkItem = null;
		}
		private void attach_WorkItemUids(WorkItemUid entity)
		{
			this.SendPropertyChanging();
			entity.WorkItem = this;
		}
예제 #13
0
		partial void UpdateWorkItemUid(WorkItemUid instance)
		{
			const string commandText = "UPDATE [WorkItemUid]"
			                           + " SET [Complete]=@p1, [Failed]=@p2, [FailureCount]=@p3, [File]=@p4, [SeriesInstanceUid]=@p5, [SopInstanceUid]=@p6, [WorkItemOid]=@p7"
			                           + " WHERE [Oid]=@oid AND [Version]=@ver";
			using (var cmd = Connection.CreateCommand(commandText, Transaction))
			{
				cmd.SetParameter("p1", instance.Complete);
				cmd.SetParameter("p2", instance.Failed);
				cmd.SetParameter("p3", instance.FailureCount);
				cmd.SetParameter("p4", instance.File);
				cmd.SetParameter("p5", instance.SeriesInstanceUid);
				cmd.SetParameter("p6", instance.SopInstanceUid);
				cmd.SetParameter("p7", instance.WorkItemOid);
				cmd.SetParameter("oid", instance.Oid);
				cmd.SetParameter("ver", instance.Version);

				// if update doesn't affect any rows, then a change conflict has occurred and we must inform LINQ-to-SQL about it
				if (cmd.ExecuteNonQuery() == 0)
					throw new ChangeConflictException();

				// this is an UPDATE, so we must retrieve and update the row version
				cmd.ReadUpdatedRowVersion(instance, "WorkItemUid");
			}
		}
예제 #14
0
		partial void InsertWorkItemUid(WorkItemUid instance)
		{
			const string commandText = "INSERT INTO [WorkItemUid]"
			                           + " ([Complete], [Failed], [FailureCount], [File], [SeriesInstanceUid], [SopInstanceUid], [WorkItemOid])"
			                           + " VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7)";
			using (var cmd = Connection.CreateCommand(commandText, Transaction))
			{
				cmd.SetParameter("p1", instance.Complete);
				cmd.SetParameter("p2", instance.Failed);
				cmd.SetParameter("p3", instance.FailureCount);
				cmd.SetParameter("p4", instance.File);
				cmd.SetParameter("p5", instance.SeriesInstanceUid);
				cmd.SetParameter("p6", instance.SopInstanceUid);
				cmd.SetParameter("p7", instance.WorkItemOid);

				cmd.ExecuteNonQuery();

				// this is an INSERT, so we must retrieve and update the row id and version
				cmd.ReadInsertedRowIdentity(instance, "WorkItemUid");
			}
		}
예제 #15
0
 public ProcessorFile(string path, WorkItemUid uid)
 {
     FilePath = path;
     ItemUid = uid;
 }
예제 #16
0
 public void Dispose()
 {
     File = null;
     ItemUid = null;
 }
 partial void InsertWorkItemUid(WorkItemUid instance);
 protected override void OnExecute(CommandProcessor theProcessor)
 {
     var broker = DataAccessContext.GetWorkItemUidBroker();
     _uid = broker.GetWorkItemUid(_uid.Oid);
     _uid.Complete = true;
 }
 partial void UpdateWorkItemUid(WorkItemUid instance);
예제 #20
0
		/// <summary>
		/// Delete WorkItemUid entity.
		/// </summary>
		/// <param name="entity"></param>
		public void Delete(WorkItemUid entity)
		{
			Context.WorkItemUids.DeleteOnSubmit(entity);
		}
 partial void DeleteWorkItemUid(WorkItemUid instance);