WADO-URI,WADO-RS

可以关注技术大牛博客https://blog.csdn.net/zssureqh

WADO-URI

accept:请求中的accept表明客户端(通常是浏览器)自身能够支持的从服务器返回的数据类型,例如上图中支持image/webp,image/,/*;q=0.8表示图片的质量 
accept-encoding:表示客户端(通常是浏览器)支持的编码格式,通常用于压缩和解压缩 
accept-language:表示客户端(通常是浏览器)支持的字符集,通常跟乱码有关。 
因为DICOM文件有多种类型,主要有Single frame(简单的可以理解为一个DICOM文件内部只有一个图片)、Multi frame(一个DICOM文件有多个图片)。每种类型在WADO-URI的Response返回结果中有所体现,大致如下:

类型 内容 备注
single frame application/dicom
image/jpeg
还可以支持image/gif,image/png,image/jp2
multi frame application/dicom
video/mpeg
image/gif
 
text文本信息 application/dicom
text/plain
text/html
还可以支持text/xml,application/pdf,text/rtf

请求中唯一与DICOM有关的是GET请求的参数 

WADO-URI的query参数主要有以下几类: 

参数 含义 示例
Request type 请求的类型,即WADO requestType=WADO
Unique identifier of the Study 检查的UID studyUID=xxxx
Unique identifier of the Series 序列的UID seriesUID=xxx
Unique identifier of the Object 对象(文件)UID,可以叫做SOP、instance等 objectUID=xxx
MIME type of response 返回数据的类型 该参数可选,contentType=application/dicom
Charset of the response 字符集类型 该参数可选,charset=xxx
Anonymize object 数据匿名化 该参数可选anonymize=yes

 针对于DICOM Image图像有如下可选参数

参数 含义 示例
Annotation on the object 注释标记 annotation=
Number of pixel rows 图像的行数 rows=64,当contentType=application/dicom时不存在
Number of pixel columns 图像的列数 columns=64,当contentType=application/dicom时不存在
Region of the image 图像区域,期左上角像素点的x/y坐标和右下角像素点的x/y坐标,范围是0.0-1.0 region=0.0,0.0,1.0,1.0,当contentType=application/dicom时不存在
Window center of the image 窗位,类型是Decimal String,即DS windowCenter=xxx,,当contentType=application/dicom时不存在
Window width of the image 窗宽,类型是Decimal String,即DS windowWidth=xxx,,当contentType=application/dicom时不存在
Frame number 图像帧位置 frameNumber=1,当对应的对象时Multi-frame时有效,另外当contentType=application/dicom时不需要存在
Image Quality 图像质量 imageQuality=xxx,档contentType=application/dicom时不需要存在,但是如果同时给出了一个压缩语义transferSyntax参数时需要设定ImageQuality。例如如果返回值为image/jpeg类型,那么imageQuality可以设置1-100来表示图像质量
Transfer Syntax UID 传输语义,用于表示返回的DIOCM数据的字节顺序和编码方式 transferSyntax=1.2.840.10008.1.2.1,默认是Explicit VR Little Endian(即1.2.840.10008.1.2.1)。

下面直接给出几个具体示例:

功能 链接 备注
请求一个DICOM图像,并进行匿名化处理 http://www.linkingmed.com?requestType=WADO&studyUID=1.2.250.1.59.40211.12345678.678910
&seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
&objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
&contentType=application%2Fdicom
&anonymize=yes
&transferSyntax=1.2.840.10008.1.2.4.50
 
请求一个简单的DICOM图像,并要求转换成JPEG格式 http://www.linkingmed.com?requestType=WADO&studyUID=1.2.250.1.59.40211.12345678.678910
&seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
&objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
 
请求一个DICOM SR报告,要求以HTML格式返回 http://www.linkingmed.com?requestType=WADO&studyUID=1.2.250.1.59.40211.12345678.678910
&seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
&objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
&charset=UTF-8
 
  https://www.linkingmed.com?requestType=WADO&studyUID=1.2.250.1.59.40211.12345678.678910
&seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
&objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
&contentType=image%2Fjp2;level=1,image%2Fjpeg;q=0.5
&annotation=patient,technique
&columns=400
&rows=300
&region=0.3,0.4,0.5,0.5
&windowCenter=-1000
&windowWidth=2500
这个请求链接几乎包含了上述提到的所有关于DICOM Image的操作参数

 WADO-RS

WADO-RS支持的操作有: 
- RetrieveStudy 
- RetrieveSeries 
- RetrieveInstance 
- RetrieveFrames 
- RetrieveBulkdata 
- RetrieveMetadata

上述操作的实现的功能可以直接从名称中看出来这里就不详细介绍了。由于WADO-RS是基于HTTP的GET来实现DICOM的交互的,因此需要将上述操作的结果封装到HTTP的Response中返回。对应的关系图如下所示: 
这里写图片描述

WADO-RS各个操作的格式

WADO-RS Action 参数 示例
RetrieveStudy Request Resource: {SERIVE}/studies/{StudyInstanceUID}
Method:GET
Headers:Accept:multipart/related;type=”application/dicom”或者type=”application/octet-stream”或者type=”{media-type}”
Accept: multipart/related; type=”image/jpx”; transfer-syntax=1.2.840.10008.1.2.4.92,, multipart/related; type=”image/jpx”; transfer-syntax=1.2.840.10008.1.2.4.93, multipart/related; type=”image/jpeg”
RetrieveStudy Response Content-type:multipart/related;type=application/dicom;boundary={MessageBodunary}  
RestireveSeries Request Resource:{SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}
Method:GET
Headers:Accept:multipart/related;type=”application/dicom”;或者type=”application/octet-stream”或者type=”{media-type}”
 
RetrieveSeries Response Content-type:multipart/related;type=”application/octet-stream”;boundary={MessageBodunary}  
RetrieveInstance Request Resource:{SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{SOPInstanceUID}
Method:GET
Headers:Accept:multipart/related;type=”application/dicom”或者type=”application/octet-stream”或者type=”media-type”
 
RetrieveInstance Response Content-Type:multipart/related; type=”application/dicom”; boundary={MessageBoundary}  
RetrieveFrames Request Resource:{SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{SOPInstanceUID}/frames/{FrameList}
Method:GET
Headers:Accept:multipart/related; type=”application/octet-stream”或者type=”{media-type}”
{FrameList}需要用逗号或者%2C隔离开,例如/frames/1,2,4,3
RetrieveFrames Response Content-Type:multipart/related; type=”application/octet-stream”; boundary={MessageBoundary} [dcm-parameters]  
RetrieveBulkdata Request Resource:{BulkDataURI}
Method:GET
Headers:Accept:multipart/related; type=”application/octet-stream” [dcm-parameters]或者multipart/related; type=”{media-type}” [dcm-parameters]
 
RetrieveBulkdata Response Content-Type:multipart/related; type=”application/octet-stream”; boundary={MessageBoundary} [dcm-parameters]  
RetrieveMetadata Resources:{SERVICE}/studies/{StudyInstanceUID}/metadata或者
{SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/metadata或者{SERVICE}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{SOPInstanceUID}/metadata
Method:GET
Headers:Accept:multipart/related; type=”application/dicom+xml”或者application/dicom+json
 
RetrieveMetadata Content-Type:multipart/related; type=”application/dicom+xml” [dcm-parameters]或者application/dicom+json [dcm-parameters]

最后看一下WADO-RS Retrieve Rendered Transaction,用于实现DICOM数据到图像格式的转换。请求的格式如下: 
这里写图片描述
针对各个级别的请求如下: 
这里写图片描述
对于DICOM图像格式转换,最重要的是请求中的{?parameter*}参数,参数详细配置如下: 
这里写图片描述
上述参数主要用于配置图像的区域和截取的窗宽窗位,与WADO-URI中的URL中的参数发挥的作用一致。具体的转换格式在“1#rendered-media-type”中给出,这个参数类似于WADO-URI中的&contentType=image%2Fjp2。 
由此可以看出WADO-RS与WADO-URI的实现方式是类似的,除了在获取基础对象(Study、Series、Instance)时刻的方式不同(WADO-URI时基于&拼接完成的URL字符串,而WADO-RS是利用的REST实现框架),参数的传递方式是一样的。通过在资源定位URI后的{?parameter*}参数来实现转换操作。或者说WADO-RS仅仅是将WADO-URI放在基础URI后面{?parameter*}参数中的三级UID(studyUID、seriesUID、objectUID)挪到了URI中,仅仅在{?parameter*}中传递转换操作的相关参数。

3.总结

由最初的WADO-URI,到WADO-WS,再到WADO-RS,实现框架越来越简捷清晰,开发工作越来越方便。虽然上文介绍了诸多繁琐的标准和条款,但是其本质是一样的,最终都需要落实到DICOM的解析、DICOM的格式转换、DICOM的存储上来。这也是DICOM标准委员会制定标准的初衷,只规定与医疗服务相关的协议和标准,对于具体的实现路径不做强制约束。

猜你喜欢

转载自blog.csdn.net/weixin_41556165/article/details/81661913
URI