Thursday, May 17, 2012
Google Custom Search

ClearCanvas Highlights

Download our Open Source software
Watch some Videos
Get the Source
Check out our Licensing
Join our  Forums
Some Research: OICR IPP-Trials

Our Community

Membership Membership:
Latest New User Latest: JBauza
New Today New Today: 0
New Yesterday New Yesterday: 19
User Count Overall: 22559

People Online People Online:
Visitors Visitors: 9
Members Members: 1
Total Total: 10

Online Now Online Now:
01: mlesser

ClearCanvas Community Forums

No plugins could be found
Last Post 2011-01-29 05:13 PM by mh. 10 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Not Resolved
mh
New Member
New Member
Posts:6

--
2010-09-06 05:18 AM  

Hi all,

On connecting to imageserveralpha I keep getting "No plugins could be found".

Any ideas?

Regards

mh

 

steve
Senior Member
Senior Member
Posts:1932

--
2010-09-07 12:43 AM  
mh,

Could you get a capture of the log file related to the errors you're seeing? It might be helpful to diagnosis the problem.

Steve
Real-time support available to Clinical Edition and Team Edition customers
mh
New Member
New Member
Posts:6

--
2010-09-07 08:29 AM  
current log:

2010-09-07 14:09:59,452 [4] INFO - Starting Server Shred Host Service...
2010-09-07 14:10:09,905 [4] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:10:14,749 [4] INFO - Starting up in AppDomain [ClearCanvas.ImageServer.ShredHostService.exe]
2010-09-07 14:10:21,218 [ServiceLock Server] INFO - ClearCanvas.ImageServer.Services.ServiceLock.Shreds.ServiceLockServerExtension[ClearCanvas.ImageServer.Services.ServiceLock.Shreds.ServiceLockServerExtension]: Start invoked
2010-09-07 14:10:22,515 [ArchivingServer] INFO - ClearCanvas.ImageServer.Services.Archiving.Shreds.ArchivingShredExtension[ClearCanvas.ImageServer.Services.Archiving.Shreds.ArchivingShredExtension]: Start invoked
2010-09-07 14:10:25,062 [Dicom Server] INFO - ClearCanvas.ImageServer.Services.Dicom.Shreds.DicomServerExtension[ClearCanvas.ImageServer.Services.Dicom.Shreds.DicomServerExtension]: Start invoked
2010-09-07 14:10:26,733 [Study header Streaming Server] INFO - Starting Study header Streaming Server using basic Http binding
2010-09-07 14:10:27,171 [Image Streaming Server] INFO - Started listening at http://+:1000/wado/
2010-09-07 14:10:30,077 [Web Viewer Server] INFO - Starting Web Viewer Server...
2010-09-07 14:10:30,062 [Work Queue Server] INFO - ClearCanvas.ImageServer.Services.WorkQueue.Shreds.WorkQueueServerExtension[ClearCanvas.ImageServer.Services.WorkQueue.Shreds.WorkQueueServerExtension]: Start invoked
2010-09-07 14:10:30,202 [Study header Streaming Server] INFO - Starting WCF Shred HeaderStreaming...
2010-09-07 14:10:53,483 [Study header Streaming Server] INFO - WCF Shred HeaderStreaming is listening at http://localhost:50221/HeaderStreaming.
2010-09-07 14:10:58,733 [Remote Services Server] INFO - Mounting service AlertService
2010-09-07 14:11:00,202 [Remote Services Server] INFO - on URI http://localhost:9998/ClearCanvas.ImageServer.Common.ServiceModel.IAlertService
2010-09-07 14:11:02,562 [Work Queue Server] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:11:02,733 [Remote Services Server] INFO - Mounting service FilesystemInfoService
2010-09-07 14:11:03,233 [Remote Services Server] INFO - on URI http://localhost:9998/ClearCanvas.ImageServer.Common.ServiceModel.IFilesystemService
2010-09-07 14:11:05,858 [Web Viewer Server] INFO - Web viewer service settings:
Maximum Simultaneous Applications : 50
Inactivity Timeout : 00:11:00
MaxBufferPoolSize : 1048576
MaxReceivedMessageSize : 262144

2010-09-07 14:11:07,358 [ServiceLock:17] INFO - ServiceLock Processor is running
2010-09-07 14:11:09,421 [Web Viewer Server] INFO - Web Viewer Server is started
2010-09-07 14:11:09,624 [ServiceLock:17] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:11:09,687 [DICOM Service Manager:19] INFO - Starting to listen with AE SERVERAE on port 0.0.0.0:104
2010-09-07 14:11:10,093 [DICOM Service Manager:19] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:11:10,546 [ServiceLock Pool:20] INFO - Filesystem Status:
Primary Filesystem : Enabled | Online | Readable | Writable | 5,59 GB Available

2010-09-07 14:11:12,390 [WorkQueue:23] INFO - Work Queue Processor running...
2010-09-07 14:11:13,030 [ServiceLock Pool:20] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,03352, High Watermark: 90,0000
2010-09-07 14:11:19,468 [WorkQueue:23] WARN - Unable to process WorkQueue entries, Minimum memory not available, minimum MB required: 512, current MB available:449
2010-09-07 14:16:36,562 [4] INFO - Starting Server Shred Host Service...
2010-09-07 14:17:01,421 [4] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:17:09,015 [4] INFO - Starting up in AppDomain [ClearCanvas.ImageServer.ShredHostService.exe]
2010-09-07 14:17:17,000 [ServiceLock Server] INFO - ClearCanvas.ImageServer.Services.ServiceLock.Shreds.ServiceLockServerExtension[ClearCanvas.ImageServer.Services.ServiceLock.Shreds.ServiceLockServerExtension]: Start invoked
2010-09-07 14:17:18,000 [ArchivingServer] INFO - ClearCanvas.ImageServer.Services.Archiving.Shreds.ArchivingShredExtension[ClearCanvas.ImageServer.Services.Archiving.Shreds.ArchivingShredExtension]: Start invoked
2010-09-07 14:17:20,968 [Dicom Server] INFO - ClearCanvas.ImageServer.Services.Dicom.Shreds.DicomServerExtension[ClearCanvas.ImageServer.Services.Dicom.Shreds.DicomServerExtension]: Start invoked
2010-09-07 14:17:22,890 [Study header Streaming Server] INFO - Starting Study header Streaming Server using basic Http binding
2010-09-07 14:17:27,984 [Image Streaming Server] INFO - Started listening at http://+:1000/wado/
2010-09-07 14:17:28,671 [Web Viewer Server] INFO - Starting Web Viewer Server...
2010-09-07 14:17:29,500 [Study header Streaming Server] INFO - Starting WCF Shred HeaderStreaming...
2010-09-07 14:17:30,562 [Work Queue Server] INFO - ClearCanvas.ImageServer.Services.WorkQueue.Shreds.WorkQueueServerExtension[ClearCanvas.ImageServer.Services.WorkQueue.Shreds.WorkQueueServerExtension]: Start invoked
2010-09-07 14:17:49,406 [Study header Streaming Server] INFO - WCF Shred HeaderStreaming is listening at http://localhost:50221/HeaderStreaming.
2010-09-07 14:17:49,562 [Remote Services Server] INFO - Mounting service AlertService
2010-09-07 14:17:52,906 [Remote Services Server] INFO - on URI http://localhost:9998/ClearCanvas.ImageServer.Common.ServiceModel.IAlertService
2010-09-07 14:17:55,609 [Remote Services Server] INFO - Mounting service FilesystemInfoService
2010-09-07 14:17:55,625 [ServiceLock:14] INFO - ServiceLock Processor is running
2010-09-07 14:17:55,656 [Remote Services Server] INFO - on URI http://localhost:9998/ClearCanvas.ImageServer.Common.ServiceModel.IFilesystemService
2010-09-07 14:18:02,312 [Web Viewer Server] INFO - Web viewer service settings:
Maximum Simultaneous Applications : 50
Inactivity Timeout : 00:11:00
MaxBufferPoolSize : 1048576
MaxReceivedMessageSize : 262144

2010-09-07 14:18:02,531 [ServiceLock:14] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:18:02,875 [Work Queue Server] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:18:03,359 [DICOM Service Manager:19] INFO - Starting to listen with AE SERVERAE on port 0.0.0.0:104
2010-09-07 14:18:03,687 [ServiceLock Pool:21] INFO - Filesystem Status:
Primary Filesystem : Enabled | Online | Readable | Writable | 5,59 GB Available

2010-09-07 14:18:03,828 [DICOM Service Manager:19] WARN - Time provider not found - defaulting to local machine time.
2010-09-07 14:18:05,250 [Web Viewer Server] INFO - Web Viewer Server is started
2010-09-07 14:18:06,171 [ServiceLock Pool:21] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,0341, High Watermark: 90,0000
2010-09-07 14:18:07,671 [WorkQueue:23] INFO - Work Queue Processor running...
2010-09-07 14:20:06,687 [ServiceLock Pool:20] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,03886, High Watermark: 90,0000
2010-09-07 14:22:06,750 [ServiceLock Pool:21] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,04134, High Watermark: 90,0000
2010-09-07 14:24:36,750 [ServiceLock Pool:20] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,04137, High Watermark: 90,0000
2010-09-07 14:26:41,546 [ServiceLock Pool:20] INFO - Filesystem below watermarks: Primary Filesystem (Current: 65,04299, High Watermark: 90,0000
steve
Senior Member
Senior Member
Posts:1932

--
2010-09-07 08:47 AM  
Sorry, I should have been more clear. There's a log file in the "web\logs" folder of the install directory, which is generated by the web server. Could you take a look at this?
Real-time support available to Clinical Edition and Team Edition customers
mh
New Member
New Member
Posts:6

--
2010-09-07 10:14 AM  
Hi, I can only locate one more log file:


Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Extract: ReadMe.htm... 100%
Extract: SSEUtil.exe... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Extract: TemplateImageServerDatabase.sql... 100%
Extract: TemplateImageServerRemoveDatabase.sql... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Extract: ImageServerDatabase.sql... 100%
Extract: ImageServerDefaultData.sql... 100%
Extract: ImageServerStoredProcedures.sql... 100%
Extract: ImageServerTables.sql... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Extract: ReadMe.htm... 100%
Extract: SSEUtil.exe... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Extract: dbgo.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\scripts
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha
Create folder: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\ClearCanvas\ClearCanvas Image Server Alpha
Extract: ClearCanvas.ImageServer.Executable.exe... 100%
Extract: ClearCanvas.ImageServer.Executable.exe.config... 100%
Extract: ClearCanvas.ImageServer.ShredHostService.exe... 100%
Extract: ClearCanvas.ImageServer.ShredHostService.exe.config... 100%
Extract: License.rtf... 100%
Extract: Logging.config... 100%
Skipped: ClearCanvas.ImageServer.Executable.exe
Skipped: ClearCanvas.ImageServer.Executable.exe.config
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\plugins
Extract: BilinearInterpolation.dll... 100%
Extract: ClearCanvas.Desktop.Configuration.dll... 100%
Extract: ClearCanvas.Desktop.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Jpeg.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Rle.dll... 100%
Extract: ClearCanvas.Enterprise.Common.dll... 100%
Extract: ClearCanvas.Enterprise.Core.dll... 100%
Extract: ClearCanvas.ImageServer.Common.dll... 100%
Extract: ClearCanvas.ImageServer.Core.dll... 100%
Extract: ClearCanvas.ImageServer.Enterprise.SqlServer2005.dll... 100%
Extract: ClearCanvas.ImageServer.Enterprise.dll... 100%
Extract: ClearCanvas.ImageServer.Model.SqlServer2005.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.JpegCodec.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.RleCodec.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Common.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Dicom.dll... 100%
Extract: ClearCanvas.ImageServer.Services.ServiceLock.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Streaming.dll... 100%
Extract: ClearCanvas.ImageServer.Services.WebViewer.dll... 100%
Extract: ClearCanvas.ImageServer.Services.WorkQueue.dll... 100%
Extract: ClearCanvas.ImageServer.Utilities.dll... 100%
Extract: ClearCanvas.ImageViewer.AnnotationProviders.dll... 100%
Extract: ClearCanvas.ImageViewer.Configuration.dll... 100%
Extract: ClearCanvas.ImageViewer.Layout.Basic.dll... 100%
Extract: ClearCanvas.ImageViewer.Services.dll... 100%
Extract: ClearCanvas.ImageViewer.StudyFinders.Remote.dll... 100%
Extract: ClearCanvas.ImageViewer.Tools.Measurement.dll... 100%
Extract: ClearCanvas.ImageViewer.Tools.Standard.dll... 100%
Extract: ClearCanvas.ImageViewer.Tools.Synchronization.dll... 100%
Extract: ClearCanvas.ImageViewer.Web.Common.dll... 100%
Extract: ClearCanvas.ImageViewer.Web.Server.ImageServer.dll... 100%
Extract: ClearCanvas.ImageViewer.Web.dll... 100%
Extract: ClearCanvas.ImageViewer.dll... 100%
Extract: ClearCanvas.Jscript.dll... 100%
Extract: ClearCanvas.Web.Common.dll... 100%
Extract: ClearCanvas.Web.Services.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\plugins
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\common
Extract: Castle.Core.dll... 100%
Extract: Castle.DynamicProxy2.dll... 100%
Extract: ClearCanvas.Common.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Jpeg.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Rle.dll... 100%
Extract: ClearCanvas.Dicom.dll... 100%
Extract: ClearCanvas.ImageServer.Model.dll... 100%
Extract: ClearCanvas.Server.ShredHost.dll... 100%
Extract: Iesi.Collections.dll... 100%
Extract: Ionic.Zip.dll... 100%
Extract: log4net.dll... 100%
Extract: nunit.framework.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\common
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\utilities
Extract: ReconcileCleanup.bat... 100%
Generating Logging.Config file
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha
Extract: CCImageServerUsersGuide.chm... 100%
Create shortcut: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\ClearCanvas\ClearCanvas Image Server Alpha\Users Guide.lnk
Generating App.Config file
Generating Exe App.Config file
Generating script utility
Generating database creation script
Generating database removal script for uninstaller
Creating database...

> USE [master]
> GO

Command completed successfully.

> /****** Object: Database [ImageServerAlpha] Script Date: 07/23/2007 17:16:02 ******/
> CREATE DATABASE [ImageServerAlpha] ON PRIMARY
> ( NAME = N'ImageServerAlpha', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ImageServerAlpha.mdf' , SIZE = 64MB , MAXSIZE = UNLIMITED, FILEGROWTH = 64MB ),
> FILEGROUP [INDEXES]
> ( NAME = N'ImageServerAlpha_Indexes', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ImageServerAlpha Indexes.ndf' , SIZE = 64MB , MAXSIZE = UNLIMITED, FILEGROWTH = 64MB ),
> FILEGROUP [QUEUES]
> ( NAME = N'ImageServerAlpha Queues', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ImageServerAlpha Queues.ndf' , SIZE = 64MB , MAXSIZE = UNLIMITED, FILEGROWTH = 64MB ),
> FILEGROUP [STATIC]
> ( NAME = N'ImageServerAlpha Static Tables', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ImageServerAlpha Static Tables.ndf' , SIZE = 4MB , MAXSIZE = UNLIMITED, FILEGROWTH = 2MB )
> LOG ON
> ( NAME = N'ImageServerAlpha_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ImageServerAlpha_log.LDF' , SIZE = 32MB , MAXSIZE = 20GB , FILEGROWTH = 10%)
> GO

Command completed successfully.

> EXEC dbo.sp_dbcmptlevel @dbname=N'ImageServerAlpha', @new_cmptlevel=90
> GO

Command completed successfully.

> IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
> begin
> EXEC [ImageServerAlpha].[dbo].[sp_fulltext_database] @action = 'enable'
> end
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ANSI_NULL_DEFAULT OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ANSI_NULLS OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ANSI_PADDING OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ANSI_WARNINGS OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ARITHABORT OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET AUTO_CLOSE OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET AUTO_CREATE_STATISTICS ON
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET AUTO_SHRINK OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET AUTO_UPDATE_STATISTICS ON
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET CURSOR_CLOSE_ON_COMMIT OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET CURSOR_DEFAULT GLOBAL
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET CONCAT_NULL_YIELDS_NULL OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET NUMERIC_ROUNDABORT OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET QUOTED_IDENTIFIER OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET RECURSIVE_TRIGGERS OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ENABLE_BROKER
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET DATE_CORRELATION_OPTIMIZATION OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET TRUSTWORTHY OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET ALLOW_SNAPSHOT_ISOLATION OFF
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET PARAMETERIZATION SIMPLE
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET READ_WRITE
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET RECOVERY FULL
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET MULTI_USER
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET PAGE_VERIFY CHECKSUM
> GO

Command completed successfully.

> ALTER DATABASE [ImageServerAlpha] SET DB_CHAINING OFF
Playback completed for command file 'TemplateImageServerDatabase.sql'.
Creating database tables...

> USE [ImageServerAlpha]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerTransferSyntax] Script Date: 07/16/2008 23:49:16 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerTransferSyntax]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerTransferSyntax](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServerTransferSyntax_GUID] DEFAULT (newid()),
> [Uid] [varchar](64) NOT NULL,
> [Description] [nvarchar](256) NOT NULL,
> [Lossless] [bit] NOT NULL,
> CONSTRAINT [PK_ServerTransferSyntax] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[DuplicateSopPolicyEnum] Script Date: 07/16/2008 23:48:31 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DuplicateSopPolicyEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[DuplicateSopPolicyEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_DuplicateSopPolicyEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_DuplicateSopPolicyEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerPartition] Script Date: 07/16/2008 23:49:06 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerPartition]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerPartition](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServerPartition_GUID] DEFAULT (newid()),
> [Enabled] [bit] NOT NULL,
> [Description] [nvarchar](128) NOT NULL,
> [AeTitle] [varchar](16) COLLATE Latin1_General_CS_AS NOT NULL,
> [Port] [int] NOT NULL,
> [PartitionFolder] [nvarchar](16) NOT NULL,
> [AcceptAnyDevice] [bit] NOT NULL CONSTRAINT [DF_ServerPartition_AcceptAnyDevice] DEFAULT ((1)),
> [AuditDeleteStudy] [bit] NOT NULL CONSTRAINT [DF_ServerPartition_AuditDeleteStudy] DEFAULT ((0)),
> [AutoInsertDevice] [bit] NOT NULL CONSTRAINT [DF_ServerPartition_AutoInsertDevice] DEFAULT ((1)),
> [DefaultRemotePort] [int] NOT NULL CONSTRAINT [DF_ServerPartition_DefaultRemotePort] DEFAULT ((104)),
> [StudyCount] [int] NOT NULL CONSTRAINT [DF_ServerPartition_StudyCount] DEFAULT ((0)),
> [DuplicateSopPolicyEnum] [smallint] NOT NULL,
> [MatchAccessionNumber] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchAccessionNumber] DEFAULT ((1)),
> [MatchIssuerOfPatientId] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchIssuerOfPatientId] DEFAULT ((1)),
> [MatchPatientId] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchPatientId] DEFAULT ((1)),
> [MatchPatientsBirthDate] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchPatientsBirthDate] DEFAULT ((1)),
> [MatchPatientsName] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchPatientsName] DEFAULT ((1)),
> [MatchPatientsSex] bit NOT NULL CONSTRAINT [DF_ServerPartition_MatchPatientsSex] DEFAULT ((1)),
> CONSTRAINT [PK_ServerPartition] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[ServerPartition]') AND name = N'IX_ServerPartition')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_ServerPartition] ON [dbo].[ServerPartition]
> (
> [AeTitle] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[WorkQueueStatusEnum] Script Date: 07/16/2008 23:49:42 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueStatusEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueueStatusEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_WorkQueueStatusEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_WorkQueueStatusEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[StudyStatusEnum] Script Date: 07/16/2008 23:49:29 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[StudyStatusEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[StudyStatusEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyStatusEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_StudyStatusEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[QueueStudyStateEnum] Script Date: 08/26/2008 15:22:09 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueueStudyStateEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[QueueStudyStateEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_QueueStudyStateEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_QueueStudyStateEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[WorkQueueTypeEnum] Script Date: 07/16/2008 23:49:43 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueueTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_WorkQueueTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_WorkQueueTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerSopClass] Script Date: 07/16/2008 23:49:15 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerSopClass]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerSopClass](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_SopClass_GUID] DEFAULT (newid()),
> [SopClassUid] [varchar](64) NOT NULL,
> [Description] [nvarchar](128) NOT NULL,
> [NonImage] [bit] NOT NULL,
> CONSTRAINT [PK_SopClass] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[ServerSopClass]') AND name = N'IX_SopClass_SopClassUid')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_SopClass_SopClassUid] ON [dbo].[ServerSopClass]
> (
> [SopClassUid] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServiceLockTypeEnum] Script Date: 07/16/2008 23:49:20 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServiceLockTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServiceLockTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServiceLockTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_ServiceLockTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerRuleTypeEnum] Script Date: 07/16/2008 23:49:13 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerRuleTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerRuleTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServerRuleTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_ServerRuleTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerRuleApplyTimeEnum] Script Date: 07/16/2008 23:49:11 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerRuleApplyTimeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerRuleApplyTimeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServerRuleApplyTimeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_ServerRuleApplyTimeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[FilesystemTierEnum] Script Date: 01/09/2008 15:03:38 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemTierEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[FilesystemTierEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_FilesystemTierEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_FilesystemTier] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[FilesystemQueueTypeEnum] Script Date: 01/09/2008 15:03:36 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemQueueTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[FilesystemQueueTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_FilesystemQueueTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_FilesystemQueueTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[WorkQueuePriorityEnum] Script Date: 03/12/2008 14:30:42 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[[WorkQueuePriorityEnum]]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueuePriorityEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_WorkQueuePriorityEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_WorkQueuePriorityEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[DevicePreferredTransferSyntax] Script Date: 01/09/2008 15:03:27 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DevicePreferredTransferSyntax]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[DevicePreferredTransferSyntax](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_DevicePreferredTransferSyntax_GUID] DEFAULT (newid()),
> [DeviceGUID] [uniqueidentifier] NOT NULL,
> [ServerSopClassGUID] [uniqueidentifier] NOT NULL,
> [ServerTransferSyntaxGUID] [uniqueidentifier] NOT NULL,
> CONSTRAINT [PK_DevicePreferredTransferSyntax] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[DevicePreferredTransferSyntax]') AND name = N'IX_DevicePreferredTransferSyntax')
> CREATE CLUSTERED INDEX [IX_DevicePreferredTransferSyntax] ON [dbo].[DevicePreferredTransferSyntax]
> (
> [DeviceGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServerRule] Script Date: 01/09/2008 15:03:54 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServerRule]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServerRule](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServerRule_GUID] DEFAULT (newid()),
> [RuleName] [nvarchar](128) NOT NULL,
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [ServerRuleTypeEnum] [smallint] NOT NULL,
> [ServerRuleApplyTimeEnum] [smallint] NOT NULL,
> [Enabled] [bit] NOT NULL,
> [DefaultRule] [bit] NOT NULL,
> [ExemptRule] [bit] NOT NULL CONSTRAINT [DF_ServerRule_NotRule] DEFAULT ((0)),
> [RuleXml] [xml] NOT NULL,
> CONSTRAINT [PK_ServerRule] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[WorkQueue] Script Date: 01/09/2008 15:04:24 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueue]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueue](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_WorkQueue_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [DeviceGUID] [uniqueidentifier] NULL,
> [StudyHistoryGUID] [uniqueidentifier] NULL,
> [WorkQueueTypeEnum] [smallint] NOT NULL,
> [WorkQueueStatusEnum] [smallint] NOT NULL,
> [WorkQueuePriorityEnum] [smallint] NOT NULL CONSTRAINT [DF_WorkQueue_WorkQueuePriorityEnum] DEFAULT ((200)),
> [ProcessorID] [varchar](128) NULL,
> [GroupID] [varchar] (64) NULL,
> [ExpirationTime] [datetime] NULL,
> [ScheduledTime] [datetime] NOT NULL,
> [InsertTime] [datetime] NOT NULL CONSTRAINT [DF_WorkQueue_InsertTime] DEFAULT (getdate()),
> [LastUpdatedTime] [datetime] NULL,
> [FailureCount] [int] NOT NULL CONSTRAINT [DF_WorkQueue_FailureCount] DEFAULT ((0)),
> [FailureDescription] [nvarchar](512) NULL,
> [Data] [xml] NULL,
> CONSTRAINT [PK_WorkQueue] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueue]') AND name = N'IX_WorkQueue_ScheduledTime')
> CREATE NONCLUSTERED INDEX [IX_WorkQueue_ScheduledTime] ON [dbo].[WorkQueue]
> (
> [ScheduledTime] ASC,
> [WorkQueueStatusEnum] ASC,
> [WorkQueueTypeEnum] ASC
> )
> INCLUDE ( [StudyStorageGUID], [WorkQueuePriorityEnum]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueue]') AND name = N'IX_WorkQueue_StudyStorageGUID')
> CREATE NONCLUSTERED INDEX [IX_WorkQueue_StudyStorageGUID] ON [dbo].[WorkQueue]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

