彩票走势图

LEADTOOLS医疗存储服务器自定义数据库系列教程(四)— 存储目录

转帖|使用教程|编辑:杨鹏连|2021-01-29 14:08:50.073|阅读 127 次

概述:本文主要介绍LEAD医学存储服务器如何教程数据库创建一个存储目录。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

LEADTOOLS Recognition Imaging SDK是精选的LEADTOOLS SDK功能集,旨在在企业级文档自动化解决方案中构建端到端文档成像应用程序,这些解决方案需要OCR,MICR,OMR,条形码,表单识别和处理,PDF,打印捕获 ,档案,注释和图像查看功能。 这套功能强大的工具利用LEAD屡获殊荣的图像处理技术,智能识别可用于识别和提取任何类型的扫描或传真形式图像数据的文档功能。

点击下载LEADTOOLS Recognition Imaging SDK试用版

概述

目录存储在Leadtools.Medical.Storage.DataAccessLayer.dll程序集中定义。该目录定义了Leadtools.Medical.Storage.DataAccessLayer类和数据库模式之间的映射,并包含数据库模式中所有表名称的定义以及每个表的所有列。所有存储目录被定义为一个xml文件。下面的教程将为教程数据库创建一个存储目录。

在此之前,请先确认,您已经为数据库中的每个表定义从CatalogEntity类派生的类。例如,在本教程中,我们定义了四个类(每个表一个)。存储目录链接到以下四个类:

  • 类MyPatient:CatalogEntity
  • 类MyStudy:CatalogEntity
  • 类MySeries:CatalogEntity
  • 类MyInstance:CatalogEntity
目录的结构由一个或多个元素组成,后跟一个或多个元素。每个元素对应一个数据库表。每个元素对应一个列。
<CatalogDataSet> 
      <Entity>...</Entity> 
      <Entity>...</Entity> 
      ... 

      <Element>...</Element> 
      <Element>...</Element> 
      ... 
</CatalogDataSet>
您必须为数据库定义存储目录。对于教程中的数据库结构,有四个表。下面这些是每个表的元素:
<Entity> 
    <EntityKey>PatientTableEntityKey</EntityKey> 
    <EntityName>MyPatientTable</EntityName> 
    <DisplayName>MyPatientTable</DisplayName> 
  </Entity> 

  <Entity> 
    <EntityKey>StudyTableEntityKey</EntityKey> 
    <EntityName>MyStudyTable</EntityName> 
    <DisplayName>MyStudyTable</DisplayName> 
  </Entity> 

  <Entity> 
    <EntityKey>SeriesTableEntityKey</EntityKey> 
    <EntityName>MySeriesTable</EntityName> 
    <DisplayName>MySeriesTable</DisplayName> 
  </Entity> 

  <Entity> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <EntityName>MyInstanceTable</EntityName> 
    <DisplayName>MyInstanceTable</DisplayName> 
  </Entity>
每个元素的描述如下:
  • <EntityKey> 定义MyPatient类时,CatalogKey属性必须返回此处定义的名称。
  • <EntityName> 对于教程数据库,患者表称为MyPatient。
  • <DisplayName> 不使用
数据库结构中的每个表列必须有一个\元素可以查询。例如,在存储服务器管理器的数据库管理器中,您可以查询以下分段,因此所有存储目录中都必须具有相应的\元素。


对于本教程来说,四个表中每个表的主键都是自动生成的主键。这些是唯一没有相应的元素的列。

例如,MyPatientTable有七列,所以目录中将有六个元素(因为MyPatientTable.PatientId不是直接查询-因此没有定义元素)。

<Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientIdentification</ElementKey> 
      <ElementName>PatientIdentification</ElementName> 
      <DisplayName>Patient ID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientName</ElementKey> 
      <ElementName>PatientName</ElementName> 
      <DisplayName>Family Name</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientBirthday</ElementKey> 
      <ElementName>PatientBirthday</ElementName> 
      <DisplayName>Birth Date</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientSex</ElementKey> 
      <ElementName>PatientSex</ElementName> 
      <DisplayName>Sex</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientComments</ElementKey> 
      <ElementName>PatientComments</ElementName> 
      <DisplayName>Comments</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element>

每个元素的描述如下:

  • <EntityKey> 该元素所属的表名<EntityKey>,对于患者表,这是“ PatientTableEntityKey”
  • <ElementKey> MyPatient,MyStudy,MySeries,MyInstance类属性使用[EntityElementAttribute]属性进行装饰。 值必须与其中一个属性相同
  • <ElementName> 必须是相应表格的列名称
  • <DisplayName> 不使用
  • <KeyElement> 如果是主键则为true,否则为false
