GMTSOBD ; SLC/KER - HS Object - Display Type            ; 01/06/2003
 ;;2.7;Health Summary;**58**;Oct 20, 1995
 ;                
 ; External References
 ;   DBIA  10104  $$UP^XLFSTR
 ;   DBIA  10088  ENDR^%ZISS
 ;   DBIA   2056  $$GET1^DIQ  (file #200)
 ;   DBIA  10086  ^%ZIS
 ;   DBIA  10063  ^%ZTLOAD
 ;   DBIA  10089  ^%ZISC
 ;            
 Q
DDT(X) ; Detailed Display HS Type
 N GMTSDTD S GMTSDTD="" D DT(+($G(X))) Q
DT(X) ; Display HS Type
 K ^TMP("GMTSOBT",$J)
 N GMTSCCT,GMTSCNT,GMTSCMP,GMTSCPN,GMTSCPT,GMTSHD1,GMTSHD2,GMTSHOS
 N GMTSI,GMTSICD,GMTSIT,GMTSITC,GMTSITM,GMTSITS,GMTSLEN,GMTSLI,GMTSNAM
 N GMTSNAR,GMTSND0,GMTSOCC,GMTSOWN,GMTSPAR,GMTSPRT,GMTSS,GMTSTIM,GMTSTR
 N GMTSTTL,GMTSTXT,GMTST1,GMTST2,GMTSUNT,GMTSX,I
 S GMTSX=+($G(X)),(GMTSCCT,GMTSCNT)=0,GMTSND0=$G(^GMT(142,+($G(X)),0)),U="^"
 S GMTSNAM=$P(GMTSND0,U,1) Q:'$L(GMTSNAM)
 S GMTSOWN=$P(GMTSND0,U,3),GMTSOWN=$S(+GMTSOWN>0:$$GET1^DIQ(200,(+GMTSOWN_","),.01),1:"")
 S GMTSTTL=$G(^GMT(142,+($G(X)),"T"))
 S GMTST1=GMTSNAM,GMTSS=$J("",(35-$L(GMTST1)))
 S GMTSTXT=GMTSNAM S GMTSTXT=$G(BOLD)_GMTSTXT_$G(NORM)
 S:$L(GMTSTTL) GMTSTXT=GMTSTXT_GMTSS_GMTSTTL
 S GMTSCNT=GMTSCNT+1 S ^TMP("GMTSOBT",$J,GMTSCNT)=" "_GMTSTXT,^TMP("GMTSOBT",$J,0)=GMTSCNT
 S GMTSI=0 F  S GMTSI=$O(^GMT(142,+X,1,GMTSI)) Q:+GMTSI=0  D
 . N GMTSTR,GMTSCMP,GMTSCPN,GMTSHD1,GMTSHD2,GMTSITS S GMTSTR=$G(^GMT(142,+X,1,+GMTSI,0))
 . S GMTSCMP=$P(GMTSTR,U,2)
 . S GMTSPAR=$$PAR(+X,+GMTSI)
 . S GMTSCPN=$P($G(^GMT(142.1,+GMTSCMP,0)),U,1) Q:'$L(GMTSCPN)
 . S GMTSHD2=$P(GMTSTR,U,5),GMTSHD1=$P($G(^GMT(142.1,+GMTSCMP,0)),U,9)
 . S:$L(GMTSHD1) GMTSHD2=GMTSHD1
 . S GMTSITS=$S($D(^GMT(142,+X,1,+GMTSI,1,"B")):1,1:0),GMTSCCT=GMTSCCT+1
 . S GMTST1=" "_$J(GMTSCCT,3)_"  "_GMTSCPN,GMTSS=$J("",(40-$L(GMTST1)))
 . S GMTSTXT=" "_$G(BOLD)_$J(GMTSCCT,3)_"  "_GMTSCPN_$G(NORM)
 . S:$L(GMTSHD2) GMTSTXT=GMTSTXT_GMTSS_GMTSHD2_" "
 . S GMTST2=$S($L(GMTSHD2):(GMTST1_GMTSS_GMTSHD2),1:GMTST1)
 . S:+GMTSITS GMTSTXT=GMTSTXT_$S($L(GMTSTXT)<40:$J("",(40-$L(GMTST2))),1:"")_"(w/Selected Items)"
 . S GMTSCNT=GMTSCNT+1 S ^TMP("GMTSOBT",$J,GMTSCNT)=GMTSTXT,^TMP("GMTSOBT",$J,0)=GMTSCNT
 . I $L(GMTSPAR),$D(GMTSDTD) D
 . . S GMTSTXT="        "_GMTSPAR
 . . S GMTSCNT=GMTSCNT+1 S ^TMP("GMTSOBT",$J,GMTSCNT)=GMTSTXT,^TMP("GMTSOBT",$J,0)=GMTSCNT
 . N GMTSIT,GMTSITC S (GMTSIT,GMTSITC)=0
 . F  S GMTSIT=$O(^GMT(142,+X,1,+GMTSI,1,GMTSIT)) Q:+GMTSIT=0  D
 . . N GMTSLI,GMTSITM,GMTSNAM
 . . S GMTSLI=$G(^GMT(142,+X,1,+GMTSI,1,GMTSIT,0)),GMTSITM=$P(GMTSLI,U,1) Q:'$L(GMTSITM)
 . . Q:'$L($P(GMTSITM,";",2))  Q:+($P(GMTSITM,";",1))'>0  Q:'$D(@(U_$P(GMTSITM,";",2)_"0)"))
 . . S GMTSITM=U_$P(GMTSITM,";",2)_$P(GMTSITM,";",1)_",0)" S GMTSITM=@GMTSITM
 . . S GMTSNAM=$P(GMTSITM,U,1) Q:'$L(GMTSNAM)
 . . S GMTSITC=GMTSITC+1
 . . S GMTST1="       "_$J(GMTSITC,5)_"  "_GMTSNAM
 . . S GMTSTXT="       "_$G(BOLD)_$J(GMTSITC,5)_"  "_GMTSNAM_$G(NORM)
 . . S GMTSCNT=GMTSCNT+1 S ^TMP("GMTSOBT",$J,GMTSCNT)=GMTSTXT,^TMP("GMTSOBT",$J,0)=GMTSCNT
 I '$D(GMTSNOQ) D:+($G(^TMP("GMTSOBT",$J,0)))>0 DEV K ^TMP("GMTSOBT",$J)
 Q
PAR(X,I) ; Component Parameters
 N GMTSCPT,GMTSHOS,GMTSICD,GMTSLEN,GMTSNAR,GMTSOCC,GMTSPRT,GMTSTR
 N GMTSTIM,GMTSTXT,GMTSUNT
 S (GMTSTXT,GMTSPRT)="",GMTSTR=$G(^GMT(142,+X,1,+I,0))
 S GMTSOCC=$P(GMTSTR,U,3),GMTSOCC=$S(+GMTSOCC>0:(+GMTSOCC_" occ"),1:"")
 S GMTSTIM=$P(GMTSTR,U,4),GMTSUNT=$E(GMTSTIM,$L(GMTSTIM)),GMTSLEN=+GMTSTIM
 S GMTSUNT=$S(+GMTSUNT>0:"day",GMTSUNT="D":"day",GMTSUNT="W":"week",GMTSUNT="M":"month",GMTSUNT="Y":"year",1:"") S:$L(GMTSUNT)&(+GMTSLEN>1) GMTSUNT=GMTSUNT_"s"
 S GMTSTIM=$S(+GMTSTIM>0&($L(GMTSUNT)):(+GMTSTIM_" "_GMTSUNT),1:"")
 S GMTSHOS=$P(GMTSTR,U,6),GMTSHOS=$S($$UP^XLFSTR(GMTSHOS)="Y":"Hosp Loc",1:"")
 S GMTSICD=$$UP^XLFSTR($P(GMTSTR,U,7)),GMTSICD=$S(GMTSICD="L":"GMTSICD (long)",GMTSICD="S":"GMTSICD (short)",GMTSICD="C":"GMTSICD code",GMTSICD="T":"GMTSICD text",GMTSICD="N":"",1:"")
 S GMTSNAR=$$UP^XLFSTR($P(GMTSTR,U,8)),GMTSNAR=$S(GMTSNAR="Y":"Prov Narr",1:"")
 S GMTSCPT=$$UP^XLFSTR($P(GMTSTR,U,9)),GMTSCPT=$S(GMTSCPT="Y":"GMTSCPT Mod",1:"")
 S:$L(GMTSOCC) GMTSTXT=GMTSOCC
 S:$L(GMTSTIM)&($L(GMTSTXT)) GMTSTXT=GMTSTXT_" or "_GMTSTIM S:$L(GMTSTIM)&('$L(GMTSTXT)) GMTSTXT=GMTSTIM
 S:$L(GMTSHOS) GMTSPRT=GMTSHOS S:$L(GMTSICD)&($L(GMTSPRT)) GMTSPRT=GMTSPRT_", "_GMTSICD S:$L(GMTSICD)&('$L(GMTSPRT)) GMTSPRT=GMTSICD
 S:$L(GMTSNAR)&($L(GMTSPRT)) GMTSPRT=GMTSPRT_", "_GMTSNAR S:$L(GMTSNAR)&('$L(GMTSPRT)) GMTSPRT=GMTSNAR
 S:$L(GMTSCPT)&($L(GMTSPRT)) GMTSPRT=GMTSPRT_", "_GMTSCPT S:$L(GMTSCPT)&('$L(GMTSPRT)) GMTSPRT=GMTSCPT
 S:GMTSPRT[", " GMTSPRT=$P(GMTSPRT,", ",($L(GMTSPRT,", ")-1))_" and "_$P(GMTSPRT,", ",$L(GMTSPRT,", "))
 S:$L(GMTSPRT)&($L(GMTSTXT)) GMTSTXT=GMTSTXT_", and print "_GMTSPRT
 S:$L(GMTSPRT)&('$L(GMTSTXT)) GMTSTXT="Print "_GMTSPRT S X=GMTSTXT
 Q X
DEV ; Device
 I $D(CAP) D NODEV Q
 N ZTRTN,%ZIS,IOP,POP S %ZIS="PQ" D ^%ZIS Q:POP  I $D(IO("Q")) D QUE Q
NOQUE ; Print without Queuing
 N ZTRTN S ZTRTN="DSP^GMTSOBD"
 I $D(IOST),$D(IOF) W:IOST["C-"&('$D(GMTSNOI)) @IOF
 D @ZTRTN,^%ZISC Q
QUE ; Queued Print
 N %,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK,ZTRTN S ZTRTN="DSP^GMTSOBD" K IO("Q"),ZTSAVE
 S ZTSAVE("^TMP(""GMTSOBJ"","_$J_",")=""
 S:$L($G(GMTSHDR)) ZTSAVE("GMTSHDR")=""
 S ZTDESC="Display Health Summary Type" S ZTIO=ION,ZTDTH=$H
 D ^%ZTLOAD I '$D(ZTSK) W !!,"Request Cancelled",! H 3 W:$D(IOF) @IOF
 I $D(ZTSK) W !!,"Request Queued",! H 3 W:$D(IOF) @IOF
 K ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE D ^%ZISC Q
 Q
NODEV ; Print without Device Selection
 W !! N ZTRTN,POP,IOP,%ZIS,IOSL S IOSL=99999999999
 S ZTRTN="DSP^GMTSOBD" D @ZTRTN,^%ZISC
 Q
DSP ; Print Health Summary Type
 N GMTST,GMTSI,GMTSC,GMTSP,GMTSL,GMTSE,GMTSCR,GMTSPL
 S GMTSPL=3,GMTSE=0,GMTSP=$G(IOST),GMTSL=+($G(IOSL)) S:+GMTSL=0 GMTSL=24
 I $D(GMTSHDR) S (GMTSI,GMTSC)=0 D
 . F  S GMTSI=$O(GMTSHDR(GMTSI)) Q:+GMTSI=0  D  Q:GMTSE>0
 . . S GMTST=$G(GMTSHDR(GMTSI)) Q:'$L(GMTST)
 . . S GMTSC=GMTSC+1 I GMTSC=1 W ! S GMTSPL=GMTSPL+1
 . . W !,GMTST S GMTSPL=GMTSPL+1
 S GMTSI=0 F  S GMTSI=$O(^TMP("GMTSOBT",$J,GMTSI)) Q:+GMTSI=0  D
 . W !,$G(^TMP("GMTSOBT",$J,GMTSI)) S GMTSPL=GMTSPL+1 D CONT Q:GMTSE
 D CONT I '$D(CAP) W:GMTSP["P-"&($D(IOF)) @IOF
 Q
CONT ; Press <Return> to Continue
 I GMTSP["P-" W:$L($G(IOF))&($D(IOF)) @IOF Q
 Q:(GMTSP["C-"!(GMTSP=""))&(GMTSPL'>(GMTSL-4))  S GMTSPL=0 Q:GMTSE
 N GMTSCR S GMTSPL=0 W !!,"  Press <Return> to Continue  "
 R GMTSCR:660 I '$T!(GMTSCR["^") S GMTSCR="^",GMTSE=1
 W:GMTSP'["P-"&($D(IOF)) @IOF Q
 Q
ATTR ; Set Screen Attributes
 N X,IOINHI,IOINORM S X="IOINHI;IOINORM" D ENDR^%ZISS S BOLD=$G(IOINHI),NORM=$G(IOINORM) Q
KATTR ; Kill Screen Attributes
 K NORM,BOLD Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMTSOBD   6638     printed  Sep 23, 2025@19:34:22                                                                                                                                                                                                     Page 2
GMTSOBD   ; SLC/KER - HS Object - Display Type            ; 01/06/2003
 +1       ;;2.7;Health Summary;**58**;Oct 20, 1995
 +2       ;                
 +3       ; External References
 +4       ;   DBIA  10104  $$UP^XLFSTR
 +5       ;   DBIA  10088  ENDR^%ZISS
 +6       ;   DBIA   2056  $$GET1^DIQ  (file #200)
 +7       ;   DBIA  10086  ^%ZIS
 +8       ;   DBIA  10063  ^%ZTLOAD
 +9       ;   DBIA  10089  ^%ZISC
 +10      ;            
 +11       QUIT 
DDT(X)    ; Detailed Display HS Type
 +1        NEW GMTSDTD
           SET GMTSDTD=""
           DO DT(+($GET(X)))
           QUIT 
DT(X)     ; Display HS Type
 +1        KILL ^TMP("GMTSOBT",$JOB)
 +2        NEW GMTSCCT,GMTSCNT,GMTSCMP,GMTSCPN,GMTSCPT,GMTSHD1,GMTSHD2,GMTSHOS
 +3        NEW GMTSI,GMTSICD,GMTSIT,GMTSITC,GMTSITM,GMTSITS,GMTSLEN,GMTSLI,GMTSNAM
 +4        NEW GMTSNAR,GMTSND0,GMTSOCC,GMTSOWN,GMTSPAR,GMTSPRT,GMTSS,GMTSTIM,GMTSTR
 +5        NEW GMTSTTL,GMTSTXT,GMTST1,GMTST2,GMTSUNT,GMTSX,I
 +6        SET GMTSX=+($GET(X))
           SET (GMTSCCT,GMTSCNT)=0
           SET GMTSND0=$GET(^GMT(142,+($GET(X)),0))
           SET U="^"
 +7        SET GMTSNAM=$PIECE(GMTSND0,U,1)
           if '$LENGTH(GMTSNAM)
               QUIT 
 +8        SET GMTSOWN=$PIECE(GMTSND0,U,3)
           SET GMTSOWN=$SELECT(+GMTSOWN>0:$$GET1^DIQ(200,(+GMTSOWN_","),.01),1:"")
 +9        SET GMTSTTL=$GET(^GMT(142,+($GET(X)),"T"))
 +10       SET GMTST1=GMTSNAM
           SET GMTSS=$JUSTIFY("",(35-$LENGTH(GMTST1)))
 +11       SET GMTSTXT=GMTSNAM
           SET GMTSTXT=$GET(BOLD)_GMTSTXT_$GET(NORM)
 +12       if $LENGTH(GMTSTTL)
               SET GMTSTXT=GMTSTXT_GMTSS_GMTSTTL
 +13       SET GMTSCNT=GMTSCNT+1
           SET ^TMP("GMTSOBT",$JOB,GMTSCNT)=" "_GMTSTXT
           SET ^TMP("GMTSOBT",$JOB,0)=GMTSCNT
 +14       SET GMTSI=0
           FOR 
               SET GMTSI=$ORDER(^GMT(142,+X,1,GMTSI))
               if +GMTSI=0
                   QUIT 
               Begin DoDot:1
 +15               NEW GMTSTR,GMTSCMP,GMTSCPN,GMTSHD1,GMTSHD2,GMTSITS
                   SET GMTSTR=$GET(^GMT(142,+X,1,+GMTSI,0))
 +16               SET GMTSCMP=$PIECE(GMTSTR,U,2)
 +17               SET GMTSPAR=$$PAR(+X,+GMTSI)
 +18               SET GMTSCPN=$PIECE($GET(^GMT(142.1,+GMTSCMP,0)),U,1)
                   if '$LENGTH(GMTSCPN)
                       QUIT 
 +19               SET GMTSHD2=$PIECE(GMTSTR,U,5)
                   SET GMTSHD1=$PIECE($GET(^GMT(142.1,+GMTSCMP,0)),U,9)
 +20               if $LENGTH(GMTSHD1)
                       SET GMTSHD2=GMTSHD1
 +21               SET GMTSITS=$SELECT($DATA(^GMT(142,+X,1,+GMTSI,1,"B")):1,1:0)
                   SET GMTSCCT=GMTSCCT+1
 +22               SET GMTST1=" "_$JUSTIFY(GMTSCCT,3)_"  "_GMTSCPN
                   SET GMTSS=$JUSTIFY("",(40-$LENGTH(GMTST1)))
 +23               SET GMTSTXT=" "_$GET(BOLD)_$JUSTIFY(GMTSCCT,3)_"  "_GMTSCPN_$GET(NORM)
 +24               if $LENGTH(GMTSHD2)
                       SET GMTSTXT=GMTSTXT_GMTSS_GMTSHD2_" "
 +25               SET GMTST2=$SELECT($LENGTH(GMTSHD2):(GMTST1_GMTSS_GMTSHD2),1:GMTST1)
 +26               if +GMTSITS
                       SET GMTSTXT=GMTSTXT_$SELECT($LENGTH(GMTSTXT)<40:$JUSTIFY("",(40-$LENGTH(GMTST2))),1:"")_"(w/Selected Items)"
 +27               SET GMTSCNT=GMTSCNT+1
                   SET ^TMP("GMTSOBT",$JOB,GMTSCNT)=GMTSTXT
                   SET ^TMP("GMTSOBT",$JOB,0)=GMTSCNT
 +28               IF $LENGTH(GMTSPAR)
                       IF $DATA(GMTSDTD)
                           Begin DoDot:2
 +29                           SET GMTSTXT="        "_GMTSPAR
 +30                           SET GMTSCNT=GMTSCNT+1
                               SET ^TMP("GMTSOBT",$JOB,GMTSCNT)=GMTSTXT
                               SET ^TMP("GMTSOBT",$JOB,0)=GMTSCNT
                           End DoDot:2
 +31               NEW GMTSIT,GMTSITC
                   SET (GMTSIT,GMTSITC)=0
 +32               FOR 
                       SET GMTSIT=$ORDER(^GMT(142,+X,1,+GMTSI,1,GMTSIT))
                       if +GMTSIT=0
                           QUIT 
                       Begin DoDot:2
 +33                       NEW GMTSLI,GMTSITM,GMTSNAM
 +34                       SET GMTSLI=$GET(^GMT(142,+X,1,+GMTSI,1,GMTSIT,0))
                           SET GMTSITM=$PIECE(GMTSLI,U,1)
                           if '$LENGTH(GMTSITM)
                               QUIT 
 +35                       if '$LENGTH($PIECE(GMTSITM,";",2))
                               QUIT 
                           if +($PIECE(GMTSITM,";",1))'>0
                               QUIT 
                           if '$DATA(@(U_$PIECE(GMTSITM,";",2)_"0)"))
                               QUIT 
 +36                       SET GMTSITM=U_$PIECE(GMTSITM,";",2)_$PIECE(GMTSITM,";",1)_",0)"
                           SET GMTSITM=@GMTSITM
 +37                       SET GMTSNAM=$PIECE(GMTSITM,U,1)
                           if '$LENGTH(GMTSNAM)
                               QUIT 
 +38                       SET GMTSITC=GMTSITC+1
 +39                       SET GMTST1="       "_$JUSTIFY(GMTSITC,5)_"  "_GMTSNAM
 +40                       SET GMTSTXT="       "_$GET(BOLD)_$JUSTIFY(GMTSITC,5)_"  "_GMTSNAM_$GET(NORM)
 +41                       SET GMTSCNT=GMTSCNT+1
                           SET ^TMP("GMTSOBT",$JOB,GMTSCNT)=GMTSTXT
                           SET ^TMP("GMTSOBT",$JOB,0)=GMTSCNT
                       End DoDot:2
               End DoDot:1
 +42       IF '$DATA(GMTSNOQ)
               if +($GET(^TMP("GMTSOBT",$JOB,0)))>0
                   DO DEV
               KILL ^TMP("GMTSOBT",$JOB)
 +43       QUIT 
PAR(X,I)  ; Component Parameters
 +1        NEW GMTSCPT,GMTSHOS,GMTSICD,GMTSLEN,GMTSNAR,GMTSOCC,GMTSPRT,GMTSTR
 +2        NEW GMTSTIM,GMTSTXT,GMTSUNT
 +3        SET (GMTSTXT,GMTSPRT)=""
           SET GMTSTR=$GET(^GMT(142,+X,1,+I,0))
 +4        SET GMTSOCC=$PIECE(GMTSTR,U,3)
           SET GMTSOCC=$SELECT(+GMTSOCC>0:(+GMTSOCC_" occ"),1:"")
 +5        SET GMTSTIM=$PIECE(GMTSTR,U,4)
           SET GMTSUNT=$EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))
           SET GMTSLEN=+GMTSTIM
 +6        SET GMTSUNT=$SELECT(+GMTSUNT>0:"day",GMTSUNT="D":"day",GMTSUNT="W":"week",GMTSUNT="M":"month",GMTSUNT="Y":"year",1:"")
           if $LENGTH(GMTSUNT)&(+GMTSLEN>1)
               SET GMTSUNT=GMTSUNT_"s"
 +7        SET GMTSTIM=$SELECT(+GMTSTIM>0&($LENGTH(GMTSUNT)):(+GMTSTIM_" "_GMTSUNT),1:"")
 +8        SET GMTSHOS=$PIECE(GMTSTR,U,6)
           SET GMTSHOS=$SELECT($$UP^XLFSTR(GMTSHOS)="Y":"Hosp Loc",1:"")
 +9        SET GMTSICD=$$UP^XLFSTR($PIECE(GMTSTR,U,7))
           SET GMTSICD=$SELECT(GMTSICD="L":"GMTSICD (long)",GMTSICD="S":"GMTSICD (short)",GMTSICD="C":"GMTSICD code",GMTSICD="T":"GMTSICD text",GMTSICD="N":"",1:"")
 +10       SET GMTSNAR=$$UP^XLFSTR($PIECE(GMTSTR,U,8))
           SET GMTSNAR=$SELECT(GMTSNAR="Y":"Prov Narr",1:"")
 +11       SET GMTSCPT=$$UP^XLFSTR($PIECE(GMTSTR,U,9))
           SET GMTSCPT=$SELECT(GMTSCPT="Y":"GMTSCPT Mod",1:"")
 +12       if $LENGTH(GMTSOCC)
               SET GMTSTXT=GMTSOCC
 +13       if $LENGTH(GMTSTIM)&($LENGTH(GMTSTXT))
               SET GMTSTXT=GMTSTXT_" or "_GMTSTIM
           if $LENGTH(GMTSTIM)&('$LENGTH(GMTSTXT))
               SET GMTSTXT=GMTSTIM
 +14       if $LENGTH(GMTSHOS)
               SET GMTSPRT=GMTSHOS
           if $LENGTH(GMTSICD)&($LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSPRT_", "_GMTSICD
           if $LENGTH(GMTSICD)&('$LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSICD
 +15       if $LENGTH(GMTSNAR)&($LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSPRT_", "_GMTSNAR
           if $LENGTH(GMTSNAR)&('$LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSNAR
 +16       if $LENGTH(GMTSCPT)&($LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSPRT_", "_GMTSCPT
           if $LENGTH(GMTSCPT)&('$LENGTH(GMTSPRT))
               SET GMTSPRT=GMTSCPT
 +17       if GMTSPRT[", "
               SET GMTSPRT=$PIECE(GMTSPRT,", ",($LENGTH(GMTSPRT,", ")-1))_" and "_$PIECE(GMTSPRT,", ",$LENGTH(GMTSPRT,", "))
 +18       if $LENGTH(GMTSPRT)&($LENGTH(GMTSTXT))
               SET GMTSTXT=GMTSTXT_", and print "_GMTSPRT
 +19       if $LENGTH(GMTSPRT)&('$LENGTH(GMTSTXT))
               SET GMTSTXT="Print "_GMTSPRT
           SET X=GMTSTXT
 +20       QUIT X
DEV       ; Device
 +1        IF $DATA(CAP)
               DO NODEV
               QUIT 
 +2        NEW ZTRTN,%ZIS,IOP,POP
           SET %ZIS="PQ"
           DO ^%ZIS
           if POP
               QUIT 
           IF $DATA(IO("Q"))
               DO QUE
               QUIT 
NOQUE     ; Print without Queuing
 +1        NEW ZTRTN
           SET ZTRTN="DSP^GMTSOBD"
 +2        IF $DATA(IOST)
               IF $DATA(IOF)
                   if IOST["C-"&('$DATA(GMTSNOI))
                       WRITE @IOF
 +3        DO @ZTRTN
           DO ^%ZISC
           QUIT 
QUE       ; Queued Print
 +1        NEW %,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK,ZTRTN
           SET ZTRTN="DSP^GMTSOBD"
           KILL IO("Q"),ZTSAVE
 +2        SET ZTSAVE("^TMP(""GMTSOBJ"","_$JOB_",")=""
 +3        if $LENGTH($GET(GMTSHDR))
               SET ZTSAVE("GMTSHDR")=""
 +4        SET ZTDESC="Display Health Summary Type"
           SET ZTIO=ION
           SET ZTDTH=$HOROLOG
 +5        DO ^%ZTLOAD
           IF '$DATA(ZTSK)
               WRITE !!,"Request Cancelled",!
               HANG 3
               if $DATA(IOF)
                   WRITE @IOF
 +6        IF $DATA(ZTSK)
               WRITE !!,"Request Queued",!
               HANG 3
               if $DATA(IOF)
                   WRITE @IOF
 +7        KILL ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
           DO ^%ZISC
           QUIT 
 +8        QUIT 
NODEV     ; Print without Device Selection
 +1        WRITE !!
           NEW ZTRTN,POP,IOP,%ZIS,IOSL
           SET IOSL=99999999999
 +2        SET ZTRTN="DSP^GMTSOBD"
           DO @ZTRTN
           DO ^%ZISC
 +3        QUIT 
DSP       ; Print Health Summary Type
 +1        NEW GMTST,GMTSI,GMTSC,GMTSP,GMTSL,GMTSE,GMTSCR,GMTSPL
 +2        SET GMTSPL=3
           SET GMTSE=0
           SET GMTSP=$GET(IOST)
           SET GMTSL=+($GET(IOSL))
           if +GMTSL=0
               SET GMTSL=24
 +3        IF $DATA(GMTSHDR)
               SET (GMTSI,GMTSC)=0
               Begin DoDot:1
 +4                FOR 
                       SET GMTSI=$ORDER(GMTSHDR(GMTSI))
                       if +GMTSI=0
                           QUIT 
                       Begin DoDot:2
 +5                        SET GMTST=$GET(GMTSHDR(GMTSI))
                           if '$LENGTH(GMTST)
                               QUIT 
 +6                        SET GMTSC=GMTSC+1
                           IF GMTSC=1
                               WRITE !
                               SET GMTSPL=GMTSPL+1
 +7                        WRITE !,GMTST
                           SET GMTSPL=GMTSPL+1
                       End DoDot:2
                       if GMTSE>0
                           QUIT 
               End DoDot:1
 +8        SET GMTSI=0
           FOR 
               SET GMTSI=$ORDER(^TMP("GMTSOBT",$JOB,GMTSI))
               if +GMTSI=0
                   QUIT 
               Begin DoDot:1
 +9                WRITE !,$GET(^TMP("GMTSOBT",$JOB,GMTSI))
                   SET GMTSPL=GMTSPL+1
                   DO CONT
                   if GMTSE
                       QUIT 
               End DoDot:1
 +10       DO CONT
           IF '$DATA(CAP)
               if GMTSP["P-"&($DATA(IOF))
                   WRITE @IOF
 +11       QUIT 
CONT      ; Press <Return> to Continue
 +1        IF GMTSP["P-"
               if $LENGTH($GET(IOF))&($DATA(IOF))
                   WRITE @IOF
               QUIT 
 +2        if (GMTSP["C-"!(GMTSP=""))&(GMTSPL'>(GMTSL-4))
               QUIT 
           SET GMTSPL=0
           if GMTSE
               QUIT 
 +3        NEW GMTSCR
           SET GMTSPL=0
           WRITE !!,"  Press <Return> to Continue  "
 +4        READ GMTSCR:660
           IF '$TEST!(GMTSCR["^")
               SET GMTSCR="^"
               SET GMTSE=1
 +5        if GMTSP'["P-"&($DATA(IOF))
               WRITE @IOF
           QUIT 
 +6        QUIT 
ATTR      ; Set Screen Attributes
 +1        NEW X,IOINHI,IOINORM
           SET X="IOINHI;IOINORM"
           DO ENDR^%ZISS
           SET BOLD=$GET(IOINHI)
           SET NORM=$GET(IOINORM)
           QUIT 
KATTR     ; Kill Screen Attributes
 +1        KILL NORM,BOLD
           QUIT