2013-05-14 52 views
0

我現在正在與dcm4chee一起工作,並且我有要求添加一些自定義字段,例如患者的身份證號碼,移動電話號碼和地址。 在搜索了一些相關信息後,我仍然感到困惑,不知道該怎麼做。有沒有人做過這件事?在dcm4chee上添加新標籤

回答

1

前面已經指出的@ jap1968,您可以添加

Other Patient IDs (0010,1000) 

包括任何額外的病人ID號。該屬性是患者識別模塊的一部分,該屬性通常在大多數DICOM對象中都是預期的。

病人人口模塊,這通常是一個可選的屬性集,就可以例如重新使用這些屬性:

Patient’s Telephone Numbers (0010,2154) 
Patient’s Address (0010,1040) 

根據您正在使用,以處理您的DICOM對象該DICOM工具包,會有不同的屬性插入方法。在dcm4che中,您應該可以使用其中一個可用的DicomObject.put...方法在您的DICOM對象中插入一個新值。請記住,爲了正確,您應該更新修改對象的SOP實例UID(以及潛在的其他UID:s)。

+1

最後一條評論:包含患者電話號碼的數據元素具有值爲1-n的多重性(VM)。因此,您可以同時存儲家庭電話和手機。 – jap1968 2013-05-14 22:01:28

0

看一看這些DICOM的領域:

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

也許你並不需要添加自定義字段(至少對於患者ID卡),但只是使用一些已經存在的的。

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