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

YTAPI3.m

Go to the documentation of this file.
  1. YTAPI3 ;ALB/ASF PSYCH TEST API ITEMS ;9/24/99 10:54
  1. ;;5.01;MENTAL HEALTH;**53**;Dec 30, 1994
  1. SHOWIT(YSDATA,YS) ;
  1. ;returns item information
  1. N YSSONE,S,R,N,YSET,N1,YSN2,N4,YSAA,I,II,DFN,YSCODE,YSADATE,YSSCALE,YSBED,YSEND
  1. N IFN,R3,SFN1,SFN2,YSBEG,YSCK,YSDFN,YSED,YSIFN,YSINUM,YSITEM,YSN2,YSNODE,YSPRIV,YSQT,YSR,YSSTAFF,YSTYPE
  1. K YSDATA
  1. D PARSE^YTAPI(.YS)
  1. ;#### MOVE TO YTAPI???
  1. S YSITEM=$G(YS("ITEM"))
  1. I '$D(^YTT(601,"B",YSCODE)) S YSDATA(1)="[ERROR]",YSDATA(2)="INCORRECT TEST CODE" Q
  1. S YSET=$O(^YTT(601,"B",YSCODE,0))
  1. I YSITEM'?1N.N!('$D(^YTT(601,YSET,"Q",YSITEM))) S YSDATA(1)="[ERROR]",YSDATA(2)="item number not correct" Q
  1. S N=0
  1. S YSDATA(1)="[DATA]"
  1. S YSDATA(2)=YSCODE_U_$P($G(^YTT(601,YSET,"P")),U)_U_YSITEM
  1. D MAIN
  1. Q
  1. SHOWALL(YSDATA,YS) ;
  1. ;returns all item information for a specified test
  1. N YSSONE,S,R,N,YSET,N1,YSN2,N4,YSAA,I,II,DFN,YSCODE,YSADATE,YSSCALE,YSBED,YSEND
  1. N IFN,R3,SFN1,SFN2,YSBEG,YSCK,YSDFN,YSED,YSIFN,YSINUM,YSITEM,YSN2,YSNODE,YSPRIV,YSQT,YSR,YSSTAFF,YSTYPE
  1. K YSDATA
  1. D PARSE^YTAPI(.YS)
  1. I '$D(^YTT(601,"B",YSCODE)) S YSDATA(1)="[ERROR]",YSDATA(2)="INCORRECT TEST CODE" Q
  1. S YSET=$O(^YTT(601,"B",YSCODE,0))
  1. S N=$O(^YTT(601,YSET,"Q",599))
  1. I N>599 S YSDATA(1)="[ERROR]",YSDATA(2)="too many questions" Q
  1. S N=0
  1. S YSDATA(1)="[DATA]"
  1. S YSDATA(2)=YSCODE_U_$P($G(^YTT(601,YSET,"P")),U)
  1. ;Loop thru test for all items
  1. S YSITEM=0
  1. F S YSITEM=$O(^YTT(601,YSET,"Q",YSITEM)) Q:YSITEM'>0 D
  1. . D MAIN
  1. Q
  1. MAIN ;
  1. S YSNODE="I"
  1. ;[INTRO]
  1. D GETTEXT
  1. S YSNODE="T"
  1. ;[TEXT]
  1. D GETTEXT
  1. ;[BOTTOM]
  1. D BTM
  1. ;[RESPONSE]
  1. D RESP
  1. Q
  1. GETTEXT ;pull text and intros
  1. S N1=0 F S N1=$O(^YTT(601,YSET,"Q",YSITEM,YSNODE,N1)) Q:N1'>0 D
  1. . S X=^YTT(601,YSET,"Q",YSITEM,YSNODE,N1,0)
  1. . S YSDATA(YSITEM,YSNODE,N1)=X
  1. Q
  1. RESP ;get approp responses
  1. S A="",N1=YSITEM+.1
  1. F S N1=$O(^YTT(601,YSET,"Q",N1),-1) Q:N1'>0 S A=$P(^YTT(601,YSET,"Q",N1,0),U,2) Q:A'=""
  1. I A="" S YSDATA(1)="[ERROR]",YSDATA(2)="no acceptable responses found" Q
  1. S YSDATA(YSITEM,"R",0)=A
  1. Q
  1. BTM ; get bottom of text
  1. S B="",N1=YSITEM+.1
  1. F S N1=$O(^YTT(601,YSET,"Q",N1),-1) Q:N1'>0 S B=$G(^YTT(601,YSET,"Q",N1,"B")) Q:$D(^YTT(601,YSET,"Q",N1,"B"))
  1. Q:B=""
  1. S N1=0
  1. F I=2:2 S X=$P(B,",",I) Q:X="" D
  1. . S X=$E(X,2,$L(X)-1)
  1. . S N1=N1+1,YSDATA(YSITEM,"R",N1)=X
  1. Q