0

我现在正在使用 dcm4chee,并且我需要添加一些自定义字段,例如患者的身份证号码,手机号码和地址。谷歌搜索了一些相关信息后,我仍然很困惑,不知道该怎么办。有人做过吗?

4

3 回答 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 回答