开放和编译项目My.Medical.Storage.DataAccessLayer项目。默认位置C: \ LEADTOOLS21 \ \ DotNet \ PACSFramework \ CS例子\ \ My.Medical.Storage.DataAccessLayer教程注意:如果您使用的是较早版本的SQL Server 2008(例如SQL Server 2005),没有对数据类型的支持SqlDbType.Date。在这种情况下,你有选择:
开放MyDataSet.Designer.cs,替换所有的实例SqlDbType.Date与SqlDbType.DateTime
按以下步骤在强类型数据集类和XML模式产生的一个新实例MyDataSet.Designer.cs。
开放和编译My.Medical.Storage.Configuration项目。默认位置C: \ LEADTOOLS21 \ \ DotNet \ PACSFramework \ CS例子\ \ My.Medical.Storage.Configuration教程
编译项目将产生两个组件:
本教程使用Microsoft SQL Server 2008和SQL Server Management Studio。您还可以使用SQL精简版,安装在默认情况下,当你安装Visual Studio。如果您使用SQL精简版,您可以下载SQL Server Management Studio Express(来自微软的免费下载)。
脚本生成教程为SQL Server 2008数据库
使用(主)去/ * * * * * *对象:数据库(MyDicomDb)脚本日期:07/15/2013 13:02:13 * * * * * * /创建数据库(MyDicomDb)去改变数据库(MyDicomDb)集COMPATIBILITY_LEVEL = 100去如果(1 = FULLTEXTSERVICEPROPERTY (“IsFullTextInstalled”))开始EXEC [MyDicomDb]。[dbo]。sp_fulltext_database @action =“启用”结束去改变数据库(MyDicomDb)集ANSI_NULL_DEFAULT去改变数据库(MyDicomDb)集ANSI_NULLS去改变数据库(MyDicomDb)集ANSI_PADDING去改变数据库(MyDicomDb)集ANSI_WARNINGS去改变数据库(MyDicomDb)集ARITHABORT去改变数据库(MyDicomDb)集AUTO_CLOSE去改变数据库(MyDicomDb AUTO_CREATE_STATISTICS)去改变数据库(MyDicomDb)集AUTO_SHRINK去改变数据库(MyDicomDb AUTO_UPDATE_STATISTICS)去改变数据库(MyDicomDb)集CURSOR_CLOSE_ON_COMMIT去改变数据库MyDicomDb CURSOR_DEFAULT全球去改变数据库(MyDicomDb)集CONCAT_NULL_YIELDS_NULL去改变数据库(MyDicomDb)集NUMERIC_ROUNDABORT去改变数据库(MyDicomDb)集QUOTED_IDENTIFIER去改变数据库(MyDicomDb)集RECURSIVE_TRIGGERS去改变数据库MyDicomDb DISABLE_BROKER设置去改变数据库(MyDicomDb)集AUTO_UPDATE_STATISTICS_ASYNC去改变数据库(MyDicomDb)集DATE_CORRELATION_OPTIMIZATION去改变数据库(MyDicomDb)集值得信赖去改变数据库(MyDicomDb)集ALLOW_SNAPSHOT_ISOLATION去改变数据库(MyDicomDb)参数设置简单去改变数据库(MyDicomDb)集READ_COMMITTED_SNAPSHOT去改变数据库(MyDicomDb)集HONOR_BROKER_PRIORITY去改变数据库(MyDicomDb)集READ_WRITE去改变数据库(MyDicomDb)设置恢复完整去改变数据库MyDicomDb MULTI_USER设置去改变数据库(MyDicomDb)集PAGE_VERIFY校验和去改变数据库(MyDicomDb)集DB_CHAINING去执行系统。sp_db_vardecimal_storage_format N“MyDicomDb”N“上”去使用[MyDicomDb]去/ * * * * * *对象:表[dbo]。(MyPatientTable)脚本日期:07/01/2013 17:44:15 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyPatientTable] ([PatientId] [int身份(1,1)非空,[PatientIdentification] nvarchar(70)非空,[PatientName] [nvarchar (max)不空,[PatientBirthday][日期]空,[PatientSex] [nvarchar](50)为空,[PatientComments] [nvarchar](200)为空,主键约束(PK_Patient)集群([PatientId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_PatientIdentification)独特的非聚集([PatientIdentification] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MyStudyTable)脚本日期:07/01/2013 17:44:15 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyStudyTable] ([StudyId] [int身份(1,1)非空,[StudyPatientId] [int非空,[StudyStudyInstanceUID] nvarchar(64)非空,[StudyStudyDate][日期]空,[StudyAccessionNumber] [nvarchar](64)为空,[StudyStudyDescription] [nvarchar](256)为空,[StudyReferringPhysiciansName] [nvarchar](50)为空,[StudyStudyId] [nvarchar](16)为空,主键约束(PK_Study)集群([StudyId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_StudyStudyInstanceUID)独特的非聚集([StudyStudyInstanceUID] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MySeriesTable)脚本日期:07/01/2013 17:44:15 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MySeriesTable] ([SeriesId] [int身份(1,1)非空,[SeriesStudyId] [int非空,[SeriesSeriesInstanceUID] nvarchar(64)非空,[SeriesBodyPartExamined] [nvarchar](16)为空,[SeriesSeriesNumber] [int空,[SeriesSeriesDescription] [nvarchar](300)为空,[SeriesSeriesDate][日期]空,[SeriesModality] [nvarchar](50)为空,主键约束(PK_Series)集群([SeriesId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_SerieSeriesInstanceUID)独特的非聚集(SeriesSeriesInstanceUID ASC,[SeriesStudyId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MyInstanceTable)脚本日期:07/01/2013 17:44:15 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyInstanceTable] ([ImageId] [bigint]身份(1,1)非空,[ImageSeriesId] [int非空,[SOPInstanceUID] nvarchar(64)非空,[ImageImageNumber] [int非空,[ImageLastStoreDate][日期]空,[ImageFilename] nvarchar(400)非空,[ImageUniqueSOPClassUID] [nvarchar](64)为空,[ImageRows] [bigint]空,[ImageColumns] [bigint]空,[ImageBitsAllocated] [bigint]空,主键约束(PK_Image)集群([ImageId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(IX_Image_SOPInstanceUID)独特的非聚集([SOPInstanceUID] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:ForeignKey [FK_DImage_Series]脚本日期:07/01/2013 17:44:15 * * * * * * /ALTER TABLE (dbo)。(MyInstanceTable)与检查添加约束(FK_DImage_Series)外键([ImageSeriesId])引用(dbo)。[MySeriesTable] ([SeriesId])在级联删除去ALTER TABLE (dbo)。[FK_DImage_Series] [MyInstanceTable]检查约束去/ * * * * * *对象:ForeignKey [FK_Series_Study]脚本日期:07/01/2013 17:44:15 * * * * * * /ALTER TABLE (dbo)。(MySeriesTable)与检查添加约束(FK_Series_Study)外键([SeriesStudyId])引用(dbo)。[MyStudyTable] ([StudyId])去ALTER TABLE (dbo)。[FK_Series_Study] [MySeriesTable]检查约束去/ * * * * * *对象:ForeignKey [FK_Study_Patient]脚本日期:07/01/2013 17:44:15 * * * * * * /ALTER TABLE (dbo)。(MyStudyTable)与检查添加约束(FK_Study_Patient)外键([StudyPatientId])引用(dbo)。[MyPatientTable] ([PatientId])去ALTER TABLE (dbo)。[FK_Study_Patient] [MyStudyTable]检查约束去
注意:
早期版本的SQL Server(例如SQL Server 2005),没有对数据类型的支持SqlDbType.Date。
如果您正在使用SQL Server 2005,您可以使用下面的脚本生成数据库,而不是使用的数据类型SqlDbType.DateTime。
脚本生成教程为SQL Server 2005数据库
使用(主)去/ * * * * * *对象:数据库(MyDicomDb)脚本日期:08/12/2013 10:39:18 * * * * * * /创建数据库(MyDicomDb)去如果(1 = FULLTEXTSERVICEPROPERTY (“IsFullTextInstalled”))开始EXEC [MyDicomDb]。[dbo]。sp_fulltext_database @action =“启用”结束去改变数据库(MyDicomDb)集ANSI_NULL_DEFAULT去改变数据库(MyDicomDb)集ANSI_NULLS去改变数据库(MyDicomDb)集ANSI_PADDING去改变数据库(MyDicomDb)集ANSI_WARNINGS去改变数据库(MyDicomDb)集ARITHABORT去改变数据库(MyDicomDb)集AUTO_CLOSE去改变数据库(MyDicomDb AUTO_CREATE_STATISTICS)去改变数据库(MyDicomDb)集AUTO_SHRINK去改变数据库(MyDicomDb AUTO_UPDATE_STATISTICS)去改变数据库(MyDicomDb)集CURSOR_CLOSE_ON_COMMIT去改变数据库MyDicomDb CURSOR_DEFAULT全球去改变数据库(MyDicomDb)集CONCAT_NULL_YIELDS_NULL去改变数据库(MyDicomDb)集NUMERIC_ROUNDABORT去改变数据库(MyDicomDb)集QUOTED_IDENTIFIER去改变数据库(MyDicomDb)集RECURSIVE_TRIGGERS去改变数据库MyDicomDb DISABLE_BROKER设置去改变数据库(MyDicomDb)集AUTO_UPDATE_STATISTICS_ASYNC去改变数据库(MyDicomDb)集DATE_CORRELATION_OPTIMIZATION去改变数据库(MyDicomDb)集值得信赖去改变数据库(MyDicomDb)集ALLOW_SNAPSHOT_ISOLATION去改变数据库(MyDicomDb)参数设置简单去改变数据库(MyDicomDb)集READ_COMMITTED_SNAPSHOT去改变数据库(MyDicomDb)集READ_WRITE去改变数据库(MyDicomDb)设置恢复完整去改变数据库MyDicomDb MULTI_USER设置去改变数据库(MyDicomDb)集PAGE_VERIFY校验和去改变数据库(MyDicomDb)集DB_CHAINING去使用[MyDicomDb]去/ * * * * * *对象:表[dbo]。(MyPatientTable)脚本日期:08/12/2013 10:39:19 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyPatientTable] ([PatientId] [int身份(1,1)非空,[PatientIdentification] nvarchar(70)非空,[PatientName] [nvarchar (max)不空,[PatientBirthday] [datetime)空,[PatientSex] [nvarchar](50)为空,[PatientComments] [nvarchar](200)为空,主键约束(PK_Patient)集群([PatientId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_PatientIdentification)独特的非聚集([PatientIdentification] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MyStudyTable)脚本日期:08/12/2013 10:39:19 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyStudyTable] ([StudyId] [int身份(1,1)非空,[StudyPatientId] [int非空,[StudyStudyInstanceUID] nvarchar(64)非空,[StudyStudyDate] [datetime)空,[StudyAccessionNumber] [nvarchar](64)为空,[StudyStudyDescription] [nvarchar](256)为空,[StudyReferringPhysiciansName] [nvarchar](50)为空,[StudyStudyId] [nvarchar](16)为空,主键约束(PK_Study)集群([StudyId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_StudyStudyInstanceUID)独特的非聚集([StudyStudyInstanceUID] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MySeriesTable)脚本日期:08/12/2013 10:39:19 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MySeriesTable] ([SeriesId] [int身份(1,1)非空,[SeriesStudyId] [int非空,[SeriesSeriesInstanceUID] nvarchar(64)非空,[SeriesBodyPartExamined] [nvarchar](16)为空,[SeriesSeriesNumber] [int空,[SeriesSeriesDescription] [nvarchar](300)为空,[SeriesSeriesDate] [datetime)空,[SeriesModality] [nvarchar](50)为空,主键约束(PK_Series)集群([SeriesId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(uc_SerieSeriesInstanceUID)独特的非聚集(SeriesSeriesInstanceUID ASC,[SeriesStudyId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:表[dbo]。(MyInstanceTable)脚本日期:08/12/2013 10:39:19 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表[dbo]。[MyInstanceTable] ([ImageId] [bigint]身份(1,1)非空,[ImageSeriesId] [int非空,[SOPInstanceUID] nvarchar(64)非空,[ImageImageNumber] [int非空,[ImageLastStoreDate] [datetime)空,[ImageFilename] nvarchar(400)非空,[ImageUniqueSOPClassUID] [nvarchar](64)为空,[ImageRows] [bigint]空,[ImageColumns] [bigint]空,[ImageBitsAllocated] [bigint]空,主键约束(PK_Image)集群([ImageId] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)(主要),约束(IX_Image_SOPInstanceUID)独特的非聚集([SOPInstanceUID] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去/ * * * * * *对象:ForeignKey [FK_Study_Patient]脚本日期:08/12/2013 10:39:19 * * * * * * /ALTER TABLE (dbo)。(MyStudyTable)与检查添加约束(FK_Study_Patient)外键([StudyPatientId])引用(dbo)。[MyPatientTable] ([PatientId])去ALTER TABLE (dbo)。[FK_Study_Patient] [MyStudyTable]检查约束去/ * * * * * *对象:ForeignKey [FK_Series_Study]脚本日期:08/12/2013 10:39:19 * * * * * * /ALTER TABLE (dbo)。(MySeriesTable)与检查添加约束(FK_Series_Study)外键([SeriesStudyId])引用(dbo)。[MyStudyTable] ([StudyId])去ALTER TABLE (dbo)。[FK_Series_Study] [MySeriesTable]检查约束去/ * * * * * *对象:ForeignKey [FK_DImage_Series]脚本日期:08/12/2013 10:39:19 * * * * * * /ALTER TABLE (dbo)。(MyInstanceTable)与检查添加约束(FK_DImage_Series)外键([ImageSeriesId])引用(dbo)。[MySeriesTable] ([SeriesId])在级联删除去ALTER TABLE (dbo)。[FK_DImage_Series] [MyInstanceTable]检查约束去
注释掉现有的storageDataAccessConfiguration175条目的configSections,添加一个新的myStorageDataAccessConfiguration175部分。新节突出显示下面的黄色。
< !——<节名=“storageDataAccessConfiguration175”类型=“Leadtools.Medical.DataAccessLayer.Configuration。DataAccessSettings Leadtools.Medical。DataAccessLayer、Version = 21.0.0.1、文化=中立,都必须9 cf889f53ea9b907”/ > - - ><节名=“myStorageDataAccessConfiguration175”类型=“Leadtools.Medical.DataAccessLayer.Configuration。DataAccessSettings Leadtools.Medical。DataAccessLayer、Version = 21.0.0.1、文化=中立,都必须9 cf889f53ea9b907”/ >
注释掉现有的StorageServer条目的storageDataAccessConfiguration175定义,并添加一个新的myStorageDataAccessConfiguration175定义。这些变化突出显示下面的黄色。
< storageDataAccessConfiguration175 connectionName =“LeadStorageServer21_32”>< !——<添加productName =“StorageServer”名=“L21_PACS_SCP32”connectionName =“LeadStorageServer21_32”/ > - - ><添加productName =“工作站”名=“L21_WS_SERVER32”connectionName =“MedicalWorkstation21_32”/ >< / storageDataAccessConfiguration175 >< myStorageDataAccessConfiguration175 connectionName =“MyDicomDb”><添加productName =“StorageServer”名=“L21_PACS_SCP32”connectionName =“MyDicomDb”/ >< / myStorageDataAccessConfiguration175 >
添加一个新的连接字符串条目< connectionStrings >元素。
新连接字符串突出显示下面用黄色。新旧版本的区别一个是在旧的字符串,名称和目录称为“LeadStorageServer21_32”,而在新的字符串被称为“MyDicomDb”。
< connectionStrings ><添加名称=“LeadStorageServer21_32”connectionString =“数据源=医学测试,故障转移伙伴=;初始目录= LeadStorageServer21_32;综合安全= False;用户ID = sa;密码= sa;池= True”providerName =“System.Data.SqlClient”/ ><添加名称=“MyDicomDb”connectionString =“数据源=医学测试,故障转移伙伴=;初始目录= MyDicomDb;综合安全= False;用户ID = sa;密码= sa;池= True”providerName =“System.Data.SqlClient”/ >< / connectionStrings >
将更改保存到globalPacs.config,并关闭该文件。
修改shell.cs
注意所有的这些变化已经在航运版本的外壳。cs,裹在指令
默认位置C: \ LEADTOOLS21 \ \ DotNet \ PACSFramework \例子CS \ StorageServerManager \ \ Shell.cs壳
/ /代码更改的教程使用Leadtools.Medical.Storage.DataAccessLayer.Interface;使用My.Medical.Storage.DataAccessLayer;使用My.Medical.Storage.DataAccessLayer.Entities;/ /代码更改的教程
添加以下的Run ()方法,后立即调用CreateConfigurationServices(服务);
/ /代码更改的教程DataAccessServiceLocator.Register < IPatientInfo > (新MyPatientInfo ());DataAccessServiceLocator.Register < IStudyInfo > (新MyStudyInfo ());DataAccessServiceLocator.Register < ISeriesInfo > (新MySeriesInfo ());DataAccessServiceLocator.Register < IInstanceInfo > (新MyInstanceInfo ());RegisteredEntities.Items.Add (RegisteredEntities.PatientEntityNametypeof(MyPatient));RegisteredEntities.Items.Add (RegisteredEntities.StudyEntityNametypeof(MyStudy));RegisteredEntities.Items.Add (RegisteredEntities.SeriesEntityNametypeof(MySeries));RegisteredEntities.Items.Add (RegisteredEntities.InstanceEntityNametypeof(MyInstance));/ /代码更改的教程
在RegisterDataAccessLayers ()方法,改变以下语句创建的实例MyStorageDataAccessConfigurationView。变化是突出显示黄色:
storageAgent = DataAccessFactory。GetInstance(新我的StorageDataAccessConfigurationView(配置,DicomDemoSettings188金宝搏beat体育官网Manager。ProductNameStorageServer, null))。CreateDataAccessAgent < IStorageDataAccessAgent > ();
修改Program.cs
booldbConfigured = GlobalPacsUpdater.IsDbComponentsConfigured 188金宝搏的网址客服(productsToCheck,出消息);dbConfigured =真正的;
修改StorageServerContainerPresenter.cs
/ /代码更改的教程使用My.Medical.Storage.DataAccessLayer;使用My.Medical.Storage.DataAccessLayer.Entities;使用Leadtools.Dicom.Common.DataTypes;使用Leadtools.Medical.Winforms.Control;使用Leadtools.Dicom.Common.Extensions;/ /代码更改的教程
后RunView()方法,插入MyPrepareSearch()方法。看到StorageDatabaseManager分配。PrepareSearch委托一个解释的委托。
私人无效MyPrepareSearch (MatchingParameterCollection matchingCollection){DicomQueryParams q = __DbManager.GetDicomQueryParams ();试一试{MatchingParameterList matchingList =新MatchingParameterList ();MyPatient耐心=新MyPatient ();MyStudy研究=新MyStudy ();MySeries系列=新MySeries ();matchingList.Add(病人);matchingList.Add(研究);matchingList.Add(系列);matchingCollection.Add (matchingList);研究。StudyAccessionNumber = q.AccessionNumber;病人。PatientIdentification = q.PatientId;如果(!字符串.IsNullOrEmpty (q.PatientName.FamilyName))病人。PatientName = q.PatientName.FamilyName.TrimEnd (‘*’)+“*”;如果(!字符串.IsNullOrEmpty (q.PatientName.GivenName))病人。PatientName = q.PatientName.GivenName.TrimEnd (‘*’)+“*”;如果(!字符串.IsNullOrEmpty (q.Modalities))系列。SeriesModality = q.Modalities.Replace (”、““\ \”);;如果(!字符串.IsNullOrEmpty (q.SeriesDescription))系列。SeriesSeriesDescription = q.SeriesDescription.TrimEnd (‘*’)+“*”;如果(!字符串.IsNullOrEmpty (q.ReferringPhysiciansName.FamilyName))研究。StudyReferringPhysiciansName = q.ReferringPhysiciansName.FamilyName.TrimEnd (‘*’)+“*”;;如果(!字符串.IsNullOrEmpty (q.ReferringPhysiciansName.GivenName))研究。StudyReferringPhysiciansName = q.ReferringPhysiciansName.GivenName.TrimEnd (‘*’)+“*”;;如果(问。StudyFromChecked | | q.StudyToChecked){DateRange studyDateRange =新DateRange ();如果(q.StudyFromChecked){studyDateRange。开始Date = q.StudyFromDate;}如果(q.StudyToChecked){studyDateRange。EndDate = q.StudyToDate;}研究。StudyStudyDate = studyDateRange;}如果(q.StorageDateChecked){MyInstance实例=新MyInstance ();DateRange DateRange =新DateRange ();DateRangeFilter StorageDateRangeFilter = q.StorageDateRange;字符串startDate可以= StorageDateRangeFilter.DateRangeFrom;字符串endDate = StorageDateRangeFilter.DateRangeTo;如果(StorageDateRangeFilter。选择edDateFilter == DateRangeFilter.RangeFilterType.DateRange){如果(!字符串.IsNullOrEmpty (startDate可以)){dateRange。开始Date = DateTime.Parse(startDate);}如果(!字符串.IsNullOrEmpty (endDate)){dateRange。EndDate = DateTime.Parse (EndDate);}}其他的如果(StorageDateRangeFilter。选择edDateFilter == DateRangeFilter.RangeFilterType.Months){DateTime lastMonthsDate = DateTime.Now.SubtractMonths (Convert.ToInt32 (StorageDateRangeFilter.LastMonths));dateRange。开始Date = lastMonthsDate;dateRange。EndDate = DateTime.Now;}其他的{时间间隔subtractionDays =新时间间隔(Convert.ToInt32 (StorageDateRangeFilter.LastDays),DateTime.Now.Hour,DateTime.Now.Minute,DateTime.Now.Second,DateTime.Now.Millisecond);dateRange。开始Date = DateTime.Now.Subtract(subtractionDays);dateRange。EndDate = DateTime.Now;}实例。ImageLastStoreDate = dateRange;matchingList.Add(实例);}研究。StudyStudyId = q.StudyId;}抓(例外的例外){扔异常;}最后{/ /什么都不做;}}
在CreateContainerPages ()方法,分配PrepareSearchDelegate
StorageDatabaseManager dbManager =新StorageDatabaseManager ();dbManager。PrepareSearch =新PrepareSearchDelegate (MyPrepareSearch);
在CreateContainerPages ()方法,添加一个调用查询参数
ServerState.Instance。LicenseChanged + =新EventHandler (Instance_LicenseChanged);dbManager.GetDicomQueryParams ();
在ConfigureServerInfoConrol ()方法,修改GetConnectionString调用使用自定义配置
存储= GetConnectionString (configPacs configMachine,新我的StorageDataAccessConfigurationView (configPacs PacsProduct.ProductName,零).DataAccessSettingsSectionName);
构建CSStorageServerManager.exe
修改Leadtools.Dicom.Server.exe.config(添加突出显示在黄色)
< ?xml version =“1.0”编码=“utf - 8”? ><配置>< configSections ><节名=“leadLogging”类型=“Leadtools.Logging.Configuration。ConfigSectionHandler Leadtools.Logging”/ ><节名=“xmlStorageCatalogSettings”类型=“Leadtools.Medical.Storage.DataAccessLayer。XmlStorageCatalogSettings Leadtools.Medical.Storage.DataAccessLayer”/ >< sectionGroup name =“applicationSettings”类型=“System.Configuration。ApplicationSettingsGroup、系统版本= 2.0.0.0之间、文化=中立,都要“><节名=“Leadtools.Dicom.Service.Properties.Settings”类型=“System.Configuration。ClientSettingsSection、系统版本= 2.0.0.0之间、文化=中立,都要“requirePermission =“假”/ >< / sectionGroup >< / configSections >< leadLogging ><频道><通道名称=“DataAccessLoggingChannel”类型=“Leadtools.Medical.Logging.DataAccessLayer。DataAccessLoggingChannel Leadtools.Medical.Logging.DataAccessLayer”/ >< /频道>< / leadLogging >< xmlStorageCatalogSettings catalogPath =“C: \ LEADTOOLS21 \ Bin \ Dotnet4 \ Win32 \ MyCatalog.xml”/ ><运行时>< generatePublisherEvidence启用=“假”/ >< assemblyBinding xmlns =“urn: schemas-microsoft-com: asm.v1”>< dependentAssembly >< assemblyIdentity name =“System.Data.SqlServerCe”都必须“89845 dcd8080cc91”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-3.5.1.0”新版本=“3.5.1.0”/ >< / dependentAssembly >< dependentAssembly >< assemblyIdentity name =“Microsoft.Practices.ObjectBuilder2”都必须“31 bf3856ad364e35”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-2.2.0.0”新版本=“2.2.0.0”/ >< / dependentAssembly >< dependentAssembly >< assemblyIdentity name =“Microsoft.Practices.Unity”都必须“31 bf3856ad364e35”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-1.2.0.0”新版本=“1.2.0.0”/ >< / dependentAssembly >< / assemblyBinding >运行时> < /< appSettings ><添加关键=“LicenseFile”值=”“/ ><添加关键=“DeveloperKey”值=”“/ ><添加关键=“DataSetSchema”值=“C: \ LEADTOOLS21 \ Bin \ Dotnet4 \ Win32 \ MyDataSet.xsd”/ >< / appSettings >< /配置>
修改CSStorageServerManagerDemo.exe.config(添加突出显示在黄色)
< ?xml version =“1.0”? ><配置>< configSections ><节名=“xmlStorageCatalogSettings”类型=“Leadtools.Medical.Storage.DataAccessLayer。XmlStorageCatalogSettings Leadtools.Medical.Storage.DataAccessLayer”/ >< / configSections >< xmlStorageCatalogSettings catalogPath =“C: \ LEADTOOLS21 \ Bin \ Dotnet4 \ Win32 \ MyCatalog.xml”/ ><运行时>< assemblyBinding xmlns =“urn: schemas-microsoft-com: asm.v1”>< dependentAssembly >< assemblyIdentity name =“System.Data.SqlServerCe”都必须“89845 dcd8080cc91”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-3.5.1.0”新版本=“3.5.1.0”/ >< / dependentAssembly >< dependentAssembly >< assemblyIdentity name =“Microsoft.Practices.ObjectBuilder2”都必须“31 bf3856ad364e35”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-2.2.0.0”新版本=“2.2.0.0”/ >< / dependentAssembly >< dependentAssembly >< assemblyIdentity name =“Microsoft.Practices.Unity”都必须“31 bf3856ad364e35”文化=“中性”/ >< bindingRedirect oldVersion =“0.0.0.0-1.2.0.0”新版本=“1.2.0.0”/ >< / dependentAssembly >< / assemblyBinding >运行时> < /< appSettings ><添加关键=“DataSetSchema”值=“C: \ LEADTOOLS21 \ Bin \ Dotnet4 \ Win32 \ MyDataSet.xsd”/ >< / appSettings >< /配置>
打开查询设置,并设置IOD XML路径是你MyQueryIOD.xml文件。
脚本创建表
使用[MyDicomDb]去/ * * * * * *对象:表[dbo]。(向前)脚本日期:09/04/2013 15:55:39 * * * * * * /设置ANSI_NULLS去设置QUOTED_IDENTIFIER去创建表(dbo)。(向前)([SOPInstanceUID] nvarchar(64)非空,[ForwardDate] [datetime)空,(相)[datetime)空,主键约束(PK_Forward)集群([SOPInstanceUID] ASC)与(PAD_INDEX =, STATISTICS_NORECOMPUTE =, IGNORE_DUP_KEY =, ALLOW_ROW_LOCKS =, ALLOW_PAGE_LOCKS =)在(初级))(初级)去ALTER TABLE (dbo)。(向前)与检查添加约束(FK_Forward_Instance)外键([SOPInstanceUID])引用(dbo)。[MyInstanceTable] ([SOPInstanceUID])在级联更新在级联删除去ALTER TABLE (dbo)。(向前)检查约束(FK_Forward_Instance)去
修改Leadtools.Medical.Forward.DataAccessLayer组装
添加以下的ForwardDBDataAccessAgent构造函数:
公共ForwardDBDataAccessAgent (字符串connectionString){#如果TUTORIAL_CUSTOM_DATABASE_instanceTableName =@“MyInstanceTable”;_columnNameSOPInstanceUID =@“SOPInstanceUID”;_columnNameReferencedFile =@“ImageFilename”;# endifConnectionString = ConnectionString;}
打开属性页面
添加TUTORIAL_CUSTOM_DATABASE从条件编译的符号
构建项目生成新的Leadtools.Medical.Forward.DataAccessLayer.dll组装。
修改GlobalPacs.config
< forwardConfiguration175 >,注释掉现有的条目,并添加一个新条目MyDicomDb作为连接名称。这些变化突出显示下面用黄色。< forwardConfiguration175 >< !——<添加productName =“StorageServer”名=“L21_PACS_SCP32”connectionName =“LeadStorageServer21_32”/ > - - ><添加productName =“StorageServer”名=“L21_PACS_SCP32”connectionName =“MyDicomDb”/ >< / forwardConfiguration175 >
将更改保存到globalPacs.config,并关闭该文件