Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.

Thread: Medical risk calculator - three inputs

1. 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 (0-7mm, 7-10mm 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 18-faceted 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?

• since you mentioned a lookup-table, what about a nested Array?
PHP Code:
// though you need to use a 0-based index in your <input>s
var risks = [ // x-level

// y-level

[risk combo 1risk combo 2], // z-level

[risk combo 3risk combo 4],
[
risk combo 5risk combo 6]
],
[
[
risk combo 7risk combo 8],
[
risk combo 9risk combo 10],
[
risk combo 11risk combo 12]
],
[
[
risk combo 13risk combo 14],
[
risk combo 15risk combo 16],
[
risk combo 17risk combo 18]
]
]
// access would work like
// remember, it's zero-indexed
var combo risks[x][y][z];

• Thanks for your suggestion - will read around this approach and give it a try!

• 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.

}
};

•

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•