Re: [Dhis2-devs] DHIS2 OAuth Grant type authorized_code

2016-01-07 Thread Ngoc Thanh Nguyen
Wow, LDAP is great.

I think this is a revolution which brings DHIS2 to a truly integration
platform.

Will try that

Thanh

On Fri, Jan 8, 2016 at 1:10 PM, Morten Olav Hansen <morte...@gmail.com>
wrote:

> No, that is not possible. The only way to externally authenticate a DHIS 2
> instance is either using openid or using LDAP (now supported in 2.22).
>
> --
> Morten
>
> On Fri, Jan 8, 2016 at 1:08 PM, Ngoc Thanh Nguyen <
> thanh.hispviet...@gmail.com> wrote:
>
>> Hi
>>
>> What I mean was if I have 3 dhis2 instances running on 3 server namely A,
>> B, C. All user accounts (and passwords) are stored in C.
>>
>> When I access A or B, it will redirect to C for sign in. After signing in
>> successfully, I can use A or B.
>>
>> Is that possible?
>>
>> Thanh
>>
>>
>> On Fri, Jan 8, 2016 at 12:58 PM, Morten Olav Hansen <morte...@gmail.com>
>> wrote:
>>
>>> Hi Thanh
>>>
>>> I'm not really sure what you want. DHIS 2 can only act as a
>>> authentication provider, it does not support authentication against another
>>> oauth2 provider.
>>>
>>> The main reason for adding oauth2 was to support third party clients
>>> connecting with it without having to collect username/passwords in their
>>> own local databases.
>>>
>>> --
>>> Morten
>>>
>>> On Tue, Dec 15, 2015 at 3:34 PM, Ngoc Thanh Nguyen <
>>> thanh.hispviet...@gmail.com> wrote:
>>>
>>>> HI all
>>>>
>>>> Is there a way in DHIS2 that allows defining a callback for OAuth? If
>>>> this possible, we can have multiple dhis2 instances that share a single
>>>> user base. This will work like OAuth in Google+ or Facebook.
>>>>
>>>> Thanh
>>>>
>>>
>>>
>>
>
___
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] DHIS2 OAuth Grant type authorized_code

2016-01-07 Thread Ngoc Thanh Nguyen
Hi

What I mean was if I have 3 dhis2 instances running on 3 server namely A,
B, C. All user accounts (and passwords) are stored in C.

When I access A or B, it will redirect to C for sign in. After signing in
successfully, I can use A or B.

Is that possible?

Thanh


On Fri, Jan 8, 2016 at 12:58 PM, Morten Olav Hansen <morte...@gmail.com>
wrote:

> Hi Thanh
>
> I'm not really sure what you want. DHIS 2 can only act as a authentication
> provider, it does not support authentication against another oauth2
> provider.
>
> The main reason for adding oauth2 was to support third party clients
> connecting with it without having to collect username/passwords in their
> own local databases.
>
> --
> Morten
>
> On Tue, Dec 15, 2015 at 3:34 PM, Ngoc Thanh Nguyen <
> thanh.hispviet...@gmail.com> wrote:
>
>> HI all
>>
>> Is there a way in DHIS2 that allows defining a callback for OAuth? If
>> this possible, we can have multiple dhis2 instances that share a single
>> user base. This will work like OAuth in Google+ or Facebook.
>>
>> Thanh
>>
>
>
___
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] DHIS2 OAuth Grant type authorized_code

2015-12-15 Thread Ngoc Thanh Nguyen
HI all

Is there a way in DHIS2 that allows defining a callback for OAuth? If this
possible, we can have multiple dhis2 instances that share a single user
base. This will work like OAuth in Google+ or Facebook.

Thanh
___
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] How many records can Organization Unit hold up?

2015-05-21 Thread Ngoc Thanh Nguyen
Hi Muhamad,

Try with a blank db. If it works, then check with few orgunit, if it still
works, switch to this current db. If the problem occurs, make sure your
orgunit table is valid. As far as I get you used a manual tool to
automatically insert to this orgunit table

Thanh
On Thu, May 21, 2015 at 11:10 AM, Muhammad Tahir mtag...@gmail.com wrote:

 Hi Knut,

 Yes, DHIS Live is being used at the moment. JAVA_OPTS was not set no my
 machine but event I have added with value

 -Xms512M -Xmx1024M

 the problem remains the same(*HTTP ERROR: 404*).



 On Thu, May 21, 2015 at 12:19 AM, Knut Staring knu...@gmail.com wrote:

 Is that the whole log file? I see you are running this on your laptop as
 DHIS Live. Perhaps you could try allocating more memory to Java. What is
 your JAVA_OPTS?

 Knut

 On Wed, May 20, 2015 at 10:34 AM, Muhammad Tahir mtag...@gmail.com
 wrote:

 Hi Morten,

 Web page result:

 HTTP ERROR: 404

 Problem accessing /. Reason:

 NOT_FOUND

 Powered by Jetty://



 Log file:
 * INFO  15:31:27,201 Lifecycle: server stopped (TrayApp.java
 [AWT-EventQueue-0])
 * INFO  15:31:27,223 Exiting... (TrayApp.java [AWT-EventQueue-0])
 * INFO  15:32:11,490 Environment variable DHIS2_HOME: null (TrayApp.java
 [main])
 * INFO  15:32:11,551 Initialising DHIS 2 Live... (TrayApp.java [main])
 * INFO  15:32:11,623 Loading DHIS 2 on port: 8082 (WebAppServer.java
 [main])
 * INFO  15:32:11,658 Setting DHIS 2 web app context to:
 /D:/DHIS2/Tools_Setup/dhis-live/webapps/dhis (WebAppServer.java [main])
 * INFO  15:32:11,659 Lifecycle: server starting (TrayApp.java [Thread-2])
 * INFO  15:32:14,931 System property dhis2.home points to
 /D:/DHIS2/Tools_Setup/dhis-live/conf (DefaultLocationManager.java
 [Thread-2])
 * INFO  15:32:15,631 Hibernate configuration loaded, using dialect:
 org.hibernate.dialect.PostgreSQLDialect
 (DefaultHibernateConfigurationProvider.java [Thread-2])
 * INFO  15:32:30,340 Found the following message senders:
 [org.hisp.dhis.message.EmailMessageSender@1ad234d,
 org.hisp.dhis.sms.SmsMessageSender@ee212a] (DefaultMessageService.java
 [Thread-2])
 * INFO  15:32:39,016 Detected apps: [] (DefaultAppManager.java
 [Thread-2])
 * INFO  15:32:44,155 Executing startup routine [1 of 14, runlevel 1]:
 InitTableAlteror (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:32:44,771 Executing startup routine [2 of 14, runlevel 2]:
 PeriodTypePopulator (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:32:44,859 Executing startup routine [3 of 14, runlevel 2]:
 DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java
 [Thread-2])
 * INFO  15:32:45,093 Linked default category with default concept
 (DataElementDefaultDimensionPopulator.java [Thread-2])
 * INFO  15:32:45,170 Executing startup routine [4 of 14, runlevel 3]:
 TrackerIdentityPopulator (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:33:18,812 Lifecycle: server started (TrayApp.java [Thread-2])

 On Fri, May 15, 2015 at 3:03 PM, Morten Olav Hansen morte...@gmail.com
 wrote:

 Can you be a bit more specific? where does it crash? is it a browser
 issue? server issue? can you send us the relevant parts of the logs? (if
 any)

 If its the browser, can you open the developer tools (f12) and look in
 the javascript console and see if there is anything in red

 --
 Morten

 On Fri, May 15, 2015 at 4:39 PM, Muhammad Tahir mtag...@gmail.com
 wrote:


 Hi,

 We have an organization level distribution as follows with number of
 org units at each level.

 App crashes when the last level is uploaded into the system and we try
 to browse the organization units. A new DB should be then used to use the
 app.

 *Level1*   *-- 1*
 *Level2**   -- **6*
 *Level3*   *-- 9*
 *Level4*  * --  * *16*
 *Level5**   -- 130*
  *Level6**  -- 550*
 * Level7**   -- 900*
 * Level8**   -- 2*
 * Level9**   -- 80,000*
 * Level10 **-- 100,000*

 At present the app is deployed on a desktop machine with following
 configuration.
 Windows7, 4 Gb RAM, Intel Corei3 3.3 GHz.


 --
 *Regards,*
 *Muhammad Tahir*

 ___
 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





 --
 *Regards,*
 *Muhammad Tahir*

 ___
 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




 --
 Knut Staring
 Dept. of Informatics, University of Oslo
 Norway: +4791880522
 Skype: knutstar
 http://dhis2.org




 --
 *Regards,*
 *Muhammad Tahir*

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

Re: [Dhis2-devs] How many records can Organization Unit hold up?

2015-05-21 Thread Ngoc Thanh Nguyen
Knut and Muhammad,

I am quite sure that level is not the problem. Obviously, when moving from
level 9 to 10, the number of orgunits surges from 80 to 100,000 which is
more than 10 times. The number of orgunit matters here. I expected heap
memory problem here but the log did not say so.

Muhammad, could you try with level 10 but with little number of orgunit?


On Thu, May 21, 2015 at 5:40 PM, Knut Staring knu...@gmail.com wrote:

 I suppose it is not a very helpful comment, but I would seriously consider
 skipping some of those levels, if possible..though we should certainly
 still aim to understand what is causing your problem.

 On Thu, May 21, 2015 at 11:37 AM, Muhammad Tahir mtag...@gmail.com
 wrote:

 Hi Ngoc,

 Yes, I have loaded the table manually, but it works fine upto level 9, as
 soon as the final level 10 orgunits are added, the app does start but on
 browser I get 404 message.

 I have created another DB, loaded each level step by step and the app
 works until level10 units are added.

 At present I have deployed only upto level 6 to check/configure other
 options of DHIS2.

 *Level1*   *-- 1*
 *Level2**   -- **6*
 *Level3*   *-- 9*
 *Level4*  * --  * *16*
 *Level5**   -- 130*
 *Level6**  -- 550*
 * Level7**   -- 900*
 * Level8**   -- 2*
 * Level9**   -- 80,000*
 * Level10 **-- 100,000*

 On Thu, May 21, 2015 at 12:46 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi Muhamad,

 Try with a blank db. If it works, then check with few orgunit, if it
 still works, switch to this current db. If the problem occurs, make sure
 your orgunit table is valid. As far as I get you used a manual tool to
 automatically insert to this orgunit table

 Thanh
 On Thu, May 21, 2015 at 11:10 AM, Muhammad Tahir mtag...@gmail.com
 wrote:

 Hi Knut,

 Yes, DHIS Live is being used at the moment. JAVA_OPTS was not set no my
 machine but event I have added with value

 -Xms512M -Xmx1024M

 the problem remains the same(*HTTP ERROR: 404*).



 On Thu, May 21, 2015 at 12:19 AM, Knut Staring knu...@gmail.com
 wrote:

 Is that the whole log file? I see you are running this on your laptop
 as DHIS Live. Perhaps you could try allocating more memory to Java. What 
 is
 your JAVA_OPTS?

 Knut

 On Wed, May 20, 2015 at 10:34 AM, Muhammad Tahir mtag...@gmail.com
 wrote:

 Hi Morten,

 Web page result:

 HTTP ERROR: 404

 Problem accessing /. Reason:

 NOT_FOUND

 Powered by Jetty://



 Log file:
 * INFO  15:31:27,201 Lifecycle: server stopped (TrayApp.java
 [AWT-EventQueue-0])
 * INFO  15:31:27,223 Exiting... (TrayApp.java [AWT-EventQueue-0])
 * INFO  15:32:11,490 Environment variable DHIS2_HOME: null
 (TrayApp.java [main])
 * INFO  15:32:11,551 Initialising DHIS 2 Live... (TrayApp.java [main])
 * INFO  15:32:11,623 Loading DHIS 2 on port: 8082 (WebAppServer.java
 [main])
 * INFO  15:32:11,658 Setting DHIS 2 web app context to:
 /D:/DHIS2/Tools_Setup/dhis-live/webapps/dhis (WebAppServer.java [main])
 * INFO  15:32:11,659 Lifecycle: server starting (TrayApp.java
 [Thread-2])
 * INFO  15:32:14,931 System property dhis2.home points to
 /D:/DHIS2/Tools_Setup/dhis-live/conf (DefaultLocationManager.java
 [Thread-2])
 * INFO  15:32:15,631 Hibernate configuration loaded, using dialect:
 org.hibernate.dialect.PostgreSQLDialect
 (DefaultHibernateConfigurationProvider.java [Thread-2])
 * INFO  15:32:30,340 Found the following message senders:
 [org.hisp.dhis.message.EmailMessageSender@1ad234d,
 org.hisp.dhis.sms.SmsMessageSender@ee212a]
 (DefaultMessageService.java [Thread-2])
 * INFO  15:32:39,016 Detected apps: [] (DefaultAppManager.java
 [Thread-2])
 * INFO  15:32:44,155 Executing startup routine [1 of 14, runlevel 1]:
 InitTableAlteror (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:32:44,771 Executing startup routine [2 of 14, runlevel 2]:
 PeriodTypePopulator (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:32:44,859 Executing startup routine [3 of 14, runlevel 2]:
 DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java
 [Thread-2])
 * INFO  15:32:45,093 Linked default category with default concept
 (DataElementDefaultDimensionPopulator.java [Thread-2])
 * INFO  15:32:45,170 Executing startup routine [4 of 14, runlevel 3]:
 TrackerIdentityPopulator (DefaultStartupRoutineExecutor.java [Thread-2])
 * INFO  15:33:18,812 Lifecycle: server started (TrayApp.java
 [Thread-2])

 On Fri, May 15, 2015 at 3:03 PM, Morten Olav Hansen 
 morte...@gmail.com wrote:

 Can you be a bit more specific? where does it crash? is it a
 browser issue? server issue? can you send us the relevant parts of the
 logs? (if any)

 If its the browser, can you open the developer tools (f12) and look
 in the javascript console and see if there is anything in red

 --
 Morten

 On Fri, May 15, 2015 at 4:39 PM, Muhammad Tahir mtag...@gmail.com
 wrote:


 Hi,

 We have an organization level distribution as follows with number
 of org units at each level.

 App crashes

Re: [Dhis2-devs] Bug on OpenID dhis2

2015-05-19 Thread Ngoc Thanh Nguyen
I have solved this problem.

I think the problem is related to excluding XeresImp jar. There was a
thread about this but no one confirm anything so it was completely excluded.

Note that the demo server also has this problem so my suggestion is either
include this jar again or should have a very strong notice on the
deployment of OpenID

https://www.mail-archive.com/search?l=dhis2-devs@lists.launchpad.netq=subject:%22Re%3A+%5BDhis2-devs%5D+%5BBug+1320212%5D+%5BNEW%5D+Warning+possibly+relate+to+xerces+library+while+migrating+to+dhis+2.14+to+2.15%22o=newestf=1

Thanh


On Fri, Apr 17, 2015 at 6:40 AM, Ngoc Thanh Nguyen 
thanh.hispviet...@gmail.com wrote:

 Sorry it is 2.18

 This is full log of the server

 About DHIS 2Web API:Browse it here http://nova.hny.vn:8080/dhis/apiCurrent
 user:adminVersion:2.18Build revision:18202Build date:2015-02-25 23:19User
 agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
 Gecko) Chrome/42.0.2311.90 Safari/537.36Server date:2015-04-16 
 13:13Environment
 variable:DHIS2_HOMEExternal configuration directory:/opt/DHIS2_HOMEDatabase
 type:PostgreSQLDatabase name:dhis2Database user:dhis2Java opts:Java home:
 /opt/jdk1.7.0/jreJava temporary directory:/opt/tomcat7/tempJava version:
 1.7.0Java vendor:Oracle CorporationOS name:LinuxOS architecture:amd64OS
 version:2.6.32-431.1.2.0.1.el6.x86_64Server memory:Mem Total in JVM: 617
 Free in JVM: 97 Max Limit: 888CPU cores:2

 2015-04-17 6:39 GMT+07:00 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com:

 I think it is 2.17

 On Wed, Apr 15, 2015 at 9:19 AM, Morten Olav Hansen morte...@gmail.com
 wrote:

 Which version of dhis2?

 --
 Morten

 2015-04-15 8:21 GMT+07:00 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 :

 After signing in successfully

 Etat HTTP 500 - Filter execution threw an exception
 --

 *type* Rapport d''exception

 *message* *Filter execution threw an exception*

 *description* *Le serveur a rencontré une erreur interne qui l''a
 empêché de satisfaire la requête.*

 *exception*

 javax.servlet.ServletException: Filter execution threw an exception

 org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)

 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

 *cause mère*

 java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser

 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.parseDocument(CyberNekoDOMYadisHtmlParser.java:96)

 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.getHtmlMeta(CyberNekoDOMYadisHtmlParser.java:39)

 org.openid4java.discovery.yadis.YadisResolver.getHtmlMeta(YadisResolver.java:325)

 org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:453)

 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:252)

 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232)

 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:166)
