[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 330: Changed some interceptors from extending AroundInterceptor to implementing Interceptor interface
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
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/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
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)
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