>
> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueue]') AND name = N'IX_WorkQueue_GroupID')
> CREATE NONCLUSTERED INDEX [IX_WorkQueue_GroupID] ON [dbo].[WorkQueue]
> (
> [GroupID] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [INDEXES]
> GO

Command completed successfully.

>
> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueue]') AND name = N'IX_WorkQueue_DeviceGUID')
> CREATE NONCLUSTERED INDEX [IX_WorkQueue_DeviceGUID] ON [dbo].[WorkQueue]
> (
> [DeviceGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[Series] Script Date: 01/09/2008 15:03:48 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Series]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Series](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Series_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [StudyGUID] [uniqueidentifier] NOT NULL,
> [SeriesInstanceUid] [varchar](64) NOT NULL,
> [Modality] [varchar](16) NOT NULL,
> [SeriesNumber] [varchar](12) NULL,
> [SeriesDescription] [nvarchar](64) NULL,
> [NumberOfSeriesRelatedInstances] [int] NOT NULL,
> [PerformedProcedureStepStartDate] [varchar](8) NULL,
> [PerformedProcedureStepStartTime] [varchar](16) NULL,
> [SourceApplicationEntityTitle] [varchar](16) NULL,
> CONSTRAINT [PK_Series] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Series]') AND name = N'IX_Series_StudyGUID_SeriesInstanceUid')
> CREATE UNIQUE CLUSTERED INDEX [IX_Series_StudyGUID_SeriesInstanceUid] ON [dbo].[Series]
> (
> [StudyGUID] ASC,
> [SeriesInstanceUid] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Series]') AND name = N'IX_Series_Modality')
> CREATE NONCLUSTERED INDEX [IX_Series_Modality] ON [dbo].[Series]
> (
> [Modality] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[Study] Script Date: 01/09/2008 15:04:14 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Study](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Study_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NULL,
> [PatientGUID] [uniqueidentifier] NOT NULL,
> [SpecificCharacterSet] varchar(128) NULL,
> [StudyInstanceUid] [varchar](64) NOT NULL,
> [PatientsName] [nvarchar](64) NULL,
> [PatientId] [nvarchar](64) NULL,
> [IssuerOfPatientId] [nvarchar](64) NULL,
> [PatientsBirthDate] [varchar](8) NULL,
> [PatientsAge] [varchar](4) NULL,
> [PatientsSex] [varchar](2) NULL,
> [StudyDate] [varchar](8) NULL,
> [StudyTime] [varchar](16) NULL,
> [AccessionNumber] [nvarchar](16) NULL,
> [StudyId] [nvarchar](16) NULL,
> [StudyDescription] [nvarchar](64) NULL,
> [ReferringPhysiciansName] [nvarchar](64) NULL,
> [NumberOfStudyRelatedSeries] [int] NOT NULL,
> [NumberOfStudyRelatedInstances] [int] NOT NULL,
> [StudySizeInKB] [decimal](18, 0) NULL,
> CONSTRAINT [PK_Study] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IXC_Study_StudyDate')
> CREATE CLUSTERED INDEX [IXC_Study_StudyDate] ON [dbo].[Study]
> (
> [StudyDate] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_AccessionNumber')
> CREATE NONCLUSTERED INDEX [IX_Study_AccessionNumber] ON [dbo].[Study]
> (
> [AccessionNumber] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_PatientGUID')
> CREATE NONCLUSTERED INDEX [IX_Study_PatientGUID] ON [dbo].[Study]
> (
> [PatientGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_PatientId')
> CREATE NONCLUSTERED INDEX [IX_Study_PatientId] ON [dbo].[Study]
> (
> [PatientId] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_PatientsName')
> CREATE NONCLUSTERED INDEX [IX_Study_PatientsName] ON [dbo].[Study]
> (
> [PatientsName] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_ReferringPhysiciansName')
> CREATE NONCLUSTERED INDEX [IX_Study_ReferringPhysiciansName] ON [dbo].[Study]
> (
> [ReferringPhysiciansName] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_StudyDescription')
> CREATE NONCLUSTERED INDEX [IX_Study_StudyDescription] ON [dbo].[Study]
> (
> [StudyDescription] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_StudyInstanceUid')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_Study_StudyInstanceUid] ON [dbo].[Study]
> (
> [StudyInstanceUid] ASC,
> [ServerPartitionGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Study]') AND name = N'IX_Study_StudyStorageGUID')
> CREATE NONCLUSTERED INDEX [IX_Study_StudyStorageGUID] ON [dbo].[Study]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[PartitionSopClass] Script Date: 01/09/2008 15:03:39 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PartitionSopClass]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[PartitionSopClass](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_PartitionSopClass_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [ServerSopClassGUID] [uniqueidentifier] NOT NULL,
> [Enabled] [bit] NOT NULL,
> CONSTRAINT [PK_PartitionSopClass] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> /****** Object: Table [dbo].[StudyStorage] Script Date: 01/09/2008 15:04:19 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[StudyStorage]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[StudyStorage](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyStorage_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [StudyInstanceUid] [varchar](64) NOT NULL,
> [InsertTime] [datetime] NOT NULL CONSTRAINT [DF_StudyStorage_InsertTime] DEFAULT (getdate()),
> [LastAccessedTime] [datetime] NOT NULL CONSTRAINT [DF_StudyStorage_LastAccessedTime] DEFAULT (getdate()),
> [WriteLock] [bit] NOT NULL,
> [ReadLock] [smallint] NOT NULL,
> [StudyStatusEnum] [smallint] NOT NULL,
> [QueueStudyStateEnum] [smallint] NOT NULL,
> CONSTRAINT [PK_StudyStorage] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[StudyStorage]') AND name = N'IX_StudyStorage_PartitionGUID_StudyInstanceUid')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_StudyStorage_PartitionGUID_StudyInstanceUid] ON [dbo].[StudyStorage]
> (
> [ServerPartitionGUID] ASC,
> [StudyInstanceUid] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Default [DF_StudyStorage_WriteLock] Script Date: 10/30/2009 12:15:04 ******/
> IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_StudyStorage_WriteLock]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyStorage]'))
> Begin
> IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_StudyStorage_WriteLock]') AND type = 'D')
> BEGIN
> ALTER TABLE [dbo].[StudyStorage] ADD CONSTRAINT DF_StudyStorage_WriteLock DEFAULT ((0)) FOR [WriteLock]
> END
> End
> GO

Command completed successfully.

> /****** Object: Default [DF_StudyStorage_ReadLock] Script Date: 10/30/2009 12:15:04 ******/
> IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_StudyStorage_ReadLock]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyStorage]'))
> Begin
> IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_StudyStorage_ReadLock]') AND type = 'D')
> BEGIN
> ALTER TABLE [dbo].[StudyStorage] ADD CONSTRAINT [DF_StudyStorage_ReadLock] DEFAULT ((0)) FOR [ReadLock]
> END
> End
> GO

Command completed successfully.

> /****** Object: Table [dbo].[Patient] Script Date: 01/09/2008 15:03:42 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Patient]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Patient](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Patient_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [PatientsName] [nvarchar](64) NULL,
> [PatientId] [nvarchar](64) NULL,
> [IssuerOfPatientId] [nvarchar](64) NULL,
> [NumberOfPatientRelatedStudies] [int] NOT NULL,
> [NumberOfPatientRelatedSeries] [int] NOT NULL,
> [NumberOfPatientRelatedInstances] [int] NOT NULL,
> [SpecificCharacterSet] varchar(128) NULL
> CONSTRAINT [PK_Patient] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> /****** Object: Table [dbo].[Device] Script Date: 04/23/2008 23:48:21 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Device]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Device](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Device_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [AeTitle] [varchar](16) NOT NULL,
> [IpAddress] [varchar](16) NULL,
> [Port] [int] NOT NULL,
> [Description] [nvarchar](256) NULL,
> [Dhcp] [bit] NOT NULL,
> [Enabled] [bit] NOT NULL,
> [AllowStorage] [bit] NOT NULL CONSTRAINT [DF_Device_StorageFlag] DEFAULT ((0)),
> [AcceptKOPR] [bit] NOT NULL CONSTRAINT [DF_Device_AcceptKOPRFlag] DEFAULT ((0)),
> [AllowRetrieve] [bit] NOT NULL CONSTRAINT [DF_Device_AllowRetrieve] DEFAULT ((0)),
> [AllowQuery] [bit] NOT NULL CONSTRAINT [DF_Device_AllowQuery] DEFAULT ((0)),
> [AllowAutoRoute] [bit] NOT NULL CONSTRAINT [DF_Device_AllowAutoRoute] DEFAULT ((1)),
> [ThrottleMaxConnections] [smallint] NOT NULL CONSTRAINT [DF_Device_MaxConnections] DEFAULT ((-1)),
> [LastAccessedTime] [datetime] NOT NULL CONSTRAINT [DF_Device_LastAccessedTime] DEFAULT (getdate()),
> [DeviceTypeEnum] [smallint] NOT NULL CONSTRAINT [DF_Device_DeviceTYpeEnum] DEFAULT ((100)),
> CONSTRAINT [PK_Device] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Device]') AND name = N'IX_Device_ServerPartitionGUID_AeTitle')
> CREATE NONCLUSTERED INDEX [IX_Device_ServerPartitionGUID_AeTitle] ON [dbo].[Device]
> (
> [ServerPartitionGUID] ASC,
> [AeTitle] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[FilesystemQueue] Script Date: 01/09/2008 15:03:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[FilesystemQueue](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_FilesystemQueue_GUID] DEFAULT (newid()),
> [FilesystemQueueTypeEnum] [smallint] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [FilesystemGUID] [uniqueidentifier] NOT NULL,
> [ScheduledTime] [datetime] NOT NULL,
> [SeriesInstanceUid] [varchar](64) NULL,
> [QueueXml] [xml] NULL,
> CONSTRAINT [PK_FilesystemQueue] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]') AND name = N'IXC_FilesystemQueue')
> CREATE CLUSTERED INDEX [IXC_FilesystemQueue] ON [dbo].[FilesystemQueue]
> (
> [FilesystemGUID] ASC,
> [ScheduledTime] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]') AND name = N'IX_FilesystemQueue_StudyStorageGUID')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_FilesystemQueue_StudyStorageGUID] ON [dbo].[FilesystemQueue]
> (
> [StudyStorageGUID] ASC,
> [FilesystemQueueTypeEnum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ServiceLock] Script Date: 01/09/2008 15:04:03 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ServiceLock]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ServiceLock](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ServiceLock_GUID] DEFAULT (newid()),
> [ServiceLockTypeEnum] [smallint] NOT NULL,
> [ProcessorId] [varchar](128) NULL,
> [Lock] [bit] NOT NULL,
> [ScheduledTime] [datetime] NOT NULL,
> [FilesystemGUID] [uniqueidentifier] NULL,
> [Enabled] [bit] NOT NULL CONSTRAINT [DF_ServiceLock_Enabled] DEFAULT ((1)),
> [State] [xml] NULL,
> CONSTRAINT [PK_ServiceLock] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[FilesystemStudyStorage] Script Date: 07/16/2008 23:48:41 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[FilesystemStudyStorage](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StorageFilesystem_GUID] DEFAULT (newid()),
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [FilesystemGUID] [uniqueidentifier] NOT NULL,
> [ServerTransferSyntaxGUID] [uniqueidentifier] NOT NULL,
> [StudyFolder] [varchar](8) NOT NULL,
> CONSTRAINT [PK_StorageFilesystem] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]') AND name = N'IX_StorageFilesystem_StudyStorageGUID')
> CREATE CLUSTERED INDEX [IX_StorageFilesystem_StudyStorageGUID] ON [dbo].[FilesystemStudyStorage]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]') AND name = N'IX_StorageFilesystem_FilesystemGUID')
> CREATE NONCLUSTERED INDEX [IX_StorageFilesystem_FilesystemGUID] ON [dbo].[FilesystemStudyStorage]
> (
> [FilesystemGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[WorkQueueUid] Script Date: 01/09/2008 15:04:30 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueUid]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueueUid](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_WorkQueueInstance_GUID] DEFAULT (newid()),
> [WorkQueueGUID] [uniqueidentifier] NOT NULL,
> [SeriesInstanceUid] [varchar](64) NULL,
> [SopInstanceUid] [varchar](64) NULL,
> [Failed] [bit] NOT NULL CONSTRAINT [DF_WorkQueueUid_Failed] DEFAULT ((0)),
> [Duplicate] [bit] NOT NULL CONSTRAINT [DF_WorkQueueUid_Duplicate] DEFAULT ((0)),
> [Extension] [varchar](10) NULL,
> [FailureCount] [smallint] NOT NULL CONSTRAINT [DF_WorkQueueUid_FailureCount] DEFAULT ((0)),
> [GroupID] [varchar] (64) NULL,
> [RelativePath] [varchar] (256) NULL,
> CONSTRAINT [PK_WorkQueueUid] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueUid]') AND name = N'IX_WorkQueueUid')
> CREATE CLUSTERED INDEX [IX_WorkQueueUid] ON [dbo].[WorkQueueUid]
> (
> [WorkQueueGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 65) ON [QUEUES]
> GO

Command completed successfully.

>
> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueUid]') AND name = N'IX_WorkQueueUid_GroupID')
> CREATE NONCLUSTERED INDEX [IX_WorkQueueUid_GroupID] ON [dbo].[WorkQueueUid]
> (
> [GroupID] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[RequestAttributes] Script Date: 01/09/2008 15:03:44 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RequestAttributes]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[RequestAttributes](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_RequestAttribute_GUID] DEFAULT (newid()),
> [SeriesGUID] [uniqueidentifier] NOT NULL,
> [RequestedProcedureId] [nvarchar](16) NULL,
> [ScheduledProcedureStepId] [nvarchar](16) NULL,
> CONSTRAINT [PK_RequestAttribute] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[RequestAttributes]') AND name = N'IX_RequestAttribute_SeriesGUID')
> CREATE CLUSTERED INDEX [IX_RequestAttribute_SeriesGUID] ON [dbo].[RequestAttributes]
> (
> [SeriesGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

> /****** Object: Table [dbo].[Filesystem] Script Date: 01/09/2008 15:03:31 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Filesystem]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Filesystem](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Filesystem_GUID] DEFAULT (newid()),
> [FilesystemPath] [nvarchar](256) NOT NULL,
> [Enabled] [bit] NOT NULL,
> [ReadOnly] [bit] NOT NULL,
> [WriteOnly] [bit] NOT NULL,
> [Description] [nvarchar](128) NULL,
> [FilesystemTierEnum] [smallint] NOT NULL,
> [LowWatermark] [decimal](8, 4) NOT NULL CONSTRAINT [DF_Filesystem_LowWatermark] DEFAULT ((80.00)),
> [HighWatermark] [decimal](8, 4) NOT NULL CONSTRAINT [DF_Filesystem_HighWatermark] DEFAULT ((90.00)),
> CONSTRAINT [PK_Filesystem] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> /****** Object: Table [dbo].[PartitionTransferSyntax] Script Date: 06/24/2008 16:42:53 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PartitionTransferSyntax]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[PartitionTransferSyntax](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_PartitionTransferSyntax_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [ServerTransferSyntaxGUID] [uniqueidentifier] NOT NULL,
> [Enabled] [bit] NOT NULL,
> CONSTRAINT [PK_PartitionTransferSyntax] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ArchiveTypeEnum] Script Date: 07/08/2008 18:10:19 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ArchiveTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ArchiveTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ArchiveTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_ArchiveTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[ArchiveQueueStatusEnum] Script Date: 07/08/2008 18:10:21 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ArchiveQueueStatusEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ArchiveQueueStatusEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ArchiveQueueStatusEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_ArchiveQueueStatusEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[RestoreQueueStatusEnum] Script Date: 07/08/2008 18:10:31 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RestoreQueueStatusEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[RestoreQueueStatusEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_RestoreQueueStatusEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_RestoreQueueStatusEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> /****** Object: Table [dbo].[PartitionArchive] Script Date: 07/08/2008 18:10:28 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PartitionArchive]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[PartitionArchive](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_PartitionArchive_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [ArchiveTypeEnum] [smallint] NOT NULL,
> [Description] [nvarchar](128) NOT NULL,
> [Enabled] [bit] NOT NULL,
> [ReadOnly] [bit] NOT NULL,
> [ArchiveDelayHours] [int] NOT NULL,
> [ConfigurationXml] [xml] NULL,
> CONSTRAINT [PK_PartitionArchive] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> /****** Object: Table [dbo].[RestoreQueue] Script Date: 01/23/2009 16:59:12 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RestoreQueue]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[RestoreQueue](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_RestoreQueue_GUID] DEFAULT (newid()),
> [ArchiveStudyStorageGUID] [uniqueidentifier] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [ScheduledTime] [datetime] NOT NULL,
> [RestoreQueueStatusEnum] [smallint] NOT NULL,
> [ProcessorId] [varchar](128) NULL,
> [FailureDescription] [nvarchar](512) NULL,
> CONSTRAINT [PK_RestoreQueue] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[RestoreQueue]') AND name = N'IXC_RestoreQueue')
> CREATE CLUSTERED INDEX [IXC_RestoreQueue] ON [dbo].[RestoreQueue]
> (
> [ScheduledTime] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> GO

Command completed successfully.

> CREATE NONCLUSTERED INDEX [IX_RestoreQueue] ON [dbo].[RestoreQueue]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[ArchiveStudyStorage] Script Date: 01/23/2009 16:59:11 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ArchiveStudyStorage]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ArchiveStudyStorage](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StorageArchive_GUID] DEFAULT (newid()),
> [PartitionArchiveGUID] [uniqueidentifier] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [ServerTransferSyntaxGUID] [uniqueidentifier] NOT NULL,
> [ArchiveTime] [datetime] NOT NULL,
> [ArchiveXml] [xml] NULL,
> CONSTRAINT [PK_StorageArchive] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

> CREATE CLUSTERED INDEX [IXC_ArchiveStudyStorage] ON [dbo].[ArchiveStudyStorage]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[ArchiveQueue] Script Date: 01/23/2009 16:59:11 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ArchiveQueue]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ArchiveQueue](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ArchiveQueue_GUID] DEFAULT (newid()),
> [PartitionArchiveGUID] [uniqueidentifier] NOT NULL,
> [ScheduledTime] [datetime] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [ArchiveQueueStatusEnum] [smallint] NOT NULL,
> [ProcessorId] [varchar](128) NULL,
> [FailureDescription] [nvarchar](512) NULL,
> CONSTRAINT [PK_ArchiveQueue] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[ArchiveQueue]') AND name = N'IXC_ArchiveQueue')
> CREATE CLUSTERED INDEX [IXC_ArchiveQueue] ON [dbo].[ArchiveQueue]
> (
> [ScheduledTime] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> GO

Command completed successfully.

> CREATE NONCLUSTERED INDEX [IX_ArchiveQueue] ON [dbo].[ArchiveQueue]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

>
>
> /****** Object: Table [dbo].[AlertCategoryEnum] Script Date: 07/16/2008 23:49:13 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AlertCategoryEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[AlertCategoryEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_AlertCategoryEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_AlertCategoryEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
>
> /****** Object: Table [dbo].[AlertLevelEnum] Script Date: 07/16/2008 23:49:13 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AlertLevelEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[AlertLevelEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_AlertLevelEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_AlertLevelEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
>
>
> GO

Command completed successfully.

> /****** Object: Table [dbo].[Alert] Script Date: 01/23/2009 16:59:11 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Alert]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[Alert](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Alert_GUID] DEFAULT (newid()),
> [InsertTime] [datetime] NOT NULL,
> [Component] [nvarchar](50) NOT NULL,
> [TypeCode] [int] NOT NULL,
> [Source] [nvarchar](256) NOT NULL,
> [AlertLevelEnum] [smallint] NOT NULL,
> [AlertCategoryEnum] [smallint] NOT NULL,
> [Content] [xml] NOT NULL,
> CONSTRAINT [PK_SystemAlert] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[StudyIntegrityReasonEnum] Script Date: 09/05/2008 11:48:30 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[StudyIntegrityReasonEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[StudyIntegrityReasonEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyIntegrityReasonEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_StudyIntegrityStatusEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[StudyIntegrityQueue] Script Date: 01/23/2009 16:59:12 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> CREATE TABLE [dbo].[StudyIntegrityQueue](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyIntegrityQueue_GUID] DEFAULT (newid()),
> [ServerPartitionGUID] [uniqueidentifier] NOT NULL,
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [InsertTime] [datetime] NOT NULL CONSTRAINT [DF_StudyIntegrityQueue_InsertTime] DEFAULT (getdate()),
> [Description] [nvarchar](1024),
> [StudyData] [xml] NOT NULL,
> [Details] [xml] NULL,
> [StudyIntegrityReasonEnum] [smallint] NOT NULL,
> [GroupID] [varchar] (64) NULL
> CONSTRAINT [PK_StudyIntegrityQueue] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> ) ON [QUEUES]
> GO

Command completed successfully.

> CREATE NONCLUSTERED INDEX [IX_StudyIntegrityQueue] ON [dbo].[StudyIntegrityQueue]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

>
> CREATE NONCLUSTERED INDEX [IX_StudyIntegrityQueue_GroupID] ON [dbo].[StudyIntegrityQueue]
> (
> [GroupID] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[StudyIntegrityQueueUid] Script Date: 04/30/2009 19:55:24 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> CREATE TABLE [dbo].[StudyIntegrityQueueUid](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyIntegrityQueueUid_GUID] DEFAULT (newid()),
> [StudyIntegrityQueueGUID] [uniqueidentifier] NOT NULL,
> [SeriesDescription] [nvarchar](64) NULL,
> [SeriesInstanceUid] [varchar](64) NOT NULL,
> [SopInstanceUid] [varchar](64) NOT NULL,
> [RelativePath] [varchar] (256) NULL,
> CONSTRAINT [PK_StudyIntegrityQueueUid] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (IGNORE_DUP_KEY = OFF) ON [INDEXES]
> ) ON [QUEUES]
>
> GO

Command completed successfully.

>
> ALTER TABLE [dbo].[StudyIntegrityQueueUid] WITH CHECK ADD CONSTRAINT [FK_StudyIntegrityQueueUid_StudyIntegrityQueue] FOREIGN KEY([StudyIntegrityQueueGUID])
> REFERENCES [dbo].[StudyIntegrityQueue] ([GUID])
>
> /****** Object: Index [IX_StudyIntegrityQueueUid] Script Date: 05/01/2009 15:48:04 ******/
> CREATE CLUSTERED INDEX [IX_StudyIntegrityQueueUid] ON [dbo].[StudyIntegrityQueueUid]
> (
> [StudyIntegrityQueueGUID] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [QUEUES]
>
> GO

Command completed successfully.

> /****** Object: Index [IX_StudyIntegrityQueueUid_SeriesInstanceUid] Script Date: 05/01/2009 15:49:26 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyIntegrityQueueUid_SeriesInstanceUid] ON [dbo].[StudyIntegrityQueueUid]
> (
> [SeriesInstanceUid] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[StudyHistory] Script Date: 01/23/2009 16:59:12 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> CREATE TABLE [dbo].[StudyHistory](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyHistory_GUID] DEFAULT (newid()),
> [InsertTime] [datetime] NOT NULL CONSTRAINT [DF_StudyHistory_InsertTime] DEFAULT (getdate()),
> [StudyStorageGUID] [uniqueidentifier] NOT NULL,
> [DestStudyStorageGUID] [uniqueidentifier] NULL,
> [StudyHistoryTypeEnum] [smallint] NOT NULL,
> [StudyData] [xml] NOT NULL,
> [ChangeDescription] [xml] NULL,
> CONSTRAINT [PK_StudyHistory] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> ) ON [PRIMARY]
> GO

Command completed successfully.

> CREATE CLUSTERED INDEX [IX_StudyHistory] ON [dbo].[StudyHistory]
> (
> [StudyStorageGUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
> GO

Command completed successfully.

>
>
> /****** Object: Table [dbo].[StudyHistoryTypeEnum] Script Date: 09/26/2008 23:49:11 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[StudyHistoryTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[StudyHistoryTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_StudyHistoryTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_StudyHistoryTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[StudyDeleteRecord] Script Date: 12/16/2008 15:06:40 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> CREATE TABLE [dbo].[StudyDeleteRecord](
> [GUID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_StudyDeleteRecord_GUID] DEFAULT (newid()),
> [Timestamp] [datetime] NOT NULL,
> [Reason] [nvarchar](1024) NULL,
> [ServerPartitionAE] [varchar](64) NOT NULL,
> [FilesystemGUID] [uniqueidentifier] NOT NULL,
> [BackupPath] [nvarchar](256) NULL,
> [StudyInstanceUid] [varchar](64) NOT NULL,
> [AccessionNumber] [varchar](64) NULL,
> [PatientId] [varchar](64) NULL,
> [PatientsName] [nvarchar](256) NULL,
> [StudyId] [nvarchar](64) NULL,
> [StudyDescription] [nvarchar](64) NULL,
> [StudyDate] [varchar](16) NULL,
> [StudyTime] [varchar](32) NULL,
> [ArchiveInfo] [xml] NULL,
> [ExtendedInfo] [nvarchar](max) NULL,
> CONSTRAINT [PK_StudyDeleteRecord] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
> ) ON [PRIMARY]
>
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

>
>
> /****** Object: Table [dbo].[ApplicationLog] Script Date: 01/12/2009 15:36:19 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ApplicationLog]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[ApplicationLog](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ApplicationLog_GUID] DEFAULT (newid()),
> [Host] [varchar](50) NOT NULL,
> [Timestamp] [datetime] NOT NULL,
> [LogLevel] [varchar](5) NOT NULL,
> [Thread] [varchar](50) NOT NULL,
> [Message] [varchar](3000) NOT NULL,
> [Exception] [varchar](2000) NULL,
> CONSTRAINT [PK_ApplicationLog] PRIMARY KEY NONCLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> ) ON [QUEUES]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[ApplicationLog]') AND name = N'IX_ApplicationLog')
> CREATE CLUSTERED INDEX [IX_ApplicationLog] ON [dbo].[ApplicationLog]
> (
> [Timestamp] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [QUEUES]
> GO

Command completed successfully.

>
> /****** Object: Table [dbo].[DatabaseVersion_] Script Date: 02/16/2009 15:36:52 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DatabaseVersion_]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[DatabaseVersion_](
> [Major_] [nvarchar](5) NOT NULL,
> [Minor_] [nvarchar](5) NOT NULL,
> [Build_] [nvarchar](5) NOT NULL,
> [Revision_] [nvarchar](5) NOT NULL
> ) ON [PRIMARY]
> END
> GO

Command completed successfully.

>
>
>
> /****** Object: Index [IX_StudyDeleteRecord] Script Date: 11/28/2008 13:26:28 ******/
> CREATE UNIQUE NONCLUSTERED INDEX [IX_StudyDeleteRecord] ON [dbo].[StudyDeleteRecord]
> (
> [GUID] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Index [IX_StudyDeleteRecord_AcccessionNumber] Script Date: 11/28/2008 13:26:56 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_AcccessionNumber] ON [dbo].[StudyDeleteRecord]
> (
> [AccessionNumber] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
> GO

Command completed successfully.

> /****** Object: Index [IX_StudyDeleteRecord_PatientId] Script Date: 11/28/2008 13:27:11 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_PatientId] ON [dbo].[StudyDeleteRecord]
> (
> [PatientId] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
> GO

Command completed successfully.

> /****** Object: Index [IX_StudyDeleteRecord_PatientsName] Script Date: 11/28/2008 13:27:19 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_PatientsName] ON [dbo].[StudyDeleteRecord]
> (
> [PatientsName] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Index [IX_StudyDeleteRecord_ServerPartition] Script Date: 12/04/2008 14:54:55 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_ServerPartition] ON [dbo].[StudyDeleteRecord]
> (
> [ServerPartitionAE] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Index [IX_StudyDeleteRecord_StudyInstanceUid] Script Date: 11/28/2008 13:27:35 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_StudyInstanceUid] ON [dbo].[StudyDeleteRecord]
> (
> [StudyInstanceUid] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
> GO

Command completed successfully.

> /****** Object: Index [IX_StudyDeleteRecord_StudyInstanceUidServerPartition] Script Date: 12/04/2008 14:55:57 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_StudyInstanceUidServerPartition] ON [dbo].[StudyDeleteRecord]
> (
> [StudyInstanceUid] ASC,
> [ServerPartitionAE] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

> /****** Object: Index [IX_StudyDeleteRecord_Timestamp] Script Date: 11/28/2008 13:27:49 ******/
> CREATE NONCLUSTERED INDEX [IX_StudyDeleteRecord_Timestamp] ON [dbo].[StudyDeleteRecord]
> (
> [Timestamp] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
>
> GO

Command completed successfully.

> /****** Object: Table [dbo].[CannedText] Script Date: 02/23/2009 20:02:56 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> CREATE TABLE [dbo].[CannedText](
> [GUID] [uniqueidentifier] NOT NULL,
> [Label] [nvarchar](50) NOT NULL,
> [Category] [nvarchar](255) NOT NULL,
> [Text] [nvarchar](1024) NOT NULL,
> CONSTRAINT [PK_CannedText] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
> ) ON [PRIMARY]
>
>
> /****** Object: Index [IX_CannedText_Category] Script Date: 02/23/2009 20:04:17 ******/
> CREATE NONCLUSTERED INDEX [IX_CannedText_Category] ON [dbo].[CannedText]
> (
> [Category] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
>
> GO

Command completed successfully.

> /****** Object: Index [IX_CannedText] Script Date: 01/28/2010 15:04:33 ******/
> CREATE UNIQUE NONCLUSTERED INDEX [IX_CannedText] ON [dbo].[CannedText]
> (
> [Label] ASC,
> [Category] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
>
> /****** Object: Table [dbo].[DeviceTypeEnum] Script Date: 01/09/2008 15:03:36 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> SET ANSI_PADDING ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeviceTypeEnum]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[DeviceTypeEnum](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_DeviceTypeEnum_GUID] DEFAULT (newid()),
> [Enum] [smallint] NOT NULL,
> [Lookup] [varchar](32) NOT NULL,
> [Description] [nvarchar](32) NOT NULL,
> [LongDescription] [nvarchar](512) NOT NULL,
> CONSTRAINT [PK_DeviceTypeEnum] PRIMARY KEY CLUSTERED
> (
> [Enum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> SET ANSI_PADDING OFF
> GO

Command completed successfully.

>
>
> /****** Object: Table [dbo].[WorkQueueTypeProperties] Script Date: 09/14/2009 21:30:31 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]') AND type in (N'U'))
> BEGIN
> CREATE TABLE [dbo].[WorkQueueTypeProperties](
> [GUID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
> [WorkQueueTypeEnum] [smallint] NOT NULL,
> [WorkQueuePriorityEnum] [smallint] NOT NULL,
> [MemoryLimited] [bit] NOT NULL,
> [AlertFailedWorkQueue] [bit] NOT NULL,
> [MaxFailureCount] [int] NOT NULL,
> [ProcessDelaySeconds] [int] NOT NULL,
> [FailureDelaySeconds] [int] NOT NULL,
> [DeleteDelaySeconds] [int] NOT NULL,
> [PostponeDelaySeconds] [int] NOT NULL,
> [ExpireDelaySeconds] [int] NOT NULL,
> [MaxBatchSize] [int] NOT NULL,
> [QueueStudyStateEnum] [smallint] NULL,
> [QueueStudyStateOrder] [smallint] NULL,
> [ReadLock] [bit] NOT NULL,
> [WriteLock] [bit] NOT NULL,
> CONSTRAINT [PK_WorkQueueTypeProperties] PRIMARY KEY CLUSTERED
> (
> [GUID] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [STATIC]
> ) ON [STATIC]
> END
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]') AND name = N'IX_WorkQueueTypeProperties')
> CREATE UNIQUE NONCLUSTERED INDEX [IX_WorkQueueTypeProperties] ON [dbo].[WorkQueueTypeProperties]
> (
> [WorkQueueTypeEnum] ASC
> )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEXES]
> GO

Command completed successfully.

> /****** Object: Default [DF_WorkQueueTypeProperties_GUID] Script Date: 09/14/2009 21:30:31 ******/
> IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_WorkQueueTypeProperties_GUID]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> Begin
> IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_WorkQueueTypeProperties_GUID]') AND type = 'D')
> BEGIN
> ALTER TABLE [dbo].[WorkQueueTypeProperties] ADD CONSTRAINT [DF_WorkQueueTypeProperties_GUID] DEFAULT (newid()) FOR [GUID]
> END
> End
>
> GO

Command completed successfully.

> /****** Object: Index [IX_WorkQueueTypeProperties_QueueStudyStateEnum] Script Date: 10/26/2009 16:49:07 ******/
> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]') AND name = N'IX_WorkQueueTypeProperties_QueueStudyStateEnum')
> CREATE NONCLUSTERED INDEX [IX_WorkQueueTypeProperties_QueueStudyStateEnum] ON [dbo].[WorkQueueTypeProperties]
> (
> [QueueStudyStateEnum] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
> GO

Command completed successfully.

>
> /****** Object: Index [IX_WorkQueueTypeProperties_QueueStudyStateOrder] Script Date: 10/26/2009 16:50:02 ******/
> IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]') AND name = N'IX_WorkQueueTypeProperties_QueueStudyStateOrder')
> CREATE NONCLUSTERED INDEX [IX_WorkQueueTypeProperties_QueueStudyStateOrder] ON [dbo].[WorkQueueTypeProperties]
> (
> [QueueStudyStateOrder] ASC
> )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
>
> /****** Object: ForeignKey [FK_ArchiveQueue_ArchiveQueueStatusEnum] Script Date: 07/17/2008 00:49:15 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveQueue_ArchiveQueueStatusEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveQueue]'))
> ALTER TABLE [dbo].[ArchiveQueue] WITH CHECK ADD CONSTRAINT [FK_ArchiveQueue_ArchiveQueueStatusEnum] FOREIGN KEY([ArchiveQueueStatusEnum])
> REFERENCES [dbo].[ArchiveQueueStatusEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveQueue] CHECK CONSTRAINT [FK_ArchiveQueue_ArchiveQueueStatusEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ArchiveQueue_PartitionArchive] Script Date: 07/17/2008 00:49:15 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveQueue_PartitionArchive]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveQueue]'))
> ALTER TABLE [dbo].[ArchiveQueue] WITH CHECK ADD CONSTRAINT [FK_ArchiveQueue_PartitionArchive] FOREIGN KEY([PartitionArchiveGUID])
> REFERENCES [dbo].[PartitionArchive] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveQueue] CHECK CONSTRAINT [FK_ArchiveQueue_PartitionArchive]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ArchiveQueue_StudyStorage] Script Date: 07/17/2008 00:49:15 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveQueue_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveQueue]'))
> ALTER TABLE [dbo].[ArchiveQueue] WITH CHECK ADD CONSTRAINT [FK_ArchiveQueue_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveQueue] CHECK CONSTRAINT [FK_ArchiveQueue_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ArchiveStudyStorage_PartitionArchive] Script Date: 07/17/2008 00:49:18 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveStudyStorage_PartitionArchive]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveStudyStorage]'))
> ALTER TABLE [dbo].[ArchiveStudyStorage] WITH CHECK ADD CONSTRAINT [FK_ArchiveStudyStorage_PartitionArchive] FOREIGN KEY([PartitionArchiveGUID])
> REFERENCES [dbo].[PartitionArchive] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveStudyStorage] CHECK CONSTRAINT [FK_ArchiveStudyStorage_PartitionArchive]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ArchiveStudyStorage_ServerTransferSyntax] Script Date: 07/17/2008 00:49:18 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveStudyStorage_ServerTransferSyntax]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveStudyStorage]'))
> ALTER TABLE [dbo].[ArchiveStudyStorage] WITH CHECK ADD CONSTRAINT [FK_ArchiveStudyStorage_ServerTransferSyntax] FOREIGN KEY([ServerTransferSyntaxGUID])
> REFERENCES [dbo].[ServerTransferSyntax] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveStudyStorage] CHECK CONSTRAINT [FK_ArchiveStudyStorage_ServerTransferSyntax]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ArchiveStudyStorage_StudyStorage] Script Date: 07/17/2008 00:49:18 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ArchiveStudyStorage_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[ArchiveStudyStorage]'))
> ALTER TABLE [dbo].[ArchiveStudyStorage] WITH CHECK ADD CONSTRAINT [FK_ArchiveStudyStorage_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ArchiveStudyStorage] CHECK CONSTRAINT [FK_ArchiveStudyStorage_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Device_ServerPartition] Script Date: 07/17/2008 00:49:23 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Device_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[Device]'))
> ALTER TABLE [dbo].[Device] WITH CHECK ADD CONSTRAINT [FK_Device_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Device] CHECK CONSTRAINT [FK_Device_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Device_DeviceTypeEnum] Script Date: 09/08/2009 11:45:26 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Device_DeviceTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[Device]'))
> ALTER TABLE [dbo].[Device] WITH CHECK ADD CONSTRAINT [FK_Device_DeviceTypeEnum] FOREIGN KEY([DeviceTypeEnum])
> REFERENCES [dbo].[DeviceTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Device] CHECK CONSTRAINT [FK_Device_DeviceTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_DevicePreferredTransferSyntax_Device] Script Date: 07/17/2008 00:49:25 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_DevicePreferredTransferSyntax_Device]') AND parent_object_id = OBJECT_ID(N'[dbo].[DevicePreferredTransferSyntax]'))
> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] WITH CHECK ADD CONSTRAINT [FK_DevicePreferredTransferSyntax_Device] FOREIGN KEY([DeviceGUID])
> REFERENCES [dbo].[Device] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] CHECK CONSTRAINT [FK_DevicePreferredTransferSyntax_Device]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_DevicePreferredTransferSyntax_ServerSopClass] Script Date: 07/17/2008 00:49:25 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_DevicePreferredTransferSyntax_ServerSopClass]') AND parent_object_id = OBJECT_ID(N'[dbo].[DevicePreferredTransferSyntax]'))
> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] WITH CHECK ADD CONSTRAINT [FK_DevicePreferredTransferSyntax_ServerSopClass] FOREIGN KEY([ServerSopClassGUID])
> REFERENCES [dbo].[ServerSopClass] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] CHECK CONSTRAINT [FK_DevicePreferredTransferSyntax_ServerSopClass]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_DevicePreferredTransferSyntax_ServerTransferSyntax] Script Date: 07/17/2008 00:49:25 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_DevicePreferredTransferSyntax_ServerTransferSyntax]') AND parent_object_id = OBJECT_ID(N'[dbo].[DevicePreferredTransferSyntax]'))
> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] WITH CHECK ADD CONSTRAINT [FK_DevicePreferredTransferSyntax_ServerTransferSyntax] FOREIGN KEY([ServerTransferSyntaxGUID])
> REFERENCES [dbo].[ServerTransferSyntax] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[DevicePreferredTransferSyntax] CHECK CONSTRAINT [FK_DevicePreferredTransferSyntax_ServerTransferSyntax]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Filesystem_FilesystemTierEnum] Script Date: 07/17/2008 00:49:29 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Filesystem_FilesystemTierEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[Filesystem]'))
> ALTER TABLE [dbo].[Filesystem] WITH CHECK ADD CONSTRAINT [FK_Filesystem_FilesystemTierEnum] FOREIGN KEY([FilesystemTierEnum])
> REFERENCES [dbo].[FilesystemTierEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Filesystem] CHECK CONSTRAINT [FK_Filesystem_FilesystemTierEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemQueue_Filesystem] Script Date: 07/17/2008 00:49:31 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemQueue_Filesystem]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]'))
> ALTER TABLE [dbo].[FilesystemQueue] WITH CHECK ADD CONSTRAINT [FK_FilesystemQueue_Filesystem] FOREIGN KEY([FilesystemGUID])
> REFERENCES [dbo].[Filesystem] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemQueue] CHECK CONSTRAINT [FK_FilesystemQueue_Filesystem]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemQueue_FilesystemQueueTypeEnum] Script Date: 07/17/2008 00:49:31 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemQueue_FilesystemQueueTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]'))
> ALTER TABLE [dbo].[FilesystemQueue] WITH CHECK ADD CONSTRAINT [FK_FilesystemQueue_FilesystemQueueTypeEnum] FOREIGN KEY([FilesystemQueueTypeEnum])
> REFERENCES [dbo].[FilesystemQueueTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemQueue] CHECK CONSTRAINT [FK_FilesystemQueue_FilesystemQueueTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemQueue_StudyStorage] Script Date: 07/17/2008 00:49:31 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemQueue_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemQueue]'))
> ALTER TABLE [dbo].[FilesystemQueue] WITH CHECK ADD CONSTRAINT [FK_FilesystemQueue_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemQueue] CHECK CONSTRAINT [FK_FilesystemQueue_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemStudyStorage_Filesystem] Script Date: 07/17/2008 00:49:34 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemStudyStorage_Filesystem]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]'))
> ALTER TABLE [dbo].[FilesystemStudyStorage] WITH CHECK ADD CONSTRAINT [FK_FilesystemStudyStorage_Filesystem] FOREIGN KEY([FilesystemGUID])
> REFERENCES [dbo].[Filesystem] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemStudyStorage] CHECK CONSTRAINT [FK_FilesystemStudyStorage_Filesystem]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemStudyStorage_ServerTransferSyntax] Script Date: 07/17/2008 00:49:34 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemStudyStorage_ServerTransferSyntax]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]'))
> ALTER TABLE [dbo].[FilesystemStudyStorage] WITH CHECK ADD CONSTRAINT [FK_FilesystemStudyStorage_ServerTransferSyntax] FOREIGN KEY([ServerTransferSyntaxGUID])
> REFERENCES [dbo].[ServerTransferSyntax] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemStudyStorage] CHECK CONSTRAINT [FK_FilesystemStudyStorage_ServerTransferSyntax]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_FilesystemStudyStorage_StudyStorage] Script Date: 07/17/2008 00:49:34 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_FilesystemStudyStorage_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[FilesystemStudyStorage]'))
> ALTER TABLE [dbo].[FilesystemStudyStorage] WITH CHECK ADD CONSTRAINT [FK_FilesystemStudyStorage_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[FilesystemStudyStorage] CHECK CONSTRAINT [FK_FilesystemStudyStorage_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionArchive_ArchiveTypeEnum] Script Date: 07/17/2008 00:49:38 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionArchive_ArchiveTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionArchive]'))
> ALTER TABLE [dbo].[PartitionArchive] WITH CHECK ADD CONSTRAINT [FK_PartitionArchive_ArchiveTypeEnum] FOREIGN KEY([ArchiveTypeEnum])
> REFERENCES [dbo].[ArchiveTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionArchive] CHECK CONSTRAINT [FK_PartitionArchive_ArchiveTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionArchive_ServerPartition] Script Date: 07/17/2008 00:49:38 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionArchive_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionArchive]'))
> ALTER TABLE [dbo].[PartitionArchive] WITH CHECK ADD CONSTRAINT [FK_PartitionArchive_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionArchive] CHECK CONSTRAINT [FK_PartitionArchive_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionSopClass_ServerPartition] Script Date: 07/17/2008 00:49:39 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionSopClass_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionSopClass]'))
> ALTER TABLE [dbo].[PartitionSopClass] WITH CHECK ADD CONSTRAINT [FK_PartitionSopClass_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionSopClass] CHECK CONSTRAINT [FK_PartitionSopClass_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionSopClass_ServerSopClass] Script Date: 07/17/2008 00:49:39 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionSopClass_ServerSopClass]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionSopClass]'))
> ALTER TABLE [dbo].[PartitionSopClass] WITH CHECK ADD CONSTRAINT [FK_PartitionSopClass_ServerSopClass] FOREIGN KEY([ServerSopClassGUID])
> REFERENCES [dbo].[ServerSopClass] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionSopClass] CHECK CONSTRAINT [FK_PartitionSopClass_ServerSopClass]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionTransferSyntax_ServerPartition] Script Date: 07/17/2008 00:49:40 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionTransferSyntax_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionTransferSyntax]'))
> ALTER TABLE [dbo].[PartitionTransferSyntax] WITH CHECK ADD CONSTRAINT [FK_PartitionTransferSyntax_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionTransferSyntax] CHECK CONSTRAINT [FK_PartitionTransferSyntax_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_PartitionTransferSyntax_ServerTransferSyntax] Script Date: 07/17/2008 00:49:41 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PartitionTransferSyntax_ServerTransferSyntax]') AND parent_object_id = OBJECT_ID(N'[dbo].[PartitionTransferSyntax]'))
> ALTER TABLE [dbo].[PartitionTransferSyntax] WITH CHECK ADD CONSTRAINT [FK_PartitionTransferSyntax_ServerTransferSyntax] FOREIGN KEY([ServerTransferSyntaxGUID])
> REFERENCES [dbo].[ServerTransferSyntax] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[PartitionTransferSyntax] CHECK CONSTRAINT [FK_PartitionTransferSyntax_ServerTransferSyntax]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Patient_ServerPartition] Script Date: 07/17/2008 00:49:43 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Patient_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[Patient]'))
> ALTER TABLE [dbo].[Patient] WITH CHECK ADD CONSTRAINT [FK_Patient_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Patient] CHECK CONSTRAINT [FK_Patient_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_RequestAttribute_Series] Script Date: 07/17/2008 00:49:44 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_RequestAttribute_Series]') AND parent_object_id = OBJECT_ID(N'[dbo].[RequestAttributes]'))
> ALTER TABLE [dbo].[RequestAttributes] WITH CHECK ADD CONSTRAINT [FK_RequestAttribute_Series] FOREIGN KEY([SeriesGUID])
> REFERENCES [dbo].[Series] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[RequestAttributes] CHECK CONSTRAINT [FK_RequestAttribute_Series]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_RestoreQueue_ArchiveStudyStorage] Script Date: 07/17/2008 00:49:46 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_RestoreQueue_ArchiveStudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[RestoreQueue]'))
> ALTER TABLE [dbo].[RestoreQueue] WITH CHECK ADD CONSTRAINT [FK_RestoreQueue_ArchiveStudyStorage] FOREIGN KEY([ArchiveStudyStorageGUID])
> REFERENCES [dbo].[ArchiveStudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[RestoreQueue] CHECK CONSTRAINT [FK_RestoreQueue_ArchiveStudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_RestoreQueue_RestoreQueueStatusEnum] Script Date: 07/17/2008 00:49:46 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_RestoreQueue_RestoreQueueStatusEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[RestoreQueue]'))
> ALTER TABLE [dbo].[RestoreQueue] WITH CHECK ADD CONSTRAINT [FK_RestoreQueue_RestoreQueueStatusEnum] FOREIGN KEY([RestoreQueueStatusEnum])
> REFERENCES [dbo].[RestoreQueueStatusEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[RestoreQueue] CHECK CONSTRAINT [FK_RestoreQueue_RestoreQueueStatusEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_RestoreQueue_StudyStorage] Script Date: 07/17/2008 00:49:46 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_RestoreQueue_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[RestoreQueue]'))
> ALTER TABLE [dbo].[RestoreQueue] WITH CHECK ADD CONSTRAINT [FK_RestoreQueue_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[RestoreQueue] CHECK CONSTRAINT [FK_RestoreQueue_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Series_ServerPartition] Script Date: 07/17/2008 00:49:51 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Series_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[Series]'))
> ALTER TABLE [dbo].[Series] WITH CHECK ADD CONSTRAINT [FK_Series_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Series] CHECK CONSTRAINT [FK_Series_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Series_Study] Script Date: 07/17/2008 00:49:51 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Series_Study]') AND parent_object_id = OBJECT_ID(N'[dbo].[Series]'))
> ALTER TABLE [dbo].[Series] WITH CHECK ADD CONSTRAINT [FK_Series_Study] FOREIGN KEY([StudyGUID])
> REFERENCES [dbo].[Study] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Series] CHECK CONSTRAINT [FK_Series_Study]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServerPartition_DuplicateSopPolicyEnum] Script Date: 07/17/2008 00:49:54 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServerPartition_DuplicateSopPolicyEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServerPartition]'))
> ALTER TABLE [dbo].[ServerPartition] WITH CHECK ADD CONSTRAINT [FK_ServerPartition_DuplicateSopPolicyEnum] FOREIGN KEY([DuplicateSopPolicyEnum])
> REFERENCES [dbo].[DuplicateSopPolicyEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServerPartition] CHECK CONSTRAINT [FK_ServerPartition_DuplicateSopPolicyEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServerRule_ServerPartition] Script Date: 07/17/2008 00:49:57 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServerRule_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServerRule]'))
> ALTER TABLE [dbo].[ServerRule] WITH CHECK ADD CONSTRAINT [FK_ServerRule_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServerRule] CHECK CONSTRAINT [FK_ServerRule_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServerRule_ServerRuleApplyTimeEnum] Script Date: 07/17/2008 00:49:57 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServerRule_ServerRuleApplyTimeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServerRule]'))
> ALTER TABLE [dbo].[ServerRule] WITH CHECK ADD CONSTRAINT [FK_ServerRule_ServerRuleApplyTimeEnum] FOREIGN KEY([ServerRuleApplyTimeEnum])
> REFERENCES [dbo].[ServerRuleApplyTimeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServerRule] CHECK CONSTRAINT [FK_ServerRule_ServerRuleApplyTimeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServerRule_ServerRuleTypeEnum] Script Date: 07/17/2008 00:49:57 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServerRule_ServerRuleTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServerRule]'))
> ALTER TABLE [dbo].[ServerRule] WITH CHECK ADD CONSTRAINT [FK_ServerRule_ServerRuleTypeEnum] FOREIGN KEY([ServerRuleTypeEnum])
> REFERENCES [dbo].[ServerRuleTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServerRule] CHECK CONSTRAINT [FK_ServerRule_ServerRuleTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServiceLock_Filesystem] Script Date: 07/17/2008 00:50:05 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServiceLock_Filesystem]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServiceLock]'))
> ALTER TABLE [dbo].[ServiceLock] WITH CHECK ADD CONSTRAINT [FK_ServiceLock_Filesystem] FOREIGN KEY([FilesystemGUID])
> REFERENCES [dbo].[Filesystem] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServiceLock] CHECK CONSTRAINT [FK_ServiceLock_Filesystem]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_ServiceLock_ServiceLockTypeEnum] Script Date: 07/17/2008 00:50:05 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ServiceLock_ServiceLockTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[ServiceLock]'))
> ALTER TABLE [dbo].[ServiceLock] WITH CHECK ADD CONSTRAINT [FK_ServiceLock_ServiceLockTypeEnum] FOREIGN KEY([ServiceLockTypeEnum])
> REFERENCES [dbo].[ServiceLockTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[ServiceLock] CHECK CONSTRAINT [FK_ServiceLock_ServiceLockTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Study_Patient] Script Date: 07/17/2008 00:50:12 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Study_Patient]') AND parent_object_id = OBJECT_ID(N'[dbo].[Study]'))
> ALTER TABLE [dbo].[Study] WITH CHECK ADD CONSTRAINT [FK_Study_Patient] FOREIGN KEY([PatientGUID])
> REFERENCES [dbo].[Patient] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Study] CHECK CONSTRAINT [FK_Study_Patient]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Study_ServerPartition] Script Date: 07/17/2008 00:50:12 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Study_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[Study]'))
> ALTER TABLE [dbo].[Study] WITH CHECK ADD CONSTRAINT [FK_Study_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Study] CHECK CONSTRAINT [FK_Study_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_Study_StudyStorage] Script Date: 05/08/2009 14:29:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Study_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[Study]'))
> ALTER TABLE [dbo].[Study] WITH CHECK ADD CONSTRAINT [FK_Study_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[Study] CHECK CONSTRAINT [FK_Study_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_StudyStorage_QueueStudyStateEnum] Script Date: 10/22/2008 16:46:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyStorage_QueueStudyStateEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyStorage]'))
> ALTER TABLE [dbo].[StudyStorage] WITH CHECK ADD CONSTRAINT [FK_StudyStorage_QueueStudyStateEnum] FOREIGN KEY([QueueStudyStateEnum])
> REFERENCES [dbo].[QueueStudyStateEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[StudyStorage] CHECK CONSTRAINT [FK_StudyStorage_QueueStudyStateEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_StudyStorage_ServerPartition] Script Date: 10/22/2008 16:46:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyStorage_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyStorage]'))
> ALTER TABLE [dbo].[StudyStorage] WITH CHECK ADD CONSTRAINT [FK_StudyStorage_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[StudyStorage] CHECK CONSTRAINT [FK_StudyStorage_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_StudyStorage_StudyStatusEnum] Script Date: 10/22/2008 16:46:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyStorage_StudyStatusEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyStorage]'))
> ALTER TABLE [dbo].[StudyStorage] WITH CHECK ADD CONSTRAINT [FK_StudyStorage_StudyStatusEnum] FOREIGN KEY([StudyStatusEnum])
> REFERENCES [dbo].[StudyStatusEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[StudyStorage] CHECK CONSTRAINT [FK_StudyStorage_StudyStatusEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueue_Device] Script Date: 07/17/2008 00:50:20 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_Device]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_Device] FOREIGN KEY([DeviceGUID])
> REFERENCES [dbo].[Device] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_Device]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueue_ServerPartition] Script Date: 07/17/2008 00:50:20 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_ServerPartition]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueue_StudyStorage] Script Date: 07/17/2008 00:50:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_StudyStorage]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueue_WorkQueuePriorityEnum] Script Date: 07/17/2008 00:50:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_WorkQueuePriorityEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_WorkQueuePriorityEnum] FOREIGN KEY([WorkQueuePriorityEnum])
> REFERENCES [dbo].[WorkQueuePriorityEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_WorkQueuePriorityEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueue_WorkQueueStatusEnum] Script Date: 07/17/2008 00:50:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_WorkQueueStatusEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_WorkQueueStatusEnum] FOREIGN KEY([WorkQueueStatusEnum])
> REFERENCES [dbo].[WorkQueueStatusEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_WorkQueueStatusEnum]
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_WorkQueue_StudyHistory] Script Date: 09/08/2008 11:50:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_StudyHistory]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_StudyHistory] FOREIGN KEY([StudyHistoryGUID])
> REFERENCES [dbo].[StudyHistory] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_WorkQueue_WorkQueueTypeEnum] Script Date: 07/17/2008 00:50:21 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueue_WorkQueueTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueue]'))
> ALTER TABLE [dbo].[WorkQueue] WITH CHECK ADD CONSTRAINT [FK_WorkQueue_WorkQueueTypeEnum] FOREIGN KEY([WorkQueueTypeEnum])
> REFERENCES [dbo].[WorkQueueTypeEnum] ([Enum])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueue] CHECK CONSTRAINT [FK_WorkQueue_WorkQueueTypeEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueueUid_WorkQueue] Script Date: 07/17/2008 00:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueUid_WorkQueue]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueUid]'))
> ALTER TABLE [dbo].[WorkQueueUid] WITH CHECK ADD CONSTRAINT [FK_WorkQueueUid_WorkQueue] FOREIGN KEY([WorkQueueGUID])
> REFERENCES [dbo].[WorkQueue] ([GUID])
> GO

Command completed successfully.

> ALTER TABLE [dbo].[WorkQueueUid] CHECK CONSTRAINT [FK_WorkQueueUid_WorkQueue]
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_Alert_AlertCategoryEnum] Script Date: 07/24/2008 00:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Alert_AlertCategoryEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[Alert]'))
> ALTER TABLE [dbo].[Alert] WITH CHECK ADD CONSTRAINT [FK_Alert_AlertCategoryEnum] FOREIGN KEY([AlertCategoryEnum])
> REFERENCES [dbo].[AlertCategoryEnum] ([Enum])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_Alert_AlertLevelEnum] Script Date: 07/24/2008 00:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Alert_AlertLevelEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[Alert]'))
> ALTER TABLE [dbo].[Alert] WITH CHECK ADD CONSTRAINT [FK_Alert_AlertLevelEnum] FOREIGN KEY([AlertLevelEnum])
> REFERENCES [dbo].[AlertLevelEnum] ([Enum])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyIntegrityQueue_ServerPartition] Script Date: 09/05/2008 11:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyIntegrityQueue_ServerPartition]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyIntegrityQueue]'))
> ALTER TABLE [dbo].[StudyIntegrityQueue] WITH CHECK ADD CONSTRAINT [FK_StudyIntegrityQueue_ServerPartition] FOREIGN KEY([ServerPartitionGUID])
> REFERENCES [dbo].[ServerPartition] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyIntegrityQueue_StudyIntegrityReasonEnum] Script Date: 09/05/2008 11:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyIntegrityQueue_StudyIntegrityReasonEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyIntegrityQueue]'))
> ALTER TABLE [dbo].[StudyIntegrityQueue] WITH CHECK ADD CONSTRAINT [FK_StudyIntegrityQueue_StudyIntegrityReasonEnum] FOREIGN KEY([StudyIntegrityReasonEnum])
> REFERENCES [dbo].[StudyIntegrityReasonEnum] ([Enum])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyIntegrityQueue_StudyStorage] Script Date: 09/08/2008 11:50:28 ******/
> ALTER TABLE [dbo].[StudyIntegrityQueue] WITH CHECK ADD CONSTRAINT [FK_StudyIntegrityQueue_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyIntegrityQueueUid_StudyIntegrityQueue] Script Date: 09/05/2008 11:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyIntegrityQueueUid_StudyIntegrityQueue]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyIntegrityQueueUid]'))
> ALTER TABLE [dbo].[StudyIntegrityQueueUid] WITH CHECK ADD CONSTRAINT [FK_StudyIntegrityQueueUid_StudyIntegrityQueue] FOREIGN KEY([StudyIntegrityQueueGUID])
> REFERENCES [dbo].[StudyIntegrityQueue] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyHistory_StudyStorage] Script Date: 09/05/2008 11:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyHistory_StudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyHistory]'))
> ALTER TABLE [dbo].[StudyHistory] WITH CHECK ADD CONSTRAINT [FK_StudyHistory_StudyStorage] FOREIGN KEY([StudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyHistory_StudyStorage] Script Date: 09/26/2008 16:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyHistory_DestStudyStorage]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyHistory]'))
> ALTER TABLE [dbo].[StudyHistory] WITH CHECK ADD CONSTRAINT [FK_StudyHistory_DestStudyStorage] FOREIGN KEY([DestStudyStorageGUID])
> REFERENCES [dbo].[StudyStorage] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyHistory_StudyStorage] Script Date: 09/26/2008 16:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyHistory_StudyHistoryTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyHistory]'))
> ALTER TABLE [dbo].[StudyHistory] WITH CHECK ADD CONSTRAINT [FK_StudyHistory_StudyHistoryTypeEnum] FOREIGN KEY([StudyHistoryTypeEnum])
> REFERENCES [dbo].[StudyHistoryTypeEnum] ([Enum])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_StudyDeleteRecord_Filesystem] Script Date: 11/30/2008 16:50:28 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudyDeleteRecord_Filesystem]') AND parent_object_id = OBJECT_ID(N'[dbo].[StudyDeleteRecord]'))
> ALTER TABLE [dbo].[StudyDeleteRecord] WITH CHECK ADD CONSTRAINT [FK_StudyDeleteRecord_Filesystem] FOREIGN KEY([FilesystemGUID])
> REFERENCES [dbo].[Filesystem] ([GUID])
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_WorkQueueTypeProperties_WorkQueuePriorityEnum] Script Date: 09/14/2009 21:30:31 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueTypeProperties_WorkQueuePriorityEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> ALTER TABLE [dbo].[WorkQueueTypeProperties] WITH CHECK ADD CONSTRAINT [FK_WorkQueueTypeProperties_WorkQueuePriorityEnum] FOREIGN KEY([WorkQueuePriorityEnum])
> REFERENCES [dbo].[WorkQueuePriorityEnum] ([Enum])
> GO

