gpt4 book ai didi

java - 从 Pacs 服务器检索 Dicom 图像

转载 作者:行者123 更新时间:2023-12-01 13:00:36 25 4
gpt4 key购买 nike

我正在使用 DcmQR 从远程 Pacs 服务器查询/检索 dicom 图像,我能够按指定条件获取 Dicom 对象列表。1. 写入 dicom 对象时,其大小仅显示 1 kb。2. 打印对象数据时,打印每个数据为空。我对此很陌生,请帮助我..:(

     My code :

public static void main(String args[]){

dcmqr = new DcmQR("DCM4CHEE");
dcmqr.setCalledAET("DCM4CHEE", true);
dcmqr.setRemoteHost("remote ip");
dcmqr.setRemotePort(remote port);
dcmqr.getKeys();
dcmqr.setDateTimeMatching(true);
dcmqr.setCFind(true);
dcmqr.setCGet(true);


dcmqr.setQueryLevel(DcmQR.QueryRetrieveLevel.IMAGE);
dcmqr.addMatchingKey(Tag.toTagPath("PatientName"),"Vicens^DICOM");
dcmqr.configureTransferCapability(true);

List<DicomObject> result = null;
try {
dcmqr.start();
dcmqr.open();
result = dcmqr.query();
dcmqr.get(result);
System.out.println("List Size : " + result.size());
displayObjectDetails(result);
for (DicomObject dco : result) {
Byte data[] = toByteArray(dco);

// here how can get dicom image ??


}

} catch (Exception e) {
System.out.println("error " + e);
}
try {
if (dcmqr != null) {
dcmqr.stop();
dcmqr.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

// toByteArray Method here
private static byte[] toByteArray(DicomObject obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(baos);
DicomOutputStream dos = new DicomOutputStream(bos);
dos.writeDicomFile(obj);
dos.close();
byte[] data = baos.toByteArray();
return data;
}

// display object details

私有(private)静态无效displayObjectDetails(列表resultimg){

DicomObject obj = new BasicDicomObject();
List<String> listimg = new ArrayList<String>();
for (int i = 0; i < resultimg.size(); i++) {
obj = resultimg.get(i);

System.out.println("InstanceNumber : "+obj.getString(Tag.InstanceNumber, VR.IS));
System.out.println("ImageType : "+obj.getString(Tag.ImageType, VR.CS));
System.out.println("ImageID : "+obj.getString(Tag.ImageID, VR.SH));
System.out.println("RetrieveAETitle : "+obj.getString(Tag.RetrieveAETitle, VR.AE));
System.out.println("SOPInstanceUID : "+obj.getString(Tag.SOPInstanceUID, VR.UI));

System.out.println("PatientName : "+obj.getString(Tag.PatientName, VR.PN));
System.out.println("PatientBirthDate : "+obj.getString(Tag.PatientBirthDate, VR.DA));
System.out.println("PatientSex : "+obj.getString(Tag.PatientSex, VR.CS));
System.out.println("ReferringPhysicianName : "+obj.getString(Tag.ReferringPhysicianName, VR.PN));
System.out.println("StudyDescription : "+obj.getString(Tag.StudyDescription, VR.LO));
System.out.println("SeriesDescription : "+obj.getString(Tag.SeriesDescription, VR.LO));

}

//输出列表大小 = 8实例编号:1图像类型:空图像类型:空检索AE标题:DCM4CHEESOP实例UID:1.3.12.2.1107.5.2.5.11090.5.0.582504825601085患者姓名:空患者出生日期:空患者性别:空推荐医生姓名 : null研究描述:空系列描述:空

最佳答案

您是否可能只保存查询响应?从 PACS 检索图像有两种方法,一种是发送 C-MOVE,并将移动目标 AE 设置为 DICOM 监听器的 AE。第二种方式虽然不是很常见,但是是发送 C-GET 请求。

关于java - 从 Pacs 服务器检索 Dicom 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com