episphere / quest

experimenting with the idea of a questionnaire markup
https://episphere.github.io/quest/
2 stars 11 forks source link

Renderer freezing with new functions #364

Closed joshid-ims closed 2 years ago

joshid-ims commented 2 years ago

When this code is used, the renderer freezes. Is this right?

grid? id="GRID_ALCLIFE2" displayif=and(equals(ALCOHOL2,3),and(and(or(doesNotEqual(isDefined(ALCOHOL4,-1),-1),doesNotEqual(isDefined(REGALCOHOL_AGE,-1),-1)),doesNotEqual(isDefined(ALCOHOL5,-1),-1)),or(doesNotEqual(isDefined(ALCOHOL6,-1),-1),equals(ALCOHOL5,1)))) [ [ALCLIFE2A,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),0),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),17))] Age {$e:_value('ALCOHOL4')} to {$e:min(17,valueOrDefault('ALCOHOL6','AGE','age',100)) } ; [ALCLIFE2B,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),18),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),24))] Age {$e:max(18,_value('ALCOHOL4'))} to {$e:min(24,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2C,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),25),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),29))] Age {$e:max(25,_value('ALCOHOL4'))} to {$e:min(29,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2D,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),30),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),39))] Age {$e:max(30,_value('ALCOHOL4'))} to {$e:min(39,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2E,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),40),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),49))] Age {$e:max(40,_value('ALCOHOL4'))} to {$e:min(49,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2F,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),50),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),59))] Age {$e:max(50,_value('ALCOHOL4'))} to {$e:min(59,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2G,displayif=and(greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),60),lessThanOrEqual(isDefined(isDefined(REGALCOHOL_AGE,ALCOHOL3),0),69))] Age {$e:max(60,_value('ALCOHOL4'))} to {$e:min(69,valueOrDefault('ALCOHOL6','AGE','age',100))} ; [ALCLIFE2H,displayif=greaterThanOrEqual(isDefined(isDefined(ALCOHOL6,AGE),age),70)] Age {$e:max(70,_value('ALCOHOL4'))}and older;]
(0:Didn't drink during this time)
(1:A few times per year)
(2:A few times per month)
(3:Once per week)
(4:A few times per week)
(5:Once per day)
(6:2 to 3 times per day)
(7:4 to 5 times per day)
(8:6 or more times per day)
|
joshid-ims commented 2 years ago

_value did not work. Replaced it with valueOrDefaut.