GMTSOBS ; SLC/KER - HS Object - Show ; 01/06/2003
;;2.7;Health Summary;**58**;Oct 20, 1995
;
; External References
; DBIA 10103 $$FMADD^XLFDT
; DBIA 10103 $$NOW^XLFDT
; DBIA 10103 $$FMTE^XLFDT
; DBIA 10104 $$UP^XLFSTR
; DBIA 2056 $$GET1^DIQ (file #200)
; DBIA 10060 ^VA(200, (read w/fileman)
; DBIA 10086 ^%ZIS
; DBIA 10086 HOME^%ZIS
; DBIA 10089 ^%ZISC
; DBIA 10088 ENDR^%ZISS
; DBIA 10063 ^%ZTLOAD
;
Q
DEF(X,GMTSARY) ; Extract Object Definition/Example
N GMTSEXT S GMTSEXT="" D SO($G(X)) Q
SO(X) ; Show Object
N GMTSNAM,GMTSLBL,GMTSTYP,GMTSHST,GMTSPER,GMTSNOD,GMTSPLB
N GMTSLBB,GMTSRDT,GMTSCON,GMTSRHD,GMTSCHD,GMTSUND,GMTSLIM,GMTSBLK
N GMTSDEC,GMTSOWN,GMTSCRE,GMTSMOD,GMTSUNT,GMTSLEN,GMTSTIM,GMTSI
N GMTSO,GMTSL,GMTSDTM,GMTSDED,GMTSDCH,GMTSDCN,GMTSTIM,GMTSWIN,TXT S U="^"
S GMTSO=$G(^GMT(142.5,+($G(X)),0))
S GMTSNAM=$P(GMTSO,U,1) Q:'$L(GMTSNAM)
S GMTSLBL=$P(GMTSO,U,2) S:'$L(GMTSLBL) GMTSLBL="UNSPECIFIED"
S (GMTSHST,GMTSTYP)=+($P(GMTSO,U,3)) Q:+GMTSTYP=0
S GMTSTYP=$P($G(^GMT(142,+GMTSTYP,0)),"^",1) Q:'$L(GMTSTYP)
S GMTSPER=$P(GMTSO,U,4)
S GMTSLEN=+GMTSPER
S GMTSUNT=$E(GMTSPER,$L(GMTSPER))
S:+GMTSUNT>0 GMTSUNT="D"
;
S GMTSNOD=+($P(GMTSO,U,5))
S GMTSHDR=+($P(GMTSO,U,6))
S GMTSPLB=+($P(GMTSO,U,7))
S GMTSLBB=+($P(GMTSO,U,8))
S GMTSRDT=+($P(GMTSO,U,9))
S GMTSCON=+($P(GMTSO,U,10))
S GMTSRHD=+($P(GMTSO,U,11))
S GMTSCHD=+($P(GMTSO,U,12))
S GMTSUND=+($P(GMTSO,U,13))
S GMTSLIM=+($P(GMTSO,U,14))
S GMTSBLK=+($P(GMTSO,U,15))
S GMTSDEC=+($P(GMTSO,U,16))
S GMTSOWN=+($P(GMTSO,U,17)),GMTSOWN=$$GET1^DIQ(200,(+GMTSOWN_","),.01)
S GMTSCRE=+($P(GMTSO,U,18)),GMTSCRE=$TR($$FMTE^XLFDT(GMTSCRE,"5ZM"),"@"," ")
S GMTSMOD=+($P(GMTSO,U,19)),GMTSMOD=$TR($$FMTE^XLFDT(GMTSMOD,"5ZM"),"@"," ")
S (GMTSTIM,GMTSPER)=$P(GMTSO,"^",4),GMTSTIM=$S($E(GMTSTIM,$L(GMTSTIM))="Y":" year",$E(GMTSTIM,$L(GMTSTIM))="M":" month",$E(GMTSTIM,$L(GMTSTIM))="W":" week",1:" day")
S:+GMTSPER>1 GMTSTIM=GMTSTIM_"s" S GMTSTIM=+GMTSPER_GMTSTIM
I $L(GMTSPER) D
. N GMTSPX1,GMTSPX2,GMTSLEN,GMTSUNT,GMTSDIF
. S GMTSPX1=$$NOW^XLFDT,GMTSUNT=$E(GMTSPER,$L(GMTSPER)),GMTSLEN=+GMTSPER
. I +GMTSLEN=0!($L(GMTSUNT)'=1)!("DWMY"'[GMTSUNT) S GMTSPER="" Q
. S:GMTSUNT="D" GMTSDIF=GMTSLEN S:GMTSUNT="W" GMTSDIF=GMTSLEN*7
. S:GMTSUNT="M" GMTSDIF=GMTSLEN*30.4 S:GMTSUNT="Y" GMTSDIF=GMTSLEN*365.25
. S GMTSDIF=$P(GMTSDIF,".",1),GMTSPX2=$$FMADD^XLFDT(GMTSPX1,-(GMTSDIF))
. S GMTSPX1=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX1,"ZD"))
. S GMTSPX2=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX2,"ZD"))
. S GMTSWIN=GMTSPER_" ("_GMTSPX2_" - "_GMTSPX1_")"
S:'$L(GMTSPER) GMTSPER="UNSPECIFIED"
S:$L($G(GMTSTIM))&('$L($G(GMTSWIN))) GMTSWIN=$G(GMTSTIM)
W:$L($G(GMTSHDR(1))) !,GMTSHDR(1)
W:$L($G(GMTSHDR(2))) !,GMTSHDR(2)
;
S TXT=" OBJECT NAME: "_$G(GMTSNAM)
D D(TXT)
S TXT=" HEALTH SUMMARY TYPE: "_$G(GMTSTYP)
D D(TXT)
;
S TXT=" REPORT PERIOD: "_$G(GMTSPER),TXT=TXT_$J(" ",(41-$L(TXT)))_"PRINT REPORT DATE/TIME: "_$S(+GMTSHDR>0&(+GMTSRDT>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" LABEL: "_$G(GMTSLBL),TXT=TXT_$J(" ",(41-$L(TXT)))_"PRINT CONFIDENTIALITY BANNER: "_$S(+GMTSHDR>0&(+GMTSCON>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" PRINT LABEL: "_$S(+GMTSPLB>0:"YES",1:"NO"),TXT=TXT_$J(" ",(41-$L(TXT)))_"PRINT REPORT HEADER: "_$S(+GMTSHDR>0&(+GMTSRHD>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" BLANK LINE AFTER LABEL: "_$S(+GMTSLBB>0:"YES",1:"NO"),TXT=TXT_$J(" ",(41-$L(TXT)))_"PRINT COMPONENT HEADER: "_$S(+GMTSHDR>0&(+GMTSCHD>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" SUPPRESS COMPONENTS W/O DATA: "_$S(+GMTSNOD>0:"YES",1:"NO")
S TXT=TXT_$J(" ",(41-$L(TXT)))_" PRINT TIME-OCCURRENCE LIMITS: "_$S(+GMTSHDR>0&(+GMTSLIM>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" SUPPRESS HEADER: "_$S(+GMTSHDR>0:"YES",1:"NO")
S TXT=TXT_$J(" ",(41-$L(TXT)))_" UNDERLINE COMPONENT HEADER: "_$S(+GMTSHDR>0&(+GMTSUND>0):"YES",1:"NO")
D D(TXT)
;
S TXT=" SUPPRESS DECEASED INFORMATION: "_$S(+GMTSHDR>0&(+GMTSDEC>0):"NO",1:"YES")
S TXT=TXT_$J(" ",(41-$L(TXT)))_" BLANK LINE AFTER HEADER: "_$S(+GMTSHDR>0&(+GMTSBLK>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
D D(TXT)
;
S TXT=" CREATOR: "_GMTSOWN
S TXT=TXT_$J(" ",(41-$L(TXT)))_"CREATED: "_GMTSCRE
D D(TXT)
;
S TXT="",TXT=TXT_$J(" ",(41-$L(TXT)))_"LAST MODIFIED: "_GMTSMOD
D D(TXT)
;
Q:$D(GMTSABRR)
;
S TXT=" EXAMPLE:" D E(TXT)
S GMTSDTM=$$NOW^XLFDT,GMTSDED=$$FMADD^XLFDT(GMTSDTM,-2000)
S GMTSDED=$TR($$FMTE^XLFDT($P(GMTSDED,".",1),"2ZM"),"@"," ")
S GMTSDTM=$TR($$FMTE^XLFDT(GMTSDTM,"2ZM"),"@"," ")
S GMTSDCH=$$DCH(+($G(GMTSHST))),GMTSDCN=$P(GMTSDCH,"^",2),GMTSDCH=$P(GMTSDCH,"^",1)
S:'$L(GMTSDCH) GMTSDCH="PN - Progress Notes" S GMTSTIM=$$TIM($G(GMTSPER))
D:+GMTSHDR>0 SP^GMTSOBS2
D:+GMTSHDR'>0 HS^GMTSOBS2
Q
DCH(X) ; Default Component Header
N GMTSABR,GMTSDHD,GMTSDCH,GMTSDCN,GMTSTYP S GMTSTYP=+($G(X)),GMTSABR=$O(^GMT(142,+GMTSTYP,1,0))
S GMTSABR=$G(^GMT(142,+GMTSTYP,1,+GMTSABR,0)),GMTSABR=+($P(GMTSABR,"^",2))
S GMTSDCN=$P($G(^GMT(142.1,+GMTSABR,0)),"^",1),GMTSDHD=$P($G(^GMT(142.1,+GMTSABR,0)),"^",9),GMTSABR=$P($G(^GMT(142.1,+GMTSABR,0)),"^",4)
S GMTSDCH=$S($L(GMTSABR)&($L(GMTSDHD)):(GMTSABR_" - "_GMTSDHD),1:"PN - Progress Notes")
S X=GMTSDCH_"^"_GMTSDCN Q X
TIM(X) ; Time
N GMTSTIM,GMTSPER S (GMTSTIM,GMTSPER)=$G(X) S:'$L(GMTSTIM) (GMTSTIM,GMTSPER)="3M"
S GMTSTIM=$S($E(GMTSTIM,$L(GMTSTIM))="Y":" year",$E(GMTSTIM,$L(GMTSTIM))="M":" month",$E(GMTSTIM,$L(GMTSTIM))="W":" week",1:" day")
S:+GMTSPER>1 GMTSTIM=GMTSTIM_"s" S GMTSTIM=+GMTSPER_GMTSTIM
S X=GMTSTIM Q X
Q
DEV ; Device
I +($G(DFN))=0!('$D(^TMP("GMTSOBJ",$J,DFN))) K ^TMP("GMTSOBJ",$J,DFN) Q
I $D(CAP) D NODEV K ^TMP("GMTSOBJ",$J,DFN) 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^GMTSOBS"
I $D(IOST),$D(IOF) W:IOST["C-"&('$D(GMTSNOI)) @IOF
D @ZTRTN,^%ZISC K ^TMP("GMTSOBJ",$J,DFN) Q
QUE ; Queued Print
N %,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK,ZTRTN S ZTRTN="DSP^GMTSOBS" K IO("Q"),ZTSAVE
S ZTSAVE("^TMP(""GMTSOBJ"","_$J_","_DFN_",")="" S ZTSAVE("DFN")=""
S:$D(GMTSHDR) ZTSAVE("GMTSHDR")=""
S ZTDESC="Display Health Summary Object" 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^GMTSOBS" D @ZTRTN,^%ZISC K ^TMP("GMTSOBJ",$J,DFN)
Q
DSP ; Print Health Summary Type
Q:+($G(DFN))=0 N GMTST,GMTSI,GMTSC,GMTSP,GMTSL,GMTSEXIT,GMTSCR,GMTSPL D HOME^%ZIS
S GMTSPL=3,GMTSEXIT=0,GMTSP=$G(IOST),GMTSL=+($G(IOSL)) S:+GMTSL=0 GMTSL=24
D ATTR W !!,$G(BOLD),"<----------------------------- Break in Document ---------------------------->",$G(NORM) S GMTSPL=GMTSPL+1
W !,$G(BOLD),"<---------------------------- Beginning of Object --------------------------->",$G(NORM) S GMTSPL=GMTSPL+1 D KATTR
S GMTSI=0 F S GMTSI=$O(^TMP("GMTSOBJ",$J,DFN,GMTSI)) Q:+GMTSI=0 D
. W !,$G(^TMP("GMTSOBJ",$J,DFN,GMTSI,0)) S GMTSPL=+GMTSPL+1 D CONT
K ^TMP("GMTSOBJ",$J,DFN)
D ATTR W !,$G(BOLD),"<------------------------------ End of Object ------------------------------->",$G(NORM) S GMTSPL=+GMTSPL+1
W !,$G(BOLD),"<----------------------------- Document Resumes ----------------------------->",$G(NORM) D KATTR S GMTSPL=+GMTSPL+1 S:+GMTSL>0 IOSL=GMTSL
S GMTSPL=GMTSL D CONT W:GMTSP["P-"&($D(IOF)) @IOF
Q
D(X) ; Display
I '$D(GMTSEXT) W !,$G(X) Q
N GMTSC S GMTSC=$G(GMTSARY("D",0))+1,GMTSARY("D",+GMTSC)=$G(X),GMTSARY("D",0)=GMTSC
Q
E(X) ; Example
I '$D(GMTSEXT) W !,$G(X) Q
N GMTSC S GMTSC=$G(GMTSARY("E",0))+1,GMTSARY("E",+GMTSC)=$G(X),GMTSARY("E",0)=GMTSC
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:GMTSEXIT
N GMTSCR S GMTSPL=0 W !!," Press <Return> to Continue "
R GMTSCR:660 I '$T!(GMTSCR["^") S GMTSCR="^",GMTSEXIT=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
GMTSOBS ; SLC/KER - HS Object - Show ; 01/06/2003
+1 ;;2.7;Health Summary;**58**;Oct 20, 1995
+2 ;
+3 ; External References
+4 ; DBIA 10103 $$FMADD^XLFDT
+5 ; DBIA 10103 $$NOW^XLFDT
+6 ; DBIA 10103 $$FMTE^XLFDT
+7 ; DBIA 10104 $$UP^XLFSTR
+8 ; DBIA 2056 $$GET1^DIQ (file #200)
+9 ; DBIA 10060 ^VA(200, (read w/fileman)
+10 ; DBIA 10086 ^%ZIS
+11 ; DBIA 10086 HOME^%ZIS
+12 ; DBIA 10089 ^%ZISC
+13 ; DBIA 10088 ENDR^%ZISS
+14 ; DBIA 10063 ^%ZTLOAD
+15 ;
+16 QUIT
DEF(X,GMTSARY) ; Extract Object Definition/Example
+1 NEW GMTSEXT
SET GMTSEXT=""
DO SO($GET(X))
QUIT
SO(X) ; Show Object
+1 NEW GMTSNAM,GMTSLBL,GMTSTYP,GMTSHST,GMTSPER,GMTSNOD,GMTSPLB
+2 NEW GMTSLBB,GMTSRDT,GMTSCON,GMTSRHD,GMTSCHD,GMTSUND,GMTSLIM,GMTSBLK
+3 NEW GMTSDEC,GMTSOWN,GMTSCRE,GMTSMOD,GMTSUNT,GMTSLEN,GMTSTIM,GMTSI
+4 NEW GMTSO,GMTSL,GMTSDTM,GMTSDED,GMTSDCH,GMTSDCN,GMTSTIM,GMTSWIN,TXT
SET U="^"
+5 SET GMTSO=$GET(^GMT(142.5,+($GET(X)),0))
+6 SET GMTSNAM=$PIECE(GMTSO,U,1)
IF '$LENGTH(GMTSNAM)
QUIT
+7 SET GMTSLBL=$PIECE(GMTSO,U,2)
IF '$LENGTH(GMTSLBL)
SET GMTSLBL="UNSPECIFIED"
+8 SET (GMTSHST,GMTSTYP)=+($PIECE(GMTSO,U,3))
IF +GMTSTYP=0
QUIT
+9 SET GMTSTYP=$PIECE($GET(^GMT(142,+GMTSTYP,0)),"^",1)
IF '$LENGTH(GMTSTYP)
QUIT
+10 SET GMTSPER=$PIECE(GMTSO,U,4)
+11 SET GMTSLEN=+GMTSPER
+12 SET GMTSUNT=$EXTRACT(GMTSPER,$LENGTH(GMTSPER))
+13 IF +GMTSUNT>0
SET GMTSUNT="D"
+14 ;
+15 SET GMTSNOD=+($PIECE(GMTSO,U,5))
+16 SET GMTSHDR=+($PIECE(GMTSO,U,6))
+17 SET GMTSPLB=+($PIECE(GMTSO,U,7))
+18 SET GMTSLBB=+($PIECE(GMTSO,U,8))
+19 SET GMTSRDT=+($PIECE(GMTSO,U,9))
+20 SET GMTSCON=+($PIECE(GMTSO,U,10))
+21 SET GMTSRHD=+($PIECE(GMTSO,U,11))
+22 SET GMTSCHD=+($PIECE(GMTSO,U,12))
+23 SET GMTSUND=+($PIECE(GMTSO,U,13))
+24 SET GMTSLIM=+($PIECE(GMTSO,U,14))
+25 SET GMTSBLK=+($PIECE(GMTSO,U,15))
+26 SET GMTSDEC=+($PIECE(GMTSO,U,16))
+27 SET GMTSOWN=+($PIECE(GMTSO,U,17))
SET GMTSOWN=$$GET1^DIQ(200,(+GMTSOWN_","),.01)
+28 SET GMTSCRE=+($PIECE(GMTSO,U,18))
SET GMTSCRE=$TRANSLATE($$FMTE^XLFDT(GMTSCRE,"5ZM"),"@"," ")
+29 SET GMTSMOD=+($PIECE(GMTSO,U,19))
SET GMTSMOD=$TRANSLATE($$FMTE^XLFDT(GMTSMOD,"5ZM"),"@"," ")
+30 SET (GMTSTIM,GMTSPER)=$PIECE(GMTSO,"^",4)
SET GMTSTIM=$SELECT($EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="Y":" year",$EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="M":" month",$EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="W":" week",1:" day")
+31 IF +GMTSPER>1
SET GMTSTIM=GMTSTIM_"s"
SET GMTSTIM=+GMTSPER_GMTSTIM
+32 IF $LENGTH(GMTSPER)
Begin DoDot:1
+33 NEW GMTSPX1,GMTSPX2,GMTSLEN,GMTSUNT,GMTSDIF
+34 SET GMTSPX1=$$NOW^XLFDT
SET GMTSUNT=$EXTRACT(GMTSPER,$LENGTH(GMTSPER))
SET GMTSLEN=+GMTSPER
+35 IF +GMTSLEN=0!($LENGTH(GMTSUNT)'=1)!("DWMY"'[GMTSUNT)
SET GMTSPER=""
QUIT
+36 IF GMTSUNT="D"
SET GMTSDIF=GMTSLEN
IF GMTSUNT="W"
SET GMTSDIF=GMTSLEN*7
+37 IF GMTSUNT="M"
SET GMTSDIF=GMTSLEN*30.4
IF GMTSUNT="Y"
SET GMTSDIF=GMTSLEN*365.25
+38 SET GMTSDIF=$PIECE(GMTSDIF,".",1)
SET GMTSPX2=$$FMADD^XLFDT(GMTSPX1,-(GMTSDIF))
+39 SET GMTSPX1=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX1,"ZD"))
+40 SET GMTSPX2=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX2,"ZD"))
+41 SET GMTSWIN=GMTSPER_" ("_GMTSPX2_" - "_GMTSPX1_")"
End DoDot:1
+42 IF '$LENGTH(GMTSPER)
SET GMTSPER="UNSPECIFIED"
+43 IF $LENGTH($GET(GMTSTIM))&('$LENGTH($GET(GMTSWIN)))
SET GMTSWIN=$GET(GMTSTIM)
+44 IF $LENGTH($GET(GMTSHDR(1)))
WRITE !,GMTSHDR(1)
+45 IF $LENGTH($GET(GMTSHDR(2)))
WRITE !,GMTSHDR(2)
+46 ;
+47 SET TXT=" OBJECT NAME: "_$GET(GMTSNAM)
+48 DO D(TXT)
+49 SET TXT=" HEALTH SUMMARY TYPE: "_$GET(GMTSTYP)
+50 DO D(TXT)
+51 ;
+52 SET TXT=" REPORT PERIOD: "_$GET(GMTSPER)
SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"PRINT REPORT DATE/TIME: "_$SELECT(+GMTSHDR>0&(+GMTSRDT>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+53 DO D(TXT)
+54 ;
+55 SET TXT=" LABEL: "_$GET(GMTSLBL)
SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"PRINT CONFIDENTIALITY BANNER: "_$SELECT(+GMTSHDR>0&(+GMTSCON>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+56 DO D(TXT)
+57 ;
+58 SET TXT=" PRINT LABEL: "_$SELECT(+GMTSPLB>0:"YES",1:"NO")
SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"PRINT REPORT HEADER: "_$SELECT(+GMTSHDR>0&(+GMTSRHD>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+59 DO D(TXT)
+60 ;
+61 SET TXT=" BLANK LINE AFTER LABEL: "_$SELECT(+GMTSLBB>0:"YES",1:"NO")
SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"PRINT COMPONENT HEADER: "_$SELECT(+GMTSHDR>0&(+GMTSCHD>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+62 DO D(TXT)
+63 ;
+64 SET TXT=" SUPPRESS COMPONENTS W/O DATA: "_$SELECT(+GMTSNOD>0:"YES",1:"NO")
+65 SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_" PRINT TIME-OCCURRENCE LIMITS: "_$SELECT(+GMTSHDR>0&(+GMTSLIM>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+66 DO D(TXT)
+67 ;
+68 SET TXT=" SUPPRESS HEADER: "_$SELECT(+GMTSHDR>0:"YES",1:"NO")
+69 SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_" UNDERLINE COMPONENT HEADER: "_$SELECT(+GMTSHDR>0&(+GMTSUND>0):"YES",1:"NO")
+70 DO D(TXT)
+71 ;
+72 SET TXT=" SUPPRESS DECEASED INFORMATION: "_$SELECT(+GMTSHDR>0&(+GMTSDEC>0):"NO",1:"YES")
+73 SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_" BLANK LINE AFTER HEADER: "_$SELECT(+GMTSHDR>0&(+GMTSBLK>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
+74 DO D(TXT)
+75 ;
+76 SET TXT=" CREATOR: "_GMTSOWN
+77 SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"CREATED: "_GMTSCRE
+78 DO D(TXT)
+79 ;
+80 SET TXT=""
SET TXT=TXT_$JUSTIFY(" ",(41-$LENGTH(TXT)))_"LAST MODIFIED: "_GMTSMOD
+81 DO D(TXT)
+82 ;
+83 IF $DATA(GMTSABRR)
QUIT
+84 ;
+85 SET TXT=" EXAMPLE:"
DO E(TXT)
+86 SET GMTSDTM=$$NOW^XLFDT
SET GMTSDED=$$FMADD^XLFDT(GMTSDTM,-2000)
+87 SET GMTSDED=$TRANSLATE($$FMTE^XLFDT($PIECE(GMTSDED,".",1),"2ZM"),"@"," ")
+88 SET GMTSDTM=$TRANSLATE($$FMTE^XLFDT(GMTSDTM,"2ZM"),"@"," ")
+89 SET GMTSDCH=$$DCH(+($GET(GMTSHST)))
SET GMTSDCN=$PIECE(GMTSDCH,"^",2)
SET GMTSDCH=$PIECE(GMTSDCH,"^",1)
+90 IF '$LENGTH(GMTSDCH)
SET GMTSDCH="PN - Progress Notes"
SET GMTSTIM=$$TIM($GET(GMTSPER))
+91 IF +GMTSHDR>0
DO SP^GMTSOBS2
+92 IF +GMTSHDR'>0
DO HS^GMTSOBS2
+93 QUIT
DCH(X) ; Default Component Header
+1 NEW GMTSABR,GMTSDHD,GMTSDCH,GMTSDCN,GMTSTYP
SET GMTSTYP=+($GET(X))
SET GMTSABR=$ORDER(^GMT(142,+GMTSTYP,1,0))
+2 SET GMTSABR=$GET(^GMT(142,+GMTSTYP,1,+GMTSABR,0))
SET GMTSABR=+($PIECE(GMTSABR,"^",2))
+3 SET GMTSDCN=$PIECE($GET(^GMT(142.1,+GMTSABR,0)),"^",1)
SET GMTSDHD=$PIECE($GET(^GMT(142.1,+GMTSABR,0)),"^",9)
SET GMTSABR=$PIECE($GET(^GMT(142.1,+GMTSABR,0)),"^",4)
+4 SET GMTSDCH=$SELECT($LENGTH(GMTSABR)&($LENGTH(GMTSDHD)):(GMTSABR_" - "_GMTSDHD),1:"PN - Progress Notes")
+5 SET X=GMTSDCH_"^"_GMTSDCN
QUIT X
TIM(X) ; Time
+1 NEW GMTSTIM,GMTSPER
SET (GMTSTIM,GMTSPER)=$GET(X)
IF '$LENGTH(GMTSTIM)
SET (GMTSTIM,GMTSPER)="3M"
+2 SET GMTSTIM=$SELECT($EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="Y":" year",$EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="M":" month",$EXTRACT(GMTSTIM,$LENGTH(GMTSTIM))="W":" week",1:" day")
+3 IF +GMTSPER>1
SET GMTSTIM=GMTSTIM_"s"
SET GMTSTIM=+GMTSPER_GMTSTIM
+4 SET X=GMTSTIM
QUIT X
+5 QUIT
DEV ; Device
+1 IF +($GET(DFN))=0!('$DATA(^TMP("GMTSOBJ",$JOB,DFN)))
KILL ^TMP("GMTSOBJ",$JOB,DFN)
QUIT
+2 IF $DATA(CAP)
DO NODEV
KILL ^TMP("GMTSOBJ",$JOB,DFN)
QUIT
+3 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^GMTSOBS"
+2 IF $DATA(IOST)
IF $DATA(IOF)
IF IOST["C-"&('$DATA(GMTSNOI))
WRITE @IOF
+3 DO @ZTRTN
DO ^%ZISC
KILL ^TMP("GMTSOBJ",$JOB,DFN)
QUIT
QUE ; Queued Print
+1 NEW %,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK,ZTRTN
SET ZTRTN="DSP^GMTSOBS"
KILL IO("Q"),ZTSAVE
+2 SET ZTSAVE("^TMP(""GMTSOBJ"","_$JOB_","_DFN_",")=""
SET ZTSAVE("DFN")=""
+3 IF $DATA(GMTSHDR)
SET ZTSAVE("GMTSHDR")=""
+4 SET ZTDESC="Display Health Summary Object"
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^GMTSOBS"
DO @ZTRTN
DO ^%ZISC
KILL ^TMP("GMTSOBJ",$JOB,DFN)
+3 QUIT
DSP ; Print Health Summary Type
+1 IF +($GET(DFN))=0
QUIT
NEW GMTST,GMTSI,GMTSC,GMTSP,GMTSL,GMTSEXIT,GMTSCR,GMTSPL
DO HOME^%ZIS
+2 SET GMTSPL=3
SET GMTSEXIT=0
SET GMTSP=$GET(IOST)
SET GMTSL=+($GET(IOSL))
IF +GMTSL=0
SET GMTSL=24
+3 DO ATTR
WRITE !!,$GET(BOLD),"<----------------------------- Break in Document ---------------------------->",$GET(NORM)
SET GMTSPL=GMTSPL+1
+4 WRITE !,$GET(BOLD),"<---------------------------- Beginning of Object --------------------------->",$GET(NORM)
SET GMTSPL=GMTSPL+1
DO KATTR
+5 SET GMTSI=0
FOR
SET GMTSI=$ORDER(^TMP("GMTSOBJ",$JOB,DFN,GMTSI))
IF +GMTSI=0
QUIT
Begin DoDot:1
+6 WRITE !,$GET(^TMP("GMTSOBJ",$JOB,DFN,GMTSI,0))
SET GMTSPL=+GMTSPL+1
DO CONT
End DoDot:1
+7 KILL ^TMP("GMTSOBJ",$JOB,DFN)
+8 DO ATTR
WRITE !,$GET(BOLD),"<------------------------------ End of Object ------------------------------->",$GET(NORM)
SET GMTSPL=+GMTSPL+1
+9 WRITE !,$GET(BOLD),"<----------------------------- Document Resumes ----------------------------->",$GET(NORM)
DO KATTR
SET GMTSPL=+GMTSPL+1
IF +GMTSL>0
SET IOSL=GMTSL
+10 SET GMTSPL=GMTSL
DO CONT
IF GMTSP["P-"&($DATA(IOF))
WRITE @IOF
+11 QUIT
D(X) ; Display
+1 IF '$DATA(GMTSEXT)
WRITE !,$GET(X)
QUIT
+2 NEW GMTSC
SET GMTSC=$GET(GMTSARY("D",0))+1
SET GMTSARY("D",+GMTSC)=$GET(X)
SET GMTSARY("D",0)=GMTSC
+3 QUIT
E(X) ; Example
+1 IF '$DATA(GMTSEXT)
WRITE !,$GET(X)
QUIT
+2 NEW GMTSC
SET GMTSC=$GET(GMTSARY("E",0))+1
SET GMTSARY("E",+GMTSC)=$GET(X)
SET GMTSARY("E",0)=GMTSC
+3 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 GMTSEXIT
QUIT
+3 NEW GMTSCR
SET GMTSPL=0
WRITE !!," Press <Return> to Continue "
+4 READ GMTSCR:660
IF '$TEST!(GMTSCR["^")
SET GMTSCR="^"
SET GMTSEXIT=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)
+2 QUIT
KATTR ; Kill Screen Attributes
+1 KILL NORM,BOLD
QUIT