Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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;
      }
    }
Ejemplo n.º 3
0
    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;
    }