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

YTONLY.m

Go to the documentation of this file.
  1. YTONLY ;ASF/ALB,HIOFO/FT - Restricted Psych Testing Option ;8/7/12 3:41pm
  1. ;;5.01;MENTAL HEALTH;**19,37,60,187**;Dec 30, 1994;Build 73
  1. ;
  1. ;Reference to VADPT APIs supported by DBIA #10061
  1. ;Reference to ^%ZIS supported by IA #10086
  1. ;Reference to ^XLFDT APIs supported by DBIA #10103
  1. ;Reference to ^VA(200 supported by IA #10060
  1. ;Reference to ^XLFSTR supported by DBIA #10104
  1. ;
  1. MAIN ; main loop
  1. S (YSXT,YSENTRY)=$O(^YTT(601,"B",YSCODE,0))
  1. S YSXTP=1,T1=1,T1(0)=$P(^YTT(601,YSXT,"P"),U,4)
  1. S YSPREV=0
  1. I YSENTRY=""!($P(^YTT(601,YSENTRY,0),U,13)="N") W !,"Instrument "_YSCODE_" not available" H 3 Q
  1. S YSTITLE=$P($G(^YTT(601,YSENTRY,"P")),U)
  1. W @IOF,!,$$CJ^XLFSTR(YSTITLE,79," "),!
  1. D PT G END:$G(YSDFN)<1
  1. D NX,PREV
  1. D OPT1 Q:$D(DIRUT)
  1. D ADMIN:YSOPT="A",PRINT:YSOPT="P",CLERK:YSOPT="C"
  1. ;
  1. G MAIN
  1. ADMIN ;
  1. K J
  1. I $D(^YTD(601.4,YSDFN,1,YSENTRY)) G RESTART
  1. S YSOK=1 W !! S DIC="^VA(200,",DIC(0)="AEQM",DIC("A")="Professional requesting instrument: ",DIC("B")=DUZ D ^DIC K DIC I Y<1 S YSOK=-1 Q
  1. S YSORD=+Y
  1. S YSQ=0 D A31^YTCLERK1 I YSOK<1 D KAR^YTS Q
  1. I YSQ S ZTIO=ION D HOME^%ZIS
  1. S YSTEST=YSENTRY,YSXT=YSENTRY,YSXTP=1
  1. D A4^YTAR
  1. Q
  1. RESTART ;
  1. K DIR S DIR(0)="S^R:Restart "_YSCODE_";D:Delete previous incomplete and administer;Q:Quit"
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)!(Y="Q")
  1. I Y="D" S YSTEST=YSENTRY D KT,ADMIN Q
  1. S YSTEST=YSENTRY
  1. S YTLM=3
  1. I $P($G(^YTT(601,YSTEST,0)),U,16) S YTLM=$P(^(0),U,16)
  1. S X2=$S($P(^YTD(601.4,YSDFN,1,YSTEST,0),U,8):$P(^(0),U,8),1:$P(^(0),U,2))
  1. S X=$$FMDIFF^XLFDT(DT,X2,1)
  1. I X>YTLM W !,"Administration discontinued more than "_YTLM_" days ago -- not restartable" H 2 Q
  1. S YSTEST=YSENTRY
  1. S (B,C)="",J=+$P(^YTD(601.4,YSDFN,1,YSENTRY,0),U,4),C=$P(^(0),U,5),YSORD=$P(^(0),U,7) S:$P(^(0),U,8) YSBEGIN=$P(^(0),U,8)
  1. I $D(^YTD(601.4,YSDFN,1,YSENTRY,"B"))#2 S B=^("B")
  1. S YSRP=$S(J#200=1:"",1:^YTD(601.4,YSDFN,1,YSENTRY,J+198\200)) S:'J J=1
  1. S YSXT=YSTEST_"^" S:$D(^YTD(601.4,YSDFN,1,YSENTRY,"R")) YSXT=YSXT_^("R") S YSXTP=1,YSDEMO="N",YSRESTRT=1
  1. S YSQ=0 D A31^YTCLERK1 I YSOK<1 D KAR^YTS Q
  1. I YSQ S ZTIO=ION D HOME^%ZIS
  1. D A4^YTAR
  1. Q
  1. PRINT ;
  1. S YSXT=""
  1. W !
  1. D DU^YTDP
  1. Q
  1. CLERK ;
  1. S YSCL=1,(YTESTN,YSTESTN)=YSCODE,YSCLERK=14,YSENT=14,YSTEST=YSENTRY,YSNQ=$P(^YTT(601,YSENTRY,0),U,11)
  1. I $D(^YTD(601.4,YSDFN,1,"AC",YSENTRY)) W !!,"Discontinued CLERK test found:" G RESTART^YTCLERK1
  1. I $D(^YTD(601.4,YSDFN)) S DIK="^YTD(601.4,",DA=YSDFN D ^DIK K DIK
  1. S YSOK=1 W !! S DIC="^VA(200,",DIC(0)="AEQM",DIC("A")="Professional requesting instrument: ",DIC("B")=DUZ D ^DIC K DIC I Y<1 S YSOK=-1 Q
  1. S YSORD=+Y
  1. S YSQ=0 D A31^YTCLERK1 I YSOK<1 D KAR^YTS Q
  1. S (J,YSXTP)=1,(B,C,YSRP)=""
  1. D REY1^YTCLERK
  1. Q
  1. PT ;
  1. D ^YSLRP G:YSDFN<1 END D ENPT^YSUTL
  1. I YSSEX="" W !,"Gender not properly specified. Call IRM" H 3 G MAIN
  1. Q
  1. OPT1 ;admin, clerk, print
  1. W !
  1. K DIR
  1. S DIR(0)="S^A:Administer on-line;C:Clerk entry"
  1. S:YSPREV DIR(0)=DIR(0)_";P:Print"
  1. S DIR("A")=$S(YSPREV:"Administer on-line, Clerk entry or Print",1:"Administer on-line or Clerk entry")
  1. D ^DIR
  1. S YSOPT=Y
  1. K DIR
  1. G MAIN:$D(DIRUT)
  1. Q
  1. NX ;
  1. K A,A1
  1. S %=$H>21549+$H-.1,%Y=%\365.25+141,%=%#365.25\1,YSPTD=%+306#(%Y#4=0+365)#153#61#31+1,YSPTM=%-YSPTD\29+1,Y=%Y_"00"+YSPTM_"00"+YSPTD,YSDT(0)=$$FMTE^XLFDT(Y,"5ZD")
  1. S YSSX=YSSEX,YSBL=" ",YSHDR=$$MASKSSN(YSSSN)_" "_YSNM_YSBL_YSBL_YSBL,YSHDR=$E(YSHDR,1,44)_YSSX_" AGE "_YSAGE,YSHD=DT
  1. S YSHDT=""
  1. I '$D(^YTD(601.2,YSDFN,1,YSENTRY)) K A,A1 Q
  1. S YSNT=0,N2=0 F S N2=$O(^YTD(601.2,YSDFN,1,YSENTRY,1,N2)) Q:'N2 S A(YSCODE,N2)=YSENTRY,YSNT=YSNT+1,A1(YSNT)=YSCODE_U_N2_U_YSENTRY
  1. Q
  1. MASKSSN(YSSSN) ; return only last 4 of SSN
  1. Q "xxx-xx-"_$E(YSSSN,$L(YSSSN)-3,$L(YSSSN))
  1. ;
  1. PREV ;
  1. W @IOF,YSHDR
  1. I '$D(A1(1)),'$D(^YTD(601.4,YSDFN,1,YSENTRY,0)),'$D(^YTD(601.4,YSDFN,1,"AC",YSENTRY)) W !!,?10,"No Previous Administrations on File" S YSPREV=0 Q
  1. I $D(^YTD(601.4,YSDFN,1,YSENTRY,0)) W !!,"Incomplete "_YSCODE_" on-line administration found on " S Y=$P(^(0),U,2) X ^DD("DD") W Y Q
  1. I $D(^YTD(601.4,YSDFN,1,"AC",YSENTRY)) W !!,"Incomplete "_YSCODE_" clerk entry found on " S Y=$P(^YTD(601.4,YSDFN,1,14,0),U,2) X ^DD("DD") W Y Q
  1. ;
  1. W !!,"Previous Administrations of the",$S(YSTITLE["*":$TR(YSTITLE,"*",""),YSTITLE["-":$TR(YSTITLE,"-",""),1:" "_YSTITLE),!!
  1. F I=1:1 Q:'$D(A1(I)) D
  1. . S YSPREV=I
  1. . S Y=$P(A1(I),U,2)
  1. . X ^DD("DD")
  1. . W:$X>60 !
  1. . W $J(I,3)_" "_Y_" "
  1. Q
  1. KT ;
  1. K J I $D(^YTD(601.4,YSDFN,1,YSTEST)) S YSENTRY=YSTEST D ENKIL^YTFILE
  1. Q
  1. END ;
  1. D KVAR^VADPT
  1. K %,%Y,A,A1,B,C,I,J,N2,T1,X,X2,Y,YSAGE,YSBEGIN,YSBL,YSCL,YSCLERK
  1. K YSCODE,YSDEMO,YSDFN,YSDT,YSENT,YSENTRY,YSHD,YSHDR,YSHDT,YSNM,YSNQ
  1. K YSNT,YSOK,YSOPT,YSORD,YSPREV,YSPTD,YSPTM,YSQ,YSRESTRT,YSRP,YSSEX
  1. K YSSSN,YSSX,YSTEST,YSTESTN,YSTITLE,YSXT,YSXTP,YTESTN,YTLM
  1. Q