*! version 1.0.0 28aug1997 (STB-56: sbe35) program define calccsi version 5.0 global D_run "1" global DB_aval global DB_bval global DB_cval global DB_dval global DB_level "$S_level" global DB_exact = 0 global DB_odds = 0 global DB_tb = 0 global DB_woolf = 0 global DB_opt "instead of Cornfield OR" global DB_a "Exposed cases" window control static DB_a 5 5 80 9 window control edit 90 5 25 10 DB_aval global DB_b "Unexposed cases" window control static DB_b 5 20 80 9 window control edit 90 20 25 10 DB_bval global DB_c "Exposed noncases" window control static DB_c 5 35 80 9 window control edit 90 35 25 10 DB_cval global DB_d "Unexposed noncases" window control static DB_d 5 50 80 9 window control edit 90 50 25 10 DB_dval global DB_ci "Confidence level" window control static DB_ci 5 65 80 9 window control edit 90 65 15 10 DB_level window control check "Exact (Fisher) p-value" 20 80 80 9 DB_exact window control check "Display odds ratio" 20 90 80 9 DB_odds window control check "Use Woolf approximation" 20 100 90 9 DB_woolf window control static DB_opt 33 110 80 9 window control check "Test-based CI's" 20 120 80 9 DB_tb window control button "Run" 10 135 30 18 DB_run window control button "Cancel" 50 135 30 18 DB_can window control button "Help" 90 135 30 18 DB_help help global DB_run "runcsi" global DB_can "exit 3000" global DB_help "whelp calcmenu" cap noi window dialog "Cohort study" . . 130 170 global D_run end program define runcsi if trim("$DB_aval") == "" | trim("$DB_bval") == "" | /* */ trim("$DB_cval") == "" | trim("$DB_dval") == "" { window stopbox stop "Missing values not allowed." exit } if $DB_aval < 0 | $DB_bval < 0 | $DB_cval < 0 | $DB_dval < 0 { window stopbox stop "Number must be >= 0." exit } if $DB_aval == . | $DB_bval == . | $DB_cval == . | $DB_dval == . { window stopbox stop "Missing values not allowed." exit } if $DB_level < 10 | $DB_level > 99 { dis in re "'$DB_level' is an invalid confidence level" exit } global S_level $DB_level local D_e "" local D_or "" local D_tb "" local D_w "" if $DB_exact { local D_e "e" } if $DB_odds { local D_or "or" } if $DB_tb { local D_tb "tb" } if $DB_woolf { local D_w "w" } if "$D_run"~="" { di in wh "csi $DB_aval $DB_bval $DB_cval $DB_dval, level($S_level) `D_e' `D_or' `D_tb' `D_w'" } else { di di in wh ". csi $DB_aval $DB_bval $DB_cval $DB_dval, level($S_level) `D_e' `D_or' `D_tb' `D_w'" } global D_run csi $DB_aval $DB_bval $DB_cval $DB_dval, level($S_level) `D_e' `D_or' `D_tb' `D_w' window push csi $DB_aval $DB_bval $DB_cval $DB_dval, level($S_level) `D_e' `D_or' `D_tb' `D_w' end