Command completed successfully.

> IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueTypeProperties_WorkQueuePriorityEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> ALTER TABLE [dbo].[WorkQueueTypeProperties] CHECK CONSTRAINT [FK_WorkQueueTypeProperties_WorkQueuePriorityEnum]
> GO

Command completed successfully.

> /****** Object: ForeignKey [FK_WorkQueueTypeProperties_WorkQueueTypeEnum] Script Date: 09/14/2009 21:30:31 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueTypeProperties_WorkQueueTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> ALTER TABLE [dbo].[WorkQueueTypeProperties] WITH CHECK ADD CONSTRAINT [FK_WorkQueueTypeProperties_WorkQueueTypeEnum] FOREIGN KEY([WorkQueueTypeEnum])
> REFERENCES [dbo].[WorkQueueTypeEnum] ([Enum])
> GO

Command completed successfully.

> IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueTypeProperties_WorkQueueTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> ALTER TABLE [dbo].[WorkQueueTypeProperties] CHECK CONSTRAINT [FK_WorkQueueTypeProperties_WorkQueueTypeEnum]
> GO

Command completed successfully.

>
> /****** Object: ForeignKey [FK_WorkQueueTypeProperties_QueueStudyStateEnum] Script Date: 10/26/2009 16:30:20 ******/
> IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_WorkQueueTypeProperties_WorkQueueTypeEnum]') AND parent_object_id = OBJECT_ID(N'[dbo].[WorkQueueTypeProperties]'))
> ALTER TABLE [dbo].[WorkQueueTypeProperties] WITH CHECK ADD CONSTRAINT [FK_WorkQueueTypeProperties_QueueStudyStateEnum] FOREIGN KEY([QueueStudyStateEnum])
> REFERENCES [dbo].[QueueStudyStateEnum] ([Enum])
Playback completed for command file 'ImageServerTables.sql'.
Inserting default data...

> -- WorkQueueTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'StudyProcess','Process Study','Processing of a new incoming study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'AutoRoute','Auto Route','DICOM Auto-route request.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'DeleteStudy','Delete Study','Automatic deletion of a Study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'WebDeleteStudy','Web Delete Study','Manual study delete via the Web UI.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'WebMoveStudy','Web Move Study','Manual DICOM move of a study via the Web UI.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),105,'WebEditStudy','Web Edit Study','Manual study edit via the Web UI.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),106,'CleanupStudy','Cleanup Study','Cleanup all unprocessed or failed instances within a study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),107,'CompressStudy','Compress Study','Compress a study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),108,'MigrateStudy','Study Tier Migration','Migrate studies between tiers.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),109,'PurgeStudy','Purge Study','Purge archived study and place offline.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),110,'ReprocessStudy','Reprocess Study','Reprocess an entire study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),111,'ReconcileStudy','Reconcile Study','Reconcile images.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),112,'ReconcileCleanup','Cleanup Failed Reconcile Study','Cleanup a failed Reconcile Study entry')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),113,'ReconcilePostProcess','Process Reconciled Images','Process reconciled images.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),114,'ProcessDuplicate','Process Duplicate','Process duplicate.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),115,'CleanupDuplicate','Cleanup Duplicate','Cleanup failed ProcessDuplicate entry.')
> GO

1 row(s) affected.

>
>
> -- WorkQueuePriorityEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].WorkQueuePriorityEnum
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),100,'Low','Low','Low priority')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].WorkQueuePriorityEnum
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),200,'Medium','Medium','Medium priority')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].WorkQueuePriorityEnum
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),300,'High','High','High priority')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].WorkQueuePriorityEnum
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),400,'Stat','Stat','Stat priority')
> GO

1 row(s) affected.

>
>
> -- WorkQueueTypeProperties inserts
> -- StudyProcess
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (100,300,1,1,3,10,180,60,120,120,3000,105,5,0,1)
> GO

1 row(s) affected.

> -- AutoRoute
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (101,300,1,1,3,10,180,60,120,120,-1,101,0,1,0)
> GO

1 row(s) affected.

> -- DeleteStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (102,200,0,1,3,30,180,60,120,15,-1,102,6,0,1)
> GO

1 row(s) affected.

> -- WebDeleteStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (103,200,0,1,3,30,180,60,120,15,-1,103,6,0,1)
> GO

1 row(s) affected.

>
> -- WebEditStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (105,200,1,1,3,30,180,60,120,15,-1,104,3,0,1)
> GO

1 row(s) affected.

>
> -- WebMoveStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (104,200,1,1,3,30,180,60,120,15,-1,101,0,1,0)
> GO

1 row(s) affected.

>
> -- CleanupStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (106,200,0,1,3,60,180,60,120,15,-1,109,2,0,1)
> GO

1 row(s) affected.

>
> -- CompressStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (107,200,1,1,2,30,180,60,120,120,300,110,2,0,1)
> GO

1 row(s) affected.

> -- MigrateStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (108,100,0,1,3,60,180,60,120,15,300,111,1,0,1)
> GO

1 row(s) affected.

> -- PurgeStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (109,200,0,1,3,60,180,60,120,15,300,106,1,0,1)
> GO

1 row(s) affected.

> -- ReprocessStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (110,200,1,1,3,60,180,60,120,15,300,112,10,0,1)
> GO

1 row(s) affected.

> -- ReconcileStudy
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (111,200,1,1,3,60,180,60,120,15,300,107,4,0,1)
> GO

1 row(s) affected.

> -- ReconcileCleanup
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (112,200,1,1,3,60,180,60,120,15,300,107,3,0,1)
> GO

1 row(s) affected.

> -- ReconcilePostProcess
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (113,200,1,1,3,60,180,60,120,15,300,107,4,0,1)
> GO

1 row(s) affected.

> -- ProcessDuplicate
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (114,200,1,1,3,60,180,60,120,120,300,107,4,0,1)
> GO

1 row(s) affected.

> -- CleanupDuplicate
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueTypeProperties]
> ([WorkQueueTypeEnum],[WorkQueuePriorityEnum],[MemoryLimited],[AlertFailedWorkQueue],
> [MaxFailureCount],[ProcessDelaySeconds],[FailureDelaySeconds],[DeleteDelaySeconds],
> [PostponeDelaySeconds],[ExpireDelaySeconds],[MaxBatchSize], [QueueStudyStateEnum], [QueueStudyStateOrder],
> [ReadLock],[WriteLock])
> VALUES
> (115,200,1,0,3,60,180,60,120,120,300,105,4,0,1)
> GO

1 row(s) affected.

>
>
>
> -- WorkQueueStatusEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueStatusEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'Idle','Idle','Waiting to expire or for more images')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueStatusEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),200,'Pending','Pending','Pending')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueStatusEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),201,'In Progress','In Progress','In Progress')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueStatusEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),202,'Completed','Completed','The Queue entry is completed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[WorkQueueStatusEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),203,'Failed','Failed','The Queue entry has failed.')
> GO

1 row(s) affected.

>
>
> -- FilesystemTierEnum
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemTierEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'Tier1','Tier 1','Filesystem Tier 1')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemTierEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'Tier2','Tier 2','Filesystem Tier 2')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemTierEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'Tier3','Tier 3','Filesystem Tier 3')
> GO

1 row(s) affected.

>
>
> -- ServerRuleTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'AutoRoute','Auto Routing','A DICOM auto-routing rule')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'StudyDelete','Study Delete','A rule to specify when to delete a study')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'Tier1Retention','Tier1 Retention','A rule to specify how long a study will be retained on Tier1')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'OnlineRetention','Online Retention','A rule to specify how long a study will be retained online')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'StudyCompress','Study Compress','A rule to specify when a study should be compressed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),105,'SopCompress','SOP Compress','A rule to specify when a SOP Instance should be compressed (during initial processing)')
> GO

1 row(s) affected.

>
>
> -- ServerRuleApplyTimeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'SopReceived','SOP Received','Apply rule when a SOP Instance has been received')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'SopProcessed','SOP Processed','Apply rule when a SOP Instance has been processed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'SeriesProcessed','Series Processed','Apply rule when a Series is initially processed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'StudyProcessed','Study Processed','Apply rule after a Study has been processed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'StudyArchived','Study Archived','Apply rule after a Study is archived')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),105,'StudyRestored','Study Restored','Apply rule after a Study has been restored')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRuleApplyTimeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),106,'SopEdited','SOP Edited','Apply rule when a SOP Instance is edited')
> GO

1 row(s) affected.

>
>
> -- FilesystemQueueTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'DeleteStudy','Delete Study','A record telling when a study is eligible for deletion. The study will be completely removed from the system.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'PurgeStudy','Purge Study','A record telling when a study can be purged from a filesystem. Only archived studies can be purged. The study will remain archived and can be restored.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'TierMigrate','Tier Migrate','A record telling when a study is eligible to be migrated to a lower tier filesystem.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'LosslessCompress','Lossless Compress','A record telling when a study is eligible for lossless compression and the type of compression to be performed on the study.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueueTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'LossyCompress','Lossy Compress','A record telling when a study is eligible for lossy compression and the type of compression to be performed.')
> GO

1 row(s) affected.

>
>
> -- ServiceLockTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'FilesystemDelete', 'Filesystem Watermark Check', 'This services checks if a filesystem is above its high watermark. If the filesystem is above the high watermark it migrates studies, deletes studies, and purges studies until the low watermark is reached.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'FilesystemReinventory','Filesystem Reinventory','This service re-inventories the studies stored on a filesystem. It scans the contents of the filesystem, and if a study is not already stored in the database, it will insert records to process the study into the WorkQueue.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'FilesystemStudyProcess','Filesystem Reapply Rules','This service scans the contents of a filesystem and reapplies Study Processing rules to all studies on the filesystem.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'FilesystemLosslessCompress','Filesystem Lossless Compress','This service checks for studies that are eligible to be lossless compressed on a filesystem. It works independently from the watermarks configured for the filesystem and will insert records into the WorkQueue to compress the studies as soon as they are eligible.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'FilesystemLossyCompress','Filesystem Lossy Compress','This service checks for studies that are eligible to be lossy compressed on a filesystem. It works independently from the watermarks configured for the filesystem and will insert records into the WorkQueue to compress the studies as soon as they are eligible.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),105,'FilesystemRebuildXml','Filesystem Rebuild Study XML','Rebuild the Study XML file for each study stored on the Filesystem')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),200,'ArchiveApplicationLog','Archive Application Log','This service removes application log entries from the database and archives them in zip files to a filesystem. When initially run, it selects a filesystem from the lowest filesystem tier configured on the system.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),201,'PurgeAlerts','Purge Alerts','This service by default removes Alert records from the database after a configurable time. If configured it can save the alerts in zip files on a filesystem. When initially run, it selects a filesystem from the lowest filesystem tier configured on the system to archive to.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServiceLockTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),202,'ImportFiles','Import Dicom Files','This service periodically scans the filesystem for dicom files and imports them into the system.')
> GO

1 row(s) affected.

>
> -- ServiceLock Entries not associated with a Filesystem
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),200,0,getdate(),null,1)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),201,0,getdate(),null,1)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),202,0,getdate(),null,1)
>
>
> -- ServerSopClass inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.1.1', '12-lead ECG Waveform Storage', 1)
> GO

4 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.1.3', 'Ambulatory ECG Waveform Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.11', 'Basic Text SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.4.1', 'Basic Voice Audio Waveform Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.11.4', 'Blending Softcopy Presentation State Storage SOP Class', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.3.1', 'Cardiac Electrophysiology Waveform Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.65', 'Chest CAD SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.11.2', 'Color Softcopy Presentation State Storage SOP Class', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.33', 'Comprehensive SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1', 'Computed Radiography Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.2', 'CT Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.66.3', 'Deformable Spatial Registration Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.3', 'Digital Intra-oral X-Ray Image Storage ? For Presentation', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.3.1', 'Digital Intra-oral X-Ray Image Storage ? For Processing', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.2', 'Digital Mammography X-Ray Image Storage ? For Presentation', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.2.1', 'Digital Mammography X-Ray Image Storage ? For Processing', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.1', 'Digital X-Ray Image Storage ? For Presentation', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.1.1.1', 'Digital X-Ray Image Storage ? For Processing', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.104.1', 'Encapsulated PDF Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.2.1', 'Enhanced CT Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.4.1', 'Enhanced MR Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.22', 'Enhanced SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.12.1.1', 'Enhanced XA Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.12.2.1', 'Enhanced XRF Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.1.2', 'General ECG Waveform Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.11.1', 'Grayscale Softcopy Presentation State Storage SOP Class', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.1.29', 'Hardcopy Grayscale Image Storage SOP Class (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.1.30', 'Hardcopy Color Image Storage SOP Class (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9.2.1', 'Hemodynamic Waveform Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.59', 'Key Object Selection Document', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.50', 'Mammography CAD SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.4', 'MR Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.4.2', 'MR Spectroscopy Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.7.2', 'Multi-frame Grayscale Byte Secondary Capture Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.7.3', 'Multi-frame Grayscale Word Secondary Capture Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.7.1', 'Multi-frame Single Bit Secondary Capture Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.7.4', 'Multi-frame 1 Color Secondary Capture Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.5', 'Nuclear Medicine Image Storage (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.20', 'Nuclear Medicine Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.5.2', 'Ophthalmic Photography 16 Bit Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.5.1', 'Ophthalmic Photography 8 Bit Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.128', 'Positron Emission Tomography Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.40', 'Procedure Log Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.11.3', 'Pseudo-Color Softcopy Presentation State Storage SOP Class', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.66', 'Raw Data Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.67', 'Real World Value Mapping Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.4', 'RT Beams Treatment Record Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.6', 'RT Brachy Treatment Record Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.2', 'RT Dose Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.1', 'RT Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.9', 'RT Ion Beams Treatment Record Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.8', 'RT Ion Plan Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.5', 'RT Plan Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.3', 'RT Structure Set Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.481.7', 'RT Treatment Summary Record Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.7', 'Secondary Capture Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.66.4', 'Segmentation Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.66.2', 'Spatial Fiducials Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.66.1', 'Spatial Registration Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.9', 'Standalone Curve Storage (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.10', 'Standalone Modality LUT Storage (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.8', 'Standalone Overlay Storage (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.129', 'Standalone PET Curve Storage (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.11', 'Standalone VOI LUT Storage (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.5.3', 'Stereometric Relationship Storage', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.1.27', 'Stored Print Storage SOP Class (Retired)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.6.1', 'Ultrasound Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.6', 'Ultrasound Image Storage (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.3.1', 'Ultrasound Multi-frame Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.3', 'Ultrasound Multi-frame Image Storage (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.1.1', 'Video Endoscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.2.1', 'Video Microscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.4.1', 'Video Photographic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.1', 'VL Endoscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.2', 'VL Microscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.4', 'VL Photographic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.3', 'VL Slide-Coordinates Microscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.12.3', 'X-Ray Angiographic Bi-Plane Image Storage (Retired)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.12.1', 'X-Ray Angiographic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.88.67', 'X-Ray Radiation Dose SR', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.12.2', 'X-Ray Radiofluoroscopic Image Storage', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.13.1.1', 'X-Ray 3D Angiographic Image Storage', 0);
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.13.1.2', 'X-Ray 3D Craniofacial Image Storage', 0);
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.77.1.5.4', 'Ophthalmic Tomography Image Storage', 0);
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerSopClass] ([GUID],[SopClassUid],[Description],[NonImage])
> VALUES (newid(), '1.2.840.10008.5.1.4.1.1.104.2', 'Encapsulated CDA Storage', 1);
> GO

1 row(s) affected.

>
>
> -- ServerTransferSyntax inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.2', 'Explicit VR Big Endian', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.1', 'Explicit VR Little Endian', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2', 'Implicit VR Little Endian: Default Transfer Syntax for DICOM', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.4.91', 'JPEG 2000 Image Compression', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.4.90', 'JPEG 2000 Image Compression (Lossless Only)', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.4.50', 'JPEG Baseline (Process 1)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.4.51', 'JPEG Extended (Process 2 & 4)', 0)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.4.70', 'JPEG Lossless, non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])', 1)
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerTransferSyntax] ([GUID],[Uid],[Description],[Lossless])
> VALUES (newid(), '1.2.840.10008.1.2.5', 'RLE Lossless', 1)
> GO

1 row(s) affected.

>
>
> -- [StudyStatusEnum] inserts
> INSERT INTO [ImageServerAlpha].[dbo].[StudyStatusEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),100,'Online','Online','Study is online')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyStatusEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),101,'OnlineLossless','Online (Lossless)','Study is online and lossless compressed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyStatusEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),102,'OnlineLossy','Online (Lossy)','Study is online and lossy compressed')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyStatusEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),103,'Nearline','Nearline','The study is nearline (in an automated library)')
> GO

1 row(s) affected.

>
>
> -- DuplicateSopPolicyEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].DuplicateSopPolicyEnum([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),100,'SendSuccess','Send Success','Send a DICOM C-STORE-RSP success status when receiving a duplicate, but ignore the file.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].DuplicateSopPolicyEnum([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),101,'RejectDuplicates','Reject Duplicates','Send a DICOM C-STORE-RSP reject status when receiving a duplicate.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].DuplicateSopPolicyEnum([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),103,'CompareDuplicates','Compare Duplicates','Process duplicate objects received and compare them to originals flagging any differences as a failure.')
> GO

1 row(s) affected.

>
> -- ArchiveQueueStatusEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ArchiveQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),100,'Pending','Pending','Pending')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ArchiveQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),101,'In Progress','In Progress','In Progress')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ArchiveQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),102,'Completed','Completed','The Queue entry is completed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[ArchiveQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),103,'Failed','Failed','The Queue entry has failed.')
> GO

1 row(s) affected.

>
>
> -- RestoreQueueStatusEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[RestoreQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),100,'Pending','Pending','Pending')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[RestoreQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),101,'In Progress','In Progress','In Progress')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[RestoreQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),102,'Completed','Completed','The Queue entry is completed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[RestoreQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),103,'Failed','Failed','The Queue entry has failed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[RestoreQueueStatusEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),104,'Restoring','Restoring','The Queue entry is waiting for the study to be restored by the archive.')
> GO

1 row(s) affected.

>
>
> -- ArchiveTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[ArchiveTypeEnum] ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES (newid(),100,'HsmArchive','HSM Archive','Hierarchical storage management archive such as StorageTek QFS')
> GO

1 row(s) affected.

>
> -- AlertCategoryEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[AlertCategoryEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1001,'System','System alert','System alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertCategoryEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1002,'Application','Application alert','Application alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertCategoryEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1003,'Security','Security alert','Security alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertCategoryEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1004,'User','User alert','User alert')
> GO

1 row(s) affected.

>
> -- AlertLevelEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[AlertLevelEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1001,'Informational','Informational','Informational alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertLevelEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1002,'Warning','Warning','Warning alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertLevelEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1003,'Error','Error','Error alert')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[AlertLevelEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),1004,'Critical','Critical','Critical alert')
> GO

1 row(s) affected.

>
> -- QueueStudyStateEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),101,'Idle','Idle','The study currently does not have any queue entries.')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),102,'DeleteScheduled','Delete Scheduled','The study is scheduled for deletion')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),103,'WebDeleteScheduled','Web Delete Scheduled','The study is scheduled for deletion.')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),104,'EditScheduled','Edit Scheduled','The study is scheduled for editing')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),105,'ProcessingScheduled','Processing','The study is being processed')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),106,'PurgeScheduled','Purge Scheduled','The study has been scheduled for purging')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),107,'ReconcileScheduled','Reconcile Scheduled','The study has been scheduled for reconciliation')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),108,'ReconcileRequired','Reconcile Required','The study needs to be reconciled')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),109,'CleanupScheduled','Cleanup Scheduled','A WorkQueue entry for the study needs to be cleaned up')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),110,'CompressScheduled','Compress Scheduled','The study is scheduled for compression')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),111,'MigrationScheduled','Migration Scheduled','The study is scheduled for migration to a new tier of storage')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),112,'ReprocessScheduled','Reprocess Scheduled','The study is scheduled for reprocessing')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),113,'RestoreScheduled','Restore Scheduled','The study is scheduled for restore')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[QueueStudyStateEnum]([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES(newid(),114,'ArchiveScheduled','Archive Scheduled','The study is scheduled for archiving')
> GO

1 row(s) affected.

>
> -- StudyIntegrityReasonEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[StudyIntegrityReasonEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'InconsistentData','Inconsistent Data','Images must be reconciled because of inconsistent data.')
> GO

1 row(s) affected.

>
> -- StudyIntegrityReasonEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[StudyIntegrityReasonEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'Duplicate','Duplicate','Duplicates were received and need to be reconciled.')
> GO

1 row(s) affected.

>
> -- StudyHistoryTypeEnum inserts
> INSERT INTO [ImageServerAlpha].[dbo].[StudyHistoryTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'StudyReconciled','Study was reconciled','Demographics in the orginal images were modified to match against another study on the server.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyHistoryTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),200,'WebEdited','Web GUI Edited','Study was edited via the Web GUI')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyHistoryTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),201,'Duplicate','Duplicate Processsed','Duplicate was received and processed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyHistoryTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),202,'Reprocessed','Study was reprocessed','Study was reprocessed.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[StudyHistoryTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),203,'SeriesDeleted','One or more series was deleted','One or more series was deleted manually.')
> GO

1 row(s) affected.

>
> -- Canned Text
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Corrupted study', 'DeleteStudyReason', 'Study is corrupted.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Invalid data', 'DeleteStudyReason', 'Study contains some invalid data.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Corrupted series', 'DeleteSeriesReason', 'Series is corrupted.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Invalid series data', 'DeleteSeriesReason', 'Series contains some invalid data.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Data is incorrect', 'EditStudyReason', 'Data is incorrect.')
> GO

1 row(s) affected.

>
> INSERT INTO [ImageServerAlpha].[dbo].[CannedText]([GUID],[Label],[Category],[Text])
> VALUES(newid(), 'Data is missing', 'EditStudyReason', 'Data is missing.')
> GO

1 row(s) affected.

>
> -- Device Types
> INSERT INTO [ImageServerAlpha].[dbo].[DeviceTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),100,'Workstation','Workstation','Workstation')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[DeviceTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),101,'Modality','Modality','Modality')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[DeviceTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),102,'Server','Server','Server')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[DeviceTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),103,'Broker','Broker','Broker')
> GO

1 row(s) affected.

> INSERT INTO [ImageServerAlpha].[dbo].[DeviceTypeEnum]
> ([GUID],[Enum],[Lookup],[Description],[LongDescription])
> VALUES
> (newid(),104,'PriorsServer','Priors Server','Server with Prior Studies for the Web Viewer')
> GO

1 row(s) affected.

Playback completed for command file 'ImageServerDefaultData.sql'.
Creating stored procedures...

