From: <gun...@us...> - 2007-12-13 12:28:56
|
Revision: 5608 http://dcm4che.svn.sourceforge.net/dcm4che/?rev=5608&view=rev Author: gunterze Date: 2007-12-13 04:28:48 -0800 (Thu, 13 Dec 2007) Log Message: ----------- pretty format Modified Paths: -------------- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/common/WADORequestObject.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/mbean/WADOSupport.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/BasicRequestObjectImpl.java dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/WADORequestObjectImpl.java Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/common/WADORequestObject.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/common/WADORequestObject.java 2007-12-13 12:16:30 UTC (rev 5607) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/common/WADORequestObject.java 2007-12-13 12:28:48 UTC (rev 5608) @@ -43,99 +43,100 @@ /** * @author franz.willer - * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates + * + * TODO To change the template for this generated type comment go to Window - + * Preferences - Java - Code Style - Code Templates */ public interface WADORequestObject extends BasicRequestObject { - public static final int OK = 0; - public static final int EXTENDED_WADO_URL = 1; - - public static final int INVALID_WADO_URL = -1; - public static final int INVALID_ROWS = -2; - public static final int INVALID_COLUMNS = -3; - public static final int INVALID_FRAME_NUMBER = -4; - public static final int INVALID_CONTENT_TYPE = -5; - public static final int INVALID_TRANSFER_SYNTAX = -6; - public static final int INVALID_REGION = -7; - public static final int INVALID_WINDOW_LEVEL = -8; - public static final int INVALID_IMAGE_QUALITY = -9; - - /** - * Returns the studyUID parameter of the http request. - * - * @return studyUID - */ - String getStudyUID(); - - /** - * Returns the seriesUID parameter of the http request. - * - * @return seriesUID - */ - String getSeriesUID(); - - /** - * Returns the objectUID parameter of the http request. - * - * @return objectUID - */ - String getObjectUID(); - - /** - * Returns the rows parameter of the http request. - * - * @return rows - */ - String getRows(); - - /** - * Returns the columns parameter of the http request. - * - * @return columns - */ - String getColumns(); - - /** - * Returns the frameNumber parameter of the http request. - * - * @return frame number as String - */ - String getFrameNumber(); - - /** - * Returns a list of content types as defined via the contentType http param. - * - * @return requestType - */ - List getContentTypes(); + public static final int OK = 0; + public static final int EXTENDED_WADO_URL = 1; - /** - * Returns the transferSyntax parameter of the http request. - * - * @return transferSyntax - */ - String getTransferSyntax(); - - /** - * @return Returns the region. - */ - String getRegion(); - - /** - * @return Returns the value of the windowWidth parameter. - */ - String getWindowWidth(); - - /** - * @return Returns the value of the windowCenter parameter. - */ - String getWindowCenter(); - - /** - * @return Returns the value of the imageQuality parameter. - */ - String getImageQuality(); - + public static final int INVALID_WADO_URL = -1; + public static final int INVALID_ROWS = -2; + public static final int INVALID_COLUMNS = -3; + public static final int INVALID_FRAME_NUMBER = -4; + public static final int INVALID_CONTENT_TYPE = -5; + public static final int INVALID_TRANSFER_SYNTAX = -6; + public static final int INVALID_REGION = -7; + public static final int INVALID_WINDOW_LEVEL = -8; + public static final int INVALID_IMAGE_QUALITY = -9; + + /** + * Returns the studyUID parameter of the http request. + * + * @return studyUID + */ + String getStudyUID(); + + /** + * Returns the seriesUID parameter of the http request. + * + * @return seriesUID + */ + String getSeriesUID(); + + /** + * Returns the objectUID parameter of the http request. + * + * @return objectUID + */ + String getObjectUID(); + + /** + * Returns the rows parameter of the http request. + * + * @return rows + */ + String getRows(); + + /** + * Returns the columns parameter of the http request. + * + * @return columns + */ + String getColumns(); + + /** + * Returns the frameNumber parameter of the http request. + * + * @return frame number as String + */ + String getFrameNumber(); + + /** + * Returns a list of content types as defined via the contentType http + * param. + * + * @return requestType + */ + List getContentTypes(); + + /** + * Returns the transferSyntax parameter of the http request. + * + * @return transferSyntax + */ + String getTransferSyntax(); + + /** + * @return Returns the region. + */ + String getRegion(); + + /** + * @return Returns the value of the windowWidth parameter. + */ + String getWindowWidth(); + + /** + * @return Returns the value of the windowCenter parameter. + */ + String getWindowCenter(); + + /** + * @return Returns the value of the imageQuality parameter. + */ + String getImageQuality(); + } Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/mbean/WADOSupport.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/mbean/WADOSupport.java 2007-12-13 12:16:30 UTC (rev 5607) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/mbean/WADOSupport.java 2007-12-13 12:28:48 UTC (rev 5608) @@ -134,7 +134,7 @@ public static final String CONTENT_TYPE_PLAIN = "text/plain"; private static final String SUBJECT_CONTEXT_KEY = "javax.security.auth.Subject.container"; - + private static Logger log = Logger.getLogger(WADOService.class.getName()); private static final AuditLoggerFactory alf = AuditLoggerFactory @@ -212,19 +212,20 @@ * </DL> * * @param req - * The WADO request object. + * The WADO request object. * * @return The WADO response object. - * @throws PolicyContextException + * @throws PolicyContextException */ - public WADOResponseObject getWADOObject(WADORequestObject req) throws Exception { + public WADOResponseObject getWADOObject(WADORequestObject req) + throws Exception { log.info("Get WADO object for " + req.getObjectUID()); Dataset objectDs = null; QueryCmd cmd = null; - if ( ! hasPermission(req) ) { + if (!hasPermission(req)) { return new WADOStreamResponseObjectImpl(null, CONTENT_TYPE_HTML, HttpServletResponse.SC_UNAUTHORIZED, - "Permission denied for:"+req.getObjectUID()); + "Permission denied for:" + req.getObjectUID()); } try { Dataset dsQ = dof.newDataset(); @@ -240,13 +241,15 @@ log.error("Cant get DICOM Object file reference for " + req.getObjectUID(), x); } finally { - if ( cmd != null ) cmd.close(); + if (cmd != null) + cmd.close(); } - log.debug("Found object:" + req.getObjectUID()+":");log.debug(objectDs); + log.debug("Found object:" + req.getObjectUID() + ":"); + log.debug(objectDs); if (objectDs == null) { return new WADOStreamResponseObjectImpl(null, CONTENT_TYPE_HTML, HttpServletResponse.SC_NOT_FOUND, - "DICOM object not found! objectUID:"+req.getObjectUID()); + "DICOM object not found! objectUID:" + req.getObjectUID()); } String contentType = getPrefContentType(req, objectDs); log.debug("preferred ContentType:" + contentType); @@ -255,8 +258,8 @@ return this.handleJpg(req); } else if (CONTENT_TYPE_DICOM.equals(contentType)) { return handleDicom(req); // audit log is done in handleDicom to - // avoid extra query. - } + // avoid extra query. + } File file = null; try { file = this.getDICOMFile(req.getStudyUID(), req.getSeriesUID(), req @@ -264,8 +267,8 @@ if (file == null) { if (log.isDebugEnabled()) log.debug("Dicom object not found: " + req); - return new WADOStreamResponseObjectImpl(null, - contentType, HttpServletResponse.SC_NOT_FOUND, + return new WADOStreamResponseObjectImpl(null, contentType, + HttpServletResponse.SC_NOT_FOUND, "DICOM object not found!"); } } catch (IOException x) { @@ -277,10 +280,9 @@ if (!WADOCacheImpl.getWADOCache().isClientRedirect()) { return getRemoteDICOMFile(nre.getHostname(), req); } else { - return new WADOStreamResponseObjectImpl(null, - contentType, + return new WADOStreamResponseObjectImpl(null, contentType, HttpServletResponse.SC_TEMPORARY_REDIRECT, - getRedirectURL(nre.getHostname(), req).toString()); + getRedirectURL(nre.getHostname(), req).toString()); } } if (CONTENT_TYPE_DICOM_XML.equals(contentType)) { @@ -290,8 +292,8 @@ resp = handleTextTransform(req, file, contentTypeDicomXML, getDicomXslURL(), dict); } else if (CONTENT_TYPE_HTML.equals(contentType)) { - resp = handleTextTransform(req, file, contentType, - getHtmlXslURL(), null); + resp = handleTextTransform(req, file, contentType, getHtmlXslURL(), + null); } else if (CONTENT_TYPE_XHTML.equals(contentType)) { resp = handleTextTransform(req, file, contentType, getXHtmlXslURL(), null); @@ -310,13 +312,15 @@ return resp; } - private boolean hasPermission(WADORequestObject req) - throws PolicyContextException, RemoteException, Exception { - if ( req.getRemoteUser() == null ) //not authorized -> all permitted - return true; - Subject subject = (Subject) PolicyContext.getContext(SUBJECT_CONTEXT_KEY); - return getStudyPermissionManager().hasPermission(req.getStudyUID(), StudyPermissionDTO.READ_ACTION, subject); - } + private boolean hasPermission(WADORequestObject req) + throws PolicyContextException, RemoteException, Exception { + if (req.getRemoteUser() == null) // not authorized -> all permitted + return true; + Subject subject = (Subject) PolicyContext + .getContext(SUBJECT_CONTEXT_KEY); + return getStudyPermissionManager().hasPermission(req.getStudyUID(), + StudyPermissionDTO.READ_ACTION, subject); + } /** * @param contentTypes @@ -333,11 +337,11 @@ return supportedContentTypes.get(0).toString(); } contentTypes.retainAll(supportedContentTypes);// remove all - // unsupported content - // types + // unsupported content + // types if (!contentTypes.isEmpty()) { return contentTypes.get(0).toString(); // return the first item - // (the most accurate) + // (the most accurate) } else { return null; } @@ -390,12 +394,12 @@ CONTENT_TYPE_DICOM, HttpServletResponse.SC_TEMPORARY_REDIRECT, getRedirectURL(nre.getHostname(), req).toString()); // error - // message - // is - // set - // to - // redirect - // host! + // message + // is + // set + // to + // redirect + // host! } } if ("true".equals(req.getRequest().getParameter("useOrig"))) { @@ -458,11 +462,10 @@ ds = (FileDataSource) server.invoke(fileSystemMgtName, "getDatasourceOfInstance", new Object[] { iuid }, new String[] { String.class.getName() }); - Dataset d = ((FileDataSource) ds).getMergeAttrs(); + Dataset d = ds.getMergeAttrs(); if (req.getRequestParams().containsKey("privateTags")) { - ((FileDataSource) ds).setExcludePrivate("no" - .equalsIgnoreCase(((String[]) req.getRequestParams() - .get("privateTags"))[0])); + ds.setExcludePrivate("no".equalsIgnoreCase(((String[]) req + .getRequestParams().get("privateTags"))[0])); } WADODatasourceResponseObjectImpl resp = new WADODatasourceResponseObjectImpl( ds, transferSyntax, CONTENT_TYPE_DICOM, @@ -475,7 +478,6 @@ HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unexpected error! Cant get updated dicom object"); } - } /** @@ -483,11 +485,13 @@ * @return */ protected Dataset getPatientInfo(WADORequestObject req) { - log.debug("Get patient info from database for WADO request:"+req); + log.debug("Get patient info from database for WADO request:" + req); try { - return this.getContentManager().getInstanceInfo(req.getObjectUID(), false); + return this.getContentManager().getInstanceInfo(req.getObjectUID(), + false); } catch (Exception e) { - log.error("Cant get Patient/Study info for "+req.getObjectUID(),e); + log.error("Cant get Patient/Study info for " + req.getObjectUID(), + e); return dof.newDataset(); } } @@ -500,15 +504,15 @@ * <p> * * @param studyUID - * The unique id of a study. + * The unique id of a study. * @param seriesUID - * The unique id of a series. + * The unique id of a series. * @param instanceUID - * The unique id of an instance. + * The unique id of an instance. * @param rows - * The number of pixel rows (integer String) + * The number of pixel rows (integer String) * @param columns - * the number of pixel columns (integer String) + * the number of pixel columns (integer String) * * @return The WADO response object containing the file of the image. */ @@ -526,7 +530,8 @@ try { File file = getJpg(studyUID, seriesUID, instanceUID, rows, columns, - frameNumber, region, windowWidth, windowCenter, imageQuality); + frameNumber, region, windowWidth, windowCenter, + imageQuality); if (file != null) { WADOStreamResponseObjectImpl resp = new WADOStreamResponseObjectImpl( new FileInputStream(file), CONTENT_TYPE_JPEG, @@ -546,12 +551,12 @@ CONTENT_TYPE_JPEG, HttpServletResponse.SC_TEMPORARY_REDIRECT, getRedirectURL(nre.getHostname(), req).toString()); // error - // message - // is - // set - // to - // redirect - // host! + // message + // is + // set + // to + // redirect + // host! } } catch (NoImageException x1) { return new WADOStreamResponseObjectImpl(null, CONTENT_TYPE_JPEG, @@ -578,14 +583,14 @@ * @param columns * @param frameNumber * @param region - * String representing a rectangular region of the image + * String representing a rectangular region of the image * @param windowWidth - * Decimal string indicating the contrast of the image. + * Decimal string indicating the contrast of the image. * @param windowCenter - * Decimal string indicating the luminosity of the image. + * Decimal string indicating the luminosity of the image. * @param readDicom - * Used to indicate if the image is read from the dicom file for - * this request. + * Used to indicate if the image is read from the dicom file + * for this request. * @return * @throws IOException * @throws NeedRedirectionException @@ -626,7 +631,10 @@ rows, columns, region, windowWidth, windowCenter, imageQuality, suffix); } catch (Exception x) { - log.error("Error caching image file! Return image without caching!", x); + log + .error( + "Error caching image file! Return image without caching!", + x); throw new ImageCachingException(bi); } } else { @@ -639,8 +647,7 @@ /* _ */ private WADOResponseObject handleTextTransform(WADORequestObject req, - File file, String contentType, String xslURL, - TagDictionary dict) { + File file, String contentType, String xslURL, TagDictionary dict) { try { DataInputStream in = new DataInputStream(new BufferedInputStream( new FileInputStream(file))); @@ -650,7 +657,8 @@ parser.parseDcmFile(null, Tags.PixelData); Dataset dsCoerce = null; if (!"true".equals(req.getRequest().getParameter("useOrig"))) { - dsCoerce = this.getContentManager().getInstanceInfo( req.getObjectUID(), true ); + dsCoerce = this.getContentManager().getInstanceInfo( + req.getObjectUID(), true); ds.putAll(dsCoerce); } if (log.isDebugEnabled()) { @@ -682,7 +690,7 @@ /** * @param htmlXslURL - * The htmlXslURL to set. + * The htmlXslURL to set. */ public void setHtmlXslURL(String htmlXslURL) { this.htmlXslURL = htmlXslURL; @@ -697,7 +705,7 @@ /** * @param htmlXslURL - * The htmlXslURL to set. + * The htmlXslURL to set. */ public void setXHtmlXslURL(String xslURL) { this.xhtmlXslURL = xslURL; @@ -712,7 +720,7 @@ /** * @param xmlXslURL - * The xmlXslURL to set. + * The xmlXslURL to set. */ public void setXmlXslURL(String xmlXslURL) { this.xmlXslURL = xmlXslURL; @@ -727,7 +735,7 @@ /** * @param dicomXslURL - * the dicomXslURL to set + * the dicomXslURL to set */ public void setDicomXslURL(String dicomXslURL) { this.dicomXslURL = dicomXslURL; @@ -742,7 +750,7 @@ /** * @param contentTypeDicomXML - * the contentTypeDicomXML to set + * the contentTypeDicomXML to set */ public void setContentTypeDicomXML(String contentTypeDicomXML) { this.contentTypeDicomXML = contentTypeDicomXML; @@ -776,11 +784,11 @@ * Use the FileSystemMgtService MBean to localize the DICOM file. * * @param studyUID - * Unique identifier of the study. + * Unique identifier of the study. * @param seriesUID - * Unique identifier of the series. + * Unique identifier of the series. * @param instanceUID - * Unique identifier of the instance. + * Unique identifier of the instance. * * @return The File object or null if not found. * @@ -795,7 +803,7 @@ .getName() }); } catch (Exception e) { - log.error("Failed to get DICOM file:"+instanceUID, e); + log.error("Failed to get DICOM file:" + instanceUID, e); } if (dicomObject == null) return null; // not found! @@ -845,13 +853,13 @@ * Tries to get the DICOM file from an external WADO service. * * @param hostname - * Hostname of remote WADO service. + * Hostname of remote WADO service. * @param studyUID - * Unique identifier of the study. + * Unique identifier of the study. * @param seriesUID - * Unique identifier of the series. + * Unique identifier of the series. * @param instanceUID - * Unique identifier of the instance. + * Unique identifier of the instance. * * @return The File object or null if not found. */ @@ -898,8 +906,7 @@ req.getStudyUID(), req.getSeriesUID(), req.getObjectUID(), req.getRows(), req.getColumns(), req.getRegion(), req.getWindowWidth(), - req.getWindowCenter(), req.getImageQuality(), - suffix); + req.getWindowCenter(), req.getImageQuality(), suffix); is = new FileInputStream(file); } return new WADOStreamResponseObjectImpl(is, conn.getContentType(), @@ -907,13 +914,15 @@ } catch (Exception e) { log.error("Can't connect to remote WADO service:" + url, e); e.printStackTrace(); - return new WADOStreamResponseObjectImpl(null, CONTENT_TYPE_JPEG, + return new WADOStreamResponseObjectImpl( + null, + CONTENT_TYPE_JPEG, HttpServletResponse.SC_NOT_FOUND, - "Redirect to find requested object failed! (Can't connect to remote WADO service:"+url+")!"); + "Redirect to find requested object failed! (Can't connect to remote WADO service:" + + url + ")!"); } } - /** * Get the image from DICOM file. * <p> @@ -921,18 +930,18 @@ * scaled. * * @param file - * A DICOM file. + * A DICOM file. * @param frame * @param rows - * Image height in pixel. + * Image height in pixel. * @param columns - * Image width in pixel. + * Image width in pixel. * @param region - * String representing a rectangular region of the image + * String representing a rectangular region of the image * @param windowWidth - * Decimal string representing the contrast of the image. + * Decimal string representing the contrast of the image. * @param windowCenter - * Decimal string representing the luminosity of the image. + * Decimal string representing the luminosity of the image. * * @return * @throws IOException @@ -994,11 +1003,11 @@ * Resize the given image. * * @param bi - * The image as BufferedImage. + * The image as BufferedImage. * @param rows - * Image height in pixel. + * Image height in pixel. * @param columns - * Image width in pixel. + * Image width in pixel. * * @return */ @@ -1039,7 +1048,7 @@ * This bean is used to retrieve the DICOM object. * * @param fileSystemMgtName - * The fileSystemMgtName to set. + * The fileSystemMgtName to set. */ public void setFileSystemMgtName(ObjectName fileSystemMgtName) { this.fileSystemMgtName = fileSystemMgtName; @@ -1062,7 +1071,7 @@ * This bean is used to create Audit Logs. * * @param name - * The Audit Logger Name to set. + * The Audit Logger Name to set. */ public void setAuditLoggerName(ObjectName name) { this.auditLogName = name; @@ -1095,7 +1104,7 @@ * <code>null</code> means 'ALL' * * @param disabledLogHosts - * The disabledLogHosts to set. + * The disabledLogHosts to set. */ public void setDisabledAuditLogHosts(Set disabledLogHosts) { this.disabledAuditLogHosts = disabledLogHosts; @@ -1114,7 +1123,7 @@ /** * @param disableDNS - * the disableDNS to set + * the disableDNS to set */ public void setDisableDNS(boolean disableDNS) { this.disableDNS = disableDNS; @@ -1129,7 +1138,7 @@ /** * @param useTransferSyntaxOfFileAsDefault - * The useTransferSyntaxOfFileAsDefault to set. + * The useTransferSyntaxOfFileAsDefault to set. */ public void setUseTransferSyntaxOfFileAsDefault( boolean useTransferSyntaxOfFileAsDefault) { @@ -1145,7 +1154,7 @@ /** * @param extendedWADOAllowed - * The extendedWADOAllowed to set. + * The extendedWADOAllowed to set. */ public void setExtendedWADOAllowed(boolean extendedWADOAllowed) { this.extendedWADOAllowed = extendedWADOAllowed; @@ -1160,7 +1169,7 @@ /** * @param extendedWADORequestType - * The extendedWADORequestType to set. + * The extendedWADORequestType to set. */ public void setExtendedWADORequestType(String extendedWADORequestType) { this.extendedWADORequestType = extendedWADORequestType; @@ -1177,7 +1186,7 @@ /** * @param sopCuids - * The sopCuids to set. + * The sopCuids to set. */ public void setTextSopCuids(Map sopCuids) { if (sopCuids != null && !sopCuids.isEmpty()) @@ -1208,11 +1217,12 @@ if (!isAuditLogIHEYr4()) return; Dataset ds = resp.getPatInfo(); - Patient patient = alf.newPatient(ds.getString(Tags.PatientID), - ds.getString(Tags.PatientName)); - String remoteHost = disableDNS ? req.getRemoteAddr() : - req.getRemoteHost(); - RemoteNode rnode = alf.newRemoteNode(req.getRemoteAddr(), remoteHost, null); + Patient patient = alf.newPatient(ds.getString(Tags.PatientID), ds + .getString(Tags.PatientName)); + String remoteHost = disableDNS ? req.getRemoteAddr() : req + .getRemoteHost(); + RemoteNode rnode = alf.newRemoteNode(req.getRemoteAddr(), remoteHost, + null); String suid = ds.getString(Tags.StudyInstanceUID); try { server.invoke(auditLogName, "logInstancesSent", new Object[] { @@ -1244,18 +1254,18 @@ } private ContentManager getContentManager() throws Exception { - ContentManagerHome home = (ContentManagerHome) EJBHomeFactory.getFactory() - .lookup(ContentManagerHome.class, ContentManagerHome.JNDI_NAME); + ContentManagerHome home = (ContentManagerHome) EJBHomeFactory + .getFactory().lookup(ContentManagerHome.class, + ContentManagerHome.JNDI_NAME); return home.create(); } - + private StudyPermissionManager getStudyPermissionManager() throws Exception { - StudyPermissionManagerHome home = (StudyPermissionManagerHome) EJBHomeFactory.getFactory().lookup( - StudyPermissionManagerHome.class, - StudyPermissionManagerHome.JNDI_NAME); - return home.create(); + StudyPermissionManagerHome home = (StudyPermissionManagerHome) EJBHomeFactory + .getFactory().lookup(StudyPermissionManagerHome.class, + StudyPermissionManagerHome.JNDI_NAME); + return home.create(); } - /** * Inner exception class to handle WADO redirection. @@ -1277,7 +1287,7 @@ * Creates a NeedRedirectionException instance. * * @param hostname - * the target of redirection. + * the target of redirection. */ public NeedRedirectionException(String hostname) { this.hostname = hostname; Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/BasicRequestObjectImpl.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/BasicRequestObjectImpl.java 2007-12-13 12:16:30 UTC (rev 5607) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/BasicRequestObjectImpl.java 2007-12-13 12:28:48 UTC (rev 5608) @@ -55,154 +55,165 @@ /** * @author franz.willer - * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates + * + * TODO To change the template for this generated type comment go to Window - + * Preferences - Java - Code Style - Code Templates */ public abstract class BasicRequestObjectImpl implements BasicRequestObject { - private static Logger log = Logger.getLogger( WADOService.class.getName() ); + private static Logger log = Logger.getLogger(WADOService.class.getName()); - private String reqType; - private Map headerMap; - private Map paramMap; - private List allowedContentTypes = null; + private String reqType; + private Map headerMap; + private Map paramMap; + private List allowedContentTypes = null; - private String reqURL; - private String errMsg; - - private String remoteAddr; - private String remoteHost = null; + private String reqURL; + private String errMsg; + + private String remoteAddr; + private String remoteHost = null; private String remoteUser; private HttpServletRequest request; - /** - * Initialize an RequestObject with http request. - * <p> - * This constructor should be used by the real implementations. - * - * @param request The http request. - */ - public BasicRequestObjectImpl( HttpServletRequest request ) { - this.request = request; - reqType = request.getParameter( "requestType" ); - if ( reqType == null) reqType = request.getParameter("RT"); - paramMap = request.getParameterMap(); - try { - reqURL = request.getRequestURL().append("?").append(request.getQueryString()).toString(); - } catch ( Exception x ) { + /** + * Initialize an RequestObject with http request. + * <p> + * This constructor should be used by the real implementations. + * + * @param request + * The http request. + */ + public BasicRequestObjectImpl(HttpServletRequest request) { + this.request = request; + reqType = request.getParameter("requestType"); + if (reqType == null) + reqType = request.getParameter("RT"); + paramMap = request.getParameterMap(); + try { + reqURL = request.getRequestURL().append("?").append( + request.getQueryString()).toString(); + } catch (Exception x) { - } - headerMap = new HashMap(); - Enumeration enum1 = request.getHeaderNames(); - String key; - while ( enum1.hasMoreElements() ) { - key = (String) enum1.nextElement(); - if ( log.isDebugEnabled() ) log.debug("header: "+key+"="+request.getHeader(key) ); - headerMap.put( key, request.getHeader(key) ); - } - setAllowedContentTypes( request.getHeader("accept") ); - this.remoteAddr = request.getRemoteAddr(); + } + headerMap = new HashMap(); + Enumeration enum1 = request.getHeaderNames(); + String key; + while (enum1.hasMoreElements()) { + key = (String) enum1.nextElement(); + if (log.isDebugEnabled()) + log.debug("header: " + key + "=" + request.getHeader(key)); + headerMap.put(key, request.getHeader(key)); + } + setAllowedContentTypes(request.getHeader("accept")); + this.remoteAddr = request.getRemoteAddr(); remoteUser = request.getRemoteUser(); - } - - public final HttpServletRequest getRequest() { - return request; + } + + public final HttpServletRequest getRequest() { + return request; + } + + /** + * @param accept + */ + private void setAllowedContentTypes(String accept) { + List l = null; + String s; + if (accept != null) { + l = new ArrayList(); + StringTokenizer st = new StringTokenizer(accept, ","); + while (st.hasMoreElements()) { + s = st.nextToken(); + if (s.indexOf(";") != -1) + s = s.substring(0, s.indexOf(";"));// ignore quality value + l.add(s.trim()); + } } - - /** - * @param accept - */ - private void setAllowedContentTypes(String accept ) { - List l = null; - String s; - if ( accept != null) { - l = new ArrayList(); - StringTokenizer st = new StringTokenizer( accept, ","); - while ( st.hasMoreElements() ) { - s = st.nextToken(); - if ( s.indexOf(";") != -1 ) s = s.substring( 0, s.indexOf(";") );//ignore quality value - l.add( s.trim() ); - } - } - allowedContentTypes = l; - } + allowedContentTypes = l; + } - /** - * Returns the requestType parameter of the http request. - * - * @return requestType - */ - public String getRequestType() { - return reqType; - } + /** + * Returns the requestType parameter of the http request. + * + * @return requestType + */ + public String getRequestType() { + return reqType; + } + /* + * (non-Javadoc) + * + * @see org.dcm4chex.wado.common.RIDRequestObject#getAllowedContentTypes() + */ + public List getAllowedContentTypes() { + return this.allowedContentTypes; + } - /* (non-Javadoc) - * @see org.dcm4chex.wado.common.RIDRequestObject#getAllowedContentTypes() - */ - public List getAllowedContentTypes() { - return this.allowedContentTypes; - } + /** + * Returns all parameter of the http request in a map. + * + * @return All http parameter + */ + public Map getRequestParams() { + return paramMap; + } - /** - * Returns all parameter of the http request in a map. - * - * @return All http parameter - */ - public Map getRequestParams() { - return paramMap; - } + /** + * Returns a Map of all request header fields of the http request. + * + * @see org.dcm4chex.wado.common.WADORequestObject#getRequestHeaders() + * + * @return All request header fields in a map. + */ + public Map getRequestHeaders() { + return headerMap; + } - /** - * Returns a Map of all request header fields of the http request. - * - * @see org.dcm4chex.wado.common.WADORequestObject#getRequestHeaders() - * - * @return All request header fields in a map. - */ - public Map getRequestHeaders() { - return headerMap; - } - + public String getRequestURL() { + return reqURL; - public String getRequestURL() { - return reqURL; - - } - /** - * @return Returns the errMsg. - */ - public String getErrorMsg() { - return errMsg; - } - /** - * @param errMsg The errMsg to set. - */ - protected void setErrorMsg(String errMsg) { - this.errMsg = errMsg; - } - /** - * @return Returns the remoteAddr. - */ - public String getRemoteAddr() { - return remoteAddr; - } - /** - * @return Returns the remoteHost. - */ - public String getRemoteHost() { - if ( remoteHost == null ) { + } + + /** + * @return Returns the errMsg. + */ + public String getErrorMsg() { + return errMsg; + } + + /** + * @param errMsg + * The errMsg to set. + */ + protected void setErrorMsg(String errMsg) { + this.errMsg = errMsg; + } + + /** + * @return Returns the remoteAddr. + */ + public String getRemoteAddr() { + return remoteAddr; + } + + /** + * @return Returns the remoteHost. + */ + public String getRemoteHost() { + if (remoteHost == null) { try { InetAddress ia = InetAddress.getByName(remoteAddr); remoteHost = ia.getHostName(); - } catch ( Exception ignore ) {} + } catch (Exception ignore) { + } } - return remoteHost; - } - + return remoteHost; + } + public String getRemoteUser() { return remoteUser; } - + } Modified: dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/WADORequestObjectImpl.java =================================================================== --- dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/WADORequestObjectImpl.java 2007-12-13 12:16:30 UTC (rev 5607) +++ dcm4chee/dcm4chee-arc/trunk/dcm4jboss-wado/src/java/org/dcm4chex/wado/web/WADORequestObjectImpl.java 2007-12-13 12:28:48 UTC (rev 5608) @@ -59,36 +59,26 @@ public class WADORequestObjectImpl extends BasicRequestObjectImpl implements WADORequestObject { - private static final String ERROR_INVALID_REGION_FORMAT = - "Error: region parameter is invalid! Must be a comma separated list of 4 decimal strings."; + private static final String ERROR_INVALID_REGION_FORMAT = "Error: region parameter is invalid! Must be a comma separated list of 4 decimal strings."; - private static final String ERROR_INVALID_REGION_OUT_OF_RANGE = - "Error: region parameter is invalid! Coordinates must be in range [0..1]."; + private static final String ERROR_INVALID_REGION_OUT_OF_RANGE = "Error: region parameter is invalid! Coordinates must be in range [0..1]."; - private static final String ERROR_INVALID_REGION_DIMENSION = - "Error: region parameter is invalid! Width and height of specified region must be > 0."; + private static final String ERROR_INVALID_REGION_DIMENSION = "Error: region parameter is invalid! Width and height of specified region must be > 0."; - private static final String ERROR_NULL_WINDOW_WIDTH = - "Error: windowWidth parameter is invalid! Must specify a value."; + private static final String ERROR_NULL_WINDOW_WIDTH = "Error: windowWidth parameter is invalid! Must specify a value."; - private static final String ERROR_NULL_WINDOW_CENTER = - "Error: windowCenter parameter is invalid! Must specify a value."; + private static final String ERROR_NULL_WINDOW_CENTER = "Error: windowCenter parameter is invalid! Must specify a value."; - private static final String ERROR_INVALID_WINDOW_WIDTH_TYPE = - "Error: windowWidth parameter is invalid! Must be a decimal string."; + private static final String ERROR_INVALID_WINDOW_WIDTH_TYPE = "Error: windowWidth parameter is invalid! Must be a decimal string."; - private static final String ERROR_INVALID_WINDOW_CENTER_TYPE = - "Error: windowCenter parameter is invalid! Must be a decimal string."; + private static final String ERROR_INVALID_WINDOW_CENTER_TYPE = "Error: windowCenter parameter is invalid! Must be a decimal string."; - private static final String ERROR_INVALID_WINDOW_WIDTH_VALUE = - "Error: windowWidth parameter is invalid! Width must be > 0."; + private static final String ERROR_INVALID_WINDOW_WIDTH_VALUE = "Error: windowWidth parameter is invalid! Width must be > 0."; - private static final String ERROR_INVALID_IMAGE_QUALITY_TYPE = - "Error: imageQuality parameter is invalid! Must be a integer string."; + private static final String ERROR_INVALID_IMAGE_QUALITY_TYPE = "Error: imageQuality parameter is invalid! Must be a integer string."; - private static final String ERROR_INVALID_IMAGE_QUALITY_VALUE = - "Error: imageQuality parameter is invalid! Quality must be in range [1..100]."; - + private static final String ERROR_INVALID_IMAGE_QUALITY_VALUE = "Error: imageQuality parameter is invalid! Quality must be in range [1..100]."; + private String studyUID; private String seriesUID; @@ -117,7 +107,7 @@ * Creates a WADORequestObjectImpl instance configured with http request. * * @param request - * The http request. + * The http request. */ public WADORequestObjectImpl(HttpServletRequest request) { super(request); @@ -255,7 +245,7 @@ public String getImageQuality() { return imageQuality; } - + /** * Checks this request object and returns an error code. * <p> @@ -319,10 +309,10 @@ } } - if ( imageQuality != null) { + if (imageQuality != null) { try { checkImageQuality(imageQuality); - } catch ( IllegalArgumentException e ) { + } catch (IllegalArgumentException e) { setErrorMsg(e.getMessage()); return INVALID_IMAGE_QUALITY; } @@ -337,7 +327,7 @@ * <code>IllegalArgumentException</code> if it isn't. * * @param region - * String representing a rectangular region of an image + * String representing a rectangular region of an image * * @return void * @@ -369,9 +359,9 @@ * <code>IllegalArgumentException</code> if either isn't. * * @param windowWidth - * The value of the windowWidth WADO parameter + * The value of the windowWidth WADO parameter * @param windowCenter - * The value of the windowCenter WADO parameter + * The value of the windowCenter WADO parameter * * @return void * @@ -407,25 +397,24 @@ int quality = -1; try { - quality = Integer.parseInt( imageQuality ); - } catch ( NumberFormatException e ) { - throw new IllegalArgumentException( - ERROR_INVALID_IMAGE_QUALITY_TYPE); + quality = Integer.parseInt(imageQuality); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(ERROR_INVALID_IMAGE_QUALITY_TYPE); } - if ( quality <= 0 || quality > 100) + if (quality <= 0 || quality > 100) throw new IllegalArgumentException( ERROR_INVALID_IMAGE_QUALITY_VALUE); } - + /** * Seperate the given String with delim character and return a List of the * items. * * @param s - * String with one or more items seperated with a character. + * String with one or more items seperated with a character. * @param delim - * The delimiter charecter. + * The delimiter charecter. * @return A List with the seperated items */ private List _string2List(String s, String delim) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |