← Back to team overview

dhis2-devs team mailing list archive

Re: [Dhis2-users] d2: daysbetween AND d2:yearsbetween not working properly in 2.27 build revision b6e8cde

 

Hi Georgi!
The age should also have worked fine - the age is in reality just a date being displayed in another way. Can you report the bug in Jira please?

One thing to consider if you want to combine this rule with the AGE data type: The number of years displayed in the AGE data element is calculated based on todays date. The calculation that you are doing the rule is calculating the age of the person at the time of enrollment. That means that if you register a person 17 years old today, with today as the enrollment date, the AGE dataelement would display 17 as the age and your rule would also consider the person to be 17. Then if you come back in 1 year, the AGE data element would show 18 as the age - but the underlying birthdate and enrollment date would be unchanged and therefore the rule would still calculate the age to 17.

Markus

> 9. aug. 2017 kl. 14.24 skrev Georgi Chakarov <georgi@xxxxxxxxxxxxxxxxxxx>:
> 
> Hi Markus,
>  
> I was able to test this expression d2:yearsBetween(A{Date of Birth}, V{ enrollment _date})  <18
> The problem was that my Date of Birth attribute was of value type AGE. Once I changed it to DATE the program rule started working.
>  
> Is there anything specific that needs to be taken into consideration when working with Age value type?
>  
> Regards,
>  
> Georgi
>  
> From: Markus Bekken [mailto:markus@xxxxxxxxx] 
> Sent: Wednesday, August 9, 2017 11:01 AM
> To: Georgi Chakarov <georgi@xxxxxxxxxxxxxxxxxxx>
> Cc: DHIS Users <dhis2-users@xxxxxxxxxxxxxxxxxxx>; DHIS 2 Developers list <dhis2-devs@xxxxxxxxxxxxxxxxxxx>
> Subject: Re: [Dhis2-users] FW: d2: daysbetween AND d2:yearsbetween not working properly in 2.27 build revision b6e8cde
>  
> Hi there Georgi!
> The expression
> d2:yearsBetween(A{Date of Birth}, V{ enrollment _date})  <18
> should be the correct one. I would change the V{ enrollment _date} to V{enrollment _date}
>  
> Note that before the birth date is not entered, the expression will evaluate to 0 - which will be less than 18.
>  
> Let me know how it goes.
>  
> Markus
>  
> 9. aug. 2017 kl. 00.41 skrev Georgi Chakarov <georgi@xxxxxxxxxxxxxxxxxxx <mailto:georgi@xxxxxxxxxxxxxxxxxxx>>:
>  
> Hello all! Any thoughts on my email below from last week?
>  
> Thanks,
>  
> Georgi
>  
> From: Georgi Chakarov 
> Sent: Friday, August 4, 2017 1:01 PM
> To: DHIS Users <dhis2-users@xxxxxxxxxxxxxxxxxxx <mailto:dhis2-users@xxxxxxxxxxxxxxxxxxx>>; DHIS 2 Developers list <dhis2-devs@xxxxxxxxxxxxxxxxxxx <mailto:dhis2-devs@xxxxxxxxxxxxxxxxxxx>>
> Cc: Sara Gaudon <sara@xxxxxxxxxxxxxxxxxxx <mailto:sara@xxxxxxxxxxxxxxxxxxx>>; Kristiyan Panayotov <Kristiyan@xxxxxxxxxxxxxxxxxxx <mailto:Kristiyan@xxxxxxxxxxxxxxxxxxx>>
> Subject: d2: daysbetween AND d2:yearsbetween not working properly in 2.27 build revision b6e8cde
>  
> Hello all!
>  
> I am trying to create a program rule based on Date of birth and Enrollment date. Basically, I want to hide one set of data elements if the client is below 18 years old and another set of data elements if the client is above 18 years of age.
>  
> This is what I tried:
> 1)      (d2:daysBetween(A{Date of Birth}, V{enrollment_date})/365)  <18             THIS DOES NOT WORK
> 2)      (d2:yearsBetween(A{Date of Birth}, V{ enrollment _date})/365)  <18          This actually works(hides the data element I want), but I don’t think it is the correct expression.
> 3)      d2:yearsBetween(A{Date of Birth}, V{ enrollment _date})  <18                      I think that this is the correct expression, but it is executing the rule (does not hide the data element).
>  
> Do you think that there might be a bug in how these expressions work? If not, can someone guide me to the correct expression?
>  
> Thanks in advance,
>  
> Georgi
>  
>  
>  
>  
>   
> Georgi Chakarov, CIA | georgi@xxxxxxxxxxxxxxxxxxx <mailto:georgi@xxxxxxxxxxxxxxxxxxx> | +1-647-478-5634 x 104 | LogicalOutcomes c/o Centre for Social Innovation, 720 Bathurst Street, Toronto Canada M5S 2R4 | You may unsubscribe from receiving commercial electronic messages from LogicalOutcomes by emailing info@xxxxxxxxxxxxxxxxxxx <mailto:info@xxxxxxxxxxxxxxxxxxx>
>  
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-users <https://launchpad.net/~dhis2-users>
> Post to     : dhis2-users@xxxxxxxxxxxxxxxxxxx <mailto:dhis2-users@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~dhis2-users <https://launchpad.net/~dhis2-users>
> More help   : https://help.launchpad.net/ListHelp <https://help.launchpad.net/ListHelp>

References