org.openid4java.discovery.Discovery.discover(Discovery.java:147)

 org.openid4java.consumer.ConsumerManager.verifyDiscovered2(ConsumerManager.java:1693)

 org.openid4java.consumer.ConsumerManager.verifyDiscovered(ConsumerManager.java:1521)

 org.openid4java.consumer.ConsumerManager.verify(ConsumerManager.java:1156)

 org.springframework.security.openid.OpenID4JavaConsumer.endConsumption(OpenID4JavaConsumer.java:169)

 org.springframework.security.openid.OpenIDAuthenticationFilter.attemptAuthentication(OpenIDAuthenticationFilter.java:145)

 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211)

 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)

 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

 org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)

 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)

 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

 org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115)

 org.springframework.security.web.FilterChainProxy

Re: [Dhis2-devs] Bug on OpenID dhis2

2015-04-16 Thread Ngoc Thanh Nguyen
Sorry it is 2.18

This is full log of the server

About DHIS 2Web API:Browse it here http://nova.hny.vn:8080/dhis/apiCurrent
user:adminVersion:2.18Build revision:18202Build date:2015-02-25 23:19User
agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/42.0.2311.90 Safari/537.36Server date:2015-04-16 13:13Environment
variable:DHIS2_HOMEExternal configuration directory:/opt/DHIS2_HOMEDatabase
type:PostgreSQLDatabase name:dhis2Database user:dhis2Java opts:Java home:
/opt/jdk1.7.0/jreJava temporary directory:/opt/tomcat7/tempJava version:
1.7.0Java vendor:Oracle CorporationOS name:LinuxOS architecture:amd64OS
version:2.6.32-431.1.2.0.1.el6.x86_64Server memory:Mem Total in JVM: 617
Free in JVM: 97 Max Limit: 888CPU cores:2

2015-04-17 6:39 GMT+07:00 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com:

 I think it is 2.17

 On Wed, Apr 15, 2015 at 9:19 AM, Morten Olav Hansen morte...@gmail.com
 wrote:

 Which version of dhis2?

 --
 Morten

 2015-04-15 8:21 GMT+07:00 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 :

 After signing in successfully

 Etat HTTP 500 - Filter execution threw an exception
 --

 *type* Rapport d''exception

 *message* *Filter execution threw an exception*

 *description* *Le serveur a rencontré une erreur interne qui l''a
 empêché de satisfaire la requête.*

 *exception*

 javax.servlet.ServletException: Filter execution threw an exception
 
 org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
 
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 
 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
 
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

 *cause mère*

 java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser
 
 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.parseDocument(CyberNekoDOMYadisHtmlParser.java:96)
 
 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.getHtmlMeta(CyberNekoDOMYadisHtmlParser.java:39)
 
 org.openid4java.discovery.yadis.YadisResolver.getHtmlMeta(YadisResolver.java:325)
 
 org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:453)
 
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:252)
 
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232)
 
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:166)
 org.openid4java.discovery.Discovery.discover(Discovery.java:147)
 
 org.openid4java.consumer.ConsumerManager.verifyDiscovered2(ConsumerManager.java:1693)
 
 org.openid4java.consumer.ConsumerManager.verifyDiscovered(ConsumerManager.java:1521)
 
 org.openid4java.consumer.ConsumerManager.verify(ConsumerManager.java:1156)
 
 org.springframework.security.openid.OpenID4JavaConsumer.endConsumption(OpenID4JavaConsumer.java:169)
 
 org.springframework.security.openid.OpenIDAuthenticationFilter.attemptAuthentication(OpenIDAuthenticationFilter.java:145)
 
 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
 
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
 
 org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
 
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107

Re: [Dhis2-devs] Bug on OpenID dhis2

2015-04-16 Thread Ngoc Thanh Nguyen
I think it is 2.17

On Wed, Apr 15, 2015 at 9:19 AM, Morten Olav Hansen morte...@gmail.com
wrote:

 Which version of dhis2?

 --
 Morten

 2015-04-15 8:21 GMT+07:00 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com:

 After signing in successfully

 Etat HTTP 500 - Filter execution threw an exception
 --

 *type* Rapport d''exception

 *message* *Filter execution threw an exception*

 *description* *Le serveur a rencontré une erreur interne qui l''a
 empêché de satisfaire la requête.*

 *exception*

 javax.servlet.ServletException: Filter execution threw an exception
  
 org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)
  
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  
 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
  
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

 *cause mère*

 java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser
  
 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.parseDocument(CyberNekoDOMYadisHtmlParser.java:96)
  
 org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.getHtmlMeta(CyberNekoDOMYadisHtmlParser.java:39)
  
 org.openid4java.discovery.yadis.YadisResolver.getHtmlMeta(YadisResolver.java:325)
  
 org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:453)
  
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:252)
  
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232)
  
 org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:166)
  org.openid4java.discovery.Discovery.discover(Discovery.java:147)
  
 org.openid4java.consumer.ConsumerManager.verifyDiscovered2(ConsumerManager.java:1693)
  
 org.openid4java.consumer.ConsumerManager.verifyDiscovered(ConsumerManager.java:1521)
  
 org.openid4java.consumer.ConsumerManager.verify(ConsumerManager.java:1156)
  
 org.springframework.security.openid.OpenID4JavaConsumer.endConsumption(OpenID4JavaConsumer.java:169)
  
 org.springframework.security.openid.OpenIDAuthenticationFilter.attemptAuthentication(OpenIDAuthenticationFilter.java:145)
  
 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
  
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
  
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
  
 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  
 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
  
 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
  
 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
  
 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
  
 org.springframework.orm.hibernate4

[Dhis2-devs] Bug on OpenID dhis2

2015-04-14 Thread Ngoc Thanh Nguyen
After signing in successfully

Etat HTTP 500 - Filter execution threw an exception
--

*type* Rapport d''exception

*message* *Filter execution threw an exception*

*description* *Le serveur a rencontré une erreur interne qui l''a empêché
de satisfaire la requête.*

*exception*

javax.servlet.ServletException: Filter execution threw an exception

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

*cause mère*

java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser

org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.parseDocument(CyberNekoDOMYadisHtmlParser.java:96)

org.openid4java.discovery.yadis.CyberNekoDOMYadisHtmlParser.getHtmlMeta(CyberNekoDOMYadisHtmlParser.java:39)

org.openid4java.discovery.yadis.YadisResolver.getHtmlMeta(YadisResolver.java:325)

org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:453)

org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:252)

org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:232)

org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:166)
org.openid4java.discovery.Discovery.discover(Discovery.java:147)

org.openid4java.consumer.ConsumerManager.verifyDiscovered2(ConsumerManager.java:1693)

org.openid4java.consumer.ConsumerManager.verifyDiscovered(ConsumerManager.java:1521)

org.openid4java.consumer.ConsumerManager.verify(ConsumerManager.java:1156)

org.springframework.security.openid.OpenID4JavaConsumer.endConsumption(OpenID4JavaConsumer.java:169)

org.springframework.security.openid.OpenIDAuthenticationFilter.attemptAuthentication(OpenIDAuthenticationFilter.java:145)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)

org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:150)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)


Re: [Dhis2-devs] Morbidity and mortality program in demo dhis2 site

2015-03-18 Thread Ngoc Thanh Nguyen
Thanks Abyot. After 1 day working with HISP Vietnam team I am get full of
control the Tracker.
It is technically fine now, however, I shift my interest to knowing how
people actually use the system, approaches and best practices.

Thanh


On Mon, Mar 16, 2015 at 4:29 PM, Abyot Gizaw aby...@gmail.com wrote:

 Hi Thanh,

 Yes the tracker capture is suited for such kinds of use cases. We could
 help you a lot if you are a bit specific on your needs.


 ---
 Thank you,
 Abyot.

 On Sun, Mar 15, 2015 at 7:29 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi all,

 I would like to buid a system for Morbidity and mortality in Vietnam. I
 think the one deployed on the demo site is similar to what we plan to have
 though it may go a bit further, i.e. multiple events with registration
 (tracking a patient throughout their admission history) rather than single
 event without registration.

 Could anyone who were involved in this implementation share some lessons?

 Thanks
 Thanh

 ___
 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] Morbidity and mortality program in demo dhis2 site

2015-03-15 Thread Ngoc Thanh Nguyen
Hi all,

I would like to buid a system for Morbidity and mortality in Vietnam. I
think the one deployed on the demo site is similar to what we plan to have
though it may go a bit further, i.e. multiple events with registration
(tracking a patient throughout their admission history) rather than single
event without registration.

Could anyone who were involved in this implementation share some lessons?

Thanks
Thanh
___
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] Urgent feedback required

2015-02-02 Thread Ngoc Thanh Nguyen
Hi Calle

I voted for Jason's suggestion. In Vietnam, in many cases we use this
approach.
Hacking dhis2 by using days as categories will be problematic in the long
run although such problems may not be visible now.

Once time in the past someone told us to use departments of hospitals as
categories (instead of orgunit). We followed this and this went bankcrupt
shortly.

Thanh

On Fri, Jan 30, 2015 at 9:52 PM, Jason Pickering 
jason.p.picker...@gmail.com wrote:

 Why not just make the dataset daily and transform all monthly data such
 that it occurs on the last day of the month?

 On Fri, Jan 30, 2015 at 2:11 PM, Calle Hedberg calle.hedb...@gmail.com
 wrote:
  Hi,
 
  I need some urgent feedback on one very specific issue:
 
  1.
  We have a lot of monthly data that have been captured on a daily basis
  (up to now in 1.4). The data is in reality monthly aggregated data
  because it is the monthly totals that are used for indicators,
  analysis, reports etc - but the data is captured daily into DHIS to
  enable consistency/completeness tracking and to cut down on the
  erroneous manual data compilation from paper forms at the end of every
  month.
 
  2.
  Initially, the HISP team converted these daily captured values in 1.4
  into datavalues in DHIS2 with dataperiodtype = daily. This approach
  has various shortcomings, in particular when the use of daily
  capturing is slowly being rolled out - meaning that while let us say
  30% of all facilities captured data on a daily basis themselves, the
  remaining 70% are still submitting monthly summary forms to the
  sub-district office for capturing as monthly total data.
 
  3.
  I believe a more logical approach is to store the daily data (Day01,
  Day02, , Day31) as categories - as mentioned, we are in general
  NOT using those daily values for anything beyond the initial data
  quality and completeness process.
 
  QUESTION:
  1. Are there any major drawbacks to storing these daily values as
 categories?
 
  2. Are there any major limitations with regard to the design of data
  entry forms that will make it difficult to have a matrix type data
  entry form where
  (a) the user select OrgUnit, DataSet, and the DATE (as in 2015-01-30)
  (b) the year/month part of that date determines the dataperiodid
  (c) the day portion of the date determines which category will be the
  right-most column in the data entry matrix
  (d) we can display let us say 7 preceding days in the matrix to assist
  the data capturer with eyeballing data during capture (dynamic
  selection  display of categories).
 
  So the entry form would show up as
  DataElement Day23 Day24 Day25 Day26 Day27 Day28 Day29 Day30
  data element1 17 14 15 22 18
  19 20 entry
  data element2 13 11 19 8 15
  12 10 entry
 
  Any quick feedback would be appreciated
 
  Regards
  Calle
 
  ***
 
  Calle Hedberg
 
  46D Alma Road, 7700 Rosebank, SOUTH AFRICA
 
  Tel/fax (home): +27-21-685-6472
 
  Cell: +27-82-853-5352
 
  Iridium SatPhone: +8816-315-19274
 
  Email: calle.hedb...@gmail.com
 
  Skype: calle_hedberg
 
  ***
 
  ___
  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

 --
 Jason P. Pickering
 email: jason.p.picker...@gmail.com
 tel:+46764147049

 ___
 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


Re: [Dhis2-devs] Confusing Use license on dhis2 website

2014-11-02 Thread Ngoc Thanh Nguyen
Thanks Bob and Calle for the great info and interpretation.

@Calle you know so well about Foss though you were many years with MS
Thanh
On Nov 2, 2014 4:08 AM, Calle Hedberg calle.hedb...@gmail.com wrote:

 Hi,

 We've always used the so called Lesser GPL license for 1.x version of
 the DHIS - this also allows any type of derivate software (including
 commercial ones) AS LONG AS THE ORIGINAL SOFTWARE REMAIN FOSS AND THE
 ORIGINAL SOFTWARE IS PACKAGED WITH THE LICENSE.

 So the reference to cannot be used for commercial purposes refers to the
 original software, not significant derivatives. We've never had a problem
 with any commercial entity trying to hi-jack the software, though, and I
 think it is a very unlikely scenario - and even less likely with DHIS2
 because by now every potential customer/user knows it's FOSS.

 What IS possible at some stage is that a commercial software company would
 develop some sophisticated add-on package and sell that - we've seen a
 number of those with e.g. PostgreSQL, for instance. And we don't have a
 problem with that.

 Regards
 Calle



 On 1 November 2014 18:41, Bob Jolliffe bobjolli...@gmail.com wrote:

 Agree this is a bit confusing.  I am assuming you read this here:
 http://hisp.org/html/policies.htm#terms

 This is actually the HISP South Africa web site and it looks like these
 are conditions which they are applying to the dhis 1.4 software.  Given
 that they now also support v2 they should really update this.  I think it
 reflects some previous reality.

 It has no effect on the dhis2 software which you download from dhis2.org.

 On 1 November 2014 16:22, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 wrote:

 Hi all

 DHIS2 is licensed as BSD which means that one can customize,
 redistribute, and use it for any purposes (commercial or non-commercial)
 given that the BSD copyright text are retained.

 However, in HISP website it says that materials (include software) on
 the website can not be used for commercial or non-commercial purpose.

 Is it a conflict?

 2. Use License

 a. Permission is granted to temporarily download one copy of the
 materials (information or software) on HISP's web site for personal,
 non-commercial transitory viewing only. This is the grant of a license, not
 a transfer of title, and under this license you may not:

- modify or copy the materials;
- use the materials for any commercial purpose, or for any public
display (commercial or non-commercial);
- attempt to decompile or reverse engineer any software contained on
HISP's web site;
- remove any copyright or other proprietary notations from the
materials; or
- transfer the materials to another person or mirror the materials
on any other server.



 ___
 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




 --

 ***

 Calle Hedberg

 46D Alma Road, 7700 Rosebank, SOUTH AFRICA

 Tel/fax (home): +27-21-685-6472

 Cell: +27-82-853-5352

 Iridium SatPhone: +8816-315-19274

 Email: calle.hedb...@gmail.com

 Skype: calle_hedberg

 ***


___
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] Confusing Use license on dhis2 website

2014-11-01 Thread Ngoc Thanh Nguyen
Hi all

DHIS2 is licensed as BSD which means that one can customize, redistribute,
and use it for any purposes (commercial or non-commercial) given that the
BSD copyright text are retained.

However, in HISP website it says that materials (include software) on the
website can not be used for commercial or non-commercial purpose.

Is it a conflict?

2. Use License

a. Permission is granted to temporarily download one copy of the materials
(information or software) on HISP's web site for personal, non-commercial
transitory viewing only. This is the grant of a license, not a transfer of
title, and under this license you may not:

   - modify or copy the materials;
   - use the materials for any commercial purpose, or for any public
   display (commercial or non-commercial);
   - attempt to decompile or reverse engineer any software contained on
   HISP's web site;
   - remove any copyright or other proprietary notations from the
   materials; or
   - transfer the materials to another person or mirror the materials on
   any other server.
___
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] Last 12 months -- no values but last 3 months -- have values

2014-09-23 Thread Ngoc Thanh Nguyen
Is this a bug?

[image: Inline image 1]

[image: Inline image 2]
___
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] [Dhis2-users] dhis 2.16 upgrade notes

2014-09-10 Thread Ngoc Thanh Nguyen
Hi

DHIS2 is not exhaustively tested in mysql so don't be discouraged. I often
see this error.
Try the following:
- mvn clean
- check your hibernate configuration file
- try with a fresh new db to see if that error occurs

Thanh



On Thu, Sep 11, 2014 at 8:55 AM, sumudu weerasinghe sumudu...@gmail.com
wrote:

 Hi Lars and all,
 I used dhis 2.15 for our mental health information system, which contain
 both tracker and aggregate parts. I try to upgrade my instance to 2.16 from
 2.15. Above mention things has been automatically happened , but there is a
 error

