import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.dcm4che3.data.Attributes;
import org.dcm4che3.data.DatasetWithFMI;
import org.dcm4che3.data.Tag;
import org.dcm4che3.data.VR;
import org.dcm4che3.io.DicomInputStream;
import org.dcm4che3.io.DicomOutputStream;
public class DicomUtil {
private DicomInputStream dis = null;
private DatasetWithFMI datasetWithFMI = null;
private Attributes data = null;
private Attributes fmi = null;
public DicomUtil(InputStream is) {
super();
try {
dis = new DicomInputStream(is);
datasetWithFMI = dis.readDatasetWithFMI();
data = datasetWithFMI.getDataset();
fmi = datasetWithFMI.getFileMetaInformation();
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getValueByTag(int tag) {
String value = "";
if (data != null) {
value = data.getString(tag);
}
return value;
}
public void setValueByTag(int tag, VR vr,String s) {
data.setString(tag, vr, s);
}
public void save(String path) {
try {
File file = new File(path);
DicomOutputStream dos = new DicomOutputStream(file);
dos.writeDataset(fmi, data);
dos.finish();
dos.flush();
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
File dicom = new File("C:\\Users\\zy\\Desktop\\ylzInfo\\0602_000004_3");
InputStream fis;
try {
fis = new FileInputStream(dicom);
DicomUtil dicomUtil = new DicomUtil(fis);
dicomUtil.setValueByTag(Tag.Modality,VR.CS ,"*****");
dicomUtil.setValueByTag(Tag.StudyDate,VR.DA, "***");
dicomUtil.setValueByTag(Tag.PatientName, VR.PN, "病人1");
dicomUtil.setValueByTag(Tag.PatientID, VR.LO, "病人ID");
// fis = new FileInputStream(dicom);
// String value1 = dicomUtil.getValueByTag(Tag.Modality);
// String value = dicomUtil.getValueByTag(Tag.StudyDate);
System.out.println(dicomUtil.getValueByTag(Tag.PatientName));
// System.out.println("value1="+value1);
//dicomUtil.save("C:\\Users\\zy\\Desktop\\ylzInfo\\0602_000004_3");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}