public static Class<?> getDocumentImplementationClass(TCReferencedInstance ref) { String cuid = ref.getClassUID(); if (UID.MultiFrameTrueColorSecondaryCaptureImageStorage.equals(cuid)) { TCReferencedSeries series = ref.getSeries(); String description = series != null ? series.getSeriesDescription() : null; if (description != null && description.equalsIgnoreCase(SERIES_DESCRIPTION)) { return TCImageDocument.class; } } else if (UID.EncapsulatedPDFStorage.equals(cuid)) { return TCEncapsulatedDocument.class; } return null; }
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; }
public static TCEncapsulatedDocument create(TCReferencedInstance ref) throws Exception { Instance instance = ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME)) .findInstanceByUID(ref.getInstanceUID()); List<org.dcm4chee.archive.entity.File> files = instance.getFiles(); DicomObject attrs = instance.getAttributes(false); attrs.remove(Tag.EncapsulatedDocument); MimeType mimeType = null; String mimeTypeStr = attrs.getString(Tag.MIMETypeOfEncapsulatedDocument); if (mimeTypeStr != null) { mimeType = MimeType.get(mimeTypeStr); } if (mimeType == null) { mimeType = getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel)); } String fsId = files.get(0).getFileSystem().getDirectoryPath(); String fileId = files.get(0).getFilePath(); File file = fsId.startsWith("tar:") ? TarRetrieveDelegate.getInstance().retrieveFileFromTar(fsId, fileId) : FileUtils.resolve(new File(fsId, fileId)); return new TCEncapsulatedDocument(mimeType, ref, attrs, file); }
public static TCDocumentObject create(TCReferencedInstance ref) throws Exception { Instance instance = ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME)) .findInstanceByUID(ref.getInstanceUID()); if (instance == null) { return null; } DicomObject attrs = instance.getAttributes(false); MimeType mimeType = null; String mimeTypeStr = attrs.getString(Tag.MIMETypeOfEncapsulatedDocument); if (mimeTypeStr != null) { mimeType = MimeType.get(mimeTypeStr); } if (mimeType == null) { mimeType = getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel)); } if (mimeType != null) { DocumentType docType = mimeType.getDocumentType(); if (TCImageDocument.DOC_TYPES.contains(docType)) { return TCImageDocument.create(ref); } else if (TCEncapsulatedDocument.DOC_TYPES.contains(docType)) { return TCEncapsulatedDocument.create(ref); } } throw new Exception( "Unable to create TC encapsulated object: Mime type not supported (" + mimeTypeStr + ")"); }
public static TCImageDocument create(TCReferencedInstance ref) throws Exception { DicomObject attrs = ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME)) .findInstanceByUID(ref.getInstanceUID()) .getAttributes(false); attrs.remove(Tag.PixelData); return new TCImageDocument( checkMimeType(getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel))), ref, attrs); }