1.  2.16 war file deployed on 2.15 database
2. then data entry form unable to load
3. give memory problem

 Can anyone advise regarding upgrading in to 2.16 ?
 Detail of log file and screen shot attach here.
 I am using
 *Version: 2.16**Build revision:16410**Database type:MySQL*
 *Java version:1.7.0_04**OS name:Windows 7*
 Regards
 Sumudu


 On Tue, Aug 5, 2014 at 12:33 AM, Lars Helge Øverland larshe...@gmail.com
 wrote:

 Hi,

 a note on how to upgrade to dhis version 2.16:

 The following changes *require* *action* on the implementer's side.

- From data administration  scheduling, scheduling should be
deactivated, set according to your needs and finally activated.
- A property encryption.password should be added to
hibernate.properties file if you plan to use the data synchronization
feature, see the docs

 https://www.dhis2.org/doc/snapshot/en/implementer/html/ch08s02.html#d5e505
.

 The following database changes require *no action* and will happen
 automatically when running the new WAR file the first time.

- Column completed of table programstageinstance has been removed
and is replaced by the existing status column.
- The values in column domaintype of table dataelement have been
migrated from aggregate to AGGREGATE and from patient to TRACKER.
- A column lastupdated will be added to table datavalue, this
might take some time when starting up the system for the first time.

 This information can also be found here:

 https://www.dhis2.org/2.16-upgrade

 We encourage people to upgrade their instances, test the new features and
 provide feedback.

 best regards,

 Lars


 ___
 Mailing list: https://launchpad.net/~dhis2-users
 Post to : dhis2-us...@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~dhis2-users
 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


___
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] java.sql.SQLException: Field 'periodid' doesn't have a default value

2014-09-07 Thread Ngoc Thanh Nguyen
Currently I use MySQL 5, Tomcat 7 on Linux.

dhis2 version 2.16

Have any one encountered this issues?

Here is the trace:

equestFilter.java:106)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
Handler.java:1212)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
99)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav
a:216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1
82)
at
org.mortbay.jetty.handler.ContextHandler.__handle(ContextHandler.java
:766)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java)
at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)

at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHand
lerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.
java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1
52)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54
2)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio
n.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja
va:410)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j
ava:582)
Caused by: java.sql.SQLException: Field 'periodid' doesn't have a default
value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2825)
at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:2156)
at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2459)
at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2376)
at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2360)
at
com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewP
roxyPreparedStatement.java:105)
at
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(
ResultSetReturnImpl.java:133)
... 152 more
* INFO  2014-09-07 23:15:05,238 'admin' create org.hisp.dhis.period.Period,
name
: 20141216, uid: 20141216 (AuditLogUtil.java [2062952956@qtp-224922962-27])
* WARN  2014-09-07 23:15:05,243 SQL Error: 1364, SQLState: HY000
(SqlExceptionHe
lper.java [2062952956@qtp-224922962-27])
* ERROR 2014-09-07 23:15:05,244 Field 'periodid' doesn't have a default
value (S
qlExceptionHelper.java [2062952956@qtp-224922962-27])
2014-09-07 23:15:05.245:WARN::/api/dataValues
org.hibernate.exception.GenericJDBCException: could not execute statement
at
org.hibernate.exception.internal.StandardSQLExceptionConverter.conver
t(StandardSQLExceptionConverter.java:54)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlException
Helper.java:125)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlException
Helper.java:110)
at
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(
ResultSetReturnImpl.java:136)
at
org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAn
dExtract(IdentityGenerator.java:96)
at
org.hibernate.id.insert.AbstractReturningDelegate.performInsert(Abstr
actReturningDelegate.java:58)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
tEntityPersister.java:2966)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(Abstrac
tEntityPersister.java:3477)
at
org.hibernate.action.internal.EntityIdentityInsertAction.execute(Enti
tyIdentityInsertAction.java:81)
at
org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
at
org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(Ac
tionQueue.java:203)
at
org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java
:183)
at
org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:167)
at
org.hibernate.event.internal.AbstractSaveEventListener.addInsertActio
n(AbstractSaveEventListener.java:321)
at
org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrR
eplicate(AbstractSaveEventListener.java:286)
at
org.hibernate.event.internal.AbstractSaveEventListener.performSave(Ab

[Dhis2-devs] Help: dhis2 dataentry form shows only year 2013 periods

2014-09-05 Thread Ngoc Thanh Nguyen
Hi all,

After upgrading to 2.16, our data entry form shows only year 2013 periods
When clicking next year button, there is no period in the list.

How do we fix this?

[image: Inline image 1]
___
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] Auto-calculated data in entry forms

2014-09-02 Thread Ngoc Thanh Nguyen
great. surprised that a medical doctor can write that code. if you turn it
to jquery it is much easier. anyway, its fine for now
On Sep 2, 2014 11:54 AM, Pamod Amarakoon pam...@gmail.com wrote:

 Hi,

 Thanks a lot. In fact I'm a medical doctor and have limited knowledhe in
 Javascript. I managed to get it done with following javascript I created.

 height enterd in cm and weight in kg.

 script type=text/javascript

 function updateBMI() {
 var ht = document.getElementById(HeightID-val).value;
 var wt = document.getElementById(WeightID-val).value;
 if(ht!=  wt!=){
 var bmi = wt/(ht*ht/1);
 bmi = +bmi.toFixed(2);
 }else{
 var bmi =Enter Height and Weight;
 }
 var inputbmi= document.getElementById(BMI-ID-val);
 inputbmi.value = bmi;
 }
 updateBMI();

 /script

 It serves the purpose it seems. Pls suggest any modifications


 On Mon, Sep 1, 2014 at 11:52 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 yes you can use custom data entry form and add some js script like
 onchange event on weight and height.

 the event handler should then calculate the bmi and update the text field
 bmi.

 do you have any technical person to do this? if not give me your account
 i can help
 On Sep 2, 2014 12:26 AM, Pamod Amarakoon pam...@gmail.com wrote:

 I'd like to add something to this.

 For example, if we have a data entry form (BMI) for a program stage if
 we have height and weight input boxes/data elements is there a way to
 calculate BMI?
 is it only possible by using javascript/webapp


 On Mon, Sep 1, 2014 at 10:21 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi

 I believe the calculated data value (now as indicator) can only be seen
 after an aggregation is run.
 In addition, in some forms in some countries like VN, auto-calculated
 data elements some time can be input by users.

 In VN, we use Javascript to achieve this. However, it is quite
 complicated. Imagine that you have to rebuild a spreadsheet engine.

 Important lesson learnt was if a dataelement is auto-calculated, make
 sure no one can change it manually. Otherwise, you end up with very low
 data quality.

 Thanh


 On Mon, Sep 1, 2014 at 11:15 PM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Hi Robin,

 You can simply use an indicator to do this.

 In case you have not seen it, we have extensive documentation on the
 use of indicators here


 https://www.dhis2.org/doc/snapshot/en/user/html/ch13.html#indicator_maintenance

 It should also be possible to calculate the value from other data, not
 contained in the data entry form, IF it exists for the same orgunit and
 period.

 Best regards,
 Jason



 On Mon, Sep 1, 2014 at 5:48 PM, Robin Martens mart...@sher.be wrote:

   Dear all,



 Does anyone know if there's a way to have auto-calculated fields in
 data entry forms? This auto-calculated field would then be available for
 further reporting and indicator calculation (i.e. it is a data element
 calculated based on other data elements in the same entry form).



 Actually, if it would be possible to calculate data elements based on
 other data elements outside of a data form, that would be great too (but 
 if
 I remember well this is currently not possible).



 Thanks for any ideas,



 Robin

 ___
 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



 ___
 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




 --
 Pamod




 --
 Pamod


___
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] Auto-calculated data in entry forms

2014-09-02 Thread Ngoc Thanh Nguyen
Hi

it is already inside dhis2 (for every dhis2 page). no need for external
import

Thanh



On Tue, Sep 2, 2014 at 2:17 PM, Pamod Amarakoon pam...@gmail.com wrote:

 Hi,

 Thanx. Is jquery available inside data entry form on the fly or has to
 link it separately to outside library.




 On Tue, Sep 2, 2014 at 12:31 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 great. surprised that a medical doctor can write that code. if you turn
 it to jquery it is much easier. anyway, its fine for now
 On Sep 2, 2014 11:54 AM, Pamod Amarakoon pam...@gmail.com wrote:

 Hi,

 Thanks a lot. In fact I'm a medical doctor and have limited knowledhe in
 Javascript. I managed to get it done with following javascript I created.

 height enterd in cm and weight in kg.

 script type=text/javascript

 function updateBMI() {
 var ht = document.getElementById(HeightID-val).value;
 var wt = document.getElementById(WeightID-val).value;
 if(ht!=  wt!=){
 var bmi = wt/(ht*ht/1);
 bmi = +bmi.toFixed(2);
 }else{
 var bmi =Enter Height and Weight;
 }
 var inputbmi= document.getElementById(BMI-ID-val);
 inputbmi.value = bmi;
 }
 updateBMI();

 /script

 It serves the purpose it seems. Pls suggest any modifications


 On Mon, Sep 1, 2014 at 11:52 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 yes you can use custom data entry form and add some js script like
 onchange event on weight and height.

 the event handler should then calculate the bmi and update the text
 field bmi.

 do you have any technical person to do this? if not give me your
 account i can help
 On Sep 2, 2014 12:26 AM, Pamod Amarakoon pam...@gmail.com wrote:

 I'd like to add something to this.

 For example, if we have a data entry form (BMI) for a program stage if
 we have height and weight input boxes/data elements is there a way to
 calculate BMI?
 is it only possible by using javascript/webapp


 On Mon, Sep 1, 2014 at 10:21 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi

 I believe the calculated data value (now as indicator) can only be
 seen after an aggregation is run.
 In addition, in some forms in some countries like VN, auto-calculated
 data elements some time can be input by users.

 In VN, we use Javascript to achieve this. However, it is quite
 complicated. Imagine that you have to rebuild a spreadsheet engine.

 Important lesson learnt was if a dataelement is auto-calculated, make
 sure no one can change it manually. Otherwise, you end up with very low
 data quality.

 Thanh


 On Mon, Sep 1, 2014 at 11:15 PM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Hi Robin,

 You can simply use an indicator to do this.

 In case you have not seen it, we have extensive documentation on the
 use of indicators here


 https://www.dhis2.org/doc/snapshot/en/user/html/ch13.html#indicator_maintenance

 It should also be possible to calculate the value from other data,
 not contained in the data entry form, IF it exists for the same orgunit 
 and
 period.

 Best regards,
 Jason



 On Mon, Sep 1, 2014 at 5:48 PM, Robin Martens mart...@sher.be
 wrote:

   Dear all,



 Does anyone know if there's a way to have auto-calculated fields in
 data entry forms? This auto-calculated field would then be available 
 for
 further reporting and indicator calculation (i.e. it is a data element
 calculated based on other data elements in the same entry form).



 Actually, if it would be possible to calculate data elements based
 on other data elements outside of a data form, that would be great too 
 (but
 if I remember well this is currently not possible).



 Thanks for any ideas,



 Robin

 ___
 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



 ___
 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




 --
 Pamod




 --
 Pamod




 --
 Pamod


___
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] Auto-calculated data in entry forms

2014-09-01 Thread Ngoc Thanh Nguyen
Hi

I believe the calculated data value (now as indicator) can only be seen
after an aggregation is run.
In addition, in some forms in some countries like VN, auto-calculated data
elements some time can be input by users.

In VN, we use Javascript to achieve this. However, it is quite complicated.
Imagine that you have to rebuild a spreadsheet engine.

Important lesson learnt was if a dataelement is auto-calculated, make sure
no one can change it manually. Otherwise, you end up with very low data
quality.

Thanh


On Mon, Sep 1, 2014 at 11:15 PM, Jason Pickering 
jason.p.picker...@gmail.com wrote:

 Hi Robin,

 You can simply use an indicator to do this.

 In case you have not seen it, we have extensive documentation on the use
 of indicators here


 https://www.dhis2.org/doc/snapshot/en/user/html/ch13.html#indicator_maintenance

 It should also be possible to calculate the value from other data, not
 contained in the data entry form, IF it exists for the same orgunit and
 period.

 Best regards,
 Jason



 On Mon, Sep 1, 2014 at 5:48 PM, Robin Martens mart...@sher.be wrote:

   Dear all,



 Does anyone know if there's a way to have auto-calculated fields in data
 entry forms? This auto-calculated field would then be available for further
 reporting and indicator calculation (i.e. it is a data element calculated
 based on other data elements in the same entry form).



 Actually, if it would be possible to calculate data elements based on
 other data elements outside of a data form, that would be great too (but if
 I remember well this is currently not possible).



 Thanks for any ideas,



 Robin

 ___
 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


___
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] using the dhis OpenID problem

2014-09-01 Thread Ngoc Thanh Nguyen
Yes, thanks Bharath and Morten. After getting your confirmation that there
is no bug in dhis2, I was confident to scrutinize my configuration and
reinstall openid server.
It works great now with user logging from openid form can work in dhis2
like a charm.

The most important trick is I think that is described in this forum: how to
claim an id, i.e. saying that you are owner of that id.

http://serverfault.com/questions/490608/how-to-configure-simpleid-to-claim-my-id

Amazingly, the simpleid tool even though named as simple turns out to be
the best openid server software (rated 5 stars on sourceforge) and was
adopted by big institution like WHO.

Now work left includes building a GUI for managing users of simpleid and
every time a user created in simpleid, it must trigger a user creation in
dhis2.

Anyone who need helps, please feel free to contact me

Thanh

On Mon, Sep 1, 2014 at 11:55 AM, Bharath chbhara...@gmail.com wrote:

 Hi Thanh,

 We are using OpenId feature in DHIS, it is working fine for us.

 - To enable OpenID, first you have to setup in Settings - Access which
 seems you already done.

 - Then you need to specify your OpenId user for corresponding DHIS2 user
 for OpenID property. I am guessing the openid user that user setting may be
 wrongly, usually we set just openid user say some thing like chbharathk,
 but it should be openid uri something like
 https://aa.xx.cc/ads/openid/chbharathk or chbharathk.aa.xx.com, please
 check that part.


 I just tested with demo application (https://apps.dhis2.org/demo) it is
 working fine.



 On Mon, Sep 1, 2014 at 7:00 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Anyone use OpenID features in dhis?  I tried it but it didn't work. I
 always see the login screen after I have successfully logged in via the
 openid provider. Is there a bug on dhis?

 any one who have experience on this please share with me.

 Thanks
 Thanh

 ___
 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




 --

 Regards,
 Bharath Kumar. Ch

___
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] Auto-calculated data in entry forms

2014-09-01 Thread Ngoc Thanh Nguyen
yes you can use custom data entry form and add some js script like onchange
event on weight and height.

the event handler should then calculate the bmi and update the text field
bmi.

do you have any technical person to do this? if not give me your account i
can help
On Sep 2, 2014 12:26 AM, Pamod Amarakoon pam...@gmail.com wrote:

 I'd like to add something to this.

 For example, if we have a data entry form (BMI) for a program stage if we
 have height and weight input boxes/data elements is there a way to
 calculate BMI?
 is it only possible by using javascript/webapp


 On Mon, Sep 1, 2014 at 10:21 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi

 I believe the calculated data value (now as indicator) can only be seen
 after an aggregation is run.
 In addition, in some forms in some countries like VN, auto-calculated
 data elements some time can be input by users.

 In VN, we use Javascript to achieve this. However, it is quite
 complicated. Imagine that you have to rebuild a spreadsheet engine.

 Important lesson learnt was if a dataelement is auto-calculated, make
 sure no one can change it manually. Otherwise, you end up with very low
 data quality.

 Thanh


 On Mon, Sep 1, 2014 at 11:15 PM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Hi Robin,

 You can simply use an indicator to do this.

 In case you have not seen it, we have extensive documentation on the use
 of indicators here


 https://www.dhis2.org/doc/snapshot/en/user/html/ch13.html#indicator_maintenance

 It should also be possible to calculate the value from other data, not
 contained in the data entry form, IF it exists for the same orgunit and
 period.

 Best regards,
 Jason



 On Mon, Sep 1, 2014 at 5:48 PM, Robin Martens mart...@sher.be wrote:

   Dear all,



 Does anyone know if there's a way to have auto-calculated fields in
 data entry forms? This auto-calculated field would then be available for
 further reporting and indicator calculation (i.e. it is a data element
 calculated based on other data elements in the same entry form).



 Actually, if it would be possible to calculate data elements based on
 other data elements outside of a data form, that would be great too (but if
 I remember well this is currently not possible).



 Thanks for any ideas,



 Robin

 ___
 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



 ___
 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




 --
 Pamod


