我现在正在使用 dcm4chee,并且我需要添加一些自定义字段,例如患者的身份证号码,手机号码和地址。谷歌搜索了一些相关信息后,我仍然很困惑,不知道该怎么办。有人做过吗?
问问题
1867 次
3 回答
2
我已经在其他一些情况下这样做了。就我而言,我必须用新值修改现有标签。这里是代码,希望它能给你一些指导。
public static void changementTag(File file, int tagChooser, String aModify, VR vr, String newString )
{
try
{
DicomInputStream dis = new DicomInputStream(file);
DicomObject dio = dis.readDicomObject();
dis.close();
String fileName = file.getAbsolutePath() + ".ori";
File originFile = new File(fileName);
file.renameTo(originFile);
boolean change = false;
dio.putString(tagChooser, vr, newString);
change = true;
if(change)
{
FileOutputStream fos = new FileOutputStream( new File(file.getParent()+ "/" + file.getName()));
BufferedOutputStream bos = new BufferedOutputStream(fos);
DicomOutputStream dos = new DicomOutputStream(bos);
dos.writeDicomFile(dio);
dos.close();
originFile.delete();
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
于 2013-05-15T06:28:37.023 回答
0
看看这些 Dicom 字段:
Other Patient IDs (0010,1000)
Other Patient IDs Sequence (0010,1002)
也许您不需要添加自定义字段(至少对于患者 ID 卡),而只需使用一些已经存在的字段。
于 2013-05-14T06:38:03.177 回答
0
正如@jap1968 已经指出的那样,您可以添加
Other Patient IDs (0010,1000)
包括任何额外的患者 ID 号。此属性是Patient Identification Module的一部分,大多数 DICOM 对象通常都需要这些属性。
从Patient Demographic Module(通常是一组可选的属性)中,您可以例如重用这些属性:
Patient’s Telephone Numbers (0010,2154)
Patient’s Address (0010,1040)
根据您用于处理 DICOM 对象的 DICOM 工具包,将有不同的属性插入方法。在dcm4che中,您应该能够使用可用的DicomObject.put...方法之一在您的 DICOM 对象中插入一个新值。请记住,为了正确起见,您应该更新已修改对象的SOP 实例 UID(以及可能的其他 UID:s)。
于 2013-05-14T18:15:26.213 回答