> USE [ImageServerAlpha]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryFilesystemQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryFilesystemQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryFilesystemQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertWorkQueueFromFilesystemQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertWorkQueueFromFilesystemQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertWorkQueueFromFilesystemQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertFilesystemQueue] Script Date: 01/08/2008 16:04:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertFilesystemQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertFilesystemQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteStudyStorage] Script Date: 01/08/2008 16:04:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteStudyStorage]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteStudyStorage]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertFilesystem] Script Date: 01/08/2008 16:04:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertFilesystem]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertFilesystem]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServiceLock]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryServiceLock]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[ResetServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetServiceLock]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[ResetServiceLock]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateServiceLock]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[UpdateServiceLock]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertServerPartition] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertServerPartition]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertServerPartition]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[UpdateWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[ResetWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[ResetWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServerPartitionSopClasses] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServerPartitionSopClasses]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryServerPartitionSopClasses]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServerPartitionTransferSyntaxes] Script Date: 06/24/2008 12:29:00 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServerPartitionTransferSyntaxes]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryServerPartitionTransferSyntaxes]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryModalitiesInStudy] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryModalitiesInStudy]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryModalitiesInStudy]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertInstance] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertInstance]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertInstance]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertRequestAttributes] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertRequestAttributes]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertRequestAttributes]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertStudyStorage] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertStudyStorage]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertStudyStorage]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[WebQueryWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[WebQueryWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryStudyStorageLocation] Script Date: 01/08/2008 16:04:34 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryStudyStorageLocation]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryStudyStorageLocation]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteWorkQueue] Script Date: 04/26/2008 00:28:22 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteWorkQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteServerPartition] Script Date: 04/26/2008 00:28:22 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteServerPartition]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteServerPartition]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertArchiveQueue] Script Date: 07/11/2008 13:04:37 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertArchiveQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertArchiveQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryArchiveQueue] Script Date: 07/14/2008 10:43:32 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryArchiveQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryArchiveQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryRestoreQueue] Script Date: 07/14/2008 10:43:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryRestoreQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryRestoreQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateArchiveQueue] Script Date: 07/14/2008 10:43:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateArchiveQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[UpdateArchiveQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateRestoreQueue] Script Date: 07/14/2008 10:43:33 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateRestoreQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[UpdateRestoreQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteFilesystemStudyStorage] Script Date: 07/16/2008 15:46:29 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteFilesystemStudyStorage]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteFilesystemStudyStorage]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertRestoreQueue] Script Date: 07/21/2008 16:11:22 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertRestoreQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertRestoreQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[WebQueryArchiveQueue] Script Date: 08/05/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryArchiveQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[WebQueryArchiveQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[WebQueryRestoreQueue] Script Date: 08/21/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryRestoreQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[WebQueryRestoreQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertStudyIntegrityQueue] Script Date: 09/17/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertStudyIntegrityQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertStudyIntegrityQueue]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[AttachStudyToPatient] Script Date: 10/09/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AttachStudyToPatient]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[AttachStudyToPatient]
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[CreatePatientForStudy] Script Date: 10/09/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CreatePatientForStudy]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[CreatePatientForStudy]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[LockStudy] Script Date: 10/15/2008 17:35:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[LockStudy]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[LockStudy]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[InsertDuplicateSopReceivedQueue] Script Date: 05/01/2009 15:53:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertDuplicateSopReceivedQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[InsertDuplicateSopReceivedQueue]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[DeleteInstance] Script Date: 06/29/2009 15:53:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteInstance]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteInstance]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[SetSeriesRelatedInstanceCount] Script Date: 06/29/2009 15:53:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetStudyStorage]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[ResetStudyStorage]
>
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[SetStudyRelatedInstanceCount] Script Date: 06/29/2009 15:53:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SetStudyRelatedInstanceCount]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[SetStudyRelatedInstanceCount]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[SetSeriesRelatedInstanceCount] Script Date: 06/29/2009 15:53:56 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SetSeriesRelatedInstanceCount]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[SetSeriesRelatedInstanceCount]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[DeleteSeries] Script Date: 07/31/2009 11:31:26 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteSeries]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[DeleteSeries]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[PostponeWorkQueue] Script Date: 09/11/2009 11:21:26 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PostponeWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[PostponeWorkQueue]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[QueryCurrentStudyMove] Script Date: 10/19/2009 11:21:26 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryCurrentStudyMove]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[QueryCurrentStudyMove]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[WebResetWorkQueue] Script Date: 10/22/2009 11:21:26 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebResetWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[WebResetWorkQueue]
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[UpdateStudyStateFromWorkQueue] Script Date: 10/26/2009 16:55:26 ******/
> IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateStudyStateFromWorkQueue]') AND type in (N'P', N'PC'))
> DROP PROCEDURE [dbo].[UpdateStudyStateFromWorkQueue]
> GO

Command completed successfully.

>
>
> /****** Object: StoredProcedure [dbo].[LockStudy] Script Date: 10/15/2008 16:45:14 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[LockStudy]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 15, 2008
> -- Description: Lock/Unlock a study
> --
> -- History:
> -- Oct 29, 2009 - Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[LockStudy]
> @StudyStorageGUID uniqueidentifier,
> @ReadLock bit = null,
> @WriteLock bit = null,
> @QueueStudyStateEnum smallint = null,
> @Successful bit output,
> @FailureReason nvarchar(1024)=null output
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
> SET @Successful= 1
>
> if @QueueStudyStateEnum is not null
> BEGIN
> declare @IdleQueueStudyStateEnum smallint
> SELECT @IdleQueueStudyStateEnum = Enum from QueueStudyStateEnum where Lookup = ''Idle''
>
> if @QueueStudyStateEnum = @IdleQueueStudyStateEnum
> BEGIN
> UPDATE StudyStorage
> SET QueueStudyStateEnum = @IdleQueueStudyStateEnum,
> LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> ELSE
> BEGIN
> UPDATE StudyStorage
> SET QueueStudyStateEnum = @QueueStudyStateEnum,
> LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND QueueStudyStateEnum = @IdleQueueStudyStateEnum
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> END
> ELSE if @ReadLock is not null
> BEGIN
> IF @ReadLock=1
> BEGIN
> UPDATE StudyStorage
> SET ReadLock=ReadLock+1, LastAccessedTime = getdate()
> WHERE GUID=@StudyStorageGUID AND WriteLock=0
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> ELSE
> BEGIN
> -- unlock if the study is being locked
> UPDATE StudyStorage
> SET ReadLock=ReadLock-1, LastAccessedTime = getdate()
> WHERE GUID=@StudyStorageGUID AND ReadLock>0
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> END
> ELSE if @WriteLock is not null
> BEGIN
> IF @WriteLock=1
> BEGIN
> UPDATE StudyStorage
> SET WriteLock=1, LastAccessedTime = getdate()
> WHERE GUID=@StudyStorageGUID AND WriteLock=0
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> ELSE
> BEGIN
> -- unlock if the study is being locked
> UPDATE StudyStorage
> SET WriteLock=0, LastAccessedTime = getdate()
> WHERE GUID=@StudyStorageGUID AND WriteLock=1
>
> IF (@@ROWCOUNT=0)
> SET @Successful=0
> END
> END
> ELSE
> BEGIN
> SET @Successful=0
> END
>
> IF @Successful=0
> BEGIN
> SELECT @FailureReason=QueueStudyStateEnum.LongDescription
> FROM QueueStudyStateEnum
> JOIN StudyStorage ON StudyStorage.QueueStudyStateEnum = QueueStudyStateEnum.Enum
> WHERE StudyStorage.GUID = @StudyStorageGUID
> END
> END
> '
> END
> GO

Command completed successfully.

>
>
> /****** Object: StoredProcedure [dbo].[WebQueryWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: December 16, 2007
> -- Description: Query WorkQueue entries based on criteria
> --
> -- History:
> -- July 29, 2009 - Added ProcessorID parameter. (Jon Bluks)
> -- Sept 16, 2009 - Added LastUpdatedTime in the result
> -- =============================================
> CREATE PROCEDURE [dbo].[WebQueryWorkQueue]
> @ServerPartitionGUID uniqueidentifier = null,
> @PatientID nvarchar(64) = null,
> @ProcessorID nvarchar(64) = null,
> @PatientsName nvarchar(64) = null,
> @ScheduledTime datetime = null,
> @Type nvarchar(128) = null,
> @Status nvarchar(128) = null,
> @Priority smallint = null,
> @StartIndex int,
> @MaxRowCount int = 25,
> @ResultCount int OUTPUT
> AS
> BEGIN
> Declare @stmt nvarchar(1024);
> Declare @where nvarchar(1024);
> Declare @count nvarchar(1024);
>
> -- Build SELECT statement based on the paramters
>
> SET @stmt = ''SELECT WorkQueue.*, ROW_NUMBER() OVER(ORDER BY WorkQueue.InsertTime ASC) as RowNum FROM WorkQueue ''
> SET @stmt = @stmt + ''LEFT JOIN StudyStorage on StudyStorage.GUID = WorkQueue.StudyStorageGUID ''
> SET @stmt = @stmt + ''LEFT JOIN Study on Study.ServerPartitionGUID=StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid=StudyStorage.StudyInstanceUid ''
>
> SET @where = ''''
>
> IF (@ServerPartitionGUID IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.ServerPartitionGUID = '''''' + CONVERT(varchar(250),@ServerPartitionGUID) +''''''''
> END
>
>
>
> IF (@Type IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.WorkQueueTypeEnum in '' + @Type
> END
>
> IF (@Status IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.WorkQueueStatusEnum in '' + @Status
> END
>
> IF (@Priority IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.WorkQueuePriorityEnum = '' + CONVERT(varchar(10),@Priority)
> END
>
> IF (@ScheduledTime IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.ScheduledTime between '''''' + CONVERT(varchar(30), @ScheduledTime, 101 ) +'''''' and '''''' + CONVERT(varchar(30), DATEADD(DAY, 1, @ScheduledTime), 101 ) + ''''''''
> END
>
>
> IF (@PatientID IS NOT NULL and @PatientID<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientID Like ''''%'' + @PatientID + ''%'''' ''
> END
>
> IF (@PatientsName IS NOT NULL and @PatientsName<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientsName Like ''''%'' + @PatientsName + ''%'''' ''
> END
>
> IF (@ProcessorID IS NOT NULL and @ProcessorID<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''WorkQueue.ProcessorID Like ''''%'' + @ProcessorID + ''%'''' ''
> END
>
> if (@where<>'''')
> SET @stmt = @stmt + '' WHERE '' + @where
>
> --PRINT @stmt
> SET @stmt = ''SELECT W.GUID, W.ServerPartitionGUID, W.StudyStorageGUID, W.DeviceGUID, W.WorkQueueTypeEnum, W.WorkQueueStatusEnum, W.WorkQueuePriorityEnum, W.ProcessorID, W.ExpirationTime, W.ScheduledTime, W.InsertTime, W.FailureCount, W.FailureDescription, W.Data, W.LastUpdatedTime FROM ('' + @stmt
>
> if (@StartIndex = 0)
> SET @stmt = @stmt + '') AS W WHERE W.RowNum BETWEEN '' + str(@StartIndex) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
> else
> SET @stmt = @stmt + '') AS W WHERE W.RowNum BETWEEN '' + str(@StartIndex + 1) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
>
> EXEC(@stmt)
>
> SET @count = ''SELECT @recordCount = count(*) FROM WorkQueue ''
> if (@where<>'''')
> BEGIN
> SET @count = @count + ''LEFT JOIN StudyStorage on StudyStorage.GUID = WorkQueue.StudyStorageGUID ''
> SET @count = @count + ''LEFT JOIN Study on Study.ServerPartitionGUID=StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid=StudyStorage.StudyInstanceUid ''
> SET @count = @count + ''WHERE '' + @where
> END
>
> DECLARE @recCount int
>
> EXEC sp_executesql @count, N''@recordCount int OUT'', @recCount OUT
>
> set @ResultCount = @recCount
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryStudyStorageLocation] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryStudyStorageLocation]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: 7/30/2007
> -- Description:
> -- History:
> -- Oct 09, 2009 : Fixed issue with incorrect IsReconcileRequired being returned.
> -- Oct 24, 2008 : Added IsReconcileRequired property into the result set.
> -- Jul 04, 2008 : Modify to return storage location based on the study instance uid
> -- when StudyStorageGUID and ServerPartitionGUID aren''t provided. Used for image streaming service.
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryStudyStorageLocation]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier = null,
> @ServerPartitionGUID uniqueidentifier = null,
> @StudyInstanceUid varchar(64) = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @IsReconcileRequired bit
> SET @IsReconcileRequired =0;
> DECLARE @StorageGUID uniqueidentifier
>
> IF @StudyStorageGUID is null and @ServerPartitionGUID is null
> BEGIN
> -- FIND LOCATION BASED ON @StudyInstanceUid
>
> SELECT @StorageGUID=GUID FROM StudyStorage WHERE StudyInstanceUid = @StudyInstanceUid
>
> IF EXISTS(SELECT GUID FROM StudyIntegrityQueue WITH(NOLOCK) WHERE StudyStorageGUID=@StorageGUID)
> SET @IsReconcileRequired = 1
>
> SELECT StudyStorage.GUID, StudyStorage.StudyInstanceUid, StudyStorage.ServerPartitionGUID, StudyStorage.LastAccessedTime, StudyStorage.InsertTime, StudyStorage.StudyStatusEnum,
> Filesystem.FilesystemPath, ServerPartition.PartitionFolder, FilesystemStudyStorage.StudyFolder, FilesystemStudyStorage.FilesystemGUID, Filesystem.Enabled, Filesystem.ReadOnly, Filesystem.WriteOnly,
> Filesystem.FilesystemTierEnum, StudyStorage.WriteLock, StudyStorage.ReadLock, FilesystemStudyStorage.ServerTransferSyntaxGUID, ServerTransferSyntax.Uid as TransferSyntaxUid, FilesystemStudyStorage.GUID as FilesystemStudyStorageGUID,
> StudyStorage.QueueStudyStateEnum, @IsReconcileRequired as ''IsReconcileRequired''
> FROM StudyStorage
> JOIN ServerPartition on StudyStorage.ServerPartitionGUID = ServerPartition.GUID
> JOIN FilesystemStudyStorage on StudyStorage.GUID = FilesystemStudyStorage.StudyStorageGUID
> JOIN Filesystem on FilesystemStudyStorage.FilesystemGUID = Filesystem.GUID
> JOIN ServerTransferSyntax on ServerTransferSyntax.GUID = FilesystemStudyStorage.ServerTransferSyntaxGUID
> WHERE StudyStorage.GUID = @StorageGUID
> END
> ELSE IF @StudyStorageGUID is null
> BEGIN
> -- FIND LOCATION BASED ON @ServerPartitionGUID and @StudyInstanceUid
>
> SELECT @StorageGUID=GUID FROM StudyStorage WHERE
> ServerPartitionGUID = @ServerPartitionGUID and StudyInstanceUid = @StudyInstanceUid
>
> IF EXISTS(SELECT GUID FROM StudyIntegrityQueue WITH(NOLOCK) WHERE StudyStorageGUID=@StorageGUID)
> SET @IsReconcileRequired = 1
>
>
> SELECT StudyStorage.GUID, StudyStorage.StudyInstanceUid, StudyStorage.ServerPartitionGUID, StudyStorage.LastAccessedTime, StudyStorage.InsertTime, StudyStorage.StudyStatusEnum,
> Filesystem.FilesystemPath, ServerPartition.PartitionFolder, FilesystemStudyStorage.StudyFolder, FilesystemStudyStorage.FilesystemGUID, Filesystem.Enabled, Filesystem.ReadOnly, Filesystem.WriteOnly,
> Filesystem.FilesystemTierEnum, StudyStorage.ReadLock, StudyStorage.WriteLock, FilesystemStudyStorage.ServerTransferSyntaxGUID, ServerTransferSyntax.Uid as TransferSyntaxUid, FilesystemStudyStorage.GUID as FilesystemStudyStorageGUID,
> StudyStorage.QueueStudyStateEnum, @IsReconcileRequired as ''IsReconcileRequired''
> FROM StudyStorage
> JOIN ServerPartition on StudyStorage.ServerPartitionGUID = ServerPartition.GUID
> JOIN FilesystemStudyStorage on StudyStorage.GUID = FilesystemStudyStorage.StudyStorageGUID
> JOIN Filesystem on FilesystemStudyStorage.FilesystemGUID = Filesystem.GUID
> JOIN ServerTransferSyntax on ServerTransferSyntax.GUID = FilesystemStudyStorage.ServerTransferSyntaxGUID
> WHERE StudyStorage.ServerPartitionGUID = @ServerPartitionGUID and StudyStorage.StudyInstanceUid = @StudyInstanceUid
> END
> ELSE
> BEGIN
> -- FIND LOCATION BASED ON @StudyStorageGUID
> IF EXISTS(SELECT GUID FROM StudyIntegrityQueue WITH(NOLOCK) WHERE StudyStorageGUID=@StudyStorageGUID)
> SET @IsReconcileRequired = 1
>
> SELECT StudyStorage.GUID, StudyStorage.StudyInstanceUid, StudyStorage.ServerPartitionGUID, StudyStorage.LastAccessedTime, StudyStorage.InsertTime, StudyStorage.StudyStatusEnum,
> Filesystem.FilesystemPath, ServerPartition.PartitionFolder, FilesystemStudyStorage.StudyFolder, FilesystemStudyStorage.FilesystemGUID, Filesystem.Enabled, Filesystem.ReadOnly, Filesystem.WriteOnly,
> Filesystem.FilesystemTierEnum, StudyStorage.ReadLock, StudyStorage.WriteLock, FilesystemStudyStorage.ServerTransferSyntaxGUID, ServerTransferSyntax.Uid as TransferSyntaxUid, FilesystemStudyStorage.GUID as FilesystemStudyStorageGUID,
> StudyStorage.QueueStudyStateEnum, @IsReconcileRequired as ''IsReconcileRequired''
> FROM StudyStorage
> JOIN ServerPartition on StudyStorage.ServerPartitionGUID = ServerPartition.GUID
> JOIN FilesystemStudyStorage on StudyStorage.GUID = FilesystemStudyStorage.StudyStorageGUID
> JOIN Filesystem on FilesystemStudyStorage.FilesystemGUID = Filesystem.GUID
> JOIN ServerTransferSyntax on ServerTransferSyntax.GUID = FilesystemStudyStorage.ServerTransferSyntaxGUID
> WHERE StudyStorage.GUID = @StudyStorageGUID
> END
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertServerPartition] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertServerPartition]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 13, 2007
> -- Modify date: Dec 17, 2008
> -- Description: Insert a ServerPartition row
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertServerPartition]
> -- Add the parameters for the stored procedure here
> @Enabled bit,
> @Description nvarchar(128),
> @AeTitle varchar(16),
> @Port int,
> @PartitionFolder nvarchar(16),
> @DuplicateSopPolicyEnum smallint,
> @AcceptAnyDevice bit = 1,
> @AutoInsertDevice bit = 1,
> @DefaultRemotePort int = 104,
> @MatchPatientsName bit = 1,
> @MatchPatientId bit = 1,
> @MatchAccessionNumber bit = 1,
> @MatchPatientsBirthDate bit = 1,
> @MatchIssuerOfPatientId bit = 1,
> @MatchPatientsSex bit = 1,
> @AuditDeleteStudy bit = 0
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @SopClassGUID uniqueidentifier
> DECLARE @TransferSyntaxGUID uniqueidentifier
> DECLARE @ServerPartitionGUID uniqueidentifier
>
> SET @ServerPartitionGUID = newid()
>
> -- Insert statements for procedure here
>
> -- Wrap in a transaction
> BEGIN TRANSACTION
>
> INSERT INTO [ImageServerAlpha].[dbo].[ServerPartition]
> ([GUID],[Enabled],[Description],[AeTitle],[Port],[PartitionFolder],[AcceptAnyDevice],[AutoInsertDevice],[DefaultRemotePort],[DuplicateSopPolicyEnum],
> [MatchPatientsName], [MatchPatientId], [MatchAccessionNumber], [MatchPatientsBirthDate], [MatchIssuerOfPatientId], [MatchPatientsSex], [AuditDeleteStudy])
> VALUES (@ServerPartitionGUID, @Enabled, @Description, @AeTitle, @Port, @PartitionFolder, @AcceptAnyDevice, @AutoInsertDevice, @DefaultRemotePort, @DuplicateSopPolicyEnum,
> @MatchPatientsName, @MatchPatientId, @MatchAccessionNumber, @MatchPatientsBirthDate, @MatchIssuerOfPatientId, @MatchPatientsSex, @AuditDeleteStudy)
>
> -- Populate PartitionSopClass
> DECLARE cur_sopclass CURSOR FOR
> SELECT GUID FROM ServerSopClass;
>
> OPEN cur_sopclass;
>
> FETCH NEXT FROM cur_sopclass INTO @SopClassGUID;
> WHILE @@FETCH_STATUS = 0
> BEGIN
> INSERT INTO [ImageServerAlpha].[dbo].[PartitionSopClass]
> ([GUID],[ServerPartitionGUID],[ServerSopClassGUID],[Enabled])
> VALUES (newid(), @ServerPartitionGUID, @SopClassGUID, 1)
>
> FETCH NEXT FROM cur_sopclass INTO @SopClassGUID;
> END
>
> CLOSE cur_sopclass;
> DEALLOCATE cur_sopclass;
>
> -- Populate PartitionTransferSyntax
> DECLARE cur_transfersyntax CURSOR FOR
> SELECT GUID FROM ServerTransferSyntax;
>
> OPEN cur_transfersyntax;
>
> FETCH NEXT FROM cur_transfersyntax INTO @TransferSyntaxGUID;
> WHILE @@FETCH_STATUS = 0
> BEGIN
> INSERT INTO [ImageServerAlpha].[dbo].[PartitionTransferSyntax]
> ([GUID],[ServerPartitionGUID],[ServerTransferSyntaxGUID],[Enabled])
> VALUES (newid(), @ServerPartitionGUID, @TransferSyntaxGUID, 1)
>
> FETCH NEXT FROM cur_transfersyntax INTO @TransferSyntaxGUID;
> END
>
> CLOSE cur_transfersyntax;
> DEALLOCATE cur_transfersyntax;
>
>
> -- Now, put in default rules for the partition
> DECLARE @StudyServerRuleApplyTimeEnum smallint
> DECLARE @StudyArchiveServerRuleApplyTimeEnum smallint
> DECLARE @StudyDeleteServerRuleTypeEnum smallint
> DECLARE @Tier1RetentionServerRuleTypeEnum smallint
> DECLARE @OnlineRetentionServerRuleTypeEnum smallint
> DECLARE @StudyRestoreServerRuleApplyTimeEnum smallint
> DECLARE @StudyCompressServerRuleTypeEnum smallint
>
> -- Get the Study Processed Rule Apply Time
> SELECT @StudyServerRuleApplyTimeEnum = Enum FROM ServerRuleApplyTimeEnum WHERE Lookup = ''StudyProcessed''
> SELECT @StudyArchiveServerRuleApplyTimeEnum = Enum FROM ServerRuleApplyTimeEnum WHERE Lookup = ''StudyArchived''
> SELECT @StudyRestoreServerRuleApplyTimeEnum = Enum FROM ServerRuleApplyTimeEnum WHERE Lookup = ''StudyRestored''
>
> -- Get all 3 types of Retention Rules
> SELECT @StudyDeleteServerRuleTypeEnum = Enum FROM ServerRuleTypeEnum WHERE Lookup = ''StudyDelete''
> SELECT @Tier1RetentionServerRuleTypeEnum = Enum FROM ServerRuleTypeEnum WHERE Lookup = ''Tier1Retention''
> SELECT @OnlineRetentionServerRuleTypeEnum = Enum FROM ServerRuleTypeEnum WHERE Lookup = ''OnlineRetention''
> SELECT @StudyCompressServerRuleTypeEnum = Enum FROM ServerRuleTypeEnum WHERE Lookup = ''StudyCompress''
>
> -- Insert a default StudyDelete rule
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[RuleXml])
> VALUES
> (newid(),''Default Delete'',@ServerPartitionGUID, @StudyServerRuleApplyTimeEnum, @StudyDeleteServerRuleTypeEnum, 1, 1,
> ''
>
>

>
>
'' )
>
> -- Insert a default Tier1Retention rule
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[RuleXml])
> VALUES
> (newid(),''Default Tier1 Retention'',@ServerPartitionGUID, @StudyServerRuleApplyTimeEnum, @Tier1RetentionServerRuleTypeEnum, 1, 1,
> ''
>
>

>
>
'' )
>
> -- Insert a default Tier1Retention rule for restores
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[RuleXml])
> VALUES
> (newid(),''Default Restore Tier1 Retention'',@ServerPartitionGUID, @StudyRestoreServerRuleApplyTimeEnum, @Tier1RetentionServerRuleTypeEnum, 1, 1,
> ''
>
>

>
>
'' )
>
> -- Insert a default Online Retention Rule for study processed
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[RuleXml])
> VALUES
> (newid(),''Default Online Retention'',@ServerPartitionGUID, @StudyArchiveServerRuleApplyTimeEnum, @OnlineRetentionServerRuleTypeEnum, 1, 1,
> ''
>
>

>
>
'' )
>
> -- Insert a default Online Retention Rule for restores
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[RuleXml])
> VALUES
> (newid(),''Default Restore Online Retention'',@ServerPartitionGUID, @StudyRestoreServerRuleApplyTimeEnum, @OnlineRetentionServerRuleTypeEnum, 1, 1,
> ''
>
>

>
>
'' )
>
> -- Insert an exempt rule for Compression
> INSERT INTO [ImageServerAlpha].[dbo].[ServerRule]
> ([GUID],[RuleName],[ServerPartitionGUID],[ServerRuleApplyTimeEnum],[ServerRuleTypeEnum],[Enabled],[DefaultRule],[ExemptRule],[RuleXml])
> VALUES
> (newid(),''Compression Exempt Rule'',@ServerPartitionGUID, @StudyServerRuleApplyTimeEnum, @StudyCompressServerRuleTypeEnum, 1, 0, 1,
> ''
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>

>
>
>

>
'' )
> COMMIT TRANSACTION
>
> SELECT * from ServerPartition
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertWorkQueueFromFilesystemQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertWorkQueueFromFilesystemQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 17, 2008
> -- Description: Stored procedure for inserting WorkQueue entries
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertWorkQueueFromFilesystemQueue]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @ServerPartitionGUID uniqueidentifier,
> @ScheduledTime datetime,
> @DeleteFilesystemQueue bit,
> @WorkQueueTypeEnum smallint,
> @FilesystemQueueTypeEnum smallint,
> @Data xml = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @WorkQueueGUID as uniqueidentifier
>
> declare @PendingStatusEnum as smallint
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
>
> declare @WorkQueuePriorityEnum as smallint
> declare @DelaySeconds as int
> declare @ExpirationTime as DateTime
> select @WorkQueuePriorityEnum = WorkQueuePriorityEnum, @DelaySeconds=ExpireDelaySeconds from WorkQueueTypeProperties where WorkQueueTypeEnum = @WorkQueueTypeEnum
>
> set @ExpirationTime = DATEADD(second, @DelaySeconds, @ScheduledTime)
>
> BEGIN TRANSACTION
>
> -- Insert statements for procedure here
> SELECT @WorkQueueGUID = GUID from WorkQueue
> where StudyStorageGUID = @StudyStorageGUID
> AND WorkQueueTypeEnum = @WorkQueueTypeEnum
> if @@ROWCOUNT = 0
> BEGIN
> set @WorkQueueGUID = NEWID();
>
> INSERT into WorkQueue (GUID, ServerPartitionGUID, StudyStorageGUID, WorkQueueTypeEnum, WorkQueueStatusEnum, ExpirationTime, ScheduledTime, Data, WorkQueuePriorityEnum)
> values (@WorkQueueGUID, @ServerPartitionGUID, @StudyStorageGUID, @WorkQueueTypeEnum, @PendingStatusEnum, @ExpirationTime, @ScheduledTime, @Data, @WorkQueuePriorityEnum)
> IF @DeleteFilesystemQueue = 1
> BEGIN
> DELETE FROM FilesystemQueue
> WHERE StudyStorageGUID = @StudyStorageGUID AND FilesystemQueueTypeEnum = @FilesystemQueueTypeEnum
> END
> END
> ELSE
> BEGIN
> UPDATE WorkQueue
> set ExpirationTime = @ExpirationTime
> where GUID = @WorkQueueGUID
> END
>
> SELECT * FROM WorkQueue WHERE GUID = @WorkQueueGUID
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

>
>
>
> set ANSI_NULLS ON
> set QUOTED_IDENTIFIER ON
> go

Command completed successfully.

>
> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateStudyStateFromWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 26, 2009
> -- Description: Update the study state based on the work queue.
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[UpdateStudyStateFromWorkQueue]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
> DECLARE @NextState smallint
> DECLARE @NextWorkQueueEntryGUID uniqueidentifier
>
>
> DECLARE @WorkQueueStatusInProgress smallint
> SELECT @WorkQueueStatusInProgress = Enum FROM WorkQueueStatusEnum WITH(NOLOCK) WHERE Lookup=''In Progress''
>
> DECLARE @CurrentState smallint
> SELECT @CurrentState = QueueStudyStateEnum FROM StudyStorage WHERE GUID=@StudyStorageGUID
>
> DECLARE @StudyStateIdle smallint
> SELECT @StudyStateIdle = Enum FROM QueueStudyStateEnum WITH (NOLOCK) WHERE Lookup=''Idle''
>
> -- Check if there''s any entry in the queue corresponding to the current state
> -- If there''s then assume it''s correct and leave it.
> IF NOT EXISTS(SELECT * FROM WorkQueueTypeProperties p WITH(NOLOCK)
> JOIN WorkQueue q WITH(NOLOCK) ON q.WorkQueueTypeEnum =p.WorkQueueTypeEnum
> WHERE q.StudyStorageGUID=@StudyStorageGUID AND
> p.QueueStudyStateEnum=@CurrentState AND @CurrentState<>@StudyStateIdle)
> BEGIN
> -- Current state is wrong. Need to reset it.
>
> -- If there''s an In Progress entry then use its state
> SELECT TOP 1 @NextWorkQueueEntryGUID=q.GUID, @NextState=p.QueueStudyStateEnum
> FROM WorkQueue q WITH(NOLOCK)
> JOIN WorkQueueTypeProperties p WITH(NOLOCK) ON p.WorkQueueTypeEnum = q.WorkQueueTypeEnum
> WHERE q.StudyStorageGUID=@StudyStorageGUID
> AND WorkQueueStatusEnum = @WorkQueueStatusInProgress
> ORDER BY p.QueueStudyStateOrder DESC, q.ScheduledTime ASC
>
> IF @@ROWCOUNT<>0
> BEGIN
> UPDATE StudyStorage SET QueueStudyStateEnum=@NextState
> WHERE GUID=@StudyStorageGUID
> END
>
> -- Otherwise, (empty queue or none of them is In Progress),
> -- set to Idle or use its state corresponding to the first entry
> ELSE
> BEGIN
> -- WorkQueue is empty or
> SELECT TOP 1 @NextWorkQueueEntryGUID=q.GUID, @NextState=p.QueueStudyStateEnum
> FROM WorkQueue q WITH(NOLOCK)
> JOIN WorkQueueTypeProperties p WITH(NOLOCK) ON p.WorkQueueTypeEnum = q.WorkQueueTypeEnum
> WHERE q.StudyStorageGUID=@StudyStorageGUID
> AND WorkQueueStatusEnum <> @WorkQueueStatusInProgress
> ORDER BY p.QueueStudyStateOrder DESC, q.ScheduledTime ASC
>
> IF @@ROWCOUNT<>0
> BEGIN
> UPDATE StudyStorage SET QueueStudyStateEnum=@NextState
> WHERE GUID=@StudyStorageGUID
> END
> ELSE
> UPDATE StudyStorage SET QueueStudyStateEnum=@StudyStateIdle
> WHERE GUID=@StudyStorageGUID
> END
> END
> END
> '
> END
> GO

Command completed successfully.

>
>
> /****** Object: StoredProcedure [dbo].[UpdateWorkQueue] Script Date: 04/26/2008 00:28:23 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 20, 2007
> -- Description: Procedure for updating WorkQueue entries
> -- History
> -- Oct 29, 2007: Add @ProcessorID
> -- May 14, 2008, Changed order so StudyLocks are released after updates
> -- Oct 01, 2008, Added UpdateQueueStudyState
> -- Oct 23, 2008, Removed UpdateQueueStudyState
> -- May 03, 2009, Fixed bug when completing and deleting the work queue while more work queue uids are being
> -- by another process. When this happens, the entry is now left in Pending status.
> -- May 28, 2009, May 03 rev had bug where a Lock was not released in StudyStorage when condition was met.
> -- Sep 11, 2009, Added LastUpdateTime
> -- Oct 26, 2009, Called UpdateStudyStateFromWorkQueue to reset the study state properly (instead of setting to Idle)
> -- Oct 29, 2009, Added ReadLock/WriteLock capabilities
> -- =============================================
> CREATE PROCEDURE [dbo].[UpdateWorkQueue]
> -- Add the parameters for the stored procedure here
> @ProcessorID varchar(256),
> @WorkQueueGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @WorkQueueStatusEnum smallint,
> @FailureCount int,
> @ExpirationTime datetime = null,
> @ScheduledTime datetime = null,
> @FailureDescription nvarchar(512) = null,
> @QueueStudyStateEnum smallint = null
> AS
> BEGIN
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.[UpdateWorkQueue]] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @ServerPartitionGUID uniqueidentifier
> declare @StudyInstanceUid varchar(64)
> declare @CompletedStatusEnum as smallint
> declare @PendingStatusEnum as smallint
> declare @FailedStatusEnum as smallint
> declare @IdleStatusEnum as smallint
> declare @WriteLock as bit
> declare @ReadLock as bit
> declare @Successful as bit
>
> select @CompletedStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Completed''
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
> select @FailedStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Failed''
> select @IdleStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Idle''
>
> SELECT @ReadLock=ReadLock, @WriteLock=WriteLock
> FROM WorkQueue
> JOIN WorkQueueTypeProperties on
> WorkQueue.WorkQueueTypeEnum = WorkQueueTypeProperties.WorkQueueTypeEnum
> WHERE WorkQueue.GUID = @WorkQueueGUID
>
>
> BEGIN TRANSACTION
>
> if @WorkQueueStatusEnum = @CompletedStatusEnum
> BEGIN
> SELECT @ServerPartitionGUID=ServerPartitionGUID, @StudyInstanceUid=StudyInstanceUid
> FROM StudyStorage WHERE GUID = @StudyStorageGUID
>
> -- Completed... delete the entry if there''s no more Work Queue Uid (inserted by another process)
> DELETE FROM WorkQueue
> WHERE WorkQueue.GUID = @WorkQueueGUID
> AND NOT EXISTS( SELECT * FROM WorkQueueUid uid WHERE uid.WorkQueueGUID = WorkQueue.GUID)
>
> IF @@ROWCOUNT<>0
> BEGIN
> if @ReadLock = 1
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, 0, null, null, @Successful OUTPUT
> END
> ELSE
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, null, 0, null, @Successful OUTPUT
> END
>
> EXEC dbo.UpdateStudyStateFromWorkQueue @StudyStorageGUID
> END
> ELSE
> BEGIN
> -- Current process thought it had completed the entry but
> -- another process may have had inserted more uid. We need to leave the entry in Pending.
> UPDATE WorkQueue SET [WorkQueueStatusEnum]=@PendingStatusEnum, LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
>
> if @ReadLock = 1
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, 0, null, null, @Successful OUTPUT
> END
> ELSE
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, null, 0, null, @Successful OUTPUT
> END
> END
> END
> ELSE if @WorkQueueStatusEnum = @FailedStatusEnum
> BEGIN
> -- Failed
> IF @FailureDescription is NULL
> BEGIN
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @WorkQueueStatusEnum, ExpirationTime = @ExpirationTime, ScheduledTime = @ScheduledTime,
> FailureCount = @FailureCount,
> ProcessorID = @ProcessorID, LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
> END
> ELSE
> BEGIN
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @WorkQueueStatusEnum, ExpirationTime = @ExpirationTime, ScheduledTime = @ScheduledTime,
> FailureCount = @FailureCount,
> ProcessorID = @ProcessorID,
> FailureDescription = @FailureDescription,
> LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
> END
>
> if @ReadLock = 1
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, 0, null, null, @Successful OUTPUT
> END
> ELSE
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, null, 0, null, @Successful OUTPUT
> END
> END
> ELSE if @WorkQueueStatusEnum = @PendingStatusEnum
> BEGIN
> -- Pending
> IF @FailureDescription is NULL
> BEGIN
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @WorkQueueStatusEnum, ExpirationTime = @ExpirationTime, ScheduledTime = @ScheduledTime,
> FailureCount = @FailureCount, ProcessorID = @ProcessorID, LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
> END
> ELSE
> BEGIN
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @WorkQueueStatusEnum, ExpirationTime = @ExpirationTime, ScheduledTime = @ScheduledTime,
> FailureCount = @FailureCount, ProcessorID = @ProcessorID, FailureDescription = @FailureDescription,
> LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
> END
>
> if @ReadLock = 1
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, 0, null, null, @Successful OUTPUT
> END
> ELSE
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, null, 0, null, @Successful OUTPUT
> END
> END
> ELSE
> BEGIN
> -- Idle
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @WorkQueueStatusEnum, ExpirationTime = @ExpirationTime, ScheduledTime = @ScheduledTime,
> FailureCount = @FailureCount, ProcessorID = @ProcessorID, LastUpdatedTime=getdate()
> WHERE GUID = @WorkQueueGUID
>
> if @WorkQueueStatusEnum = @IdleStatusEnum
> BEGIN
> if @ReadLock = 1
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, 0, null, null, @Successful OUTPUT
> END
> ELSE
> BEGIN
> EXEC dbo.LockStudy @StudyStorageGUID, null, 0, null, @Successful OUTPUT
> END
> END
> END
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: October 30, 2007
> -- Description: Stored procedure for inserting General WorkQueue entries
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertWorkQueue]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @ServerPartitionGUID uniqueidentifier,
> @WorkQueueTypeEnum smallint,
> @ScheduledTime datetime,
> @DeviceGUID uniqueidentifier = null,
> @StudyHistoryGUID uniqueidentifier = null,
> @Data xml = null,
> @SeriesInstanceUid varchar(64) = null,
> @SopInstanceUid varchar(64) = null,
> @Duplicate bit = 0,
> @Extension varchar(10) = null,
> @WorkQueueGroupID varchar(64) = null,
> @UidGroupID varchar(64) = null,
> @UidRelativePath varchar(256) = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @WorkQueueGUID as uniqueidentifier
>
> declare @PendingStatusEnum as smallint
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
>
> declare @WorkQueuePriorityEnum as smallint
> declare @DelaySeconds as int
> declare @ExpirationTime as DateTime
> select @WorkQueuePriorityEnum = WorkQueuePriorityEnum, @DelaySeconds=ExpireDelaySeconds from WorkQueueTypeProperties where WorkQueueTypeEnum = @WorkQueueTypeEnum
>
> set @ExpirationTime = DATEADD(second, @DelaySeconds, @ScheduledTime)
>
> BEGIN TRANSACTION
>
> -- Insert statements for procedure here
> IF @DeviceGUID is not null
> BEGIN
> SELECT @WorkQueueGUID = GUID from WorkQueue WITH (NOLOCK)
> where StudyStorageGUID = @StudyStorageGUID
> AND WorkQueueTypeEnum = @WorkQueueTypeEnum
> AND DeviceGUID = @DeviceGUID
> END
> ELSE IF @StudyHistoryGUID is not null
> BEGIN
> SELECT @WorkQueueGUID = GUID from WorkQueue WITH (NOLOCK)
> where StudyStorageGUID = @StudyStorageGUID
> AND WorkQueueTypeEnum = @WorkQueueTypeEnum
> AND StudyHistoryGUID = @StudyHistoryGUID
> END
> ELSE
> BEGIN
> SELECT @WorkQueueGUID = GUID from WorkQueue WITH (NOLOCK)
> where StudyStorageGUID = @StudyStorageGUID
> AND WorkQueueTypeEnum = @WorkQueueTypeEnum
> END
>
> if @WorkQueueGUID is null
> BEGIN
> set @WorkQueueGUID = NEWID();
> INSERT into WorkQueue (GUID, ServerPartitionGUID, StudyStorageGUID, DeviceGUID, StudyHistoryGUID, Data, WorkQueueTypeEnum, WorkQueueStatusEnum, WorkQueuePriorityEnum, ExpirationTime, ScheduledTime, GroupID)
> values (@WorkQueueGUID, @ServerPartitionGUID, @StudyStorageGUID, @DeviceGUID, @StudyHistoryGUID, @Data, @WorkQueueTypeEnum, @PendingStatusEnum, @WorkQueuePriorityEnum, @ExpirationTime, @ScheduledTime, @WorkQueueGroupID)
> END
> ELSE
> BEGIN
> UPDATE WorkQueue
> set ExpirationTime = @ExpirationTime,
> ScheduledTime = @ScheduledTime
> WHERE GUID = @WorkQueueGUID
> END
>
> if @SeriesInstanceUid is not null or @SopInstanceUid is not null
> BEGIN
> INSERT into WorkQueueUid(GUID, WorkQueueGUID, SeriesInstanceUid, SopInstanceUid, Duplicate, Extension, GroupID, RelativePath)
> values (newid(), @WorkQueueGUID, @SeriesInstanceUid, @SopInstanceUid, @Duplicate, @Extension, @UidGroupID, @UidRelativePath)
> END
>
> COMMIT TRANSACTION
>
> SELECT * from WorkQueue where GUID = @WorkQueueGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[ResetWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
>
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 29, 2007
> -- Description: Cleanup work queue.
> -- Reset all "in progress" items to "Pending" or "Failed" depending on their retry counts
> -- History:
> -- Sep 11, 2009: Added LastUpdatedTime
> -- Oct 29, 2009: Added WriteLock/ReadLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[ResetWorkQueue]
> @ProcessorID varchar(256),
> @MaxFailureCount int,
> @RescheduleTime datetime,
> @FailedExpirationTime datetime,
> @RetryExpirationTime datetime
>
> AS
> BEGIN
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.ResetWorkQueue] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> BEGIN TRANSACTION
>
> declare @PendingStatusEnum as int
> declare @InProgressStatusEnum as int
> declare @FailedStatusEnum as int
> declare @WorkQueueGUID uniqueidentifier
>
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
> select @InProgressStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''In Progress''
> select @FailedStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Failed''
>
>
> /* All entries that are in progress and failure count = MaxFailureCount should be failed */
>
> /* Temporary tables to hold all items that will be reset */
> CREATE TABLE #FailedList(WorkQueueGuid uniqueidentifier, StudyStorageGUID uniqueidentifier, WorkQueueTypeEnum smallint)
> CREATE TABLE #RetryList(WorkQueueGuid uniqueidentifier, StudyStorageGUID uniqueidentifier, WorkQueueTypeEnum smallint)
>
> /* fill the tables */
> INSERT INTO #FailedList (WorkQueueGuid, StudyStorageGUID, WorkQueueTypeEnum)
> SELECT dbo.WorkQueue.GUID, dbo.StudyStorage.GUID, dbo.WorkQueue.WorkQueueTypeEnum
> FROM dbo.WorkQueue
> LEFT JOIN dbo.StudyStorage ON dbo.WorkQueue.StudyStorageGUID=dbo.StudyStorage.GUID
> WHERE ProcessorID=@ProcessorID
> AND WorkQueue.WorkQueueStatusEnum=@InProgressStatusEnum
> AND WorkQueue.FailureCount+1 >= @MaxFailureCount
>
> INSERT INTO #RetryList (WorkQueueGuid, StudyStorageGUID, WorkQueueTypeEnum)
> SELECT dbo.WorkQueue.GUID, dbo.StudyStorage.GUID, dbo.WorkQueue.WorkQueueTypeEnum
> FROM dbo.WorkQueue
> LEFT JOIN dbo.StudyStorage ON dbo.WorkQueue.StudyStorageGUID=dbo.StudyStorage.GUID
> WHERE ProcessorID=@ProcessorID
> AND WorkQueue.WorkQueueStatusEnum=@InProgressStatusEnum
> AND WorkQueue.FailureCount+1 < @MaxFailureCount
>
> /* unlock all studies in the "failed" list */
> /* and then fail those entries */
> UPDATE dbo.StudyStorage
> SET WriteLock = 0
> WHERE GUID IN (SELECT StudyStorageGUID FROM #FailedList WHERE WorkQueueTypeEnum in
> (select WorkQueueTypeEnum from WorkQueueTypeProperties where WriteLock=1 ))
>
> UPDATE dbo.StudyStorage
> SET ReadLock = ReadLock - 1
> WHERE GUID IN (SELECT StudyStorageGUID FROM #FailedList WHERE WorkQueueTypeEnum in
> (select WorkQueueTypeEnum from WorkQueueTypeProperties where ReadLock=1 ))
> AND ReadLock > 0
>
> UPDATE dbo.WorkQueue
> SET WorkQueueStatusEnum = @FailedStatusEnum, /* Status=FAILED */
> FailureCount = FailureCount+1,
> ExpirationTime = @FailedExpirationTime,
> LastUpdatedTime = getdate()
> WHERE GUID IN (SELECT WorkQueueGuid FROM #FailedList)
>
> /* unlock all studies in the "retry" list */
> /* and then reschedule those entries */
> UPDATE dbo.StudyStorage
> SET WriteLock = 0
> WHERE GUID IN (SELECT StudyStorageGUID FROM #RetryList WHERE WorkQueueTypeEnum in
> (select WorkQueueTypeEnum from WorkQueueTypeProperties where WriteLock=1 ))
>
> UPDATE dbo.StudyStorage
> SET ReadLock = ReadLock - 1
> WHERE GUID IN (SELECT StudyStorageGUID FROM #RetryList WHERE WorkQueueTypeEnum in
> (select WorkQueueTypeEnum from WorkQueueTypeProperties where ReadLock=1 ))
> AND ReadLock > 0
>
> UPDATE dbo.WorkQueue
> SET WorkQueueStatusEnum = @PendingStatusEnum, /* Status=PENDING */
> ProcessorID=NULL, /* may be picked up by another processor */
> FailureCount = FailureCount+1, /* has failed once. This is needed to prevent endless reset later on*/
> ScheduledTime = @RescheduleTime,
> ExpirationTime = @RetryExpirationTime,
> FailureDescription = '''',
> LastUpdatedTime = getdate()
> WHERE GUID IN (SELECT WorkQueueGuid FROM #RetryList)
>
>
> COMMIT TRANSACTION
>
> /* Return the list of modified entries */
> SELECT *
> FROM WorkQueue
> WHERE ( GUID IN (SELECT WorkQueueGuid FROM #RetryList) OR
> GUID IN (SELECT WorkQueueGuid FROM #FailedList))
>
>
> DROP TABLE #RetryList
> DROP TABLE #FailedList
>
> END
>
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryWorkQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 16, 2007
> -- Update date: October 8, 2008
> -- Description: Select WorkQueue entries
> -- History:
> -- Oct 29, 2007: Add @ProcessorID
> -- Jan 9, 2008: Fixed clustering bug
> -- Sep 4, 2008: Added @WorkQueueStatusEnumList parameter
> -- Oct 8, 2008: Added @WorkQueuePriorityEnum parameter
> -- Apr 30, 2009: Added UPDLOCK on selects to lock the found row
> -- Oct 29, 2009: Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryWorkQueue]
> @ProcessorID varchar(256),
> @WorkQueuePriorityEnum smallint = null,
> @MemoryLimited bit = null
> AS
> BEGIN
>
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.QueryWorkQueue] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
>
> SET NOCOUNT ON;
>
> -- Added READPAST locking hint to this procedure. This should cause the query
> -- to just skip rows that are locked, going forward to any other row that
> -- satisfies the query. This mode is specifically recommended for work queue type tables.
>
> declare @StudyStorageGUID uniqueidentifier
> declare @WorkQueueGUID uniqueidentifier
> declare @PendingStatusEnum as int
> declare @IdleStatusEnum as int
> declare @InProgressStatusEnum as int
> declare @WorkQueueTypeEnum as smallint
> declare @WriteLock as bit
> declare @ReadLock as bit
>
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
> select @IdleStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Idle''
> select @InProgressStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''In Progress''
>
> BEGIN TRANSACTION
>
> IF @MemoryLimited is null
> BEGIN
> if @WorkQueuePriorityEnum is null
> BEGIN
> SELECT TOP (1) @StudyStorageGUID = WorkQueue.StudyStorageGUID,
> @WorkQueueGUID = WorkQueue.GUID,
> @WorkQueueTypeEnum = WorkQueueTypeEnum
> FROM WorkQueue WITH (READPAST,UPDLOCK)
> WHERE
> ScheduledTime < getdate()
> AND ( WorkQueue.WorkQueueStatusEnum in (@PendingStatusEnum,@IdleStatusEnum) )
> AND (EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND StudyStorage.ReadLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where WriteLock =1 ))
> OR EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where ReadLock = 1)))
> ORDER BY WorkQueue.ScheduledTime
> END
> ELSE
> BEGIN
> SELECT TOP (1) @StudyStorageGUID = WorkQueue.StudyStorageGUID,
> @WorkQueueGUID = WorkQueue.GUID,
> @WorkQueueTypeEnum = WorkQueueTypeEnum
> FROM WorkQueue WITH (READPAST,UPDLOCK)
> WHERE
> ScheduledTime < getdate()
> AND ( WorkQueue.WorkQueueStatusEnum in (@PendingStatusEnum,@IdleStatusEnum) )
> AND WorkQueuePriorityEnum = @WorkQueuePriorityEnum
> AND (EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND StudyStorage.ReadLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where WriteLock =1 ))
> OR EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where ReadLock = 1)))
> ORDER BY WorkQueue.ScheduledTime
> END
> END
> ELSE
> BEGIN
> if @WorkQueuePriorityEnum is null
> BEGIN
> SELECT TOP (1) @StudyStorageGUID = WorkQueue.StudyStorageGUID,
> @WorkQueueGUID = WorkQueue.GUID,
> @WorkQueueTypeEnum = WorkQueueTypeEnum
> FROM WorkQueue WITH (READPAST,UPDLOCK)
> JOIN
> StudyStorage ON StudyStorage.GUID = WorkQueue.StudyStorageGUID AND StudyStorage.WriteLock = 0
> WHERE
> ScheduledTime < getdate()
> AND WorkQueue.WorkQueueStatusEnum in (@PendingStatusEnum,@IdleStatusEnum)
> AND (EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND StudyStorage.ReadLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where WriteLock = 1 AND MemoryLimited=@MemoryLimited))
> OR EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND WorkQueueTypeEnum in (Select WorkQueueTypeEnum from WorkQueueTypeProperties where ReadLock = 1 AND MemoryLimited=@MemoryLimited)))
> ORDER BY WorkQueue.ScheduledTime
> END
> ELSE
> BEGIN
> SELECT TOP (1) @StudyStorageGUID = WorkQueue.StudyStorageGUID,
> @WorkQueueGUID = WorkQueue.GUID
> FROM WorkQueue WITH (READPAST,UPDLOCK)
> JOIN
> StudyStorage ON StudyStorage.GUID = WorkQueue.StudyStorageGUID AND StudyStorage.WriteLock = 0
> WHERE
> ScheduledTime < getdate()
> AND WorkQueue.WorkQueueStatusEnum in (@PendingStatusEnum,@IdleStatusEnum)
> AND WorkQueuePriorityEnum = @WorkQueuePriorityEnum
> AND (EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND StudyStorage.ReadLock = 0
> AND WorkQueueTypeEnum in (SELECT WorkQueueTypeEnum FROM WorkQueueTypeProperties WHERE WriteLock = 1 AND MemoryLimited=@MemoryLimited))
> OR EXISTS (SELECT GUID FROM StudyStorage WITH (READPAST)
> WHERE WorkQueue.StudyStorageGUID = StudyStorage.GUID
> AND StudyStorage.WriteLock = 0
> AND WorkQueueTypeEnum in (SELECT WorkQueueTypeEnum FROM WorkQueueTypeProperties WHERE ReadLock = 1 AND MemoryLimited=@MemoryLimited)))
> ORDER BY WorkQueue.ScheduledTime
> END
> END
>
> -- Get the Lock settings
> SELECT @WriteLock=WriteLock, @ReadLock=ReadLock
> FROM WorkQueueTypeProperties
> WHERE WorkQueueTypeEnum = @WorkQueueTypeEnum
>
> -- We have a record, now do the updates
>
> IF @WriteLock = 1
> BEGIN
> UPDATE StudyStorage
> SET WriteLock = 1, LastAccessedTime = getdate()
> WHERE
> WriteLock = 0
> AND ReadLock = 0
> AND GUID = @StudyStorageGUID
> END
> ELSE IF @ReadLock = 1
> BEGIN
> UPDATE StudyStorage
> SET ReadLock = ReadLock + 1, LastAccessedTime = getdate()
> WHERE
> WriteLock = 0
> AND GUID = @StudyStorageGUID
> END
>
> if (@@ROWCOUNT = 1)
> BEGIN
> UPDATE WorkQueue
> SET WorkQueueStatusEnum = @InProgressStatusEnum,
> ProcessorID = @ProcessorID
> WHERE
> GUID = @WorkQueueGUID
>
> COMMIT TRANSACTION
> END
> ELSE
> BEGIN
> -- In case the lock failed, reset GUID
> SET @WorkQueueGUID = newid()
>
> ROLLBACK TRANSACTION
> END
>
>
> -- If the first update failed, this should select 0 records
> SELECT *
> FROM WorkQueue
> WHERE WorkQueueStatusEnum = @InProgressStatusEnum
> AND GUID = @WorkQueueGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServerPartitionSopClasses] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServerPartitionSopClasses]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 13, 2007
> -- Description: Select all the SOP Classes for a Partition
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryServerPartitionSopClasses]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Insert statements for procedure here
> SELECT PartitionSopClass.GUID,
> PartitionSopClass.ServerPartitionGUID,
> PartitionSopClass.ServerSopClassGUID,
> PartitionSopClass.Enabled,
> ServerSopClass.SopClassUid,
> ServerSopClass.Description,
> ServerSopClass.NonImage
> FROM PartitionSopClass
> JOIN ServerSopClass on PartitionSopClass.ServerSopClassGUID = ServerSopClass.GUID
> WHERE PartitionSopClass.ServerPartitionGUID = @ServerPartitionGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServerPartitionTransferSyntaxes] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServerPartitionTransferSyntaxes]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 13, 2007
> -- Description: Select all the Transfer Syntaxes for a Partition
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryServerPartitionTransferSyntaxes]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Insert statements for procedure here
> SELECT PartitionTransferSyntax.GUID,
> PartitionTransferSyntax.ServerPartitionGUID,
> PartitionTransferSyntax.ServerTransferSyntaxGUID,
> PartitionTransferSyntax.Enabled,
> ServerTransferSyntax.Uid,
> ServerTransferSyntax.Description,
> ServerTransferSyntax.Lossless
> FROM PartitionTransferSyntax
> JOIN ServerTransferSyntax on PartitionTransferSyntax.ServerTransferSyntaxGUID = ServerTransferSyntax.GUID
> WHERE PartitionTransferSyntax.ServerPartitionGUID = @ServerPartitionGUID
> ORDER BY ServerTransferSyntax.Lossless DESC
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertFilesystem] Script Date: 01/08/2008 16:04:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertFilesystem]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: September 17, 2007
> -- Modification date: May 5, 2008
> -- Description:
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertFilesystem]
> -- Add the parameters for the stored procedure here
> @FilesystemTierEnum smallint,
> @FilesystemPath nvarchar(256),
> @Enabled bit = 1,
> @ReadOnly bit = 0,
> @WriteOnly bit = 0,
> @Description nvarchar(128),
> @HighWatermark decimal(6,2) = 90.00,
> @LowWatermark decimal(6,2) = 80.00
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Variables
> DECLARE @GUID uniqueidentifier
> DECLARE @FilesystemDeleteServiceLockTypeEnum smallint
> DECLARE @FilesystemReinventoryServiceLockTypeEnum smallint
> DECLARE @FilesystemStudyProcessServiceLockTypeEnum smallint
> DECLARE @FilesystemLosslessCompressServiceLockTypeEnum smallint
> DECLARE @FilesystemLossyCompressServiceLockTypeEnum smallint
> DECLARE @FilesystemRebuildXmlServiceLockTypeEnum smallint
> DECLARE @FilesystemFileImporterServiceLockTypeEnum smallint
>
>
> SET @GUID = newid()
> SELECT @FilesystemDeleteServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemDelete''
> SELECT @FilesystemReinventoryServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemReinventory''
> SELECT @FilesystemStudyProcessServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemStudyProcess''
> SELECT @FilesystemLosslessCompressServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemLosslessCompress''
> SELECT @FilesystemLossyCompressServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemLossyCompress''
> SELECT @FilesystemRebuildXmlServiceLockTypeEnum = Enum FROM ServiceLockTypeEnum WHERE [Lookup] = ''FilesystemRebuildXml''
>
> -- Insert statements
> BEGIN TRANSACTION
>
> INSERT INTO [ImageServerAlpha].[dbo].Filesystem
> ([GUID],[FilesystemTierEnum],[FilesystemPath],[Enabled],[ReadOnly],[WriteOnly],[Description], [HighWatermark], [LowWatermark])
> VALUES (@GUID, @FilesystemTierEnum, @FilesystemPath, @Enabled, @ReadOnly, @WriteOnly, @Description, @HighWatermark, @LowWatermark)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemDeleteServiceLockTypeEnum,0,getdate(),@GUID,1)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemReinventoryServiceLockTypeEnum,0,getdate(),@GUID,0)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemStudyProcessServiceLockTypeEnum,0,getdate(),@GUID,0)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemLosslessCompressServiceLockTypeEnum,0,getdate(),@GUID,1)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemLossyCompressServiceLockTypeEnum,0,getdate(),@GUID,1)
>
> INSERT INTO [ImageServerAlpha].[dbo].ServiceLock
> ([GUID],[ServiceLockTypeEnum],[Lock],[ScheduledTime],[FilesystemGUID],[Enabled])
> VALUES (newid(),@FilesystemRebuildXmlServiceLockTypeEnum,0,getdate(),@GUID,0)
>
> COMMIT TRANSACTION
>
> SELECT * FROM Filesystem where GUID = @GUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryServiceLock]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 14, 2007
> -- Description: Query for ServiceLock rows
> -- History:
> -- Apr 30, 2009: Added UPDLOCK on selects to lock the found row
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryServiceLock]
> -- Add the parameters for the stored procedure here
> @ProcessorId varchar(256),
> @ServiceLockTypeEnum smallint = 0
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.QueryServiceLock] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
> -- Added READPAST locking hint to this procedure. This should cause the query
> -- to just skip rows that are locked, going forward to any other row that
> -- satisfies the query. This mode is specifically recommended for work queue type tables.
>
> declare @ServiceLockGUID uniqueidentifier
>
> IF @ServiceLockTypeEnum = 0
> BEGIN
> SELECT TOP (1) @ServiceLockGUID = ServiceLock.GUID
> FROM ServiceLock WITH (READPAST,UPDLOCK)
> WHERE
> Enabled = 1
> AND ScheduledTime < getdate()
> AND ( ServiceLock.Lock = 0 )
> ORDER BY ServiceLock.ScheduledTime
> END
> ELSE
> BEGIN
> SELECT TOP (1) @ServiceLockGUID = ServiceLock.GUID
> FROM ServiceLock WITH (READPAST,UPDLOCK)
> WHERE
> Enabled = 1
> AND ScheduledTime < getdate()
> AND ServiceLock.ServiceLockTypeEnum = @ServiceLockTypeEnum
> AND ( ServiceLock.Lock = 0 )
> ORDER BY ServiceLock.ScheduledTime
> END
>
> -- We have a record, now do the updates
> IF @@ROWCOUNT != 0
> BEGIN
> UPDATE ServiceLock
> SET Lock = 1, ProcessorId = @ProcessorId
> WHERE
> Lock = 0
> AND GUID = @ServiceLockGUID
>
> if @@ROWCOUNT = 0
> BEGIN
> set @ServiceLockGUID = newid()
> END
> END
> ELSE
> BEGIN
> -- No valid records
> set @ServiceLockGUID = newid()
> END
>
> -- If the first update failed, this should select 0 records
> SELECT *
> FROM ServiceLock
> WHERE
> GUID = @ServiceLockGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[ResetServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetServiceLock]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 19, 2007
> -- Description:
> -- =============================================
> CREATE PROCEDURE [dbo].[ResetServiceLock]
> -- Add the parameters for the stored procedure here
> @ProcessorId varchar(256),
> @ServiceLockTypeEnum smallint = 0
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
>
> -- Insert statements for procedure here
>
> BEGIN TRANSACTION
>
> declare @ServiceLockGUID uniqueidentifier
> declare @Lock bit
>
> DECLARE cur_servicelock CURSOR FOR
> SELECT GUID, Lock FROM ServiceLock WHERE ProcessorId = @ProcessorId;
>
> OPEN cur_servicelock;
>
> FETCH NEXT FROM cur_servicelock INTO @ServiceLockGUID, @Lock;
> WHILE @@FETCH_STATUS = 0
> BEGIN
> IF @Lock = 1
> BEGIN
> UPDATE ServiceLock SET Lock = 0, ScheduledTime = getdate()
> WHERE GUID = @ServiceLockGUID
> END
> ELSE
> BEGIN
> UPDATE ServiceLock SET ProcessorId = null
> WHERE GUID = @ServiceLockGUID
> END
>
> FETCH NEXT FROM cur_servicelock INTO @ServiceLockGUID, @Lock;
> END
>
> CLOSE cur_servicelock;
> DEALLOCATE cur_servicelock;
>
> COMMIT TRANSACTION
>
> SELECT *
> FROM ServiceLock
> WHERE ProcessorId = @ProcessorId
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateServiceLock] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateServiceLock]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 14, 2007
> -- Description: Update the ServiceLock table
> -- =============================================
> CREATE PROCEDURE [dbo].[UpdateServiceLock]
> -- Add the parameters for the stored procedure here
> @ProcessorId varchar(256),
> @ServiceLockGUID uniqueidentifier,
> @Lock bit,
> @ScheduledTime datetime,
> @Enabled bit = 1
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Insert statements for procedure here
> UPDATE ServiceLock
> SET Lock = @Lock, ScheduledTime = @ScheduledTime,
> ProcessorID = @ProcessorID, Enabled = @Enabled
> WHERE GUID = @ServiceLockGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertFilesystemQueue] Script Date: 01/08/2008 16:04:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertFilesystemQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 14, 2007
> -- Modified date: May 21, 2008
> -- Description: Insert into FilesystemQueue
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertFilesystemQueue]
> -- Add the parameters for the stored procedure here
> @FilesystemQueueTypeEnum smallint,
> @StudyStorageGUID uniqueidentifier,
> @FilesystemGUID uniqueidentifier,
> @ScheduledTime datetime,
> @SeriesInstanceUid varchar(64) = null,
> @QueueXml xml = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @FilesystemQueueGUID uniqueidentifier
> DECLARE @ScheduledTimeInDb datetime
>
> SELECT @FilesystemQueueGUID = GUID, @ScheduledTimeInDb = ScheduledTime
> FROM FilesystemQueue
> WHERE StudyStorageGUID = @StudyStorageGUID AND FilesystemQueueTypeEnum = @FilesystemQueueTypeEnum
>
> IF @@ROWCOUNT > 0
> BEGIN
> IF @ScheduledTime > @ScheduledTimeInDb
> BEGIN
> UPDATE FilesystemQueue
> SET ScheduledTime = @ScheduledTime
> WHERE GUID = @FilesystemQueueGUID
> END
> END
> ELSE
> BEGIN
> -- Insert statements
> INSERT INTO [ImageServerAlpha].[dbo].[FilesystemQueue]
> ([GUID],[FilesystemQueueTypeEnum],[StudyStorageGUID],[FilesystemGUID],[ScheduledTime],[SeriesInstanceUid],[QueueXml])
> VALUES
> (newid(), @FilesystemQueueTypeEnum, @StudyStorageGUID, @FilesystemGUID, @ScheduledTime, @SeriesInstanceUid, @QueueXml)
> END
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteStudyStorage] Script Date: 01/08/2008 16:04:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteStudyStorage]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 19, 2007
> -- Update date: Oct 06, 2009
> -- Description: Completely delete a Study from the database
> -- History
> -- Oct 06, 2009: Delete StudyHistory record if DestStudyStorageGUID matches
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteStudyStorage]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @StudyInstanceUid varchar(64)
> declare @StudyGUID uniqueidentifier
> declare @PatientGUID uniqueidentifier
> declare @NumberOfStudyRelatedSeries int
> declare @NumberOfStudyRelatedInstances int
> declare @NumberOfPatientRelatedStudies int
>
> -- Select key values
> SELECT @StudyInstanceUid = StudyInstanceUid FROM StudyStorage WHERE GUID = @StudyStorageGUID
>
> SELECT @StudyGUID = GUID,
> @PatientGUID = PatientGUID,
> @NumberOfStudyRelatedSeries = NumberOfStudyRelatedSeries,
> @NumberOfStudyRelatedInstances = NumberOfStudyRelatedInstances
> FROM Study
> WHERE StudyStorageGUID = @StudyStorageGUID
>
>
> -- Now cleanup the more management related tables.
> DELETE FROM FilesystemQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM FilesystemStudyStorage
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM ArchiveQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM RestoreQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM ArchiveStudyStorage
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM WorkQueueUid
> WHERE WorkQueueGUID IN (SELECT GUID from WorkQueue WHERE StudyStorageGUID = @StudyStorageGUID)
>
> DELETE FROM WorkQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM StudyHistory
> WHERE StudyStorageGUID = @StudyStorageGUID OR DestStudyStorageGUID=@StudyStorageGUID
>
> DELETE FROM StudyIntegrityQueueUid
> WHERE StudyIntegrityQueueGUID IN (SELECT GUID from StudyIntegrityQueue WHERE StudyStorageGUID = @StudyStorageGUID)
>
> DELETE FROM StudyIntegrityQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> -- Delete the Study / Series / RequestAttributes tables, reduce counts or delete from Patient table
> DELETE FROM RequestAttributes
> WHERE SeriesGUID IN (select SeriesGUID from Series where StudyGUID = @StudyGUID)
>
> DELETE FROM Series
> WHERE StudyGUID = @StudyGUID
>
> DELETE FROM Study
> WHERE GUID = @StudyGUID
>
> -- Now Cleanup StudyStorage itself
> DELETE FROM StudyStorage
> WHERE GUID = @StudyStorageGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedStudies = NumberOfPatientRelatedStudies -1,
> NumberOfPatientRelatedSeries = NumberOfPatientRelatedSeries - @NumberOfStudyRelatedSeries,
> NumberOfPatientRelatedInstances = NumberOfPatientRelatedInstances - @NumberOfStudyRelatedInstances
> WHERE GUID = @PatientGUID
>
> UPDATE dbo.ServerPartition SET StudyCount=StudyCount-1
> WHERE GUID=@ServerPartitionGUID
>
> -- Do afterwards, in case multiple studies for the same patient are being deleted at once.
> SELECT @NumberOfPatientRelatedStudies = NumberOfPatientRelatedStudies
> FROM Patient
> WHERE GUID = @PatientGUID
>
> if @NumberOfPatientRelatedStudies = 0
> BEGIN
> DELETE FROM Patient
> WHERE GUID = @PatientGUID
> END
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryFilesystemQueue] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryFilesystemQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: November 14, 2007
> -- Description: Query for candidates from FilesystemQueue
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryFilesystemQueue]
> -- Add the parameters for the stored procedure here
> @FilesystemGUID uniqueidentifier,
> @FilesystemQueueTypeEnum smallint,
> @ScheduledTime datetime,
> @Results int
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Added READPAST locking hint to this procedure. This should cause the query
> -- to just skip rows that are locked, going forward to any other row that
> -- satisfies the query. This mode is specifically recommended for work queue type tables.
>
> SELECT TOP (@Results) *
> FROM FilesystemQueue WITH (READPAST)
> WHERE
> FilesystemGUID = @FilesystemGUID
> AND FilesystemQueueTypeEnum = @FilesystemQueueTypeEnum
> AND ScheduledTime < @ScheduledTime
> ORDER BY ScheduledTime
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertRequestAttributes] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertRequestAttributes]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 22, 2007
> -- Description: Insert RequestAttribute table entries
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertRequestAttributes]
> -- Add the parameters for the stored procedure here
> @SeriesGUID uniqueidentifier,
> @RequestedProcedureId nvarchar(16) = null,
> @ScheduledProcedureStepId nvarchar(16) = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Insert statements for procedure here
> if (@RequestedProcedureId is not null or @ScheduledProcedureStepId is not null)
> BEGIN
> if @RequestedProcedureId is null
> BEGIN
> SELECT GUID from RequestAttributes
> WHERE
> SeriesGUID = @SeriesGUID
> AND ScheduledProcedureStepId = @ScheduledProcedureStepId
> END
> ELSE IF @ScheduledProcedureStepId is null
> BEGIN
> SELECT GUID from RequestAttributes
> WHERE
> SeriesGUID = @SeriesGUID
> AND RequestedProcedureId = @RequestedProcedureId
> END
> ELSE
> BEGIN
> SELECT GUID from RequestAttributes
> WHERE
> SeriesGUID = @SeriesGUID
> AND RequestedProcedureId = @RequestedProcedureId
> AND ScheduledProcedureStepId = @ScheduledProcedureStepId
> END
>
> if @@ROWCOUNT = 0
> BEGIN
> INSERT into RequestAttributes
> (GUID, SeriesGUID, RequestedProcedureId, ScheduledProcedureStepId)
> VALUES
> (newid(), @SeriesGUID, @RequestedProcedureId, @ScheduledProcedureStepId)
> END
> END
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryModalitiesInStudy] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryModalitiesInStudy]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 29, 2007
> -- Description: Select modalties associated with a study
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryModalitiesInStudy]
> -- Add the parameters for the stored procedure here
> @StudyGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> -- Insert statements for procedure here
> SELECT DISTINCT Modality from Series where StudyGUID = @StudyGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertInstance] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertInstance]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 17, 2007
> -- Modified: April 24, 2008
> -- Description: Main insert routine for handling when new images are processed. This routine
> -- determines if Patient/Study/Series need to be inserted, or the counts updated.
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertInstance]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @PatientId nvarchar(64) = null,
> @PatientsName nvarchar(64) = null,
> @IssuerOfPatientId nvarchar(64) = null,
> @StudyInstanceUid varchar(64),
> @PatientsBirthDate varchar(8) = null,
> @PatientsSex varchar(2) = null,
> @StudyDate varchar(8) = null,
> @StudyTime varchar(16) = null,
> @AccessionNumber nvarchar(16) = null,
> @StudyId nvarchar(16) = null,
> @StudyDescription nvarchar(64) = null,
> @ReferringPhysiciansName nvarchar(64) = null,
> @SeriesInstanceUid varchar(64),
> @Modality varchar(16),
> @SeriesNumber varchar(12) = null,
> @SeriesDescription nvarchar(64) = null,
> @PerformedProcedureStepStartDate varchar(8) = null,
> @PerformedProcedureStepStartTime varchar(16) = null,
> @SourceApplicationEntityTitle varchar(16) = null,
> @SpecificCharacterSet varchar(128) = null,
> @PatientsAge varchar(4) = null
>
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @SeriesGUID uniqueidentifier
> declare @StudyGUID uniqueidentifier
> declare @PatientGUID uniqueidentifier
> declare @InsertPatient bit
> declare @InsertStudy bit
> declare @InsertSeries bit
>
> set @InsertPatient = 0
> set @InsertStudy = 0
> set @InsertSeries = 0
>
> BEGIN TRANSACTION
>
> -- First, check for the existance of the Study
> SELECT @StudyGUID = GUID,
> @PatientGUID = PatientGUID
> FROM Study
> WHERE ServerPartitionGUID = @ServerPartitionGUID
> AND StudyInstanceUid = @StudyInstanceUid
>
> IF @@ROWCOUNT = 0
> BEGIN
> -- No Study, Check for the Patient table
> if @IssuerOfPatientId is null
> BEGIN
> SELECT @PatientGUID = GUID
> FROM Patient
> WHERE ServerPartitionGUID = @ServerPartitionGUID
> AND PatientsName = @PatientsName
> AND PatientId = @PatientId
> END
> ELSE
> BEGIN
> SELECT @PatientGUID = GUID
> FROM Patient
> WHERE ServerPartitionGUID = @ServerPartitionGUID
> AND PatientsName = @PatientsName
> AND PatientId = @PatientId
> AND IssuerOfPatientId = @IssuerOfPatientId
> END
>
> IF @@ROWCOUNT = 0
> BEGIN
> set @PatientGUID = newid()
> set @InsertPatient = 1
>
> INSERT into Patient (GUID, ServerPartitionGUID, PatientsName, PatientId, IssuerOfPatientId, NumberOfPatientRelatedStudies, NumberOfPatientRelatedSeries, NumberOfPatientRelatedInstances,SpecificCharacterSet)
> VALUES
> (@PatientGUID, @ServerPartitionGUID, @PatientsName, @PatientId, @IssuerOfPatientId, 0,0,1,@SpecificCharacterSet)
> END
> ELSE
> BEGIN
> UPDATE Patient
> SET NumberOfPatientRelatedInstances = NumberOfPatientRelatedInstances + 1
> WHERE GUID = @PatientGUID
> END
>
> set @StudyGUID = newid()
> set @InsertStudy = 1
>
> INSERT into Study (GUID, ServerPartitionGUID, StudyStorageGUID, PatientGUID,
> StudyInstanceUid, PatientsName, PatientId, IssuerOfPatientId, PatientsBirthDate, PatientsAge,
> PatientsSex, StudyDate, StudyTime, AccessionNumber, StudyId,
> StudyDescription, ReferringPhysiciansName, NumberOfStudyRelatedSeries,
> NumberOfStudyRelatedInstances,SpecificCharacterSet)
> VALUES
> (@StudyGUID, @ServerPartitionGUID, @StudyStorageGUID, @PatientGUID,
> @StudyInstanceUid, @PatientsName, @PatientId, @IssuerOfPatientId, @PatientsBirthDate, @PatientsAge,
> @PatientsSex, @StudyDate, @StudyTime, @AccessionNumber, @StudyId,
> @StudyDescription, @ReferringPhysiciansName, 0, 1,@SpecificCharacterSet)
>
> UPDATE dbo.ServerPartition SET StudyCount=StudyCount+1
> WHERE GUID=@ServerPartitionGUID
>
>
> UPDATE Patient
> SET NumberOfPatientRelatedStudies = NumberOfPatientRelatedStudies + 1
> WHERE GUID = @PatientGUID
>
> END
> ELSE
> BEGIN
> UPDATE Patient
> SET NumberOfPatientRelatedInstances = NumberOfPatientRelatedInstances + 1
> WHERE GUID = @PatientGUID
>
> -- Update Study, Patient TablesNext, the Study Table
> UPDATE Study
> SET NumberOfStudyRelatedInstances = NumberOfStudyRelatedInstances + 1
> WHERE GUID = @StudyGUID
>
> END
>
> -- Finally, the Series Table
> SELECT @SeriesGUID = GUID
> FROM Series
> WHERE
> ServerPartitionGUID = @ServerPartitionGUID
> AND StudyGUID = @StudyGUID
> AND SeriesInstanceUid = @SeriesInstanceUid
>
> IF @@ROWCOUNT = 0
> BEGIN
> set @SeriesGUID = newid()
> set @InsertSeries = 1
>
> INSERT into Series (GUID, ServerPartitionGUID, StudyGUID,
> SeriesInstanceUid, Modality, SeriesNumber, SeriesDescription,
> NumberOfSeriesRelatedInstances, PerformedProcedureStepStartDate,
> PerformedProcedureStepStartTime, SourceApplicationEntityTitle)
> VALUES
> (@SeriesGUID, @ServerPartitionGUID, @StudyGUID,
> @SeriesInstanceUid, @Modality, @SeriesNumber, @SeriesDescription,
> 1,@PerformedProcedureStepStartDate, @PerformedProcedureStepStartTime,
> @SourceApplicationEntityTitle)
>
> UPDATE Study
> SET NumberOfStudyRelatedSeries = NumberOfStudyRelatedSeries + 1
> WHERE GUID = @StudyGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedSeries = NumberOfPatientRelatedSeries + 1
> WHERE GUID = @PatientGUID
> END
> ELSE
> BEGIN
> UPDATE Series
> SET NumberOfSeriesRelatedInstances = NumberOfSeriesRelatedInstances + 1
> WHERE GUID = @SeriesGUID
> END
>
> COMMIT TRANSACTION
>
> -- Return the resultant keys
> SELECT @ServerPartitionGUID as ServerPartitionGUID,
> @StudyStorageGUID as StudyStorageGUID,
> @PatientGUID as PatientGUID,
> @StudyGUID as StudyGUID,
> @SeriesGUID as SeriesGUID,
> @InsertPatient as InsertPatient,
> @InsertStudy as InsertStudy,
> @InsertSeries as InsertSeries
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertStudyStorage] Script Date: 01/08/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertStudyStorage]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: 7/30/2007
> -- Description: Called when a new study is received.
> -- History:
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertStudyStorage]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @StudyInstanceUid varchar(64),
> @Folder varchar(8),
> @FilesystemGUID uniqueidentifier,
> @TransferSyntaxUid varchar(64),
> @StudyStatusEnum smallint,
> @QueueStudyStateEnum smallint
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @StudyStorageGUID as uniqueidentifier
> declare @ServerTransferSyntaxGUID as uniqueidentifier
>
> select @ServerTransferSyntaxGUID = GUID from ServerTransferSyntax where Uid = @TransferSyntaxUid
>
> SELECT @StudyStorageGUID=GUID FROM StudyStorage
> WHERE ServerPartitionGUID = @ServerPartitionGUID AND StudyInstanceUid = @StudyInstanceUid
> IF @@ROWCOUNT = 0
> BEGIN
> set @StudyStorageGUID = NEWID()
>
> INSERT into StudyStorage(GUID, ServerPartitionGUID, StudyInstanceUid, WriteLock, ReadLock, StudyStatusEnum, QueueStudyStateEnum)
> values (@StudyStorageGUID, @ServerPartitionGUID, @StudyInstanceUid, 0, 0, @StudyStatusEnum, @QueueStudyStateEnum)
> END
> ELSE
> BEGIN
> declare @StudyGUID as uniqueidentifier
>
> SELECT @StudyGUID = GUID FROM Study WHERE ServerPartitionGUID = @ServerPartitionGUID AND StudyInstanceUid = @StudyInstanceUid
> UPDATE StudyStorage SET StudyStatusEnum = @StudyStatusEnum WHERE ServerPartitionGUID = @ServerPartitionGUID AND StudyInstanceUid = @StudyInstanceUid
>
> END
>
> INSERT into FilesystemStudyStorage(GUID, StudyStorageGUID, FilesystemGUID, StudyFolder, ServerTransferSyntaxGUID)
> values (NEWID(), @StudyStorageGUID, @FilesystemGUID, @Folder, @ServerTransferSyntaxGUID)
>
>
> -- Return the study location
> declare @RC int
>
> -- Have to include all parameters!
> EXECUTE @RC = [ImageServerAlpha].[dbo].[QueryStudyStorageLocation]
> @StudyStorageGUID
> ,@ServerPartitionGUID
> ,@StudyInstanceUid
> END
> '
> END
> GO

Command completed successfully.

>
> set ANSI_NULLS ON
> set QUOTED_IDENTIFIER ON
> go

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[DeleteServerPartition] Script Date: 04/24/2008 16:04:34 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteServerPartition]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: April 24, 2008
> -- Update date: April 24, 2008
> -- Description: Completely delete a Server Partition from the database.
> -- This involves deleting devies, rules,
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteServerPartition]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @DeleteStudies bit = 0
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> Declare @DeviceGUID uniqueidentifier
> Declare @StudyStorageGUID uniqueidentifier
>
> /* DELETE DEVICE AND RELATED TABLES */
> DECLARE DeviceCursor Cursor For Select GUID from dbo.Device where ServerPartitionGUID=@ServerPartitionGUID
> Open DeviceCursor
> Fetch NEXT FROM DeviceCursor INTO @DeviceGUID
> While (@@FETCH_STATUS <> -1)
> BEGIN
> -- PRINT ''Deleting DevicePreferredTransferSyntax''
> delete dbo.DevicePreferredTransferSyntax where DeviceGUID=@DeviceGUID
> --PRINT ''Deleting WorkQueueUid''
> delete dbo.WorkQueueUid where WorkQueueGUID in (select GUID from dbo.WorkQueue where DeviceGUID=@DeviceGUID)
> --PRINT ''Deleting WorkQueue''
> delete dbo.WorkQueue where DeviceGUID=@DeviceGUID
> Fetch NEXT FROM DeviceCursor INTO @DeviceGUID
> END
> CLOSE DeviceCursor
> DEALLOCATE DeviceCursor
> --PRINT ''Deleting Device''
> delete dbo.Device where ServerPartitionGUID=@ServerPartitionGUID
>
> /* DELETE STUDYSTORAGE AND RELATED TABLES */
> DECLARE StudyStorageCursor Cursor For Select GUID from dbo.StudyStorage where ServerPartitionGUID=@ServerPartitionGUID
> Open StudyStorageCursor
> Fetch NEXT FROM StudyStorageCursor INTO @StudyStorageGUID
> While (@@FETCH_STATUS <> -1)
> BEGIN
> --PRINT ''Deleting FilesystemQueue''
> delete dbo.FilesystemQueue where StudyStorageGUID=@StudyStorageGUID
> --PRINT ''Deleting FilesystemStudyStorage''
> delete dbo.FilesystemStudyStorage where StudyStorageGUID=@StudyStorageGUID
> --PRINT ''Deleting WorkQueueUid''
> delete dbo.WorkQueueUid where WorkQueueGUID in (select GUID from dbo.WorkQueue where StudyStorageGUID=@StudyStorageGUID)
> --PRINT ''Deleting WorkQueue''
> delete dbo.WorkQueue where StudyStorageGUID=@StudyStorageGUID
> delete dbo.StudyHistory where StudyStorageGUID=@StudyStorageGUID
> Fetch NEXT FROM StudyStorageCursor INTO @StudyStorageGUID
> END
> CLOSE StudyStorageCursor
> DEALLOCATE StudyStorageCursor
> --PRINT ''Deleting StudyStorage''
> delete dbo.StudyStorage where ServerPartitionGUID=@ServerPartitionGUID
>
> /* DELETE WORKQUEUE AND RELATED TABLES */
> --PRINT ''Deleting WorkQueueUid''
> delete dbo.WorkQueueUid where WorkQueueGUID in (select GUID from dbo.WorkQueue where StudyStorageGUID=@StudyStorageGUID)
> --PRINT ''Deleting WorkQueue''
> delete dbo.WorkQueue where ServerPartitionGUID=@ServerPartitionGUID
> --PRINT ''Deleting PartitionSopClass''
> delete dbo.PartitionSopClass where ServerPartitionGUID=@ServerPartitionGUID
> --PRINT ''Deleting PartitionTransferSyntax''
> delete dbo.PartitionTransferSyntax where ServerPartitionGUID=@ServerPartitionGUID
>
> --PRINT ''Deleting ServerRule''
> delete dbo.ServerRule where ServerPartitionGUID=@ServerPartitionGUID
>
> IF @DeleteStudies=1
> BEGIN
> /* DELETE STUDY, PATIENT AND RELATED TABLES */
> delete dbo.RequestAttributes where SeriesGUID in (Select GUID from dbo.Series where ServerPartitionGUID=@ServerPartitionGUID)
> delete dbo.Series where ServerPartitionGUID=@ServerPartitionGUID
> delete dbo.Study where ServerPartitionGUID=@ServerPartitionGUID
> delete dbo.Patient where ServerPartitionGUID=@ServerPartitionGUID
> END
>
> --PRINT ''Deleting ServerPartition''
> delete dbo.ServerPartition where GUID=@ServerPartitionGUID
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteWorkQueue] Script Date: 04/26/2008 00:28:22 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: April 24, 2008
> -- Update date: Oct 14, 2008
> -- Description: Stored procedure for deleting WorkQueue entries
> --
> -- Oct 14, 2008: Call UpdateQueueStudyState to update the study status
> -- Oct 23, 2008: Removed UpdateQueueStudyState
> -- Oct 26, 2009: Added UpdateStudyStateFromWorkQueue
> -- Oct 27, 2009: Added CleanupDuplicate
> -- Oct 29, 2009: Added WriteLock/ReadLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteWorkQueue]
> -- Add the parameters for the stored procedure here
> @WorkQueueGUID uniqueidentifier,
> @ServerPartitionGUID uniqueidentifier,
> @WorkQueueTypeEnum smallint,
> @StudyStorageGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyProcessTypeEnum as smallint
> select @StudyProcessTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''StudyProcess''
> DECLARE @ReconcileStudyTypeEnum as smallint
> select @ReconcileStudyTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''ReconcileStudy''
> DECLARE @ProcessDuplicateTypeEnum as smallint
> select @ProcessDuplicateTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''ProcessDuplicate''
>
>
> DECLARE @PendingStatusEnum as smallint
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
>
> DECLARE @FailedStatusEnum as smallint
> select @FailedStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Failed''
>
> DECLARE @HighPriorityEnum as smallint
> select @HighPriorityEnum = Enum from WorkQueuePriorityEnum where Lookup = ''High''
>
> DECLARE @QueueStudyStateIdle as smallint
> select @QueueStudyStateIdle = Enum from QueueStudyStateEnum where Lookup = ''Idle''
>
> DECLARE @NextQueueEntryGUID uniqueidentifier
>
> DECLARE @ReadLock as bit
> DECLARE @WriteLock as bit
>
> SELECT @ReadLock=ReadLock, @WriteLock=WriteLock
> FROM WorkQueue
> JOIN WorkQueueTypeProperties on
> WorkQueue.WorkQueueTypeEnum = WorkQueueTypeProperties.WorkQueueTypeEnum
> WHERE WorkQueue.GUID = @WorkQueueGUID
>
> BEGIN TRANSACTION
>
> IF @ReadLock = 1
> BEGIN
> UPDATE StudyStorage set ReadLock = ReadLock+1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID
> END
> ELSE IF @WriteLock=1
> BEGIN
> UPDATE StudyStorage set WriteLock = 1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND WriteLock = 0
> END
>
> if (@@ROWCOUNT = 1)
> BEGIN
> -- Make sure we lock the study, so no one else can get it
> COMMIT TRANSACTION
>
> -- Find the study state for this work queue entry
> declare @NextState smallint
>
>
> BEGIN TRANSACTION
>
> -- Create ''CleanupStudy'' when deleting ''StudyProcess''
> IF (@workQueueTypeEnum = @StudyProcessTypeEnum)
> BEGIN
> declare @CleanupStudyTypeEnum as smallint
> select @CleanupStudyTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''CleanupStudy''
> declare @NewWorkQueueGUID uniqueidentifier
> set @NewWorkQueueGUID = NEWID();
>
> INSERT into WorkQueue (GUID, ServerPartitionGUID, StudyStorageGUID, WorkQueueTypeEnum, WorkQueueStatusEnum, ExpirationTime, ScheduledTime, WorkQueuePriorityEnum)
> values (@NewWorkQueueGUID, @ServerPartitionGUID, @StudyStorageGUID, @CleanupStudyTypeEnum, @PendingStatusEnum, getdate(), getdate(),@HighPriorityEnum)
>
> UPDATE WorkQueueUid set WorkQueueGUID = @NewWorkQueueGUID , Failed=0, FailureCount=0
> WHERE WorkQueueGUID = @WorkQueueGUID
>
> DELETE FROM WorkQueue where GUID = @WorkQueueGUID
> END
> -- Create ''CleanupDuplicate'' when deleting ''ProcessDuplicate''
> ELSE IF (@workQueueTypeEnum = @ProcessDuplicateTypeEnum)
> BEGIN
> declare @CleanupDuplicateTypeEnum as smallint
> select @CleanupDuplicateTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''CleanupDuplicate''
> set @NewWorkQueueGUID = NEWID();
>
> INSERT WorkQueue(GUID, ServerPartitionGUID, StudyStorageGUID, WorkQueueTypeEnum, WorkQueueStatusEnum, ExpirationTime, ScheduledTime, WorkQueuePriorityEnum, Data, GroupID)
> SELECT @NewWorkQueueGUID, ServerPartitionGUID, StudyStorageGUID, @CleanupDuplicateTypeEnum, @PendingStatusEnum, DATEADD(minute, 15, getdate()), getdate(), @HighPriorityEnum, Data, GroupID
> FROM WorkQueue WITH(NOLOCK)
> WHERE GUID=@WorkQueueGUID
>
> UPDATE WorkQueueUid set WorkQueueGUID = @NewWorkQueueGUID, Failed=0, FailureCount=0
> WHERE WorkQueueGUID = @WorkQueueGUID
>
> DELETE FROM WorkQueue where GUID = @WorkQueueGUID
> END
> -- Create ''ReconcileCleanup'' when deleting ''ReconcileStudy''
> ELSE IF (@workQueueTypeEnum = @ReconcileStudyTypeEnum)
> BEGIN
> DECLARE @StudyHistoryGUID as uniqueidentifier
> DECLARE @CleanupReconcileTypeEnum as smallint
> SELECT @CleanupReconcileTypeEnum = Enum from WorkQueueTypeEnum where Lookup = ''ReconcileCleanup''
>
> SET @NewWorkQueueGUID = NEWID();
> SELECT @StudyHistoryGUID=StudyHistoryGUID FROM WorkQueue WHERE GUID=@WorkQueueGUID
>
> INSERT WorkQueue (GUID, ServerPartitionGUID, StudyStorageGUID, WorkQueueTypeEnum, WorkQueueStatusEnum, ExpirationTime, ScheduledTime, WorkQueuePriorityEnum)
> values (@NewWorkQueueGUID, @ServerPartitionGUID, @StudyStorageGUID, @CleanupReconcileTypeEnum, @PendingStatusEnum, getdate(), getdate(),@HighPriorityEnum)
>
> UPDATE newrec
> SET newrec.Data = oldrec.Data
> FROM WorkQueue newrec, WorkQueue oldrec
> WHERE oldrec.GUID=@WorkQueueGUID and newrec.GUID=@NewWorkQueueGUID
>
> UPDATE WorkQueueUid set WorkQueueGUID = @NewWorkQueueGUID , Failed=0, FailureCount=0
> WHERE WorkQueueGUID = @WorkQueueGUID
>
> DELETE FROM WorkQueue where GUID = @WorkQueueGUID
>
> -- Delete the study history to force user to manually deal with new images later.
> DELETE StudyHistory WHERE GUID=@StudyHistoryGUID
>
> END
> ELSE
> BEGIN
> DELETE FROM WorkQueueUid WHERE WorkQueueGUID = @WorkQueueGUID
> DELETE FROM WorkQueue WHERE GUID = @WorkQueueGUID;
> END
>
> IF @ReadLock = 1
> BEGIN
> UPDATE StudyStorage set ReadLock = ReadLock-1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND ReadLock > 0
> END
> ELSE IF @WriteLock=1
> BEGIN
> UPDATE StudyStorage set WriteLock = 0, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND WriteLock = 1
> END
> EXEC dbo.UpdateStudyStateFromWorkQueue @StudyStorageGUID=@StudyStorageGUID
>
> COMMIT TRANSACTION
> END
> ELSE
> BEGIN
> ROLLBACK TRANSACTION
> RAISERROR (N''Study could not be locked for deletion of WorkQueue entry.'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> END
>
> --EXEC UpdateQueueStudyState @StudyStorageGUID
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertArchiveQueue] Script Date: 07/11/2008 13:04:37 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertArchiveQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 11, 2008
> -- Update date: Oct 15, 2008
> -- Description: Insert and/or update the appropriate ArchiveQueue records
> --
> -- Oct 15, 2008: Removed Update parameter and insert new entry if the study has been archive so that edit can trigger rearchive
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertArchiveQueue]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyDeleteTypeEnum smallint
> DECLARE @StudyPurgeTypeEnum smallint
> DECLARE @PendingArchiveQueueStatus smallint
> DECLARE @StudyDeleteCount int
> DECLARE @StudyPurgeCount int
> DECLARE @ArchiveStudyStorageCount int
> DECLARE @ArchiveDelayHours int
> DECLARE @PartitionArchiveGUID uniqueidentifier
>
> SELECT @StudyDeleteTypeEnum = Enum from FilesystemQueueTypeEnum where Lookup = ''DeleteStudy''
> SELECT @StudyPurgeTypeEnum = Enum from FilesystemQueueTypeEnum where Lookup = ''PurgeStudy''
> SELECT @PendingArchiveQueueStatus = Enum from ArchiveQueueStatusEnum where Lookup = ''Pending''
>
> BEGIN TRANSACTION
>
> -- Check if there''s any DeleteStudy records in the db
> SELECT @StudyDeleteCount=count(*) FROM FilesystemQueue
> WHERE FilesystemQueueTypeEnum=@StudyDeleteTypeEnum
> AND StudyStorageGUID=@StudyStorageGUID
>
> -- Check if there''s any PurgeStudy records in the db
> SELECT @StudyPurgeCount=count(*) FROM FilesystemQueue
> WHERE FilesystemQueueTypeEnum=@StudyPurgeTypeEnum
> AND StudyStorageGUID=@StudyStorageGUID
>
>
> IF @StudyDeleteCount = 0
> BEGIN
> -- Use a cursor to find all the configured ArchiveQueue entries
> DECLARE PartitionArchiveCursor Cursor FOR
> SELECT GUID, ArchiveDelayHours from dbo.PartitionArchive WHERE ServerPartitionGUID=@ServerPartitionGUID AND Enabled=1 AND ReadOnly=0
> Open PartitionArchiveCursor
> Fetch NEXT FROM PartitionArchiveCursor INTO @PartitionArchiveGUID, @ArchiveDelayHours
> While (@@FETCH_STATUS <> -1)
> BEGIN
> -- Check if the study''s been already archived
> SELECT @ArchiveStudyStorageCount=count(*) FROM ArchiveStudyStorage
> WHERE StudyStorageGUID=@StudyStorageGUID
> AND PartitionArchiveGUID = @PartitionArchiveGUID
>
> DECLARE @ArchiveQueueGUID uniqueidentifier
> DECLARE @ScheduledTime datetime
>
> set @ScheduledTime = getdate()
> set @ScheduledTime = dateadd(hour, @ArchiveDelayHours, @ScheduledTime)
>
> SELECT @ArchiveQueueGUID = GUID from ArchiveQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
> AND PartitionArchiveGUID = @PartitionArchiveGUID
> AND ArchiveQueueStatusEnum = @PendingArchiveQueueStatus
> if @@ROWCOUNT = 0
> BEGIN
> -- There''s no Pending archive entry, insert one
> SET @ArchiveQueueGUID = NEWID();
>
> INSERT into ArchiveQueue (GUID, PartitionArchiveGUID, StudyStorageGUID, ArchiveQueueStatusEnum, ScheduledTime)
> values (@ArchiveQueueGUID, @PartitionArchiveGUID, @StudyStorageGUID, @PendingArchiveQueueStatus, @ScheduledTime)
> END
> ELSE
> BEGIN
> UPDATE ArchiveQueue SET ScheduledTime = @ScheduledTime
> WHERE StudyStorageGUID = @StudyStorageGUID
> AND PartitionArchiveGUID = @PartitionArchiveGUID
> AND ArchiveQueueStatusEnum = @PendingArchiveQueueStatus
> END
>
> Fetch NEXT FROM PartitionArchiveCursor INTO @PartitionArchiveGUID, @ArchiveDelayHours
> END
> CLOSE PartitionArchiveCursor
> DEALLOCATE PartitionArchiveCursor
>
> IF @StudyPurgeCount > 0
> BEGIN
> DELETE FROM FilesystemQueue
> WHERE FilesystemQueueTypeEnum=@StudyPurgeTypeEnum
> AND StudyStorageGUID=@StudyStorageGUID
> END
> END
> ELSE
> BEGIN
> -- Delete from the ArchiveQueue, the study is scheduled for deletion
> -- In most cases this should delete no rows
> DELETE FROM ArchiveQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
> AND ArchiveQueueStatusEnum = @PendingArchiveQueueStatus
> END
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateArchiveQueue] Script Date: 07/14/2008 10:43:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateArchiveQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 14, 2008
> -- Description: Update an ArchiveQueue row
> -- History:
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[UpdateArchiveQueue]
> @ArchiveQueueGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @ScheduledTime datetime = null,
> @ArchiveQueueStatusEnum smallint,
> @FailureDescription nvarchar(512) = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @CompletedStatusEnum as int
> declare @PendingStatusEnum as int
> declare @FailedStatusEnum as int
>
> select @CompletedStatusEnum = Enum from ArchiveQueueStatusEnum where Lookup = ''Completed''
> select @PendingStatusEnum = Enum from ArchiveQueueStatusEnum where Lookup = ''Pending''
> select @FailedStatusEnum = Enum from ArchiveQueueStatusEnum where Lookup = ''Failed''
>
> BEGIN TRANSACTION
>
> if @ArchiveQueueStatusEnum = @CompletedStatusEnum
> BEGIN
> -- Completed
> DELETE FROM ArchiveQueue where GUID = @ArchiveQueueGUID
>
> UPDATE StudyStorage set ReadLock = ReadLock-1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND ReadLock>0
> END
> ELSE
> BEGIN
> IF @FailureDescription is NULL
> BEGIN
> UPDATE ArchiveQueue
> SET ArchiveQueueStatusEnum = @ArchiveQueueStatusEnum, ScheduledTime = @ScheduledTime,
> ProcessorID = Null
> WHERE GUID = @ArchiveQueueGUID
> END
> ELSE
> BEGIN
> UPDATE ArchiveQueue
> SET ArchiveQueueStatusEnum = @ArchiveQueueStatusEnum, ScheduledTime = @ScheduledTime,
> ProcessorID = Null, FailureDescription = @FailureDescription
> WHERE GUID = @ArchiveQueueGUID
> END
> UPDATE StudyStorage set ReadLock = ReadLock-1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND ReadLock > 0
> END
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryArchiveQueue] Script Date: 07/14/2008 10:43:32 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryArchiveQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 14, 2008
> -- Description: Query for entries in the ArchiveQueue
> -- History:
> -- Apr 30, 2009 : Added UPDLOCK on selects to lock the found row
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryArchiveQueue]
> -- Add the parameters for the stored procedure here
> @PartitionArchiveGUID uniqueidentifier,
> @ProcessorID varchar(256)
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.QueryArchiveQueue] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
> -- Added READPAST locking hint to this procedure. This should cause the query
> -- to just skip rows that are locked, going forward to any other row that
> -- satisfies the query. This mode is specifically recommended for work queue type tables.
>
> declare @StudyStorageGUID uniqueidentifier
> declare @ArchiveQueueGUID uniqueidentifier
> declare @PendingStatusEnum as int
> declare @InProgressStatusEnum as int
>
> select @PendingStatusEnum = Enum from ArchiveQueueStatusEnum where Lookup = ''Pending''
> select @InProgressStatusEnum = Enum from ArchiveQueueStatusEnum where Lookup = ''In Progress''
>
> BEGIN TRANSACTION
>
> SELECT TOP (1) @StudyStorageGUID = ArchiveQueue.StudyStorageGUID,
> @ArchiveQueueGUID = ArchiveQueue.GUID
> FROM ArchiveQueue WITH (READPAST, UPDLOCK)
> JOIN
> StudyStorage ON StudyStorage.GUID = ArchiveQueue.StudyStorageGUID AND StudyStorage.WriteLock = 0
> WHERE
> ScheduledTime < getdate()
> AND ArchiveQueue.PartitionArchiveGUID = @PartitionArchiveGUID
> AND ArchiveQueue.ArchiveQueueStatusEnum = @PendingStatusEnum
> AND NOT EXISTS (SELECT GUID FROM WorkQueue WHERE ArchiveQueue.StudyStorageGUID = WorkQueue.StudyStorageGUID)
> ORDER BY ArchiveQueue.ScheduledTime
>
> if @@ROWCOUNT != 0
> BEGIN
> -- We have a record, now do the updates
>
> UPDATE StudyStorage
> SET ReadLock = ReadLock+1, LastAccessedTime = getdate()
> WHERE
> WriteLock = 0
> AND GUID = @StudyStorageGUID
>
> if (@@ROWCOUNT = 1)
> BEGIN
> UPDATE ArchiveQueue
> SET ArchiveQueueStatusEnum = @InProgressStatusEnum,
> ProcessorID = @ProcessorID
> WHERE
> GUID = @ArchiveQueueGUID
>
> COMMIT TRANSACTION
> END
> ELSE
> BEGIN
> -- In case the lock failed, reset GUID
> SET @ArchiveQueueGUID = newid()
>
> ROLLBACK TRANSACTION
> END
> END
> ELSE
> BEGIN
> ROLLBACK TRANSACTION
> -- No matching rows, just create a GUID that will not find any rows.
> SET @ArchiveQueueGUID = newid()
> END
>
> -- If the first update failed, this should select 0 records
> SELECT *
> FROM ArchiveQueue
> WHERE ArchiveQueueStatusEnum = @InProgressStatusEnum
> AND GUID = @ArchiveQueueGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[QueryRestoreQueue] Script Date: 07/14/2008 10:43:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryRestoreQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 14, 2008
> -- Description: Query for entries in the RestoreQueue
> -- History:
> -- Apr 30, 2009 : Added UPDLOCK on selects to lock the found row
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryRestoreQueue]
> @PartitionArchiveGUID uniqueidentifier,
> @RestoreQueueStatusEnum smallint,
> @ProcessorID varchar(256)
> AS
> BEGIN
> SET NOCOUNT ON;
>
> if (@ProcessorID is NULL)
> begin
> RAISERROR (N''Calling [dbo.QueryRestoreQueue] with @ProcessorID = NULL'', 18 /* severity.. >=20 means fatal but needs sysadmin role*/, 1 /*state*/)
> RETURN 50000
> end
>
> -- Added READPAST locking hint to this procedure. This should cause the query
> -- to just skip rows that are locked, going forward to any other row that
> -- satisfies the query. This mode is specifically recommended for work queue type tables.
>
> declare @StudyStorageGUID uniqueidentifier
> declare @RestoreQueueGUID uniqueidentifier
> declare @InProgressStatusEnum as int
>
> select @InProgressStatusEnum = Enum from RestoreQueueStatusEnum where Lookup = ''In Progress''
>
> BEGIN TRANSACTION
>
> SELECT TOP (1) @StudyStorageGUID = RestoreQueue.StudyStorageGUID,
> @RestoreQueueGUID = RestoreQueue.GUID
> FROM RestoreQueue WITH (READPAST,UPDLOCK)
> JOIN
> StudyStorage ON StudyStorage.GUID = RestoreQueue.StudyStorageGUID AND StudyStorage.WriteLock = 0
> JOIN
> ArchiveStudyStorage ON ArchiveStudyStorage.GUID = RestoreQueue.ArchiveStudyStorageGUID
> WHERE
> ScheduledTime < getdate()
> AND ArchiveStudyStorage.PartitionArchiveGUID = @PartitionArchiveGUID
> AND RestoreQueue.RestoreQueueStatusEnum = @RestoreQueueStatusEnum
> ORDER BY RestoreQueue.ScheduledTime
>
> IF @@ROWCOUNT != 0
> BEGIN
> -- We have a record, now do the updates
>
> UPDATE StudyStorage
> SET WriteLock = 1, LastAccessedTime = getdate()
> WHERE
> WriteLock = 0
> AND GUID = @StudyStorageGUID
>
> if (@@ROWCOUNT = 1)
> BEGIN
> UPDATE RestoreQueue
> SET RestoreQueueStatusEnum = @InProgressStatusEnum,
> ProcessorID = @ProcessorID
> WHERE
> GUID = @RestoreQueueGUID
>
> COMMIT TRANSACTION
> END
> ELSE
> BEGIN
> -- In case the lock failed, reset GUID
> SET @RestoreQueueGUID = newid()
>
> ROLLBACK TRANSACTION
> END
> END
> ELSE
> BEGIN
> ROLLBACK TRANSACTION
> -- No eligible rows, just reset the GUID
> SET @RestoreQueueGUID = newid()
> END
>
> -- If the first update failed, this should select 0 records
> SELECT *
> FROM RestoreQueue
> WHERE RestoreQueueStatusEnum = @InProgressStatusEnum
> AND GUID = @RestoreQueueGUID
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[UpdateRestoreQueue] Script Date: 07/14/2008 10:43:33 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateRestoreQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 14, 2008
> -- Description: Update an RestoreQueue row
> -- History:
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[UpdateRestoreQueue]
> @RestoreQueueGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @ScheduledTime datetime = null,
> @RestoreQueueStatusEnum smallint,
> @FailureDescription nvarchar(512) = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @CompletedStatusEnum as int
> declare @PendingStatusEnum as int
> declare @FailedStatusEnum as int
>
> select @CompletedStatusEnum = Enum from RestoreQueueStatusEnum where Lookup = ''Completed''
> select @PendingStatusEnum = Enum from RestoreQueueStatusEnum where Lookup = ''Pending''
> select @FailedStatusEnum = Enum from RestoreQueueStatusEnum where Lookup = ''Failed''
>
> BEGIN TRANSACTION
>
> if @RestoreQueueStatusEnum = @CompletedStatusEnum
> BEGIN
> -- Completed
> DELETE FROM RestoreQueue where GUID = @RestoreQueueGUID
>
> UPDATE StudyStorage set WriteLock = 0, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND WriteLock = 1
> END
> ELSE
> BEGIN
> IF @FailureDescription is NULL
> BEGIN
> UPDATE RestoreQueue
> SET RestoreQueueStatusEnum = @RestoreQueueStatusEnum, ScheduledTime = @ScheduledTime,
> ProcessorID = Null
> WHERE GUID = @RestoreQueueGUID
> END
> ELSE
> BEGIN
> UPDATE RestoreQueue
> SET RestoreQueueStatusEnum = @RestoreQueueStatusEnum, ScheduledTime = @ScheduledTime,
> ProcessorID = Null, FailureDescription = @FailureDescription
> WHERE GUID = @RestoreQueueGUID
> END
>
> UPDATE StudyStorage set WriteLock = 0, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND WriteLock = 1
> END
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[DeleteFilesystemStudyStorage] Script Date: 07/16/2008 15:46:29 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteFilesystemStudyStorage]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 16, 2008
> -- Description: Make a study go offline/nearline
> -- History:
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteFilesystemStudyStorage]
> -- Add the parameters for the stored procedure here
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @StudyStatusEnum smallint
>
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @StudyInstanceUid varchar(64)
> declare @StudyGUID uniqueidentifier
> declare @IdleQueueStudyStateEnum smallint
>
> SELECT @IdleQueueStudyStateEnum=Enum FROM QueueStudyStateEnum WHERE Lookup=''Idle''
>
> -- Select key values
> SELECT @StudyInstanceUid = StudyInstanceUid FROM StudyStorage WHERE GUID = @StudyStorageGUID
>
> SELECT @StudyGUID = GUID
> FROM Study
> WHERE StudyInstanceUid = @StudyInstanceUid and ServerPartitionGUID = @ServerPartitionGUID
>
> -- Begin the transaction, keep all the deletes/updates in a single transaction
> BEGIN TRANSACTION
>
> UPDATE StudyStorage SET StudyStatusEnum = @StudyStatusEnum
> WHERE GUID = @StudyStorageGUID
>
> -- Now cleanup the more management related tables.
> DELETE FROM FilesystemQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM FilesystemStudyStorage
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> DELETE FROM WorkQueueUid
> WHERE WorkQueueGUID IN (SELECT GUID from WorkQueue WHERE StudyStorageGUID = @StudyStorageGUID)
>
> DELETE FROM WorkQueue
> WHERE StudyStorageGUID = @StudyStorageGUID
>
> UPDATE StudyStorage
> SET WriteLock = 0, LastAccessedTime = getdate()
> WHERE WriteLock = 1 AND GUID = @StudyStorageGUID
>
> COMMIT TRANSACTION
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[InsertRestoreQueue] Script Date: 07/21/2008 16:11:22 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertRestoreQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: July 21, 2008
> -- Description: Insert a RestoreQueue record, if one doesn''t
> -- already exist for the Study.
> -- History:
> -- Oct 29, 2009 : Added ReadLock/WriteLock support
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertRestoreQueue]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @ArchiveStudyStorageGUID uniqueidentifier = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @PendingRestoreQueueStatus smallint
> DECLARE @RestoreQueueGUID uniqueidentifier
> DECLARE @NewArchiveStudyStorageGUID uniqueidentifier
> DECLARE @RestoreQueueStudyStateEnum smallint
> DECLARE @Successful bit
>
> SELECT @PendingRestoreQueueStatus = Enum from RestoreQueueStatusEnum where Lookup = ''Pending''
> SELECT @RestoreQueueStudyStateEnum = Enum from QueueStudyStateEnum where Lookup = ''RestoreScheduled''
>
> BEGIN TRANSACTION
>
> IF @ArchiveStudyStorageGUID IS null
> BEGIN
> SELECT TOP 1 @NewArchiveStudyStorageGUID = GUID FROM ArchiveStudyStorage
> WHERE StudyStorageGUID = @StudyStorageGUID
> ORDER BY ArchiveTime DESC
> IF @@ROWCOUNT = 0
> BEGIN
> -- A bit ugly, the study does not appear to be archived, so can''t be restored.
> -- set the GUID to an invalid value, so no rows are returned.
> SET @RestoreQueueGUID = newid()
> END
> ELSE
> BEGIN
> SELECT @RestoreQueueGUID = GUID FROM RestoreQueue
> WHERE ArchiveStudyStorageGUID = @NewArchiveStudyStorageGUID
> IF @@ROWCOUNT = 0
> BEGIN
>
> EXECUTE [ImageServerAlpha].[dbo].[LockStudy]
> @StudyStorageGUID ,null ,null, @RestoreQueueStudyStateEnum ,@Successful OUTPUT
>
> IF @Successful = 0
> BEGIN
> -- Couldn''t lock the study, just return no rows.
> SET @RestoreQueueGUID = newid()
> END
> ELSE
> BEGIN
> SET @RestoreQueueGUID = newid()
> INSERT INTO RestoreQueue (GUID, ArchiveStudyStorageGUID, StudyStorageGUID, ScheduledTime, RestoreQueueStatusEnum, ProcessorId)
> VALUES (@RestoreQueueGUID, @NewArchiveStudyStorageGUID, @StudyStorageGUID, getdate(), @PendingRestoreQueueStatus, null)
> END
> END
> END
> END
> ELSE
> BEGIN
> SELECT @RestoreQueueGUID = GUID FROM RestoreQueue
> WHERE ArchiveStudyStorageGUID = @ArchiveStudyStorageGUID
> IF @@ROWCOUNT = 0
> BEGIN
> EXECUTE [ImageServerAlpha].[dbo].[LockStudy]
> @StudyStorageGUID ,null ,null ,@RestoreQueueStudyStateEnum ,@Successful OUTPUT
>
> IF @Successful = 0
> BEGIN
> -- Couldn''t lock the study, just return no rows.
> SET @RestoreQueueGUID = newid()
> END
> ELSE
> BEGIN
>
> SET @RestoreQueueGUID = newid()
> INSERT INTO RestoreQueue (GUID, ArchiveStudyStorageGUID, StudyStorageGUID, ScheduledTime, RestoreQueueStatusEnum, ProcessorId)
> VALUES (@RestoreQueueGUID, @ArchiveStudyStorageGUID, @StudyStorageGUID, getdate(), @PendingRestoreQueueStatus, null)
> END
> END
> END
>
> COMMIT TRANSACTION
>
> SELECT * FROM RestoreQueue WHERE GUID = @RestoreQueueGUID
> END
> '
> END
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[WebQueryArchiveQueue] Script Date: 08/14/2008 15:21:03 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryArchiveQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 5, 2008
> -- Description: Query ArchiveQueue entries based on criteria
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[WebQueryArchiveQueue]
> @ServerPartitionGUID uniqueidentifier = null,
> @PatientId nvarchar(64) = null,
> @PatientsName nvarchar(64) = null,
> @AccessionNumber nvarchar(16) = null,
> @ScheduledTime datetime = null,
> @ArchiveQueueStatusEnum smallint = null,
> @StartIndex int,
> @MaxRowCount int = 25,
> @ResultCount int OUTPUT
> AS
> BEGIN
> Declare @stmt nvarchar(1024);
> Declare @where nvarchar(1024);
> Declare @count nvarchar(1024);
>
> -- Build SELECT statement based on the paramters
>
> SET @stmt = ''SELECT ArchiveQueue.*, ROW_NUMBER() OVER(ORDER BY ScheduledTime ASC) as RowNum FROM ArchiveQueue ''
> SET @stmt = @stmt + ''LEFT JOIN StudyStorage on StudyStorage.GUID = ArchiveQueue.StudyStorageGUID ''
> SET @stmt = @stmt + ''LEFT JOIN Study on Study.ServerPartitionGUID = StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid = StudyStorage.StudyInstanceUid ''
> SET @stmt = @stmt + ''JOIN PartitionArchive on PartitionArchive.GUID = ArchiveQueue.PartitionArchiveGUID ''
>
> SET @where = ''''
>
> IF (@ServerPartitionGUID IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''PartitionArchive.ServerPartitionGUID = '''''' + CONVERT(varchar(250),@ServerPartitionGUID) +''''''''
> END
>
> IF (@ArchiveQueueStatusEnum IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''ArchiveQueue.ArchiveQueueStatusEnum = '' + CONVERT(varchar(10),@ArchiveQueueStatusEnum)
> END
>
> IF (@ScheduledTime IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''ArchiveQueue.ScheduledTime between '''''' + CONVERT(varchar(30), @ScheduledTime, 101 ) +'''''' and '''''' + CONVERT(varchar(30), DATEADD(DAY, 1, @ScheduledTime), 101 ) + ''''''''
> END
>
> IF (@PatientsName IS NOT NULL and @PatientsName<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientsName Like ''''%'' + @PatientsName + ''%'''' ''
> END
>
> IF (@PatientId IS NOT NULL and @PatientId<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientId Like ''''%'' + @PatientId + ''%'''' ''
> END
>
> IF (@AccessionNumber IS NOT NULL and @AccessionNumber<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.AccessionNumber Like ''''%'' + @AccessionNumber + ''%'''' ''
> END
>
> if (@where<>'''')
> SET @stmt = @stmt + '' WHERE '' + @where
>
> PRINT @stmt
> SET @stmt = ''SELECT A.GUID, A.PartitionArchiveGUID, A.ScheduledTime, A.StudyStorageGUID, A.ArchiveQueueStatusEnum, A.ProcessorId, A.FailureDescription FROM ('' + @stmt
>
> if (@StartIndex = 0)
> SET @stmt = @stmt + '') AS A WHERE A.RowNum BETWEEN '' + str(@StartIndex) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
> else
> SET @stmt = @stmt + '') AS A WHERE A.RowNum BETWEEN '' + str(@StartIndex + 1) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
>
> EXEC(@stmt)
>
> SET @count = ''SELECT @recordCount = count(*) FROM ArchiveQueue JOIN PartitionArchive on PartitionArchive.GUID = ArchiveQueue.PartitionArchiveGUID ''
> if (@where<>'''')
> BEGIN
> SET @count = @count + ''LEFT JOIN StudyStorage on StudyStorage.GUID = ArchiveQueue.StudyStorageGUID ''
> SET @count = @count + ''LEFT JOIN Study on Study.ServerPartitionGUID = StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid = StudyStorage.StudyInstanceUid ''
> SET @count = @count + ''WHERE '' + @where
> END
>
> DECLARE @recCount int
>
> EXEC sp_executesql @count, N''@recordCount int OUT'', @recCount OUT
> print @count
> set @ResultCount = @recCount
>
> END
> '
> END
> GO

Command completed successfully.

> /****** Object: StoredProcedure [dbo].[WebQueryRestoreQueue] Script Date: 08/21/2008 15:21:03 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebQueryRestoreQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Steve Wranovsky
> -- Create date: August 21, 2008
> -- Description: Query Restore entries based on criteria
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[WebQueryRestoreQueue]
> @ServerPartitionGUID uniqueidentifier = null,
> @PatientId nvarchar(64) = null,
> @PatientsName nvarchar(64) = null,
> @AccessionNumber nvarchar(16) = null,
> @ScheduledTime datetime = null,
> @RestoreQueueStatusEnum smallint = null,
> @StartIndex int,
> @MaxRowCount int = 25,
> @ResultCount int OUTPUT
> AS
> BEGIN
> Declare @stmt nvarchar(1024);
> Declare @where nvarchar(1024);
> Declare @count nvarchar(1024);
>
> -- Build SELECT statement based on the paramters
>
> SET @stmt = ''SELECT RestoreQueue.*, ROW_NUMBER() OVER(ORDER BY ScheduledTime ASC) as RowNum FROM RestoreQueue ''
> SET @stmt = @stmt + ''JOIN StudyStorage on StudyStorage.GUID = RestoreQueue.StudyStorageGUID ''
> SET @stmt = @stmt + ''JOIN ArchiveStudyStorage on ArchiveStudyStorage.GUID = RestoreQueue.ArchiveStudyStorageGUID ''
> SET @stmt = @stmt + ''LEFT JOIN Study on Study.ServerPartitionGUID = StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid = StudyStorage.StudyInstanceUid ''
> SET @stmt = @stmt + ''JOIN PartitionArchive on PartitionArchive.GUID = ArchiveStudyStorage.PartitionArchiveGUID ''
>
> SET @where = ''''
>
> IF (@ServerPartitionGUID IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''PartitionArchive.ServerPartitionGUID = '''''' + CONVERT(varchar(250),@ServerPartitionGUID) +''''''''
> END
>
> IF (@RestoreQueueStatusEnum IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''RestoreQueue.RestoreQueueStatusEnum = '' + CONVERT(varchar(10),@RestoreQueueStatusEnum)
> END
>
> IF (@ScheduledTime IS NOT NULL)
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''RestoreQueue.ScheduledTime between '''''' + CONVERT(varchar(30), @ScheduledTime, 101 ) +'''''' and '''''' + CONVERT(varchar(30), DATEADD(DAY, 1, @ScheduledTime), 101 ) + ''''''''
> END
>
> IF (@PatientsName IS NOT NULL and @PatientsName<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientsName Like ''''%'' + @PatientsName + ''%'''' ''
> END
>
> IF (@PatientId IS NOT NULL and @PatientId<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.PatientId Like ''''%'' + @PatientId + ''%'''' ''
> END
>
> IF (@AccessionNumber IS NOT NULL and @AccessionNumber<>'''')
> BEGIN
> IF (@where<>'''')
> SET @where = @where + '' AND ''
>
> SET @where = @where + ''Study.AccessionNumber Like ''''%'' + @AccessionNumber + ''%'''' ''
> END
>
>
> if (@where<>'''')
> SET @stmt = @stmt + '' WHERE '' + @where
>
> PRINT @stmt
> SET @stmt = ''SELECT A.GUID, A.ArchiveStudyStorageGUID, A.ScheduledTime, A.StudyStorageGUID, A.RestoreQueueStatusEnum, A.ProcessorId, A.FailureDescription FROM ('' + @stmt
>
> if (@StartIndex = 0)
> SET @stmt = @stmt + '') AS A WHERE A.RowNum BETWEEN '' + str(@StartIndex) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
> else
> SET @stmt = @stmt + '') AS A WHERE A.RowNum BETWEEN '' + str(@StartIndex + 1) + '' AND ('' + str(@StartIndex) + '' + '' + str(@MaxRowCount) + '')''
>
> EXEC(@stmt)
>
> SET @count = ''SELECT @recordCount = count(*) FROM RestoreQueue JOIN ArchiveStudyStorage on ArchiveStudyStorage.GUID = RestoreQueue.ArchiveStudyStorageGUID JOIN PartitionArchive on PartitionArchive.GUID = ArchiveStudyStorage.PartitionArchiveGUID ''
> if (@where<>'''')
> BEGIN
> SET @count = @count + ''JOIN StudyStorage on StudyStorage.GUID = RestoreQueue.StudyStorageGUID ''
> SET @count = @count + ''LEFT JOIN Study on Study.ServerPartitionGUID = StudyStorage.ServerPartitionGUID and Study.StudyInstanceUid = StudyStorage.StudyInstanceUid ''
> SET @count = @count + ''WHERE '' + @where
> END
>
> DECLARE @recCount int
>
> EXEC sp_executesql @count, N''@recordCount int OUT'', @recCount OUT
> print @count
> set @ResultCount = @recCount
>
> END
> '
> END
> GO

Command completed successfully.

>
> /****** Object: StoredProcedure [dbo].[InsertStudyIntegrityQueue] Script Date: 09/05/2008 15:21:03 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertStudyIntegrityQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: September 05, 2008
> -- Last update: May 01, 2009
> -- Description: Insert or update StudyIntegrity Queue based on supplied data
> --
> -- July 21, 2009 : Add GroupID and UidRelativePath (for ticket #4929)
> -- May 01, 2009 : Include StudyIntegrityReasonEnum in the Select statement
> -- Nov 06, 2008 : Change to insert [StudyIntegrityQueueUid] record only if it doesn''t exist.
> -- Oct 29, 2009 : Changed QueueData column to Details
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertStudyIntegrityQueue]
> -- Add the parameters for the stored procedure here
> @Description nvarchar(1024),
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @StudyInstanceUid varchar(64),
> @SeriesInstanceUid varchar(64),
> @SeriesDescription nvarchar(64),
> @SopInstanceUid varchar(64),
> @StudyData xml,
> @Details xml=null,
> @GroupID varchar(256) = null,
> @UidRelativePath varchar(256)=null,
> @StudyIntegrityReasonEnum smallint,
> @Inserted bit = 0 OUTPUT
> AS
> BEGIN
>
> DECLARE @Guid uniqueidentifier
> DECLARE @QueueStudyStateEnumReconcileRequired smallint
> SET @Inserted=0
>
> BEGIN TRANSACTION
>
> SELECT @QueueStudyStateEnumReconcileRequired = Enum FROM QueueStudyStateEnum WHERE Lookup=''ReconcileRequired''
>
> -- Look for existing StudyIntegrityQueue entry
> IF @GroupID IS NULL
> SELECT TOP 1 @Guid=GUID
> FROM [dbo].[StudyIntegrityQueue] siq
> WHERE [ServerPartitionGUID]=@ServerPartitionGUID
> AND [StudyStorageGUID]=@StudyStorageGUID
> AND [StudyIntegrityReasonEnum] = @StudyIntegrityReasonEnum
> AND CONVERT(nvarchar(max), [StudyData]) = CONVERT(nvarchar(max), @StudyData)
> AND NOT EXISTS(
> SELECT * FROM [StudyIntegrityQueueUid] siqid
> WHERE siqid.StudyIntegrityQueueGUID = siq.GUID
> AND siqid.SeriesInstanceUid = @SeriesInstanceUid
> AND siqid.SopInstanceUid = @SopInstanceUid)
> ORDER BY [InsertTime] DESC
> ELSE
> SELECT TOP 1 @Guid=GUID
> FROM [dbo].[StudyIntegrityQueue] siq
> WHERE [ServerPartitionGUID]=@ServerPartitionGUID
> AND [StudyStorageGUID]=@StudyStorageGUID
> AND [StudyIntegrityReasonEnum] = @StudyIntegrityReasonEnum
> AND CONVERT(nvarchar(max), [StudyData]) = CONVERT(nvarchar(max), @StudyData)
> AND [GroupID]=@GroupID
> AND NOT EXISTS(
> SELECT * FROM [StudyIntegrityQueueUid] siqid
> WHERE siqid.StudyIntegrityQueueGUID = siq.GUID
> AND siqid.SeriesInstanceUid = @SeriesInstanceUid
> AND siqid.SopInstanceUid = @SopInstanceUid)
> ORDER BY [InsertTime] DESC
>
> IF @@ROWCOUNT = 0
> BEGIN
> -- PRINT ''Not found''
> SET @Guid=newid()
>
> INSERT INTO [dbo].[StudyIntegrityQueue]([GUID],[ServerPartitionGUID],[InsertTime],[StudyStorageGUID],[Description],[StudyData],[Details],[StudyIntegrityReasonEnum],[GroupID])
> VALUES (@Guid,@ServerPartitionGUID,getdate(),@StudyStorageGUID,@Description,@StudyData,@Details,@StudyIntegrityReasonEnum,@GroupID)
>
> SET @Inserted=1
> END
>
>
> IF NOT EXISTS(SELECT GUID FROM [StudyIntegrityQueueUid]
> WHERE [StudyIntegrityQueueGUID]=@Guid AND [SeriesInstanceUid]=@SeriesInstanceUid AND [SopInstanceUid]=@SopInstanceUid)
> BEGIN
> INSERT INTO [dbo].[StudyIntegrityQueueUid]([GUID],[StudyIntegrityQueueGUID],[SeriesInstanceUid],[SeriesDescription],[SopInstanceUid],[RelativePath])
> VALUES (newid(),@Guid,@SeriesInstanceUid,@SeriesDescription,@SopInstanceUid,@UidRelativePath)
> END
>
> COMMIT TRANSACTION
>
> SELECT * FROM [dbo].[StudyIntegrityQueue] WHERE GUID=@Guid
>
> END
> '
> END
> GO

Command completed successfully.

>
>
> /****** Object: StoredProcedure [dbo].[AttachStudyToPatient] Script Date: 10/09/2008 11:53:24 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AttachStudyToPatient]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 09, 2008
> -- Description: Attach a study to a new patient and update all object counts for the old and new patient.
> --
> -- =============================================
> CREATE PROCEDURE [dbo].[AttachStudyToPatient]
> -- Add the parameters for the stored procedure here
> @StudyGUID uniqueidentifier,
> @NewPatientGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @CurrentPatientGUID uniqueidentifier
> DECLARE @StudyInstanceUid varchar(64)
>
> SELECT @ServerPartitionGUID=Study.ServerPartitionGUID,
> @StudyInstanceUid = Study.StudyInstanceUid, @CurrentPatientGUID=PatientGUID
> FROM Study WHERE Study.GUID=@StudyGUID
>
>
> UPDATE Study
> SET PatientGUID=@NewPatientGUID
> WHERE GUID= @StudyGUID
>
> UPDATE Study
> SET Study.PatientsName=Patient.PatientsName,
> Study.PatientId=Patient.PatientId,
> Study.IssuerOfPatientId = Patient.IssuerOfPatientId
> FROM Study JOIN Patient ON Patient.GUID=Study.PatientGUID
> WHERE Study.GUID=@StudyGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedStudies=NumberOfPatientRelatedStudies+1,
> NumberOfPatientRelatedSeries=NumberOfPatientRelatedSeries+(SELECT Count(GUID)
> From Series WITH(READPAST)
> WHERE ServerPartitionGUID=@ServerPartitionGUID AND StudyGUID=@StudyGUID),
> NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances+(
> SELECT SUM(NumberOfSeriesRelatedInstances)
> From Series WITH(READPAST)
> WHERE ServerPartitionGUID=@ServerPartitionGUID AND StudyGUID=@StudyGUID)
>
> WHERE GUID=@NewPatientGUID
>
>
> DECLARE @StudyCount int
>
> SELECT @StudyCount =NumberOfPatientRelatedStudies
> FROM Patient WHERE GUID=@CurrentPatientGUID
>
> PRINT @StudyCount
> IF @StudyCount<=1
> BEGIN
> DELETE Patient WHERE GUID=@CurrentPatientGUID
> END
> ELSE
> BEGIN
> UPDATE Patient Set NumberOfPatientRelatedStudies=NumberOfPatientRelatedStudies-1
> WHERE GUID=@CurrentPatientGUID
> END
> END
> '
> END
> GO

Command completed successfully.

>
>
> /****** Object: StoredProcedure [dbo].[CreatePatientForStudy] Script Date: 10/09/2008 11:53:24 ******/
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CreatePatientForStudy]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'-- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 09, 2008
> -- Description: Create a new Patient for a study
> -- =============================================
> CREATE PROCEDURE [dbo].[CreatePatientForStudy]
> -- Add the parameters for the stored procedure here
> @StudyGUID uniqueidentifier,
> @PatientsName nvarchar(64),
> @PatientId nvarchar(64),
> @IssuerOfPatientId nvarchar(64)=null,
> @SpecificCharacterSet varchar(128)=null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @PatientGUID uniqueidentifier
> DECLARE @CurrentPatientGUID uniqueidentifier
> DECLARE @StudyInstanceUid varchar(64)
> DECLARE @NumStudiesOwnedByCurrentPatient int
> DECLARE @NumSeries int
> DECLARE @NumInstances int
>
> SELECT @ServerPartitionGUID=Study.ServerPartitionGUID,
> @StudyInstanceUid = Study.StudyInstanceUid,
> @CurrentPatientGUID=PatientGUID,
> @NumStudiesOwnedByCurrentPatient = Patient.NumberOfPatientRelatedStudies,
> @NumSeries = NumberOfStudyRelatedSeries,
> @NumInstances = NumberOfStudyRelatedInstances
> FROM Study
> JOIN Patient ON Patient.GUID = Study.PatientGUID
> WHERE Study.GUID=@StudyGUID
>
> SET @PatientGUID = newid()
>
> INSERT INTO [Patient]([GUID],[ServerPartitionGUID],[PatientsName],[PatientId],[IssuerOfPatientId],
> [NumberOfPatientRelatedStudies],[NumberOfPatientRelatedSeries],[NumberOfPatientRelatedInstances],[SpecificCharacterSet])
> VALUES
> (@PatientGUID,@ServerPartitionGUID,@PatientsName,@PatientId,@IssuerOfPatientId,0,0,0,@SpecificCharacterSet)
>
> -- Attach study to the new patient
> UPDATE Study
> SET PatientGUID=@PatientGUID
> WHERE GUID=@StudyGUID
>
> -- We may consider copy the fields in the Patient record to the Study record.
> -- Howerver, the Study record should reflect the data in the images and it may also contain information that''s not passed
> -- in to this stored procedure. It''s assumed that the aplication has access to the images so it can update the Study later.
>
> -- Update object count for the new patient
> UPDATE Patient
> SET [NumberOfPatientRelatedStudies]=1,
> [NumberOfPatientRelatedSeries]=@NumSeries,
> [NumberOfPatientRelatedInstances]=@NumInstances
> WHERE GUID=@PatientGUID
>
> -- Update current patient, delete it if there''s no attached study.
> IF @NumStudiesOwnedByCurrentPatient=1
> BEGIN
> DELETE Patient WHERE GUID = @CurrentPatientGUID
> END
> ELSE
> BEGIN
> UPDATE Patient
> SET [NumberOfPatientRelatedStudies]=@NumStudiesOwnedByCurrentPatient-1,
> [NumberOfPatientRelatedSeries]=[NumberOfPatientRelatedSeries]-@NumSeries,
> [NumberOfPatientRelatedInstances]=[NumberOfPatientRelatedInstances]-@NumInstances
> WHERE GUID=@CurrentPatientGUID
> END
>
>
> SET NOCOUNT OFF;
>
> SELECT * FROM Patient WHERE GUID=@PatientGUID
>
> END
> '
> END
> GO

Command completed successfully.

>
>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertDuplicateSopReceivedQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: May 01, 2009
> -- Description: Insert or update "Duplicate" StudyIntegrity Queue record
> -- History:
> -- Oct 29, 2009 : Updated QueueData column to Details
> -- =============================================
> CREATE PROCEDURE [dbo].[InsertDuplicateSopReceivedQueue]
> -- Add the parameters for the stored procedure here
> @Description nvarchar(1024) = null,
> @ServerPartitionGUID uniqueidentifier,
> @StudyStorageGUID uniqueidentifier,
> @StudyInstanceUid varchar(64),
> @SeriesInstanceUid varchar(64),
> @SeriesDescription nvarchar(64),
> @SopInstanceUid varchar(64),
> @StudyData xml,
> @Details xml,
> @GroupId varchar(50),
> @UidRelativePath varchar(256)
> AS
> BEGIN
>
> DECLARE @Guid uniqueidentifier
> DECLARE @TypeDuplicateSop smallint
>
> SELECT @TypeDuplicateSop=Enum FROM StudyIntegrityReasonEnum WHERE Lookup=''Duplicate''
>
> BEGIN TRANSACTION
>
> -- Find the entry with the same info
> SELECT TOP 1 @Guid = siq.GUID
> FROM StudyIntegrityQueue siq
> JOIN StudyIntegrityQueueUid uid ON uid.StudyIntegrityQueueGUID = siq.GUID
> WHERE siq.StudyStorageGUID = @StudyStorageGUID AND siq.StudyIntegrityReasonEnum=@TypeDuplicateSop
> AND CONVERT(nvarchar(max), siq.StudyData) = CONVERT(nvarchar(max), @StudyData)
> AND GroupID = @GroupID
> AND siq.GUID NOT IN (
> SELECT StudyIntegrityQueueGUID FROM StudyIntegrityQueueUid uid2
> WHERE uid2.SeriesInstanceUID=@SeriesInstanceUid
> AND uid2.SopInstanceUID=@SopInstanceUid
> )
> GROUP BY siq.GUID
> ORDER BY MAX(siq.InsertTime) DESC
>
> IF @@ROWCOUNT = 0
> BEGIN
> -- No duplicate sop queue for the study for the same source/receiver
> SET @Guid = newid()
> INSERT INTO [StudyIntegrityQueue]
> ([GUID],[ServerPartitionGUID],[StudyStorageGUID],[InsertTime],[Description],
> [StudyData],[Details],[StudyIntegrityReasonEnum],[GroupID])
> VALUES
> (@Guid,@ServerPartitionGUID,@StudyStorageGUID,getdate(), @Description
> ,@StudyData, @Details, @TypeDuplicateSop, @GroupID )
>
> END
>
> -- Insert the Uid
> INSERT INTO [StudyIntegrityQueueUid]
> ([GUID],[StudyIntegrityQueueGUID],[SeriesDescription],[SeriesInstanceUid],[SopInstanceUid],[RelativePath])
> VALUES
> (newid(),@Guid, @SeriesDescription,@SeriesInstanceUid,@SopInstanceUid, @UidRelativePath)
>
> COMMIT TRANSACTION
>
> SELECT * FROM [dbo].[StudyIntegrityQueue] WHERE GUID=@Guid
>
> END
> '
> END
> GO

Command completed successfully.

>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteInstance]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Description: Delete an instance
> -- History
> -- Nov 04, 2009 : Fixed a bug in updating Series table.
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteInstance]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @SeriesInstanceUid varchar(64),
> @SOPInstanceUid varchar(64)
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyGUID varchar(64)
> DECLARE @SeriesGUID varchar(64)
> DECLARE @PatientGUID varchar(64)
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @StudyInstanceUid varchar(64)
>
> SELECT @StudyGUID = study.GUID, @SeriesGUID=series.GUID, @PatientGUID=patient.GUID
> FROM StudyStorage storage WITH(NOLOCK)
> JOIN Study study ON study.StudyStorageGUID=@StudyStorageGUID
> JOIN Patient patient ON patient.GUID=study.PatientGUID
> JOIN Series series ON series.StudyGUID=study.GUID
> WHERE storage.GUID=@StudyStorageGUID and SeriesInstanceUid=@SeriesInstanceUid
>
> UPDATE Series SET NumberOfSeriesRelatedInstances=NumberOfSeriesRelatedInstances-1
> WHERE GUID=@SeriesGUID
>
> UPDATE Study SET NumberOfStudyRelatedInstances=NumberOfStudyRelatedInstances-1
> WHERE GUID=@StudyGUID
>
> UPDATE Patient SET NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances-1
> WHERE GUID=@PatientGUID
>
> END
> '
> END
> GO

Command completed successfully.

>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ResetStudyStorage]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: June 15, 2009
> -- Description: Delete study/series level tables of a StudyStorage
> -- =============================================
> CREATE PROCEDURE ResetStudyStorage
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyInstanceUid varchar(64)
> DECLARE @StudyGUID uniqueidentifier
> DECLARE @PatientGUID uniqueidentifier
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @NumSeries int
> DECLARE @NumInstances int
>
> SELECT @ServerPartitionGUID = ServerPartitionGUID, @StudyInstanceUid = StudyInstanceUid
> FROM StudyStorage WHERE GUID=@StudyStorageGUID
>
> SELECT @StudyGUID=GUID, @PatientGUID=PatientGUID FROM Study WHERE ServerPartitionGUID=@ServerPartitionGUID AND StudyInstanceUid=@StudyInstanceUid
>
> SELECT @NumSeries=COUNT(*) FROM Series WHERE StudyGUID=@StudyGUID
> SELECT @NumInstances=SUM(NumberOfSeriesRelatedInstances)
> FROM Series WHERE StudyGUID=@StudyGUID
>
> DELETE RequestAttributes WHERE SeriesGUID IN (SELECT GUID FROM Series WHERE StudyGUID=@StudyGUID)
> DELETE Series WHERE StudyGUID=@StudyGUID
>
> DELETE Study WHERE GUID=@StudyGUID
>
> UPDATE Patient SET NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances-@NumInstances WHERE GUID=@PatientGUID
> UPDATE Patient SET NumberOfPatientRelatedSeries=NumberOfPatientRelatedSeries-@NumSeries WHERE GUID=@PatientGUID
> UPDATE Patient SET NumberOfPatientRelatedStudies=NumberOfPatientRelatedStudies-1 WHERE GUID=@PatientGUID
> DELETE Patient WHERE GUID=@PatientGUID AND NumberOfPatientRelatedStudies=0
>
>
> UPDATE ServerPartition SET StudyCount=StudyCount-1 WHERE GUID=@ServerPartitionGUID
>
> END
>
> '
> END
> GO

Command completed successfully.

>
>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SetStudyRelatedInstanceCount]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: June 16, 2009
> -- Description: Update number of series and instances for a study
> -- =============================================
> CREATE PROCEDURE [dbo].[SetStudyRelatedInstanceCount]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @StudyRelatedInstanceCount int,
> @StudyRelatedSeriesCount int
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
>
> DECLARE @StudyInstanceUid varchar(64)
> DECLARE @SeriesGUID uniqueidentifier
> DECLARE @StudyGUID uniqueidentifier
> DECLARE @PatientGUID uniqueidentifier
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @PrevStudyRelatedInstanceCount int
> DECLARE @PrevStudyRelatedSeriesCount int
>
> SELECT @ServerPartitionGUID = ss.ServerPartitionGUID,
> @StudyInstanceUid = st.StudyInstanceUid,
> @StudyGUID = st.GUID,
> @PatientGUID=st.PatientGUID,
> @PrevStudyRelatedSeriesCount=st.NumberOfStudyRelatedSeries,
> @PrevStudyRelatedInstanceCount=st.NumberOfStudyRelatedInstances
> FROM StudyStorage ss
> JOIN Study st ON st.StudyStorageGUID=ss.GUID
> WHERE ss.GUID=@StudyStorageGUID
>
>
> DECLARE @InstanceCountDiff int
> DECLARE @SeriesCountDiff int
> SET @InstanceCountDiff = @StudyRelatedInstanceCount - @PrevStudyRelatedInstanceCount
> SET @SeriesCountDiff = @StudyRelatedSeriesCount - @PrevStudyRelatedSeriesCount
>
> -- Update the count in the Study and Patient table
> UPDATE Study
> SET NumberOfStudyRelatedInstances=NumberOfStudyRelatedInstances+@InstanceCountDiff,
> NumberOfStudyRelatedSeries =NumberOfStudyRelatedSeries+@SeriesCountDiff
> WHERE GUID=@StudyGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances+@InstanceCountDiff,
> NumberOfPatientRelatedSeries=NumberOfPatientRelatedSeries+@SeriesCountDiff
> WHERE GUID=@PatientGUID
>
> END
> '
> END
> GO

Command completed successfully.

>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SetSeriesRelatedInstanceCount]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: June 19, 2009
> -- Description: Update number of instances for a series
> -- =============================================
> CREATE PROCEDURE [dbo].[SetSeriesRelatedInstanceCount]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @SeriesInstanceUid varchar(64),
> @SeriesRelatedInstanceCount int
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyInstanceUid varchar(64)
> DECLARE @StudyGUID uniqueidentifier
> DECLARE @SeriesGUID uniqueidentifier
> DECLARE @PatientGUID uniqueidentifier
> DECLARE @ServerPartitionGUID uniqueidentifier
> DECLARE @PrevSeriesRelatedInstanceCount int
> DECLARE @PrevSeriesRelatedSeriesCount int
>
> SELECT @ServerPartitionGUID = ss.ServerPartitionGUID,
> @StudyInstanceUid = st.StudyInstanceUid,
> @StudyGUID = st.GUID,
> @SeriesGUID = ser.GUID,
> @PatientGUID=st.PatientGUID,
> @PrevSeriesRelatedInstanceCount=ser.NumberOfSeriesRelatedInstances
> FROM StudyStorage ss
> JOIN Study st ON st.StudyStorageGUID=ss.GUID
> JOIN Series ser ON ser.StudyGUID = st.GUID AND ser.SeriesInstanceUid=@SeriesInstanceUid
> WHERE ss.GUID=@StudyStorageGUID
>
>
> DECLARE @InstanceCountDiff int
> DECLARE @SeriesCountDiff int
> SET @InstanceCountDiff = @SeriesRelatedInstanceCount - @PrevSeriesRelatedInstanceCount
>
> -- Update the count in the Series table
> UPDATE Series
> SET NumberOfSeriesRelatedInstances=NumberOfSeriesRelatedInstances+@InstanceCountDiff
> WHERE GUID=@SeriesGUID
>
> -- Update the count in the Study and Patient table
> UPDATE Study
> SET NumberOfStudyRelatedInstances=NumberOfStudyRelatedInstances+@InstanceCountDiff
> WHERE GUID=@StudyGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances+@InstanceCountDiff
> WHERE GUID=@PatientGUID
>
> END
> '
> END
> GO

Command completed successfully.

>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteSeries]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: July 30, 2009
> -- Description: Delete a series and update the count
> -- =============================================
> CREATE PROCEDURE [dbo].[DeleteSeries]
> -- Add the parameters for the stored procedure here
> @StudyStorageGUID uniqueidentifier,
> @SeriesInstanceUID varchar(64)
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> DECLARE @StudyGUID uniqueidentifier
> DECLARE @PatientGUID uniqueidentifier
> SELECT @StudyGUID=GUID, @PatientGUID=PatientGUID
> FROM Study WHERE StudyStorageGUID=@StudyStorageGUID
>
> DECLARE @SeriesGUID uniqueidentifier
> DECLARE @InstanceCount int
>
> SELECT @SeriesGUID=GUID, @InstanceCount = NumberOfSeriesRelatedInstances
> FROM Series WHERE StudyGUID=@StudyGUID AND SeriesInstanceUid =@SeriesInstanceUID
>
>
> IF @SeriesGUID IS NOT NULL
> BEGIN
> BEGIN TRANSACTION
>
> UPDATE Study
> SET NumberOfStudyRelatedSeries=NumberOfStudyRelatedSeries-1,
> NumberOfStudyRelatedInstances=NumberOfStudyRelatedInstances-@InstanceCount
> WHERE GUID=@StudyGUID
>
> UPDATE Patient
> SET NumberOfPatientRelatedSeries=NumberOfPatientRelatedSeries-1,
> NumberOfPatientRelatedInstances=NumberOfPatientRelatedInstances-@InstanceCount
> WHERE GUID=@PatientGUID
>
> DELETE RequestAttributes WHERE SeriesGUID=@SeriesGUID
> DELETE Series WHERE GUID=@SeriesGUID
>
>
> COMMIT TRANSACTION
> END
> END
> '
> END
> GO

Command completed successfully.

>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WorkQueueProcessorIDs]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =================================================================
> -- Author: Jonathan Bluks
> -- Create date: August 25, 2009
> -- Description: Get a list of all the work queue processing servers
> -- =================================================================
> CREATE PROCEDURE [dbo].[WorkQueueProcessorIDs]
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> SELECT DISTINCT ProcessorID FROM WorkQueue WHERE ProcessorID is not NULL
> END
> '
> END
> GO

