/******************************************************************************* Sengupta N, Nichol MB, Wu J, Globe D. Mapping the SF-12 to the HUI3 and VAS in a managed care population. Med Care. 2004 Sep;42(9):927-37. By: Joanne Wu If you found a bug or would like to comment on this program, please email qfw@usc.edu *******************************************************************************/ **CREATE DUMMY VARIABLES FOR SF12 ITEMS**; **GH1, GENERAL HEALTH IS**; IF GH1=4 THEN GH_FAIR=1; ELSE IF GH1 NE . THEN GH_FAIR=0; IF GH1=3 THEN GH_GOOD=1; ELSE IF GH1 NE . THEN GH_GOOD=0; IF GH1=2 THEN GH_VGD=1; ELSE IF GH1 NE . THEN GH_VGD=0; IF GH1=1 THEN GH_EXCEL=1; ELSE IF GH1 NE . THEN GH_EXCEL=0; LABEL GH_FAIR='GENERAL HEALTH=FAIR' GH_GOOD='GENERAL HEALTH=GOOD' GH_VGD='GENERAL HEALTH=VERY GOOD' GH_EXCEL='GENERAL HEALTH=EXCELLENT'; **PF02, HEALTH LIMIT MODERATE ACTIVITIES**; IF PF02=2 THEN MACT_LIT=1; ELSE IF PF02 NE . THEN MACT_LIT=0; IF PF02=3 THEN MACT_NOT=1; ELSE IF PF02 NE . THEN MACT_NOT=0; LABEL MACT_LIT='LIMITS MODERATE ACT=A LITTLE' MACT_NOT='LIMITS MODERATE ACT=NOT AT ALL'; **PF04, HEALTH LIMITS CLIMBING FLIGHTS OF STAIRS**; IF PF04=2 THEN CLB_LIT=1; ELSE IF PF04 NE . THEN CLB_LIT=0; IF PF04=3 THEN CLB_NOT=1; ELSE IF PF04 NE . THEN CLB_NOT=0; LABEL CLB_LIT='HLTH LIMITS CLIMB STAIRS=A LITTLE' CLB_NOT='HLTH LIMIT CLIMB STAIRS=NOT AT ALL'; **RP2, PHYSICAL HEALTH LIMITS ACCOMPLISHED LESS THAN LIKE**; IF RP2=2 THEN PACC_NO=1; ELSE IF RP2 NE . THEN PACC_NO=0; LABEL PACC_NO='ACCOMPLISHED < LIKE=NO'; **RP3, PHYSICAL HEALTH LIMITS IN THE KIND OF WORK**; IF RP3=2 THEN LTWK_NO=1; ELSE IF RP3 NE . THEN LTWK_NO=0; LABEL LTWK_NO='LIMITED IN KIND OF WORK=NO'; **RE2, EMOTIONAL HEALTH LIMITS ACCOMPLISHED LESS THAN LIKE**; IF RE2=2 THEN EACC_NO=1; ELSE IF RE2 NE . THEN EACC_NO=0; LABEL EACC_NO='EMOTION HLTH LIMIT ACCOMPLISH=NO'; **RE3, EMOTIONAL HEALTH LIMITS DO WARK AS CAREFULLY**; IF RE3=2 THEN CARE_NO=1; ELSE IF RE3 NE . THEN CARE_NO=0; LABEL CARE_NO="DIDN'T DO WOEK AS CAREFULLY=NO"; **SF2, INTERFERE WITH SOCIAL ACTIVITIES**; IF SF2=2 THEN HLSA_MST=1; ELSE IF SF2 NE . THEN HLSA_MST=0; IF SF2=3 THEN HLSA_SME=1; ELSE IF SF2 NE . THEN HLSA_SME=0; IF SF2=4 THEN HLSA_LIT=1; ELSE IF SF2 NE . THEN HLSA_LIT=0; IF SF2=5 THEN HLSA_NON=1; ELSE IF SF2 NE . THEN HLSA_NON=0; LABEL HLSA_LIT='INTERFERE SOCIAL ACTIVITIES=MOST' HLSA_SME='INTERFERE SOCIAL ACTIVITIES=SOME' HLSA_LIT='INTERFERE SOCIAL ACTIVITIES=LITTLE' HLSA_NON='INTERFERE SOCIAL ACTIVITIES=NONE'; **BP2, PAIN INTERFERED WITH WORK**; IF BP2=4 THEN PAIN_QUT=1; ELSE IF BP2 NE . THEN PAIN_QUT=0; IF BP2=3 THEN PAIN_MOD=1; ELSE IF BP2 NE . THEN PAIN_MOD=0; IF BP2=2 THEN PAIN_LIT=1; ELSE IF BP2 NE . THEN PAIN_LIT=0; IF BP2=1 THEN PAIN_NOT=1; ELSE IF BP2 NE . THEN PAIN_NOT=0; LABEL PAIN_QUT='PAIN INTERFERED WK=QUITE A BIT' PAIN_MOD='PAIN INTERFERED WK=MODERATELY' PAIN_LIT='PAIN INTERFERED WK=A LITTLE BIT' PAIN_NOT='PAIN INTERFERED WK=NOT AT ALL'; **MH3, FELT CALM AND PEACEFUL**; IF MH3=5 THEN CALM_LIT=1; ELSE IF MH3 NE . THEN CALM_LIT=0; IF MH3=4 THEN CALM_SME=1; ELSE IF MH3 NE . THEN CALM_SME=0; IF MH3=3 THEN CALM_GOD=1; ELSE IF MH3 NE . THEN CALM_GOD=0; IF MH3=2 THEN CALM_MST=1; ELSE IF MH3 NE . THEN CALM_MST=0; IF MH3=1 THEN CALM_ALL=1; ELSE IF MH3 NE . THEN CALM_ALL=0; LABEL CALM_LIT='FELT CALM AND PEACEFUL=LITTLE' CALM_SME='FELT CALM AND PEACEFUL=SOME' CALM_GOD='FELT CALM AND PEACEFUL=GOOD BIT' CALM_MST='FELT CALM AND PEACEFUL=MOST' CALM_ALL='FELT CALM AND PEACEFUL=ALL'; **VT2, DID YOU HAVE A LOT OF ENERGY**; IF VT2=5 THEN ENGY_LIT=1; ELSE IF VT2 NE . THEN ENGY_LIT=0; IF VT2=4 THEN ENGY_SME=1; ELSE IF VT2 NE . THEN ENGY_SME=0; IF VT2=3 THEN ENGY_GOD=1; ELSE IF VT2 NE . THEN ENGY_GOD=0; IF VT2=2 THEN ENGY_MST=1; ELSE IF VT2 NE . THEN ENGY_MST=0; IF VT2=1 THEN ENGY_ALL=1; ELSE IF VT2 NE . THEN ENGY_ALL=0; LABEL ENGY_LIT='YOU HAVE ENERGY=LITTLE' ENGY_SME='YOU HAVE ENERGY=SOME' ENGY_GOD='YOU HAVE ENERGY=GOOD BIT' ENGY_MST='YOU HAVE ENERGY=MOST' ENGY_ALL='YOU HAVE ENERGY=ALL'; **MH4, HAVE YOU FELT DOWNHEARTED AND BLUE**; IF MH4=6 THEN BLUE_NON=1; ELSE IF MH4 NE . THEN BLUE_NON=0; IF MH4=5 THEN BLUE_LIT=1; ELSE IF MH4 NE . THEN BLUE_LIT=0; IF MH4=4 THEN BLUE_SME=1; ELSE IF MH4 NE . THEN BLUE_SME=0; IF MH4=3 THEN BLUE_GOD=1; ELSE IF MH4 NE . THEN BLUE_GOD=0; IF MH4=2 THEN BLUE_MST=1; ELSE IF MH4 NE . THEN BLUE_MST=0; LABEL BLUE_NON='DOWNHEARTED ADN BLUE=LITTLE' BLUE_LIT='DOWNHEARTED ADN BLUE=ALL' BLUE_SME='DOWNHEARTED ADN BLUE=SOME' BLUE_GOD='DOWNHEARTED ADN BLUE=GOOD BIT' BLUE_MST='DOWNHEARTED ADN BLUE=MOST'; ***********************************************************************; *reverse score four items so that higher score indicates better health*; ***********************************************************************; RBP2=6-BP2; RGH1=6-GH1; RVT2=7-VT2; RMH3=7-MH3; VASSF12C= 0.281 +0.005* FEMALE +0.0003*AGE +0.132* GH_FAIR +0.260* GH_GOOD +0.372* GH_VGD +0.465* GH_EXCEL +0.017* MACT_LIT +0.016* MACT_NOT -0.005* CLB_LIT +0.015* CLB_NOT +0.004* PACC_NO +0.006* LTWK_NO +0.005* EACC_NO -0.006* CARE_NO +0.0003*HLSA_NON -0.010* HLSA_LIT -0.005* HLSA_SME +0.002* HLSA_MST +0.036* PAIN_QUT +0.039* PAIN_MOD +0.045* PAIN_LIT +0.049* PAIN_NOT -0.003* CALM_LIT +0.005* CALM_SME +0.003* CALM_GOD +0.009* CALM_MST +0.021* CALM_ALL -0.002* ENGY_LIT +0.006* ENGY_SME +0.024* ENGY_GOD +0.034* ENGY_MST +0.031* ENGY_ALL +0.014* BLUE_NON +0.011* BLUE_LIT +0.007* BLUE_SME +0.001* BLUE_GOD -0.035* BLUE_MST ; HUI3SF12C= 0.200 +0.005* FEMALE -0.001* AGE +0.001* GH_FAIR +0.023* GH_GOOD +0.037* GH_VGD +0.056* GH_EXCEL +0.047* MACT_LIT +0.056* MACT_NOT +0.050* CLB_LIT +0.050* CLB_NOT +0.007* PACC_NO +0.021* LTWK_NO +0.012* EACC_NO +0.037* CARE_NO +0.010* HLSA_NON -0.008* HLSA_LIT -0.020* HLSA_SME -0.061* HLSA_MST +0.137* PAIN_QUT +0.202* PAIN_MOD +0.229* PAIN_LIT +0.268* PAIN_NOT -0.017* CALM_LIT +0.011* CALM_SME +0.020* CALM_GOD +0.029* CALM_MST +0.031* CALM_ALL +0.025* ENGY_LIT +0.038* ENGY_SME +0.053* ENGY_GOD +0.060* ENGY_MST +0.077* ENGY_ALL +0.198* BLUE_NON +0.172* BLUE_LIT +0.148* BLUE_SME +0.110* BLUE_GOD +0.038* BLUE_MST ; HUI3SF12I=0.016 + +0.016* RGH1 +0.008* SF2 +0.050* RBP2 +0.010* RMH3 +0.014* RVT2 +0.029* PF02 +0.018* PF04 +0.005* RP2 +0.021* RP3 +0.012* RE2 +0.046* RE3 +0.033* MH4 -0.001* AGE +0.006* FEMALE ; VASSF12I= 0.117+ +0.114* RGH1 +0.000* SF2 +0.007* RBP2 +0.004* RMH3 +0.010* RVT2 +0.006* PF02 +0.011* PF04 +0.005* RP2 +0.006* RP3 +0.006* RE2 -0.005* RE3 +0.006* MH4 +0.0004*AGE +0.005* FEMALE ; **calculate predicted hui3 from mcs12,pcs12**; mcs2=mcs12*mcs12; pcs2=pcs12*pcs12; mpcs=mcs12*pcs12; hui3mpcs=-0.784+0.026*pcs12 +0.026*mcs12 -0.0001*mpcs -0.0001*pcs2 -0.0001*mcs2 -0.0009*age +0.004*female; vasmpcs=0.200 +0.002*pcs12 +0.003*mcs12 +0.00002*mpcs +0.00007*pcs2 -0.00002*mcs2 +0.0002*age +0.008*female; label vassf12c='predicted vas from sf12 categorical model' hui3sf12c='predicted hui3 from sf12 categorical model' vassf12i='predicted vas from sf12 item model' hui3sf12i='predicted hui3 from sf12 item model' hui3mpcs='predicted hui3 from mcs12 and pcs12' vasmpcs='predicted vas from mcs12 and pcs12';