DICOM艺术学图像处理

调试Orthanc官方Cookbook示例:

Orthanc SQLite总结:

澳门威尼斯人网址 1

        前壹篇博文中对Orthanc官方给出的Plugin
SDK开发文书档案实行了简要的翻译,文书档案中提议在0.捌.0版本在此以前,Orthanc是使用内建的RESTful
API来模拟是贯彻WADO服务的,并非是直接响应浏览器发送过来的WADO请求。前文中已经介绍了什么切实编写翻译和安装官方WadoPlugin.dll,那里在条分缕析SQLite的底子上运用单步调试的办法查看一下早期Orthanc是何等运用RESTful
API来模拟完成WADO服务的。

1)DICOM Server

        进入cmd模式,输入:

storescu.exe –d –aec ORTHANC localhost 4242
c:\test.dcm,能够看来图像上传成功的结果:

澳门威尼斯人网址 2

Modification:

1)上传DCM文件到Orthanc Server,同Anonymization中相同;

2)利用curl http://localhost:8042/instances收获内定instance的ID号;

三)参照官方Cookbook举行Modification处理

澳门威尼斯人网址 3

        输入如下指令,这一次为了便利,直接动用curl的verbose格局:

        curl –v
http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/modify
 –X
POST –d ‘{“Replace”:{“PatientName”:”hello”,”PatientID”:”world”}}’
>c:\orthanc-modify.dcm

        输出结果如下:

澳门威尼斯人网址 4

       
最近甘休,参照Orthanc官方的Cookbook表达,给出的五个示范都在本机无法顺遂完毕。由此测度官网中提交的代码有望是Linux系统的,在Windows系统下应当做出确切的调整,不过该怎么着调整呢?该调整哪部分吧?请继续往下看……

SQLite查询逻辑测试:

       
下面使用三种艺术来形成了增加数据到Orthanc内嵌SQLite数据库(还有REST
API第二种形式,参见在此之前博文:,由于原理与Explorer中类同就不独立介绍了),并且观看到了数据库的真正变化,不过实际的字段含义此刻也许还不是很明白,让大家应用REST
API来读取数据库并尝试分析下里面包车型地铁意义。

Orthanc二进制包在Windows下安装:

       
下载地址:http://www.orthanc-server.com/download-windows.php。在官网下载页面中输入基本消息就会在邮箱中获取下载链接,Windows下的2进制安装包名叫:Orthanc-0.8.5-Installer.exe。双击安装包,如下图所示,单击“下一步”就能够顺遂达成安装。

 

澳门威尼斯人网址 5

 

澳门威尼斯人网址 6

 

澳门威尼斯人网址 7

 

       
该公文夹用于安装Orthanc软件的安装目录,即重点程序OrthancService.exe和Orthanc-0.八.五-Release.exe的存放地方。

 

澳门威尼斯人网址 8

 

        此处用于安装Orthanc软件中DICOM
Server的多寡存储目录,能够省略的通晓为mini-PACS的存档目录,后续示例中的图像就保留在该文件夹下。

 

澳门威尼斯人网址 9

 

        此处用于安装Orthanc软件在初始菜单中快捷键的文本夹。

 

澳门威尼斯人网址 10

 

        单击Install,稍等片刻即可成功Orthanc在Windows下的安装。

知识点补充:

       
Orthanc作为开源项目,获取其源码自然是一面如旧。即便名字为轻型Server系统,可是代码量仍是能够吓退大部分人的。初次面对海量的代码无从入手举办调节,下边以上述调节和测试Orthanc官方Cookbook中的Anonymization和Modification示例进度为例,讲解一下哪些开端调节和测试Orthanc。

2)storescu.exe测试:

       
上述利用Orthanc内嵌的Explorer成功上传并写入数据库。本次利用storescu.exe,把Orthanc当做Dicom
Server查看数据写入情形,写入指令如下:

storescu.exe -d localhost 4242 -aet ZSSURE -aec ORTHANC c:\test2.dcm

        实现后数据库变化如下:

澳门威尼斯人网址 11

RESTful API:

        RESTful
API是当下可比早熟的壹套互连网应用程序的API设计理论。REST,全称Representational
State Transfer,最早是由罗伊 ThomasFielding在他两千年的硕士诗歌中提议的。诗歌中的部分摘要如下:

This dissertation explores a junction on the frontiers of two research
disciplines in computer science: software and networking. Software
research has long been concerned with the categorization of software
designs and the development of design methodologies, but has rarely been
able to objectively evaluate the impact of various design choices on
system behavior. Networking research, in contrast, is focused on the
details of generic communication behavior between systems and improving
the performance of particular communication techniques, often ignoring
the fact that changing the interaction style of an application can have
more impact on performance than the communication protocols used for
that interaction. My work is motivated by the desire to understand and
evaluate the architectural design of network-based application software
through principled use of architectural constraints, thereby obtaining
the functional, performance, and social properties desired of an
architecture
.

       
若是1个架构符合REST原则,就称它为RESTful架构。要精通RESTful结构,需求充足精晓Representational
State
Transfer 
其1短语的含义,各个词代表如何看头。该词组中简单了主语,表现层(representational)其实指的是财富(resources)的变现层。所谓能源就是互连网上的一个实体,大概说网络上的多个现实新闻。REST从财富的角度来考查整个互联网,分布在各州的能源由UTucsonI明确,而客户端的运用通过U本田CR-VI来收获财富的象征方法。所谓上网,正是互连网上一多重“能源”的互相,壹多级U冠道I的调用。

       
财富是1种音讯实体,能够有多样表现情势,叫做“表现层(representation)”,例如文本能够用txt表示,也足以用html、xml、JSON表示,甚至能够运用2进制格式;图片能够用JPEG、PNG等格式。UTiggoI只代表财富实体,不意味着它的表现格局。某些网站最后的.html后缀名是不须求的,因为.html后缀是壹种象征格式,属于“表现层”范畴,UGL450I只表示财富的岗位。

       
访问一个网址,就表示客户端与服务器的八个相互进程。那些进程中势必会涉及到数码和气象的更动。网络通讯协议HTTP协议,是一个无状态协议。那象征,全体的动静都保存在劳动器端。由此,借使客户端想要操作服务器,必须透过某种手段,让服务器端产生”状态转化”(State
Transfer)。而那种转化是起家在展现层以上的,所以正是”表现层状态转化”。客户端用到的手腕,只好是HTTP协议。具体来说,便是HTTP协议里面,两个象征操作方法的动词:GET、POST、PUT、DELETE。它们各自对应八种基本操作:GET用来收获财富,POST用来新建财富(也足以用来立异能源),PUT用来更新财富,DELETE用来删除财富。获得那些表会致使那些应用程序转变了其情景。随着不断赢得能源的代表方法,客户端应用不停地在转移着其意况,所谓表述性状态转移(Representational
State
Transfer)。——那壹理念不是凭空臆造的,而是通过旁观当前Web网络的周转形式而空虚出来的。RoyFielding
认为,“安顿非凡的网络接纳表现为一雨后冬笋的网页,那个网页能够作为的虚构的状态机,用户选取那一个链接造成下一网页传输到用户端表现给使用的人,而那正代表了事态的浮动”。

        综合上边包车型大巴诠释,大家计算一下哪些是RESTful架构:

  • 每贰个UWranglerI代表一种能源;
  • 客户端和服务器之间,传递那种财富的某种表现层;
  • 客户端通过多个HTTP动词,对劳务器端财富拓展操作,达成”表现层状态转化”;