___
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] using the dhis OpenID problem

2014-08-31 Thread Ngoc Thanh Nguyen
Anyone use OpenID features in dhis?  I tried it but it didn't work. I
always see the login screen after I have successfully logged in via the
openid provider. Is there a bug on dhis?

any one who have experience on this please share with me.

Thanks
Thanh
___
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] What is recommended Identity Server for dhis2?

2014-08-30 Thread Ngoc Thanh Nguyen
Hi all

I went through a list here but confused on what identity server I should
use. I plan to deploy multiple dhis2 instances which can be accessed by
using same accounts (single sign on). For this, I want to have my own
Identity Server without having to rely on Google or Facebook.

http://wiki.openid.net/w/page/12995226/Run%20your%20own%20identity%20server

Do anyone have experience on similar attempt or what server is best
supported by dhis2?

Thanks
Thanh
___
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] Dataentry bug for forms with category

2014-07-02 Thread Ngoc Thanh Nguyen
Hi all

I have a form: Form1 with data element DE1

This DE1 has a category combination named CC1

This category combination has only one category namely C1

This C1 has 4 options: O1, O2, O3, O4

The form (automatic) worked fine.

However, when I add one more option to C1 say O5, the form did not show
this option for dataentry.

Is this a bug? If not, it is very rigid as options should be changed over
time.

Thanh
___
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] Screenshots of data entry module - could not load the orgtree

2014-05-21 Thread Ngoc Thanh Nguyen
Hi Morten

It happened with almost all kinds of browsers and OS
This is copy from my pc which uses Windows 7 and Version 34.0.1847.137 m

*Nguyễn Ngọc Thành*



On Wed, May 21, 2014 at 2:12 PM, Morten Olav Hansen morte...@gmail.comwrote:

 Which browser is this? I think you need to provide the exact version + os

 --
 Morten


 On Wed, May 21, 2014 at 3:42 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

  Document was loaded from Application Cache with manifest
 https://hny.vn/sarus/dhis-web-commons/cacheManifest.action index.action:1
  Application Cache Checking event index.action:1
  Application Cache NoUpdate event index.action:1
  Uncaught TypeError: Cannot read property 'transaction' of undefined
 dhis2.storage.idb.js?_rev=13700:244
  Application Cache Checking event index.action:1
  Application Cache NoUpdate event index.action:1
  event.returnValue is deprecated. Please use the standard
 event.preventDefault() instead.



___
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] Problem with offline content on data entry module

2014-05-20 Thread Ngoc Thanh Nguyen
We use dhis2.4. This happened with all kinds of browsers: chrome, firefox,
safari.
For developer consoles, as it happened on users' machine, we did not taken
any snapshot. But from now, we try to collect that kind of information

Thanh



On Tue, May 20, 2014 at 3:18 PM, Morten Olav Hansen morte...@gmail.comwrote:

 Thanh,

 Can you give some more info. Which version of dhis2? which browser and
 version? does it give you anything in the developer console?

 In general dhis2 behaves a lot better in dhis 2.14/2.15 with regards to
 browser storage, but there might still be some glitches here and there

 --
 Morten


 On Tue, May 20, 2014 at 10:14 AM, J. Paul Mutali mut...@gmail.com wrote:

 Hi Thanh,

 I have had the issue with the Org unit not loading, but I have realized
 that it was due to outdated browsers.

 *-*

 *JEAN PAUL MUTALI*

 Kigali - RWANDA

 Skype: mutali.rw

 http://mutali.rw/
 
 If we don't learn to program, we risk being programmed ourselves... program
 or be programmed

 On Tue, May 20, 2014 at 10:07 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi everyone

  We are suffering heavily with the localstorage problem in data entry
 module.
 When user login for the first time, the orgunit tree can not be loaded.

 This problem is only solved when we either clear the cache of the
 browser or re-assign orgunit for the users.

 As this happened for thousands of hospitals, answering phone call for
 support for that number of users become a nightmare. Have you experienced
 something similar or any to overcome this?

 Thanh

 ___
 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



___
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] Problem with offline content on data entry module

2014-05-20 Thread Ngoc Thanh Nguyen
Of course, when I run on my computer, it said valid json. Let me try to
spot the affected computers that has the problem and check that.

Thanh

On Tue, May 20, 2014 at 4:45 PM, Morten Olav Hansen morte...@gmail.comwrote:

 That sounds weird. Could you try:
 SERVERdhis-web-dataentry/getMetaData.action

 and run the output through http://jsonlint.com/ ? just to make sure the
 json is valid, sometimes a bad indicator or something might mess up the
 output (although it doesn't seem like this is the problem here).

 It would really help if you can give me the output from the developer
 console it hard to debug without it.

 --
 Morten


 On Tue, May 20, 2014 at 11:36 AM, Tien De Nguyen dent.j...@gmail.comwrote:

 Hi Morten,

 Here is screeen shot of dataentry form. The dataset combobox always
 loading...

 Sometime problem is resolved when we clear browser cache,  reassigne user
 to other orgunit or create new user with the same orgunit. But sometime one
 of them can not resolve problem.

 I also try to update the newest browser version but it still loading all
 of time.
 [image: Inline image 1]

 -
 Tiến Đệ
 Mobile: 091 686 3797


 On Tue, May 20, 2014 at 4:06 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:


 We use dhis2.4. This happened with all kinds of browsers: chrome,
 firefox, safari.
 For developer consoles, as it happened on users' machine, we did not
 taken any snapshot. But from now, we try to collect that kind of information

 Thanh



 On Tue, May 20, 2014 at 3:18 PM, Morten Olav Hansen 
 morte...@gmail.comwrote:

 Thanh,

 Can you give some more info. Which version of dhis2? which browser and
 version? does it give you anything in the developer console?

 In general dhis2 behaves a lot better in dhis 2.14/2.15 with regards to
 browser storage, but there might still be some glitches here and there

 --
 Morten


 On Tue, May 20, 2014 at 10:14 AM, J. Paul Mutali mut...@gmail.comwrote:

 Hi Thanh,

 I have had the issue with the Org unit not loading, but I have
 realized that it was due to outdated browsers.

 *-*

 *JEAN PAUL MUTALI*

 Kigali - RWANDA

 Skype: mutali.rw

 http://mutali.rw/
 
 If we don't learn to program, we risk being programmed ourselves... 
 program
 or be programmed

 On Tue, May 20, 2014 at 10:07 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

  Hi everyone

  We are suffering heavily with the localstorage problem in data
 entry module.
 When user login for the first time, the orgunit tree can not be
 loaded.

 This problem is only solved when we either clear the cache of the
 browser or re-assign orgunit for the users.

 As this happened for thousands of hospitals, answering phone call for
 support for that number of users become a nightmare. Have you experienced
 something similar or any to overcome this?

 Thanh

 ___
 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






___
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] Problem with offline content on data entry module

2014-05-20 Thread Ngoc Thanh Nguyen
I have tried to put this dataset as Not Allowed Offline. Do you think it
helps?
We will watch out today to see whether any hospitals call for this support




*Nguyễn Ngọc Thành*



On Wed, May 21, 2014 at 4:40 AM, Ha Thai Son hathai_...@yahoo.com wrote:

 Có cách nào xử lý nhanh hơn,
 hôm qua anh đã nhận được yêu cầu cung cấp số liệu cho Bộ rồi,
 Lần này mà không có số liệu thì không còn gì để nói nữa

 Thực tế cho thấy không thể lấy số liệu chi tiết trong thời gian ngắn trên
 phạm vi toàn quốc được.
 Tập trung hoàn thiện hệ thống báo cáo tổng hợp trước,

 Hiện vẫn rất cần em thiết kế cột Cộng dồn, về logic thì có vẻ thừa, nhưng
 thực tiễn thì rất hiệu quả,
 bất cứ thời điểm nào cũng capture được tình hình dịch bệnh,
 Mình không có tiền làm tập huấn nên để hướng dẫn cho mọi người  nhập số
 liệu tồn vào một ngày là rất khó.

 Bs. Hà Thái Sơn
 Cục Quản lý khám chữa bệnh - Bộ Y tế





 On May 20, 2014, at 16:06, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 wrote:


 We use dhis2.4. This happened with all kinds of browsers: chrome, firefox,
 safari.
 For developer consoles, as it happened on users' machine, we did not taken
 any snapshot. But from now, we try to collect that kind of information

 Thanh



 On Tue, May 20, 2014 at 3:18 PM, Morten Olav Hansen morte...@gmail.comwrote:

 Thanh,

 Can you give some more info. Which version of dhis2? which browser and
 version? does it give you anything in the developer console?

 In general dhis2 behaves a lot better in dhis 2.14/2.15 with regards to
 browser storage, but there might still be some glitches here and there

 --
 Morten


 On Tue, May 20, 2014 at 10:14 AM, J. Paul Mutali mut...@gmail.comwrote:

 Hi Thanh,

 I have had the issue with the Org unit not loading, but I have realized
 that it was due to outdated browsers.

 *-*

 *JEAN PAUL MUTALI*
 Kigali - RWANDA
 Skype: mutali.rw

 http://mutali.rw/
 
 If we don't learn to program, we risk being programmed ourselves... program
 or be programmed

 On Tue, May 20, 2014 at 10:07 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi everyone

  We are suffering heavily with the localstorage problem in data entry
 module.
 When user login for the first time, the orgunit tree can not be loaded.

 This problem is only solved when we either clear the cache of the
 browser or re-assign orgunit for the users.

 As this happened for thousands of hospitals, answering phone call for
 support for that number of users become a nightmare. Have you experienced
 something similar or any to overcome this?

 Thanh

 ___
 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





___
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] Screenshots of data entry module - could not load the orgtree

2014-05-20 Thread Ngoc Thanh Nguyen
Document was loaded from Application Cache with manifest
https://hny.vn/sarus/dhis-web-commons/cacheManifest.action index.action:1
Application Cache Checking event index.action:1
Application Cache NoUpdate event index.action:1
Uncaught TypeError: Cannot read property 'transaction' of undefined
dhis2.storage.idb.js?_rev=13700:244
Application Cache Checking event index.action:1
Application Cache NoUpdate event index.action:1
event.returnValue is deprecated. Please use the standard
event.preventDefault() instead.
___
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] Android GIS App to Update OrgUnits

2014-03-23 Thread Ngoc Thanh Nguyen
Great work. Do you have any link between the logined users and the orgunit
theycan update coordinates? If not, they may select a others' orgunits and
overwrite the values.

Thanh

*Nguyễn Ngọc Thành*



On Thu, Mar 20, 2014 at 8:48 PM, wanjala pepela wanjal...@yahoo.com wrote:

 That will be great

 PEPELA WANJALA
 *MINISTRY OF HEALTH HEADQUARTERS*
 *HEALTH SECTOR MONITORING  EVALUATION*
 *AFYA HOUSE, LG 37*
 *P.O BOX 30016, NAIROBI, KENYA*
 *TEL: +254 (020) 2717077 EXT 45097*
 *CELL: +254 (0) 722375633 *
 *EMAIL: wanjal...@yahoo.com wanjal...@yahoo.com, wanjal...@gmail.com
 wanjal...@gmail.com*
 *h...@health.go.ke h...@health.go.ke*
  *HealthInformation Management - Making a World of Difference”*



   On Thursday, March 20, 2014 3:31 PM, Juma Lungo jlu...@yahoo.com
 wrote:
  Dear all,

 We have completed to develop an Android GIS app which updates facility
 coordinates in DHIS2. This app can be used to collect GIS coordinates of
 all orgunits. The app grab coordinates of the location, so to collect
 orgunit, a user need to visit a facility and update from inside the
 facility building.

 It can be installed on any Android Mobile Phone. The 'save' button would
 not be displayed if a user has forgotten to switch on the GPS on the
 mobile. A user will preview the coordinates before uploading. It will
 'always' overwrite existing coordinate. A user can view and hence updates
 coordinates of the facilities assigned to her. To assign facilities to
 user, it uses the same inbuilt user roles of the DHIS2.

 We are making final testing and we will publish it early next month.

 see attached screenshots.

 ___
 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


___
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] Password Generation

2014-03-22 Thread Ngoc Thanh Nguyen
Kenneth

Have you read one of my mail in previous discussion. I used this approach
to generate 2000 users automatically with passwords, roles, and assign them
to appropriate orgunit where the users belong to

In case you need to expedite creation of thousands of users and passwords the
following classes might help. In essence, all of user creation steps can be
done by sql. However, password hash is a bit tricky in dhis2 when it
depends on Spring Security.

https://dl.dropboxusercontent.com/u/63702128/dhis2%20user%20generator/GeneratePassword.java
https://dl.dropboxusercontent.com/u/63702128/dhis2%20user%20generator/RandomGenerator.java

After having a list of username and password pairs you can use sql to fill
in users and userinfo tables, plus other germane tables for assigning
orgunit and roles.

Cheers,
Thanh


*Nguyễn Ngọc Thành*



On Thu, Mar 20, 2014 at 7:35 PM, Kenneth Børtveit 
kenneth.bortv...@gmail.com wrote:

 Thanks everybody :)

 Not really fond of registrating users with queries.

 I think it will effect the reporting rates in a bad way.

 I think registrating users should be done through the DHIS2 interface
 while giving instructions on how to use the reporting system and involving
 the right people.

 For now I am trying to set up a test environment that will show if DHIS2
 is supporting a set of requirements and try to document the steps needed
 for the system to meet those requirements.

 Attached is a draft of the requirements and a simple stand-alone .jar file
 for testing purposes.
  
 encode_password.jarhttps://docs.google.com/file/d/0B-3Ir8CscLiLOW1BVlpINEdTakk/edit?usp=drive_web




 2014-03-20 11:57 GMT+01:00 Bob Jolliffe bobjolli...@gmail.com:

 OK you asked for it ...

 Ken the algorithm is contained in the attached Password.java file (its
 based on what I figured out from the spring source code).  This little java
 program takes the username and password as parameters and outputs the
 username,password and hash as recognised by dhis2.

 So if you have for example a csv file containing many, many users, then
 you can incorporate a script along the lines of the attached genpass.tcl to
 generate the hash codes in bulk.  Or just expand the java program to read
 the csv file and possibly even write into postrgres table.  (Personally I
 prefer to do do things a little bit at a time and script through psql).
  Anyway thats up to you .. the algorithm is here.

 There are some security considerations.  The hash algorithm itself is not
 great, but you are stuck with emulating what happens inside dhis2 so no
 point tinkering with that (MD5 must seem like plaintext to the NSA
 nowadays).  A more important consideration is how to generate the 45000
 passwords.  I have used the makepasswd program to generate fairly cryptic
 random passwords (also in a script) but users didn't like them, naturally.
  Randy initially assigned them things like password1, password2, password3
 etc which is also not ideal.

 I wonder is the self registration feature an option for you?  Not that
 users necessarily pick good passwords anyway :-(

 Regards
 Bob


 On 20 March 2014 07:18, Jason Pickering jason.p.picker...@gmail.comwrote:

 I think Bob is the best source for this. I have some R scripts but the
 generated password is not always correct due to peculiar methods which
 spring uses to encrypt the passwords which elude me.

 --Sent from my mobile
 On Mar 20, 2014 5:46 PM, Knut Staring knu...@gmail.com wrote:

 Here are some documents that Randy Wilson shared on the list - though
 they state for  Hashpassword: we have not yet found a quicker way to
 do this than to send the excel file to Bob Jolliffe or Knut Staring
 (HISP).  There is a special algorithm they use to create the MD5 hash
 password, combining the username and the assigned text password.
 Unfortunately I don't remember exactly how I used to do it...would be good
 if you share a how to when you figure it out...


 On Thu, Mar 20, 2014 at 7:42 AM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Hi Kenneth,

 You must look at the source code of DHIS2 and Spring in order to
 understand it. It is not a simple hash, but a salted hash depending on the
 username and password together. This has been previously discussed on this
 list, but it is most clear by analyzing the source code.

 Best regards,
 Jason



 On Thu, Mar 20, 2014 at 5:39 PM, Kenneth Børtveit 
 kenneth.bortv...@gmail.com wrote:

 Hi.

 I am trying to generate passwords to almost 45,000 users in Rwanda.
 There is no problem in generating a random sequence of characters,
 the problem is storing it in a database.

 The password is stored as a hash, but I don't know which hash
 function to use.

 Could anybody assist?

 -Kenneth

 ___
 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] dhis has Remember me?

2014-03-05 Thread Ngoc Thanh Nguyen
I think this feature is very useful. Users do not have to re-sign in many
times.

Do we have this?
___
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] Malicious uploaded files to dhis. Tomcat bug or dhis?

