Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register

Changeset 2352

Show
Ignore:
Timestamp:
09/26/07 13:29:23 (1 year ago)
Author:
bmckown
Message:

Form2Program Module: Added auto-enroll by encounter type, update-enroll for backward propagation of database, updated interface.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs-modules/form2program/metadata/Form2ProgramMap.hbm.xml

    r2306 r2352  
    1313                </composite-id> 
    1414                 
    15                 <many-to-one name="creator" class="org.openmrs.User" column="creator" not-null="true"/> 
     15                <many-to-one name="creator" class="org.openmrs.User" not-null="true"/> 
    1616                <property name="dateCreated" type="java.util.Date" column="date_created" not-null="true" /> 
    1717                <many-to-one name="changedBy" class="org.openmrs.User" column="changed_by" not-null="true"/> 
    1818                <property name="dateChanged" type="java.util.Date" column="date_changed" not-null="true" /> 
     19                <property name="applied" type="java.lang.Boolean" not-null="true" length="1"/> 
    1920                 
    2021        </class> 
  • openmrs-modules/form2program/metadata/messages.properties

    r2306 r2352  
    11form2program.title=Form2Program 
    22form2program.add=Add Encounter Type to Program 
     3form2program.remove=Remove Encounter Type from Program 
    34form2program.list.title=Encounter Types to Programs 
    45form2program.form.title=Manage Encounter Types to Programs 
     
    910form2program.error.alreadyExists=Encounter Type already enrolls to this Program 
    1011form2program.error.notExists=Encounter Type does not enroll to this Program 
     12form2program.needUpdate=Patients with this encounter type need to be enrolled.  Please 'Update' the database. 
     13form2program.delete.confirm=Delete Encounter Type from Program? 
     14form2program.update.confirm=Update Program enrollment? This might take some time. 
  • openmrs-modules/form2program/metadata/moduleApplicationContext.xml

    r2306 r2352  
    99        <property name="mappings"> 
    1010            <props> 
    11                     <prop key="module/@MODULE_ID@/form2Program.list">form2ProgramList</prop> 
    1211                    <prop key="module/@MODULE_ID@/form2Program.form">form2ProgramForm</prop> 
    1312                        </props> 
     
    4544        <!-- Controllers --> 
    4645         
    47         <bean id="form2ProgramList" class="@MODULE_PACKAGE@.web.controller.Form2ProgramListController"> 
    48                 <property name="commandName"><value>form2program</value></property> 
    49                 <property name="formView"><value>/module/@MODULE_ID@/form2ProgramList</value></property> 
    50                 <property name="successView"><value>form2Program.list</value></property> 
    51         </bean> 
    5246        <bean id="form2ProgramForm" class="@MODULE_PACKAGE@.web.controller.Form2ProgramFormController"> 
    5347                <property name="commandName"><value>form2program</value></property> 
  • openmrs-modules/form2program/metadata/sqldiff.xml

    r2306 r2352  
    2929                                `changed_by` int(11) NOT NULL, 
    3030                                `date_changed` datetime NOT NULL, 
     31                                `applied` tinyint(1) NOT NULL DEFAULT '0', 
    3132                                PRIMARY KEY  (`program`,`encounter_type`), 
    3233                                KEY `encounter_type` (`encounter_type`), 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/Form2ProgramMap.java

    r2306 r2352  
    1010 
    1111 
    12 public class Form2ProgramMap implements java.io.Serializable
     12public class Form2ProgramMap implements java.io.Serializable, Comparable<Form2ProgramMap>
    1313 
    1414        public static final Log log = LogFactory.getLog(Form2ProgramMap.class); 
     
    2222        private User changedBy; 
    2323        private Date dateChanged; 
     24        private Boolean applied = false; 
    2425 
    2526        public Form2ProgramMap( ) { } 
     
    4849                this.dateChanged = dateCreated; 
    4950        } 
    50          
     51 
     52        public Form2ProgramMap(Program program, EncounterType encounterType, Boolean applied, User creator, java.util.Date dateCreated){ 
     53                this.program = program; 
     54                this.encounterType = encounterType; 
     55                this.applied = applied; 
     56                this.creator = creator; 
     57                this.changedBy = creator; 
     58                this.dateCreated = dateCreated; 
     59                this.dateChanged = dateCreated; 
     60        } 
     61                 
    5162        /**  
    5263         * Compares two objects for similarity 
     
    6677                } 
    6778                return false; 
     79        } 
     80         
     81        public int compareTo(Form2ProgramMap f) { 
     82                return (this.encounterType.getName()).compareTo(f.encounterType.getName()); 
    6883        } 
    6984         
     
    127142        } 
    128143         
     144        public void setApplied(Boolean applied) { 
     145                this.applied = applied; 
     146        } 
     147         
     148        public Boolean getApplied( ) { 
     149                return this.applied; 
     150        } 
     151         
     152        public Boolean isApplied( ) { 
     153                return this.applied; 
     154        } 
     155         
    129156} 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/Form2ProgramService.java

    r2306 r2352  
    11package org.openmrs.module.form2program; 
    22 
     3import java.util.Date; 
    34import java.util.List; 
    45 
     
    67import org.openmrs.Patient; 
    78import org.openmrs.Program; 
     9import org.openmrs.User; 
    810import org.openmrs.module.form2program.db.Form2ProgramDAO; 
    911import org.springframework.transaction.annotation.Transactional; 
     
    3739        public void setPatientProgram(Patient patient); 
    3840         
     41        public int applyForm2ProgramMap(Program program, User user, Date day); 
     42         
     43        public int applyForm2ProgramMap(Program program, EncounterType encounterType, User user, Date day); 
     44         
     45        public List<Program> getPrograms( ); 
     46         
     47        public List<EncounterType> getEncounterTypes(Program program); 
     48         
     49        public boolean isApplied(Program program, EncounterType encounterType); 
     50         
     51         
    3952} 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/advice/EncounterCreatedAfterAdvice.java

    r2306 r2352  
    3131         
    3232        public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable { 
    33                 log.error("Method: " + method.getName() + ". After advice called " + (++count) + " time(s) now."); 
     33                // log.debug("Method: " + method.getName() + ". After advice called " + (++count) + " time(s) now."); 
    3434                if (method.getName().endsWith("encounterCreated")) { 
    35                         log.error("METHOD: " + method.getName()); 
    36                         log.error("PARAMETER_TYPE: " + method.getParameterTypes().getClass().getName().toString()); 
    37                         //log.error("RETURN: " + returnValue.toString()); 
     35                        //log.debug("METHOD: " + method.getName()); 
     36                        //log.debug("PARAMETER_TYPE: " + method.getParameterTypes().getClass().getName().toString()); 
     37                        //log.debug("RETURN: " + returnValue.toString()); 
    3838                        for (int i = 0; i < args.length; i++) { 
    39                                 log.error("ARGS[" + i + "]: " + args[i].toString()); 
     39                                //log.debug("ARGS[" + i + "]: " + args[i].toString()); 
    4040                        } 
     41                        Form2ProgramService f2pService = this.getForm2ProgramService(); 
    4142                        //log.error("TARGET: " + target.toString()); 
    4243                        java.util.Date today = new java.util.Date(); 
     
    4849                        for (Form2ProgramMap fpm : form2ProgramMaps) { 
    4950                                // TODO: Check HibernateProgramWorkflowDAO fromDate and toDate to make sure they are not reversed. 
    50                                 if (!this.getProgramWorkflowService().isInProgram(patient, fpm.getProgram(), today, null)) { 
    51                                         this.getProgramWorkflowService().enrollPatientInProgram(patient, fpm.getProgram(), today, null); 
     51                                if (f2pService.existsForm2ProgramMap(fpm.getProgram(), encounterType)) 
     52                                        if (!this.getProgramWorkflowService().isInProgram(patient, fpm.getProgram(), today, null)) { 
     53                                                this.getProgramWorkflowService().enrollPatientInProgram(patient, fpm.getProgram(), today, null); 
    5254                                } 
    5355                        } 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/db/Form2ProgramDAO.java

    r2306 r2352  
    11package org.openmrs.module.form2program.db; 
    22 
     3import java.util.Date; 
    34import java.util.List; 
    45 
     
    67import org.openmrs.EncounterType; 
    78import org.openmrs.Program; 
     9import org.openmrs.User; 
    810import org.openmrs.module.form2program.Form2ProgramMap; 
    911 
     
    2729        public List<Form2ProgramMap> getForm2ProgramMap(Program program, EncounterType encounterType); 
    2830         
     31        public int applyForm2ProgramMap(Program program, User user, Date day); 
     32         
     33        public int applyForm2ProgramMap(Program program, EncounterType encounterType, User user, Date day); 
     34 
     35        public boolean isApplied(Program program, EncounterType encounterType); 
     36 
     37        public List<Program> getPrograms( ); 
     38         
     39        public List<EncounterType> getEncounterTypes(Program program); 
    2940} 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/db/hibernate/HibernateForm2ProgramDAO.java

    r2306 r2352  
    11package org.openmrs.module.form2program.db.hibernate; 
    22 
     3import java.text.DateFormat; 
     4import java.text.SimpleDateFormat; 
    35import java.util.ArrayList; 
    46import java.util.List; 
     
    79import org.apache.commons.logging.LogFactory; 
    810import org.hibernate.Criteria; 
     11import org.hibernate.Query; 
    912import org.hibernate.SessionFactory; 
    1013import org.hibernate.criterion.Expression; 
    1114import org.hibernate.criterion.Order; 
     15import org.hibernate.criterion.Projections; 
    1216import org.openmrs.EncounterType; 
    1317import org.openmrs.Program; 
     18import org.openmrs.User; 
    1419import org.openmrs.module.form2program.Form2ProgramMap; 
    1520import org.openmrs.module.form2program.db.Form2ProgramDAO; 
     
    1823 
    1924        protected final Log log = LogFactory.getLog(getClass()); 
     25        private DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
    2026         
    2127        /** 
     
    5258        public List<Form2ProgramMap> getForm2ProgramMaps( ) { 
    5359                Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class, "f"); 
    54 //              criteria.createAlias("encounterType", "e"); 
    5560                criteria.addOrder(Order.asc("f.program")); 
    5661                criteria.addOrder(Order.asc("f.encounterType")); 
    57 //              criteria.addOrder(Order.asc("e.name")); 
    58                 List<Form2ProgramMap> form2programs = new ArrayList<Form2ProgramMap>(); 
    59                 form2programs.addAll(criteria.list()); 
    60                 return form2programs; 
     62                return (List<Form2ProgramMap>)criteria.list(); 
    6163        } 
    6264         
    6365        public List<Form2ProgramMap> getForm2ProgramMaps(Program program) { 
    6466                Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class, "f"); 
    65 //              criteria.createAlias("enocunterType", "e"); 
    66                 criteria.add(Expression.eq("f.program", program.getProgramId())); 
     67//              criteria.createAlias("encounterType", "e"); 
     68                criteria.add(Expression.eq("f.program", program)); 
    6769                criteria.addOrder(Order.asc("f.encounterType")); 
    6870                List<Form2ProgramMap> form2programs = new ArrayList<Form2ProgramMap>(); 
     
    7072                return form2programs;    
    7173        } 
     74         
     75        public List<Program> getPrograms( ) { 
     76                Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class); 
     77                criteria.setProjection(Projections.distinct(Projections.property("program"))); 
     78                return (List<Program>)criteria.list();           
     79        } 
     80         
     81        public List<EncounterType> getEncounterTypes(Program program) { 
     82                Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class); 
     83                criteria.add(Expression.eq("program", program)); 
     84                criteria.addOrder(Order.asc("encounterType")); 
     85                return (List<EncounterType>)criteria.list(); 
     86        } 
    7287 
    7388        public List<Form2ProgramMap> getForm2ProgramMaps(EncounterType encounterType) { 
    7489                Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class); 
    75                 criteria.add(Expression.eq("encounterType", encounterType.getEncounterTypeId())); 
     90                criteria.add(Expression.eq("encounterType", encounterType)); 
    7691                criteria.addOrder(Order.asc("program")); 
    7792                List<Form2ProgramMap> form2programs = new ArrayList<Form2ProgramMap>(); 
     
    8095        } 
    8196         
     97        public boolean isApplied(Program program, EncounterType encounterType) { 
     98                Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class); 
     99                criteria.add(Expression.eq("program", program)); 
     100                if (encounterType != null) 
     101                        criteria.add(Expression.eq("encounterType", encounterType)); 
     102                criteria.add(Expression.ne("applied", true)); 
     103                // the following code throws a Hibernate exception 
     104                // return !criteria.list().isEmpty(); 
     105                // so do this instead 
     106                List<Form2ProgramMap> ret = criteria.list(); 
     107                if (ret == null) 
     108                        return false; 
     109                return ret.isEmpty(); 
     110        } 
     111         
     112        /* (non-Javadoc) 
     113         * @see org.openmrs.module.form2program.db.Form2ProgramDAO#getForm2ProgramMap(org.openmrs.Program, org.openmrs.EncounterType) 
     114         */ 
    82115        public List<Form2ProgramMap> getForm2ProgramMap(Program program, EncounterType encounterType) { 
    83116                Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Form2ProgramMap.class); 
    84                 criteria.add(Expression.eq("program", program.getProgramId())); 
    85                 criteria.add(Expression.eq("encounterType", encounterType.getEncounterTypeId())); 
    86                 List<Form2ProgramMap> form2programs = new ArrayList<Form2ProgramMap>(); 
    87                 form2programs.addAll(criteria.list()); 
    88                 return form2programs;    
     117                criteria.add(Expression.eq("program", program)); 
     118                criteria.add(Expression.eq("encounterType", encounterType)); 
     119                criteria.addOrder(Order.asc("encounterType")); 
     120                return criteria.list(); 
     121        } 
     122         
     123        /* 
     124         * Apply Form2ProgramMap to patients that are already in the database who have not yet been enrolled in the program. 
     125         * This applies to all org.openmrs.EncounterType that are mapped to the @param program. 
     126         * (non-Javadoc) 
     127         * @see org.openmrs.module.form2program.db.Form2ProgramDAO#applyForm2ProgramMap(org.openmrs.Program, org.openmrs.User, java.util.Date) 
     128         */ 
     129        public int applyForm2ProgramMap(Program program, User user, java.util.Date day) { 
     130                String query = "INSERT INTO patient_program " + 
     131                        "(patient_id, program_id, date_enrolled, creator, date_created, changed_by, date_changed) " + 
     132                        "SELECT DISTINCT encounter.patient_id, " + program.getProgramId() + ", encounter.date_created, " + program.getProgramId() + 
     133                        ", '" + df.format(day) + "', " + user.getUserId() + ", '" + df.format(day) + "' FROM encounter WHERE encounter.encounter_type in  " + 
     134                        "(select form2program_map.encounter_type from form2program_map where form2program_map.program = " + program.getProgramId() +  
     135                        ") AND encounter.patient_id not in (select patient_id from patient_program where patient_program.program_id = " + program.getProgramId() + 
     136                        " and patient_program.date_completed is null ) GROUP BY encounter.patient_id ORDER BY encounter.date_created ASC"; 
     137 
     138                int rows = 0; 
     139                try { 
     140                        rows = this.sessionFactory.getCurrentSession().connection().prepareStatement(query).executeUpdate(); 
     141                        if (rows > 0) { 
     142                                String applied = "UPDATE form2program_map set applied = true where program = " + program.getProgramId().toString(); 
     143                                this.sessionFactory.getCurrentSession().connection().prepareStatement(applied).executeUpdate(); 
     144                        } 
     145                } 
     146                catch (Exception e){ 
     147                        log.error(e.getMessage()); 
     148                } 
     149                return rows; 
    89150        } 
    90151 
     152        /* 
     153         * Apply Form2ProgramMap to patients that are already in the database who have not yet been enrolled in the program. 
     154         * This applies only to the @param org.openmrs.EncounterType that is mapped to the @param Program. 
     155         * (non-Javadoc) 
     156         * @see org.openmrs.module.form2program.db.Form2ProgramDAO#applyForm2ProgramMap(org.openmrs.Program, org.openmrs.EncounterType, org.openmrs.User, java.util.Date) 
     157         */ 
     158        public int applyForm2ProgramMap(Program program, EncounterType encounterType, User user, java.util.Date day) { 
     159                String query = "INSERT INTO patient_program " + 
     160                "(patient_id, program_id, date_enrolled, creator, date_created, changed_by, date_changed) " + 
     161                "SELECT DISTINCT encounter.patient_id, " + program.getProgramId() + ", encounter.date_created, " + program.getProgramId() + 
     162                ", '" + df.format(day) + "', " + user.getUserId() + ", '" + df.format(day) + "' FROM encounter WHERE encounter.encounter_type = " + encounterType.getEncounterTypeId() +  
     163                " AND encounter.patient_id not in (select patient_id from patient_program where patient_program.program_id = " + program.getProgramId() + 
     164                " and patient_program.date_completed is null ) GROUP BY encounter.patient_id ORDER BY encounter.date_created ASC"; 
     165 
     166        int rows = 0; 
     167        try { 
     168                rows = this.sessionFactory.getCurrentSession().connection().prepareStatement(query).executeUpdate(); 
     169                if (rows > 0) { 
     170                        String applied = "UPDATE form2program_map set applied = true where program = " + program.getProgramId().toString(); 
     171                        this.sessionFactory.getCurrentSession().connection().prepareStatement(applied).executeUpdate(); 
     172                } 
     173        } 
     174        catch (Exception e){ 
     175                log.error(e.getMessage()); 
     176        } 
     177        return rows; 
     178        } 
     179                 
    91180} 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/extension/html/AdminList.java

    r2306 r2352  
    2121                Map<String, String> map = new LinkedHashMap<String, String>(); 
    2222 
    23                 map.put("module/form2program/form2Program.list", "form2program.form2ProgramList"); 
    24                 map.put("module/form2program/form2Program.form", "form2program.form2ProgramForm"); 
     23                map.put("module/form2program/form2Program.form", "form2program.form.title"); 
    2524                 
    2625                return map; 
  • openmrs-modules/form2program/src/org/openmrs/module/form2program/impl/Form2ProgramServiceImpl.java

    r2306 r2352  
    22 
    33 
    4 import java.util.ArrayList
     4import java.util.Date
    55import java.util.List; 
    66 
     
    1010import org.openmrs.Patient; 
    1111import org.openmrs.Program; 
     12import org.openmrs.User; 
    1213import org.openmrs.api.ProgramWorkflowService; 
    1314import org.openmrs.api.context.Context; 
     
    8586        } 
    8687 
     88        public int applyForm2ProgramMap(Program program, User user, Date day) { 
     89                int rows = dao.applyForm2ProgramMap(program, user, day); 
     90                return rows; 
     91        } 
     92 
     93        public int applyForm2ProgramMap(Program program, EncounterType encounterType, User user, Date day) { 
     94                int rows = dao.applyForm2ProgramMap(program, encounterType, user, day); 
     95                return rows; 
     96        } 
    8797         
     98        public List<Program> getPrograms( ) { 
     99                List<Program> programs = dao.getPrograms(); 
     100                return programs; 
     101        } 
     102         
     103        public List<EncounterType> getEncounterTypes(Program program) { 
     104                List<EncounterType> encounterTypes = dao.getEncounterTypes(program); 
     105                return encounterTypes; 
     106        } 
     107         
     108        public boolean isApplied(Program program, EncounterType encounterType) { 
     109                return dao.isApplied(program, encounterType); 
     110        } 
    88111} 
  • openmrs-modules/form2program/web/module/form2ProgramForm.jsp

    r2306 r2352  
    55<%@ include file="/WEB-INF/template/header.jsp" %> 
    66<%@ include file="/WEB-INF/view/admin/programs/localHeader.jsp" %> 
     7<style type="text/css"> 
     8ul.petStyle { 
     9        text-decoration: none;                           
     10        display: block;                          
     11} 
     12 
     13ul.petStyle li { 
     14        display: block;                          
     15        text-decoration: none;                           
     16} 
     17 
     18</style> 
    719 
    820<h2><spring:message code="form2program.form.title"/></h2> 
    921 
    10 <a href="form2Program.form"><spring:message code="form2program.add"/></a
     22<br /
    1123 
    12 <br /><br /> 
    13  
    14 <b class="boxHeader"><spring:message code="form2program.list.title"/></b> 
    15 <form method="post" action="" name="${pageContext.request.contextPath}/moduleServlet/clinicalsummary/generate"> 
     24<b class="boxHeader"><spring:message code="form2program.form.title"/></b> 
     25<form method="post" action="" name="f2pFormManage" > 
    1626<div class="box"> 
    1727        <c:if test="${fn:length(form2program) == 0}"> 
     
    2131        </c:if> 
    2232        <c:if test="${fn:length(form2program) != 0}"> 
     33                <input type="hidden" name="programAction" id="programAction" value=""/> 
     34                <input type="hidden" name="encounterTypeAction" id="encounterTypeAction" value=""/> 
     35                <c:set var="needUpdate" value='false'/> 
    2336                <table cellspacing="0" cellpadding="2"> 
    2437                        <tr> 
    25                                 <th> <spring:message code="general.id"/> </th> 
     38                                <th> <spring:message code="Program.program"/> </th> 
     39                                <th> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<spring:message code="Encounter.type"/> </th> 
     40                                <th></th> 
     41                        </tr> 
     42                        <c:forEach var="pet" items="${programMap}" varStatus="pVarStat"> 
     43                        <tr> 
     44                                <td valign=top> 
     45                                        <table> 
     46                                                        <tr>     
     47                                                                <td> 
     48                                                                        <b>${pet.key.programId}</b>&nbsp;&nbsp;${pet.key.concept.name} 
     49                                                                <td> 
     50                                                        </tr> 
     51                                                        <tr>     
     52                                                                <td>  
     53                                                                <c:forEach var="pa" items="${programApplied}" varStatus="aVarStat"> 
     54                                                                <c:if test="${pa.key.programId == pet.key.programId}"> 
     55                                                                <c:if test="${pa.value == 'false'}"> 
     56                                                                <input type="submit" id="${pet.key.programId}" name="update" value="Update" onclick="setForm2ProgramMap('${pet.key.programId}',null)"/> 
     57                                                                </c:if> 
     58                                                                </c:if> 
     59                                                                </c:forEach> 
     60                                                                <td> 
     61                                                        </tr> 
     62                                        </table> 
     63                                </td> 
     64                                <td valign=top> 
     65                                        <c:forEach var="petVal" items="${pet.value}" varStatus="eVarStat"> 
     66                                        <table><tr><td> 
     67                                        <input type="submit" value="X" id="${pet.key.programId}.{petVal.encounterType.name}" name="delete" class="closeButton" onclick="remove('${pet.key.programId}','${petVal.encounterType.encounterTypeId}')" /> 
     68                                        </td><td> 
     69                                        &nbsp;&nbsp;${petVal.encounterType.name} 
     70                                        <c:if test="${petVal.applied == 'false'}"><sup>*</sup><c:set var="needUpdate" value='true'/></c:if> 
     71                                        </td></tr></table> 
     72                                </c:forEach> 
     73                                </td> 
     74                        </tr> 
     75                        <tr><td></td></tr> 
     76                        <tr><td> 
     77                        </td></tr> 
     78                        </c:forEach> 
     79                        <tr><td></td><td> 
     80                                        <c:if test="${needUpdate}"><sup>*</sup><spring:message code="form2program.needUpdate"/></c:if> 
     81                        </td></tr> 
     82                </table> 
     83        </c:if> 
     84</div> 
     85</form> 
     86<br/> 
     87<form method="post" action="" name="f2pFormSubmit" > 
     88<b class="boxHeader"><spring:message code="form2program.add"/></b> 
     89        <div class=box> 
     90                <table>  
     91                                <th> <spring:message code="Program.program"/> </th> 
    2692                                <th> <spring:message code="Encounter.type"/> </th> 
    2793                                <th></th> 
    2894                                <th></th> 
    29                                 <th> <spring:message code="general.id"/> </th> 
    30                                 <th> <spring:message code="Program.program"/> </th> 
    31                         </tr> 
    32                         <c:forEach var="form2program" items="${form2program}"> 
    33                                 <tr>  
    34                                         <td valign="top"> 
    35                                                 <a href="program.form?programId=${form2program.encounterType.name}"> 
    36                                                 ${form2program.encounterType.encounterTypeId} 
    37                                                 </a> 
    38                                         </td> 
    39                                         <td valign="top"> 
    40                                                 <a href="program.form?programId=${form2program.encounterType.name}"> 
    41                                                 ${form2program.encounterType.name} 
    42                                                 </a> 
    43                                         </td> 
    44                                         <td></td> 
    45                                         <td> 
    46                                                 <spring:message code="form2program.enroll.current"/>  
    47                                         </td>    
    48                                         <openmrs:concept conceptId="${form2program.program.concept.conceptId}" var="v" nameVar="n" numericVar="num"> 
    49                                                 <td valign="top"> 
    50                                                         <a href="openmrs.admin.program.form?programId=${form2program.program.programId}"> 
    51                                                         ${form2program.program.programId}  
    52                                                         </a> 
    53                                                 </td> 
    54                                                 <td valign="top"> 
    55                                                         <a href="program.form?programId=${form2program.encounterType.encounterTypeId}"> 
    56                                                         ${n.name} 
    57                                                         </a> 
    58                                                 </td> 
    59                                         </openmrs:concept> 
    60                                 </tr> 
    61                         </c:forEach> 
    62                 </table> 
    63         </c:if> 
    64                 <table>  
    6595                <tr> 
    6696                </tr> 
    6797                <tr> 
    6898                        <td> 
     99                                <select name="selectProgramId"> 
     100                                        <option value=""></option> 
     101                                        <openmrs:forEachRecord name="workflowProgram"> 
     102                                                <option value="${record.programId}">${record.concept.name}</option> 
     103                                        </openmrs:forEachRecord> 
     104                                </select> 
    69105                        </td> 
    70106                        <td> 
     
    76112                                </select> 
    77113                        </td> 
    78                                         <td></td>        
    79                                         <td> 
    80                                                 <spring:message code="form2program.enroll.encounterType"/>  
    81                                         </td>    
    82                                         <td></td>        
    83114                        <td> 
    84                                 <select name="selectProgramId"> 
    85                                         <option value=""></option> 
    86                                         <openmrs:forEachRecord name="workflowProgram"> 
    87                                                 <option value="${record.programId}">${record.concept.name}</option> 
    88                                         </openmrs:forEachRecord> 
    89                                 </select> 
    90115                        </td> 
    91116                        <td> 
    92                                 <spring:message code="form2program.enroll.program"/>     
     117                                <input type="submit" id="addAction" name="action" value="<spring:message code='form2program.add'/>" /> 
    93118                        </td> 
    94119                        <td> 
    95                                 <input type="submit" id="action" value="<spring:message code='form2program.add'/>"/> 
    96120                        </td> 
    97121                </tr> 
    98                </table> 
     122        </table> 
    99123</div> 
    100124</form> 
    101125 
     126 
     127<script type="text/javascript"> 
     128 
     129        function remove(p,e) { 
     130                var prog = document.getElementById("programAction"); 
     131                var enct = document.getElementById("encounterTypeAction"); 
     132                var confirmation = "<spring:message code='form2program.delete.confirm'/>"; 
     133                if (confirm(confirmation)) {  
     134                        prog.value = p; 
     135                        enct.value = e; 
     136                        form.submit(); 
     137                } 
     138                else { 
     139                        prog.value = -1; 
     140                        enct.value = -1; 
     141                } 
     142        } 
     143 
     144        function setForm2ProgramMap(p,e) { 
     145                var prog = document.getElementById("programAction"); 
     146                var enct = document.getElementById("encounterTypeAction"); 
     147                prog.value = p; 
     148                enct.value = e; 
     149                form.submit(); 
     150        } 
     151 
     152</script> 
    102153<%@ include file="/WEB-INF/template/footer.jsp" %> 
  • openmrs-modules/form2program/web/src/org/openmrs/module/form2program/web/controller/Form2ProgramFormController.java

    r2306 r2352  
    22 
    33import java.util.ArrayList; 
     4import java.util.Collections; 
    45import java.util.Date; 
    56import java.util.HashMap; 
     7import java.util.LinkedHashMap; 
    68import java.util.List; 
    79import java.util.Map; 
     
    6769        HttpSession httpSession = req.getSession(); 
    6870                MessageSourceAccessor msa = getMessageSourceAccessor(); 
    69  
    70 //              String action = req.getParameter("action"); 
    71 //              if (!action.equals(msa.getMessage("form2program.add"))) { 
    72 //              return new ModelAndView(new RedirectView(getSuccessView())); 
    73 //                       
    74 //              } 
    75         Form2Progr