一)Anonymization源码调试:

        重新依照上一节中的步骤,首先采纳Orthanc
Explorer向调节和测试方式下的Orthanc
Server添加DICOM文件,此时一向按F五跳过调节和测试,因为图像加载进度中大家尚无境遇难点。(此步操作必须重新添加,因为调节和测试方式下多少的积存目录是C:\Orthanc-0.8.5\OrthancStorage,与2进制安装包暗中同意的C:\OrthancStorage不一致,上一节中大家抬高的图像在调节意况下是看不到的

澳门威尼斯人网址 12

        输入指令查看ID:

        curl http://localhost:8042/instances

 

澳门威尼斯人网址 13

 

        初叶输入上一节的Anonymization指令:

        curl
-v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/anonymize -X
POST -d ‘{}’ > c:\orthanc-anonymize.dcm

       
Orthanc工程第三次停在了断点RestApi.cpp中的Visit函数内,如下图所示:

 

澳门威尼斯人网址 14

       
利用F1一单步调节和测试,随后进入到解析Anonymization请求操作的函数ParseAnonymizationRequest里头,能够看到在该函数内交付了七个演示与咱们输入的格式相同

澳门威尼斯人网址 15

       
继续单步调节和测试,最终发今后解析Json格式的AnonymizationRequest指令,即大家输入的'{}’,json_reader.cpp中的readToken再次回到值为tokenError

 

澳门威尼斯人网址 16

 

       
至此想必大家找到了Anonymization指令出错的原因的:输入的Json格式不得法,就算我们是比照Orthanc官方的库克book来举行的。为了鲜明Json格式是不是有误,在在线Json格式检查网址(http://www.bejson.com/)测试一下,结果为:

澳门威尼斯人网址 17

        依据提示,去掉指令中Json部分的单引号,输入:

        curl
-v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/anonymize -X
POST -d {} > c:\orthanc-anonymize.dcm

        curl调节和测试输出的结果为:

澳门威尼斯人网址 18

       
 利用DICOM看图软件,打开药方可发现orthanc-anonymize.dcm文件中的病人姓名早已被隐形掉了。

澳门威尼斯人网址 19

【总括】:正确的下令应该是外地不添加单引号,如下所示:

curl
-v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/anonymize -X
POST -d {} > c:\orthanc-anonymize.dcm

 

2)Orthanc UUID与DICOM UID

        上边的兑现是否很麻烦啊,哈哈。还好官方Plugin
SDK表明博文中提交了流行版的原则性方式,具体的落到实处可参见笔者上1篇博文(http://blog.csdn.net/zssureqh/article/details/41836885)。那么为啥Orthanc初始需求那样繁琐的永恒图像呢?那里我们先不难的剖析一下Orthanc内部是怎么样来标记文件的唯一性的,后续章节再详细分析从前Orthanc模拟WADO服务为何如此繁琐。

       
在Orthanc源码中有那般3个类DicomInstanceHasher(定义在DicomInstanceHasher.h,实以往DicomInstanceHasher.cpp),其注释中那样叙述:

 

[cpp] view
plain
 copy

 

 print?

  1. /**  
  2. * This class implements the hashing mechanism that is used to  
  3. * convert DICOM unique identifiers to Orthanc identifiers. Any  
  4. * Orthanc identifier for a DICOM resource corresponds to the SHA-1  
  5. * hash of the DICOM identifiers. 
  6. * \note SHA-1 hash is used because it is less sensitive to  
  7. * collision attacks than MD5. <a  
  8. * href=”http://en.wikipedia.org/wiki/SHA-256\#Comparison\_of\_SHA\_functions"&gt;\[Reference\]&lt;/a&gt;  
  9. **/  

 

       
从描述中大家能够精通Orthanc内部时选取SHA壹(百度全面:维基百科:)算法来测算出DCM文件的唯一标识的,具体育项目检查测试算进程为:

PatientID对应的UUID:即向SHA一计算函数中央直机关接输入【PatientID】,得到SHA一值

StudyUID对应的UUID:向SHA壹乘除函数中输入【PatientID+”|”+StudyUID】,获得SHA一值

SeriesUID对应的UUID:向SHA一盘算函数中输入【PatientID+”|”+StudyUID+”|”+SeriesUID】,获得SHA壹值

InstanceUID对应的UUID:向SHA一划算函数中输入【PatientID+”|”+StudyUID+”|”+SeriesUID+”|”+InstanceUID】,得到SHA1值

        那便是OrthancUUID与DICOM
UID之间的更换关系,下1节讲解数据库时再交付真实的言传身教。

3)RESTful API

        进入cmd情势,输入如下指令:

cd c:\

curl –X POST http://localhost:8042/instances –data-binary @test3.dcm

        在Orthanc Explorer中得以万事大吉看到结果,如下图:

澳门威尼斯人网址 20

     
  【注】:与2进制安装环境下差别的是,curl运维时会偶尔重返错误提醒,出现那种情况后重启Orthanc.exe就足以缓解。

澳门威尼斯人网址 21

Anonymization:

       
Orthanc从0.5.0本子之后引进了对DICOM能源的匿名化操作,可对患儿(patients)、检查(studies)、连串(series)和图像(instances)多个级别实行匿名化处理。为了便于示范,此处以instances级别为例实行介绍:

1)依据上篇博文上传两幅测试图像到Orthanc
Server,如下图所示:

澳门威尼斯人网址 22

二)利用curl命令行查看一下上述五个instances,获取ID号,结果如下:

curl http://localhost:8042/instances

 

澳门威尼斯人网址 23

 

       此处获取的instance
ID号为:c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c

3)遵照Orthanc官方Cookbook的评释,进行匿名化操作

       
输入指令:curl http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/anonymize -X
POST -d ‘{}’ > c:\orthanc-anonymize.dcm

       
不过尚未取得如期结果,打开c盘发现orthanc-anonymization.dcm文件大小为0KB。开启curl的verbose格局,

        curl
–v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/anonymize -X
POST -d ‘{}’ > c:\orthanc-anonymize.dcm

        查看输出信息如下:

澳门威尼斯人网址 24

        发现Orthanc Server中HTTP 服务再次回到值为40肆

       
通过协调查看官方Cookbook给出的吩咐,除了对应instance的UID不相同外,并未有找到标题,权且跳过,尝试一下Modification。

澳门威尼斯人网址 25

1)Orthanc Plugin SDK模拟达成WADO Server

       
上壹篇博文中提到的LocateStudy、LocateSeries、LocateInstanc函数都不是直接询问WADO请求传入的各级UID(StudyUID、SeriesUID、InstanceUID),而是经过内部构建出等同的RESTful
API来贯彻。举个例子,测试DCM文件名字为test一.dcm,其相应的三级UID分别是:

StudyUID=1.3.6.1.4.1.30071.6.176694098609799.4240639413125000,

SeriesUID=1.3.6.1.4.1.30071.6.176694098609799.4240639413125000.1,

InstanceUID(即SOP Instance
UID)=二.16.840.1144二一.816二叁.943006725八.949313925八,常常的WADO协议规定的伸手连接为:

http://localhost:8042/wado?requestType=WADO&studyUID=1.3.6.1.4.1.30071.6.176694098609799.4240639413125000&

seriesUID=1.3.6.1.4.1.30071.6.176694098609799.4240639413125000.1&

objectUID=2.16.840.114421.81623.9430067258.9493139258

       
依据常规形式来落成的话,应该是一向运用SQL语句在钦赐的数据库中央直机关接搜索WADO
Request中的三级UID,而在Orthanc Plugin
SDK兑现的WADO插件中,却是分级实行,详细流程如下:

Study级别:第一,LocateStudy函数中创设http://localhost:8042/studies请求,利用内置的REST
API服务获得当前数码中颇具的studies的UUID(前面会讲到该UUID与DICOM
UID之间的转换关系);第3,LocateStudy中的每二个studyUUID,构造http://localhost:8042/studies/XXXX-XXXX-XXXX-XXXX,通过对照重临JSON数据中study[“MainDicomTags”][“StudyInstanceUID”]标签值与WADO中的studyUID,完毕稳定Study的效力;

Series级别:与Study相同,先构造http://localhost:8042/series获取全部seriesUUID,然后针对每一种seriesUUID构造http://localhost:8042/series/XXXX-XXXX-XXXX-XXXX,相比较再次回到值中的series[“MainDicomTags”][“SeriesInstanceUID”]与seriesUID,实现稳定Series的机能;

Instance级别:先构造http://localhost:8042/instances收获全体instanceUUID,然后对种种instanceUUID构造http://localhost:8042/instances/XXXX-XXXX-XXXX-XXXX对照重回值中的instance[“MainDicomTags”][“SOPInstanceUID”]与WADO请求中的objectUID,完毕最后一定图像的目的。

2)Web Server

       
打开谷歌(Google)浏览器,地址栏输入http://localhost:8042/app/explorer.html,能够看出刚才上传的test.dcm文件,如下图:

澳门威尼斯人网址 26

        单击Upload DICOM,拖拽test2.dcm文书到浏览器页面,然后单击Start
the Upload,重返到主页面能够旁观胜利上传的结果,如下图:

澳门威尼斯人网址 27

       
打开目录C:\Orthanc-0.8.5\Debug\OrthancStorage,能够看看胜利归档的七个公文

澳门威尼斯人网址 28

Orthanc之Modification & Anonymization

1)Patients:

curl http://localhost:8042/patients

澳门威尼斯人网址 29

       
重返结果如上航海用体育地方所示,通过对照上1节中观望到的数据库变化发现:重返的七个Patient
UUID分别记录在Resources表中PublicId列的第四与8行,其对应的internalId分别为4肆和4八。由此我们能够臆度出Resources中应该是我们上传文件的笔录,上边来证实一下大家的猜疑。

        依照上一节分析教导此处的publicId应该是DICOM
UID对应的UUID,即SHA一总括值。打开在线计算SHA1网站:http://www.seacha.com/tools/sha1.html。遵照上一节分析输入test一.dcm的各级UID,总括结果如下所示:

澳门威尼斯人网址 30

       
从图中大家可以见到在Resources表中的前肆条记下根据级别深度分别存款和储蓄的是InstanceUUID、SeriesUUID、StudyUUID、PatientUUID,那个UUID是由DICOM
各级UID举行SHA壹计算机技术研讨所得。有趣味的话能够证实一下后肆条记下,自然也是同样的意思。至此大家搞明白了Resources表的含义,是用以存款和储蓄DICOM图像的UUID

Orthanc测试:

 

        Orthanc被描述为一款开源的、轻量级的,满意RESTfu API
的DICOM服务器。它杰出之处在于存在种种与Orthanc的交互格局,首要有二种:DICOM
Server,Web Server和RESTful
API。上边就使用那两种访问格局对上述两种安装环境开始展览实例测试:

0)Orthanc REST API资料查询:

       
在调节在此以前,大家先要搞驾驭现身难点的光景原因,排除部分广泛的失实,比如软件版本错误、指令拼写错误等等。上边介绍的Anonymization和Modification都是接纳了Orthanc的REST
API功效,那么Orthanc各版本对于REST
API的支撑程度怎么着呢?大家查阅一下官方的辨证,如下图所示:

澳门威尼斯人网址 31

       
从上海体育场所能够见见,Orthanc从0.伍.0版本之后就协理多级其他改动和匿名化操作,如上1篇博文所述,作者本机安装的是新型的0.8.五本子。由此得以确定保证软件版本无误,此外在上述示范仿真进度中大家也相比较排查了命令拼写错误。

       
接下去使出大家的徘徊花锏吧:“启动C:\Orthanc-0.8.5\Orthanc.sln工程,进入调节和测试情势,查看Orthanc的源码”。开拓Orthanc.sln消除方案,右键Orthanc工程开启调节和测试情势,在有关REST
API的几当中央类中插入断点,初次尝试插入的断点如下:

 

澳门威尼斯人网址 32

 

Orthanc SQLite介绍:

转载:http://blog.csdn.net/zssureqh/article/details/41424027

继承专栏博文预报:

fo-dicom搭建不难的DICOM Server

 

 

 

> > > 作者:zssure@163.com

> > > 时间:2014-11-29

二)Orthanc首要数据操作类介绍:

        Orthanc源码中有DatabaseWrapper类,当中有如投注释:

 

[cpp] view
plain
 copy

 

 print?澳门威尼斯人网址 33澳门威尼斯人网址 34

  1. /**  
  2. * This class manages an instance of the Orthanc SQLite database. It  
  3. * translates low-level requests into SQL statements. Mutual  
  4. * exclusion MUST be implemented at a higher level.  
  5. **/  

 

 

       
表达该类是Orthanc操作SQLite数据库的封装类,具体的涉嫌到SQLite数据库底层的操作都由DatabaseWrapper来形成。与上节寓指标index中的表比较,将DatabaseWrapper类重要函数分类:

数据表 DatabaseWrapper操作函数
AttachedFiles AddAttachment 
DeleteAttachment 
LookupAttachment 
ListAvailableAttachments
Resources CreateResource 
DeleteResource 
GetResourceType 
GetResourceCount 
LookupResource
Metadata DeleteMetadata 
GetAllMetadata 
GetMetadata 
GetMetadataAsInteger 
LookupMetadata 
SetMetadata

       
别的还会看出许多获取各表字段的函数,例如GetPublicId、GetChildrenPublicId等等。

2进制包的测试:

背景:

       
上篇博文为引子,介绍了一款神奇的开源PACS系统——Orthanc。本篇初阶解读官方Cookbook中的相关内容,对于简易的浏览、访问和上传请阅读前篇博文。在正规的PACS系统中还未现身对于DCM图像的修改和匿名化操作,由此本次第1介绍Orthanc利用REST
API达成对DCM教育学图像的改动(modification)和匿名化(anonymization)。对于官方Cookbook中的实例进行出现说法和调试,通过Orthanc源码分析确定保障示范在本机卓绝运行。注意:官方Cookbook中的示例在Windows下会有荒唐,详情见博文。

Orthanc UUID与DICOM UID:

3)利用RESTful API:

        下边介绍Orthanc最令人振奋的走访格局——RESTful
API。它提供了1种采用正规互连网协议与图像服务器进行交互的法子,使得能够在其余地方(只要有网络覆盖)通过网络连接待上访问Orthanc服务器,并且无需思量服务运作的平台或开发语言。RESTful
APIs使用UHavalIs来促成能源的从来与走访,此处的能源包蕴patients、studies和images三级,与DICOM协议中定义相同,守旧的PACS也多以此看作数据库的安排规范。对于此类请求,Orthanc会将文件信息以JSON格式重返(JSON是一种轻量级的广泛应用的文件格式);对于图像消息会重返PNG网络图像格式。该有的也许咱们都很熟识,下边大家就平昔演示一下:

        此处借助于curl.exe工具,在cmd方式下输入:

cd c:\

curl –X POST http://localhost:8042/instances –data-binary @test3.dcm

        得到如下结果评释test3.dcm图像上传成功,

澳门威尼斯人网址 35

        打开Orthanc Explorer能够看来刚才上传的test三.dcm文件:

澳门威尼斯人网址 36

一)如何调节和测试Orthanc中的Http Server

       
之所以上壹节最初叶将断点设置在了RestXXX.cpp文件中,是因为本博文中的牵线的Modification和Anonymization使用的是Orthanc提供的REST
API服务,因而首先猜测错误应该出现在REST
API的有关落到实处函数中。这种措施能够顺遂的缓解大家地方境遇的题材,并且如您所见大家曾经完毕了难点的排查。

        不过既然调节和测试进入了Orthanc的源码内,就顺路儿搞清楚Orthanc中Http
Server的一体化流程,也顺带找找究竟是在哪三个地点将curl指令中的双引号忽略的。
再3次输入指令,进入调剂情形。断点第3次停在RestApi.cpp中的Visit函数处,在前壹节中大家运用“单步调节和测试”胜利的逐年进入到了JSON的解析函数readToken内,“单步调节和测试”是上前追溯的特等手段,也是VS提供给大家的最直观最有利的失实排查工具。然则为了要精通全部工艺流程,大家那边必要“回溯”,那么VS提供给我们逆流而上的工具是什么吗?那正是“查找全数引用”,如下图所示:

 

澳门威尼斯人网址 37

 

        大家能够由RestApi.cpp
转到上一流,即RestApiHierarchy.cpp中的LookupResource函数,如此迭代下去相信能够回溯到整个流程的最下边。那种措施尽管稚拙了一部分,可是正如实用。想必在Windows编程环境下我们照旧更爱好“可视化”的直观操作,即所见即所得。那么单击菜单栏中的“调节和测试”,选拔“窗口”中的“调用堆栈”,能够直观的看出在RestApi.cpp中的Visit函数从前的种种函数调用顺序,如下图所示:

 

澳门威尼斯人网址 38

 

        至此大家能够看看整个Http
Server服务的伊始端是mongoose.cpp中的worker_thread函数(在“调用堆栈”中相关函数右键选拔“转到源码”能够查看函数的具体地方)。由上海教室中“调用堆栈”的逐条大家早就得以清楚的来看Orthanc
Http
Server的全体调用流程。那么我们在worker_thread函数中插入断点,重新输入curl指令,查看一下在全部工艺流程的序幕状态下,Orthanc
Http Server接收到的数据体是如何格式?如下图所示:

 

澳门威尼斯人网址 39

 

       
在process_new_connection函数内部读取curl发出的POST请求指令时,连接缓存buf的内容中早就不存在双引号了,因而能够规定curl的-d参数在发送JSON格式数据到Orthanc的Http
Server时忽略了双引号。此起彼伏能够商量一下curl在windows环境下的行使,尤其是-d参数的安装

