← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 7879: Manual SMS Reminder in patient module.

 

------------------------------------------------------------
revno: 7879
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2012-08-09 15:57:01 +0700
message:
  Manual SMS Reminder in patient module.
added:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetGetwayListAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsListAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SendSmsAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/new_sms.gif
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/sms_list.gif
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/smsReminder.js
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/sendSMSForm.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsMenu.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsPatientRecords.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderList.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderSelect.vm
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsService.java
  dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml
  dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsServiceImpl.java
  dhis-2/dhis-web/dhis-web-caseentry/pom.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/menu.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java	2012-07-10 06:06:52 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstance.java	2012-08-09 08:57:01 +0000
@@ -28,8 +28,10 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.sms.outbound.OutboundSms;
 
 /**
  * @author Abyot Asalefew
@@ -63,6 +65,8 @@
     private OrganisationUnit organisationUnit;
 
     private boolean completed = false;
+    
+    private List<OutboundSms> outboundSms;
 
     // -------------------------------------------------------------------------
     // Constructors
@@ -246,4 +250,14 @@
     {
         this.organisationUnit = organisationUnit;
     }
+
+    public List<OutboundSms> getOutboundSms()
+    {
+        return outboundSms;
+    }
+
+    public void setOutboundSms( List<OutboundSms> outboundSms )
+    {
+        this.outboundSms = outboundSms;
+    }
 }

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsService.java	2012-06-04 06:37:01 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsService.java	2012-08-09 08:57:01 +0000
@@ -52,5 +52,6 @@
         throws SmsServiceException;
     
     List<OutboundSms> getAllOutboundSms();
-
+    
+    OutboundSms getOutboundSms( int id );
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml'
--- dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml	2012-07-10 06:06:52 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/org/hisp/dhis/program/hibernate/ProgramStageInstance.hbm.xml	2012-08-09 08:57:01 +0000
@@ -27,5 +27,11 @@
     <many-to-one name="organisationUnit" class="org.hisp.dhis.organisationunit.OrganisationUnit"
         column="organisationunitid" foreign-key="fk_programstageinstance_organisationunitid" />
     
+    <list name="outboundSms" table="programstageinstance_outboundsms">
+      <key column="programstageinstanceid" />
+      <list-index column="sort_order" base="1" />
+      <many-to-many class="org.hisp.dhis.sms.outbound.OutboundSms" column="outboundsmsid" />
+    </list>
+    
   </class>
 </hibernate-mapping>

=== modified file 'dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsServiceImpl.java'
--- dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsServiceImpl.java	2012-06-04 06:37:01 +0000
+++ dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsServiceImpl.java	2012-08-09 08:57:01 +0000
@@ -118,6 +118,12 @@
         return outboundSmsStore.getAll();
     }
 
+    @Override
+    public OutboundSms getOutboundSms( int id )
+    {
+        return outboundSmsStore.get( id );
+    }
+    
     // -------------------------------------------------------------------------
     // Support methods
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/pom.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/pom.xml	2012-08-03 11:05:49 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/pom.xml	2012-08-09 08:57:01 +0000
@@ -46,7 +46,11 @@
     <dependency>
       <groupId>org.hisp.dhis</groupId>
       <artifactId>dhis-service-patient</artifactId>
-    </dependency>   
+    </dependency>
+	<dependency>
+      <groupId>org.hisp.dhis</groupId>
+      <artifactId>dhis-service-sms</artifactId>
+    </dependency>
     
   </dependencies>
   <properties>

=== added directory 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder'
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetGetwayListAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetGetwayListAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetGetwayListAction.java	2012-08-09 08:57:01 +0000
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2004-2009, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis.caseentry.action.reminder;
+
+import java.util.Map;
+
+import org.hisp.dhis.sms.outbound.OutboundSmsTransportService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * 
+ * @version GetGetwayListAction.java 1:50:25 PM Aug 9, 2012 $
+ */
+public class GetGetwayListAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    @Autowired
+    private OutboundSmsTransportService transportService;
+
+    // -------------------------------------------------------------------------
+    // Output
+    // -------------------------------------------------------------------------
+
+    public Map<String, String> gatewayMap;
+
+    public Map<String, String> getGatewayMap()
+    {
+        return gatewayMap;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    public String execute()
+        throws Exception
+    {
+        gatewayMap = transportService.getGatewayMap();
+
+        return SUCCESS;
+    }
+
+}

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsAction.java	2012-08-09 08:57:01 +0000
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2004-2009, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis.caseentry.action.reminder;
+
+import org.hisp.dhis.sms.outbound.OutboundSms;
+import org.hisp.dhis.sms.outbound.OutboundSmsService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * 
+ * @version GetOutboundSmsAction.java 11:11:26 AM Aug 9, 2012 $
+ */
+public class GetOutboundSmsAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependency
+    // -------------------------------------------------------------------------
+
+    private OutboundSmsService outboundSmsService;
+
+    public void setOutboundSmsService( OutboundSmsService outboundSmsService )
+    {
+        this.outboundSmsService = outboundSmsService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input & Output
+    // -------------------------------------------------------------------------
+
+    private Integer outboundSmsId;
+
+    public void setOutboundSmsId( Integer outboundSmsId )
+    {
+        this.outboundSmsId = outboundSmsId;
+    }
+
+    private OutboundSms outboundSms;
+
+    public OutboundSms getOutboundSms()
+    {
+        return outboundSms;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action Implementation
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        outboundSms = outboundSmsService.getOutboundSms( outboundSmsId );
+        
+        return SUCCESS;
+    }
+
+}

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsListAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsListAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/GetOutboundSmsListAction.java	2012-08-09 08:57:01 +0000
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2004-2009, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis.caseentry.action.reminder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hisp.dhis.program.ProgramStageInstance;
+import org.hisp.dhis.program.ProgramStageInstanceService;
+import org.hisp.dhis.sms.outbound.OutboundSms;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * 
+ * @version GetOutboundSmsListAction.java 10:57:08 AM Aug 9, 2012 $
+ */
+public class GetOutboundSmsListAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private ProgramStageInstanceService programStageInstanceService;
+
+    // -------------------------------------------------------------------------
+    // Input/Output
+    // -------------------------------------------------------------------------
+
+    private Integer programStageInstanceId;
+    
+    private ProgramStageInstance programStageInstance;
+    
+    private List<OutboundSms> outboundSms;
+
+    // -------------------------------------------------------------------------
+    // Getter/Setter
+    // -------------------------------------------------------------------------
+
+    public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService )
+    {
+        this.programStageInstanceService = programStageInstanceService;
+    }
+
+    public ProgramStageInstance getProgramStageInstance()
+    {
+        return programStageInstance;
+    }
+
+    public void setProgramStageInstanceId( Integer programStageInstanceId )
+    {
+        this.programStageInstanceId = programStageInstanceId;
+    }
+
+    public List<OutboundSms> getOutboundSms()
+    {
+        return outboundSms;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        programStageInstance = programStageInstanceService
+            .getProgramStageInstance( programStageInstanceId );
+        
+        outboundSms = new ArrayList<OutboundSms>( programStageInstance.getOutboundSms() );
+
+        return SUCCESS;
+    }
+
+}

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SendSmsAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SendSmsAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/reminder/SendSmsAction.java	2012-08-09 08:57:01 +0000
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2004-2009, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis.caseentry.action.reminder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hisp.dhis.i18n.I18n;
+import org.hisp.dhis.program.ProgramStageInstance;
+import org.hisp.dhis.program.ProgramStageInstanceService;
+import org.hisp.dhis.sms.SmsServiceException;
+import org.hisp.dhis.sms.outbound.OutboundSms;
+import org.hisp.dhis.sms.outbound.OutboundSmsService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * 
+ * @version SendSmsAction.java 11:17:37 AM Aug 9, 2012 $
+ */
+public class SendSmsAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private OutboundSmsService outboundSmsService;
+
+    public void setOutboundSmsService( OutboundSmsService outboundSmsService )
+    {
+        this.outboundSmsService = outboundSmsService;
+    }
+
+    private ProgramStageInstanceService programStageInstanceService;
+
+    public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService )
+    {
+        this.programStageInstanceService = programStageInstanceService;
+    }
+
+    private I18n i18n;
+
+    public void setI18n( I18n i18n )
+    {
+        this.i18n = i18n;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input & Output
+    // -------------------------------------------------------------------------
+
+    private Integer programStageInstanceId;
+
+    public void setProgramStageInstanceId( Integer programStageInstanceId )
+    {
+        this.programStageInstanceId = programStageInstanceId;
+    }
+
+    private String gatewayId;
+
+    public void setGatewayId( String gatewayId )
+    {
+        this.gatewayId = gatewayId;
+    }
+
+    private String msg;
+
+    public void setMsg( String msg )
+    {
+        this.msg = msg;
+    }
+
+    private String message = "";
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action Implementation
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        ProgramStageInstance programStageInstance = programStageInstanceService
+            .getProgramStageInstance( programStageInstanceId );
+
+        String phoneNumber = programStageInstance.getProgramInstance().getPatient().getPhoneNumber();
+
+        if ( phoneNumber != null && !phoneNumber.isEmpty() )
+        {
+            try
+            {
+                OutboundSms outboundSms = new OutboundSms( msg, phoneNumber );
+                outboundSmsService.sendMessage( outboundSms, gatewayId );
+                
+                List<OutboundSms> outboundSmsList = programStageInstance.getOutboundSms();
+                if( outboundSmsList == null)
+                {
+                    outboundSmsList = new ArrayList<OutboundSms>();
+                }
+                outboundSmsList.add( outboundSms );
+                programStageInstance.setOutboundSms( outboundSmsList );
+                programStageInstanceService.updateProgramStageInstance( programStageInstance );
+                
+                message = i18n.getString( "sent_message_to" ) + " " + phoneNumber;
+            }
+            catch ( SmsServiceException e )
+            {
+                message = e.getMessage();
+            }
+        }
+        else
+        {
+            message = i18n.getString( "patient_did_not_register_a_phone_number" );
+        }
+        return SUCCESS;
+    }
+
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-08-07 10:05:02 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-08-09 08:57:01 +0000
@@ -968,5 +968,33 @@
 		<property name="tabularReportService"
 			ref="org.hisp.dhis.patientreport.PatientTabularReportService" />
 	</bean>
