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

YTQGMTS.m

Go to the documentation of this file.
  1. YTQGMTS ;SLC/KCM - MHA Health Summary APIs ; 9/15/2015
  1. ;;5.01;MENTAL HEALTH;**119**;Dec 30, 1994;Build 40
  1. ;
  1. ; Usage of SEL():
  1. ; I GMTSFI=601.71 D SEL^YTQGMTS(GMTSRT,GMTSI,GMTSCNT,GMTSDIR) Q
  1. ;
  1. SEL(YTQROOT,YTQFROM,YTQMAX,YTQDIR) ; Get instrument list for health summary
  1. I '$L($G(YTQROOT)) Q
  1. S YTQMAX=$G(YTQMAX,44),YTQDIR=$G(YTQDIR,1)
  1. ;
  1. N NM,IEN,CNT
  1. S NM=$G(YTQFROM),CNT=0
  1. F Q:CNT'<YTQMAX S NM=$O(^YTT(601.71,"B",NM),YTQDIR) Q:NM="" D
  1. . S IEN=0 F S IEN=$O(^YTT(601.71,"B",NM,IEN)) Q:'IEN I $$VALID(IEN) D
  1. . . S CNT=CNT+1,@YTQROOT@(CNT)=IEN_"^"_NM
  1. Q
  1. ;
  1. ; Usage of $$ITER:
  1. ; S GMTSI=0_U_GMTSFM
  1. ; F S GMTSI=$$ITER^YTQGMTS(.GMTSI,DIR) Q:'GMTSI D
  1. ; . S GMTSC=GMTSC+1,^TMP("ORDATA",$J,1,GMTSC)=GMTSI
  1. ;
  1. ITER(YTQITER,YTQDIR) ; pass in iterator to get next instrument
  1. ; YTQITER=fromIEN^fromName
  1. N IEN,FROM,ITER
  1. S IEN=+$P(YTQITER,U),FROM=$P(YTQITER,U,2),ITER=""
  1. S YTQDIR=$G(YTQDIR,1)
  1. F D Q:$$VALID(ITER)
  1. . ; see if another IEN for this FROM
  1. . I $L(FROM),IEN S IEN=$O(^YTT(601.71,"B",FROM,IEN))
  1. . I IEN S ITER=IEN_U_FROM Q
  1. . ; move to next/previous FROM
  1. . S FROM=$O(^YTT(601.71,"B",FROM),YTQDIR)
  1. . I '$L(FROM) S ITER="" Q
  1. . S ITER=+$O(^YTT(601.71,"B",FROM,0))_U_FROM
  1. Q ITER
  1. ;
  1. VALID(ITER) ; return true if valid iterator (if instrument should be shown)
  1. I ITER="" Q 1 ; end of list
  1. I '$D(^YTT(601.71,+ITER,0)) Q 0 ; bad IEN
  1. I $P($G(^YTT(601.71,+ITER,9)),U,1,2)="DLL^YTSCORE" Q 0 ; complex instrument
  1. I $P($G(^YTT(601.71,+ITER,2)),U,5)'="Y" Q 0 ; never used
  1. Q 1
  1. ;
  1. ; Tests:
  1. ;
  1. TESTSEL(DIR) ; test SEL tag
  1. N ROOT,I
  1. K ^TMP("YTQGMTS",$J)
  1. S ROOT=$NA(^TMP("YTQGMTS",$J,1))
  1. W !,"FORWARD -------------"
  1. D SEL(ROOT,"",100)
  1. S I=0 F S I=$O(@ROOT@(I)) Q:'I W !,I,?10,@ROOT@(I)
  1. K @ROOT
  1. W !!,"REVERSE ------------"
  1. D SEL(ROOT,"MMPI",20,-1)
  1. S I=0 F S I=$O(@ROOT@(I)) Q:'I W !,I,?10,@ROOT@(I)
  1. K @ROOT
  1. Q
  1. ;
  1. TESTFWD ; test forward iteration
  1. D TESTLOOP(1)
  1. Q
  1. TESTREV ; test reverse iteration
  1. D TESTLOOP(-1)
  1. Q
  1. TESTLOOP(DIR) ;
  1. N GMTSI,GMTSC
  1. S GMTSI="",GMTSC=0
  1. F S GMTSI=$$ITER^YTQGMTS(.GMTSI,DIR) Q:'GMTSI S GMTSC=GMTSC+1 D
  1. . W !,GMTSC,?10,GMTSI
  1. Q