| 1 | GMTSUP ; SLC/KER - Utilities for Paging HS           ; 01/06/2003
 | 
|---|
| 2 |  ;;2.7;Health Summary;**2,7,21,27,28,30,35,47,56,58,85**;Oct 20, 1995;Build 24
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA 10026  ^DIR
 | 
|---|
| 6 |  ;   DBIA    82  EN^XQORM
 | 
|---|
| 7 |  ;                       
 | 
|---|
| 8 | CKP ; Check page position, pause and prompt
 | 
|---|
| 9 |  Q:$D(GMTSQIT)  S GMTSNPG=0
 | 
|---|
| 10 |  K:$L($G(GMTSOBJ("LABEL"))) GMTSOBJ("REPORT HEADER")
 | 
|---|
| 11 |  I $G(GMTSWRIT)=1 D BREAK S GMTSWRIT=0
 | 
|---|
| 12 |  I +($$HF^GMTSU) D BREAK:(GMTSEGN'=$G(GMTSLCMP)) Q
 | 
|---|
| 13 |  Q:+$G(GMTSLPG)'>0&($Y'>(IOSL-GMTSLO))
 | 
|---|
| 14 |  I $E(IOST,1)="C" S:'$D(GMTSTOF) GMTSTOF=1 D CKP1
 | 
|---|
| 15 |  I '$D(GMTSQIT) W @IOF D HEADER,BREAK S GMTSNPG=1,GMTSTOF=GMTSEGN
 | 
|---|
| 16 |  I $D(GMTSQIT),(GMTSQIT]""),($D(GMTSTYP)) W @IOF D HEADER S GMTSTOF=GMTSEGN
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | CKP1 ; Help Display of Optional Components for Navigation
 | 
|---|
| 19 |  N DA,I,J,K,L,X,XQORM,Y,GMTSY,TYP,DIC
 | 
