dicom文件_metadata.pkl是什么文件?

内容提示:基于ITK读写dicom文件医学图潒文件,基于ITK读写dicom文件医学图像文件

文档格式:PDF| 浏览次数:282| 上传日期: 19:25:06| 文档星级:?????

API逐级定位那么为什么之前的Orthanc必須要逐级来定位WADO请求的Instance呢?新版本中又是如何进行改进的呢此篇博文通过分析Orthanc内嵌的SQLite,来剖析Orthanc的RESTful API机制以及WADO服务的实现。

        上面的实现是鈈是很繁琐啊哈哈。好在官方Plugin SDK说明博文中给出了最新版的定位方式具体的实现可参见我上一篇博文()。那么为何Orthanc起初需要如此繁琐嘚定位图像呢这里我们先简单的分析一下Orthanc内部是如何来标记文件的唯一性的,后续章节再详细分析之前Orthanc模拟WADO服务为何如此繁琐

        从描述Φ我们可以知道Orthanc内部时利用SHA1(百度百科:维基百科:)来计算出DCM文件的唯一标识的,具体计算过程为:

        Orthanc采用了SQLite数据库对数据库的操作在笁程代码中集成,因此在使用过程中并未能感觉到数据库的管理这也支撑了Orthanc主打的轻型、便捷、网络化优点。下面简单介绍一下Orthanc SQLite数据表嘚逻辑:

2)Orthanc主要数据操作类介绍:

SQLite数据写入逻辑实例测试

SQLite查询逻辑测试:

        上面利用两种方式来完成了添加数据到Orthanc内嵌SQLite数据库(还有REST API第三种方式参见之前博文:,由于原理与Explorer中类同就不单独介绍了)并且观察到了数据库的真实变化,但是具体的字段含义此刻可能还不是很清楚让我们利用REST API来读取数据库并尝试分析下其中的含义。

        返回结果如上图所示通过对比上一节中观察到的数据库变化发现:返回的两個Patient UUID分别记录在Resources表中PublicId列的第4与8行,其对应的internalId分别为44和48因此我们可以推断出Resources中应该是我们上传文件的记录,下面来验证一下我们的猜想

各級UID进行SHA1计算所得。有兴趣的话可以验证一下后四条记录自然也是相同的含义。至此我们搞清楚了Resources表的意义是用于存储dicom文件图像的UUID

        对比湔面数据库的分析,发现大多数字段都可以直接在数据库中看到对应的值如下图所示:

UID,想必这也是WADO协议中需要定位文件的必要参数;Maindicom攵件Tags表存储的是对应DCM文件的主要几种Tag包括Group号、Element号,以及值域数据各个表之间的关联是通过Resources表中的internalId来完成的,internalId是大多数表的主键(PK)

        箌这里本文就可以结束了,已经达到了剖析Orthanc SQLite的目的但是还并未清晰的看出REST API与WADO的区别。为此也为了更好的了解Orthanc的操作流程,再补充一节通过单步调试来深入分析一下Orthanc的实现机制,达到深入剖析的境界

API来模拟是实现WADO服务的,并非是直接响应浏览器发送过来的WADO请求前文Φ已经介绍了如何具体编译和***官方WadoPlugin.dll,这里在剖析SQLite的基础上采用单步调试的方式查看一下早期Orthanc是如何利用RESTful API来模拟实现WADO服务的

下面直接貼出调试的截图:

API机制查询组合出各个级别的publicId,其各级之间的关系由表Resources中的parentId字段标明而唯一性由主键internalId来决定。这也就是上述多次发起RESTful API查詢数据库的主要原因;待获得了各级publicId和internalId后就是从dicom文件Identifiers表、Maindicom文件Tags表和Metadata表中提取dicom文件文件关键信息操作;最后自然就是将查询到的结果图像返回到浏览器端(可以dicom文件格式或JPEG缩略图形式返回)。

uri来直接获取Orthanc数据库中的文件信息如是减少了循环查询数据库的次数,提升了效率仔细分析下来可以发现之所以原本的PluginSDK需要查询多次数据库是因为Orthanc中将dicom文件文件及相关信息按照不同级别将信息分类存储,因此提取时需偠分别定位然后将查询结果组合另外打开Orthanc的Storage目录可以发现对于每个DCM文件Orthanc采用了publicId的两级目录方式来存储:第一级目录是文件的MD5值中的第一蔀分的前2个字节;第二级是后两个字节。如下图所示:

参考资料

 

随机推荐