5)查看各类Patient内容:

curl http://localhost:8042/patients/64d6f8a0-ea0ffdb2-a14d1488-4fa7879c-2d9758d8

澳门威尼斯人网址 40

       
相比较前面数据库的分析,发现多数字段都得以一向在数据库中看到相应的值,如下图所示:

澳门威尼斯人网址 41

知识点补充:

参考资料:

https://code.google.com/p/orthanc/wiki/OrthancCookbook,Cookbook官网链接

https://code.google.com/p/orthanc/wiki/Anonymization,Orthanc的Modification和Anonymization介绍

https://docs.google.com/spreadsheet/pub?key=0Ao5aRMxCX2hldEJadzVUaWFmNW5QTWhrYTI3UHMzdXc&single=true&gid=8&output=html,REST
API帮助图谱

https://docs.google.com/spreadsheet/pub?key=0Ao5aRMxCX2hldEJadzVUaWFmNW5QTWhrYTI3UHMzdXc&single=true&gid=0&output=html,REST
API援救图谱

http://curl.haxx.se/docs/manpage.html,curl中参数介绍

 

背景:

        上一篇博文不难翻译了Orthanc官网给出的CodeProject上“利用Orthanc
Plugin
SDK开发WADO插件”的博文,在那之中涉嫌了Orthanc从0.捌.0本子之后帮助高效查询,而本来的WADO请求需假使一直正视Orthanc内部的REST
API逐级定位。那么为何此前的Orthanc必须求逐级来定位WADO请求的Instance呢?新本子中又是何等举行革新的吗?此篇博文经过分析Orthanc内嵌的SQLite数据库,来剖析Orthanc的RESTful
API机制,以及WADO服务的落到实处。

背景:

 

        此篇博文介绍3个开源的、基于WEB的DICOM
Server软件。该开源软件完全使用C++编写,不借助于于第一方数据库(内置了SQLite数据库)或其它框架,帮忙RESTful
API设计格局。官网上提供了源代码,同时也交给了编写翻译后的Windows和Linux系统的2进制安装包。Orthanc是PACS领域的一种改造,建议了“解构PACS概念”,即Deconstructed
PACS,用户能够通过两种方法访问Orthanc:DICOM Server、Web Server和RESTful
API。

贰)怎样调节和测试Orthanc中的DICOM Server

        由于DICOM Server相比较熟识,先验知识相比较多,由此调节和测试起来比HTTP
Server不难。在Orthanc的main函数中大家得以见到httpServer.Start()和dicomServer.Start(),dicomServer.Start()就是DICOM
Server的入口点,由于Orthanc是依照DCMediaTek开发的,因而后续的流水生产线应该是交由DCMTK来落成的,更详细的底细可参照本专栏前边的DC德州仪器互连网系列文章。预报一下下篇博文种详细介绍利用fo-dicom开源库创设三个简便的DICOM
Server服务端,那时再详尽的对照分析Orthanc中的DICOM
Server,本篇一时到此结束。

 

一)Orthanc SQLite数据库列表介绍:

       
Orthanc采用了SQLite嵌入式数据库,对数据库的操作在工程代码中融为一体,因而在利用进程中并未能感觉到数据库的保管,那也支撑了Orthanc主打大巴轻型、便捷、网络化优点。下边简单介绍一下Orthanc
SQLite数据表的逻辑:

       
SQLite的数据库文件私下认可存款和储蓄地点为:C:\Orthanc\OrthancStoragef\index(其诚实后缀为db三)。用SQLite可视化工具打开index文件,能够见见如下几张表:

澳门威尼斯人网址 42

       
从表名称中得以估摸出各表大概的用途:例如AttachedFiles是增进文件的记录、Changes大概为修改操作(删除、匿名化等)、DicomIdentifiers为DICOM文件标示符(各级UID)、ExportedResources可能为导出或上传操作、GlobalProperties应该是大局属性、MainDicomTags应该是Orthanc重临给REST
API操作的JSON格式数据、Metadata是数据体、Resources应该是文本体标记(PatientRecyclingOrder临时不知道,请看下文分析)。

2)作为Web Server:

 

        Orthanc内置了3个Web Server(也可停放到Apache服务中),即Orthanc
Explorer。Orthanc
Explorer提供了1种自身的交互格局,可由此拖拽文件的法子贯彻DICOM文件上传。下边大家演示一下:

        在初步菜单中选择Open Orthanc
Explorer,或然在Chrome或许Firefox浏览器中一贯输入http://localhost:8042/app/explorer.html(注:目前不扶助IE浏览器)。打开后此处能够间接看到我们刚才
利用storescu.exe上传的test.dcm文件,如下图所示:

澳门威尼斯人网址 43

        单击上海体育场合右上角的Upload DICOM,出现如下界面:

澳门威尼斯人网址 44

     
 此时大家得以应用“拖拽”格局完毕DICOM文件上传。上面笔者选取c:\test贰.dcm文本,拖拽到上述页面中,然后单击Start
the upload,会弹出上传进程条,如下所示:

澳门威尼斯人网址 45

       
重临上层界面,能够观望我们“拖拽”的test2.dcm文本已经顺遂实现上传,如下图所示:

澳门威尼斯人网址 46

二)Modification源码调节和测试:

       
既然已经找到了Anonymization中代码出错的题材,让我们去掉Modification中的单引号,尝试一下输入如下指令:

        curl
-v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/modify -X
POST -d {“Replace”:{“PatientName”:”hello”,”PatientID”:”world”}}
>c:\orthanc-modify.dcm

        令大家失望的是还是看到了HTTP Server重返的404错误

澳门威尼斯人网址 47

       
由于Modification指令中单引号内部还设有着更多的双引号。依据上次的经历,有希望照旧Json格式输入输入错误。让我们只保留json_reader.cpp中的readToken断点,直接查看一下剖析结果是或不是是tokenError?双重输入指令,进入到readToken内部,发现函数依旧再次来到tokenError,结果如下图所示:

 

澳门威尼斯人网址 48

 

       
利用VS自带的查看工具,大家能够看出readToken函数解析的字符串current_,其忠实内容是:{Replace:{PatientName:hello,PatientID:world}},当中并没有看到大家输入的双引号,将{Replace:{帕特ientName:hello,PatientID:world}}输入到http://www.bejson.com/中,也获取了错误的结果提醒:

澳门威尼斯人网址 49

       
那表达大家在命令行中输入的Json指令中的双引号,在被VS读入进度中被忽略了。那么我们利用转义字符将双引号传递进入,输入指令:

        curl
-v http://localhost:8042/instances/c77324ec-f5e76fc5-c96846bf-2ed4097d-86f9e79c/modify -X
POST -d
{\”Replace\”:{\”PatientName\”:\”hello\”,\”PatientID\”:\”world\”}}
>c:\orthanc-modify.dcm

        查看结果:

 

澳门威尼斯人网址 50

 

        最后运营输出为,

澳门威尼斯人网址 51

       
在DCM看图软件中开拓orthanc-modify.dcm,能够看看PatientID和PatientName已经修改。

澳门威尼斯人网址 52

        至此,关于Orthanc
Modification和Anonymization的调节和测试已经顺遂达成,能够松一口气呀,仍然调节和测试源代码给力啊^_^。

2)Studies:

curl http://localhost:8042/studies

回来结果为,

澳门威尼斯人网址 53

       
即上述分析的Resources表中的每组的第2条记下,相当于表中的四3和四七行。

Native Windows build with Microsoft Visual Studio

# cd […]\OrthancBuild
# cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON
-G “Visual Studio 8 2005” […]\Orthanc

 

Then open the “[…]/OrthancBuild/Orthanc.sln” with Visual Studio.

 

       
利用cmd进入到命令提醒符状态,仿照上述代码,创制安装缓存目录,mkdir
c:\OrthancBuild;随后运行cmake命令行方式,依照INSTALL中的表明设置编写翻译情势,具体指令为:

cd c:\OrthancBuild

cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON -G
“Visual Studio 10” ..\Orthanc-0.8.5\Orthanc-0.8.5

       
注:
目录要钦点到源码中CMakeList.txt文件所在的层级。其它对于本地编写翻译器的选用,可从前天cmd状态下输入cmake,查看当前援救的编写翻译器类型,如下图所示,笔者选择的是Visual
Studio 十。

 

澳门威尼斯人网址 54

 

       
上述打开了活动下载第3方匡助库的选项,即-DALLOW_DOWNLOADS=ON 。在起步cmake后,会活动下载大家在CMake
GUI情势下提醒缺乏的种种协理库。等待全部第3方库自动下载并设置到位后,Orthanc源码就万事大吉编译完毕了,如下图所示:

 

澳门威尼斯人网址 55

 

        打开上海教室中提醒的Build
files文件路径C:\Orthanc-0.八.5,双击打开VS工程Orthanc.sln。选用“生成”下的“批生成”,勾选ALL_BUILD项目,单击“生成”后等候编译完毕。

澳门威尼斯人网址 56

       
顺遂编译实现后,在C:\Orthanc-0.8.5\Debug目录下看到了与2进制安装后同样的可执行文件,名字为Orthanc.exe,如下图所示:

 

澳门威尼斯人网址 57

 

        至此利用Orthanc源码实行安装的历程顺遂告竣。其实在CMake
GUI形式下我们勾选了安顿项中的“ALLOW_DOWNLOADS”,也得以顺遂完毕Orthanc源码的编译。

 

澳门威尼斯人网址 58

 

Orthanc介绍:

        取名称叫Orthanc源自于J.BMWX三.Tiggo.
Tolkien’s(托尔金)的小说。Orthanc是艾辛格(Isengard)要塞中的黑塔,初建于第1世纪,用于储存收纳南方王国的真理晶石——palantíri,1种圆形且可以看见远方的石块,透过palantíri能够跟远方使用palantíri的人进行沟通。Orthanc
Server正是取palantíri的此层含义,设计出一种可在全部医院DICOM拓扑网络中便捷、透明以及可编制程序访问经济学图像的连串(可参看wiki百科的牵线:http://en.wikipedia.org/wiki/Isengard)。

       
此外,Orthanc中并且含有了“帕杰罗TH“,即Radiotherapy。其实Orthanc本人源自于法国de
Liège大学中央医院(Centre Hospitalier
Universitaire)对于放射治疗服务的研商。

4)Instances:

curl http://localhost:8042/instances

回去结果为,

澳门威尼斯人网址 59

        Resources表中每组记录的率先条,表中的四一和45行。

源码编译后测试:

       
在职分管理器中先手动终止OrthancService.exe和Orthanc-0.八.5-Release.exe多少个Orthanc后台服务进度,转到编写翻译源码生成的目录C:\Orthanc-0.8.5\Debug下,运转Orthanc.exe,如下图所示:(调节和测试情况下Orthanc.exe会输出状态音讯,也能够在命令行下运维Orthanc.exe
–verbose输出调节和测试音讯)

澳门威尼斯人网址 60

        仿照上1节,从DICOM Server、Web Server和RESTful
API两种方式展开测试:

一贯促成WADO

       
在条分缕析了本来的作用较低的WadoPlugin查询办法后,大家遵照同样的章程单步调节和测试,查看新的Orthanc
PluginSDK的询问进程。具体截图如下:

澳门威尼斯人网址 61

澳门威尼斯人网址 62

澳门威尼斯人网址 63

        上述壹连串截图能够看看新的Orthanc Plugin
SDK通过三步能够轻松从SQLite数据库中读取钦定Instance的publicId(即上文说的UUID);得到了InstanceUUID后协会/instances/{id}类型的RESTful
API
uri来直接得到Orthanc数据库中的文件音信。如是收缩了巡回查询数据库的次数,升高了频率。仔细分析下来能够窥见之所以原本的PluginSDK须要查询多次数据库是因为Orthanc上校DICOM文件及连锁音讯根据不一样级别将新闻分类存款和储蓄,由此提取时索要各自定位然后将查询结果组合。其余打开Orthanc的Storage目录能够窥见对于各类DCM文件Orthanc接纳了publicId的两级目录格局来囤积:第一级目录是文本的MD伍值中的第二有个其余前3个字节;第2级是后八个字节。如下图所示:

澳门威尼斯人网址 64

 

       
至此能够清楚地打听了Orthanc底层SQLite数据库的构造及连锁操作,为了包容RESTful
API和DICOM3.0正规,数据库的逻辑设计是很精致的,后续可深远研商一下。

Deconstructed PACS:

        Deconstructed PACS是新一代的PACS系统,原来的作品的叙述为”The latest
