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

YTSQLES.m

Go to the documentation of this file.
  1. YTSQLES ;SLC/MJB- SCORE QLES ; 9/26/2018
  1. ;;5.01;MENTAL HEALTH;**151,249**;DEC 30,1994;Build 30
  1. ;
  1. ;
  1. ; Reference to DIQ in ICR #2056
  1. ;
  1. Q
  1. ;
  1. DLLSTR(YSDATA,YS,YSTRNG) ;
  1. ;
  1. N TOTAL,TXT,YSMED,YSOVER,YSTOTAL,YSCRIT9,YSCRIT11,YSCRIT12,YSCRIT13,YSCALEI,YSSCALIEN
  1. N YSCRIT9Q,YSCRIT11Q,YSCRIT12Q,YSCRIT13Q,YSCRITA,YSCRITB,YSCRITC,QLESQSF,II,YSTOTALA
  1. N YSSCNAM,YSINSNAM
  1. S N=N+1,II=0
  1. IF YSTRNG=1 D DATA1 D SCORESV
  1. I YSTRNG=2 D
  1. .D LDSCORES(.YSDATA,.YS) D YSARRAY(.QLESQSF) ;run YSARRAY again to get the responses and add 0 to skipped questions
  1. .D STRING
  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)=$G(YSINSNAM)_" Scale not found"
  1. S YSSCNAM=$P($G(^TMP($J,"YSG",3)),U,4) ; Scale Name
  1. ;
  1. K ^TMP($J,"YSCOR")
  1. S ^TMP($J,"YSCOR",1)="[DATA]"
  1. S YSSCALIEN=1224 ;this needs to be changed to the current instrument scale
  1. S ^TMP($J,"YSCOR",2)=$$GET1^DIQ(601.87,YSSCALIEN_",",3,"I")_"="_YSTOTAL_U_YSTOTALA
  1. Q
  1. ;
  1. DATA1 ;
  1. D YSARRAY(.QLESQSF)
  1. F II=3:1:16 S YSTOTAL=$G(YSTOTAL)+QLESQSF(II)
  1. S YSTOTALA=((YSTOTAL-14)/.56)
  1. S YSTOTALA=$FN(YSTOTALA,"",0)
  1. Q
  1. ;
  1. STRING ;
  1. S YSTOTAL=$P($G(^TMP($J,"YSCOR",2)),"=",2),YSTOTAL=$P(YSTOTAL,U,1)
  1. S YSTOTALA=$P($G(^TMP($J,"YSCOR",2)),U,2)
  1. S YSMED=QLESQSF(17)
  1. S YSOVER=QLESQSF(18)
  1. S YSCRIT9=QLESQSF(11)
  1. S YSCRIT11=QLESQSF(13)
  1. S YSCRIT12=QLESQSF(14)
  1. S YSCRIT13=QLESQSF(15)
  1. S YSCRIT9Q="9. Your sexual drive, interest and/or performance?"
  1. S YSCRIT11Q="11. Your living/housing situation?"
  1. S YSCRIT12Q="12. Your ability to get around physically without feeling dizzy or unsteady or falling?"
  1. S YSCRIT13Q="13. Your vision in terms of ability to do work or hobbies?"
  1. S YSCRITA="1.Very Poor"
  1. S YSCRITB="2.Poor"
  1. S YSCRITC="3.Fair"
  1. ;I YSMED=0 S YSDATA(N)="7771^9999;1^Item omitted by respondent" S N=N+1
  1. ;I YSMED=1 S YSDATA(N)="7771^9999;1^VERY POOR" S N=N+1
  1. ;I YSMED=2 S YSDATA(N)="7771^9999;1^POOR" S N=N+1
  1. ;I YSMED=3 S YSDATA(N)="7771^9999;1^FAIR" S N=N+1
  1. ;I YSMED=4 S YSDATA(N)="7771^9999;1^GOOD" S N=N+1
  1. ;I YSMED=5 S YSDATA(N)="7771^9999;1^VERY GOOD" S N=N+1
  1. S YSDATA(N)="7771^9999;1^"_$S(YSMED=1:"VERY POOR",YSMED=2:"POOR",YSMED=3:"FAIR",YSMED=4:"GOOD",YSMED=5:"VERY GOOD",1:"Item omitted by respondent"),N=N+1
  1. ;I YSOVER=1 S YSDATA(N)="7772^9999;1^VERY POOR" S N=N+1
  1. ;I YSOVER=2 S YSDATA(N)="7772^9999;1^POOR" S N=N+1
  1. ;I YSOVER=3 S YSDATA(N)="7772^9999;1^FAIR" S N=N+1
  1. ;I YSOVER=4 S YSDATA(N)="7772^9999;1^GOOD" S N=N+1
  1. ;I YSOVER=5 S YSDATA(N)="7772^9999;1^VERY GOOD" S N=N+1
  1. S YSDATA(N)="7772^9999;1^"_$S(YSOVER=1:"VERY POOR",YSOVER=2:"POOR",YSOVER=3:"FAIR",YSOVER=4:"GOOD",YSOVER=5:"VERY GOOD",1:"Item omitted by respondent"),N=N+1
  1. ;I (YSCRIT9=1)!(YSCRIT9=2)!(YSCRIT9=3) S YSDATA(N)="7773^9999;1^"_YSCRIT9Q S N=N+1
  1. ;I YSCRIT9=1 S YSDATA(N)="7774^9999;1^"_YSCRITA S N=N+1
  1. ;I YSCRIT9=2 S YSDATA(N)="7774^9999;1^"_YSCRITB S N=N+1
  1. ;I YSCRIT9=3 S YSDATA(N)="7774^9999;1^"_YSCRITC S N=N+1
  1. ;I (YSCRIT11=1)!(YSCRIT11=2)!(YSCRIT11=3) S YSDATA(N)="7775^9999;1^"_YSCRIT11Q S N=N+1
  1. ;I YSCRIT11=1 S YSDATA(N)="7780^9999;1^"_YSCRITA S N=N+1
  1. ;I YSCRIT11=2 S YSDATA(N)="7780^9999;1^"_YSCRITB S N=N+1
  1. ;I YSCRIT11=3 S YSDATA(N)="7780^9999;1^"_YSCRITC S N=N+1
  1. ;I (YSCRIT12=1)!(YSCRIT12=2)!(YSCRIT12=3) S YSDATA(N)="7776^9999;1^"_YSCRIT12Q S N=N+1
  1. ;I YSCRIT12=1 S YSDATA(N)="7781^9999;1^"_YSCRITA S N=N+1
  1. ;I YSCRIT12=2 S YSDATA(N)="7781^9999;1^"_YSCRITB S N=N+1
  1. ;I YSCRIT12=3 S YSDATA(N)="7781^9999;1^"_YSCRITC S N=N+1
  1. ;I (YSCRIT13=1)!(YSCRIT13=2)!(YSCRIT13=3) S YSDATA(N)="7777^9999;1^"_YSCRIT13Q S N=N+1
  1. ;I YSCRIT13=1 S YSDATA(N)="7782^9999;1^"_YSCRITA S N=N+1
  1. ;I YSCRIT13=2 S YSDATA(N)="7782^9999;1^"_YSCRITB S N=N+1
  1. ;I YSCRIT13=3 S YSDATA(N)="7782^9999;1^"_YSCRITC S N=N+1
  1. ;I (YSCRIT9)&(YSCRIT11)&(YSCRIT12)&(YSCRIT13)>3 S YSDATA(N)="7778^9999;1^The patient did not endorse critical items"
  1. S YSDATA(N)="7779^9999;1^"_YSTOTALA S N=N+1
  1. ;
  1. Q
  1. ;
  1. YSARRAY(YSARRAY) ;
  1. N II,YSVAL,YSCALEI,YSKEYI,G,YSQN,YSAI,YSAN,YSTARG
  1. K YSARRAY
  1. S II=""
  1. F II=3:1:18 S YSQN=$P(YSDATA(II),U,1),YSAN=$P(YSDATA(II),U,3) D
  1. .I YSAN=1155 S YSVAL=0
  1. .I YSAN=3921 S YSVAL=1
  1. .I YSAN=3922 S YSVAL=2
  1. .I YSAN=3923 S YSVAL=3
  1. .I YSAN=3924 S YSVAL=4
  1. .I YSAN=3925 S YSVAL=5
  1. .I YSAN=3926 S YSVAL=0
  1. .S YSARRAY(II)=YSVAL
  1. Q
  1. LDSCORES(YSDATA,YS) ; new call for patch 123 using to get T-scores
  1. ;input:AD = ADMINISTRATION #
  1. ;output: [DATA]
  1. N G,N,IEN71,SCALE,YSAD,YSCODEN,YSCALE
  1. S YSAD=$G(YS("AD"))
  1. ;
  1. S YSDATA=$NA(^TMP($J,"YSCOR"))
  1. S ^TMP($J,"YSCOR",1)="[DATA]",N=1
  1. ;
  1. S YSCALE="",N=1
  1. F S YSCALE=$O(^YTT(601.92,"AC",YSAD,YSCALE)) Q:'YSCALE D
  1. .S G=$G(^YTT(601.92,YSCALE,0))
  1. .S SCALE=$P(G,U,3),N=N+1
  1. .S ^TMP($J,"YSCOR",N)=SCALE_"="_$P(G,U,4,7)
  1. Q