|---|
| 20 |  I $S('$D(GMTSTYP):1,$D(GMTOPT):1,1:0) N DIR S DIR(0)="E" D ^DIR K DIR S:$D(DUOUT)!(GMTSLPG) GMTSQIT="" Q
 | 
|---|
| 21 |  S TYP=GMTSTYP
 | 
|---|
| 22 |  S DIC=142,DIC(0)="MZF",X="GMTS HS ADHOC OPTION" S Y=$$TYPE^GMTSULT
 | 
|---|
| 23 |  S GMTSTYP=+Y K DIC,X,Y
 | 
|---|
| 24 |  S XQORM=GMTSTYP_";GMT(142,",XQORM(0)="1AF\+",XQORM("A")="Press <RET> to continue, ^ to exit, or select component: "
 | 
|---|
| 25 |  S XQORM("??")="D HELP^GMTSUP1" I GMTSLPG,'$D(GMTSOBJ) W:'$D(GMTSOBJE) "* END * "
 | 
|---|
| 26 |  S XQORM("S")="I $D(^GMT(142,DA(1),1,DA,0)),($P(^GMT(142.1,$P(^GMT(142,DA(1),1,DA,0),U,2),0),U,6)'=""T"")"
 | 
|---|
| 27 |  D EN^XQORM W ! D @$S(Y=1:"BRNCH",1:"EVAL")
 | 
|---|
| 28 |  I $D(GMTSY),(GMTSY=0) K GMTSY G CKP1
 | 
|---|
| 29 |  S GMTSTYP=TYP
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 | BREAK ; Writes the Component Header
 | 
|---|
| 32 |  ;           
 | 
|---|
| 33 |  ;   If the variable GMTSOBJ exist, then the 
 | 
|---|
| 34 |  ;   Component Headers are suppressed with the
 | 
|---|
| 35 |  ;   following exceptions:
 | 
|---|
| 36 |  ;           
 | 
|---|
| 37 |  ;       If GMTSOBJ("COMPONENT HEADER") exist,
 | 
|---|
| 38 |  ;       then the Component Header will NOT be
 | 
|---|
| 39 |  ;       suppressed
 | 
|---|
| 40 |  ;           
 | 
|---|
| 41 |  ;       If GMTSOBJ("BLANK LINE") exist, a blank
 | 
|---|
| 42 |  ;       line will be written after the Component
 | 
|---|
| 43 |  ;       Header
 | 
|---|
| 44 |  ;              
 | 
|---|
| 45 |  N GMTSM,GMTSF S GMTSM=$$MUL,GMTSF=$$FST
 | 
|---|
| 46 |  I +GMTSM=0,$D(GMTSOBJ),'$D(GMTSOBJ("COMPONENT HEADER")),'$D(GMTSOBJ("BLANK LINE")) Q
 | 
|---|
| 47 |  N GMTS,GMTSUL,GMTSL S:'$D(GMTSLCMP) GMTSLCMP=0
 | 
|---|
| 48 |  S GMTSUL="",GMTSNPG=1,GMTS=$$CHDR,GMTSL=+($L($G(GMTS))),$P(GMTSUL,"-",+GMTSL)="-"
 | 
|---|
| 49 |  I $Y'>(IOSL-GMTSLO)!(+($$HF^GMTSU)) D
 | 
|---|
| 50 |  . I $D(GMTSOBJ) D  Q
 | 
|---|
| 51 |  . . S GMTSLCMP=GMTSEGN
 | 
|---|
| 52 |  . . I +($G(GMTSM))>0!($D(GMTSOBJ("COMPONENT HEADER"))) D
 | 
|---|
| 53 |  . . . W:+GMTSF=0 ! W !,GMTS W:$D(GMTSOBJ("UNDERLINE")) !,GMTSUL
 | 
|---|
| 54 |  . . . W ! W:$D(GMTSOBJ("BLANK LINE")) !
 | 
|---|
| 55 |  . W !,GMTS,!
 | 
|---|
| 56 |  . W:$Y'>(IOSL-GMTSLO) ?34,$S(GMTSEGN=GMTSLCMP:"(continued)",1:""),!
 | 
|---|
| 57 |  . S GMTSLCMP=GMTSEGN
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | OLDB ;
 | 
|---|
| 60 |  S:'$D(GMTSLCMP) GMTSLCMP=0
 | 
|---|
| 61 |  S GMTS="",GMTSNPG=1
 | 
|---|
| 62 |  S $P(GMTS,"-",79-$L(GMTSEGH_GMTSEGL)/2)=""
 | 
|---|
| 63 |  S GMTS=GMTS_" "_GMTSEGH_GMTSEGL_" "_GMTS
 | 
|---|
| 64 |  I $Y'>(IOSL-GMTSLO)!(+($$HF^GMTSU)) D
 | 
|---|
| 65 |  . W !,GMTS,!
 | 
|---|
| 66 |  . W:$Y'>(IOSL-GMTSLO) ?34,$S(GMTSEGN=GMTSLCMP:"(continued)",1:""),!
 | 
|---|
| 67 |  . S GMTSLCMP=GMTSEGN
 | 
|---|
| 68 |         Q
 | 
|---|
| 69 | HEADER ; Print Running Header
 | 
|---|
| 70 |  ;           
 | 
|---|
| 71 |  ;   If the variable GMTSOBJ exist, then the 
 | 
|---|
| 72 |  ;   Report Headers are suppressed with the 
 | 
|---|
| 73 |  ;   following exceptions:
 | 
|---|
| 74 |  ;           
 | 
|---|
| 75 |  ;       If GMTSOBJ("DATE LINE") exist, then the
 | 
|---|
| 76 |  ;       Location/Report Date line will NOT be
 | 
|---|
| 77 |  ;       suppressed.
 | 
|---|
| 78 |  ;           
 | 
|---|
| 79 |  ;       If GMTSOBJ("CONFIDENTIAL") exist, then
 | 
|---|
| 80 |  ;       the Confidential Header Name line will
 | 
|---|
| 81 |  ;       NOT be suppressed.
 | 
|---|
| 82 |  ;           
 | 
|---|
| 83 |  ;       If GMTSOBJ("REPORT HEADER") exist, then
 | 
|---|
| 84 |  ;       the Report Header containing the patient's
 | 
|---|
| 85 |  ;       name, SSAN, ward and DOB will NOT be
 | 
|---|
| 86 |  ;       suppressed.
 | 
|---|
| 87 |  ;              
 | 
|---|
| 88 |  ;       If the variable GMTSOBJ("LABEL") contains
 | 
|---|
| 89 |  ;       text, and the variable GMTSOBJ("USE LABEL")
 | 
|---|
| 90 |  ;       exist, then this text will be printed before
 | 
|---|
| 91 |  ;       the object text.
 | 
|---|
| 92 |  ;                 
 | 
|---|
| 93 |  ;       If GMTSOBJ("REPORT DECEASED") exist, then
 | 
|---|
| 94 |  ;       the optional line that displays for Deceased
 | 
|---|
| 95 |  ;       patients will NOT be suppressed.
 | 
|---|
| 96 |  ;                 
 | 
|---|
| 97 |  ;   Header Lines:
 | 
|---|
| 98 |  N GMTSVDT,DATA S DATA="" I +$G(GMTSPXD1)&+$G(GMTSPXD2) D
 | 
|---|
| 99 |  . Q:$G(GMTSOBJ)  S:'$D(GMTSOBJE) DATA="Printed for data "  S:$D(GMTSOBJE) DATA="Include data "
 | 
|---|
| 100 |  . I GMTSPXD1=GMTSPXD2 S DATA=DATA_"on "_GMTSPXD1 Q
 | 
|---|
| 101 |  . S DATA=DATA_"from "_GMTSPXD2_" to "_GMTSPXD1
 | 
|---|
| 102 |  I $D(GMTSCDT(0)),'$D(GMTSOBJ) S GMTSVDT=GMTSCDT(0) S:GMTSDTM'["Printed:" GMTSDTM="Printed: "_GMTSDTM
 | 
|---|
| 103 |  ;     Location and Date of Report
 | 
|---|
| 104 |  I '$D(GMTSOBJ)!($D(GMTSOBJ("DATE LINE"))) D
 | 
|---|
| 105 |  . N GMTSLOC S GMTSLOC=$S('$D(GMTSOBJ("DATE LINE")):$P($G(GMTSSC),U,2),1:"")
 | 
|---|
| 106 |  . W !,$S($L(GMTSLOC):"Location: "_GMTSLOC_" ",1:"")
 | 
|---|
| 107 |  . W $S($D(GMTSVDT):GMTSVDT,1:"")
 | 
|---|
| 108 |  . W:'$D(GMTSOBJ("DATE LINE")) DATA,?(79-$L(GMTSDTM)),GMTSDTM
 | 
|---|
| 109 |  . W:$D(GMTSOBJ("DATE LINE")) DATA,?(74-$L(GMTSDTM)),GMTSDTM
 | 
|---|
| 110 |  ;     Confidential Header Name
 | 
|---|
| 111 |  S:'$D(GMTSPG) GMTSPG=0
 | 
|---|
| 112 |  S GMTSPG=GMTSPG+1,GMTSHDR=" CONFIDENTIAL "_GMTSTITL_" SUMMARY "
 | 
|---|
| 113 |  S GMTSHDR=GMTSHDR_$S($E(IOST,1)="C":"",1:"  pg. "_GMTSPG)
 | 
|---|
| 114 |  S GMTS="" S:'$D(GMTSOBJ) $P(GMTS,"*",(77-$L(GMTSHDR))\2)="*"
 | 
|---|
| 115 |  S:$D(GMTSOBJ) $P(GMTS,"*",(72-$L(GMTSHDR))\2)="*"
 | 
|---|
| 116 |  S GMTSHDR=GMTS_" "_GMTSHDR_" "_GMTS
 | 
|---|
| 117 |  I '$D(GMTSOBJ)!($D(GMTSOBJ("CONFIDENTIAL"))) W !,GMTSHDR,"*"
 | 
|---|
| 118 |  ;     Name, SSAN, Ward, DOB
 | 
|---|
| 119 |  I '$D(GMTSLFG) D
 | 
|---|
| 120 |  .I $G(GMTSTITL)'["AD HOC",($G(GMTSTITL)'["PDX"),($G(HSTAG)="") D EN^GMTSHCPR  ;GMTS,85 restrict ssn/dob on HS Type hard copies 
 | 
|---|
| 121 |  . I $G(GMTSPHDR("TWO")) D
 | 
|---|
| 122 |  . . I $D(GMTSOBJ),'$D(GMTSOBJ("REPORT HEADER")),$L($G(GMTSOBJ("LABEL"))) D LABEL
 | 
|---|
| 123 |  . . I $D(GMTSOBJ),'$D(GMTSOBJ("REPORT HEADER")) Q
 | 
|---|
| 124 |  . . W !,GMTSPHDR("NMSSN"),?GMTSPHDR("DOBS"),GMTSPHDR("DOB")
 | 
|---|
| 125 |  . . W !,?GMTSPHDR("WARDRBS"),GMTSPHDR("WARDRB")
 | 
|---|
| 126 |  . E  D
 | 
|---|
| 127 |  . . I $D(GMTSOBJ),'$D(GMTSOBJ("REPORT HEADER")),$L($G(GMTSOBJ("LABEL"))) D LABEL
 | 
|---|
| 128 |  . . I $D(GMTSOBJ),'$D(GMTSOBJ("REPORT HEADER")) Q
 | 
|---|
| 129 |  . . W !,GMTSPHDR("NMSSN"),?GMTSPHDR("WARDRBS")
 | 
|---|
| 130 |  . . W GMTSPHDR("WARDRB"),?GMTSPHDR("DOBS"),GMTSPHDR("DOB")
 | 
|---|
| 131 |  ;     Deceased
 | 
|---|
| 132 |  ;                    
 | 
|---|
| 133 |  I '$D(GMTSOBJ)!($D(GMTSOBJ("DECEASED"))) D
 | 
|---|
| 134 |  . W:+$G(VADM(6)) !,?26,"** DECEASED   "_$P(VADM(6),U,2)_" **"
 | 
|---|
| 135 |  W:'$D(GMTSOBJ) !
 | 
|---|
| 136 |  Q
 | 
|---|
| 137 | BRNCH ; Checks abbreviation to branch to a different component
 | 
|---|
| 138 |  N GMTINX,LIM,CREC,SBS
 | 
|---|
| 139 |  I Y,("+-"[X) S:X="-" GMTSEGN=GMTSTOF-1 S (GMTSY,GMTSQIT)=1,GMTSLPG=0 Q
 | 
|---|
| 140 |  I X="^^" S DIROUT=1,GMTSQIT="" Q
 | 
|---|
| 141 |  I Y,(X?1"^^".E) Q
 | 
|---|
| 142 |  S GMTINX=$S($D(^GMT(142,GMTSTYP,1,+Y(1),0)):$P(^(0),U,2),1:"")
 | 
|---|
| 143 |  I 'GMTINX S GMTSY=0 Q
 | 
|---|
| 144 |  I '$D(GMTSEGI(GMTINX)) N GMI,GMJ,GMTSDFLT S GMI=1,GMJ=GMTSEGC,GMTSDFLT=1 D LOAD^GMTSADH S GMTSEGC=GMTSEGC+1
 | 
|---|
| 145 |  I '$D(GMTSEGI(GMTINX)) S GMTINX="",GMTSY=0 Q
 | 
|---|
| 146 |  S LIM=$P(Y(1),U,4) I LIM'["=" G NOLIM
 | 
|---|
| 147 |  S CREC=^GMT(142.1,GMTINX,0),SBS=GMTSEGI(GMTINX) D CMPLIM^GMTSADH2
 | 
|---|
| 148 |  I $D(DIROUT) S GMTSQIT="" Q
 | 
|---|
| 149 | NOLIM ; No limits
 | 
|---|
| 150 |  S GMTSEGN=GMTSEGI(GMTINX)-1,(GMTSY,GMTSQIT)=1,GMTSLPG=0
 | 
|---|
| 151 |  Q
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 | EVAL ; Evaluate input to determine quit or continue
 | 
|---|
| 154 |  Q:'$D(X)
 | 
|---|
| 155 |  S:$D(GMTSEXIT) GMTSEXIT=$G(X)
 | 
|---|
| 156 |  S:$D(DTOUT) DIROUT=1 I $S(X="^^":1,GMTSLPG:1,$D(DIROUT):1,X="^":1,1:0) S GMTSQIT=""
 | 
|---|
| 157 |  I +$G(GMPSAP),(X="^") S GMDUOUT=1
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 | MUL(X) ; Multiple Components in Type
 | 
|---|
| 160 |  N GMTSF,GMTSL S GMTSF=$O(GMTSEG(0)),GMTSL=$O(GMTSEG(" "),-1)
 | 
|---|
| 161 |  Q:+GMTSF=+GMTSL 0  Q 1
 | 
|---|
| 162 | FST(X) ; First Component in Type
 | 
|---|
| 163 |  N GMTSF,GMTSL S GMTSF=$O(GMTSEG(0)),GMTSL=+($G(GMTSEGN))
 | 
|---|
| 164 |  Q:+GMTSF=+GMTSL 1  Q 0
 | 
|---|
| 165 | CHDR(X) ; Component Header
 | 
|---|
| 166 |  N GMTSN,GMTSH,GMTSL,GMTS S GMTSN=$$CNAM,GMTSH=$G(GMTSEGH)
 | 
|---|
| 167 |  S GMTSL=$G(GMTSEGL),GMTS="",$P(GMTS,"-",79-$L(GMTSH_GMTSL)/2)=""
 | 
|---|
| 168 |  S X=GMTS_" "_GMTSH_GMTSL_" "_GMTS Q:'$D(GMTSOBJ) X
 | 
|---|
| 169 |  S:$L(GMTSH)&($D(GMTSOBJ("COMPONENT HEADER"))) GMTSN=GMTSH
 | 
|---|
| 170 |  S:$L(GMTSL)&($L(GMTSN))&($D(GMTSOBJ("LIMITS"))) GMTSN=GMTSN_" "_GMTSL
 | 
|---|
| 171 |  S X=GMTSN Q X
 | 
|---|
| 172 | CNAM(X) ; Component Name
 | 
|---|
| 173 |  N GMTSH S GMTSH=+($P($G(GMTSEG(+($G(GMTSEGN)))),"^",2))
 | 
|---|
| 174 |  S X=$P($G(^GMT(142.1,+GMTSH,0)),"^",1) Q X
 | 
|---|
| 175 | LABEL ; Label
 | 
|---|
| 176 |  Q:'$D(GMTSOBJ("USE LABEL"))  N LABEL S LABEL=$G(GMTSOBJ("LABEL"))
 | 
|---|
| 177 |  W !,LABEL W:$L(LABEL) ! W:$D(GMTSOBJ("LABEL BLANK LINE")) !
 | 
|---|
| 178 |  Q
 | 
|---|
| 179 | LABDAT ; Label/Date
 | 
|---|
| 180 |  Q:'$D(GMTSOBJ("USE LABEL"))  N LABEL S LABEL=$G(GMTSOBJ("LABEL"))
 | 
|---|
| 181 |  I '$D(GMTSOBJ("DATE LINE")),$D(GMTSOBJ("LABEL")),$L(LABEL),$L($G(GMTSDTM)) S LABEL=LABEL_$J("",((79-$L(GMTSDTM))-$L(LABEL)))_GMTSDTM
 | 
|---|
| 182 |  I '$D(GMTSOBJ("DATE LINE")),$D(GMTSOBJ("LABEL")),'$L(LABEL),$L($G(GMTSDTM)) S LABEL="Information as of "_$G(GMTSDTM)
 | 
|---|
| 183 |  W !,LABEL W:$L(LABEL) ! W:$D(GMTSOBJ("LABEL BLANK LINE")) !
 | 
|---|
| 184 |  Q
 | 
|---|