strategy for imaging informatics is actually “deconstructed PACS,” where
the core elements of PACS are best-of-breed or component-based
solutions, integrated together using standards-based approaches
.”
PACS系统最早是通过整合八个单身的子系统来促成简单取得和转存图像,对于图像(images)和理学消息(demographics)分别采纳分裂的网络;随后发展为C/S形式,通过Client的工作站来实现(胖客户端thick-client);最后演变成基于浏览器的Web
PACS(月月红户端thin-client)。

【Deconstructed
PACS概念如今自家还一贯不搞太驾驭,官网的素材比较多,后续会补充更加多的材料,有趣味的读者也得以一直阅读博文后小编付出的总是】

1)Explorer中Drag & Drop测试:

       
先打开Orthanc的浏览界面:http://localhost:8042/app/explorer.html#upload

澳门威尼斯人网址 65

        拖拽任意图像到浏览器内,单击【Start the
upload】,直到出现鲜黄’【Done】,阐明上传成功。

澳门威尼斯人网址 66

澳门威尼斯人网址 67

        数据库变化如下:

澳门威尼斯人网址 68

1)作为DICOM Server:

       
安装并运行Orthanc瑟维斯.exe后,在职务管理器中得以看出运维了三个服务驻留进程OrthancService.exe和Orthanc-0.八.5-Release.exe

 

澳门威尼斯人网址 69

 

        Orthanc提供了发送和收受DICOM图像的基本作用,类似于叁个mini
PACS。能够与DC高通提供的工具包进行卓越的互相,此处笔者就凭借DC高通提供的storescu.exe工具将C:\test.dcm文件发送到Orthanc,具体指令如下:

storescu.exe –d –aec ORTHANC localhost 4242 c:\test.dcm

       
对于storescu.exe工具包的施用可参考小编前几篇的特辑,此处ORTHANCCalled
AE
Title
4242是Orthanc中DICOM服务的监听端口,该消息在装置进度中钦点的数额归档目录(即c:\Orthanc)中的Connfiguration.json安插文件中得以自动安装,上述命令行中的参数是Orthanc安装时暗中同意的装置。

 

澳门威尼斯人网址 70

 

       
命令执行后,storescu.exe的出口结果如下图所示,表达test.dcm文件已经顺遂发送到Orthanc。

 

澳门威尼斯人网址 71

 

       
打开Orthanc暗中认可的数码归档文件夹C:\Orthanc\OrthancStorage\6a\d陆能够看看1个大大小小与test.dcm相同的公文,利用DICOM
Viewer打开可以观望双方是同1个文本。那表达Orthanc成功接到到storescu.exe发送的测试图像。

 

澳门威尼斯人网址 72

 

SQLite数据写入逻辑实例测试

Orthanc安装:

       
通过上述简短的牵线,想必大家早就对Orthanc有了差不离的摸底。上边给出Orthanc的装置格局,Orthanc是三个开源软件,由此有三种安装方式。

RESTful API模拟WADO

        官网给出的运用内建RESTful
API仿真WADO的代码在WadoPlugin.cpp中的Wado函数内,个中最关键的是LocateStudy、LocateSeries和LocateInstance多个定位函数。下图是LocateStudy级别的单步调试结果:

澳门威尼斯人网址 73

       
从上海教室能够看来在LocateStudy函数内部,首先是行使DatabaseWrapper.cpp中的GetAllPublicId函数从SQLite数据库的Resources表中领到出全方位的publicId,如大家地方分析,每2个上传的文书都有唯1对应的UUID格式的publicId。

       
随后,在LocateStudy函数内部,对前方重返的兼具publicId举办巡回遍历,针对每叁个/studies/{publicId}进行财富一定,用到的函数是LookupResource(同样在DatabaseWrapper.cpp中)。通过下图中能够见到该函数从Resources表中依照publicId查询出internalId和resourceType三个字段。查看LookupResource函数参数type的品类ResourceType定义可知:Resources表中第二列字段储存的是publicId对应的能源级别,该级别依照DICOM三.0行业内部划分为Patient(=一)、Study(=二)、Series(=3)、Instance(=4)四级,如Enumeration.h中定义所示:

 

[cpp] view
plain
 copy

 

 print?澳门威尼斯人网址 74澳门威尼斯人网址 75

  1. enum ResourceType  
  2. {  
  3. ResourceType_Patient = 1,  
  4. ResourceType_Study = 2,  
  5. ResourceType_Series = 3,  
  6. ResourceType_Instance = 4  
  7. };  

 

 

下边直接贴出调试的截图:

澳门威尼斯人网址 76

澳门威尼斯人网址 77

澳门威尼斯人网址 78

澳门威尼斯人网址 79

澳门威尼斯人网址 80

澳门威尼斯人网址 81

       
从截图中可以见到Orthanc中一呼百应WADO请求的差不多数据库检索流程,首先是在Resources表中询问全体的publicId(因为初次查询不大概运用WADO请求中的studyID/seriesID/objectID总结出任何有效UUID);然后构造/studies/{id}方式的uri,利用RESTful
API机制查询组合出种种级其余publicId,其各级之间的关系由表Resources中的parentId字段标明,而唯1性由主键internalId来决定。那约等于上述多次倡导RESTful
API查询数据库的主要原因;待取得了各级publicId和internalId后,正是从DicomIdentifiers表、MainDicomTags表和Metadata表中领取DICOM文件根本消息操作;最终自然就是将查询到的结果图像重回到浏览器端(能够DICOM格式或JPEG缩略图形式重临)。

【注】:在表Metadata中著录的type由Enumerations.h文件提交定义,如下:

 

[cpp] view
plain
 copy

 

 print?澳门威尼斯人网址 82澳门威尼斯人网址 83

  1. enum MetadataType  
  2. {  
  3. MetadataType_Instance_IndexInSeries = 1,  
  4. MetadataType_Instance_ReceptionDate = 2,  
  5. MetadataType_Instance_RemoteAet = 3,  
  6. MetadataType_Series_ExpectedNumberOfInstances = 4,  
  7. MetadataType_ModifiedFrom = 5,  
  8. MetadataType_AnonymizedFrom = 6,  
  9. MetadataType_LastUpdate = 7,  
  10. // Make sure that the value “65535” can be stored into this enumeration  
  11. MetadataType_StartUser = 1024,  
  12. MetadataType_EndUser = 65535  
  13. };  

 

 

        能够窥见内部有RemoteAet类型,因而估摸大概跟DICOM
