private static MimeType checkMimeType(MimeType mimeType) throws Exception { if (mimeType == null || !DOC_TYPES.contains(mimeType.getDocumentType())) { throw new Exception("Mime-Type is not supported (" + mimeType + ")"); } // if there's an ImageIO Dicom reader plugin available, we are able // to read/restore all mime types (jpeg, png, gif, bmp). If not, // we need to use the WADO service to convert dicom->image. However // the WADO service just supports dicom->jpeg and in newer version // dicom->png conversions. if (!dicomReaderAvailable) { if (!MimeType.ImagePNG.equals(mimeType)) { mimeType = MimeType.ImageJPEG; } } return mimeType; }
private URL createWadoURL(MimeType mimeType, int size) { StringBuilder sbuilder = new StringBuilder(); sbuilder.append(WADODelegate.getInstance().getWadoBaseUrl()); sbuilder.append("&studyUID=").append(getStudyInstanceUID()); sbuilder.append("&seriesUID=").append(getSeriesInstanceUID()); sbuilder.append("&objectUID=").append(getSOPInstanceUID()); if (mimeType != null && MimeType.ImagePNG.equals(mimeType)) { sbuilder.append("&contentType=").append(mimeType.getMimeTypeString()); } if (size > 0) { sbuilder.append("&rows=").append(size); } try { return new URL(sbuilder.toString()); } catch (Exception e) { log.error("Malformed WADO URL!", e); return null; } }
private Resource toImageResource(BufferedImage image, final boolean forDownloading) { if (image != null) { MimeType mimeType = getMimeType(); BufferedDynamicImageResource res = new BufferedDynamicImageResource() { @Override protected void setHeaders(WebResponse response) { super.setHeaders(response); String filename = getDocumentFileName(); if (forDownloading) { response.setAttachmentHeader(filename); } else { response.setHeader( "Content-Disposition", "inline" + ((!Strings.isEmpty(filename)) ? ("; filename=\"" + filename + "\"") : "")); } } }; if (MimeType.ImageJPEG.equals(mimeType)) { res.setFormat("jpeg"); } else if (MimeType.ImagePNG.equals(mimeType)) { res.setFormat("png"); } else if (MimeType.ImageGIF.equals(mimeType)) { res.setFormat("gif"); } else if (MimeType.ImageBMP.equals(mimeType)) { res.setFormat("bmp"); } res.setImage(image); return res; } return null; }