[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 330: Changed some interceptors from extending AroundInterceptor to implementing Interceptor interface

2009-05-26 Thread noreply

revno: 330
committer: Lars Helge Oeverland larshe...@gmail.com
branch nick: trunk
timestamp: Tue 2009-05-26 10:39:14 +0200
message:
  Changed some interceptors from extending AroundInterceptor to implementing 
Interceptor interface
modified:
  
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalMenuInterceptor.java
  
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalModuleInterceptor.java
  
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalParamsInterceptor.java
  
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalUserInterceptor.java

=== modified file 
'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalMenuInterceptor.java'
--- 
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalMenuInterceptor.java
2009-03-03 16:46:36 +
+++ 
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalMenuInterceptor.java
2009-05-26 08:39:14 +
@@ -34,14 +34,14 @@
 import org.hisp.dhis.webportal.menu.MenuStateManager;
 
 import com.opensymphony.xwork.ActionInvocation;
-import com.opensymphony.xwork.interceptor.AroundInterceptor;
+import com.opensymphony.xwork.interceptor.Interceptor;
 
 /**
  * @author Torgeir Lorange Ostby
  * @version $Id: WebWorkPortalMenuInterceptor.java 2869 2007-02-20 14:26:09Z 
andegje $
  */
 public class WebWorkPortalMenuInterceptor
-extends AroundInterceptor
+implements Interceptor
 {
 private static final String KEY_MENU_STATE = menuState;
 
@@ -60,13 +60,20 @@
 // AroundInterceptor implementation
 // 
-
 
-@Override
-protected void after( ActionInvocation invocation, String result ) throws 
Exception
-{
-}
-
-@Override
-protected void before( ActionInvocation invocation ) throws Exception
+public void destroy()
+{
+// TODO Auto-generated method stub
+
+}
+
+public void init()
+{
+// TODO Auto-generated method stub
+
+}
+
+public String intercept( ActionInvocation invocation )
+throws Exception
 {
 MapString, MenuState menuStateMap = new HashMapString, MenuState( 
1 );
 
@@ -80,5 +87,7 @@
 menuStateMap.put( KEY_MENU_STATE, menuState );
 
 invocation.getStack().push( menuStateMap );
+
+return invocation.invoke();
 }
 }

=== modified file 
'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalModuleInterceptor.java'
--- 
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalModuleInterceptor.java
  2009-03-03 16:46:36 +
+++ 
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalModuleInterceptor.java
  2009-05-26 08:39:14 +
@@ -33,14 +33,14 @@
 import org.hisp.dhis.webportal.module.ModuleManager;
 
 import com.opensymphony.xwork.ActionInvocation;
-import com.opensymphony.xwork.interceptor.AroundInterceptor;
+import com.opensymphony.xwork.interceptor.Interceptor;
 
 /**
  * @author Torgeir Lorange Ostby
  * @version $Id: WebWorkPortalModuleInterceptor.java 2869 2007-02-20 14:26:09Z 
andegje $
  */
 public class WebWorkPortalModuleInterceptor
-extends AroundInterceptor
+implements Interceptor
 {
 private static final String KEY_MAINTENANCE_MODULES = maintenanceModules;
 private static final String KEY_SERVICE_MODULES = serviceModules;
@@ -60,14 +60,19 @@
 // AroundInterceptor implementation
 // 
-
 
-@Override
-protected void after( ActionInvocation actionInvocation, String result )
-throws Exception
-{
-}
-
-@Override
-protected void before( ActionInvocation actionInvocation )
+public void destroy()
+{
+// TODO Auto-generated method stub
+
+}
+
+public void init()
+{
+// TODO Auto-generated method stub
+
+}
+
+public String intercept( ActionInvocation actionInvocation )
 throws Exception
 {
 MapString, Object handle = new HashMapString, Object( 2 );
@@ -76,5 +81,7 @@
 handle.put( KEY_SERVICE_MODULES, moduleManager.getServiceMenuModules() 
);
 
 actionInvocation.getStack().push( handle );
+
+return actionInvocation.invoke();
 }
 }

=== modified file 
'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalParamsInterceptor.java'
--- 
dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/webportal/interceptor/WebWorkPortalParamsInterceptor.java
  

Re: [Dhis2-devs] spreadsheet dataentry

2009-05-26 Thread Ola Hodne Titlestad
Hi,

I think the main reason for this request is to accommodate completely
off-line and non-DHIS2 data entry processes in order to reach out to places
with computers where you do not have capacity (or it don't make sense) to
support installations and maintenance of a system like DHIS 2.

Still, for other use cases where grid-based data entry inside DHIS 2 is
requested I think we should look into these tools as this is something that
could really speed up data entry of relatively simple forms that are
possible to do for many orgunits or periods at a time. Note that we support
grid -based data entry already, either trough custom forms or standard forms
for multidimensional data elements, BUT these do not support using multiple
orgunits and/or periods.

best regards,
Ola Hodne Titlestad
HISP
University of Oslo


On Mon, May 25, 2009 at 11:09 PM, Bob Jolliffe bobjolli...@gmail.comwrote:

 Quick thought on your blueprint:
 https://blueprints.launchpad.net/dhis2/+spec/spreadsheet-dataentry

 There are so many nice grid controls out there and they are getting
 better and faster all the time.  Couldn't we relatively easily
 implement grid-like data entry along the lines you suggest by using
 something like jqGrid (http://www.trirand.com/blog/) - seeing that
 jquery is our blessed javascript framework?  Looking at the demos
 http://www.trirand.com/jqgrid35/jqgrid.html I'd say that doing exactly
 what you describe would be pretty straightforward inside DHIS2 - which
 means we could also implement min-max etc and regulate access to the
 database through our api.  And with a bit of artful dodging you could
 make it look sufficiently excel-like to keep the punters with the
 special editions happy.

 I'm not volunteering - just adding my 2c.

 Cheers
 Bob

 ___
 Mailing list: 
 https://launchpad.net/~dhis2-devshttps://launchpad.net/%7Edhis2-devs
 Post to : dhis2-devs@lists.launchpad.net
 Unsubscribe : 
 https://launchpad.net/~dhis2-devshttps://launchpad.net/%7Edhis2-devs
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp


Re: [Dhis2-devs] spreadsheet dataentry

2009-05-26 Thread Bob Jolliffe
2009/5/26 Ola Hodne Titlestad ol...@ifi.uio.no:
 Hi,

 I think the main reason for this request is to accommodate completely
 off-line and non-DHIS2 data entry processes in order to reach out to places
 with computers where you do not have capacity (or it don't make sense) to
 support installations and maintenance of a system like DHIS 2.

OK.  Basically looking at a thick client for data entry where lite is
not lite enough.  I suppose options range from office suite
spreadsheets to DHIS 1.4 to some lightweight custom binary [I feel a
QT moment coming on.  Or a Tk::table. Outputting dxf or sdmx/hd].

Its easy enough to configure openoffice to load and save in a custom
xml format (ixf, sdmx hd, dxf ...).  I guess the same is true of ms
office (at least 2007) but I don't own a copy to play with.

Regards
Bob

 Still, for other use cases where grid-based data entry inside DHIS 2 is
 requested I think we should look into these tools as this is something that
 could really speed up data entry of relatively simple forms that are
 possible to do for many orgunits or periods at a time. Note that we support
 grid -based data entry already, either trough custom forms or standard forms
 for multidimensional data elements, BUT these do not support using multiple
 orgunits and/or periods.

 best regards,
 Ola Hodne Titlestad
 HISP
 University of Oslo


 On Mon, May 25, 2009 at 11:09 PM, Bob Jolliffe bobjolli...@gmail.com
 wrote:

 Quick thought on your blueprint:
 https://blueprints.launchpad.net/dhis2/+spec/spreadsheet-dataentry

 There are so many nice grid controls out there and they are getting
 better and faster all the time.  Couldn't we relatively easily
 implement grid-like data entry along the lines you suggest by using
 something like jqGrid (http://www.trirand.com/blog/) - seeing that
 jquery is our blessed javascript framework?  Looking at the demos
 http://www.trirand.com/jqgrid35/jqgrid.html I'd say that doing exactly
 what you describe would be pretty straightforward inside DHIS2 - which
 means we could also implement min-max etc and regulate access to the
 database through our api.  And with a bit of artful dodging you could
 make it look sufficiently excel-like to keep the punters with the
 special editions happy.

 I'm not volunteering - just adding my 2c.

 Cheers
 Bob

 ___
 Mailing list: https://launchpad.net/~dhis2-devs
 Post to     : dhis2-devs@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~dhis2-devs
 More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp


[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 331: Small rearrangement of xwork config files

2009-05-26 Thread noreply

revno: 331
committer: Lars Helge Oeverland larshe...@gmail.com
branch nick: trunk
timestamp: Tue 2009-05-26 13:01:15 +0200
message:
  Small rearrangement of xwork config files
renamed:
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/xwork.xml = 
dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml
modified:
  
dhis-2/dhis-support/dhis-support-webwork/src/main/resources/dhis-support-webwork.xml
  dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-datamart/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-gis/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-importexport/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-jforum-integration/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-organisationunit/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/resources/xwork.xml
  
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-openhealth-integration/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-portal/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-reporting/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-validationrule/src/main/resources/xwork.xml
  gis/dhis-web-mapping/src/main/resources/xwork.xml
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/dhis-web-commons.xml

=== modified file 
'dhis-2/dhis-support/dhis-support-webwork/src/main/resources/dhis-support-webwork.xml'
--- 
dhis-2/dhis-support/dhis-support-webwork/src/main/resources/dhis-support-webwork.xml
2009-05-25 10:27:57 +
+++ 
dhis-2/dhis-support/dhis-support-webwork/src/main/resources/dhis-support-webwork.xml
2009-05-26 11:01:15 +
@@ -36,79 +36,4 @@
 /interceptors
   /package
   
-  !-- DHIS Web Commons --
-  
-  package name=dhis-web-commons extends=dhis-support-webwork 
namespace=/dhis-web-commons
-
-interceptors
-  interceptor name=portalParamsInterceptor
-
class=org.hisp.dhis.webportal.interceptor.WebWorkPortalParamsInterceptor/
-  interceptor name=portalModuleInterceptor
-
class=org.hisp.dhis.webportal.interceptor.WebWorkPortalModuleInterceptor/
-  interceptor name=portalMenuInterceptor
-
class=org.hisp.dhis.webportal.interceptor.WebWorkPortalMenuInterceptor/
-  interceptor name=organisationUnitTreeInterceptor
-
class=org.hisp.dhis.ouwt.interceptor.OrganisationUnitTreeInterceptor/
-  interceptor name=portalUserInterceptor
-
class=org.hisp.dhis.webportal.interceptor.WebWorkPortalUserInterceptor/
-  interceptor name=securityInterceptor
-class=org.hisp.dhis.security.intercept.WebWorkSecurityInterceptor/
-  interceptor name=execAndWait
-
class=org.hisp.dhis.hibernate.interceptor.OpenSessionExecuteAndWaitInterceptor/
-  
-  interceptor-stack name=commonInterceptors
-interceptor-ref name=static-params/
-interceptor-ref name=params/
-interceptor-ref name=chain/
-interceptor-ref name=i18nInterceptor/
-!--
-The securityInterceptor is put after the i18nInterceptor so that the
-access denied error pages can use internationalisation.
---
-interceptor-ref name=securityInterceptor/
-interceptor-ref name=sortOrderInterceptor/
-interceptor-ref name=displayPropertyInterceptor/
-interceptor-ref name=dataDictionaryModeInterceptor/
-interceptor-ref name=systemSettingInterceptor/
-interceptor-ref name=styleInterceptor/
-interceptor-ref name=portalParamsInterceptor/
-interceptor-ref name=portalMenuInterceptor/
-interceptor-ref name=portalModuleInterceptor/
-interceptor-ref name=portalUserInterceptor/
-  /interceptor-stack
-  
-  interceptor-stack name=exceptionStack
-interceptor-ref name=exceptionInterceptor/
-interceptor-ref name=commonInterceptors/
-  /interceptor-stack
-  
-  interceptor-stack name=transactionStack
-interceptor-ref name=exceptionStack/
-interceptor-ref name=transactionInterceptor/
-  /interceptor-stack
-  
-  interceptor-stack name=fileUploadStack
-interceptor-ref name=exceptionInterceptor/
-interceptor-ref name=fileUpload/
-interceptor-ref name=commonInterceptors/
-  /interceptor-stack
-  
-  interceptor-stack name=organisationUnitTreeStack
-interceptor-ref 

Re: [Dhis2-devs] Coding layout - Community-Based Health Information System (CBHIS)

2009-05-26 Thread Bob Jolliffe
Hi Saptar and all

2009/5/26 Saptarshi Purkayastha sun...@gmail.com:
 There are few important things to consider:

 1.) Person should be able to have any type of relationship with another
 person (eg. other members of the community)/user (e.g. health workers).
 Basically the associated relationship can be stored as a relationship table
 and that can be anything that the user wants to add

Agreed.

 2.) Having multiple identifiers is a necessity of sorts for community
 setting... May be not so much in a clinical setting

And agreed.

 3.) We can store things securely in the same database. Just when doing CRUD
 on name-based tables we do encryption/decryption. Managing it would be
 easier with different databases, but don't know if its worth the overhead.

Not so sure.  The one problem with doing encryption at the field level
- eg. encrypting names, is that you can't then search or index on them
which is pretty crippling in this kind of application.  At least if
you supproting different database engines.

If we are to encrypt, its much easier to encrypt the entire database,
making it transparent from the database perspective  - so it's easy
enough to point the table storage at encrypted area of the disk but
there is of course a performance hit.  This is one (other) reason why
having separate databases might be better.  Just 'coz we are obliged
to be more protective of personal data, doesn't mean we have to slow
down the whole application.

Cheers
Bob

 Other points about the frameworks and design that I have been wanting to say
 are better discussed during Thursday developer call.


 2009/5/25 Abyot Gizaw aby...@gmail.com


 2009/5/25 Ola Hodne Titlestad ol...@ifi.uio.no

 2009/5/25 Abyot Gizaw aby...@gmail.com


 2009/5/25 Ola Hodne Titlestad ol...@ifi.uio.no

 On Mon, May 25, 2009 at 1:10 PM, Abyot Gizaw aby...@gmail.com wrote:


 On Mon, May 25, 2009 at 12:53 PM, Ola Hodne Titlestad
 ol...@ifi.uio.no wrote:

 Hi Abyot and others,

 I am trying to think how this design fits with other use cases that
 we need to suppport, such as maternal death audits or surveillance of
 notifiable diseases which are typical use cases in HISP where we extend 
 DHIS
 to the patient level.

 How strong is the link/dependency of patient to village and house in
 this design? Will it cater for use cases where patient and possibly 
 orgunit
 are the only location references? I can see use cases where an 
 orgunit is
 reporting patient details of cases/deaths, e.g.a maternal death or a new
 case of a notifiable disease, with or without location details such as
 village and house. Such a scenario would then involve meta data such as
 orgunit, patient, date, and multiple (patient) data elements.

 Good point!

 What I have in mind with the village/house thing is that it will be
 taken as an address for the person/patient so that latter it can be used 
 as
 an out-reach point. For the scenario you mentioned, probably we can 
 define a
 dummy/default family/house/village and then the specific orgunit.

 OK, that sounds fine.



 Thank you
 Abyot.




 Another question/concern I have is related to how you represent data
 elements in this model. I can see that an XML object contains a set of 
 Data
 Elements. Will Data Elements be created/edited in GUI and then 
 available for
 the users to combine in data sets/forms like in DHIS? And will these 
 data
 elements be easily available when aggregation queries are defined by the
 user?

 The dataelements I mentioned in my specification are those
 dataelements we have/defined in DHIS2. OrganisationUnit, Period, 
 PeriodType
 are also objects from DHIS2.


 OK.
 I was thinking of patient data elements. What I mean is, do you plan
 to use DHIS2 model for data elements also for patient data elements?
 If so, how to you plan to distinguish between the two types? Will CBHIS
 then have its own database when DHIS 2 is also running on the same 
 machine?

 Patient dataelement? you mean kind of advanced dataelements? if so why
 don't we extend the current dataelement module in DHIS2? Introducing
 advanced or extended_dataelements instead of doing it in CBHIS?

 Basically, what I assume is that data elements (things we want to
 register data about) for patients are different than for
 aggregated/statistical data. Different more in the meaning of the data than
 in the structure. E.g. things related to individuals like Education level,
 Name of husband etc. are different than aggregated DE of the type: No of
 maternal deaths where mother has no education. Furthermore, patient and
 aggregate/routine data elements will also be captured with very different
 frequencies and also stored in different data tables (I assume a different
 data stores for sensitive patient data and normal aggregated data). That is
 why I am thinking that mixing patient and aggregated data elements in the
 same system (GUI/database) will be messy for the users and ask how this will
 be separated, both in database and in GUI.
 Hope