我正在使用带有 Content-Type 的 WADO-RS:application/dicom。成功执行请求后,我得到一个字节流,其中包含一些标头信息和 Multipart 格式的 DICOM 数据。如何使用 C++ 代码从中解析实际的 DICOM 数据?
问问题
564 次
1 回答
2
多部分文件的每个部分都是一个 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()
于 2018-08-05T17:45:32.203 回答