2017a的WADO-Data Communication Requirements-6.1 Interaction

Data Communication Requirements


WADO-URI与WADO-RS都是基于HTTP(或者HTTPS)协议之上的一种实现方式,WADO-URI采用的是HTTP的GET方法,通过URL配置参数的方式来完成DICOM数据的交互;WADO-RS同样采用HTTP的GET方法(当然后续扩展的数据上传采用的是HTTP的POST,这个后续会单独介绍);WADO-WS采用的是HTTP的POST方法,通过SOAP协议的方式来完成DICOM数据的交互操作。

 渲染媒体类型

DICOM实例为了能够在非DICOM的软件上运行(如浏览器)可能会被浏览器转换为非DICOM的媒体类型。

这里需要注意的是: 给用户看到的是一些消费者格式媒体类型;如MP4、jpeg、png等。而经过压缩的数据则无需再进行渲染。

 

 上图为图像类型对应的媒体类型优先级。required为该图像必须支持的类型,optional为可选的,可支持可不支持。

当返回图像/ jpeg媒体类型时,应使用ISO / IEC 10918-1中定义的JPEG基线有损8比特霍夫曼编码的非分层非顺序过程对图像进行编码。

可接收的媒体类型

拥有如下特点:

  • <accept>查询参数,可能存在也可能不存在。
  • Accept头文件,必须存在

 期望使用有效负载进行响应的所有请求都应包含Accept头字段。 对没有Accept头字段的请求的响应应为406(不可接受)。 即使<accept>查询参数中提供了特定的媒体类型,也应该存在具有一个或多个值的Accept头字段,至少为* / *。

 可接受的媒体类型应为DICOM媒体类型或渲染媒体类型,但不能同时为两者。 如果可接受的媒体类型包含DICOM和渲染的媒体类型,则源服务器应返回409(冲突)。

用户代理可以使用<weight>参数(没有则默认为1)指定媒体类型的相对优先级,无论是在<accept>查询参数还是Accept头字段中。 见[RFC7231]第5.3.1节。

Accept查询参数

<accept>查询参数主要用于嵌入在文档中的超链接(URL),其中Accept头字段不可访问。 它类似于Accept头字段,除了它不应该有通配符(<type> / *或* / *)。

accept = accept-name "=" 1#(media-type [weight])
accept-name = "%s" quoted-string
//<accept-name>前缀的“%s”指定它是区分大小写的标记。

它的值是一个或多个<media-type>的逗号分隔列表,可能包括参数。 它应由原始服务器支持。 它对用户代理是可选的。

<accept>查询参数的<accept-name>由服务定义。 它区分大小写。 表6.1.1-4包含某些服务的<accept>查询参数的<accept-name>。当用户代理可以在Accept头字段中指定值时,不应使用<accept>查询参数。

当用户代理可以在Accept头字段中指定值时,不应使用<accept>查询参数。 

<accept>查询参数中存在的所有媒体类型应与Accept头字段中的媒体范围兼容,可以通过通配符显式或隐式地兼容。如:Accept头文件范围为image/jpeg,image/*,而Accept请求参数为image/jpeg,这样是可以的。

 Accept头文件

Accept标头字段用于指定用户代理可接受的媒体范围。 它具有以下语法:

Accept = 1#(media-range [weight])
Where,​
media-range = media-type
/ type "/" "*" parameters
/ "*/*" parameters

选中的媒体类型

Accept: text/*; q=0.5, text/html; q=0.4, text/html; level=1, text/html; level=2; q=0.7, image/png, */*; q=0.4

上述表明:

text/html的值在1到2之间。text有好几类:text/trf,text/plain,text/x-latex,text/html

所有的q值大小如下排序

DICOM媒体类型和为块数据的媒体类型

这里就不大量列表格了。。各类媒体数据类型对应的传输语法UID,见第十八章Page33-37

隐式VR Little Endian(1.2.840.10008.1.2)和Explicit VR Big Endian(1.2.840.10008.1.2.2)传输语法不得与Web服务一起使用。

传输语法参数在WS Services中是可选的,在RS中是必须的,在URI中是被禁止的。它的语法如下:

transfer-syntax-mtp = OWS ";" OWS $s"transfer-syntax=" ts-value
ts-value = transfer-syntax-uid / "*"
transfer-syntax-uid ; a UID from PS3.6 Table A-1 with a UID Type of Transfer Syntax
Accept: application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50//传输语法ID只能有一个

根据RFC 6838媒体类型规范和注册过程,特定参数被指定多次是错误的。 如果可以选择传输语法。 可以在Accept头中提供多个媒体类型,其具有不同的q参数值以表示偏重。 例如,要指定1.2.840.10008.1.2.4.50并指定1.2.840.10008.1.2.4.57是可接受的但最好是1.2.840.10008.1.2.4.50,则Accept头字段可以是:

Accept: multipart/related; application/dicom;transfer-syntax=1.2.840.10008.1.2.4.50,
application/dicom;transfer-syntax=1.2.840.10008.1.2.4.57;q=0.5

charset:一般直接设为utf-8

charset-mtp = OWS ";" OWS %s"charset" "=" charset

URI,WS,RS的API支持以下媒体类型

uri-media-type = dicom
ws-media-type = dicom-xml [dcm-parameters]
rs-media-types = (dcm-multipart / dicom-json) [dcm-parameters]

RS服务需要支持传输语法和字符集媒体类型参数。WS是可选的。URI是禁止的(因为它们均不在请求与响应中)。

字符集请求参数

字符集查询参数主要用于嵌入在文档中的超链接(URL),其中Accept-Charset标头字段不可访问。

charset-qp = name "=" 1#(charset [weight])

在Accept-charset中必须有与之回应的字符集,它可以是显式的或者隐式的。

 Accept-Charset头文件

语法:Accept-Charset = 1#(charset [weight]) / ("*" [weight])

它必须被源服务器支持,但同时它也应该对用户代理可选

Accept-Charset标头字段值的值按其<weight>参数划分优先级。如果不存在通配符(“*”),则标题字段中未明确提及的任何字符集都被视为“不可接受”客户。
没有Accept-Charset头字段的请求意味着用户代理将接受响应中的任何字符集。
如果媒体类型定义了“charset”参数,则它应该包含在Accept头字段中的媒体类型中,而不是Accept-Charset标头字段。

选定的字符集

响应中返回的渲染表示应包含所选字符集中返回的所有字符串。


如果编码目标资源的字符集不是Selected CharacterSet:

  •   如果源服务器支持将目标资源中使用的所有字形转码为选定字符集,则它应进行转码响应有效负载到选定字符集。
  • 否则,原始服务器应返回406(不可接受)。

这意味着某些SOP实例可能是可转换的,而其他实例可能不会转换,即使它们具有相同的特定字符集(0008,0005)。

所有原始服务器都应支持转换为RS渲染检索的UTF-8字符集。
如果用户代理选择执行自己的转换,而不是由原始服务器完成会出现以下状况:

    1.用户代理可能会省略Accept-Charset头字段或发送“*”通配符
    2.用户代理可能会用适当的替换来代码替换所有未知字符的字符集。 例如:
        •问号(“?”)或表示未知字符的其他类似字符。
        •字符的相应Unicode代码点,表示为“U + xxxx”。
        •四个字符“\ nnn”,其中“nnn”是每个字节的3位八进制表示(参见第6.1.2.3节“编码”
         角色曲目“在PS3.5中”。

Content-type头文件

Content-Type头字段指定有效负载的媒体类型。 它应仅在存在有效载荷时存在,并且任何媒体类型参数应指定相应消息部分的编码。
特别是,用作Content-Type头字段值的DICOM媒体类型应具有零个或一个传输语法参数(参见第6.1.1.8.1.2节),以及零个或一个字符集参数(参见第6.1.1.8节)。 1.3),它对应于相应消息部分的字符编码。

Content-Type: dicom-media-type +transfer-syntax-mtp +charset-mtp

如果媒体类型中指定的传输语法与文件元信息传输语法UID(0002,0010)属性中指定的传输语法之间存在冲突,则后者具有优先权。

猜你喜欢

转载自blog.csdn.net/weixin_41556165/article/details/81702563
今日推荐