Interpret this sf 12 form
| # | Question | Answer marked |
|---|---|---|
| 1 | General health | Fair |
| 2 | Moderate activities (moving a table, vacuuming, bowling, golf) | Yes, limited a little |
| 3 | Climbing several flights of stairs | Yes, limited a little |
| 4 | Accomplished less than would like (physical) | Yes |
| 5 | Limited in kind of work/activities (physical) | Yes |
| 6 | Accomplished less than would like (emotional) | No |
| 7 | Worked/did activities less carefully (emotional) | No |
| 8 | Pain interference with normal work | Quite a bit |
| 9 | Felt calm & peaceful (past 4 wks) | A good bit of the time |
| 10 | Had a lot of energy | A good bit of the time |
| 11 | Felt down-hearted and blue | A little of the time |
| 12 | Physical/emotional problems interfered with social activities | Some of the time |
Calculate official PCS-12 and MCS-12 norm-based scores
SF-12 PCS-12 MCS-12 scoring algorithm coefficients table Ware Kosinski Keller
"SF-12" norm-based scoring factor score coefficients physical mental component summary formula
https://www.nlsinfo.org/content/cohorts/nlsy79/other-documen…
"56.57706" OR "60.75781" SF-12 scoring coefficients
https://pmc.ncbi.nlm.nih.gov/articles/PMC2065865
https://pmc.ncbi.nlm.nih.gov/articles/PMC2065865
curl -s -A "Mozilla/5.0" https://orthotoolkit.com/sf-12 -o /tmp/workspace/sf12_page.html; wc -l /tmp/workspace/sf12_page.html; grep -o "56.57706\|60.75781\|PF02\|GH1\|RP2\|RP3\|RE2\|RE3\|BP2\|MH3\|VT2\|MH4\|SF2" /tmp/workspace/sf12_page.html | sort | uniq -c
curl -sL -A "Mozilla/5.0" https://orthotoolkit.com/sf-12 -o /tmp/workspace/sf12_page2.html; wc -l /tmp/workspace/sf12_page2.html; echo "---"; grep -o 'src="[^"]*\.js[^"]*"' /tmp/workspace/sf12_page2.html; echo "---orthopower---"; curl -sL -A "Mozilla/5.0" https://orthopowertools.com/SF12 -o /tmp/workspace/sf12_op.html; wc -l /tmp/workspace/sf12_op.html; grep -o 'src="[^"]*\.js[^"]*"' /tmp/workspace/sf12_op.html
cd /tmp/workspace && curl -sL -A "Mozilla/5.0" https://orthotoolkit.com/static/js/main.e6a3e4f9.js -o sf12_main.js; wc -c sf12_main.js; echo "---search for coefficients---"; grep -o "56\.57706" sf12_main.js | head; grep -o "60\.75781" sf12_main.js | head echo "---orthopower chunk---" curl -sL -A "Mozilla/5.0" https://orthopowertools.com/static/js/2.08cd45c3.chunk.js -o op2.js curl -sL -A "Mozilla/5.0" https://orthopowertools.com/static/js/main.4b874859.chunk.js -o opmain.js wc -c op2.js opmain.js grep -o "56\.57706" op2.js opmain.js grep -o "60\.75781" op2.js opmain.js
cd /tmp/workspace && python3 -c " import re with open('opmain.js', 'r', errors='ignore') as f: content = f.read() idx = content.find('56.57706') print(content[idx-3000:idx+6000]) "
cd /tmp/workspace && python3 -c " import re with open('opmain.js', 'r', errors='ignore') as f: content = f.read() idx = content.find('56.57706') # print a wider window before to catch point1..point10 definitions print(content[idx-9000:idx-3000]) "
cd /tmp/workspace && python3 -c " # PCS coefficients (selectedValueN) and MCS coefficients (pointN) from the verified official SF-12v1 algorithm pcs = { 1: -5.56461, # Q1 Fair 2: -3.45555, # Q2 Yes limited a little 3: -2.73557, # Q3 Yes limited a little 4: -4.61617, # Q4 Yes 5: -5.51747, # Q5 Yes 6: 0, # Q6 No 7: 0, # Q7 No 8: -8.38063, # Q8 Quite a bit 9: 1.36689, # Q9 A good bit of the time 10: -1.14387, # Q10 A good bit of the time 11: 0.41188, # Q11 A little of the time 12: -0.18043, # Q12 Some of the time } mcs = { 1: -0.16891, 2: 1.8684, 3: 1.43103, 4: 1.4406, 5: 1.66968, 6: 0, 7: 0, 8: 1.76691, 9: -4.09842, 10: -1.65178, 11: -1.95934, 12: -5.63286, } PCS12 = sum(pcs.values()) + 56.57706 MCS12 = sum(mcs.values()) + 60.75781 print('sum pcs terms:', sum(pcs.values())) print('sum mcs terms:', sum(mcs.values())) print('PCS-12 =', round(PCS12,2)) print('MCS-12 =', round(MCS12,2)) "
| # | Response marked | PCS weight | MCS weight |
|---|---|---|---|
| 1 | Fair | -5.56461 | -0.16891 |
| 2 | Yes, limited a little | -3.45555 | +1.86840 |
| 3 | Yes, limited a little | -2.73557 | +1.43103 |
| 4 | Yes | -4.61617 | +1.44060 |
| 5 | Yes | -5.51747 | +1.66968 |
| 6 | No | 0 | 0 |
| 7 | No | 0 | 0 |
| 8 | Quite a bit | -8.38063 | +1.76691 |
| 9 | A good bit of the time | +1.36689 | -4.09842 |
| 10 | A good bit of the time | -1.14387 | -1.65178 |
| 11 | A little of the time | +0.41188 | -1.95934 |
| 12 | Some of the time | -0.18043 | -5.63286 |
| Sum | -29.81553 | -5.33469 | |
| + Constant | +56.57706 | +60.75781 | |
| = Score | 26.76 | 55.42 |