Re: [Dhis2-users] Insight on program indicator and rule

2018-03-16 Thread Aaron C White
Natalie,

In addition to what Markus and Prosper have suggested, do you have access
to the logs of your server?  That can be a very useful source of
information especially when trying to debug program indicators.  I will
usually set up a terminal tailing the log and then try to view my program
indicator in one of the analytics apps.  You'll see a lot of angry error
messages if it isn't properly formulated and can give some better clues as
to why.

One time I had an expression that was considered valid by the edit screen
but was failing when trying to view in analytics.  Turned out it was
because my spacing was off in between multiple d2:condition statements.
The only way I figured it out was by watching the logs and saw a malformed
sql query error.

Good luck!

Aaron


--
Aaron C. White
919.522.5585

On Fri, Mar 16, 2018 at 7:39 AM, Prosper BT  wrote:

> Hi Natalie,
>
> In addition to Markus advice above, also check the you use of brackets,
> they are not balanced
>
> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) in this
> expression, you are dividing before executing and calcultating the entire
> days between, should be
>
> (d2:daysBetween(A{Date of birth},V{enrollment_date})) / 365
>
> But better to use years between as Markus advises
>
> Regards
>
> Prosper Behumbiize, MPH
> DHIS2 Implementation Adviser| HISP Uganda
> pros...@hispuganda.org  | pros...@dhis2.org | Skype:
> prospertb
>
> On Thu, Mar 15, 2018 at 9:19 PM, Markus Bekken  wrote:
>
>> Hi there Natalie!
>> Your program indicator looks all good. Can it be that the aggregation
>> type is not "Count"? If your expression is a count, then the aggregation
>> type needs to be "Count" or "Custom" for advanced cases.
>> Tip: There is also a d2:yearsBetween function.
>>
>> For the program rule, I wonder if your A{Agree to be contacted} field
>> might be of datatype "Yes/No"? If so, the correct syntax would be:
>> A{Agree to be contacted} == false
>>
>> What version of DHIS2 are you on?
>>
>> Best regards,
>> Markus
>>
>> 15. mar. 2018 kl. 18:33 skrev Natalie Tibbels :
>>
>> Hi all,
>> Wondering if anyone could help with an indicator and a program rule.
>>
>> *What is wrong with this indicator (to calculate age from date of birth):*
>> Want to count total enrollments where age is 35-39
>>
>> Expression:
>> V{enrollment_count}
>>
>> Filter:
>> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) >= 35 and
>> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) <= 39
>>
>> [In the actual expression, the date of birth is the UID for date of birth]
>>
>> It’s producing no data but there should be some – think I’m making a
>> simple mistake.
>>
>>
>> *What is wrong with this program rule:*
>> If the person says "no" for agreement to be contacted, hide the phone
>> number field
>>
>> Name: Hide phone number field
>>
>> Expression: A{Agree to be contacted} == 'No'
>>
>> BUT, when I test it, if I click “Yes, agree to be contacted” the phone
>> number disappears and if I click “No” the phone number remains. So the
>> opposite of what I want….
>>
>> Thanks for any suggestions!
>>
>>
>> ___
>> Mailing list: https://launchpad.net/~dhis2-users
>> Post to : dhis2-users@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~dhis2-users
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>> ___
>> Mailing list: https://launchpad.net/~dhis2-users
>> Post to : dhis2-users@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~dhis2-users
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
> ___
> Mailing list: https://launchpad.net/~dhis2-users
> Post to : dhis2-users@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help   : https://help.launchpad.net/ListHelp
>
>
___
Mailing list: https://launchpad.net/~dhis2-users
Post to : dhis2-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-users
More help   : https://help.launchpad.net/ListHelp


Re: [Dhis2-users] Insight on program indicator and rule

2018-03-16 Thread Prosper BT
Hi Natalie,

In addition to Markus advice above, also check the you use of brackets,
they are not balanced

(d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) in this
expression, you are dividing before executing and calcultating the entire
days between, should be

(d2:daysBetween(A{Date of birth},V{enrollment_date})) / 365

But better to use years between as Markus advises

Regards

Prosper Behumbiize, MPH
DHIS2 Implementation Adviser| HISP Uganda
pros...@hispuganda.org  | pros...@dhis2.org | Skype:
prospertb

On Thu, Mar 15, 2018 at 9:19 PM, Markus Bekken  wrote:

> Hi there Natalie!
> Your program indicator looks all good. Can it be that the aggregation type
> is not "Count"? If your expression is a count, then the aggregation type
> needs to be "Count" or "Custom" for advanced cases.
> Tip: There is also a d2:yearsBetween function.
>
> For the program rule, I wonder if your A{Agree to be contacted} field
> might be of datatype "Yes/No"? If so, the correct syntax would be:
> A{Agree to be contacted} == false
>
> What version of DHIS2 are you on?
>
> Best regards,
> Markus
>
> 15. mar. 2018 kl. 18:33 skrev Natalie Tibbels :
>
> Hi all,
> Wondering if anyone could help with an indicator and a program rule.
>
> *What is wrong with this indicator (to calculate age from date of birth):*
> Want to count total enrollments where age is 35-39
>
> Expression:
> V{enrollment_count}
>
> Filter:
> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) >= 35 and
> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) <= 39
>
> [In the actual expression, the date of birth is the UID for date of birth]
>
> It’s producing no data but there should be some – think I’m making a
> simple mistake.
>
>
> *What is wrong with this program rule:*
> If the person says "no" for agreement to be contacted, hide the phone
> number field
>
> Name: Hide phone number field
>
> Expression: A{Agree to be contacted} == 'No'
>
> BUT, when I test it, if I click “Yes, agree to be contacted” the phone
> number disappears and if I click “No” the phone number remains. So the
> opposite of what I want….
>
> Thanks for any suggestions!
>
>
> ___
> Mailing list: https://launchpad.net/~dhis2-users
> Post to : dhis2-users@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help   : https://help.launchpad.net/ListHelp
>
>
>
> ___
> Mailing list: https://launchpad.net/~dhis2-users
> Post to : dhis2-users@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help   : https://help.launchpad.net/ListHelp
>
>
___
Mailing list: https://launchpad.net/~dhis2-users
Post to : dhis2-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-users
More help   : https://help.launchpad.net/ListHelp


Re: [Dhis2-users] Insight on program indicator and rule

2018-03-15 Thread Markus Bekken
Hi there Natalie!
Your program indicator looks all good. Can it be that the aggregation type is 
not "Count"? If your expression is a count, then the aggregation type needs to 
be "Count" or "Custom" for advanced cases. 
Tip: There is also a d2:yearsBetween function.

For the program rule, I wonder if your A{Agree to be contacted} field might be 
of datatype "Yes/No"? If so, the correct syntax would be:
A{Agree to be contacted} == false

What version of DHIS2 are you on?

Best regards,
Markus

> 15. mar. 2018 kl. 18:33 skrev Natalie Tibbels :
> 
> Hi all,
> Wondering if anyone could help with an indicator and a program rule.
>  
> What is wrong with this indicator (to calculate age from date of birth):
> Want to count total enrollments where age is 35-39
>  
> Expression:
> V{enrollment_count}
>  
> Filter:
> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) >= 35 and 
> (d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) <= 39
>  
> [In the actual expression, the date of birth is the UID for date of birth]
>  
> It’s producing no data but there should be some – think I’m making a simple 
> mistake.
>  
>  
> What is wrong with this program rule:
> If the person says "no" for agreement to be contacted, hide the phone number 
> field
>  
> Name: Hide phone number field
>  
> Expression: A{Agree to be contacted} == 'No'
>  
> BUT, when I test it, if I click “Yes, agree to be contacted” the phone number 
> disappears and if I click “No” the phone number remains. So the opposite of 
> what I want….
>  
> Thanks for any suggestions!
>  
>  
> ___
> Mailing list: https://launchpad.net/~dhis2-users 
> 
> Post to : dhis2-users@lists.launchpad.net 
> 
> Unsubscribe : https://launchpad.net/~dhis2-users 
> 
> More help   : https://help.launchpad.net/ListHelp 
> 
___
Mailing list: https://launchpad.net/~dhis2-users
Post to : dhis2-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-users
More help   : https://help.launchpad.net/ListHelp


[Dhis2-users] Insight on program indicator and rule

2018-03-15 Thread Natalie Tibbels
Hi all,
Wondering if anyone could help with an indicator and a program rule.

What is wrong with this indicator (to calculate age from date of birth):
Want to count total enrollments where age is 35-39

Expression:
V{enrollment_count}

Filter:
(d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) >= 35 and 
(d2:daysBetween(A{Date of birth},V{enrollment_date}) / 365) <= 39

[In the actual expression, the date of birth is the UID for date of birth]

It’s producing no data but there should be some – think I’m making a simple 
mistake.


What is wrong with this program rule:
If the person says "no" for agreement to be contacted, hide the phone number 
field

Name: Hide phone number field

Expression: A{Agree to be contacted} == 'No'

BUT, when I test it, if I click “Yes, agree to be contacted” the phone number 
disappears and if I click “No” the phone number remains. So the opposite of 
what I want….

Thanks for any suggestions!


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