在dcm4chee上添加新标签

时间:2013-05-14 02:25:45

标签: dicom dcm4che

我现在正在使用dcm4chee,我需要添加一些自定义字段,例如患者的身份证号码,移动电话号码和地址。 在搜索了一些相关信息之后,我仍然感到困惑,不知道该怎么做。有没有人这样做过?

3 个答案:

答案 0 :(得分:1)

正如@ jap1968已经指出的那样,你可以添加

Other Patient IDs (0010,1000)

包括任何其他患者ID号。此属性是患者识别模块的一部分,在大多数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。)。

答案 1 :(得分:1)

我已经在其他一些案件上做过了。在我的情况下,我要用新值修改现有标签。这里的代码,希望它给你一些指针。

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();
    }
}

答案 2 :(得分:0)

看看这些Dicom字段:

Other Patient IDs   (0010,1000)
Other Patient IDs Sequence  (0010,1002)

也许您不需要添加自定义字段(至少对于患者身份证),但只需使用一些现有字段。