Command completed successfully.

>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PostponeWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =================================================================
> -- Author: Thanh Huynh
> -- Create date: September 11, 2009
> -- Description: Postpone (reschedule) a work queue entry
> -- History:
> -- Sep 16, 2009 : Added "UpdateWorkQueue" parameter
> -- Oct 22, 2009 : Added NewQueueStudyStateEnum parameter. Used for setting the
> -- study state.
> -- Oct 29, 2009 : Added WriteLock/ReadLock support
> -- Nov 4, 2009 : Added updating FailureDescription based on Reason
> -- =================================================================
> CREATE PROCEDURE [dbo].[PostponeWorkQueue]
> -- Add the parameters for the stored procedure here
> @WorkQueueGUID uniqueidentifier,
> @ScheduledTime datetime = null,
> @ExpirationTime datetime = null,
> @Reason nvarchar(512) = null,
> @UpdateWorkQueue bit = 0
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @StudyStorageGUID uniqueidentifier
> declare @PendingStatusEnum smallint
> declare @QueueStudyStateIdle smallint
> declare @ReadLock bit
> declare @WriteLock bit
>
> SELECT @StudyStorageGUID=StudyStorageGUID FROM WorkQueue WHERE GUID=@WorkQueueGUID
> SELECT @PendingStatusEnum = Enum FROM WorkQueueStatusEnum WHERE Lookup = ''Pending''
> SELECT @QueueStudyStateIdle = Enum FROM QueueStudyStateEnum WHERE Lookup = ''Idle''
>
> SELECT @ReadLock=ReadLock, @WriteLock=WriteLock
> FROM WorkQueue
> JOIN WorkQueueTypeProperties on
> WorkQueue.WorkQueueTypeEnum = WorkQueueTypeProperties.WorkQueueTypeEnum
> WHERE WorkQueue.GUID = @WorkQueueGUID
>
> BEGIN TRANSACTION
>
> IF @UpdateWorkQueue=0
> BEGIN
> UPDATE WorkQueue
> SET ScheduledTime=@ScheduledTime, ExpirationTime=@ExpirationTime,
> WorkQueueStatusEnum=@PendingStatusEnum, FailureDescription=@Reason
> WHERE GUID=@WorkQueueGUID
> END
> ELSE
> BEGIN
> UPDATE WorkQueue
> SET ScheduledTime=@ScheduledTime, ExpirationTime=@ExpirationTime,
> WorkQueueStatusEnum=@PendingStatusEnum, LastUpdatedTime=getdate(),
> FailureDescription=@Reason
> WHERE GUID=@WorkQueueGUID
> END
>
>
> -- Unlock the study lock
> IF @ReadLock = 1
> BEGIN
> UPDATE StudyStorage set ReadLock = ReadLock-1, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND ReadLock > 0
> END
> ELSE IF @WriteLock=1
> BEGIN
> UPDATE StudyStorage set WriteLock = 0, LastAccessedTime = getdate()
> WHERE GUID = @StudyStorageGUID AND WriteLock = 1
> END
>
> -- Update the Study State
> --EXEC dbo.UpdateStudyStateFromWorkQueue @StudyStorageGUID=@StudyStorageGUID
>
> COMMIT TRANSACTION
> END
> '
> END
> GO

