Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register

Changeset 5291

Show
Ignore:
Timestamp:
08/15/08 20:17:15 (3 months ago)
Author:
bmckown
Message:

amrsreporttools module: Added custom filtering on amrsReportToolsList

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs-modules/amrsreporttools

    • Property svn:ignore set to
      nbproject
      build
      dist
  • openmrs-modules/amrsreporttools/src/org/openmrs/module/amrsreporttools/db/hibernate/HibernateAmrsReportToolsDAO.java

    r5208 r5291  
    2121import org.apache.commons.logging.LogFactory; 
    2222import org.hibernate.Criteria; 
    23 import org.hibernate.Query
     23import org.hibernate.Hibernate
    2424import org.hibernate.SessionFactory; 
    2525import org.hibernate.criterion.Expression; 
     26import org.hibernate.criterion.Order; 
     27import org.hibernate.criterion.Restrictions; 
    2628import org.openmrs.Patient; 
    2729import org.openmrs.PatientIdentifier; 
     
    7375 
    7476    } 
    75      
     77 
     78    /** 
     79     * Get ReportObjects according to type and name prefix. 
     80     * ReportObjectTypes are defined in OpenmrsConstants.REPORT_OBJECT_* 
     81     * 
     82     * @param reportObjectType if not null, then return ReportObjects by type. 
     83     * @param prefix If not null, then return only ReportObjects beginning with prefix. 
     84     * @return 
     85     * @throws org.openmrs.api.db.DAOException 
     86     */ 
    7687    public List<AbstractReportObject> getReportObjectsByType(String reportObjectType, String prefix) throws DAOException { 
    7788        List<AbstractReportObject> reportObjects = new Vector<AbstractReportObject>(); 
    78  
    79         Query query = sessionFactory.getCurrentSession().createQuery("from ReportObjectWrapper ro where ro.type=:type order by date_created, name"); 
    80         query.setString("type", reportObjectType); 
    81         List<ReportObjectWrapper> wrappedObjects = query.list(); 
    82         for ( ReportObjectWrapper wrappedObject : wrappedObjects ) { 
    83             AbstractReportObject reportObject = wrappedObject.getReportObject(); 
    84             if ( reportObject.getReportObjectId() == null ) { 
    85                 reportObject.setReportObjectId(wrappedObject.getReportObjectId()); 
    86             } 
    87             reportObjects.add(reportObject); 
     89        Criteria criteria = sessionFactory.getCurrentSession().createCriteria(ReportObjectWrapper.class); 
     90        if (null != prefix && !"".equals(prefix)) { 
     91            String regex = "^" + prefix; 
     92            criteria.add(Restrictions.sqlRestriction("name regexp ?", regex, Hibernate.STRING)); 
    8893        } 
    89         log.error("Hibernate reportObjects list size: " + reportObjects.size()); 
    90         return reportObjects; 
    91  
    92 /* 
    93         Criteria criteria = sessionFactory.getCurrentSession().createCriteria(ReportObjectWrapper.class, "ro"); 
    94         if (null != reportObjectType || !"".equals(reportObjectType)) { 
    95             criteria.add(Expression.eq("ro.type", reportObjectType)); 
     94        if (null != reportObjectType && !"".equals(reportObjectType)) { 
     95            criteria.add(Expression.eq("type", reportObjectType.trim())); 
    9696        } 
    97         if (null != prefix || !"".equals(prefix)) { 
    98             criteria.add(Expression.ilike("ro.name", prefix, MatchMode.START)); 
    99         } 
    100         criteria.addOrder(Order.desc("ro.dateCreated")); 
    101         criteria.addOrder(Order.asc("ro.name")); 
     97        criteria.addOrder(Order.desc("dateCreated")); 
     98        criteria.addOrder(Order.asc("name")); 
    10299        List<ReportObjectWrapper> wrappedObjects = criteria.list(); 
    103100        for ( ReportObjectWrapper wrappedObject : wrappedObjects ) { 
     
    109106        } 
    110107        return reportObjects; 
    111 */ 
    112108    } 
    113109     
  • openmrs-modules/amrsreporttools/src/org/openmrs/module/amrsreporttools/impl/AmrsReportToolsServiceImpl.java

    r5208 r5291  
    2828import org.openmrs.api.EncounterService; 
    2929import org.openmrs.api.context.Context; 
    30 import org.openmrs.api.db.DAOException; 
    3130import org.openmrs.api.APIException; 
    3231import org.openmrs.module.amrsreporttools.AmrsReportTools; 
     
    3433import org.openmrs.module.amrsreporttools.db.AmrsReportToolsDAO; 
    3534import org.openmrs.reporting.AbstractReportObject; 
     35import org.openmrs.util.OpenmrsConstants; 
    3636 
    3737/** 
     
    109109     
    110110    public List<AbstractReportObject> getReportObjectsByType(String reportObjectType, String prefix) throws APIException { 
     111        reportObjectType = ( 
     112               null != reportObjectType && ( 
     113               reportObjectType.equals(OpenmrsConstants.REPORT_OBJECT_TYPE_PATIENTDATAPRODUCER) || 
     114               reportObjectType.equals(OpenmrsConstants.REPORT_OBJECT_TYPE_PATIENTFILTER) || 
     115               reportObjectType.equals(OpenmrsConstants.REPORT_OBJECT_TYPE_PATIENTSEARCH)) 
     116               ) ? reportObjectType : null; 
    111117        return dao.getReportObjectsByType(reportObjectType, prefix); 
    112118    } 
  • openmrs-modules/amrsreporttools/web/module/amrsReportToolsList.jsp

    r5208 r5291  
    3030                                </td> 
    3131                                <td valign="top">${indicator.name}</td> 
    32                                 <td valign="top">${indicator.description}</td> 
     32                                <td valign="top"> 
     33                  <c:catch var="e"> 
     34                  <c:if test="${indicator.description}">${indicator.description}</c:if> 
     35                  </c:catch> 
     36                  <c:if test="${e==null}">${indicator.description}</c:if> 
     37                  <c:if test="${e!=null}"><font color='red'>EXCEPTION!</font></c:if> 
     38                </td> 
    3339                        </tr> 
    3440                </c:forEach> 
  • openmrs-modules/amrsreporttools/web/src/org/openmrs/module/amrsreporttools/web/controller/AmrsReportToolsListController.java

    r5208 r5291  
    170170         */ 
    171171    protected Object formBackingObject(HttpServletRequest request) throws ServletException { 
     172        String type = request.getParameter("reportObjectType"); 
     173        String prefix = request.getParameter("reportObjectName"); 
    172174        AmrsReportToolsService s = (AmrsReportToolsService)Context.getService(AmrsReportToolsService.class); 
    173         List<AbstractReportObject> ro = s.getReportObjectsByType(OpenmrsConstants.REPORT_OBJECT_TYPE_PATIENTSEARCH, ""); 
    174 //        List<AbstractReportObject> ro = s.getReportObjectsByType(null, null); 
    175         log.error("List of AbstractReportObjects: " + ro.toArray()); 
    176         for (AbstractReportObject o : ro) { 
    177             log.error(o.getName()); 
    178         } 
    179         log.error("size of list of report objects: " + ro.size()); 
     175        List<AbstractReportObject> ro = s.getReportObjectsByType(type, prefix); 
    180176        return ro; 
    181177    } 
    182  
    183  
    184     /** 
    185          * @see org.springframework.web.servlet.mvc.SimpleFormController#referenceData(javax.servlet.http.HttpServletRequest, java.lang.Object, org.springframework.validation.Errors) 
    186          */ 
    187         @Override 
    188         protected Map referenceData(HttpServletRequest request, Object command, Errors errors) throws Exception { 
    189  
    190                 Map<String, Object> map = new HashMap<String, Object>(); 
    191  
    192         AmrsReportToolsService s = (AmrsReportToolsService)Context.getService(AmrsReportToolsService.class); 
    193         List<AbstractReportObject> ro = s.getReportObjectsByType(OpenmrsConstants.REPORT_OBJECT_TYPE_PATIENTSEARCH, ""); 
    194                 map.put("reportObjects", ro); 
    195          
    196                 return map; 
    197         } 
    198      
    199178     
    200179}