对于本教程,存储目录的名称是MyCatalog.xml。

存储目录的完整路径在两个配置文件中指定:

  1. CSStorageServerManagerDemo.exe.config
  2. Leadtools.Dicom.Server.exe.config
这是需要添加到每个配置文件的内容:
<configSections> 
    <section name="xmlStorageCatalogSettings" type="Leadtools.Medical.Storage.DataAccessLayer.XmlStorageCatalogSettings, Leadtools.Medical.Storage.DataAccessLayer" /> 
  </configSections> 
  <xmlStorageCatalogSettings catalogPath="C:\LEADTOOLS 20\Bin\Dotnet4\Win32\MyCatalog.xml"/>
最终,MyCatalog.xml的内容如下:
<CatalogDataSet> 
  <Entity> 
    <!--A name that uniquely identifies the patient table--> 
    <EntityKey>PatientTableEntityKey</EntityKey>  

    <!--Name of database table that holds the patient information-->    
    <EntityName>MyPatientTable</EntityName>   

    <!-- Not used-->        
    <DisplayName>MyPatientTable</DisplayName>       
  </Entity> 

  <Entity> 
    <EntityKey>StudyTableEntityKey</EntityKey> 
    <EntityName>MyStudyTable</EntityName> 
    <DisplayName>MyStudyTable</DisplayName> 
  </Entity> 

  <Entity> 
    <EntityKey>SeriesTableEntityKey</EntityKey> 
    <EntityName>MySeriesTable</EntityName> 
    <DisplayName>MySeriesTable</DisplayName> 
  </Entity> 

  <Entity> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <EntityName>MyInstanceTable</EntityName> 
    <DisplayName>MyInstanceTable</DisplayName> 
  </Entity> 

   <Element> 
<!-- Table name to which the element belongs --> 
      <EntityKey>PatientTableEntityKey</EntityKey>  

<!-- The MyPatient class properties are decorated with an [EntityElementAttribute] attribute. This must be identical to one of these properties. --> 
      <ElementKey>PatientIdentification</ElementKey>   

<!-- Must be a column name of the corresponding table --> 
      <ElementName>PatientIdentification</ElementName>   

<!-- Not used --> 
      <DisplayName>Patient ID</DisplayName>  

<!-- True if a primary key; false otherwise -->             
      <KeyElement>false</KeyElement>                     
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientName</ElementKey> 
      <ElementName>PatientName</ElementName> 
      <DisplayName>Family Name</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientBirthday</ElementKey> 
      <ElementName>PatientBirthday</ElementName> 
      <DisplayName>Birth Date</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientSex</ElementKey> 
      <ElementName>PatientSex</ElementName> 
      <DisplayName>Sex</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>PatientTableEntityKey</EntityKey> 
      <ElementKey>PatientComments</ElementKey> 
      <ElementName>PatientComments</ElementName> 
      <DisplayName>Comments</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesSeriesInstanceUID</ElementKey> 
      <ElementName>SeriesSeriesInstanceUID</ElementName> 
      <DisplayName>Series Instance UID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesModality</ElementKey> 
      <ElementName>SeriesModality</ElementName> 
      <DisplayName>Modality</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesSeriesNumber</ElementKey> 
      <ElementName>SeriesSeriesNumber</ElementName> 
      <DisplayName>Series Number</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesSeriesDate</ElementKey> 
      <ElementName>SeriesSeriesDate</ElementName> 
      <DisplayName>Series Date</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesSeriesDescription</ElementKey> 
      <ElementName>SeriesSeriesDescription</ElementName> 
      <DisplayName>Series Description</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>SeriesTableEntityKey</EntityKey> 
      <ElementKey>SeriesBodyPartExamined</ElementKey> 
      <ElementName>SeriesBodyPartExamined</ElementName> 
      <DisplayName>Body Part Examined</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>StudyTableEntityKey</EntityKey> 
      <ElementKey>StudyStudyInstanceUID</ElementKey> 
      <ElementName>StudyStudyInstanceUID</ElementName> 
      <DisplayName>Study Instance UID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>StudyTableEntityKey</EntityKey> 
      <ElementKey>StudyStudyDate</ElementKey> 
      <ElementName>StudyStudyDate</ElementName> 
      <DisplayName>Study Date</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>StudyTableEntityKey</EntityKey> 
      <ElementKey>StudyAccessionNumber</ElementKey> 
      <ElementName>StudyAccessionNumber</ElementName> 
      <DisplayName>Accession Number</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>StudyTableEntityKey</EntityKey> 
      <ElementKey>StudyStudyId</ElementKey> 
      <ElementName>StudyStudyId</ElementName> 
      <DisplayName>Study ID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
  <Element> 
    <EntityKey>StudyTableEntityKey</EntityKey> 
    <ElementKey>StudyReferringPhysiciansName</ElementKey> 
    <ElementName>StudyReferringPhysiciansName</ElementName> 
    <DisplayName>Referring Physician</DisplayName> 
    <KeyElement>false</KeyElement> 
  </Element> 
   <Element> 
      <EntityKey>StudyTableEntityKey</EntityKey> 
      <ElementKey>StudyStudyDescription</ElementKey> 
      <ElementName>StudyStudyDescription</ElementName> 
      <DisplayName>Study Description</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>InstanceTableEntityKey</EntityKey> 
      <ElementKey>SOPInstanceUID</ElementKey> 
      <ElementName>SOPInstanceUID</ElementName> 
      <DisplayName>SOP Instance UID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>InstanceTableEntityKey</EntityKey> 
      <ElementKey>ImageImageNumber</ElementKey> 
      <ElementName>ImageImageNumber</ElementName> 
      <DisplayName>Instance Number</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
  <Element> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <ElementKey>ImageLastStoreDate</ElementKey> 
    <ElementName>ImageLastStoreDate</ElementName> 
    <DisplayName>Receive Date</DisplayName> 
    <KeyElement>false</KeyElement> 
  </Element> 
   <Element> 
      <EntityKey>InstanceTableEntityKey</EntityKey> 
      <ElementKey>ImageFilename</ElementKey> 
      <ElementName>ImageFilename</ElementName> 
      <DisplayName>Referenced File</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
   <Element> 
      <EntityKey>InstanceTableEntityKey</EntityKey> 
      <ElementKey>ImageUniqueSOPClassUID</ElementKey> 
      <ElementName>ImageUniqueSOPClassUID</ElementName> 
      <DisplayName>SOP Class UID</DisplayName> 
      <KeyElement>false</KeyElement> 
   </Element> 
  <Element> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <ElementKey>ImageRows</ElementKey> 
    <ElementName>ImageRows</ElementName> 
    <DisplayName>Rows</DisplayName> 
    <KeyElement>false</KeyElement> 
  </Element> 
  <Element> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <ElementKey>ImageColumns</ElementKey> 
    <ElementName>ImageColumns</ElementName> 
    <DisplayName>Cols</DisplayName> 
    <KeyElement>false</KeyElement> 
  </Element> 
  <Element> 
    <EntityKey>InstanceTableEntityKey</EntityKey> 
    <ElementKey>ImageBitsAllocated</ElementKey> 
    <ElementName>ImageBitsAllocated</ElementName> 
    <DisplayName>Bits Allocated</DisplayName> 
    <KeyElement>false</KeyElement> 
  </Element>
了解更多
这是本系列的第四篇文章,此处介绍了LEAD医学存储服务器数据库的存储目录结构,我们将在《LEAD医疗存储服务器自定义数据库系列教程–数据库查询》系列的第五篇文章中,着重介绍LEAD医用存储服务器数据库的数据查询方式。

试用版下载>>>

LEADTOOLS 使用教程>>>


想要购买LEADTOOLS正版授权,或了解更多产品信息请点击



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
LEADTOOLS Imaging Pro Developer Toolkit

20多年的老牌图像处理控件,支持TWAIN扫描、200多种图像效果、150多种图像格式…

LEADTOOLS Document Suite Developer Toolkit

LEADTOOLS Document Imaging Suite SDK是LEADTOOLS SDK中各种特点的精选组合,这套强大的工具利用了LEAD行业领先的图像处理技术来智能地识别文档的特征,而根据文档的特征可以识别扫描的或传真的任何类型的表格图像。

LEADTOOLS Document Imaging Developer Toolkit

多语言的文档图像处理控件,支持光符识别处理、条形码扫描识别等。

LEADTOOLS Medical Developer Toolkit

LEADTOOLS Medical Imaging是一款医疗成像控件,包含了一些精心挑选的、经过优化的特性,可以满足医疗成像应用程序开发的特殊需要。

LEADTOOLS Medical Imaging Suite Developer Toolkit

LEADTOOLS Medical Imaging Suite帮您开发功能强大的PACS和医学成像应用程序

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP