Enjoy an ad free experience by logging in. Not a member yet? Register.

Results 1 to 4 of 4

05182013, 03:26 PM #1
 Join Date
 May 2013
 Posts
 10
 Thanks
 0
 Thanked 0 Times in 0 Posts
Medical risk calculator  three inputs
Hi all,
I'm trying my hand at jscript for the first time (au fait with html and css). I'd like to build a medical risk calculator to sit in a side block on a drupal site. The html form is done.
Input x is the size of an aneurysm and input will be in text and then parsed into ranges (07mm, 710mm and 10+mm)
Input y is location of aneurysm and consists of three options, a, b & c.
Input z is yes / no radio button
Output (risk) should update each time input is changed (no submit button).
Each combination of these variables should produce two linked risk values (% in one year and % in five years). The number of potential outputs is thus 3x3x2 = 18 (so it's not really a calculation, more a lookup). I am imagining some sort of 18faceted list of functions like this:
If x=1 AND y=1 AND z=1 THEN output Risk combo 1
IF x=2 AND y=1 AND z=1 THEN output Risk combo 2
IF x=3 AND y=1 AND z=1 THEN output Risk combo 3
IF x=1 AND y=2 AND z=1 THEN output Risk combo 4
IF x=2 AND y=2 AND z=1 THEN output Risk combo 5
IF x=3 AND y=2 AND z=1 THEN output Risk combo 6
IF x=1 AND y=3 AND z=1 THEN output Risk combo 7
IF x=2 AND y=3 AND z=1 THEN output Risk combo 8
IF x=3 AND y=3 AND z=1 THEN output Risk combo 9
If x=1 AND y=1 AND z=2 THEN output Risk combo 10
IF x=2 AND y=1 AND z=2 THEN output Risk combo 11
IF x=3 AND y=1 AND z=2 THEN output Risk combo 12
IF x=1 AND y=2 AND z=2 THEN output Risk combo 13
IF x=2 AND y=2 AND z=2 THEN output Risk combo 14
IF x=3 AND y=2 AND z=2 THEN output Risk combo 15
IF x=1 AND y=3 AND z=2 THEN output Risk combo 16
IF x=2 AND y=3 AND z=2 THEN output Risk combo 17
IF x=3 AND y=3 AND z=2 THEN output Risk combo 18
How should one best go about performing these functions?
05192013, 08:28 AM
#2
 Join Date
 Jan 2010
 Location
 Behind the Wall
 Posts
 3,561
 Thanks
 13
 Thanked 375 Times in 371 Posts
since you mentioned a lookuptable, what about a nested Array?
PHP Code:
// though you need to use a 0based index in your <input>s
var risks = [ // xlevel
[ // ylevel
[risk combo 1, risk combo 2], // zlevel
[risk combo 3, risk combo 4],
[risk combo 5, risk combo 6]
],
[
[risk combo 7, risk combo 8],
[risk combo 9, risk combo 10],
[risk combo 11, risk combo 12]
],
[
[risk combo 13, risk combo 14],
[risk combo 15, risk combo 16],
[risk combo 17, risk combo 18]
]
]
// access would work like
// remember, it's zeroindexed
var combo = risks[x][y][z];
Last edited by Dormilich; 05192013 at 08:32 AM.
The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.André Behrens, NY Times Software Developer
05192013, 03:18 PM
#3
 Join Date
 May 2013
 Posts
 10
 Thanks
 0
 Thanked 0 Times in 0 Posts
Thanks for your suggestion  will read around this approach and give it a try!
05192013, 03:34 PM
#4
 Join Date
 Jan 2010
 Location
 Behind the Wall
 Posts
 3,561
 Thanks
 13
 Thanked 375 Times in 371 Posts
if you don’t have numbers as input value, you could do the same with an object.
PHP Code:
var risks = {
"category 1": {
"class 1" : {
"subclass 1": "combo 1",
"subclass 2": "combo 2" // etc.
},
"class 2" : {
// etc.
}
},
"category 2": {
// etc.
}
};
The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.André Behrens, NY Times Software Developer