2013-10-22 Thread Ngoc Thanh Nguyen
Excellent Bob. i think we use tomcat manager. Then it is the problem.

On Tuesday, October 22, 2013, Bob Jolliffe bobjolli...@gmail.com wrote:
 Hi Thanh
 Never seen this.  But to answer how they could be uploaded to your
folder, there are many many ways.
 First check that they are not bundled in your war file to start with
(Just to be paranoid I just rechecked the standard download from dhis2.org).
 ie. be sure it is not the developer who is unwittingly (or wittingly!)
spreading this.
 Then you need to tell us more about how your tomcat is deployed and on
what.
 Basically you are looking at two possibilities - your operating system is
compromised and the offending items have been copied in to the webapps
folder. There are obviously a couple of ways this could happen.  Or a
weakness is being exposed by an application running on the webserver itself.
 The second is more likely.  The first would assume that you really do
have enemies who want to get you and know how (I guess not to be
dismissed!) whereas the second would be more likely to be a robotic sort of
attack which targets your server for the simple reason that it is
vulnerable.
 A quick checklist:
 1.  Is tomcat running as root user?  I see this so many times.  Do not
run it as root as if it is compromised the damage cannot be easily limited
 2.  Are you running the tomcat manager application?  My guess is that
probably it would require the manager application to be able to make such
modifications to existing webapps.  And there are many known
vulnerabilities to this which are being revealed and plugged regularly.  If
you must run it then you need to secure which ips have access to it and not
expose it the internet.  Note if you just downloaded tomcat binary as is
from the internet and unpacked that in all its glory you will be running
the manager by default.
 3.  Are you running behind a proxy (nginx/apache)?  You should always do
this as it can provide an additional layer of protection to your tomcat
(performance protection with caching, transport protection with ssl, tomcat
misconfiguration protection).  To be really effective of course you make
sure tomcat is only listening on localhost interface.
 4.  Are you using ssl to protect passwords?
 There's lots of other good avice here
http://tomcat.apache.org/tomcat-7.0-doc/security-howto.html .
 Don't destroy the audit trail when you clean up after this mess - ie.
keep a copy of all log files as the offending jsps.  Then start again,
carefully.
 Have you looked in to the contents of those files?  Could be there are
clues there ...
 Bob

 On 22 October 2013 05:30, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
wrote:

 Hi all,
 In the server we found some strange files, definitely malicious.
 How could they upload them to dhis2 folder? Any one have the same
problem?

/mail/u/0/s/?view=attth=141dfa22127061b9attid=0.1disp=embrealattid=ii_141de6c36edfbe55zwatsh=1


 ___
 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




-- 
*Nguyễn Ngọc Thành*
___
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] Data entry form navigated in 4 directions using arrow keys

2013-10-03 Thread Ngoc Thanh Nguyen
Many users requested to be able to do 4 ways navigation in entry form.
I made the following change to enable that feature. I'd like to share it to
those who have ever received that kind of request from users.


1. Remove the keypress bind event in form.js
2. Add an attribute (I used mycol) to each text field to group all the
inputs that belong to a column. Like this input name=entryfield
mycol='col$colid'
3. Add the following js script to the entry form.

It works really fine.


$(document).ready(function() {
$(.entryfield).keydown( function (e) {
switch(e.keyCode)
{
// left arrow
case 37:
$(this).parent()
.prev()
.children(.entryfield)
.focus();
break;

// right arrow
case 39:
$(this).parent()
.next()
.children(.entryfield)
.focus();
break;

// up arrow + as attr name is already used, I defined mycol to
mark the cells that belong to 1 column
case 40:
$(this).parent()
.parent()
.next()
.children(td)

.children(.entryfield[mycol=+$(this).attr(mycol)+])
.focus();
break;

// down arrow
case 38:
$(this).parent()
.parent()
.prev()
.children(td)

.children(.entryfield[mycol=+$(this).attr(mycol)+])
.focus();
break;
}
});
});
___
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] Copy data from Excel to data entry form

2013-09-25 Thread Ngoc Thanh Nguyen
I have made a feature that allows direct copy from Excel sheet and past to
data entry form

If anyone are interest, you can refer the doc below

Here is some screenshots on how it works

https://dl.dropboxusercontent.com/u/63702128/HuongDanImport.docx

*Nguyễn Ngọc Thành*
___
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] Copy data from Excel to data entry form

2013-09-25 Thread Ngoc Thanh Nguyen
Hi Paul,

It is only available on Vietnam branch, not in main trunk. There are 2
ways. I can send the code snippet and you paste onto your current
data-entry module. The other way is to make a petition to global to include
this into trunk.

Actually code is so simple, they all are client sides and very easy to adapt


//COPY AND PASTE THIS SNIPPET TO ANY VM FILE OF THE DATAENTRY MODULE

!--make a link on top of the page--
div id='exportPanel' style='position:fixed; right:30px; top:20px;
border-bottom: 1px solid grey; '
a href='javascript:importExcel();' style='color:white;'Import Excel.../a
/div

!--this is the dialog --
div id='pasteTableDialog' style='display:none;'
Step 1. Open Excel sheet, select area and press Ctrl+C br/
Step 2. Press Ctr+V to paste to this box: textarea id='excel_data'
onblur='createSourceTable();' onfocus=$(this).val('');/textarea br/
Step 3. Press this button to transfer data input type='button'
value='Copy' onclick='copyTable();' cols='20' /

hr/
div id='excel_table'/div

/div

script
$( #pasteTableDialog ).dialog({
width: 850,
height: 750,
autoOpen: false,
modal:true,
title:COPY FROM EXCEL
});

function importExcel()
{
$( #pasteTableDialog ).dialog('open');
}

function createSourceTable()
{
var data = $('#excel_data').val();
var rows = data.split(\n);

var table = $('table border=1 /');

for(var y in rows)
{
var cells = rows[y].split(\t);
var row = $('tr /');
for(var x in cells) {
row.append('td'+cells[x]+'/td');
}
table.append(row);
}

// build the table from clipboard data
$('#excel_table').html(table);
}

function copyTable()
{

var oSource = $(#excel_table);

var oDest = $(#contentDiv); //contentDiv is a dhis div

var arrSourceInputs = oSource.find(td);

$('.entryfield').each(function(i){
td = arrSourceInputs[i];
$(this).val(td.innerText);
 //trigger change to call saveValue
$(this).change();
});
}

//END OF THE SNIPPET




*Nguyễn Ngọc Thành*



On Wed, Sep 25, 2013 at 9:13 PM, Paul Amendola paul.amend...@rescue.orgwrote:

  Hi Ngoc

 ** **

 This feature is great and exactly what we need. How can I download the
 feature? Any chance you have an English version of the guidelines?

 ** **

 Thanks

 Paul

 ** **

 ** **

 *Paul R. Amendola | Technical Advisor for Health Information Systems
 *International Rescue Committee

 122 E 42nd Street, New York, NY 10168-1289 | *Rescue.org*
 T +1 212 551 0995 | Skype paul.amendola 

 [image: IRC eSignature Graphic]

 ** **

 ** **

 ** **

 ** **

 *From:* Dhis2-devs [mailto:dhis2-devs-bounces+paul.amendola=
 theirc@lists.launchpad.net] *On Behalf Of *Ngoc Thanh Nguyen
 *Sent:* Wednesday, September 25, 2013 6:29 AM
 *To:* dhis2-devs; Thuy Nguyen

 *Subject:* [Dhis2-devs] Copy data from Excel to data entry form

  ** **

 I have made a feature that allows direct copy from Excel sheet and past to
 data entry form

 ** **

 If anyone are interest, you can refer the doc below

 ** **

 Here is some screenshots on how it works

 ** **

 https://dl.dropboxusercontent.com/u/63702128/HuongDanImport.docx


 

 

 *Nguyễn Ngọc Thành*

 ** **

___
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] Distributed DHIS2 and DHIS2 cloud

2013-09-23 Thread Ngoc Thanh Nguyen
ok, Jason. I have some quick note but will detail it and send back to you

Thanh

*Nguyễn Ngọc Thành*



On Mon, Sep 23, 2013 at 10:42 PM, Jason Pickering 
jason.p.picker...@gmail.com wrote:

 Hi Thanh,
 Lets put it back on the list with your findings.I wanted to be sure we had
 some consensus before proceeding too much with that line.  I think the
 configuration steps you took would be great to have in the documents. Why
 don't you summarize what you find out and i can help you write everything
 up into the docs as an alternative, which is perhaps better. The example I
 gave was complete overkill, but maybe you found a good balance between
 having a highly available cluster, versus a complete overkill (which I
 think was my problem).

 Regards,
 Jason








 On Mon, Sep 23, 2013 at 5:28 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Jason, thanks for the discussion. I eventually can get dhis2 work with
 Tomcat clustering. Persisting sessions in jdbc works like a charm with very
 less configuration. Aggregation data entry could happen quite rare, every
 month or every quarter. However, individual data capture can happen daily
 in real time so being down for 1 hour could be catastrophe. My argument is
 dhis2 can be even better if it is configured followed strict standards of
 commercial systems such as High Availability, High Scalability. Instead of
 having 1 server with 16G RAM, why don't we have 2 separate ones with 8GB
 each?

 I don't know why our discussion goes off the list?

 Thanh


 *Nguyễn Ngọc Thành*



 On Mon, Sep 23, 2013 at 10:37 AM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Of course it depends on the use case, my point here was what is the use
 case?? I just did not want you trying to prove to some corporate people
 that just because we are using an OpenSource  product like DHIS2/Tomcat,
 that it is somehow less robust than some commercial equivalent, for the
 vast majority of use cases. But now it seems the requirement is different.

 I think for the case you mention, that has never been tested or
 confirmed I think and would need you to implement session sharing across
 multiple tomcat instances. That sounds a lot more difficult to do than a
 simple cluster. Even if it did work, it would require users  (usually or
 often) to clear their browser cache anyway. IMHO, Upgrades should something
 which should be done at night, with few users active. Normally, they should
 take less than two minutes, again depending on the size of your server.
 Upgrades to a production server should be tested in a testing environment
 and confirmed to work, as usually, they are things you cannot easily
 roll-.back. So, if you are upgrading a production instance every day or
 multiple times a day, it would seem to me you are asking for trouble.
 Again, just the way I feel about it, but trying to implement a clustering
 solution to solve this requirement sounds pretty risky to me.

 Would certainly be worth to investigate and see if you can get it to
 work, as it would certainly help increase redundancy of the deployments.

 Regards,
 Jason





 On Mon, Sep 23, 2013 at 1:48 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 It is, Jason. I think we will need a cluster in case of upgrading
 dhis2. When you want to change a jar file, you have to shutdown the whole
 application but if you have 2 servers you can do one by one and there is no
 pause in the service.
 I think it depends on the use case.


 *Nguyễn Ngọc Thành*



 On Sun, Sep 22, 2013 at 9:47 PM, Jason Pickering 
 jason.p.picker...@gmail.com wrote:

 Hi Thanh,

 Going to take this off the list for the moment, as it may not be so
 constructive.

 I would  take a step back and ask what the use case is. Why do you
 need a cluster? Do you know you need a cluster?

 I think doing it could be a fun way to spend a Sunday afternoon, but
 my wife would probably think it better to spend time with the kids. My
 point is that unless you know you need to do it, don't bother, because it
 has been done before, and it is nothing exotic. It may be good experience
 for you, so could be worth it. However, setting up a DB cluster, Tomcat
 cluster, foo cluster has been done by many others, and the process is well
 documented and proven, so I see no particular need to prove we can setup
 DHIS2 in this environment. We know that it can be done, because it has 
 been
 done with others with very similar types of Java applications. I have 
 setup
 a similar type of architecture with Amazon RDS in the background, fleets 
 of
 application servers, fronted by  load balancers (Apache). Nothing really 
 so
 fancy. But it turned out to be complete overkill, and we went back to a
 single server with 16 GB of memory, and it works just fine for out needs.

 Regards,
 Jason





 On Sun, Sep 22, 2013 at 3:45 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Thanks Jason. The reply is insightful.

 I now try to set up dhis2 on a Tomcat

Re: [Dhis2-devs] Distributed DHIS2 and DHIS2 cloud

2013-09-22 Thread Ngoc Thanh Nguyen
 a sale of unneeded licences.

 Regards,
 Jason



 On Sun, Sep 22, 2013 at 3:14 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi all,

 Some commercial affiliated companies want to kick dhis2 out so they made
 the following arguments: DHIS2 is not built on and use well-know reliable
 solutions such as Microsoft Sharepoint, IBM Websphere,  Oracle Bea Weblogic

 When most of this is wrong they have some valid points that we need to
 be prepared in order to fight back. I would like to get your ideas on

 1. When multiple DHIS2 instances can be deployed in multiple servers
 (virtual or physical) and load balanced by a hard or soft balancer
 (nginxs), this can not solve the real problem of distributed HTTP sessions
 like what can be done in Application Server, i.e. a logged in users
 connected to a instance and this instance die, how can they continue
 without relogin.

 Can using Application Server solve the problems without having to
 rewrite dhis2?

 How are we going to solve this? Will we need to use commercial solutions
 like Terracotta BigMemory or IBM Data Grid?

 2. For database scale, with one database instances installed on single
 server. it has the risk of data loss. We can use database clusters to
 address this issue, and data on clusters mostly rely on memory. My question
 is how this cluster will work with distributed sessions described in
 question 1.

 3. I would like to know the typical deployment of dhis2 in other
 countries. Is that on one or multiple server, with or without database
 clusters? I heard that many countries go for cloud but I am not sure if it
 is a single or multiple cloud servers?

 Can cloud provide us a single virtual but unlimited RAM and CPUs server?
 As if yes, then we don't have to worry about question 1, 2 because we can
 simple add 1000 GB RAM and 10 CPUs to that cloud server.

 Thanks in advanced.

 Thanh





 ___
 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




 --
 Knut Staring
 Dept. of Informatics, University of Oslo
 +4791880522
 http://dhis2.org

___
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] Distributed DHIS2 and DHIS2 cloud

2013-09-21 Thread Ngoc Thanh Nguyen
Hi all,

Some commercial affiliated companies want to kick dhis2 out so they made
the following arguments: DHIS2 is not built on and use well-know reliable
solutions such as Microsoft Sharepoint, IBM Websphere,  Oracle Bea Weblogic

When most of this is wrong they have some valid points that we need to be
prepared in order to fight back. I would like to get your ideas on

1. When multiple DHIS2 instances can be deployed in multiple servers
(virtual or physical) and load balanced by a hard or soft balancer
(nginxs), this can not solve the real problem of distributed HTTP sessions
like what can be done in Application Server, i.e. a logged in users
connected to a instance and this instance die, how can they continue
without relogin.

Can using Application Server solve the problems without having to rewrite
dhis2?

How are we going to solve this? Will we need to use commercial solutions
like Terracotta BigMemory or IBM Data Grid?

2. For database scale, with one database instances installed on single
server. it has the risk of data loss. We can use database clusters to
address this issue, and data on clusters mostly rely on memory. My question
is how this cluster will work with distributed sessions described in
question 1.

3. I would like to know the typical deployment of dhis2 in other countries.
Is that on one or multiple server, with or without database clusters? I
heard that many countries go for cloud but I am not sure if it is a single
or multiple cloud servers?

Can cloud provide us a single virtual but unlimited RAM and CPUs server? As
if yes, then we don't have to worry about question 1, 2 because we can
simple add 1000 GB RAM and 10 CPUs to that cloud server.

Thanks in advanced.

Thanh
___
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] Problem when installing dhis2.12 on Linux server with Postgres database and embeded hibernate properties in jar

2013-08-23 Thread Ngoc Thanh Nguyen
Hi all

We recently move dhis2 to Hibernate (CentOS  Ubuntu) but we both faced the
problem of not being able to start dhis if the hibernate is embeded in
dhis-support-hibernate.jar

We also noticed that no white space allowed after every line in the config
file.

In Windows, it is fine. I guess it might be related to how Linux handle the
properties file.

Any directions?

*Nguyễn Ngọc Thành*
___
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] Where is stderr, stdout of Tomcat in linux

2013-07-23 Thread Ngoc Thanh Nguyen
Hi

We just moved to Linux server but could not find where stderr and stdout
message in Tomcat are logged. Any suggestions?
___
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] Where is stderr, stdout of Tomcat in linux

2013-07-23 Thread Ngoc Thanh Nguyen
thanks Knut. I overlooked it when opening it using nano command, it is too
big to be displayed on nano

now its fine

Thanh


