| 1 | GMTSOBS ; SLC/KER - HS Object - Show                     ; 01/06/2003
 | 
|---|
| 2 |  ;;2.7;Health Summary;**58**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;    DBIA 10103  $$FMADD^XLFDT
 | 
|---|
| 6 |  ;    DBIA 10103  $$NOW^XLFDT
 | 
|---|
| 7 |  ;    DBIA 10103  $$FMTE^XLFDT
 | 
|---|
| 8 |  ;    DBIA 10104  $$UP^XLFSTR
 | 
|---|
| 9 |  ;    DBIA  2056  $$GET1^DIQ  (file #200)
 | 
|---|
| 10 |  ;    DBIA 10060  ^VA(200, (read w/fileman)
 | 
|---|
| 11 |  ;    DBIA 10086  ^%ZIS
 | 
|---|
| 12 |  ;    DBIA 10086  HOME^%ZIS
 | 
|---|
| 13 |  ;    DBIA 10089  ^%ZISC
 | 
|---|
| 14 |  ;    DBIA 10088  ENDR^%ZISS
 | 
|---|
| 15 |  ;    DBIA 10063  ^%ZTLOAD
 | 
|---|
| 16 |  ;                  
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | DEF(X,GMTSARY) ; Extract Object Definition/Example
 | 
|---|
| 19 |  N GMTSEXT S GMTSEXT="" D SO($G(X)) Q
 | 
|---|
| 20 | SO(X) ; Show Object
 | 
|---|
| 21 |  N GMTSNAM,GMTSLBL,GMTSTYP,GMTSHST,GMTSPER,GMTSNOD,GMTSPLB
 | 
|---|
| 22 |  N GMTSLBB,GMTSRDT,GMTSCON,GMTSRHD,GMTSCHD,GMTSUND,GMTSLIM,GMTSBLK
 | 
|---|
| 23 |  N GMTSDEC,GMTSOWN,GMTSCRE,GMTSMOD,GMTSUNT,GMTSLEN,GMTSTIM,GMTSI
 | 
|---|
| 24 |  N GMTSO,GMTSL,GMTSDTM,GMTSDED,GMTSDCH,GMTSDCN,GMTSTIM,GMTSWIN,TXT S U="^"
 | 
|---|
| 25 |  S GMTSO=$G(^GMT(142.5,+($G(X)),0))
 | 
|---|
| 26 |  S GMTSNAM=$P(GMTSO,U,1) Q:'$L(GMTSNAM)
 | 
|---|
| 27 |  S GMTSLBL=$P(GMTSO,U,2) S:'$L(GMTSLBL) GMTSLBL="UNSPECIFIED"
 | 
|---|
| 28 |  S (GMTSHST,GMTSTYP)=+($P(GMTSO,U,3)) Q:+GMTSTYP=0
 | 
|---|
| 29 |  S GMTSTYP=$P($G(^GMT(142,+GMTSTYP,0)),"^",1) Q:'$L(GMTSTYP)
 | 
|---|
| 30 |  S GMTSPER=$P(GMTSO,U,4)
 | 
|---|
| 31 |  S GMTSLEN=+GMTSPER
 | 
|---|
| 32 |  S GMTSUNT=$E(GMTSPER,$L(GMTSPER))
 | 
|---|
| 33 |  S:+GMTSUNT>0 GMTSUNT="D"
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  S GMTSNOD=+($P(GMTSO,U,5))
 | 
|---|
| 36 |  S GMTSHDR=+($P(GMTSO,U,6))
 | 
|---|
| 37 |  S GMTSPLB=+($P(GMTSO,U,7))
 | 
|---|
| 38 |  S GMTSLBB=+($P(GMTSO,U,8))
 | 
|---|
| 39 |  S GMTSRDT=+($P(GMTSO,U,9))
 | 
|---|
| 40 |  S GMTSCON=+($P(GMTSO,U,10))
 | 
|---|
| 41 |  S GMTSRHD=+($P(GMTSO,U,11))
 | 
|---|
| 42 |  S GMTSCHD=+($P(GMTSO,U,12))
 | 
|---|
| 43 |  S GMTSUND=+($P(GMTSO,U,13))
 | 
|---|
| 44 |  S GMTSLIM=+($P(GMTSO,U,14))
 | 
|---|
| 45 |  S GMTSBLK=+($P(GMTSO,U,15))
 | 
|---|
| 46 |  S GMTSDEC=+($P(GMTSO,U,16))
 | 
|---|
| 47 |  S GMTSOWN=+($P(GMTSO,U,17)),GMTSOWN=$$GET1^DIQ(200,(+GMTSOWN_","),.01)
 | 
|---|
| 48 |  S GMTSCRE=+($P(GMTSO,U,18)),GMTSCRE=$TR($$FMTE^XLFDT(GMTSCRE,"5ZM"),"@"," ")
 | 
|---|
| 49 |  S GMTSMOD=+($P(GMTSO,U,19)),GMTSMOD=$TR($$FMTE^XLFDT(GMTSMOD,"5ZM"),"@"," ")
 | 
|---|
| 50 |  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")
 | 
|---|
| 51 |  S:+GMTSPER>1 GMTSTIM=GMTSTIM_"s" S GMTSTIM=+GMTSPER_GMTSTIM
 | 
|---|
| 52 |  I $L(GMTSPER) D
 | 
|---|
| 53 |  . N GMTSPX1,GMTSPX2,GMTSLEN,GMTSUNT,GMTSDIF
 | 
|---|
| 54 |  . S GMTSPX1=$$NOW^XLFDT,GMTSUNT=$E(GMTSPER,$L(GMTSPER)),GMTSLEN=+GMTSPER
 | 
|---|
| 55 |  . I +GMTSLEN=0!($L(GMTSUNT)'=1)!("DWMY"'[GMTSUNT) S GMTSPER="" Q
 | 
|---|
| 56 |  . S:GMTSUNT="D" GMTSDIF=GMTSLEN S:GMTSUNT="W" GMTSDIF=GMTSLEN*7
 | 
|---|
| 57 |  . S:GMTSUNT="M" GMTSDIF=GMTSLEN*30.4 S:GMTSUNT="Y" GMTSDIF=GMTSLEN*365.25
 | 
|---|
| 58 |  . S GMTSDIF=$P(GMTSDIF,".",1),GMTSPX2=$$FMADD^XLFDT(GMTSPX1,-(GMTSDIF))
 | 
|---|
| 59 |  . S GMTSPX1=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX1,"ZD"))
 | 
|---|
| 60 |  . S GMTSPX2=$$UP^XLFSTR($$FMTE^XLFDT(GMTSPX2,"ZD"))
 | 
|---|
| 61 |  . S GMTSWIN=GMTSPER_"   ("_GMTSPX2_" - "_GMTSPX1_")"
 | 
|---|
| 62 |  S:'$L(GMTSPER) GMTSPER="UNSPECIFIED"
 | 
|---|
| 63 |  S:$L($G(GMTSTIM))&('$L($G(GMTSWIN))) GMTSWIN=$G(GMTSTIM)
 | 
|---|
| 64 |  W:$L($G(GMTSHDR(1))) !,GMTSHDR(1)
 | 
|---|
| 65 |  W:$L($G(GMTSHDR(2))) !,GMTSHDR(2)
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  S TXT="  OBJECT NAME: "_$G(GMTSNAM)
 | 
|---|
| 68 |  D D(TXT)
 | 
|---|
| 69 |  S TXT="  HEALTH SUMMARY TYPE:   "_$G(GMTSTYP)
 | 
|---|
| 70 |  D D(TXT)
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  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")
 | 
|---|
| 73 |  D D(TXT)
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  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")
 | 
|---|
| 76 |  D D(TXT)
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  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")
 | 
|---|
| 79 |  D D(TXT)
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  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")
 | 
|---|
| 82 |  D D(TXT)
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  S TXT="    SUPPRESS COMPONENTS W/O DATA: "_$S(+GMTSNOD>0:"YES",1:"NO")
 | 
|---|
| 85 |  S TXT=TXT_$J(" ",(41-$L(TXT)))_"  PRINT TIME-OCCURRENCE LIMITS: "_$S(+GMTSHDR>0&(+GMTSLIM>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
 | 
|---|
| 86 |  D D(TXT)
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  S TXT="    SUPPRESS HEADER: "_$S(+GMTSHDR>0:"YES",1:"NO")
 | 
|---|
| 89 |  S TXT=TXT_$J(" ",(41-$L(TXT)))_"  UNDERLINE COMPONENT HEADER: "_$S(+GMTSHDR>0&(+GMTSUND>0):"YES",1:"NO")
 | 
|---|
| 90 |  D D(TXT)
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  S TXT="    SUPPRESS DECEASED INFORMATION: "_$S(+GMTSHDR>0&(+GMTSDEC>0):"NO",1:"YES")
 | 
|---|
| 93 |  S TXT=TXT_$J(" ",(41-$L(TXT)))_"  BLANK LINE AFTER HEADER: "_$S(+GMTSHDR>0&(+GMTSBLK>0):"YES",+GMTSHDR'>0:"YES",1:"NO")
 | 
|---|
| 94 |  D D(TXT)
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  S TXT="    CREATOR: "_GMTSOWN
 | 
|---|
| 97 |  S TXT=TXT_$J(" ",(41-$L(TXT)))_"CREATED: "_GMTSCRE
 | 
|---|
| 98 |  D D(TXT)
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  S TXT="",TXT=TXT_$J(" ",(41-$L(TXT)))_"LAST MODIFIED: "_GMTSMOD
 | 
|---|
| 101 |  D D(TXT)
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 |  Q:$D(GMTSABRR)
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  S TXT="    EXAMPLE:" D E(TXT)
 | 
|---|
| 106 |  S GMTSDTM=$$NOW^XLFDT,GMTSDED=$$FMADD^XLFDT(GMTSDTM,-2000)
 | 
|---|
| 107 |  S GMTSDED=$TR($$FMTE^XLFDT($P(GMTSDED,".",1),"2ZM"),"@"," ")
 | 
|---|
| 108 |  S GMTSDTM=$TR($$FMTE^XLFDT(GMTSDTM,"2ZM"),"@"," ")
 | 
|---|
| 109 |  S GMTSDCH=$$DCH(+($G(GMTSHST))),GMTSDCN=$P(GMTSDCH,"^",2),GMTSDCH=$P(GMTSDCH,"^",1)
 | 
|---|
| 110 |  S:'$L(GMTSDCH) GMTSDCH="PN - Progress Notes" S GMTSTIM=$$TIM($G(GMTSPER))
 | 
|---|
| 111 |  D:+GMTSHDR>0 SP^GMTSOBS2
 | 
|---|
| 112 |  D:+GMTSHDR'>0 HS^GMTSOBS2
 | 
|---|
| 113 |  Q
 | 
|---|
| 114 | DCH(X) ; Default Component Header
 | 
|---|
| 115 |  N GMTSABR,GMTSDHD,GMTSDCH,GMTSDCN,GMTSTYP S GMTSTYP=+($G(X)),GMTSABR=$O(^GMT(142,+GMTSTYP,1,0))
 | 
|---|
| 116 |  S GMTSABR=$G(^GMT(142,+GMTSTYP,1,+GMTSABR,0)),GMTSABR=+($P(GMTSABR,"^",2))
 | 
|---|
| 117 |  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)
 | 
|---|
| 118 |  S GMTSDCH=$S($L(GMTSABR)&($L(GMTSDHD)):(GMTSABR_" - "_GMTSDHD),1:"PN - Progress Notes")
 | 
|---|
| 119 |  S X=GMTSDCH_"^"_GMTSDCN Q X
 | 
|---|
| 120 | TIM(X) ; Time
 | 
|---|
| 121 |  N GMTSTIM,GMTSPER S (GMTSTIM,GMTSPER)=$G(X) S:'$L(GMTSTIM) (GMTSTIM,GMTSPER)="3M"
 | 
|---|
| 122 |  S GMTSTIM=$S($E(GMTSTIM,$L(GMTSTIM))="Y":" year",$E(GMTSTIM,$L(GMTSTIM))="M":" month",$E(GMTSTIM,$L(GMTSTIM))="W":" week",1:" day")
 | 
|---|
| 123 |  S:+GMTSPER>1 GMTSTIM=GMTSTIM_"s" S GMTSTIM=+GMTSPER_GMTSTIM
 | 
|---|
| 124 |  S X=GMTSTIM Q X
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 | DEV ; Device
 | 
|---|
| 127 |  I +($G(DFN))=0!('$D(^TMP("GMTSOBJ",$J,DFN))) K ^TMP("GMTSOBJ",$J,DFN) Q
 | 
|---|
| 128 |  I $D(CAP) D NODEV K ^TMP("GMTSOBJ",$J,DFN) Q
 | 
|---|
| 129 |  N ZTRTN,%ZIS,IOP,POP S %ZIS="PQ" D ^%ZIS Q:POP  I $D(IO("Q")) D QUE Q
 | 
|---|
| 130 | NOQUE ; Print without Queuing
 | 
|---|
| 131 |  N ZTRTN S ZTRTN="DSP^GMTSOBS"
 | 
|---|
| 132 |  I $D(IOST),$D(IOF) W:IOST["C-"&('$D(GMTSNOI)) @IOF
 | 
|---|
| 133 |  D @ZTRTN,^%ZISC K ^TMP("GMTSOBJ",$J,DFN) Q
 | 
|---|
| 134 | QUE ; Queued Print
 | 
|---|
| 135 |  N %,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK,ZTRTN S ZTRTN="DSP^GMTSOBS" K IO("Q"),ZTSAVE
 | 
|---|
| 136 |  S ZTSAVE("^TMP(""GMTSOBJ"","_$J_","_DFN_",")="" S ZTSAVE("DFN")=""
 | 
|---|
| 137 |  S:$D(GMTSHDR) ZTSAVE("GMTSHDR")=""
 | 
|---|
| 138 |  S ZTDESC="Display Health Summary Object" S ZTIO=ION,ZTDTH=$H
 | 
|---|
| 139 |  D ^%ZTLOAD I '$D(ZTSK) W !!,"Request Cancelled",! H 3 W:$D(IOF) @IOF
 | 
|---|
| 140 |  I $D(ZTSK) W !!,"Request Queued",! H 3 W:$D(IOF) @IOF
 | 
|---|
| 141 |  K ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE D ^%ZISC Q
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 | NODEV ; Print without Device Selection
 | 
|---|
| 144 |  W !! N ZTRTN,POP,IOP,%ZIS,IOSL S IOSL=99999999999
 | 
|---|
| 145 |  S ZTRTN="DSP^GMTSOBS" D @ZTRTN,^%ZISC K ^TMP("GMTSOBJ",$J,DFN)
 | 
|---|
| 146 |  Q
 | 
|---|
| 147 | DSP ; Print Health Summary Type
 | 
|---|
| 148 |  Q:+($G(DFN))=0  N GMTST,GMTSI,GMTSC,GMTSP,GMTSL,GMTSEXIT,GMTSCR,GMTSPL D HOME^%ZIS
 | 
|---|
| 149 |  S GMTSPL=3,GMTSEXIT=0,GMTSP=$G(IOST),GMTSL=+($G(IOSL)) S:+GMTSL=0 GMTSL=24
 | 
|---|
| 150 |  D ATTR W !!,$G(BOLD),"<----------------------------- Break in Document ---------------------------->",$G(NORM) S GMTSPL=GMTSPL+1
 | 
|---|
| 151 |  W !,$G(BOLD),"<---------------------------- Beginning of Object --------------------------->",$G(NORM) S GMTSPL=GMTSPL+1 D KATTR
 | 
|---|
| 152 |  S GMTSI=0 F  S GMTSI=$O(^TMP("GMTSOBJ",$J,DFN,GMTSI)) Q:+GMTSI=0  D
 | 
|---|
| 153 |  . W !,$G(^TMP("GMTSOBJ",$J,DFN,GMTSI,0)) S GMTSPL=+GMTSPL+1 D CONT
 | 
|---|
| 154 |  K ^TMP("GMTSOBJ",$J,DFN)
 | 
|---|
| 155 |  D ATTR W !,$G(BOLD),"<------------------------------ End of Object ------------------------------->",$G(NORM) S GMTSPL=+GMTSPL+1
 | 
|---|
| 156 |  W !,$G(BOLD),"<----------------------------- Document Resumes ----------------------------->",$G(NORM) D KATTR S GMTSPL=+GMTSPL+1 S:+GMTSL>0 IOSL=GMTSL
 | 
|---|
| 157 |  S GMTSPL=GMTSL D CONT W:GMTSP["P-"&($D(IOF)) @IOF
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 | D(X) ; Display
 | 
|---|
| 160 |  I '$D(GMTSEXT) W !,$G(X) Q
 | 
|---|
| 161 |  N GMTSC S GMTSC=$G(GMTSARY("D",0))+1,GMTSARY("D",+GMTSC)=$G(X),GMTSARY("D",0)=GMTSC
 | 
|---|
| 162 |  Q
 | 
|---|
| 163 | E(X) ; Example
 | 
|---|
| 164 |  I '$D(GMTSEXT) W !,$G(X) Q
 | 
|---|
| 165 |  N GMTSC S GMTSC=$G(GMTSARY("E",0))+1,GMTSARY("E",+GMTSC)=$G(X),GMTSARY("E",0)=GMTSC
 | 
|---|
| 166 |  Q
 | 
|---|
| 167 | CONT ; Press <Return> to Continue
 | 
|---|
| 168 |  I GMTSP["P-" W:$L($G(IOF))&($D(IOF)) @IOF Q
 | 
|---|
| 169 |  Q:(GMTSP["C-"!(GMTSP=""))&(GMTSPL'>(GMTSL-4))  S GMTSPL=0 Q:GMTSEXIT
 | 
|---|
| 170 |  N GMTSCR S GMTSPL=0 W !!,"  Press <Return> to Continue  "
 | 
|---|
| 171 |  R GMTSCR:660 I '$T!(GMTSCR["^") S GMTSCR="^",GMTSEXIT=1
 | 
|---|
| 172 |  W:GMTSP'["P-"&($D(IOF)) @IOF Q
 | 
|---|
| 173 |  Q
 | 
|---|
| 174 | ATTR ; Set Screen Attributes
 | 
|---|
| 175 |  N X,IOINHI,IOINORM S X="IOINHI;IOINORM" D ENDR^%ZISS S BOLD=$G(IOINHI),NORM=$G(IOINORM)
 | 
|---|
| 176 |  Q
 | 
|---|
| 177 | KATTR ; Kill Screen Attributes
 | 
|---|
| 178 |  K NORM,BOLD Q
 | 
|---|