Command completed successfully.

>
>
>
> SET ANSI_NULLS ON
> GO

Command completed successfully.

> SET QUOTED_IDENTIFIER ON
> GO

Command completed successfully.

> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[QueryCurrentStudyMove]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: October 19, 2009
> -- Description: Returns In-Progress Move WorkQueue entries for a given device
> -- History:
> -- =============================================
> CREATE PROCEDURE [dbo].[QueryCurrentStudyMove]
> @DeviceGUID uniqueidentifier
> AS
> BEGIN
> SET NOCOUNT ON;
> declare @InProgressStatusEnum as int
> select @InProgressStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''In Progress''
>
> SELECT * FROM WorkQueue WITH(NOLOCK)
> WHERE DEVICEGUID=@DeviceGUID and WorkQueueStatusEnum=@InProgressStatusEnum
> ORDER BY ScheduledTime ASC
> END
> '
> END
> GO

Command completed successfully.

>
> set ANSI_NULLS ON
> set QUOTED_IDENTIFIER ON
> go

Command completed successfully.

>
> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WebResetWorkQueue]') AND type in (N'P', N'PC'))
> BEGIN
> EXEC dbo.sp_executesql @statement = N'
> -- =============================================
> -- Author: Thanh Huynh
> -- Create date: Oct 22, 2009
> -- Description: Reset the work queue entry from the Web GUI
> -- Also update the study state if necessary.
> --
> -- History:
> -- Oct 26, 2009: Update the study state when necessary.
> -- Oct 27, 2009: Clear FailureDescription
> -- Jan 29, 2010: Clear WorkQueue FailureCount
> -- =============================================
> CREATE PROCEDURE [dbo].[WebResetWorkQueue]
> @WorkQueueGUID uniqueidentifier,
> @NewScheduledTime datetime = null,
> @NewExpirationTime datetime = null,
> @NewPriority smallint = null
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
>
> declare @PendingStatusEnum as smallint
> declare @FailStatusEnum smallint
> declare @QueueStudyStateIdle smallint
> declare @ScheduledTime datetime
> declare @ExpirationTime datetime
> declare @Priority smallint
> declare @StudyStorageGUID uniqueidentifier
>
> select @PendingStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Pending''
> select @FailStatusEnum = Enum from WorkQueueStatusEnum where Lookup = ''Failed''
> select @QueueStudyStateIdle = Enum from QueueStudyStateEnum where Lookup = ''Idle''
>
> SET @ScheduledTime=@NewScheduledTime
> SET @ExpirationTime=@NewExpirationTime
> SET @Priority=@NewPriority
>
> IF @ScheduledTime IS NULL
> SET @ScheduledTime=getdate()
>
> IF @ExpirationTime IS NULL
> SET @NewExpirationTime=DateAdd(minute, 15, getdate())
>
> IF @Priority IS NULL
> SELECT @Priority=WorkQueuePriorityEnum
> FROM WorkQueue WHERE GUID=@WorkQueueGUID
>
> SELECT @StudyStorageGUID=StudyStorageGUID
> FROM WorkQueue WITH (NOLOCK)
> WHERE GUID=@WorkQueueGUID
>
> BEGIN TRANSACTION
>
> UPDATE WorkQueue
> SET WorkQueueStatusEnum=@PendingStatusEnum,
> ScheduledTime = @ScheduledTime, ExpirationTime=@ExpirationTime,
> WorkQueuePriorityEnum=@Priority,
> FailureDescription = NULL, FailureCount=0
> WHERE GUID=@WorkQueueGUID
>
> UPDATE WorkQueueUid
> SET Failed=0, FailureCount=0
> WHERE WorkQueueGUID=@WorkQueueGUID
>
> EXEC [dbo].[UpdateStudyStateFromWorkQueue] @StudyStorageGUID=@StudyStorageGUID
>
> COMMIT
>
> END
> '
> END
> GO