On Wed, Jul 24, 2013 at 3:51 AM, Knut Staring knu...@gmail.com wrote:

 Perhaps tomcat/logs/catalina.out


 On Tue, Jul 23, 2013 at 10:49 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi

 We just moved to Linux server but could not find where stderr and stdout
 message in Tomcat are logged. Any suggestions?

 ___
 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




 --
 Knut Staring
 Dept. of Informatics, University of Oslo
 +4791880522
 http://dhis2.org

___
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] Strange request from 127.0.0.1

2013-07-19 Thread Ngoc Thanh Nguyen
In our server tomcat access log, there are lots of requests from 127.0.0.1
which is obviously local request. However, no one from our team actually
working from the server so it must be automatic requests. This might be the
reason for our server problems last several days as the system always
results in full CPU or exceeding memory.

Any one have ideas on how to kill these process?

Thanks
___
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] Strange request from 127.0.0.1

2013-07-19 Thread Ngoc Thanh Nguyen
Hi Jerome,

Is your server public? In my case, I am guessing that some bad guys have
hacked into the system by exploiting some security holes of the system or
probably dhis2 itself.

Thanh


On Fri, Jul 19, 2013 at 5:05 PM, jerome shaguy jeromesha...@gmail.comwrote:

 Hi,

 I have also been experiencing the same problem with my tomcat as reported
 by Ngoc (but in my case it was only after I upgraded my war file to 2.12) I
 am seeing a lot of requests in the log even though I am on 127.0.0.1 and
 its constantly exceeding memory and completely halting simple processes...
 I have tried to adjust memory to tomcat but this has not helped. I join
 Ngoc in asking is there anyone out there with a solution?


 On Fri, Jul 19, 2013 at 10:20 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 In our server tomcat access log, there are lots of requests from
 127.0.0.1 which is obviously local request. However, no one from our team
 actually working from the server so it must be automatic requests. This
 might be the reason for our server problems last several days as the system
 always results in full CPU or exceeding memory.

 Any one have ideas on how to kill these process?

 Thanks

 ___
 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


Re: [Dhis2-devs] Strange request from 127.0.0.1

2013-07-19 Thread Ngoc Thanh Nguyen
Thanks Bob. That's definitely the case. However, do you think this can
affect the performance? In other words, will it cause server memory or cpu
problem?

Thanh


On Fri, Jul 19, 2013 at 7:24 PM, Bob Jolliffe bobjolli...@gmail.com wrote:

 I am sure you have a proxy (nginx or apache?) on the same machine.  So the
 users access the proxy and the proxy accesses tomcat (which sees the
 request as a local one).

 You need to add a directive to your proxy to preserve the name of the
 requesting host.  On nginx this is:

 see http://ashberlin.co.uk/blog/nginx-proxy-host-header

 On apache2:

 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost

 Bob





 On 19 July 2013 13:39, jeromesha...@gmail.com wrote:

 **
 Hi Ngoc, no my server is not public
 Sent from my BlackBerry wireless device from MTN
 --
 *From: * Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 *Date: *Fri, 19 Jul 2013 18:36:20 +0700
 *To: *jerome shaguyjeromesha...@gmail.com
 *Cc: *dhis2-devsdhis2-devs@lists.launchpad.net
 *Subject: *Re: [Dhis2-devs] Strange request from 127.0.0.1

 Hi Jerome,

 Is your server public? In my case, I am guessing that some bad guys have
 hacked into the system by exploiting some security holes of the system or
 probably dhis2 itself.

 Thanh


 On Fri, Jul 19, 2013 at 5:05 PM, jerome shaguy jeromesha...@gmail.comwrote:

 Hi,

 I have also been experiencing the same problem with my tomcat as
 reported by Ngoc (but in my case it was only after I upgraded my war file
 to 2.12) I am seeing a lot of requests in the log even though I am on
 127.0.0.1 and its constantly exceeding memory and completely halting simple
 processes... I have tried to adjust memory to tomcat but this has not
 helped. I join Ngoc in asking is there anyone out there with a solution?


 On Fri, Jul 19, 2013 at 10:20 AM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 In our server tomcat access log, there are lots of requests from
 127.0.0.1 which is obviously local request. However, no one from our team
 actually working from the server so it must be automatic requests. This
 might be the reason for our server problems last several days as the system
 always results in full CPU or exceeding memory.

 Any one have ideas on how to kill these process?

 Thanks

 ___
 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



___
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] Routinely used comboboxes with unique options

2013-07-19 Thread Ngoc Thanh Nguyen
Yes, this definitely makes dhis2 become more user friendly

like


On Fri, Jul 19, 2013 at 8:05 PM, Knut Staring knu...@gmail.com wrote:

 Here is a proposal to improve usability by auto-selection when there is
 only one option available.
 https://blueprints.launchpad.net/dhis2/+spec/unique-options-as-default
 --
 Knut Staring
 Dept. of Informatics, University of Oslo
 +4791880522
 http://dhis2.org

 ___
 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] Automatically mass-generate dhis2 usernames and passwords

2013-07-05 Thread Ngoc Thanh Nguyen
In case you need to expedite creation of thousands of users and passwords
the following classes might help. In essence, all of user creation steps
can be done by sql. However, password hash is a bit tricky in dhis2 when it
depends on Spring Security.

https://dl.dropboxusercontent.com/u/63702128/dhis2%20user%20generator/GeneratePassword.java
https://dl.dropboxusercontent.com/u/63702128/dhis2%20user%20generator/RandomGenerator.java

After having a list of username and password pairs you can use sql to fill
in users and userinfo tables, plus other germane tables for assigning
orgunit and roles.

Thanh
___
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] Automatically mass-generate dhis2 usernames and passwords

2013-07-05 Thread Ngoc Thanh Nguyen
Hi Jason and Bob,

Thanks for rich information about various alternatives of this batched user
creation. Actually, someone pointed me to an email written by Jason about
this topic but the technique in use was R which I am out of competence,
thus I did not know that R can invoke a Java class.

Therefore, I was reluctantly looking at dhis2 module and try to mimic this
user-generator process. Above all of solutions, excel seems to be a good
way as it helps non-dev people to be involved. However, it might have to
also solve the problem of updating database which again will require either
sql or other scripting language. I think the best approach could be we
institutionalize this process by making an online utility that can generate
a sql file (or dxf whatever easier and more convenient) that users can copy
and run on their db.

Thanh




On Fri, Jul 5, 2013 at 11:58 PM, Jason Pickering 
jason.p.picker...@gmail.com wrote:

 Again, look at the R code. I tried to do this in pure R, but it didn't
 work. Therefore, I call the Java class directly to calculate the hashCode.
 I suppose one could delve into the depths of this part of the Java source
 code, but I did not go there. Easier just to call the Java class directly
 and not try and remake the wheel.

 Regards,
 Jason



 On Fri, Jul 5, 2013 at 6:10 PM, Bob Jolliffe bobjolli...@gmail.comwrote:

 Ah Jason I've been down this path (in tcl not surprisingly) ...

 You are almost correct.  For short strings.  But there is some
 conditional related to the length of the string.  Don't remember the
 details.  I think the string hash code is run over a truncated string.
  I'll leave that to someone more enthusiastic.

 I mention VBA just because I guess excel would be a common environment
 for creating these masses of users.  At least they did that in Rwanda.
  Mind you there is a horrible temptation to create these with simple and/or
 duplicate passwords.


 On 5 July 2013 16:46, Jason Pickering jason.p.picker...@gmail.comwrote:

 VBA? Really?

 It is pretty simple actually.. Look at the R code and it is
 supersimple.  First you calculate the Java hash code (
 http://en.wikipedia.org/wiki/Java_hashCode()) of the user name and wrap
 this in curly braces and prepend the desired password. . Since the
 algorithm is well documented, I guess a creation of VBA function to do this
 should be simple.  Concatenate the password and the hashed username
 together, and calculate the MD5 sum of that string. What results is the
 salted encrypted password which should work for DHIS2.

 But then one either needs to create a series of SQL inserts (userinfo,
 users, usermembership, userrolemembers in that order) or I guess use DXF to
 import it all. Have done it in R, but not sure I want to try with VBA.  :)

 Regards,
 Jason





 On Fri, Jul 5, 2013 at 5:40 PM, Bob Jolliffe bobjolli...@gmail.comwrote:

 I suspect what would be really useful is to have a VBA (or whatever the
 .net equivalent is) of this hash algorithm so that it can be easily used
 with excel.

 I started picking the spring algorithm with java string hash apart once
 .. got about 80% through then got bored and stuck with java.


 On 5 July 2013 16:15, Jason Pickering jason.p.picker...@gmail.comwrote:

 Thanks for this. Looks very useful. Another way to do this (which I
 have mentioned before on the list, is with R). Here are a couple of  R 
 code
 fragments which I think I have sent previously.

 #Generate the Java Hash Code. R does not calculate this properly, so
 we have to revert to using Java for now.
 javaHashCode-function(string=) {
 require(rJava)
 .jinit()
 s - .jnew(java/lang/String, string)
 .jcall(s,I,hashCode) }

 #Start to generate the encrypted passwords
 genEncryptedPass-function(password=district,username=admin) {
 #This is needed for the digest function
 require(digest)
 digest(paste0(password,{,javaHashCode(username),}),serialize=FALSE)
 }

 #Start to build up the data frame here

 result-as.data.frame(cbind(usernames,passwords),stringsAsFactors=FALSE)

 result$encrypt-mapply(genEncryptedPass,password=result$passwords,username=result$usernames)

 So, with these two basic functions (javaHashCode and
 genEncryptedPass), you can generate the meat of what you need. If you have
 a list of usernames and passwords (which of course can also be generated 
 in
 R) in a dataframe called result, the last line will give you the
 encrypted password.

 Using SQL, you can then generate of course some insert statements or
 DXF to import into DHIS2. If anyone needs more code for this, I can 
 provide
 some more details. I suspect the same thing could be easily done with 
 other
 scripting languages as well.

 I think these Java classes will help but would suggest to abstract out
 these methods a bit as right now, the DB connection is hard coded?

 Regards,
 Jason



 On Fri, Jul 5, 2013 at 4:26 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 In case you need to expedite creation of thousands of users

Re: [Dhis2-devs] Dùng tính năng lập danh sách làm việc để in các mẫu phiếu và in chứng chỉ

2013-02-20 Thread Ngoc Thanh Nguyen
Cảm ơn email của Hiền.
Nếu các đơn vị khác cũng làm được như Đà nẵng thì phần mềm này chắc không
cần phải training gì hết.
Anh có cc cho các bạn trong nhóm hỗ trợ để có thêm kinh nghiệm khi hỗ trợ
chỗ khác.
Em xem trả lời của a phía dưới

2013/2/20 Hien Nguyen dsthuhien_dan...@yahoo.com

 hi anh Thanh
 cám ơn anh vì có thêm mục danh sách làm việc, nó tiện lợi hơn trước đây
 rất nhiều. tuy nhiên còn 1 xíu này em nhờ anh giúp, khi in danh sách ra
 file excel để lưu lại, em cần thêm 1 cột số điện

ok, anh sẽ thêm cả 3 cột: số ĐT nhà, di động, và email luôn.


 thoại. ngoài ra việc in chứng chỉ bằng phần mềm em chưa thực hiện được do
 các vấn đề sau:
 1. máy in dùng để in chứng chỉ đang nối với máy tính cũ, dùng internet rất
 chập chờn
 2. máy tính mới em dùng để gửi mail cho anh đây nối với máy in ko chất
 lượng, em với anh IT ở sở ko kết nối máy in chứng chỉ với máy tính mới đc,
 ko biết anh có giúp em đc ko


nếu kết nối không được có lẽ do driver, Windows XP hỗ trợ rất ít driver
nhất là các thiết bị đời mới, có khi không hỗ trợ luôn. Microsoft cũng hết
hỗ trợ WinXP, em cho a biết hiệu máy in đời máy in a tìm driver thử xem,
nếu ko được chắc phải chuyển sang Win7 hoặc Wind8


 3. mẫu in chứng chỉ theo phần mềm ko tương thích với phôi chứng chỉ hành
 nghề của sở em đc cấp. nếu em in ra thì chữ sẽ tràn ra ngoài. ngoài ra em
 nhận phôi 3 lần thì 3 lần phôi ko giống nhau, nên em cũng chẳng biết là cái
 này phù hợp với đợt này, qua đợt sau có còn xài được hay ko.

Cái này a cũng đã phát hiện ra, phôi Bình Dương đưa cho anh so với phôi của
Hà Nội cũng bị lệch nhau. Nghĩa là mỗi đợt phôi in lại khác nhau và ko biết
bao giờ mới kết thúc chuyện này. Anh có 2 cách:
- Hệ thống cho phép Save as... file chứng chỉ thành Word trong đó mỗi trang
là 1 chứng chỉ. Em Save lại sau đó căn trực tiếp trên word
- Cách 2: mỗi tỉnh thực chất có 1 template, a sẽ gửi template cho từng
tỉnh, em in thử template trên mẫu phôi (bản copy thôi nhé), sau đó gửi
email file template lại a sẽ upload lên hệ thống.
Nếu quá trình này phiền quá, anh sẽ làm tính năng để em tự upload file
template lên ( chắc mất 1, 2 ngày mới xong).


 Nếu giải quyết được các vấn đề này thì công việc sẽ tiện cho em rất nhiều.
 Mới đầu năm mà em đã làm phiền anh nhiều. hì, cám ơn anh

 Cảm ơn các đóng góp qúy báu của em, chắc chắn các vấn đề này sẽ được giải
quyết.
Còn 1 ý nữa là lần ra Đà nẵng a có thấy bên em dùng phiếu trình duyệt. Thực
tế, em có thể in trực tiếp phiếu này ra từ hệ thống luôn. Khi duyệt hồ sơ
cán bộ chỉ cần ghi vào Phần kết quả và lý do thôi.

Thành




 --- On *Sun, 17/2/13, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com*wrote:


 From: Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 Subject: Dùng tính năng lập danh sách làm việc để in các mẫu phiếu và in
 chứng chỉ
 To: Hien Nguyen dsthuhien_dan...@yahoo.com
 Cc: Hà Thái Sơn hathai_...@yahoo.com
 Date: Sunday, 17 February, 2013, 13:42


 Hi Hiền,

 Ăn tết vui không em? Em có thể test giúp anh tính năng lập danh sách làm
 việc k?
 Hồ sơ của 1 đợt xét duyệt em bỏ hết vào 1 danh sách làm việc từ đó em in
 ra các phiếu Trình duyệt, phiếu trả kết quả, và cả in chứng chỉ luôn.
 Anh muốn thử trên hồ sơ thật của Đà Nẵng để rà soát lại thật kỹ trước khi
 đào tạo toàn quốc.

 Hiện a mới thử các tính năng này tại: Bình Dương và Hà Nội nên muốn có
 thêm Đà Nẵng.
 Nếu em thấy khó khăn anh sẽ cử người vào giúp làm trực tiếp luôn.

 Cảm ơn em

 Thành


___
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] Dùng tính năng lập danh sách làm việc để in các mẫu phiếu và in chứng chỉ

2013-02-20 Thread Ngoc Thanh Nguyen
Apologized. This email was wrongly sent to recipients.

Thanh

