protected static DicomObject createDicomMetaData( MimeType mimeType, String filename, String description, TCReferencedInstance ref, String patId, String issuerOfPatId, String patName, String modality) { Date now = new Date(); DicomObject attrs = new BasicDicomObject(); // patient level if (patId != null) { attrs.putString(Tag.PatientID, VR.LO, patId); } if (issuerOfPatId != null) { attrs.putString(Tag.IssuerOfPatientID, VR.LO, issuerOfPatId); } if (patName != null) { attrs.putString(Tag.PatientName, VR.PN, patName); } // study level attrs.putString(Tag.StudyInstanceUID, VR.UI, ref.getStudyUID()); // series level attrs.putString(Tag.SeriesInstanceUID, VR.UI, ref.getSeriesUID()); attrs.putString(Tag.SeriesDescription, VR.LO, SERIES_DESCRIPTION); attrs.putString(Tag.Modality, VR.CS, modality); // instance level attrs.putString(Tag.SOPInstanceUID, VR.UI, ref.getInstanceUID()); attrs.putString(Tag.SOPClassUID, VR.UI, ref.getClassUID()); attrs.putInt(Tag.InstanceNumber, VR.IS, ref.getInstanceNumber()); attrs.putDate(Tag.InstanceCreationDate, VR.DA, now); attrs.putDate(Tag.InstanceCreationTime, VR.TM, now); attrs.putDate(Tag.ContentDate, VR.DA, now); attrs.putDate(Tag.ContentTime, VR.TM, now); attrs.putString(Tag.ContentLabel, VR.CS, filename); attrs.putString( Tag.ContentDescription, VR.CS, description != null && !description.isEmpty() ? description : getFileName(filename)); return attrs; }