当前位置: 首页 > 知识库问答 >
问题:

多部分WADO-RS dicom数据解析

微生乐
2023-03-14

我正在使用带有Content-Type: Application/dicom的WADO-RS。成功执行请求后,我得到了一个字节流,其中包含一些头信息和Multipart格式的DICOM数据。如何使用C代码从中解析实际的DICOM数据?

共有1个答案

姬飞昂
2023-03-14

多部分文件的每个部分都是一个dicom实例。每个部分都包含一个内容长度字段,我从内容字段中解码长度。dicom文件在内容长度字段结束后4个字节开始。长度将告诉您dicom文件的结束位置。下面是一个python代码片段:

for dicm in re.finditer(b'Content-Length:', mime_bytes_msg):

    content_length_index = dicm.end() + 1
    content_length = ''

    dicom_file = open('%s/%s_%d.dcm' % (output_path, dicom_prefix, instance_number), 'wb')
    instance_number += 1
    while mime_bytes_msg[content_length_index:content_length_index + 1].decode('utf-8').isdigit():
        content_length += mime_bytes_msg[content_length_index:content_length_index + 1].decode('utf-8')
        content_length_index += 1

    dicom_start_index = content_length_index + 4
    dicom_file.write(mime_bytes_msg[dicom_start_index:dicom_start_index + int(content_length)])

    dicom_file.close()
 类似资料:
  • 我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos

  • 我正在尝试解码一个与多部分相关的请求,它只是一个简单的多文件下载,但具有特定的内容类型(应用程序/dicom,而不是应用程序/八位字节流)。由于响应主体的结构可能是相同的,所以我可以告诉“多部分编解码器”将该内容类型视为八位字节流。 我该怎么做?

  • 我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash

  • 我想向Guzzle Http请求添加一些数据。有文件名、文件内容和带有授权密钥的头。 但我得到错误 可捕获的致命错误:传递给guzzle http \ PSR 7 \ multipart stream::add element()的参数2必须是数组类型,字符串给定,在vendor \ guzzle http \ PSR 7 \ src \ multipart stream . PHP的第70行调用

  • 通常,我需要通过JSOUP将数据以响应multipart/form-data的形式发送到站点 作为一个示例,使用一个简单的窗体来sgeniriruet您的查询。 <表单操作=«localhost:8000»方法=«post»enctype=»多部分/表单数据» <输入类型=»文本»名称=»文本»值=»文本默认值» <输入类型=»文件»名称=»文件1» <输入类型=»文件»名称=»文件2» 提交 通

  • 如何使用POSTMAN对具有自定义头的多部分/表单数据进行测试,以2个文件为参数的控制器()?