2013/2/20 Ngoc Thanh Nguyen thanh.hispviet...@gmail.com

 Cảm ơn email của Hiền.
 Nếu các đơn vị khác cũng làm được như Đà nẵng thì phần mềm này chắc không
 cần phải training gì hết.
 Anh có cc cho các bạn trong nhóm hỗ trợ để có thêm kinh nghiệm khi hỗ trợ
 chỗ khác.
 Em xem trả lời của a phía dưới

 2013/2/20 Hien Nguyen dsthuhien_dan...@yahoo.com

 hi anh Thanh
 cám ơn anh vì có thêm mục danh sách làm việc, nó tiện lợi hơn trước đây
 rất nhiều. tuy nhiên còn 1 xíu này em nhờ anh giúp, khi in danh sách ra
 file excel để lưu lại, em cần thêm 1 cột số điện

 ok, anh sẽ thêm cả 3 cột: số ĐT nhà, di động, và email luôn.


 thoại. ngoài ra việc in chứng chỉ bằng phần mềm em chưa thực hiện được do
 các vấn đề sau:
 1. máy in dùng để in chứng chỉ đang nối với máy tính cũ, dùng internet
 rất chập chờn
 2. máy tính mới em dùng để gửi mail cho anh đây nối với máy in ko chất
 lượng, em với anh IT ở sở ko kết nối máy in chứng chỉ với máy tính mới đc,
 ko biết anh có giúp em đc ko


 nếu kết nối không được có lẽ do driver, Windows XP hỗ trợ rất ít driver
 nhất là các thiết bị đời mới, có khi không hỗ trợ luôn. Microsoft cũng hết
 hỗ trợ WinXP, em cho a biết hiệu máy in đời máy in a tìm driver thử xem,
 nếu ko được chắc phải chuyển sang Win7 hoặc Wind8


 3. mẫu in chứng chỉ theo phần mềm ko tương thích với phôi chứng chỉ hành
 nghề của sở em đc cấp. nếu em in ra thì chữ sẽ tràn ra ngoài. ngoài ra em
 nhận phôi 3 lần thì 3 lần phôi ko giống nhau, nên em cũng chẳng biết là cái
 này phù hợp với đợt này, qua đợt sau có còn xài được hay ko.

 Cái này a cũng đã phát hiện ra, phôi Bình Dương đưa cho anh so với phôi
 của Hà Nội cũng bị lệch nhau. Nghĩa là mỗi đợt phôi in lại khác nhau và ko
 biết bao giờ mới kết thúc chuyện này. Anh có 2 cách:
 - Hệ thống cho phép Save as... file chứng chỉ thành Word trong đó mỗi
 trang là 1 chứng chỉ. Em Save lại sau đó căn trực tiếp trên word
 - Cách 2: mỗi tỉnh thực chất có 1 template, a sẽ gửi template cho từng
 tỉnh, em in thử template trên mẫu phôi (bản copy thôi nhé), sau đó gửi
 email file template lại a sẽ upload lên hệ thống.
 Nếu quá trình này phiền quá, anh sẽ làm tính năng để em tự upload file
 template lên ( chắc mất 1, 2 ngày mới xong).


 Nếu giải quyết được các vấn đề này thì công việc sẽ tiện cho em rất
 nhiều. Mới đầu năm mà em đã làm phiền anh nhiều. hì, cám ơn anh

 Cảm ơn các đóng góp qúy báu của em, chắc chắn các vấn đề này sẽ được giải
 quyết.
 Còn 1 ý nữa là lần ra Đà nẵng a có thấy bên em dùng phiếu trình duyệt.
 Thực tế, em có thể in trực tiếp phiếu này ra từ hệ thống luôn. Khi duyệt hồ
 sơ cán bộ chỉ cần ghi vào Phần kết quả và lý do thôi.

 Thành




 --- On *Sun, 17/2/13, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com*wrote:


 From: Ngoc Thanh Nguyen thanh.hispviet...@gmail.com
 Subject: Dùng tính năng lập danh sách làm việc để in các mẫu phiếu và in
 chứng chỉ
 To: Hien Nguyen dsthuhien_dan...@yahoo.com
 Cc: Hà Thái Sơn hathai_...@yahoo.com
 Date: Sunday, 17 February, 2013, 13:42


 Hi Hiền,

 Ăn tết vui không em? Em có thể test giúp anh tính năng lập danh sách làm
 việc k?
 Hồ sơ của 1 đợt xét duyệt em bỏ hết vào 1 danh sách làm việc từ đó em in
 ra các phiếu Trình duyệt, phiếu trả kết quả, và cả in chứng chỉ luôn.
 Anh muốn thử trên hồ sơ thật của Đà Nẵng để rà soát lại thật kỹ trước khi
 đào tạo toàn quốc.

 Hiện a mới thử các tính năng này tại: Bình Dương và Hà Nội nên muốn có
 thêm Đà Nẵng.
 Nếu em thấy khó khăn anh sẽ cử người vào giúp làm trực tiếp luôn.

 Cảm ơn em

 Thành



___
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] dhis security issue

2013-01-26 Thread Ngoc Thanh Nguyen
Hi all,

Sorry if this issue is irrelevant but when I tried to insert something
malicious script to dhis2 field, I got it stored, like this:
[image: Inline image 1]

It means that data are not filtered at all. In theory, it has a risk of XSS
attack. How do we prevent that?

Thanh
image.png___
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] dhis security issue

2013-01-26 Thread Ngoc Thanh Nguyen
No, I don't see it. But even by escaping the output, will it be completely
secured?

Thanh

On Sat, Jan 26, 2013 at 11:42 PM, Morten Olav Hansen morte...@gmail.comwrote:

 Everything coming out of DHIS should be escaped. Are you saying that you
 see the alert box where you can see the name?

 --
 Morten


 On Sat, Jan 26, 2013 at 5:37 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi all,

 Sorry if this issue is irrelevant but when I tried to insert something
 malicious script to dhis2 field, I got it stored, like this:
 [image: Inline image 1]

 It means that data are not filtered at all. In theory, it has a risk of
 XSS attack. How do we prevent that?

 Thanh

 ___
 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



image.png___
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] DHIS2 no longer support mysql?

2012-06-08 Thread Ngoc Thanh Nguyen
When trying the latest trunk version of dhis2 with mysql database, there
were a number of error relating to cache. Also, the start up routine has a
bug in creating minmaxdataelement table because the name was misspelled.
Therefore, no data value is saved after being entered.

So it seems the claim dhis2: DBMS neutral is no longer valid?

t
___
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] Can datamart console works with a proxy?

2012-06-04 Thread Ngoc Thanh Nguyen
I tried to run it behind a proxy, it could not connect to the remote dhis2.
I think proxy is the problem?
Will we support proxy in this app?

T
___
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] Default font-family in dhis2

2012-02-23 Thread Ngoc Thanh Nguyen
LiberationSansRegular is too complex to be a default font in dhis2

In the case of Vietnamese it looks even more problemtatic. I suggeest we
use simple font like Tahoma Arial or Sanserif
___
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] New menu layout

2011-12-17 Thread Ngoc Thanh Nguyen
hi all

The current menu system with only 2 big categories: maintenance and
services seem to be not attractive for data entry clerks who comprise
majority of user base. After logging in, only services menu with data entry
link are available. Also, when they want to enter data, all datasets are
hidden behind a combobox. Why don't we have a front page which shows all
the available functionality to them. This front page can have a style of
Adroid desktop or Window 7 (big icons, hover).

I think I will implement this feature for Vietnam hospital project (as
requested by MOH) in a module but I need inputs from you so that the module
can benefit other settings.

Thanh
___
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] migrate from mysql to postgresql

2011-12-11 Thread Ngoc Thanh Nguyen
I have a dhis2 db on mysql how to move it to postgresql smoothly?

Thanh
___
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] Problem of table minmaxdataelement does not exist with mysql db

2011-12-08 Thread Ngoc Thanh Nguyen
hi

I experienced this problem when using mysql, even with fresh one.

But it disappears in postgres. I think there will be a rountine update
which is not compatiable with mysql

This was also reported by someone from Kosovo.

I share so that other people can avoid and dev can fix

Thanh
___
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] Orgunit attribute can not scope with large number of attributes

2011-12-05 Thread Ngoc Thanh Nguyen
Hi all

I tried to put about 30 extra attributes to orgunit. The number of orgunit
is 1000. So totally, there are 3 orgunitattrvalue but dhis2 takes lots
of time to be logged.
Loading and caching orgunit tree also takes infinitely.

I suppose orgunit attribute values are cached along with orgunit tree?

Thanh
___
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] how to flush all the caches

2011-12-01 Thread Ngoc Thanh Nguyen
Hi all,

I tried to delete orgunit cache in Maintenance/Data admin/Clear cache and
also in browser/clear cache but the orgunit tree in OrgUnit Maintence did
not reflect the change.

So what is the most thorough method to flush dhis2 cache?

T
___
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] trailer about the superior of Java platform which is used to make dhis2

2010-07-03 Thread Ngoc Thanh Nguyen
I found this funny trailer http://jz10.java.no/java-4-ever-trailer.html.

It is great that they speak Norwegian.

Have a nice weekend.
___
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] Proposal on applying systematic testing for dhis2

2010-06-03 Thread Ngoc Thanh Nguyen
Hi Bob,

Thanks for the comments. I have some replies below.

On Thu, Jun 3, 2010 at 3:40 PM, Bob Jolliffe bobjolli...@gmail.com wrote:
 Hi Thanh

 We did receive it and i had a quick read through.  Its great to see
 work being done on testing.  we need lots of it.

 Two comments/questions (to prove that I read it!):
 1.  I am not entirely convinced by your replacement of TSL with Excel.
  TSL is a formal grammar.  It has limitations which have been
 described elsewhere but I don't think that the typing of '[' has ever
 really featured highly :-)   I think you may be confusing the
 specification with the authoring tool when you say that your revised
 TSL is to use excel.  So on the theory side I'd be a bit
 uncomfortable with this aspect of your paper.
 (BTW did you look at schematron as an alternative grammar for
 expressing tests?  I know one of the criticisms of TSL is that it does
 not allow for a very literate human-readable approach. schematron
 allows for a human readable assertions and - though xpath is usually
 used for schema validation - tests can be implemented in any language.
  Perhaps an off-the wall thought ...)

TSL in my paper is about the specification developed by Ostrand 1988.
They developed this specification within the method they called
Category Partition - a combination between Equivalence Partition and
Boundary Analysis. This specification as I feel is a bit complicated
because it required typing [ or ] character. My revision aims to save
time for typing this and also make it readable for a computer program.
I selected Excel because of its popularity and easy-to-use.

CPM is the most popular techniques in black box testing. Cause graph
effect is another method but it requires to draw graphical diagram so
it seems impossible in practice.

XPath or Schematron seems to be out of the scope of CPM.

 2.  I am not very clear - perhaps didn't read carefully enough - how
 you generate the actual tests from the source document.  It looks to
 me that it requires quite a significant understanding of the
 application , the classes etc.  I guess this is where understanding
 the grammar, if any, is important.  Could you generate selenium tests
 from it?  This strikes me as the most black-box kind of testing.

No, CPM can not generate actual test cases and test data. It can
generate test frame (a combination of different input values). Tester
has to provide the test data, hence, to build test case. I find it
hard to have any automation tool to generate test cases (with test
data) automatically. And my tool just does a simple job: 1) read the
Excel file containing category and partition, 2) combination based on
their properties and constraints, 3) and build the test frames based
on the combination.

 How easy would it be to use your tool to do wider test coverage of
 dhis?  Would be a good thing.

Here we come with the test coverage. Black box is different from white
box. It can not produce any code coverage (statement, block, branch,
predicate etc). Not at all. It can not be used with mutation. It seems
there is no way to assess whether a test set is adequate - good
enough. Any one have better idea can correct me on this.

But I am very confident that if we follow the CPM strictly, together
with the support from my tool, i.e. revise the category and partition
building back and forth, we can end up with a 100% test coverage.

The challenge is, for web layer of DHIS2, we could not apply white box
testing. This is partial reason why there is no unit testing for
action class. It is so difficult to mock all the session and
interceptor at least in DHIS2. We have only one choice, that is black
box testing. And so far, we have not done any systematic testing on
web modules. Our current approach is more ad-hoc.

More input needed.
Thanh

 Cheers
 Bob

 On 2 June 2010 12:03, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com wrote:
 Hi all,

 this is a project I did for the testing course this semester. I hope
 it could shed a light for testing aspect of dhis2.

 Notice: the case was built based on the assumption that the system
 specification requires name of orgunit, group, and group set to be
 have between 2-255 characters. Though dhis2 implemented it with text
 field max char = 160.

 Thanh

 ___
 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] Fwd: Proposal on applying systematic testing for dhis2

2010-06-03 Thread Ngoc Thanh Nguyen
Hi Bob,

Thanks for the feedbacks written in your busy time :-). But I have a
small comments on Selenium. Please read below.

On Thu, Jun 3, 2010 at 5:17 PM, Bob Jolliffe bobjolli...@gmail.com wrote:
 Hi

 On 3 June 2010 10:50, Ngoc Thanh Nguyen thanh.hispviet...@gmail.com wrote:
 Hi Bob,

 Thanks for the comments. I have some replies below.

 On Thu, Jun 3, 2010 at 3:40 PM, Bob Jolliffe bobjolli...@gmail.com wrote:
 Hi Thanh

 We did receive it and i had a quick read through.  Its great to see
 work being done on testing.  we need lots of it.

 Two comments/questions (to prove that I read it!):
 1.  I am not entirely convinced by your replacement of TSL with Excel.
  TSL is a formal grammar.  It has limitations which have been
 described elsewhere but I don't think that the typing of '[' has ever
 really featured highly :-)   I think you may be confusing the
 specification with the authoring tool when you say that your revised
 TSL is to use excel.  So on the theory side I'd be a bit
 uncomfortable with this aspect of your paper.
 (BTW did you look at schematron as an alternative grammar for
 expressing tests?  I know one of the criticisms of TSL is that it does
 not allow for a very literate human-readable approach. schematron
 allows for a human readable assertions and - though xpath is usually
 used for schema validation - tests can be implemented in any language.
  Perhaps an off-the wall thought ...)

 TSL in my paper is about the specification developed by Ostrand 1988.
 They developed this specification within the method they called
 Category Partition - a combination between Equivalence Partition and
 Boundary Analysis. This specification as I feel is a bit complicated
 because it required typing [ or ] character. My revision aims to save
 time for typing this and also make it readable for a computer program.
 I selected Excel because of its popularity and easy-to-use.


 Yes I understand all that.  So you have selected excel as a tool for
 authoring your test cases.  Thats fine and I'm sure its a good tool
 for the job for the reasons you describe.  The point is that TSL is a
 language for expressing them.  What do you express? An excel file.
 I really don't think thats the the same thing at all.  I guess what is
 missing is some way to describe those spreadsheets of yours so that
 they can be considered as a sort of language like TSL.

 CPM is the most popular techniques in black box testing. Cause graph
 effect is another method but it requires to draw graphical diagram so
 it seems impossible in practice.

 XPath or Schematron seems to be out of the scope of CPM.

 Not at all.  See
 http://www.computer.org/portal/web/csdl/doi/10.1109/ICSEA.2006.9 for
 example.

 I agree XPath is well out of scope, but schematron is not bound to use
 XPath.  Just so happens that 99% of the time it does because it is
 primarily used for testing xml validity.  But I guess there is nothing
 in principle preventing the actual tests to be implemented as say
 javascript, or even selenium scripts.


 2.  I am not very clear - perhaps didn't read carefully enough - how
 you generate the actual tests from the source document.  It looks to
 me that it requires quite a significant understanding of the
 application , the classes etc.  I guess this is where understanding
 the grammar, if any, is important.  Could you generate selenium tests
 from it?  This strikes me as the most black-box kind of testing.

 No, CPM can not generate actual test cases and test data. It can
 generate test frame (a combination of different input values). Tester
 has to provide the test data, hence, to build test case. I find it
 hard to have any automation tool to generate test cases (with test
 data) automatically. And my tool just does a simple job: 1) read the
 Excel file containing category and partition, 2) combination based on
 their properties and constraints, 3) and build the test frames based
 on the combination.

 OK.  Now I understand.

 How easy would it be to use your tool to do wider test coverage of
 dhis?  Would be a good thing.

 Here we come with the test coverage. Black box is different from white
 box. It can not produce any code coverage (statement, block, branch,
 predicate etc). Not at all. It can not be used with mutation. It seems
 there is no way to assess whether a test set is adequate - good
 enough. Any one have better idea can correct me on this.

 But I am very confident that if we follow the CPM strictly, together
 with the support from my tool, i.e. revise the category and partition
 building back and forth, we can end up with a 100% test coverage.

 Sounds good.


 The challenge is, for web layer of DHIS2, we could not apply white box
 testing. This is partial reason why there is no unit testing for
 action class. It is so difficult to mock all the session and
 interceptor at least in DHIS2. We have only one choice, that is black
 box testing. And so far, we have not done any systematic testing on
 web modules

[Dhis2-devs] Please ignore this message

2010-06-02 Thread Ngoc Thanh Nguyen
Testing whether it response

___
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] Current and future features

2010-03-13 Thread Ngoc Thanh Nguyen
On Thu, Mar 11, 2010 at 6:00 PM, Knut Staring knu...@gmail.com wrote:

 Hello everyone,

 More work needed:

 3. Ability to accept data exported from an electronic data system or
 perform an extraction therefrom

 4. Support for the following types of indicators: count, ratio, %,
 population rate, $, national currency, yes/no/unknown

 5. Hierarchical indicator definition via inheritance or import at
 (minimally) international, national and local level

 7. Ability to aggregate indicators by donor, government agency, partner,
 sub-partner, funding source, activity type, program area

 12. Versioning of data (knowledge of latest date an element of an aggregate
 was updated), release status (preliminary, validated, released, corrected)

 14. Suppression of small counts in output, smudging of geography to
 prevent identification of individuals

 15. Data interchange (especially via IXF3)

 16. Target, revised target and actual data (provides budget capability)

 17. Audit trail

 25. Highly responsive data entry, moderately reponsive report generation

 26. System monitoring reports (timeliness, completeness)

 27. Ability to store and forward text or attachments as identified items
 (narrative reporting)

 28. Ability to add adjustments to indicator values and their justifications
 at each hierarchical level and to specify their allocation among
 disaggregation categories

 30. Reliable, ongoing customer support, including training, software and
 documentation updates, etc


