- GMTSXPD4 ; SLC/KER - Health Summary Dist (Re-Build) ; 08/27/2002
- ;;2.7;Health Summary;**35,56**;Oct 20, 1995
- ;
- ; External References
- ; DBIA 10013 ^DIK (file #142)
- ; DBIA 2052 $$GET1^DID
- ; DBIA 10018 ^DIE (file #142)
- ; DBIA 10086 HOME^%ZIS
- ; DBIA 10060 ^VA(200,
- ; DBIA 2056 $$GET1^DIQ (file 200)
- ; DBIA 10141 BMES^XPDUTL
- ; DBIA 10141 MES^XPDUTL
- ;
- Q
- ; Re-Build Ad Hoc Health Summary Type
- ;
- ; Input Variables INCLUDE
- ; 0 exclude DISABLED components
- ; 1 include DISABLED components
- ;
- IN ; Re-Build w/INCLUDE
- N INCLUDE S INCLUDE=1 D RB Q
- EX ; Re-Build w/EXCLUDE
- N INCLUDE S INCLUDE=0 D RB Q
- RB ; Re-Build (main)
- N GMTSENV S GMTSENV=$$ENV Q:'GMTSENV
- N DA,DIC,DIE,DIK,DLAYGO,DR,GMTSC,GMTSDA,GMTSDIAB,GMTSE,GMTSEG,GMTSEL
- N GMTSELC,GMTSELT,GMTSEQ,GMTSI,GMTSICD,GMTSIFN,GMTSISEQ,GMTSITEM
- N GMTSJ,GMTSL,GMTSLOC,GMTSNAR,GMTSCPT,GMTSNEW,GMTSNM,GMTSOCC,GMTSOK
- N GMTSORD,GMTSQ,GMTST1,GMTST2,GMTST3,GMTSTIM,GMTSTYP,X,Y
- 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"
- D M($G(GMTST1)) N GMTSNEW,GMTSTYP,DLAYGO S DLAYGO=142
- S DIC=142,DIC(0)="LXF",X="GMTS HS ADHOC OPTION" S Y=$$TYPE^GMTSULT K DIC
- I +Y'>0 D BM("** GMTS AD HOC OPTION Summary Type is missing **") Q
- D GA,RN D:+($G(GMTSOK))>0 BM(" Ad Hoc Health Summary successfully rebuilt")
- D:+($G(GMTSOK))'>0 BM(" Failed to successfully rebuild the Ad Hoc Health Summary")
- Q
- GA ; Gather Information
- N GMTSL,GMTSQ,GMTSC,GMTSE
- S GMTSE=59,GMTSC=0,GMTSL=$L($G(GMTST1))
- S (GMTSIFN,GMTSTYP)=+Y,GMTSNEW=+$P(Y,"^",3)
- S:'$D(^GMT(142,GMTSIFN,1,0)) ^(0)="^142.01IA^0^0"
- S GMTSC=0,GMTSNM="" F GMTSC=1:1 S GMTSNM=$O(^GMT(142.1,"B",GMTSNM)) Q:GMTSNM']"" S GMTSC=+($G(GMTSC))+1
- S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST1))
- S GMTSC=0,GMTSNM="" F GMTSC=1:1 S GMTSNM=$O(^GMT(142.1,"B",GMTSNM)) Q:GMTSNM']"" D
- . S GMTSJ=$O(^(GMTSNM,0)) Q:GMTSJ'>0 D LA
- . Q:$D(GMTSQT) Q:+GMTSQ'>0
- . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
- . W:GMTSC#GMTSQ=0 "."
- I '$D(GMTSQT),GMTSL'>GMTSE F S GMTSL=GMTSL+1 Q:GMTSL>GMTSE W "."
- W:'$D(GMTSQT) ?GMTSE," < done >"
- S GMTSI=0 I 'GMTSNEW D PA
- Q
- PA ; Purge Ad Hoc Health Summary
- N GMTSI,GMTSL,GMTSQ,GMTSC,GMTSE S GMTSE=59,GMTSL=$L($G(GMTST2)) D M($G(GMTST2))
- S (GMTSC,GMTSI)=0 F S GMTSI=$O(^GMT(142,GMTSIFN,1,GMTSI)) Q:GMTSI'>0 S GMTSC=+($G(GMTSC))+1
- S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST1))
- S (GMTSC,GMTSI)=0 F S GMTSI=$O(^GMT(142,GMTSIFN,1,GMTSI)) Q:GMTSI'>0 D
- . N DA,DIK S U="^",DA(1)=GMTSIFN,DA=GMTSI,DIK="^GMT(142,"_GMTSIFN_",1," D ^DIK
- . Q:$D(GMTSQT) Q:+GMTSQ'>0
- . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
- . W:GMTSC#GMTSQ=0 "."
- I '$D(GMTSQT),GMTSL'>GMTSE F S GMTSL=GMTSL+1 Q:GMTSL>GMTSE W "."
- W:'$D(GMTSQT) ?GMTSE," < done >"
- Q
- RN ; Renumber - Resets ^GMT(142,GMTSIFN,1,
- N DA,DR,DIE,GMTSEQ,GMTSL
- N GMTSL,GMTSQ,GMTSC,GMTSE S GMTSE=59,GMTSL=$L($G(GMTST3)) D M($G(GMTST3))
- S (GMTSEQ,GMTSC)=0 F S GMTSEQ=$O(GMTSEG(GMTSEQ)) Q:GMTSEQ'>0 S GMTSC=+($G(GMTSC))+1
- S GMTSC=GMTSC-1,GMTSQ=GMTSC\(GMTSE-$L(GMTST3))
- S (GMTSEQ,GMTSC)=0 F S GMTSEQ=$O(GMTSEG(GMTSEQ)) Q:GMTSEQ'>0 D
- . K DA S DIE="^GMT(142,"_GMTSIFN_",1,",DA(1)=GMTSIFN D AC
- . Q:$D(GMTSQT) Q:+GMTSQ'>0
- . S GMTSC=GMTSC+1 S:GMTSC#GMTSQ=0 GMTSL=GMTSL+1 Q:GMTSL>GMTSE
- . W:GMTSC#GMTSQ=0 "."
- I '$D(GMTSQT),GMTSL'>GMTSE F S GMTSL=GMTSL+1 Q:GMTSL>GMTSE W "."
- W:'$D(GMTSQT) ?GMTSE," < done >" S GMTSOK=1
- Q
- LA ; Load Array GMTSEG(#)
- N GMTSOCC,GMTSTIM,GMTSORD,GMTSLOC,GMTSICD,GMTSNAR,GMTSCPT
- Q:'$D(^GMT(142.1,GMTSJ,0))
- S GMTSORD=$O(^GMT(142,"AE",GMTSJ,GMTSTYP,0))
- I GMTSORD>0 D
- . S GMTSOCC=$S($P(^GMT(142.1,GMTSJ,0),"^",5)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",3),1:"")
- . S GMTSTIM=$S($P(^GMT(142.1,GMTSJ,0),"^",3)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",4),1:"")
- . S GMTSLOC=$S($P(^GMT(142.1,GMTSJ,0),"^",10)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",6),1:"")
- . S GMTSICD=$S($P(^GMT(142.1,GMTSJ,0),"^",11)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",7),1:"")
- . S GMTSNAR=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",8),1:"")
- . S GMTSCPT=$S($P(^GMT(142.1,GMTSJ,0),"^",14)="Y":$P($G(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",9),1:"")
- E D
- . S GMTSOCC=$S($P(^GMT(142.1,GMTSJ,0),"^",5)="Y":10,1:"")
- . S GMTSTIM=$S($P(^GMT(142.1,GMTSJ,0),"^",3)="Y":"1Y",1:"")
- . S GMTSLOC=$S($P(^GMT(142.1,GMTSJ,0),"^",10)="Y":"Y",1:"")
- . S GMTSICD=$S($P(^GMT(142.1,GMTSJ,0),"^",11)="Y":"L",1:"")
- . S GMTSNAR=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
- . S GMTSCPT=$S($P(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
- ; Defaults for CPT Modifiers
- S:$P(^GMT(142.1,GMTSJ,0),"^",14)="Y"&(GMTSCPT="") GMTSCPT="Y"
- S:$$GET1^DID(142.1,14,,"LABEL")="" GMTSCPT=""
- D SG
- Q
- SG ; Set GMTSEG(#) Component
- ; Disabled
- 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
- ; Include
- S GMTSEG(GMTSC)=(5*GMTSC)_"^"_GMTSJ_"^"_GMTSOCC_"^"_GMTSTIM_"^^"_GMTSLOC_"^"_GMTSICD_"^"_GMTSNAR_"^"_GMTSCPT I GMTSORD>0 D SL
- Q
- SL ; Set GMTSEG(#,#) Selection item
- N GMTSELT,GMTSITEM
- S GMTSELT=0 F S GMTSELT=$O(^GMT(142,GMTSTYP,1,+GMTSORD,1,GMTSELT)) Q:GMTSELT'>0 D
- . S GMTSITEM=^(GMTSELT,0) S GMTSEG(GMTSC,GMTSELT)=GMTSITEM
- Q
- AC ; Add Components to Ad Hoc Summary
- N GMTSISEQ,DA,DIE,DR,GMTSELC,GMTSDA,GMTSEL
- S (GMTSISEQ,DA)=GMTSEQ*5,DIE="^GMT(142,"_GMTSIFN_",1,",DA(1)=GMTSIFN
- S DR=".01///"_DA
- S:$L($P(GMTSEG(GMTSEQ),"^",2)) DR=DR_";1///"_$P(GMTSEG(GMTSEQ),"^",2)
- S:$L($P(GMTSEG(GMTSEQ),"^",3)) DR=DR_";2///"_$P(GMTSEG(GMTSEQ),"^",3)
- S:$L($P(GMTSEG(GMTSEQ),"^",4)) DR=DR_";3///"_$P(GMTSEG(GMTSEQ),"^",4)
- S:$L($P(GMTSEG(GMTSEQ),"^",5)) DR=DR_";5///"_$P(GMTSEG(GMTSEQ),"^",5)
- S:$L($P(GMTSEG(GMTSEQ),"^",6)) DR=DR_";6///"_$P(GMTSEG(GMTSEQ),"^",6)
- S:$L($P(GMTSEG(GMTSEQ),"^",7)) DR=DR_";7///"_$P(GMTSEG(GMTSEQ),"^",7)
- S:$L($P(GMTSEG(GMTSEQ),"^",8)) DR=DR_";8///"_$P(GMTSEG(GMTSEQ),"^",8)
- S:$L($P($G(GMTSEG(GMTSEQ)),"^",9))>0&($L($$GET1^DID(142.1,14,,"LABEL"))>0) DR=DR_";9///"_$P(GMTSEG(GMTSEQ),"^",9)
- D ^DIE S (GMTSELC,GMTSEL)=0 F S GMTSEL=$O(GMTSEG(GMTSEQ,GMTSEL)) Q:'GMTSEL D AS
- I GMTSELC>0 S:'$D(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0)) ^(0)="^142.14V^"_GMTSDA_"^"_GMTSELC
- Q
- AS ; Add Selection Items to Ad Hoc Summary
- N DIE,DA,DR
- S:'$D(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0)) ^(0)="^142.14V^^"
- S DIE="^GMT(142,"_GMTSIFN_",1,"_GMTSISEQ_",1,"
- S DA(2)=GMTSIFN,DA(1)=GMTSISEQ,DA=GMTSEL
- S DR=".01////"_"^S X=GMTSEG(GMTSEQ,GMTSEL)" D ^DIE
- S GMTSDA=DA,GMTSELC=GMTSELC+1
- Q
- ;
- ; Misc
- ENV(X) ; Environment check
- D HOME^%ZIS I +($G(DUZ))=0 D BM(" User (DUZ) not defined"),M(" ") Q 0
- I '$L($$GET1^DIQ(200,(+($G(DUZ))_","),.01)) D BM(" Invalid User defined (DUZ)"),M(" ") Q 0
- Q 1
- BM(X) ; Blank Line with Message
- Q:$D(GMTSQT) D:$D(XPDNM) BMES^XPDUTL($G(X)) W:'$D(XPDNM) !!,$G(X) Q
- M(X) ; Message
- Q:$D(GMTSQT) D:$D(XPDNM) MES^XPDUTL($G(X)) W:'$D(XPDNM) !,$G(X) Q
- UP(X) ; Uppercase
- Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
- GMTSXPD4 ; SLC/KER - Health Summary Dist (Re-Build) ; 08/27/2002
- +1 ;;2.7;Health Summary;**35,56**;Oct 20, 1995
- +2 ;
- +3 ; External References
- +4 ; DBIA 10013 ^DIK (file #142)
- +5 ; DBIA 2052 $$GET1^DID
- +6 ; DBIA 10018 ^DIE (file #142)
- +7 ; DBIA 10086 HOME^%ZIS
- +8 ; DBIA 10060 ^VA(200,
- +9 ; DBIA 2056 $$GET1^DIQ (file 200)
- +10 ; DBIA 10141 BMES^XPDUTL
- +11 ; DBIA 10141 MES^XPDUTL
- +12 ;
- +13 QUIT
- +14 ; Re-Build Ad Hoc Health Summary Type
- +15 ;
- +16 ; Input Variables INCLUDE
- +17 ; 0 exclude DISABLED components
- +18 ; 1 include DISABLED components
- +19 ;
- IN ; Re-Build w/INCLUDE
- +1 NEW INCLUDE
- SET INCLUDE=1
- DO RB
- QUIT
- EX ; Re-Build w/EXCLUDE
- +1 NEW INCLUDE
- SET INCLUDE=0
- DO RB
- QUIT
- RB ; Re-Build (main)
- +1 NEW GMTSENV
- SET GMTSENV=$$ENV
- IF 'GMTSENV
- QUIT
- +2 NEW DA,DIC,DIE,DIK,DLAYGO,DR,GMTSC,GMTSDA,GMTSDIAB,GMTSE,GMTSEG,GMTSEL
- +3 NEW GMTSELC,GMTSELT,GMTSEQ,GMTSI,GMTSICD,GMTSIFN,GMTSISEQ,GMTSITEM
- +4 NEW GMTSJ,GMTSL,GMTSLOC,GMTSNAR,GMTSCPT,GMTSNEW,GMTSNM,GMTSOCC,GMTSOK
- +5 NEW GMTSORD,GMTSQ,GMTST1,GMTST2,GMTST3,GMTSTIM,GMTSTYP,X,Y
- +6 SET GMTSOK=0
- SET GMTSE=59
- SET GMTSC=0
- DO BM(" Ad Hoc Summary")
- SET GMTST1=" Gathering Ad Hoc Summary information"
- SET GMTST2=" Purging old Ad Hoc Summary"
- SET GMTST3=" Rebuilding Ad Hoc Summary"
- +7 DO M($GET(GMTST1))
- NEW GMTSNEW,GMTSTYP,DLAYGO
- SET DLAYGO=142
- +8 SET DIC=142
- SET DIC(0)="LXF"
- SET X="GMTS HS ADHOC OPTION"
- SET Y=$$TYPE^GMTSULT
- KILL DIC
- +9 IF +Y'>0
- DO BM("** GMTS AD HOC OPTION Summary Type is missing **")
- QUIT
- +10 DO GA
- DO RN
- IF +($GET(GMTSOK))>0
- DO BM(" Ad Hoc Health Summary successfully rebuilt")
- +11 IF +($GET(GMTSOK))'>0
- DO BM(" Failed to successfully rebuild the Ad Hoc Health Summary")
- +12 QUIT
- GA ; Gather Information
- +1 NEW GMTSL,GMTSQ,GMTSC,GMTSE
- +2 SET GMTSE=59
- SET GMTSC=0
- SET GMTSL=$LENGTH($GET(GMTST1))
- +3 SET (GMTSIFN,GMTSTYP)=+Y
- SET GMTSNEW=+$PIECE(Y,"^",3)
- +4 IF '$DATA(^GMT(142,GMTSIFN,1,0))
- SET ^(0)="^142.01IA^0^0"
- +5 SET GMTSC=0
- SET GMTSNM=""
- FOR GMTSC=1:1
- SET GMTSNM=$ORDER(^GMT(142.1,"B",GMTSNM))
- IF GMTSNM']""
- QUIT
- SET GMTSC=+($GET(GMTSC))+1
- +6 SET GMTSC=GMTSC-1
- SET GMTSQ=GMTSC\(GMTSE-$LENGTH(GMTST1))
- +7 SET GMTSC=0
- SET GMTSNM=""
- FOR GMTSC=1:1
- SET GMTSNM=$ORDER(^GMT(142.1,"B",GMTSNM))
- IF GMTSNM']""
- QUIT
- Begin DoDot:1
- +8 SET GMTSJ=$ORDER(^(GMTSNM,0))
- IF GMTSJ'>0
- QUIT
- DO LA
- +9 IF $DATA(GMTSQT)
- QUIT
- IF +GMTSQ'>0
- QUIT
- +10 SET GMTSC=GMTSC+1
- IF GMTSC#GMTSQ=0
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- +11 IF GMTSC#GMTSQ=0
- WRITE "."
- End DoDot:1
- +12 IF '$DATA(GMTSQT)
- IF GMTSL'>GMTSE
- FOR
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- WRITE "."
- +13 IF '$DATA(GMTSQT)
- WRITE ?GMTSE," < done >"
- +14 SET GMTSI=0
- IF 'GMTSNEW
- DO PA
- +15 QUIT
- PA ; Purge Ad Hoc Health Summary
- +1 NEW GMTSI,GMTSL,GMTSQ,GMTSC,GMTSE
- SET GMTSE=59
- SET GMTSL=$LENGTH($GET(GMTST2))
- DO M($GET(GMTST2))
- +2 SET (GMTSC,GMTSI)=0
- FOR
- SET GMTSI=$ORDER(^GMT(142,GMTSIFN,1,GMTSI))
- IF GMTSI'>0
- QUIT
- SET GMTSC=+($GET(GMTSC))+1
- +3 SET GMTSC=GMTSC-1
- SET GMTSQ=GMTSC\(GMTSE-$LENGTH(GMTST1))
- +4 SET (GMTSC,GMTSI)=0
- FOR
- SET GMTSI=$ORDER(^GMT(142,GMTSIFN,1,GMTSI))
- IF GMTSI'>0
- QUIT
- Begin DoDot:1
- +5 NEW DA,DIK
- SET U="^"
- SET DA(1)=GMTSIFN
- SET DA=GMTSI
- SET DIK="^GMT(142,"_GMTSIFN_",1,"
- DO ^DIK
- +6 IF $DATA(GMTSQT)
- QUIT
- IF +GMTSQ'>0
- QUIT
- +7 SET GMTSC=GMTSC+1
- IF GMTSC#GMTSQ=0
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- +8 IF GMTSC#GMTSQ=0
- WRITE "."
- End DoDot:1
- +9 IF '$DATA(GMTSQT)
- IF GMTSL'>GMTSE
- FOR
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- WRITE "."
- +10 IF '$DATA(GMTSQT)
- WRITE ?GMTSE," < done >"
- +11 QUIT
- RN ; Renumber - Resets ^GMT(142,GMTSIFN,1,
- +1 NEW DA,DR,DIE,GMTSEQ,GMTSL
- +2 NEW GMTSL,GMTSQ,GMTSC,GMTSE
- SET GMTSE=59
- SET GMTSL=$LENGTH($GET(GMTST3))
- DO M($GET(GMTST3))
- +3 SET (GMTSEQ,GMTSC)=0
- FOR
- SET GMTSEQ=$ORDER(GMTSEG(GMTSEQ))
- IF GMTSEQ'>0
- QUIT
- SET GMTSC=+($GET(GMTSC))+1
- +4 SET GMTSC=GMTSC-1
- SET GMTSQ=GMTSC\(GMTSE-$LENGTH(GMTST3))
- +5 SET (GMTSEQ,GMTSC)=0
- FOR
- SET GMTSEQ=$ORDER(GMTSEG(GMTSEQ))
- IF GMTSEQ'>0
- QUIT
- Begin DoDot:1
- +6 KILL DA
- SET DIE="^GMT(142,"_GMTSIFN_",1,"
- SET DA(1)=GMTSIFN
- DO AC
- +7 IF $DATA(GMTSQT)
- QUIT
- IF +GMTSQ'>0
- QUIT
- +8 SET GMTSC=GMTSC+1
- IF GMTSC#GMTSQ=0
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- +9 IF GMTSC#GMTSQ=0
- WRITE "."
- End DoDot:1
- +10 IF '$DATA(GMTSQT)
- IF GMTSL'>GMTSE
- FOR
- SET GMTSL=GMTSL+1
- IF GMTSL>GMTSE
- QUIT
- WRITE "."
- +11 IF '$DATA(GMTSQT)
- WRITE ?GMTSE," < done >"
- SET GMTSOK=1
- +12 QUIT
- LA ; Load Array GMTSEG(#)
- +1 NEW GMTSOCC,GMTSTIM,GMTSORD,GMTSLOC,GMTSICD,GMTSNAR,GMTSCPT
- +2 IF '$DATA(^GMT(142.1,GMTSJ,0))
- QUIT
- +3 SET GMTSORD=$ORDER(^GMT(142,"AE",GMTSJ,GMTSTYP,0))
- +4 IF GMTSORD>0
- Begin DoDot:1
- +5 SET GMTSOCC=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",5)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",3),1:"")
- +6 SET GMTSTIM=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",3)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",4),1:"")
- +7 SET GMTSLOC=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",10)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",6),1:"")
- +8 SET GMTSICD=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",11)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",7),1:"")
- +9 SET GMTSNAR=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",12)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",8),1:"")
- +10 SET GMTSCPT=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",14)="Y":$PIECE($GET(^GMT(142,GMTSTYP,1,GMTSORD,0)),"^",9),1:"")
- End DoDot:1
- +11 IF '$TEST
- Begin DoDot:1
- +12 SET GMTSOCC=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",5)="Y":10,1:"")
- +13 SET GMTSTIM=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",3)="Y":"1Y",1:"")
- +14 SET GMTSLOC=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",10)="Y":"Y",1:"")
- +15 SET GMTSICD=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",11)="Y":"L",1:"")
- +16 SET GMTSNAR=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
- +17 SET GMTSCPT=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",12)="Y":"Y",1:"")
- End DoDot:1
- +18 ; Defaults for CPT Modifiers
- +19 IF $PIECE(^GMT(142.1,GMTSJ,0),"^",14)="Y"&(GMTSCPT="")
- SET GMTSCPT="Y"
- +20 IF $$GET1^DID(142.1,14,,"LABEL")=""
- SET GMTSCPT=""
- +21 DO SG
- +22 QUIT
- SG ; Set GMTSEG(#) Component
- +1 ; Disabled
- +2 NEW GMTSDIAB
- SET GMTSDIAB=$SELECT($PIECE(^GMT(142.1,GMTSJ,0),"^",6)="P":1,$PIECE(^(0),"^",6)="T":1,1:0)
- IF (INCLUDE=0)
- IF (GMTSDIAB=1)
- QUIT
- +3 ; Include
- +4 SET GMTSEG(GMTSC)=(5*GMTSC)_"^"_GMTSJ_"^"_GMTSOCC_"^"_GMTSTIM_"^^"_GMTSLOC_"^"_GMTSICD_"^"_GMTSNAR_"^"_GMTSCPT
- IF GMTSORD>0
- DO SL
- +5 QUIT
- SL ; Set GMTSEG(#,#) Selection item
- +1 NEW GMTSELT,GMTSITEM
- +2 SET GMTSELT=0
- FOR
- SET GMTSELT=$ORDER(^GMT(142,GMTSTYP,1,+GMTSORD,1,GMTSELT))
- IF GMTSELT'>0
- QUIT
- Begin DoDot:1
- +3 SET GMTSITEM=^(GMTSELT,0)
- SET GMTSEG(GMTSC,GMTSELT)=GMTSITEM
- End DoDot:1
- +4 QUIT
- AC ; Add Components to Ad Hoc Summary
- +1 NEW GMTSISEQ,DA,DIE,DR,GMTSELC,GMTSDA,GMTSEL
- +2 SET (GMTSISEQ,DA)=GMTSEQ*5
- SET DIE="^GMT(142,"_GMTSIFN_",1,"
- SET DA(1)=GMTSIFN
- +3 SET DR=".01///"_DA
- +4 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",2))
- SET DR=DR_";1///"_$PIECE(GMTSEG(GMTSEQ),"^",2)
- +5 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",3))
- SET DR=DR_";2///"_$PIECE(GMTSEG(GMTSEQ),"^",3)
- +6 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",4))
- SET DR=DR_";3///"_$PIECE(GMTSEG(GMTSEQ),"^",4)
- +7 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",5))
- SET DR=DR_";5///"_$PIECE(GMTSEG(GMTSEQ),"^",5)
- +8 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",6))
- SET DR=DR_";6///"_$PIECE(GMTSEG(GMTSEQ),"^",6)
- +9 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",7))
- SET DR=DR_";7///"_$PIECE(GMTSEG(GMTSEQ),"^",7)
- +10 IF $LENGTH($PIECE(GMTSEG(GMTSEQ),"^",8))
- SET DR=DR_";8///"_$PIECE(GMTSEG(GMTSEQ),"^",8)
- +11 IF $LENGTH($PIECE($GET(GMTSEG(GMTSEQ)),"^",9))>0&($LENGTH($$GET1^DID(142.1,14,,"LABEL"))>0)
- SET DR=DR_";9///"_$PIECE(GMTSEG(GMTSEQ),"^",9)
- +12 DO ^DIE
- SET (GMTSELC,GMTSEL)=0
- FOR
- SET GMTSEL=$ORDER(GMTSEG(GMTSEQ,GMTSEL))
- IF 'GMTSEL
- QUIT
- DO AS
- +13 IF GMTSELC>0
- IF '$DATA(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0))
- SET ^(0)="^142.14V^"_GMTSDA_"^"_GMTSELC
- +14 QUIT
- AS ; Add Selection Items to Ad Hoc Summary
- +1 NEW DIE,DA,DR
- +2 IF '$DATA(^GMT(142,GMTSIFN,1,GMTSISEQ,1,0))
- SET ^(0)="^142.14V^^"
- +3 SET DIE="^GMT(142,"_GMTSIFN_",1,"_GMTSISEQ_",1,"
- +4 SET DA(2)=GMTSIFN
- SET DA(1)=GMTSISEQ
- SET DA=GMTSEL
- +5 SET DR=".01////"_"^S X=GMTSEG(GMTSEQ,GMTSEL)"
- DO ^DIE
- +6 SET GMTSDA=DA
- SET GMTSELC=GMTSELC+1
- +7 QUIT
- +8 ;
- +9 ; Misc
- ENV(X) ; Environment check
- +1 DO HOME^%ZIS
- IF +($GET(DUZ))=0
- DO BM(" User (DUZ) not defined")
- DO M(" ")
- QUIT 0
- +2 IF '$LENGTH($$GET1^DIQ(200,(+($GET(DUZ))_","),.01))
- DO BM(" Invalid User defined (DUZ)")
- DO M(" ")
- QUIT 0
- +3 QUIT 1
- BM(X) ; Blank Line with Message
- +1 IF $DATA(GMTSQT)
- QUIT
- IF $DATA(XPDNM)
- DO BMES^XPDUTL($GET(X))
- IF '$DATA(XPDNM)
- WRITE !!,$GET(X)
- QUIT
- M(X) ; Message
- +1 IF $DATA(GMTSQT)
- QUIT
- IF $DATA(XPDNM)
- DO MES^XPDUTL($GET(X))
- IF '$DATA(XPDNM)
- WRITE !,$GET(X)
- QUIT
- UP(X) ; Uppercase
- +1 QUIT $TRANSLATE(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")