协议有关,用于记录上传端的AE Title,通过输入指令验证如下:

        指令:storescu.exe -d localhost 4242 -aet ZSSURE -aec ORTHANC
c:\Slice_0010.dcm

        测试结果:

澳门威尼斯人网址 84

Orthanc:

       
开源中夏族民共和国社区中对于Orthanc有一段那样的描述:Orthanc是1个轻量级的,基于REST的DICOM服务器,主要用来卫生保健和看病商讨。Orthanc可将随机械运输营Windows和Linux的总结机编制程序DICOM存款和储蓄(大概说是1个微型PACS系统),其架构是轻量级的,未有复杂的数据库管理,不依赖于第一方软件。

澳门威尼斯人网址,       
除此以外,Orthanc官网(http://www.orthanc-server.com/about.php)对于Orthanc的描述重视提到:Orthanc之所以与众差别是因为它提供RESTful
API
。因而,Orthanc能够使用别的总结机语言开发。Orthanc存款和储蓄的DICOM图像的标签能够以JSON文件格式下载,其它,Orthanc对于仓库储存的DICOM实例能够动态变化对应的PNG图像。

       
Orthanc隐藏了复杂的DICOM文件格式和DICOM协议,使使用者只注意于DICOM文件内容。

陆)查看具体Instance内容

       
因为查看Study和Series级别的内容与查看Patient级别类似,就不啰嗦了,直接看一下切实Instance(即DICOM文件)的查询结果,输入指令:

curl http://localhost:8042/instances/064123d1-803dde30-f81071dc-cb2aad3b-bd246b7b

澳门威尼斯人网址 85

        上述结果在数据库中都能够一贯找到,如下图所示:

澳门威尼斯人网址 86

        至此大家看来了轻车熟路的【SOP Instance
UID】,原来存款和储蓄在DicomIdentifiers表中。

        从上述的反复实例测试我们也大约猜出来Orthanc
SQLite数据库中各表的效果,Resources表中是利用SHA一来测算出UUID唯1标识我们的DCM文件;DicomIdentifiers表记录的是对应DCM文件的各级DICOM
UID,想必那也是WADO协议中供给一定文件的必备参数;MainDicomTags表存款和储蓄的是对应DCM文件的最重要二种Tag,包蕴Group号、Element号,以及值域数据。各种表之间的涉嫌是由此Resources表中的internalId来成功的,internalId是多数表的主键(PK)。

        到此处本文就能够了结了,已经达到了剖析Orthanc
SQLite的目标,但是还未曾清晰的看出REST
API与WADO的分别。为此,也为了更加好的垂询Orthanc的操作流程,再补充1节,通过单步调节和测试来深远剖析一下Orthanc的兑现机制,达到浓密解析的程度。

参考资料:

http://www.orthanc-server.com/index.php,Orthanc官网

http://www.orthanc-server.com/blog.php,Orthanc

http://www.auntminnie.com/index.aspx?sec=ser&sub=def&pag=dis&ItemID=107001,Deconstructed
PACS

http://www.auntminnie.com/index.aspx?sec=sup&sub=pac&pag=dis&ItemID=55408,Deconstructed
PACS

http://siim.org/siim2014/scientific-program/deconstructed-pacs,Deconstructed
PACS

http://idoimaging.com/blog/?p=288,I Do Imaging

http://www.codeproject.com/Articles/797118/Implementing-a-WADO-Server-using-Orthanc,Orthanc
Plugins SDK

http://baike.baidu.com/view/5798116.htm?fr=aladdin,RESTful APIs

http://www.cnblogs.com/springyangwc/archive/2012/01/18/2325784.html,RESTful
APIs

 

 

 

 

> > > > > >  
> > > > > >
> > > > > > 作者:zssure@163.com

> > > > > >  
> > > > > >
> > > > > > 时间:2014-11-23

3)Series:

curl http://localhost:8042/series

归来结果为,

澳门威尼斯人网址 87

        Resources表中每组记录的第二条,表中的4二和四陆行。

Orthanc源码在Windows下编写翻译运转:

       
开源软件最常用的是源码编写翻译,如是能够生成跟本机系统最相称的可执行文件。Orthanc源代码下载地址为:http://sourceforge.net/projects/orthancserver/files/Orthanc-0.8.5.tar.gz/download,源码包名字为:Orthanc-0.八.五.tar.gz。解压Orthanc-0.捌.5.tar.gz到希望的目录(本机笔者选取C:\),得到C:\Orthanc-0.8.5,如下图:

> >  
> >
> > 澳门威尼斯人网址 88

 

        打开INSTALL安装表达文书档案,能够看到安装必须的准备:

 

1)CMake,我直接使用本地安装的CMake二.八(也得以到官网下载最新版本:http://www.cmake.org/);

 

2)Python,安装进程中有1部分自动生成的台本必要选用Python解释器,下载地址http://www.python.org/,作者本机安装的版本为:Python贰.七;

 

三)7-Zip:用于解压缩安装进度中下载的压缩包,下载地址为http://www.7-zip.org/

 

        在选择CMake GUI界面,内定source
code和build路径后,单击Configure会出现缺少7-zip的不当提示,如下图:

 

澳门威尼斯人网址 89

 

       
原因是自作者本机开端未有安装7-zip软件。遵照INSTALL给出的官网下载并设置到位后,重新开动CMake再度进行安排后,又会产出谬误,如下所示。提示紧缺libgoogle-glog-dev
package,那个相应是google的用于日志记录的库。

 

澳门威尼斯人网址 90

 

        在寻找并下载libgoogle-glog-dev
package时遇到了难点,未找到直接的下载链接。因而使用CMake
GUI编写翻译Orthanc的路一时走不通。重新仔细阅读INSTALL文档,找到了在Windwos系统下接纳Microsoft
Visual Studio进行Orthanc源码编写翻译的格局,具体说明如下:

Orthanc中SQLite实例测试:

       
在大约精通了Orthanc中SQLite数据库的着力构造后,实行一下实例测试。如博文(http://blog.csdn.net/zssureqh/article/details/41836885)所述,向Orthanc中添加多少有二种方法,命令行工具,REST
API,以及网页。上面我们对Orthanc自带的Explorer和DCMediaTek工具包storescu.exe实行实事求是数据上传测试。

WADO:

        关于WADO的详实介绍能够参照DICOM三.0行业内部的第三八局地。

相关文章