| 1 | GMTSXPD4 ; SLC/KER - Health Summary Dist (Re-Build)      ; 08/27/2002
 | 
|---|
| 2 |  ;;2.7;Health Summary;**35,56**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA 10013  ^DIK  (file #142)
 | 
|---|
| 6 |  ;   DBIA  2052  $$GET1^DID
 | 
|---|
| 7 |  ;   DBIA 10018  ^DIE  (file #142)
 | 
|---|
| 8 |  ;   DBIA 10086  HOME^%ZIS
 | 
|---|
| 9 |  ;   DBIA 10060  ^VA(200,
 | 
|---|
| 10 |  ;   DBIA  2056  $$GET1^DIQ (file 200)
 | 
|---|
| 11 |  ;   DBIA 10141  BMES^XPDUTL
 | 
|---|
| 12 |  ;   DBIA 10141  MES^XPDUTL
 | 
|---|
| 13 |  ;                    
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ; Re-Build Ad Hoc Health Summary Type
 | 
|---|
| 16 |  ;                      
 | 
|---|
| 17 |  ;   Input Variables   INCLUDE
 | 
|---|
| 18 |  ;                        0    exclude DISABLED components
 | 
|---|
| 19 |  ;                        1    include DISABLED components
 | 
|---|
| 20 |  ;                      
 | 
|---|
| 21 | IN ;   Re-Build w/INCLUDE
 | 
|---|
| 22 |  N INCLUDE S INCLUDE=1 D RB Q
 | 
|---|
| 23 | EX ;   Re-Build w/EXCLUDE
 | 
|---|
| 24 |  N INCLUDE S INCLUDE=0 D RB Q
 | 
|---|
| 25 | RB ;   Re-Build (main)
 | 
|---|
| 26 |  N GMTSENV S GMTSENV=$$ENV Q:'GMTSENV
 | 
|---|
| 27 |  N DA,DIC,DIE,DIK,DLAYGO,DR,GMTSC,GMTSDA,GMTSDIAB,GMTSE,GMTSEG,GMTSEL
 | 
|---|
| 28 |  N GMTSELC,GMTSELT,GMTSEQ,GMTSI,GMTSICD,GMTSIFN,GMTSISEQ,GMTSITEM
 | 
|---|
| 29 |  N GMTSJ,GMTSL,GMTSLOC,GMTSNAR,GMTSCPT,GMTSNEW,GMTSNM,GMTSOCC,GMTSOK
 | 
|---|
| 30 |  N GMTSORD,GMTSQ,GMTST1,GMTST2,GMTST3,GMTSTIM,GMTSTYP,X,Y
 | 
|---|
| 31 |  S GMTSOK=0,GMTSE=59,GMTSC=0 D BM(" Ad Hoc Summary") S GMTST1="   Gathering Ad Hoc Summary information",GMTST2="   Purging old Ad Hoc Summary",GMTST3="   Rebuilding Ad Hoc Summary"
 | 
|---|
| 32 |  D M($G(GMTST1)) N GMTSNEW,GMTSTYP,DLAYGO S DLAYGO=142
 | 
|---|
| 33 |  S DIC=142,DIC(0)="LXF",X="GMTS HS ADHOC OPTION" S Y=$$TYPE^GMTSULT K DIC
 | 
|---|
| 34 |  I +Y'>0 D BM("** GMTS AD HOC OPTION Summary Type is missing **") Q
 | 
|---|
| 35 |  D GA,RN D:+($G(GMTSOK))>0 BM(" Ad Hoc Health Summary successfully rebuilt")
 | 
|---|
| 36 |  D:+($G(GMTSOK))'>0 BM(" Failed to successfully rebuild the Ad Hoc Health Summary")
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | GA ;     Gather Information
 | 
|---|
| 39 |  N GMTSL,GMTSQ,GMTSC,GMTSE
 | 
|---|
| 40 |  S GMTSE=59,GMTSC=0,GMTSL=$L($G(GMTST1))
 | 
|---|
| 41 |  S (GMTSIFN,GMTSTYP)=+Y,GMTSNEW=+$P(Y,"^",3)
 | 
|---|
| 42 |  S:'$D(^GMT(142,GMTSIFN,1,0)) ^(0)="^142.01IA^0^0"
 | 
|---|
| 43 |  S GMTSC=0,GMTSNM="" F GMTSC=1:1 S GMTSNM=$O(^GMT(142.1,"B",GMTSNM)) Q:GMTSNM']""  S GMTSC=+($G(GMTSC))+1
 | 
|---|
| 44 |  S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST1))
 | 
|---|
| 45 |  S GMTSC=0,GMTSNM="" F GMTSC=1:1 S GMTSNM=$O(^GMT(142.1,"B",GMTSNM)) Q:GMTSNM']""  D
 | 
|---|
| 46 |  . S GMTSJ=$O(^(GMTSNM,0)) Q:GMTSJ'>0  D LA
 | 
|---|
| 47 |  . Q:$D(GMTSQT)  Q:+GMTSQ'>0
 | 
|---|
| 48 |  . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
 | 
|---|
| 49 |  . W:GMTSC#GMTSQ=0 "."
 | 
|---|
| 50 |  I '$D(GMTSQT),GMTSL'>GMTSE F  S GMTSL=GMTSL+1 Q:GMTSL>GMTSE  W "."
 | 
|---|
| 51 |  W:'$D(GMTSQT) ?GMTSE," < done >"
 | 
|---|
| 52 |  S GMTSI=0 I 'GMTSNEW D PA
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | PA ;     Purge Ad Hoc Health Summary
 | 
|---|
| 55 |  N GMTSI,GMTSL,GMTSQ,GMTSC,GMTSE S GMTSE=59,GMTSL=$L($G(GMTST2)) D M($G(GMTST2))
 | 
|---|
| 56 |  S (GMTSC,GMTSI)=0 F  S GMTSI=$O(^GMT(142,GMTSIFN,1,GMTSI)) Q:GMTSI'>0  S GMTSC=+($G(GMTSC))+1
 | 
|---|
| 57 |  S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST1))
 | 