Command completed successfully.

Playback completed for command file 'ImageServerStoredProcedures.sql'.
Versioning database...

> INSERT INTO [ImageServerAlpha].[dbo].DatabaseVersion_ ( Major_, Minor_, Build_, Revision_ ) VALUES ( '3', '0', '14232', '42161')
> GO

1 row(s) affected.

Playback completed for command file 'imageServerDbVersion.sql'.
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\getdbversion.js
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\version.txt
Creating filesystem...

> DECLARE @FilesystemTierEnum smallint
> SET @FilesystemTierEnum = (SELECT [Enum] FROM [ImageServerAlpha].[dbo].[FilesystemTierEnum] WHERE Lookup = 'Tier1')
> EXECUTE [ImageServerAlpha].[dbo].[InsertFilesystem]
> @FilesystemTierEnum
> ,'C:\FS'
> ,1
> ,0
> ,0
> ,'Primary Filesystem'
> ,90
> ,80
> GO

GUID FilesystemPath Enabled ReadOnly WriteOnly Description FilesystemTierEnum LowWatermark HighWatermark

------------------------------------------------------------------------------------------------------------------------------------------------------------------
be1add2b-c725-4d0c-8cb7-424f489fc801 C:\FS True False False Primary Filesystem 101 80,0000 90,0000

1 row(s) affected.

Playback completed for command file 'FileSystem.sql'.
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\FileSystem.sql
Creating partition...

> DECLARE @DuplicateSopPolicyEnum smallint
> SELECT @DuplicateSopPolicyEnum=Enum FROM [ImageServerAlpha].[dbo].[DuplicateSopPolicyEnum] WHERE [Lookup]='SendSuccess'
> EXECUTE [ImageServerAlpha].[dbo].[InsertServerPartition]
> 1
> ,'Primary Partition'
> ,'SERVERAE'
> ,'104'
> ,'Primary'
> ,@DuplicateSopPolicyEnum
> GO

GUID Enabled Description AeTitle Port PartitionFolder AcceptAnyDevice AuditDeleteStudy AutoInsertDevice DefaultRemotePort StudyCount DuplicateSopPolicyEnum MatchAccessionNumber MatchIssuerOfPatientId MatchPatientId MatchPatientsBirthDate MatchPatientsName MatchPatientsSex

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
d8109d32-27ee-465c-b765-fed02d56a7e3 True Primary Partition SERVERAE 104 Primary True False True 104 0 100 True True True True True True

1 row(s) affected.

Playback completed for command file 'Partition.sql'.
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\Partition.sql
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\plugins
Extract: ClearCanvas.ImageServer.Services.Archiving.Hsm.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Archiving.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\plugins
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web
Extract: Default.aspx... 100%
Extract: GlobalMasterPage.master... 100%
Extract: KeepSessionAlive.aspx... 100%
Extract: Logging.config... 100%
Extract: PersistantImage.ashx... 100%
Extract: PrecompiledApp.config
Extract: Users.xml... 100%
Extract: Web.sitemap... 100%
Extract: web.config... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default
Extract: Global.skin... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\StyleSheets
Extract: Admin.css... 100%
Extract: Error.css... 100%
Extract: Global.css... 100%
Extract: Login.css... 100%
Extract: Studies.css... 100%
Extract: StudyIntegrityQueue.css... 100%
Extract: WorkQueue.css... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\StyleSheets\Controls
Extract: Calendar.css... 100%
Extract: Dialog.css... 100%
Extract: GridView.css... 100%
Extract: InvalidInputIndicator.css... 100%
Extract: PartitionTabs.css... 100%
Extract: ReconcileDialog.css... 100%
Extract: Tabs.css... 100%
Extract: jqueryMultiSelect.css... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images
Extract: AboutBackground.png... 100%
Extract: Background.png... 100%
Extract: LoginSplash.png... 100%
Extract: blank.gif... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Buttons
Extract: AddDisabled.png
Extract: AddEnabled.png
Extract: AddHover.png
Extract: ApplyDisabled.png
Extract: ApplyEnabled.png
Extract: ApplyHover.png
Extract: CalendarIcon.png
Extract: CancelDisabled.png
Extract: CancelEnabled.png
Extract: CancelHover.png
Extract: ClearButtonBackground.png... 100%
Extract: DeleteAllDisabled.png
Extract: DeleteAllEnabled.png
Extract: DeleteAllHover.png
Extract: DeleteDisabled.png
Extract: DeleteEnabled.png
Extract: DeleteHover.png
Extract: DeleteSeriesDisabled.png
Extract: DeleteSeriesEnabled.png
Extract: DeleteSeriesHover.png
Extract: DeleteStudyDisabled.png
Extract: DeleteStudyEnabled.png
Extract: DeleteStudyHover.png
Extract: DiscardDisabled.png
Extract: DiscardEnabled.png
Extract: DiscardHover.png
Extract: DoneDisabled.png
Extract: DoneEnabled.png
Extract: DoneHover.png
Extract: EditDisabled.png
Extract: EditEnabled.png
Extract: EditHover.png
Extract: EditStudyDisabled.png
Extract: EditStudyEnabled.png
Extract: EditStudyHover.png
Extract: MoveDisabled.png
Extract: MoveEnabled.png
Extract: MoveHover.png
Extract: MoveSeriesDisabled.png
Extract: MoveSeriesEnabled.png
Extract: MoveSeriesHover.png
Extract: NewStudyDisabled.png
Extract: NewStudyEnabled.png
Extract: NewStudyHover.png
Extract: NoDisabled.png
Extract: NoEnabled.png
Extract: NoHover.png
Extract: OKDisabled.png
Extract: OKEnabled.png
Extract: OKHover.png
Extract: ReconcileDisabled.png
Extract: ReconcileEnabled.png
Extract: ReconcileHover.png
Extract: ReprocessDisabled.png
Extract: ReprocessEnabled.png
Extract: ReprocessHover.png
Extract: ReprocessStudyDisabled.png
Extract: ReprocessStudyEnabled.png
Extract: ReprocessStudyHover.png
Extract: RescheduleDisabled.png
Extract: RescheduleEnabled.png
Extract: RescheduleHover.png
Extract: ResetDisabled.png
Extract: ResetEnabled.png
Extract: ResetHover.png
Extract: ResetPasswordDisabled.png
Extract: ResetPasswordEnabled.png
Extract: ResetPasswordHover.png
Extract: RestoreDisabled.png
Extract: RestoreEnabled.png
Extract: RestoreHover.png
Extract: SearchClicked.png
Extract: SearchDisabled.png
Extract: SearchEnabled.png
Extract: SearchHover.png
Extract: SearchIcon.png
Extract: SearchIconHover.png
Extract: UpdateDisabled.png
Extract: UpdateEnabled.png
Extract: UpdateHover.png
Extract: ViewDetailsDisabled.png
Extract: ViewDetailsEnabled.png
Extract: ViewDetailsHover.png
Extract: ViewImagesDisabled.png
Extract: ViewImagesEnabled.png
Extract: ViewImagesHover.png
Extract: ViewSeriesDisabled.png
Extract: ViewSeriesEnabled.png
Extract: ViewSeriesHover.png
Extract: ViewStudyDisabled.png
Extract: ViewStudyEnabled.png
Extract: ViewStudyHover.png
Extract: YesDisabled.png
Extract: YesEnabled.png
Extract: YesHover.png
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Controls
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Controls\Calendar
Extract: TitleBackground.gif... 100%
Extract: calendar-arrow-left.gif... 100%
Extract: calendar-arrow-right.gif... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Controls\Dialog
Extract: DialogActiveTabLeft.png... 100%
Extract: DialogActiveTabMiddle.png... 100%
Extract: DialogActiveTabRight.png... 100%
Extract: DialogBodyBackground.png
Extract: DialogBodyBackgroundTall.png
Extract: DialogHoverTabLeft.png... 100%
Extract: DialogHoverTabMiddle.png... 100%
Extract: DialogHoverTabRight.png... 100%
Extract: DialogInactiveTabLeft.png... 100%
Extract: DialogInactiveTabMiddle.png... 100%
Extract: DialogInactiveTabRight.png... 100%
Extract: DialogTabContentBottom.png... 100%
Extract: DialogTitleBarBG-left.png... 100%
Extract: DialogTitleBarBG-right.png... 100%
Extract: DialogTitleBarBG.png... 100%
Extract: HeadingBackground.png... 100%
Extract: LinkButtonBackground.png... 100%
Extract: ReconcileButtonBackground.png... 100%
Extract: SubHeadingBackground.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Controls\GridView
Extract: GridViewHeaderBackground.png
Extract: GridViewPagerFirstDisabled.png
Extract: GridViewPagerFirstEnabled.png
Extract: GridViewPagerLastDisabled.png
Extract: GridViewPagerLastEnabled.png
Extract: GridViewPagerNextDisabled.png
Extract: GridViewPagerNextEnabled.png
Extract: GridViewPagerPreviousDisabled.png
Extract: GridViewPagerPreviousEnabled.png
Extract: GridViewPagerTopBackground.png... 100%
Extract: GridViewPagerTotalStudiesLeft.png... 100%
Extract: GridViewPagerTotalStudiesRight.png... 100%
Extract: GridViewSelectedBackground.png
Extract: WebViewerPagerFirstEnabled.png
Extract: WebViewerPagerLastEnabled.png
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Controls\Tabs
Extract: TabActiveLeft.png... 100%
Extract: TabActiveMiddle.png... 100%
Extract: TabActiveRight.png... 100%
Extract: TabHeaderBackgroundTop.png
Extract: TabHoverLeft.png... 100%
Extract: TabHoverMiddle.png... 100%
Extract: TabHoverRight.png... 100%
Extract: TabInactiveLeft.png... 100%
Extract: TabInactiveMiddle.png... 100%
Extract: TabInactiveRight.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Error
Extract: ErrorDescriptionBackground.png
Extract: ErrorMessageBackground.png... 100%
Extract: UserEscapeLinkBackground.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Header
Extract: ClearCanvasLogo.png... 100%
Extract: LocationBackground.png... 100%
Extract: LocationEdge.png... 100%
Extract: MenuBackground.png... 100%
Extract: MenuEdge.png
Extract: MenuHoverBackground.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Indicators
Extract: AcceptKOPRFeature.png
Extract: AlertIndicatorBackground.png... 100%
Extract: AutoRouteFeature.png
Extract: HelpSmall.png
Extract: IdeographicName.gif... 100%
Extract: MenuArrow.gif... 100%
Extract: PhoneticName.gif... 100%
Extract: QueryFeature.png
Extract: RefreshEnabled.gif
Extract: RefreshEnabled.png
Extract: RetrieveFeature.png
Extract: Searching.gif... 100%
Extract: StoreFeature.png
Extract: Warning.png
Extract: WarningSmall.png
Extract: Watermark.gif... 100%
Extract: ajax-loader-blue.gif... 100%
Extract: ajax-loader-green.gif... 100%
Extract: ajax-loader-yellow.gif... 100%
Extract: ajax-loader.gif... 100%
Extract: checked.png
Extract: unchecked.png... 100%
Extract: usage.png
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\MainContent
Extract: Loading.gif... 100%
Extract: Loading.png
Extract: MainContentBottom.png... 100%
Extract: MainContentBottomLeftCorner.png... 100%
Extract: MainContentBottomRightCorner.png... 100%
Extract: MainContentLeftEdge.png... 100%
Extract: MainContentRightEdge.png... 100%
Extract: MainContentTitleBackground.png... 100%
Extract: PatientSummaryBackground.png... 100%
Extract: SearchDropDownListBackground.png
Extract: SearchPanelBackground.png... 100%
Extract: SearchTextBoxBackground.png... 100%
Extract: ToolbarButtonPanelBackground.png... 100%
Extract: WebViewerToolbarBackground.png... 100%
Extract: dropdown.gif
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Pages
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\App_Themes\Default\images\Pages\Dashboard
Extract: SidebarItemBackground.png... 100%
Extract: StudiesSummaryTotalBackground.png... 100%
Extract: UserOverviewBackground.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\ClientBin
Extract: Silverlight.xap... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\ClientBin\SplashScreen
Extract: ClearCanvasWebViewerLogo.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Controls
Extract: AlertIndicator.ascx... 100%
Extract: ApplicationAlertPanel.ascx... 100%
Extract: CheckJavascript.ascx... 100%
Extract: EmptySearchResultsMessage.ascx... 100%
Extract: GridPager.ascx... 100%
Extract: InvalidInputIndicator.ascx... 100%
Extract: JQuery.ascx... 100%
Extract: MessageBox.ascx... 100%
Extract: ModalDialog.ascx... 100%
Extract: PersonNameInputPanel.ascx... 100%
Extract: PersonNameInputPanel.js... 100%
Extract: SectionPanel.ascx... 100%
Extract: ServerPartitionTabs.ascx... 100%
Extract: SessionTimeout.ascx... 100%
Extract: TimedDialog.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Images
Extract: ImageServerLogo.png... 100%
Extract: favicon.ico... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Alerts
Extract: AlertHoverPopupDetails.ascx... 100%
Extract: AlertsGridPanel.ascx... 100%
Extract: AlertsPanel.ascx... 100%
Extract: AlertsPanel.js... 100%
Extract: Default.aspx... 100%
Extract: WorkQueueAlertContextDataView.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\ApplicationLog
Extract: ApplicationLogGridView.ascx... 100%
Extract: ApplicationLogPanel.ascx... 100%
Extract: Default.aspx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Audit
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Audit\DeletedStudies
Extract: Default.aspx... 100%
Extract: DeletedStudiesSearchPanel.ascx... 100%
Extract: DeletedStudyArchiveInfoPanel.ascx... 100%
Extract: DeletedStudyDetailsDialog.ascx... 100%
Extract: DeletedStudyDetailsDialogGeneralPanel.ascx... 100%
Extract: DeletedStudyDetailsDialogPanel.ascx... 100%
Extract: DeletedStudySearchPanel.js... 100%
Extract: GeneralArchiveInfoPanel.ascx... 100%
Extract: HsmArchiveInfoPanel.ascx... 100%
Extract: SearchResultGridView.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\Devices
Extract: AddEditDeviceDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: DeviceGridView.ascx... 100%
Extract: DevicePanel.ascx... 100%
Extract: DevicePanel.js... 100%
Extract: ThrottleSettingsTab.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\FileSystems
Extract: AddEditFileSystemDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: FileSystemsGridView.ascx... 100%
Extract: FileSystemsPanel.ascx... 100%
Extract: FileSystemsPanel.js... 100%
Extract: Filesystem.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\PartitionArchive
Extract: AddEditPartitionDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: PartitionArchiveGridPanel.ascx... 100%
Extract: PartitionArchivePanel.ascx... 100%
Extract: PartitionArchivePanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\ServerPartitions
Extract: AddEditPartitionDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: ServerPartitionGridPanel.ascx... 100%
Extract: ServerPartitionPanel.ascx... 100%
Extract: ServerPartitionPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\ServerRules
Extract: AddEditServerRuleDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: ServerRuleGridView.ascx... 100%
Extract: ServerRulePanel.ascx... 100%
Extract: ServerRulePanel.js... 100%
Extract: ServerRuleSamples.asmx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Configure\ServiceLocks
Extract: Default.aspx... 100%
Extract: EditServiceLockDialog.ascx... 100%
Extract: ServiceLockGridView.ascx... 100%
Extract: ServiceLockPanel.ascx... 100%
Extract: ServiceLockPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\Dashboard
Extract: AlertHoverPopupDetails.ascx... 100%
Extract: AlertsGridView.ascx... 100%
Extract: Default.aspx... 100%
Extract: FileSystemsGridView.ascx... 100%
Extract: ServerPartitionGridView.ascx... 100%
Extract: StudiesSummary.ascx... 100%
Extract: StudyIntegrityQueueSummary.ascx... 100%
Extract: WorkQueueAlertContextDataView.ascx... 100%
Extract: WorkQueueSummary.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\UserManagement
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\UserManagement\UserGroups
Extract: AddEditUserGroupsDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: UserGroupsGridPanel.ascx... 100%
Extract: UserGroupsPanel.ascx... 100%
Extract: UserGroupsPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Admin\UserManagement\Users
Extract: AddEditUserDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: UserGridPanel.ascx... 100%
Extract: UserPanel.ascx... 100%
Extract: UserPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Common
Extract: BarChart.aspx... 100%
Extract: BaseAdminPage.aspx... 100%
Extract: BasePage.aspx... 100%
Extract: Default.aspx... 100%
Extract: MainContentSection.Master... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Error
Extract: AuthorizationErrorPage.aspx... 100%
Extract: CookiesRequired.aspx... 100%
Extract: Default.aspx... 100%
Extract: ErrorPage.aspx... 100%
Extract: ErrorPageMaster.Master... 100%
Extract: JavascriptRequired.aspx... 100%
Extract: TimeoutErrorPage.aspx... 100%
Extract: WebViewerAuthorizationErrorPage.aspx... 100%
Extract: WebViewerErrorPage.aspx... 100%
Extract: WebViewerErrorPageMaster.Master... 100%
Extract: WebViewerMultipleStudiesTimeoutErrorPage.aspx... 100%
Extract: WebViewerTimeoutErrorPage.aspx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Help
Extract: About.aspx... 100%
Extract: Default.aspx... 100%
Extract: Documentation.aspx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Login
Extract: ChangePasswordDialog.ascx... 100%
Extract: Default.aspx... 100%
Extract: PasswordExpiredDialog.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues\ArchiveQueue
Extract: ArchiveQueueItemList.ascx... 100%
Extract: Default.aspx... 100%
Extract: ResetArchiveQueueDialog.ascx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues\RestoreQueue
Extract: Default.aspx... 100%
Extract: RestoreQueueItemList.ascx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues\StudyIntegrityQueue
Extract: Default.aspx... 100%
Extract: DuplicateSopDialog.ascx... 100%
Extract: ReconcileDialog.ascx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Extract: StudyIntegrityQueueItemList.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues\WorkQueue
Extract: Default.aspx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Extract: WorkQueueAlertPanel.ascx... 100%
Extract: WorkQueueItemList.ascx... 100%
Extract: WorkQueueSettings.settings... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Queues\WorkQueue\Edit
Extract: AutoRouteWorkQueueDetailsView.ascx... 100%
Extract: Default.aspx... 100%
Extract: DeleteWorkQueueDialog.ascx... 100%
Extract: GeneralWorkQueueDetailsView.ascx... 100%
Extract: ProcessDuplicateWorkQueueDetailsView.ascx... 100%
Extract: ResetWorkQueueDialog.ascx... 100%
Extract: ScheduleWorkQueueDialog.ascx... 100%
Extract: TierMigrationWorkQueueDetailsView.ascx... 100%
Extract: WebEditStudyWorkQueueDetailsView.ascx... 100%
Extract: WebMoveStudyWorkQueueDetailsView.ascx... 100%
Extract: WorkQueueItemDeleted.aspx... 100%
Extract: WorkQueueItemDetailsPanel.ascx... 100%
Extract: WorkQueueItemDetailsPanel.js... 100%
Extract: WorkQueueSettingsPanel.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies
Extract: Default.aspx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Extract: StudyListGridView.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\Move
Extract: Default.aspx... 100%
Extract: DeviceGridView.ascx... 100%
Extract: MovePanel.ascx... 100%
Extract: MovePanel.js... 100%
Extract: StudyGridView.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\MoveSeries
Extract: Default.aspx... 100%
Extract: DeviceGridView.ascx... 100%
Extract: MovePanel.ascx... 100%
Extract: MovePanel.js... 100%
Extract: PatientSummaryPanel.ascx... 100%
Extract: SeriesGridView.ascx... 100%
Extract: StudySummaryPanel.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\SeriesDetails
Extract: Default.aspx... 100%
Extract: PatientSummaryPanel.ascx... 100%
Extract: SeriesDetailsPanel.ascx... 100%
Extract: SeriesDetailsView.ascx... 100%
Extract: StudySummaryPanel.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\StudyDetails
Extract: Default.aspx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\StudyDetails\Controls
Extract: ArchivePanel.ascx... 100%
Extract: DeleteSeriesConfirmDialog.ascx... 100%
Extract: DeleteStudyConfirmDialog.ascx... 100%
Extract: DuplicateProcessChangeLog.ascx... 100%
Extract: EditHistoryDetailsColumn.ascx... 100%
Extract: EditStudyDetailsDialog.ascx... 100%
Extract: FileSystemQueueGridView.ascx... 100%
Extract: HistoryPanel.ascx... 100%
Extract: PatientSummaryPanel.ascx... 100%
Extract: ReconcileHistoryDetailsColumn.ascx... 100%
Extract: SeriesDeleteChangeLog.ascx... 100%
Extract: SeriesGridView.ascx... 100%
Extract: StudyDetailsPanel.ascx... 100%
Extract: StudyDetailsTabs.ascx... 100%
Extract: StudyDetailsView.ascx... 100%
Extract: StudyHistoryChangeDescPanel.ascx... 100%
Extract: StudyIntegrityQueueGridView.ascx... 100%
Extract: StudyReprocessChangeLog.ascx... 100%
Extract: StudyStateAlertPanel.ascx... 100%
Extract: StudyStorageView.ascx... 100%
Extract: WorkQueueGridView.ascx... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\StudyDetails\Scripts
Extract: FileSystemQueueGridView.js... 100%
Extract: SeriesGridView.js... 100%
Extract: StudyDetailsTabs.js... 100%
Extract: WorkQueueGridView.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\View
Extract: Default.aspx... 100%
Extract: silverlight.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\Studies\View\SplashScreen
Extract: SplashScreen.js... 100%
Extract: SplashScreen.xaml... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\WebViewer
Extract: AutomaticLoginDemo.htm... 100%
Extract: Default.aspx... 100%
Extract: GridPager.ascx... 100%
Extract: JQuery.ascx... 100%
Extract: Launch.aspx... 100%
Extract: SearchPanel.ascx... 100%
Extract: SearchPanel.js... 100%
Extract: SessionTimeout.ascx... 100%
Extract: StandaloneDemo.htm... 100%
Extract: StudyList.aspx... 100%
Extract: StudyListGridView.ascx... 100%
Extract: jquery-1.4.2.min.js... 100%
Extract: silverlight.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\WebViewer\Images
Extract: Searching.gif... 100%
Extract: StudiesPageLogo.png... 100%
Extract: WebViewerPagerBackground.png... 100%
Extract: WebViewerPagerFirstDisabled.png... 100%
Extract: WebViewerPagerFirstEnabled.png
Extract: WebViewerPagerLastDisabled.png... 100%
Extract: WebViewerPagerLastEnabled.png
Extract: WebViewerPagerNextDisabled.png... 100%
Extract: WebViewerPagerNextEnabled.png
Extract: WebViewerPagerPreviousDisabled.png... 100%
Extract: WebViewerPagerPreviousEnabled.png
Extract: WebViewerPagerTotalStudiesLeft.png... 100%
Extract: WebViewerPagerTotalStudiesRight.png... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Pages\WebViewer\SplashScreen
Extract: SplashScreen.js... 100%
Extract: SplashScreen.xaml... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Scripts
Extract: ClearCanvas.js... 100%
Extract: ErrorHandling.js... 100%
Extract: NumberFormat154.js... 100%
Extract: date.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Scripts\CodeMirror
Extract: LICENSE... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Scripts\CodeMirror\css
Extract: csscolors.css... 100%
Extract: docs.css... 100%
Extract: jscolors.css... 100%
Extract: sparqlcolors.css... 100%
Extract: xmlcolors.css... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Scripts\CodeMirror\js
Extract: codemirror.js... 100%
Extract: editor.js... 100%
Extract: mirrorframe.js... 100%
Extract: parsecss.js... 100%
Extract: parsehtmlmixed.js... 100%
Extract: parsejavascript.js... 100%
Extract: parsesparql.js... 100%
Extract: parsexml.js... 100%
Extract: select.js... 100%
Extract: stringstream.js... 100%
Extract: tokenize.js... 100%
Extract: tokenizejavascript.js... 100%
Extract: undo.js... 100%
Extract: util.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Scripts\jquery
Extract: jquery-1.2.6.min.js... 100%
Extract: jquery-1.3.2.min.js... 100%
Extract: jquery.dimensions.js... 100%
Extract: jquery.dropshadow.js... 100%
Extract: jquery.maskedinput-1.2.1.js... 100%
Extract: jquery.multiselect.js... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\Services
Extract: FilesystemInfoService.asmx... 100%
Extract: ValidationServices.asmx... 100%
Extract: webservice.htc... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin
Extract: AjaxControlToolkit.dll... 100%
Extract: App_GlobalResources.compiled... 100%
Extract: App_GlobalResources.dll... 100%
Extract: App_global.asax.compiled... 100%
Extract: App_global.asax.dll... 100%
Extract: Castle.Core.dll... 100%
Extract: Castle.DynamicProxy2.dll... 100%
Extract: ClearCanvas.Common.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Jpeg.dll... 100%
Extract: ClearCanvas.Dicom.Codec.Rle.dll... 100%
Extract: ClearCanvas.Dicom.dll... 100%
Extract: ClearCanvas.Enterprise.Common.dll... 100%
Extract: ClearCanvas.Enterprise.Core.dll... 100%
Extract: ClearCanvas.ImageServer.Common.dll... 100%
Extract: ClearCanvas.ImageServer.Core.dll... 100%
Extract: ClearCanvas.ImageServer.Enterprise.SqlServer2005.dll... 100%
Extract: ClearCanvas.ImageServer.Enterprise.dll... 100%
Extract: ClearCanvas.ImageServer.Model.SqlServer2005.dll... 100%
Extract: ClearCanvas.ImageServer.Model.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.JpegCodec.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.RleCodec.dll... 100%
Extract: ClearCanvas.ImageServer.Rules.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Archiving.Hsm.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Archiving.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Common.dll... 100%
Extract: ClearCanvas.ImageServer.Services.Dicom.dll... 100%
Extract: ClearCanvas.ImageServer.Services.WorkQueue.dll... 100%
Extract: ClearCanvas.ImageServer.Web.Application.Assembly.dll... 100%
Extract: ClearCanvas.ImageServer.Web.Common.dll... 100%
Extract: ClearCanvas.Server.ShredHost.dll... 100%
Extract: Ionic.Zip.dll... 100%
Extract: System.Web.Extensions.dll... 100%
Extract: Validators.dll... 100%
Extract: log4net.dll... 100%
Extract: nunit.framework.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\ar
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\cs
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\de
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\es
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\fr
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\he
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\hi
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\it
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\ja
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\ko
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\nl
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\pt
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\ru
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\tr-TR
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\zh-CHS
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web\bin\zh-CHT
Extract: AjaxControlToolkit.resources.dll... 100%
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\web
Configuring Web
Deploying ClientAccessPolicy.xml
Found existing ClientAccessPolicy.xml.
ClientAccessPolicy.xml was not deployed.
Generating Logging.Config file
Configuring Admin User
Creating virtual directory...
Creating C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\createVDir.vbs
Executing C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\createVDir.vbs
Successfully created IIS virtual directory
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\createVDir.vbs
Creating C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\regMime.vbs
Executing C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\regMime.vbs
Delete file: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\regMime.vbs
Output folder: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha
Create shortcut: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\ClearCanvas\ClearCanvas Image Server Alpha\ClearCanvas Website.lnk
Create shortcut: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\ClearCanvas\ClearCanvas Image Server Alpha\Uninstall ClearCanvas Image Server Alpha.lnk
Created uninstaller: C:\Programme\ClearCanvas\ClearCanvas Image Server Alpha\uninst.exe
steve
Senior Member
Senior Member
Posts:1932

--
2010-09-07 12:41 PM  
This is an installation log file. Can you check in the directory \web\ logs to see if theres a log file?
Real-time support available to Clinical Edition and Team Edition customers
mh
New Member
New Member
Posts:6

--
2010-09-07 03:54 PM  
Sorry, there are no further log files.

Thanks anyway

mh
steve
Senior Member
Senior Member
Posts:1932

--
2010-09-09 11:44 AM  
mh,

I guess I'm not sure what else could be the cause of the issue. I would suggest doing a clean install to see if you can get it working.

Steve
Real-time support available to Clinical Edition and Team Edition customers
steve
Senior Member
Senior Member
Posts:1932

--
2010-09-09 01:39 PM  

 mh,

Upon further review, there's a couple of posts in the forums where users had similar issues:

clearcanvas.ca/dnn/Community/Forums...fault.aspx

www.clearcanvas.ca/dnn/Community/Fo...fault.aspx

The post's answers are limited, but they do give some more potential background on your problem.

Steve

Real-time support available to Clinical Edition and Team Edition customers
mh
New Member
New Member
Posts:6

--
2010-09-11 02:44 PM  
steve,

thanks for your reply. I did a complete reinstallation ... and it's works.

mh
mh
New Member
New Member
Posts:6

--
2011-01-29 05:13 PM  
actually the error seemed to be caused by .net Framework 4

mh
You are not authorized to post a reply.

Active Forums 4.1
Copyright 2012 ClearCanvas Inc.