# Medical risk calculator - three inputs

• 05-18-2013, 03:26 PM
tim_k
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?
• 05-19-2013, 08:28 AM
Dormilich
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>svar risks = [ // x-level    [ // y-level        [risk combo 1, risk combo 2], // z-level        [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 zero-indexedvar combo = risks[x][y][z];  ```
• 05-19-2013, 03:18 PM
tim_k
Thanks for your suggestion - will read around this approach and give it a try! :thumbsup:
• 05-19-2013, 03:34 PM
Dormilich
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.  }};  ```