|---|
| 58 |  S (GMTSC,GMTSI)=0 F  S GMTSI=$O(^GMT(142,GMTSIFN,1,GMTSI)) Q:GMTSI'>0  D
 | 
|---|
| 59 |  . N DA,DIK S U="^",DA(1)=GMTSIFN,DA=GMTSI,DIK="^GMT(142,"_GMTSIFN_",1," D ^DIK
 | 
|---|
| 60 |  . Q:$D(GMTSQT)  Q:+GMTSQ'>0
 | 
|---|
| 61 |  . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
 | 
|---|
| 62 |  . W:GMTSC#GMTSQ=0 "."
 | 
|---|
| 63 |  I '$D(GMTSQT),GMTSL'>GMTSE F  S GMTSL=GMTSL+1 Q:GMTSL>GMTSE  W "."
 | 
|---|
| 64 |  W:'$D(GMTSQT) ?GMTSE," < done >"
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 | RN ;     Renumber - Resets ^GMT(142,GMTSIFN,1,
 | 
|---|
| 67 |  N DA,DR,DIE,GMTSEQ,GMTSL
 | 
|---|
| 68 |  N GMTSL,GMTSQ,GMTSC,GMTSE S GMTSE=59,GMTSL=$L($G(GMTST3)) D M($G(GMTST3))
 | 
|---|
| 69 |  S (GMTSEQ,GMTSC)=0 F  S GMTSEQ=$O(GMTSEG(GMTSEQ)) Q:GMTSEQ'>0  S GMTSC=+($G(GMTSC))+1
 | 
|---|
| 70 |  S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST3))
 | 
|---|
| 71 |  S (GMTSEQ,GMTSC)=0 F  S GMTSEQ=$O(GMTSEG(GMTSEQ)) Q:GMTSEQ'>0  D
 | 
|---|
| 72 |  . K DA S DIE="^GMT(142,"_GMTSIFN_",1,",DA(1)=GMTSIFN D AC
 | 
|---|
| 73 |  . Q:$D(GMTSQT)  Q:+GMTSQ'>0
 | 
|---|
| 74 |  . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
 | 
|---|
| 75 |  . W:GMTSC#GMTSQ=0 "."
 | 
|---|
| 76 |  I '$D(GMTSQT),GMTSL'>GMTSE F  S GMTSL=GMTSL+1 Q:GMTSL>GMTSE  W "."
 | 
