Addition of calculated Program Rule Variables concatenates values instead of adding

Hi All-
I’ve been using calculated PRVs and program rules to calculate a score in one of my tracker programs. The general process I used was calculating an intermediate PRV as either 0 or 1 based on each condition that contributes to the score, then adding all the PRVs together to come up with a final score and assigning that final score to a DE. The expression that is assigned to the DE is something like this, where #{Xn} is a calculated PRV with value of 0 or 1.

#{X1} + #{X2} +#{X3}+ #{X4} + #{X5} + #{X6} + #{X7}

This was working fine, and returning a value between 0 and 7. However, we recently upgraded to 2.35.7, and I realized that now the above expression is concatenating the PRVs. Its returning something like this:

0101100

I reviewed the release notes and can’t find anything related to this. Has anyone experienced something similar?

Hi @kstankevitz!
This seems like a bug/unintended behavior that we need to investigate. Its great if you can report it on https://jira.dhis2.org/

Regards,
Markus

1 Like

Hi @kstankevitz

It seems like if x1 = 1 and x2 = 0, x3 = 0 and x4 = 1, the assigned score will not summarize: x1+x2+x3+x4 = 1001

But if I set x2 = 3 and x3 = 4, the assigned score will summarize the way we want: x1+x2+x3+x4 = 9.

I’ll create the jira right away.

1 Like

Thanks so sharing this info… so it seems like when the variable value is zero, it’s treated as a string, so what if we specify that it’s a number using ‘\d’?

so @kstankevitz expression will look like this:
'\\d#{x1}' + '\\d#{x2}' + '\\d#{x3}' + '\\d#{x4} + '\\d#{x5} + '\\d#{x6} + '\\d#{x7}'

Thanks!

Jira: DHIS-12029

2 Likes

Thanks for this suggestion. I attempted this, but it doesn’t seem to be working. It returns false, value_not_positive_integer.

Based on troubleshooting others did to point out the 0s are the issue, i ultimately assigned the intermediate values and 1/2 instead of 0/1. Then I sum 7 PRVs and subtract 7 to get the true score. This works for now.

Thanks all!
Kayla

2 Likes

Hey! Sorry my suggestion didn’t work, I was just guessing! :grin::blush:

That’s really great that you were able to find a workaround! Feel free to add it to the Jira issue! :pray: I look forward to your participation in the CoP, maybe you’ll find other workarounds for other users :clap::heart_eyes:

Thank you!

Thanks so much for your solution, nice trick there!!

For several hours been trying to figure out how to overcome the concatenation (kept getting this: “value”:“value_not_numeric”).

@Gassim any plans to ensure this concatenation issue is resolved for the future- assigning 1/2 can be confusing, though works perfect? While the PRVs are correctly assigned integers (Yes -2, 1 - No), on summing up the PRVs, it does see the assignment as a string, especially if zero is the value assigned.
image

Thanks @mykbitz! I’m asking @zubair if there are any updates on this!

[quote=“mykbitz, post:9, topic:44548”]
While the PRVs are correctly assigned integers (Yes -2, 1 - No), on summing up the PRVs, it does see the assignment as a string, especially if zero is the value assigned.
[/quote] I’m not sure I got it right? Didn’t the approach above work? Would you please explain for me this part?

Thanks!