Should we have a short session maybe half day discussing about the dhis2
patient module?

Thanh



 ___
 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




-- 
Best regards,
Thanh

---
Center for HIS development
957, 3/2 st., Dist 11, Hochiminh city
Tel: 08-956 0150
Cell: 098 221 8623

___
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] Greetings + new DHIS patient module

2010-03-03 Thread Ngoc Thanh Nguyen
On Thu, Mar 4, 2010 at 12:11 AM, Bob Jolliffe bobjolli...@gmail.com wrote:

 Hi John

 On 3 March 2010 15:20, John lewis johnlewis.h...@gmail.com wrote:
  Hi bob,
  the system generated ID is to one way to identify the case or person.
 using
  orgunit you mean the code for that organization unit. In india they have
  generated a 16 digit ID based on Country, Province,District,Sub-district
 and
  facility. but the problem with this is what happen if new district
  or province is created. In norway the personal id number is
  ddmmyy+sex+random number. I thougth we cloud use the same but increasing
 the
  random number to avoid the duplicate.

 I think this is a national id number.  In Norway they do indeed use
 the national ID number as a patient ID.  And, believe it or not,
 Norway does not follow best practice in this area.  They do it
 probably because it was convenient and they started doing it at a time
 before anyone really took much time to think about it.  The hazard of
 early adoption in the information age.  They are not the only country
 which now finds itself in this position.

 I've mentioned a few times on this list that national identifiers are
 not always suitable for use as patient identifiers.  That they are
 frequently coerced for this use is now broadly understood to be a
 common but bad practice, largely because the requirements of national
 ids are not generally the same as requirements for patient ids.  There
 are a lot of references out there on what these requirements are - I
 think myself and Saptarshi have provided some links to literature on
 the subject.  Just googled this one fresh for example
 (
 http://books.google.com/books?id=X0JeKx8-J0cCpg=PA59lpg=PA59dq=norway+patient+identifiersource=blots=6C8eZlwxLbsig=zTY4mpmxpNtvGGz-hssv3KVEQh8hl=enei=F46OS7KHEJO7jAfZocDpAwsa=Xoi=book_resultct=resultresnum=5ved=0CB8Q6AEwBA
 )
 coz it mentions Norway - what a horrible url - and not a great
 article.  You can I'm sure access better quality stuff through the
 university.

 In the case of India, where they are now designing a national ID from
 scratch, they might have taken this issue into account - ie they have
 the benefit of hindsight that the identifier might (read it always
 happens!) be used for many purposes beyond what may have been its
 original intent.  So the ID could be useful if encoded on a card or
 something, but the downside being that very few people are going to
 memorize it if it has many random digits.  Alphanumerics can help keep
 it shorter.

 I'm not sure if I get your concern about provinces and districts
 changing etc.  Using a similar scheme but based on facility+unique
 string a patient would only really need to commit to memory the unique
 string part in 95% of cases.  She would only need the full number with
 prefix part when visiting a different facility at which point it would
 be useful to have the full number on a card, file or what have you.
 But even then, if she remembered the facility that she got it from, it
 could be reasonably reconstructed.

 I can sympathize with the desire for simplicity and I think we should
 strive for a simple solution.  But given that is widely accepted that
 encoding the birthdate and gender in a patient id is a bad practice I
 don't think it is wise to roll-out a new personal identification
 system like this.  To me it might indicate a certain amateurism and
 lack of familiarity with the literature which could reflect badly on
 the project.  Particularly as you are undergoing your security review.
  I also do know that the openmrs guys have really put a lot of thought
 into this.

 So my warning would be if you go ahead with birthdates and gender you
 should be prepared to be hammered from all sides.

 Cheers
 Bob


I think we can take a look at here
http://en.wikipedia.org/wiki/National_identification_numberto see how
countries in the world dealing with this problem. While putting
birthdate in the ID is considered as a violence of privacy, most of
countries use it in their national ID systems. They might do thing wrong? ID
system, as I perceive, is very similar to a infrastructure with its
installed based. Addressing it is not the problem of good or bad but what
the current situation is and how to build upon that, I think.

Thanh




 And its also useful that the person
  dont have to remember all the 16 or 14 digit number. for the sake of
  simplicity we used this method.
  John
 
  On Wed, Mar 3, 2010 at 1:35 PM, Bob Jolliffe bobjolli...@gmail.com
 wrote:
 
  Hi
 
  On 3 March 2010 12:20, Viet Nguyen phamquocv...@gmail.com wrote:
  
   Hi,
  
   Just a quick update about Patient registration form functionality :
  
   * Check duplicate :
  
   This function allow user to check for existing patient base on : name
 ,
   birthdate, age, gender
  
   If there is duplicate patient, a pop up will be showed, with the list
 of
   all
   the duplicated patients.
  
   From this pop up, user can have two options :
  
   Continue 

Re: [Dhis2-devs] Mobile data entry for dhis2

2009-09-25 Thread Ngoc Thanh Nguyen
On Fri, Sep 25, 2009 at 6:20 PM, Knut Staring knu...@gmail.com wrote:


 http://bazaar.launchpad.net/~dhis2-devs-core/dhis2/trunk/files/head:/local/in/DHISMIDP/src/org/hispindia/mobile/http://bazaar.launchpad.net/%7Edhis2-devs-core/dhis2/trunk/files/head:/local/in/DHISMIDP/src/org/hispindia/mobile/



Knut,

The Indian solution is j2me, java on mobile. What I mean is WAP, directly
entering dhis2 in mobile without installation.

Thanh


 On Fri, Sep 25, 2009 at 1:05 PM, Ngoc Thanh Nguyen 
 thanh.hispviet...@gmail.com wrote:

 Hi all,
 A simple, friendly mobile data entry for dhis2 would be useful as
 - grps connection in developing countries are good enough
 - 3g connection becomes real soon end of this year.

 Thanh



 ___
 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




 --
 Cheers,
 Knut Staring




-- 
Best regards,
Thanh

---
Center for HIS development
957, 3/2 st., Dist 11, Hochiminh city
Tel: 08-956 0150
Cell: 098 221 8623

___
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] DHIS OpenMRS integration

2009-08-04 Thread Ngoc Thanh Nguyen
Hi all,

I have been following all the discussions. The key issue is how to make
OpenMRS and DHIS2 talk to each other. This is not about what standards
should be used but THE DESIGN of AN interpreter (translator). I think we
could discuss on how to design this mapping.

The key element in DHIS2 is the Dataelement and Value (often a number).
In OpenMRS, Concept is something similar to Dataelement. The answer for
concept (Value) is other concept.

The Period in DHIS2 shares similarity with Encounter date time.
The Orgunit in DHIS2 is similar with Patient and location in OpenMRS.

Here are some examples of mapping:

1. Simple mapping with only *encounter*

In OpenMRS, for outpatient department, every day many patients come to a
clinic (hospital) to have check up.
This check up event will be stored as an encounter with date, time.

For DHIS2, one of the data element could be: Number of patients come to the
clinic this month?

So how to map?
select count(*) from encounter where encounter.date between
FirstDateOfThisMonth and LastDateOfThisMonth

2. Mapping with *Observation and concept*
Ok, after the patient is registered, he come to see doctor in a check up
room. The doctor will give diagnosis saying that he is infected by
tuberculosis or malaria or any kinds of disease.
In OpenMRS, the diagnosis is stored as an observation with the Concept name
is Diagnosis. The answer for this concept is also a list of concepts (ICD
10).

For DHIS2, many data element could be come from this scenario:
- How many [TB] patient in a month?
- How many [Malaria] patient in a month?
- Up to some hundreds of data elements.
.
So how to map?
select count(*) from obs where answer_concept is [TB] and date between
FirstDateOfThisMonth and LastDateOfThisMonth

3. Break out by [sex] and [age]:
The query is the same but with a little modification
select count(*) from encounter where encounter.date between
FirstDateOfThisMonth and LastDateOfThisMonth
--
select count(*) from encounter inner join patient on encounter.patientid =
patient.id where encounter.date between FirstDateOfThisMonth and
LastDateOfThisMonth AND patient.age between [startage] and [endage] and
patient.sex = [sex]

4. Other queries:
Statistical reports require more than just clinical data. This requirements
range from human resources, number of medical lab machines, financial
management etc.
And if there are no such things in OpenMRS, DHIS2 must pull data from other
sources.

Regards,
Thanh










On Mon, Aug 3, 2009 at 8:02 PM, Murodullo Latifov murodlati...@yahoo.comwrote:

 Hi,


 Discussion was mainly around IXF/DXF standards for representing data,
 which I ignored on my initial implementation, and likely will do so for now.
 I am concentrated to make systems talk, after we can think of standards.
 This was agreement with OpenMRS people, who insisted on standards, but after
 long debates I made them agree to go my way. I am actually using XML for
 data exchange, which is standard in a sense. Will come back to discussions
 while progress is made.


 This was not really my impression.  There was a breakout discussion of me,
 Ola, Murod and Paul (from OpenMRS).  Maybe there were long debates
 afterwards which I missed.  Anyway the prevailing view was that before we
 look at a new ad hoc way of doing things we need to be sure that there is
 not an existing standard way which is adequate.  There was nobody who
 thought creating a new xml representation just for this openmrs-dhis
 integration is a good idea.  Unfortunately Ola and I also had not seen
 Murod's work in advance so it was difficult to present a comon dhis view.
 Murod can you share more of what you have done to the wider group?

 Main issue was and is to map DHIS data to OMRS data. None of listed
 standards currently provide it. There should be a medium to dictate standard
 and uniform keys, names, and other attributes for both systems, from all
 available standards only SDMX-HD has some sample data and is good candidate
 to provide such service. Parsing is not an issue, validity of content is.
 That is where systems talk. This standardization is multy step and long
 process. omrs should follow ICD10 and dhis - SDMX-HD, there should be
 mapping between SDMX-HD and ICD10. This is my view of standards and might
 not be correct. Project I created is intended to link two systems in closest
 possible way, not to build standards or discuss standards. Taking this into
 account the rest of messages from this line onward are void. When there is
 proper standard and implementation instructions we can easily shift.

 In terms of discussion, the following options were considered regrading
 data format:

 1. SDMX_HD - Paul had not been aware of the deficiencies which I had
 pointed out.  He was also at pains to insist that OpenMRS was not committed
 to this format yet, but like us, felt that it is better to align with a WHO
 effort if is feasible.  If its not, he's happy not to go that way.  I asked
 him to get a 

Re: [Dhis2-devs] Asking a report on a birt server

2009-05-24 Thread Ngoc Thanh Nguyen
On Mon, May 25, 2009 at 3:04 AM, Orvalho Joaquim Augusto orvaq...@gmail.com
 wrote:

 Thanks!

 This is on discussion here. And for now it sounds too bad.

 For now it seems that we will have birt on p servers only.

 Caveman


I think it is possible.
- In BIRT report, you can set the report url refer to any machines (i.e via
IP address or hostname)
- You can put report.rpt file in any machines, you access them via http:*
//sitePrefix*/birt-viewer/ frameset?*option1*=*value1*;*option2*=*value2;...

Thanh*






 Jason Pickering wrote:

 Not entirely sure I understand your architecture, but I assuming that
 all (p) servers will be pointed to the same central database (c). If
 you design your BIRT report to point to the (c) server, it will make
 no difference whether the report is run from the (p) servers, so long
 as the data source points to the (c) server. If you are looking at
 doing disconnected data entry, as opposed to a central database, you
 will need to collate all of your data into the central server through
 import/export. However, the report should still function in the same
 way. Just be sure that you design the BIRT report with a data source
 to the actual IP address of the server, and not the localhost address.
 Obviously, the report will need to be distributed to the (p) servers,
 but uploaded without a datasource, as this will need to be specified
 in the report itself. Otherwise, perhaps you can just host the report
 on the (c) server and have all the (p) servers run it from there by
 logging in and running the report remotely.

 Hmm, lots of c's and p's there, but this should certainly be doable.

 Regards,
 Jason




 On Sun, May 24, 2009 at 7:55 PM, Orvalho Joaquim Augusto
 orvaq...@gmail.com wrote:

 We plan to have a strange situation.

 We will have at least 5 servers (p) for dhis2 data entry. All that data
 will
 be agregated to a central server (c) where will have central reports.

 The question: How can I make the dhis on p server to use the birt on c
 server?

 It is just an ideia so far. So comments to make it better would be good.

 Thanks
 Caveman


 ___
 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-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




-- 
Best regards,
Thanh

---
Center for HIS development
957, 3/2 st., Dist 11, Hochiminh city
Tel: 08-956 0150
Cell: 098 221 8623

___
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] Global ranges

2009-05-19 Thread Ngoc Thanh Nguyen
On Wed, May 20, 2009 at 3:13 AM, Jason Pickering 
jason.p.picker...@gmail.com wrote:

 Would like to hear what the devs have to say, but maybe something like...

 1) Delete the primary key minmaxdataelementid
 2) Execute

 INSERT INTO minmaxdataelement
 SELECT a.organisationunitid, b.dataelementid, 0 as minvalue, 99 as
 maxvalue, 'TRUE'::boolean as generated
 FROM (SELECT DISTINCT organisationunitid FROM organisationunit) a
 CROSS JOIN
 (SELECT DISTINCT dataelementid FROM dataelement) b

 Knut said that that the DISTINCT elements should probably not be
 there, but just in case...

 3) Recreate the primary key minmaxdatelementid with a serial datatype
 to give you a serial list of integers in this field.
 4) Remove the default value of the primary key and set it back to a
 plain integer data type.
 5) Add the primary key constraint again to the minmaxdataelemntid.


 This procedure will not take into account particular elements that
 only certain data organisationunits should be submitting. So there
 would likely be many min-max elements that would be populated into
 this table that would actually not be necessary. An example would be
 that districts that do not report on a particular dataelement should
 not have a restriction on the min-max value if the actual reporting is
 done at a lower level.

 Seems like a hack to me, but perhaps it might work. It might be better
 to select from the organisationunitstructure table, for a particular
 level, instead of the entire organisationunit table. I would make a
 backup of the DB obviously before I tried any of this. :)

 Regards,
 JPP


Hi Jason,
You may compare to this

Okies, why dont you try this:
- if you want all dataelements have ranges

insert into minmaxdataelement(sourceid, dataelementid, minvalue, maxvalue)
select organisationunitid, dataelementid, 0, 99 from organisationunit,
dataelement

- if you only want those dataelements belonging to datasets assigned to
certain orgunit

insert into minmaxdataelement(sourceid, dataelementid, minvalue, maxvalue)
select o.organisationunitid, dm.dataelementid, 0, 99
from organisationunit o inner join datasetsource ds on o.organisationunitid
= ds.sourceid
inner join datasetmembers dm on dm.datasetid = ds.datasetid

remember to truncate minmaxdataelement table before inserting.


Thanh



 On Tue, May 19, 2009 at 5:06 PM,  joha...@ifi.uio.no wrote:
  Hi,
 
  In Sierra Leone, none of the orgunits have defined min-max ranges yet,
 and
  the historical data is too poor to be used for calculation of such ranges
  yet. Still, there have been some instances of really bad typos, such as
  775 instead of 75. Most entries (maybe around 98%) are below 100, so as a
  temporary shield we would like to set default ranges as 0-99 (to catch
 all
  three-digit entries). Any clue on how to do this? Would running a query
  directly on the database solve it, and what would that query look like?
  (sorry, but not good at SQL)
 
  Johan
 
 
  ___
  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-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




-- 
Best regards,
Thanh

---
Center for HIS development
957, 3/2 st., Dist 11, Hochiminh city
Tel: 08-956 0150
Cell: 098 221 8623

___
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] vietnam boost ICT for health

2009-03-14 Thread Ngoc Thanh Nguyen
It was translated by G

http://translate.google.com/translate?prev=hphl=enu=http%3A%2F%2Fvietnamnet.vn%2Fcntt%2F2009%2F03%2F835589%2Fsl=vitl=en

and Misnistry of ICT recruits more staffs for WITFOR 2009 in Vietnam

http://translate.google.com/translate?prev=hphl=enu=http%3A%2F%2Fvietnamnet.vn%2Fcntt%2F2009%2F03%2F835605%2Fsl=vitl=en

-- 
Best regards,
Thanh

---
Center for HIS development
957, 3/2 st., Dist 11, Hochiminh city
Tel: 08-956 0150
Cell: 098 221 8623

___
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