|---|
| 77 |  W:'$D(GMTSQT) ?GMTSE," < done >" S GMTSOK=1
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 | LA ;     Load Array GMTSEG(#)
 | 
|---|
| 80 |  N GMTSOCC,GMTSTIM,GMTSORD,GMTSLOC,GMTSICD,GMTSNAR,GMTSCPT
 | 
|---|
| 81 |  Q:'$D(^GMT(142.1,GMTSJ,0))
 | 
|---|
| 82 |  S GMTSORD=$O(^GMT(142,"AE",GMTSJ,GMTSTYP,0))
 | 
|---|
| 83 |  I GMTSORD>0 D
 | 
|---|
| 84 |  . S GMTSOCC=$S($P(^GMT(142.1,GMTSJ,0),"^",5)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",3),1:"")
 | 
|---|
| 85 |  . S GMTSTIM=$S($P(^GMT(142.1,GMTSJ,0),"^",3)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",4),1:"")
 | 
|---|
| 86 |  . S GMTSLOC=$S($P(^GMT(142.1,GMTSJ,0),"^",10)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",6),1:"")
 | 
|---|
| 87 |  . S GMTSICD=$S($P(^GMT(142.1,GMTSJ,0),"^",11)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",7),1:"")
 | 
|---|
| 88 |  . S GMTSNAR=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",8),1:"")
 | 
|---|
| 89 |  . S GMTSCPT=$S($P(^GMT(142.1,GMTSJ,0),"^",14)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",9),1:"")
 | 
|---|
| 90 |  E  D
 | 
|---|
| 91 |  . S GMTSOCC=$S($P(^GMT(142.1,GMTSJ,0),"^",5)="Y":10,1:"")
 | 
|---|
| 92 |  . S GMTSTIM=$S($P(^GMT(142.1,GMTSJ,0),"^",3)="Y":"1Y",1:"")
 | 
|---|
| 93 |  . S GMTSLOC=$S($P(^GMT(142.1,GMTSJ,0),"^",10)="Y":"Y",1:"")
 | 
|---|
| 94 |  . S GMTSICD=$S($P(^GMT(142.1,GMTSJ,0),"^",11)="Y":"L",1:"")
 | 
|---|
| 95 |  . S GMTSNAR=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
 | 
|---|
| 96 |  . S GMTSCPT=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
 | 
|---|
| 97 |  ; Defaults for CPT Modifiers
 | 
|---|
| 98 |  S:$P(^GMT(142.1,GMTSJ,0),"^",14)="Y"&(GMTSCPT="") GMTSCPT="Y"
 | 
|---|
| 99 |  S:$$GET1^DID(142.1,14,,"LABEL")="" GMTSCPT=""
 | 
|---|
| 100 |  D SG
 | 
|---|
| 101 |  Q
 | 
|---|
| 102 | SG ;       Set GMTSEG(#)        Component
 | 
|---|
| 103 |  ;         Disabled
 | 
|---|
| 104 |  N GMTSDIAB S GMTSDIAB=$S($P(^GMT(142.1,GMTSJ,0),"^",6)="P":1,$P(^(0),"^",6)="T":1,1:0) I (INCLUDE=0),(GMTSDIAB=1) Q
 | 
|---|
| 105 |  ;         Include
 | 
|---|
| 106 |  S GMTSEG(GMTSC)=(5*GMTSC)_"^"_GMTSJ_"^"_GMTSOCC_"^"_GMTSTIM_"^^"_GMTSLOC_"^"_GMTSICD_"^"_GMTSNAR_"^"_GMTSCPT I GMTSORD>0 D SL
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | SL ;       Set GMTSEG(#,#)      Selection item
 | 
|---|
| 109 |  N GMTSELT,GMTSITEM
 | 
|---|
| 110 |  S GMTSELT=0 F  S GMTSELT=$O(^GMT(142,GMTSTYP,1,+GMTSORD,1,GMTSELT)) Q:GMTSELT'>0  D
 | 
|---|
| 111 |  . S GMTSITEM=^(GMTSELT,0) S GMTSEG(GMTSC,GMTSELT)=GMTSITEM
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 | AC ;     Add Components to Ad Hoc Summary
 | 
|---|
| 114 |  N GMTSISEQ,DA,DIE,DR,GMTSELC,GMTSDA,GMTSEL
 | 
|---|
| 115 |  S (GMTSISEQ,DA)=GMTSEQ*5,DIE="^GMT(142,"_GMTSIFN_",1,",DA(1)=GMTSIFN
 | 
|---|
| 116 |  S DR=".01///"_DA
 | 
|---|
| 117 |  S:$L($P(GMTSEG(GMTSEQ),"^",2)) DR=DR_";1///"_$P(GMTSEG(GMTSEQ),"^",2)
 | 
|---|
| 118 |  S:$L($P(GMTSEG(GMTSEQ),"^",3)) DR=DR_";2///"_$P(GMTSEG(GMTSEQ),"^",3)
 | 
|---|
| 119 |  S:$L($P(GMTSEG(GMTSEQ),"^",4)) DR=DR_";3///"_$P(GMTSEG(GMTSEQ),"^",4)
 | 
|---|
| 120 |  S:$L($P(GMTSEG(GMTSEQ),"^",5)) DR=DR_";5///"_$P(GMTSEG(GMTSEQ),"^",5)
 | 
|---|
| 121 |  S:$L($P(GMTSEG(GMTSEQ),"^",6)) DR=DR_";6///"_$P(GMTSEG(GMTSEQ),"^",6)
 | 
|---|
| 122 |  S:$L($P(GMTSEG(GMTSEQ),"^",7)) DR=DR_";7///"_$P(GMTSEG(GMTSEQ),"^",7)
 | 
|---|
| 123 |  S:$L($P(GMTSEG(GMTSEQ),"^",8)) DR=DR_";8///"_$P(GMTSEG(GMTSEQ),"^",8)
 | 
|---|
| 124 |  S:$L($P($G(GMTSEG(GMTSEQ)),"^",9))>0&($L($$GET1^DID(142.1,14,,"LABEL"))>0) DR=DR_";9///"_$P(GMTSEG(GMTSEQ),"^",9)
 | 
|---|
| 125 |  D ^DIE S (GMTSELC,GMTSEL)=0 F  S GMTSEL=$O(GMTSEG(GMTSEQ,GMTSEL)) Q:'GMTSEL  D AS
 | 
|---|
| 126 |  I GMTSELC>0 S:'$D(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0)) ^(0)="^142.14V^"_GMTSDA_"^"_GMTSELC
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 | AS ;     Add Selection Items to Ad Hoc Summary
 | 
|---|
| 129 |  N DIE,DA,DR
 | 
|---|
| 130 |  S:'$D(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0)) ^(0)="^142.14V^^"
 | 
|---|
| 131 |  S DIE="^GMT(142,"_GMTSIFN_",1,"_GMTSISEQ_",1,"
 | 
|---|
| 132 |  S DA(2)=GMTSIFN,DA(1)=GMTSISEQ,DA=GMTSEL
 | 
|---|
| 133 |  S DR=".01////"_"^S X=GMTSEG(GMTSEQ,GMTSEL)" D ^DIE
 | 
|---|
| 134 |  S GMTSDA=DA,GMTSELC=GMTSELC+1
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 |  ;                      
 | 
|---|
| 137 |  ; Misc
 | 
|---|
| 138 | ENV(X) ;   Environment check
 | 
|---|
| 139 |  D HOME^%ZIS I +($G(DUZ))=0 D BM("    User (DUZ) not defined"),M(" ") Q 0
 | 
|---|
| 140 |  I '$L($$GET1^DIQ(200,(+($G(DUZ))_","),.01)) D BM("    Invalid User defined (DUZ)"),M(" ") Q 0
 | 
|---|
| 141 |  Q 1
 | 
|---|
| 142 | BM(X) ;   Blank Line with Message
 | 
|---|
| 143 |  Q:$D(GMTSQT)  D:$D(XPDNM) BMES^XPDUTL($G(X)) W:'$D(XPDNM) !!,$G(X) Q
 | 
|---|
| 144 | M(X) ;   Message
 | 
|---|
| 145 |  Q:$D(GMTSQT)  D:$D(XPDNM) MES^XPDUTL($G(X)) W:'$D(XPDNM) !,$G(X) Q
 | 
|---|
| 146 | UP(X) ;   Uppercase
 | 
|---|
| 147 |  Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 | 
|---|