+	
+	<!-- SMS Reminder -->
+	
+	<bean id="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsAction"
+		class="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsAction"
+		scope="prototype">
+		<property name="outboundSmsService"
+			ref="org.hisp.dhis.sms.outbound.OutboundSmsService" />
+	</bean>
+	
+	<bean id="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsListAction"
+		class="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsListAction"
+		scope="prototype">
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+	
+	<bean id="org.hisp.dhis.caseentry.action.reminder.GetGetwayListAction"
+		class="org.hisp.dhis.caseentry.action.reminder.GetGetwayListAction" scope="prototype" />
+	
+	<bean id="org.hisp.dhis.caseentry.action.reminder.SendSmsAction"
+		class="org.hisp.dhis.caseentry.action.reminder.SendSmsAction"
+		scope="prototype">
+		<property name="outboundSmsService"
+			ref="org.hisp.dhis.sms.outbound.OutboundSmsService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
 
 </beans>

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2012-08-07 05:43:56 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2012-08-09 08:57:01 +0000
@@ -387,4 +387,19 @@
 please_select_a_patient_for_setting_relationship = Please select a person for setting relationship
 report_date_from_to=Report date (from-to)
 enter_age_in_years = Enter age in years
-add_and_continue = Add and continue
\ No newline at end of file
+add_and_continue = Add and continue
+sms = SMS
+sms_reminder = SMS Reminder
+patient_did_not_register_a_phone_number = The patient did not register a phone number
+sms_message_management = SMS message management
+date = Date
+sms_message_details = SMS message details
+message = Message
+sent_message_to = Sent message to
+send_sms = Send SMS
+gateway_type = Gateway type
+bulk_gw=BulkSMS Gateway
+clickatell_gw=Clickatell Gateway
+generic_http_gw=Generic HTTP Gateway
+modem_gw=Modem Gateway
+messages = messages
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-08-07 05:43:56 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-08-09 08:57:01 +0000
@@ -787,5 +787,58 @@
 			<param name="page">/dhis-web-caseentry/programStageDataEntryForm.vm</param>
 		</action>
 		
