Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: YTSWHYMP

YTSWHYMP.m

Go to the documentation of this file.
  1. YTSWHYMP ;SLC/PIJ - Score WHYMPI ; 01/08/2016@1200
  1. ;;5.01;MENTAL HEALTH;**123**;DEC 30, 1994;Build 73
  1. ;
  1. ;Public, Supported ICRs
  1. ; #2056 - Fileman API - $$GET1^DIQ
  1. ;
  1. Q
  1. ;
  1. DATA1 ;
  1. S YSINSNAM=$P($G(YSDATA(2)),U,3)
  1. I $G(YSINSNAM)="" S YSINSNAM=$G(YS("CODE"),"NO NAME PASSED")
  1. S NODE=2 F S NODE=$O(YSDATA(NODE)) Q:NODE="" D ; Start at YSDATA(3)
  1. .S DATA=YSDATA(NODE)
  1. .S YSQN=$P(DATA,U,1)
  1. .S YSCDA=$P($G(DATA),U,3)
  1. .D DESGNTR^YTSCORE(YSQN,.DES)
  1. .S LEG=$$GET1^DIQ(601.75,YSCDA_",",4,"I")
  1. .I (LEG="N")!(LEG="Y") Q
  1. .I (YSCDA=1155)!(YSCDA=1156) D TALLYRAW Q
  1. .D SCORE
  1. Q
  1. ;
  1. TALLYRAW ;
  1. ; Part I. Interference
  1. I (DES="A2")!(DES="A3")!(DES="A4")!(DES="A8")!(DES="A9")!(DES="A13")!(DES="A14")!(DES="A17")!(DES="A19") D
  1. .S INTERFER=INTERFER+1
  1. ; Support
  1. I (DES="A5")!(DES="A10")!(DES="A15") D
  1. .S SUPPORT=SUPPORT+1
  1. ; Pain Severity
  1. I (DES="A1")!(DES="A7")!(DES="A12") D
  1. .S PAIN=PAIN+1
  1. ; Life-Control
  1. I (DES="A11")!(DES="A16") D
  1. .S LIFE=LIFE+1
  1. ; Affective Distress
  1. I (DES="A6")!(DES="A18")!(DES="A20") D
  1. .S AFFECT=AFFECT+1
  1. ; Part II.
  1. ; Negative Response
  1. I (DES="B1")!(DES="B4")!(DES="B7")!(DES="B10") D
  1. .S NEG=NEG+1
  1. ; Solicitous Response
  1. I (DES="B2")!(DES="B5")!(DES="B8")!(DES="B11")!(DES="B13")!(DES="B14") D
  1. .S SOLICIT=SOLICIT+1
  1. ; Distracting Response
  1. I (DES="B3")!(DES="B6")!(DES="B9")!(DES="B12") D
  1. .S DISTRACT=DISTRACT+1
  1. .; Part III.
  1. .; Household Chores
  1. I (DES="C1")!(DES="C5")!(DES="C9")!(DES="C13")!(DES="C17") D
  1. .S HOUSE=HOUSE+1
  1. ; Outdoor Work
  1. I (DES="C2")!(DES="C6")!(DES="C10")!(DES="C14")!(DES="C18") D
  1. .S OUTDOOR=OUTDOOR+1
  1. ; Activities away from home
  1. I (DES="C3")!(DES="C7")!(DES="C11")!(DES="C15") D
  1. .S ACTIVITY=ACTIVITY+1
  1. ; Social Activities
  1. I (DES="C4")!(DES="C8")!(DES="C12")!(DES="C16") D
  1. .S SOCIAL=SOCIAL+1
  1. Q
  1. ;
  1. SCORE ;
  1. ; Part I.
  1. ;Interference
  1. I (DES="A2")!(DES="A3")!(DES="A4")!(DES="A8")!(DES="A9")!(DES="A13")!(DES="A14")!(DES="A17")!(DES="A19") D
  1. .S TOTINT=TOTINT+$G(YSCDA,0)
  1. ; Support
  1. I (DES="A5")!(DES="A10")!(DES="A15") D
  1. .S TOTSUPP=TOTSUPP+$G(YSCDA,0)
  1. ; Pain Severity
  1. I (DES="A1")!(DES="A7")!(DES="A12") D
  1. .S TOTPAIN=TOTPAIN+$G(YSCDA,0)
  1. ; Life-Control
  1. I (DES="A11")!(DES="A16") D
  1. .S TOTLIFE=TOTLIFE+$G(YSCDA,0)
  1. ; Affective Distress
  1. I (DES="A6")!(DES="A18")!(DES="A20") D
  1. .I (DES="A6") S YSCDA=(6-$G(YSCDA,0)) ; This is the correction for Affective Disorder
  1. .S TOTAFF=TOTAFF+$G(YSCDA,0) ; per Dr. Garcia. The (6-YSCDA) is the reverse
  1. ; Part II.
  1. ; Negative Response
  1. I (DES="B1")!(DES="B4")!(DES="B7")!(DES="B10") D
  1. .S TOTNEG=TOTNEG+$G(YSCDA,0)
  1. ; Solicitous Response
  1. I (DES="B2")!(DES="B5")!(DES="B8")!(DES="B11")!(DES="B13")!(DES="B14") D
  1. .S TOTSOL=TOTSOL+$G(YSCDA,0)
  1. ; Distracting Response
  1. I (DES="B3")!(DES="B6")!(DES="B9")!(DES="B12") D
  1. .S TOTDIS=TOTDIS+$G(YSCDA,0)
  1. ; Part III.
  1. ; Household Chores
  1. I (DES="C1")!(DES="C5")!(DES="C9")!(DES="C13")!(DES="C17") D
  1. .S TOTHOUSE=TOTHOUSE+$G(YSCDA,0)
  1. ; Outdoor Work
  1. I (DES="C2")!(DES="C6")!(DES="C10")!(DES="C14")!(DES="C18") D
  1. .S TOTOUTDR=TOTOUTDR+$G(YSCDA,0)
  1. ; Activities away from home
  1. I (DES="C3")!(DES="C7")!(DES="C11")!(DES="C15") D
  1. .S TOTACTIVE=TOTACTIVE+$G(YSCDA,0)
  1. ; Social Activities
  1. I (DES="C4")!(DES="C8")!(DES="C12")!(DES="C16") D
  1. .S TOTSOC=TOTSOC+$G(YSCDA,0)
  1. Q
  1. ;
  1. TOTSCR ; Interference
  1. S INTERSC="Too many skipped questions"
  1. I (INTERFER<3) D
  1. .S INTERSC=$J(TOTINT/(9-INTERFER),0,2)
  1. ; Support
  1. S SUPSC="Too many skipped questions"
  1. I (SUPPORT<2) D
  1. .S SUPSC=$J(TOTSUPP/(3-SUPPORT),0,2)
  1. ; Pain Severity
  1. S PAINSC="Too many skipped questions"
  1. I (PAIN<2) D
  1. .S PAINSC=$J(TOTPAIN/(3-PAIN),0,2)
  1. ; Life-Control
  1. S LIFESC="Too many skipped questions"
  1. I (LIFE<2) D
  1. .S LIFESC=$J(TOTLIFE/(2-LIFE),0,2)
  1. ; Affective Distress
  1. S AFFECTSC="Too many skipped questions"
  1. I (AFFECT<2) D
  1. .S AFFECTSC=$J(TOTAFF/(3-AFFECT),0,2)
  1. ; Part II.
  1. ; Negative Responses
  1. S NEGSC="Too many skipped questions"
  1. I (NEG<2) D
  1. .S NEGSC=$J(TOTNEG/(4-NEG),0,2)
  1. ; Solicitous Responses
  1. S SOLSC="Too many skipped questions"
  1. I (SOLICIT<2) D
  1. .S SOLSC=$J(TOTSOL/(6-SOLICIT),0,2)
  1. ; Distracting Responses
  1. S DISSC="Too many skipped questions"
  1. I (DISTRACT<2) D
  1. .S DISSC=$J(TOTDIS/(4-DISTRACT),0,2)
  1. ; Part III.
  1. ; Household Chores
  1. S HOUSC="Too many skipped questions"
  1. I (HOUSE<2) D
  1. .S HOUSC=$J(TOTHOUSE/(5-HOUSE),0,2)
  1. ; Outdoor Work
  1. S OUTSC="Too many skipped questions"
  1. I (OUTDOOR<2) D
  1. .S OUTSC=$J(TOTOUTDR/(5-OUTDOOR),0,2)
  1. ; Activities Away from Home
  1. S ACTSC="Too many skipped questions"
  1. I (ACTIVITY<2) D
  1. .S ACTSC=$J(TOTACTIVE/(4-ACTIVITY),0,2)
  1. ; Social Activities
  1. S SOCSC="Too many skipped questions"
  1. I (SOCIAL<2) D
  1. .S SOCSC=$J(TOTSOC/(4-SOCIAL),0,2)
  1. ; General Activity - total skipped questions
  1. S GENERAL=HOUSE+OUTDOOR+ACTIVITY+SOCIAL
  1. S GENSC="Too many skipped questions"
  1. I (GENERAL<5) D
  1. .S GENSC=$J((TOTHOUSE+TOTOUTDR+TOTACTIVE+TOTSOC)/(18-GENERAL),0,2)
  1. Q
  1. ;
  1. SCORESV ;
  1. I $D(^TMP($J,"YSG",1)),^TMP($J,"YSG",1)="[ERROR]" D Q ;-->out
  1. .K ^TMP($J,"YSCOR")
  1. .S ^TMP($J,"YSCOR",1)="[ERROR]"
  1. .S ^TMP($J,"YSCOR",2)="WHYMPI Scale not found"
  1. ;
  1. K ^TMP($J,"YSCOR")
  1. S ^TMP($J,"YSCOR",1)="[DATA]"
  1. ;Part I
  1. S ^TMP($J,"YSCOR",2)=$$GET1^DIQ(601.87,507_",",3,"I")_"="_INTERSC
  1. S ^TMP($J,"YSCOR",3)=$$GET1^DIQ(601.87,508_",",3,"I")_"="_SUPSC
  1. S ^TMP($J,"YSCOR",4)=$$GET1^DIQ(601.87,553_",",3,"I")_"="_PAINSC
  1. S ^TMP($J,"YSCOR",5)=$$GET1^DIQ(601.87,554_",",3,"I")_"="_LIFESC
  1. S ^TMP($J,"YSCOR",6)=$$GET1^DIQ(601.87,555_",",3,"I")_"="_AFFECTSC
  1. ;Part II
  1. S ^TMP($J,"YSCOR",7)=$$GET1^DIQ(601.87,556_",",3,"I")_"="_NEGSC
  1. S ^TMP($J,"YSCOR",8)=$$GET1^DIQ(601.87,557_",",3,"I")_"="_SOLSC
  1. S ^TMP($J,"YSCOR",9)=$$GET1^DIQ(601.87,558_",",3,"I")_"="_DISSC
  1. ;Part III.
  1. S ^TMP($J,"YSCOR",10)=$$GET1^DIQ(601.87,559_",",3,"I")_"="_HOUSC
  1. S ^TMP($J,"YSCOR",11)=$$GET1^DIQ(601.87,560_",",3,"I")_"="_OUTSC
  1. S ^TMP($J,"YSCOR",12)=$$GET1^DIQ(601.87,561_",",3,"I")_"="_ACTSC
  1. S ^TMP($J,"YSCOR",13)=$$GET1^DIQ(601.87,562_",",3,"I")_"="_SOCSC
  1. S ^TMP($J,"YSCOR",14)=$$GET1^DIQ(601.87,563_",",3,"I")_"="_GENSC
  1. Q
  1. ;
  1. DLLSTR(YSDATA,YS,YSTRNG) ;
  1. ; YSTRNG = 1 Score Instrument
  1. ; YSTRNG = 2 get Report Answers and Text
  1. N DATA,DES,NODE,LEG,YSCDA,YSQN,YSINSNAM
  1. N ACTIVITY,AFFECT,DISTRACT,GENERAL,HOUSE,INTERFER,LIFE,NEG,OUTDOOR,PAIN
  1. N SOCIAL,SOLICIT,SUPPORT,TOTACTIVE,TOTAFF,TOTDIS,TOTHOUSE
  1. N TOTINT,TOTLIFE,TOTNEG,TOTOUTDR,TOTPAIN,TOTSOC,TOTSOL,TOTSUPP
  1. N INTERSC,SUPSC,PAINSC,LIFESC,AFFECTSC,NEGSC,SOLSC,DISSC,HOUSC,OUTSC,ACTSC,SOCSC,GENSC
  1. ;
  1. S (ACTIVITY,AFFECT,DISTRACT,HOUSE,INTERFER,LIFE,NEG,OUTDOOR,PAIN)=0
  1. S (SOCIAL,SOLICIT,SUPPORT,TOTACTIVE,TOTAFF,TOTDIS,TOTHOUSE)=0
  1. S (TOTINT,TOTLIFE,TOTNEG,TOTOUTDR,TOTPAIN,TOTSOC,TOTSOL,TOTSUPP)=0
  1. ;
  1. I YSTRNG=2 Q ; no special text in the report
  1. ;
  1. D DATA1
  1. D TOTSCR
  1. D SCORESV
  1. Q