我正在尝试将DICOM文件上传到本地Orthanc服务器,但我收到的错误是:
Unknown Tag & Data (2d2d,6664) larger (1647393075) than remaining bytes (76) in file, premature end of stream
E0424 16:02:20.786940 FromDcmtkBridge.cpp:1925] Cannot parse an invalid DICOM file (size: 84 bytes)
我已经编写了以下代码来在服务器上上传文件:
DicomFile dicomfile = new DicomFile(dataset);
dicomfile.Save("dicomfile.dcm");
////finally uploading the file to Orthanc
String dcm = File.ReadAllText("./test9signedLimited.dcm");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("ContentType", "multipart/form-data");
HttpContent content = new MultipartFormDataContent();
content.Headers.ContentType= new MediaTypeHeaderValue("multipart/form-data");
var response = client.PostAsync("http://localhost.:18888/instances", content).Result;
response.EnsureSuccessStatusCode();
var r = response.Content.ReadAsStringAsync().Result;
注意我尝试使用POSTMAN上传相同的文件,并在那里成功上传。
提前感谢您的帮助。
答案 0 :(得分:4)
对C#一无所知,但我现在看到代码中有两个问题。
File.ReadAllText
从磁盘读取DICOM文件,该文件返回String
。这似乎不对,因为DICOM是一种二进制格式,将其转换为字符串很可能会破坏它。您更可能需要一个带有DICOM数据的字节数组来附加到POST请求。答案 1 :(得分:0)
尽管此答案未涵盖C#
解决方案,但您有一个python
选项可能会对您有所帮助。 Orthanc Server [1]为服务器提供sending DICOM images的解决方案。说明如下。
python ImportDicomFiles.py localhost 8042 ~/DICOM/
[1] Jodogne,S.,2018年。用于医学成像的Orthanc生态系统。数字成像学报,第31卷第3期,第341-352页。