Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    New Coder
    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 (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?

  • #2
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,473
    Thanks
    13
    Thanked 361 Times in 357 Posts
    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]; 
    Last edited by Dormilich; 05-19-2013 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

  • #3
    New Coder
    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!

  • #4
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,473
    Thanks
    13
    Thanked 361 Times in 357 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


  •  

    Posting Permissions

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