开放和编译项目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”;
# endif
ConnectionString = 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,并关闭该文件