[613] | 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")
|
---|