+		<!-- SMS Reminder -->
+
+		<action name="smsReminderSelect"
+			class="org.hisp.dhis.caseentry.action.caseentry.MultiDataEntrySelectAction">
+			<interceptor-ref name="organisationUnitTreeStack" />
+			<result name="success" type="velocity">/main.vm</result>
+			<param name="page">/dhis-web-caseentry/smsReminderSelect.vm</param>
+			<param name="menu">/dhis-web-caseentry/smsMenu.vm</param>
+			<param name="stylesheets">style/style.css</param>
+			<param name="javascripts">../dhis-web-commons/ouwt/ouwt.js,javascript/commons.js,javascript/smsReminder.js</param>			
+			<param name="requiredAuthorities">F_SMS_REMINDER</param>
+		</action>
+		
+		<action name="getSMSPatientRecords"
+			class="org.hisp.dhis.caseentry.action.caseentry.GetDataRecordsAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/smsPatientRecords.vm</param>
+			<param name="stylesheets">style/style.css</param>
+		</action>
+		
+		<action name="getOutboundSms"
+			class="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/jsonSmsReminder.vm</param>
+			<param name="stylesheets">style/style.css</param>
+		</action>
+		
+		<action name="getOutboundSmsList"
+			class="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsListAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/smsReminderList.vm</param>
+			<param name="stylesheets">style/style.css</param>
+		</action>
+		
+		<action name="getOutboundSmsList"
+			class="org.hisp.dhis.caseentry.action.reminder.GetOutboundSmsListAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/smsReminderList.vm</param>
+			<param name="stylesheets">style/style.css</param>
+		</action>
+		
+		<action name="showSendSMSForm" class="org.hisp.dhis.caseentry.action.reminder.GetGetwayListAction">
+	     <result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/sendSMSForm.vm</param>
+			<param name="stylesheets">style/style.css</param>
+	    </action>
+	    
+	    <action name="sendSMS" class="org.hisp.dhis.caseentry.action.reminder.SendSmsAction">
+	      <result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+	      <result name="error" type="velocity-json">/dhis-web-commons/ajax/jsonResponseError.vm</result>
+	      <param name="onExceptionReturn">plainTextError</param>
+	    </action>
+		
 	</package>
 </struts>

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/new_sms.gif'
Binary files dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/new_sms.gif	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/new_sms.gif	2012-08-09 08:57:01 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/sms_list.gif'
Binary files dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/sms_list.gif	1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/images/sms_list.gif	2012-08-09 08:57:01 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/smsReminder.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/smsReminder.js	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/smsReminder.js	2012-08-09 08:57:01 +0000
@@ -0,0 +1,122 @@
+
+function orgunitSelected( orgUnits, orgUnitNames )
+{
+	hideById("listPatientDiv");
+	clearListById('programIdAddPatient');
+	$('#contentDataRecord').html('');
+	jQuery.get("getPrograms.action",{}, 
+		function(json)
+		{
+			jQuery( '#programIdAddPatient').append( '<option value="">' + i18n_please_select + '</option>' );
+			for ( i in json.programs ) {
+				if(json.programs[i].type==1){
+					jQuery( '#programIdAddPatient').append( '<option value="' + json.programs[i].id +'" type="' + json.programs[i].type + '">' + json.programs[i].name + '</option>' );
+				}
+			}
+			enableBtn();
+		});
+}
+
+selection.setListenerFunction( orgunitSelected );
+
+function listAllPatient()
+{
+	hideById('listPatientDiv');
+	contentDiv = 'listPatientDiv';
+	$('#contentDataRecord').html('');
+	showLoader();
+	jQuery('#listPatientDiv').load('getSMSPatientRecords.action',
+		{
+			programId:getFieldValue('programIdAddPatient'),
+			listAll:true
+		}, 
+		function()
+		{
+			showById('colorHelpLink');
+			showById('listPatientDiv');
+			hideLoader();
+		});
+}
+
+function advancedSearch( params )
+{
+	$('#contentDataRecord').html('');
+	params += "&searchTexts=prg_" + getFieldValue('programIdAddPatient');
+	params += "&programId=" + getFieldValue('programIdAddPatient');
+	$.ajax({
+		url: 'getSMSPatientRecords.action',
+		type:"POST",
+		data: params,
+		success: function( html ){
+			jQuery('#listPatientDiv').html(html);
+			showById('colorHelpLink');
+			showById('listPatientDiv');
+			hideLoader();
+		}
+	});
+}
+
+function getOutboundSmsList( programStageInstanceId ) 
+{
+	$('#smsManagementDiv' ).load("getOutboundSmsList.action",
+		{
+			programStageInstanceId: programStageInstanceId
+		}).dialog(
+		{
+			title:i18n_sms_message_management,
+			maximize:true, 
+			closable:true,
+			modal:false,
+			overlay:{background:'#000000', opacity:0.1},
+			width:700,
+			height:400
+		});
+}
+
+function showSendSMSForm()
+{
+	$('#sendSmsFormFiv' ).load( "showSendSMSForm.action",{} ).dialog(
+		{
+			title:i18n_sent_sms,
+			maximize:true, 
+			closable:true,
+			modal:true,
+			overlay:{background:'#000000', opacity:0.1},
+			width:400,
+			height:250
+		});
+}
+
+function sendSMS( programStageInstanceId )
+{
+	jQuery.postUTF8( 'sendSMS.action',
+	{
+		programStageInstanceId: getFieldValue( 'programStageInstanceId' ),
+		gatewayId: getFieldValue( 'gatewayId' ),
+		msg: getFieldValue( 'smsMessage' )
+	}, function ( json )
+	{
+		if ( json.response == "success" ) {
+			showSuccessMessage( json.message );
+			jQuery('#smsManagementList').prepend("<tr><td>" + getFieldValue('currentDate') + "</td><td>" + getFieldValue('smsMessage') + "</td></tr>");
+			$('#sendSmsFormFiv' ).dialog("close");
+		}
+		else {
+			showErrorMessage( json.message, 7000 );
+		}
+	} );
+}
+
+
+
+function loadProgramStageRecords( programStageInstanceId ) 
+{
+	setInnerHTML('dataEntryFormDiv', '');
+	showLoader();
+    $('#dataEntryFormDiv' ).load("loadProgramStageRecords.action",
+		{
+			programStageInstanceId: programStageInstanceId
+		}, function() {
+			hideLoader();
+		});
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/menu.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/menu.vm	2012-07-26 06:12:27 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/menu.vm	2012-08-09 08:57:01 +0000
@@ -26,3 +26,9 @@
 <ul>
     <li><a href="caseAggregationForm.action">$i18n.getString( "case_aggregation" )</a></li>     
 </ul>
+
+
+<h2>$i18n.getString( "sms" )&nbsp;</h2>
+<ul>
+    <li><a href="smsReminderSelect.action">$i18n.getString( "sms_reminder" )</a></li>     
+</ul>

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/sendSMSForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/sendSMSForm.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/sendSMSForm.vm	2012-08-09 08:57:01 +0000
@@ -0,0 +1,48 @@
+<script type="text/javascript">
+	jQuery(document).ready(	function(){
+		validation( 'sendSMSForm', function(form){
+			sendSMS();
+		});
+	});
+</script>
+
+#if ( $!gatewayMap && $!gatewayMap.size() > 0 )
+<form id="sendSMSForm" name="sendSMSForm" action="sendSMS.action">
+	<table id="detailsList">
+	    <col width="300px"/>
+		<col width="80px"/>
+		<tbody>
+			<tr>
+				<th>$i18n.getString( "gateway_type" )</th>
+			</tr>
+			<tr>
+				<td>
+					#set( $keys = $!gatewayMap.keySet() )
+					<select id="gatewayId" name="gatewayId">
+						#foreach( $key in $!keys )
+						<option value="$gatewayMap.get( $key )">$i18n.getString( $key )</option>
+						#end
+					</select>
+				</td>
+			</tr>
+			
+			<tr><th>$i18n.getString( "message" )</th></tr>
+			<tr><td><textarea id="smsMessage" name="smsMessage" class="{validate:{required:true}}"></textarea></td></tr>
+		
+			<tr>
+				<td><input type="submit" name="send" value="$i18n.getString( 'send_sms' )"/></td>
+			</tr>
+			
+		</tbody>
+	</table>
+</form>
+	<div class='hidden'>
+		<input type='hidden' id='currentDate'>
+		<script>
+			datePickerValid( 'currentDate', true );
+		</script>
+	</div>
+</div>
+#else
+<p>No Sms service available</p>
+#end
\ No newline at end of file

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsMenu.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsMenu.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsMenu.vm	2012-08-09 08:57:01 +0000
@@ -0,0 +1,7 @@
+
+<a href="index.action"><h2>$i18n.getString( "sms" )&nbsp;</h2></a>
+<ul>
+    <li><a href="smsReminderSelect.action">$i18n.getString( "sms_reminder" )</a></li>     
+</ul>
+
+#parse( "/dhis-web-commons/ouwt/orgunittreesearch.vm" )

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsPatientRecords.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsPatientRecords.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsPatientRecords.vm	2012-08-09 08:57:01 +0000
@@ -0,0 +1,74 @@
+<table>
+	<tr>
+		<td class='text-column' >$i18n.getString( "search_result_matching_the_search_criteria" ):</td>
+		<td>&nbsp;</td>
+		<td>&nbsp;</td>
+		<td>
+		#if($!listAll)
+			$i18n.getString( "list_all_patients" )
+		#else
+			$i18n.getString( "advanced_search_patients" )
+		#end
+		</td>
+	</tr>	
+	
+	<tr>
+		<td class='text-column' >$i18n.getString( "total_result" ):</td>
+		<td>&nbsp;</td>
+		<td>&nbsp;</td>
+		<td>$!total</td>
+	</tr>
+</table>
+
+#if( $patients && $patients.size()>0 )
+	<p>#parse( "/dhis-web-caseentry/colorHelp.vm" )</p>
+	
+	<table class="listTable mainPageTable" id="patientList">
+		#set( $mark = false )                 
+		#foreach( $patient in $patients )
+			#set( $programInstance = '')
+			#set( $programInstance = $programInstanceMap.get( $patient ) )
+				<tr #alternate( $mark )>
+					<td>
+						<input type='button' class='patient-object' value='$patient.getFullName()' onclick='javascript:showPatientHistory( "$patient.id" );' title='$i18n.getString( "patient_details_and_history" )'>
+					</td>
+					#if($!programStageInstanceMap.get($programInstance))
+						#set($programStageInstances = $programStageInstanceMap.get($programInstance) )
+						#foreach( $programStageInstance in $programStageInstances )
+							<td>
+								<img src='images/rightarrow.png'>
+							</td>
+							<td>
+								<table class='stage-object'>
+									<tr>
+										<td><input type='button' id='ps_$programStageInstance.id' name='programStageBtn' class='stage-object' value='$programStageInstance.programStage.name $format.formatDate( $programStageInstance.dueDate )' onclick='javascript:getOutboundSmsList( $programStageInstance.id );'></td>
+										<script>	
+											var status = $statusMap.get( $programStageInstance.id ); 
+											setEventColorStatus( 'ps_' + $programStageInstance.id ,status);
+										</script>
+									</tr>
+									<tr>
+										<td>
+											($programStageInstance.outboundSms.size() $i18n.getString('messages') )<br/>
+											<img src='images/sms_list.gif' style="width:32px" title="$i18n.getString('send_message')" onclick='setFieldValue( "programStageInstanceId", "$!programStageInstance.id" );showSendSMSForm();'/>
+											<img src='images/new_sms.gif' style="width:32px" title="$i18n.getString('sms_message_management')" onclick='javascript:getOutboundSmsList( $programStageInstance.id );' />
+										</td>
+									</tr>
+								</table>
+							</td>
+						#end
+					#end
+				</tr>
+			#if( $mark )
+				#set( $mark = false )
+			#else
+				#set( $mark = true )
+			#end 
+		#end
+	</table>
+	<div class="paging-container">
+		#parse( "/dhis-web-commons/paging/paging.vm" )
+	</div>
+	
+	<div id="detailsInfo"></div>
+#end

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderList.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderList.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderList.vm	2012-08-09 08:57:01 +0000
@@ -0,0 +1,48 @@
+<h4>$i18n.getString( "sms_message_management" )</h4>
+
+<table class="mainPageTable"> 
+	<tr>            
+		<td class="bold">$i18n.getString( "full_name" ):</td>
+		<td>$encoder.htmlEncode( $programStageInstance.programInstance.patient.getFullName() )<td>
+	</tr>
+	<tr>
+		<td class="bold">$i18n.getString( "gender" ):</td>
+		<td>$programStageInstance.programInstance.patient.gender</td>
+	</tr>
+	<tr>
+		<td class="bold">$i18n.getString( "date_of_birth" ):</td>
+		<td>$format.formatDate( $programStageInstance.programInstance.patient.birthDate ) $programStageInstance.programInstance.patient.getAge()<td>
+	</tr>
+</table>
+
+<table class="mainPageTable">
+	<tr>
+		<td colspan='3' align='right'><input type='button' value="$i18n.getString('send_sms')" onclick='showSendSMSForm();'></td>
+	</tr>
+	<tr>
+		<th>$i18n.getString( "date" )</th>
+		<th>$i18n.getString( "message" )</th>
+	</tr>
+		  
+    <tbody id='smsManagementList'>	
+		  #set( $mark = false )
+          #foreach( $sms in $outboundSms )
+          	<tr id="tr${sms.id}" #alternate($mark) >
+				<td>$format.formatDate($!sms.date)</td>
+				<td>$sms.message</td>
+			</tr>
+			#set( $mark = !$mark)
+    	#end
+    	</tbody>
+    
+	 </table>
+    </td>
+  </tr>
+</table>
+
+<div id="detailsInfo"></div>
+
+<script type="text/javascript">
+	var i18n_color_quick_help = '$encoder.jsEscape( $i18n.getString( "color_quick_help" ) , "'")';
+	setFieldValue( "programStageInstanceId", "$!programStageInstance.id" );
+</script>

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderSelect.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderSelect.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/smsReminderSelect.vm	2012-08-09 08:57:01 +0000
@@ -0,0 +1,38 @@
+<script>
+	jQuery(document).ready(	function(){
+		showById('programAddPatientTR');
+		jQuery("#programIdAddPatient option").each(function(){
+			var item = jQuery(this);
+			if( item.attr('type')!=1 && item.val()!='' ){
+				item.remove();
+			}
+		});
+		
+		jQuery("#searchObjectId [value=prg]").remove();
+		hideById('addPatientBtn');
+		disable('advancedSearchBtn');
+		hideById('searchBySelectedUnitTD');
+	});	
+</script>
+
+<h3>$i18n.getString( "sms_reminder" )</h3>
+<form>
+	<input type='hidden' id='isRegistration' name= 'isRegistration' value='false'>
+	<input type='hidden' id='listAll' name='listAll'>
+	<input type='hidden' id='programStageInstanceId' name='programStageInstanceId'>
+	<div id='searchDiv'>
+		#parse( "dhis-web-caseentry/searchPatientCriteria.vm" )	
+	</div>
+</form>
+
+#parse( "dhis-web-commons/loader/loader.vm" )
+
+<div id='listPatientDiv'></div>
+<div id='smsManagementDiv'></div>
+<div id='sendSmsFormFiv'></div>
+
+<script>
+	unSave = false;
+	var i18n_sms_message_management = '$encoder.jsEscape( $i18n.getString( "sms_message_management" ) , "'")';
+	var i18n_sent_sms = '$encoder.jsEscape( $i18n.getString( "sent_sms" ) , "'")';
+</script>

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css	2012-08-06 09:34:34 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css	2012-08-09 08:57:01 +0000
@@ -211,3 +211,17 @@
 {
 	height: 32px;
 }
+
+
+table.stage-object
+{
+	white-space: normal;
+	border: 2px solid; 
+	cursor: pointer;
+	opacity: 1.0;
+	border: 1px solid;
+	margin: 5px;
+	border-radius: 2px;
+	text-align:center;
+}
+