GMTSULT4 ; SLC/KER - HS Type Lookup (Array) ; 08/27/2002
;;2.7;Health Summary;**30,32,56**;Oct 20, 1995
;
; External References
; DBIA 10060 ^VA(200,
; DBIA 2056 $$GET1^DIQ (file #200)
; DBIA 10040 ^SC( file #44
;
Q
NT ; In Name/Title Array
Q:$D(GMTSINPT) Q:+GMTSWDS'>0 K GMTSLT D CMN
S GMTSFND=0,GMTSLT("W")=+($G(GMTSWDS))
N GMTSNT F GMTSI=1:1:GMTSWDS D
. Q:'$L(GMTSWRDS(GMTSI))
. S GMTSNT=+($$CHKW(GMTSWRDS(GMTSI)))
. S:GMTSNT GMTSFND=GMTSFND+1,GMTSLT(GMTSI1)=(+($G(GMTSLT(GMTSI1)))+1)
I GMTSFND>0,GMTSFND=GMTSWDS,'$D(GMTSLT(GMTSI1)) S GMTSLT(0)=+($G(GMTSLT(0)))+1
; Reorder
S GMTSFND=0 F S GMTSFND=$O(GMTSLT(GMTSFND)) Q:+GMTSFND=0 D
. S:+($G(GMTSLT(GMTSFND)))>0&(+($G(GMTSLT(GMTSFND)))=+($G(GMTSLT("W")))) GMTSLT("B",+GMTSFND)=""
. K:+($G(GMTSLT(GMTSFND)))>0&(+($G(GMTSLT(GMTSFND)))'=+($G(GMTSLT("W")))) GMTSLT(+GMTSFND)
K GMTSLT("W") K:'$D(GMTSLT("B")) GMTSLT
S:$D(GMTSLT("B")) GMTSLT("C")=$$MX($P($G(^GMT(142,+($G(GMTSIEN)),0)),"^",1))
Q
LC ; Location Array (Needs either GMTSIEN or GMTSI1)
Q:$D(GMTSINPT) Q:+GMTSWDS'>0
I '$D(GMTSI1),$D(GMTSIEN),$D(^GMT(142,+($G(GMTSIEN)),0)) N GMTSI1 S GMTSI1=+($G(GMTSIEN))
Q:'$D(GMTSI1)
N GMTSF,GMTSI,GMTSI2,GMTSI3,GMTSL,GMTSLC K GMTSLI
S GMTSI2=0 F S GMTSI2=$O(^GMT(142,GMTSI1,20,GMTSI2)) Q:+GMTSI2=0 D
. S GMTSI3=+($G(^GMT(142,GMTSI1,20,GMTSI2,0)))
. S GMTSL=$P($G(^SC(+GMTSI3,0)),"^",1)
. S GMTSF=0 I GMTSWDS>0 S GMTSLI("W")=+($G(GMTSWDS))
. F GMTSI=1:1:GMTSWDS D
. . Q:'$L(GMTSWRDS(GMTSI))
. . S:$$UP(GMTSL)[$$UP(GMTSWRDS(GMTSI)) GMTSF=GMTSF+1
. I GMTSF=GMTSWDS D
. . S:'$D(GMTSLI(GMTSI1,GMTSI2)) GMTSLI(0)=+($G(GMTSLI(0)))+1
. . S GMTSLI(GMTSI2)=GMTSF_"^"_GMTSL
. . S GMTSLI("I")=GMTSI1
S GMTSF=0 F S GMTSF=$O(GMTSLI(GMTSF)) Q:+GMTSF=0 D
. S:+($G(GMTSLI(GMTSF)))>0&(+($G(GMTSLI(GMTSF)))=+($G(GMTSLI("W")))) GMTSLI("B",+GMTSF)=""
. K:+($G(GMTSLI(GMTSF)))>0&(+($G(GMTSLI(GMTSF)))'=+($G(GMTSLI("W")))) GMTSLI(+GMTSF)
K:'$D(GMTSLI("B")) GMTSLI
I $D(GMTSLI("B")) D
. N GMTSI,GMTSC,GMTST,GMTSE S (GMTSE,GMTSC)=0,GMTST=+($G(GMTSLI(0))) Q:GMTST=0
. S GMTSI="",GMTSF=0 F S GMTSF=$O(GMTSLI(GMTSF)) Q:GMTSE Q:+GMTSF=0 D Q:GMTSE
. . I ($L($G(GMTSI))+$L($P($G(GMTSLI(GMTSF)),"^",2)))>60 S GMTSI="",GMTSE=1 Q
. . S GMTSC=GMTSC+1
. . S:GMTSI'=""&(GMTSC>1)&(GMTSC'=GMTST) GMTSI=GMTSI_", "_$$MX($P(GMTSLI(GMTSF),"^",2))
. . S:GMTSI'=""&(GMTSC>1)&(GMTSC=GMTST) GMTSI=GMTSI_" and "_$$MX($P(GMTSLI(GMTSF),"^",2))
. . S:GMTSI="" GMTSI=$$MX($P(GMTSLI(GMTSF),"^",2))
. S:$L(GMTSI) GMTSLI("C")=GMTSI
K:'$D(GMTSLI("C")) GMTSLI K GMTSLI("W")
Q
CHKW(X) ; Check Words
S X=$$UP($G(X)) Q:'$L(X) 0
N I,OK S OK=0,I=0 F S I=$O(GMTSCOMP(I)) Q:+I=0 S:$$UP($G(GMTSCOMP(I)))[X OK=1 Q:OK
S X=+($G(OK)) Q X
;
CM ; Composite Array
K GMTSCOMP S GMTSIEN=+($G(GMTSIEN)) G:GMTSIEN=0 CMQ
N GMTSWL,GMTSL,GMTS2
D:$D(GMTSNAM) CMP($$UP($$UP(GMTSNAM))) D:'$D(GMTSNAM) CMP($$UP($P($G(^GMT(142,+GMTSIEN,0)),"^",1)))
D:$D(GMTSTTL) CMP($$UP($G(GMTSTTL))) D:'$D(GMTSTTL) CMP($$UP($P($G(^GMT(142,+GMTSIEN,"T")),"^",1)))
D:$D(GMTSOW) CMP($$UP($G(GMTSOW)))
I '$D(GMTSOW),+($P($G(^GMT(142,+GMTSIEN,0)),"^",3))>1 D CMP($$UP($$GET1^DIQ(200,(+($P($G(^GMT(142,+GMTSIEN,0)),"^",3))_","),.01)))
G:$D(GMTSNO) CMQ
S GMTS2=0 F S GMTS2=$O(^GMT(142,GMTSIEN,20,GMTS2)) Q:+GMTS2=0 D
. S GMTSL=+($G(^GMT(142,GMTSIEN,20,GMTS2,0)))
. S GMTSL=$P($G(^SC(+GMTSL,0)),"^",1) D CMP($$UP(GMTSL))
CMQ ; Composite Array Quit
D CMC Q
CMA ; Composite Array (name only)
N GMTSNO D CM Q
CMN ; Composite Array (name only)
N GMTSNO S GMTSNO="" D CM Q
CMP(X) ; Composite Array Word Parse
N GMTSX,GMTSP,GMTSC,GMTSW S GMTSX=$G(X) Q:'$L(GMTSX)
S GMTSC=1 F GMTSP=1:1:$L(GMTSX)+1 D
. S GMTSW=$E(GMTSX,GMTSP) I "(,.?! '-/&:;)"[GMTSW D
. . S GMTSW=$E($E(GMTSX,GMTSC,GMTSP-1),1,30),GMTSC=GMTSP+1 I $L(GMTSW)>0 D
. . . S:$L(GMTSW) GMTSWL(GMTSW)=""
Q
CMC ; Composite Array Compile
S GMTSCOMP("B")="" N GMTSW,GMTSLI S GMTSW=""
F S GMTSW=$O(GMTSWL(GMTSW)) Q:GMTSW="" D
. I $L(GMTSCOMP("B")_" "_GMTSW)>200 D CMCA S GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW) K GMTSWL(GMTSW) Q
. S GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW) K GMTSWL(GMTSW) Q
F Q:$E(GMTSCOMP("B"),1)'=" " S GMTSCOMP("B")=$E(GMTSCOMP("B"),2,$L(GMTSCOMP("B")))
S GMTSLI=+($O(GMTSCOMP(" "),-1)) I $D(GMTSCOMP("B")) S GMTSCOMP((GMTSLI+1))=GMTSCOMP("B") K GMTSCOMP("B")
Q
CMCA ; Composite Array Compile (Add String)
N I S I=+($O(GMTSCOMP(" "),-1))+1 S GMTSCOMP(I)=GMTSCOMP("B"),GMTSCOMP("B")=""
F Q:$E(GMTSCOMP(I),1)'=" " S GMTSCOMP(I)=$E(GMTSCOMP(I),2,$L(GMTSCOMP(I)))
Q
;
RDT ; Recommended Display Text
; Name (used by Location)
I GMTSKEY["LOC" D
. Q:'$L(GMTS5)
. S:$$UP(GMTS2)'=$$UP(GMTS5) GMTSG=GMTSMN_" (used by "_GMTSLOC
. S:$$UP(GMTSMN)=$$UP(GMTSLOC) GMTSG=GMTSMN
; Name (Title)
I GMTSKEY["TITL",GMTSKEY'["OWN" D
. Q:'$L(GMTS3)
. I $$UP(GMTS3)=$$UP(GMTS2) S GMTSG=GMTS2 Q
. S:GMTSKEY["TITL"&($$UP(GMTSMN)'=$$UP(GMTSL)) GMTSG=GMTSMN_" ("_$$MX(GMTS3)_")"
. S:GMTSKEY["TITL"&($$UP(GMTSMN)=$$UP(GMTSL)) GMTSG=GMTSMN
I GMTSKEY["TITL",GMTSKEY["OWN" D
. Q:'$L(GMTS3)
. ; Name (Title, Owner) if Title'=Name and Owner
. S:$$UP(GMTSMN)'=$$UP(GMTS3)&($L(GMTS4)) GMTSG=GMTSMN_" ("_$$MX(GMTS3)_", HS Owner "_$$OW(GMTSOW)
. ; Name (Title) if Title'=Name and no Owner
. S:$$UP(GMTSMN)'=$$UP(GMTS3)&('$L(GMTS4)) GMTSG=GMTSMN_" ("_$$MX(GMTSTTL)
. ; Name (Owner) if Title=Name and Owner
. S:$$UP(GMTSMN)=$$UP(GMTS3)&($L(GMTS4)) GMTSG=GMTSMN_" (HS Owner "_$$OW(GMTSOW)
. S:$$UP(GMTSMN)=$$UP(GMTS3)&('$L(GMTS4)) GMTSG=GMTSMN
;
; Assemble string and store in TMP Global
; IEN^Name^Title^Owner^Location^Components^Display Text
S:$L(GMTSG)&(GMTSG'[")")&(GMTSG'["(")&(+GMTS6=0)&($L(GMTS6)) GMTSG=GMTSG_" ("_GMTS6_")" S GMTS7=GMTSG
S ^TMP("GMTSULT",$J,GMTSI)=GMTS1_U_GMTS2_U_GMTS3_U_GMTS4_U_GMTS5_U_GMTS6_U_GMTS7
S ^TMP("GMTSULT",$J,0)=GMTSI
Q
;
; Miscellaneous
UP(X) ; Uppercase
Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
OW(X) ; Mix Case (owner name)
Q:$G(X)'["," $$EN^GMTSUMX($G(X))
Q $$EN^GMTSUMX(($P($G(X),",",1)_", "_$P($G(X),",",2)))
MX(X) ; Mix Case
Q $$EN^GMTSUMX(X)
GMTSULT4 ; SLC/KER - HS Type Lookup (Array) ; 08/27/2002
+1 ;;2.7;Health Summary;**30,32,56**;Oct 20, 1995
+2 ;
+3 ; External References
+4 ; DBIA 10060 ^VA(200,
+5 ; DBIA 2056 $$GET1^DIQ (file #200)
+6 ; DBIA 10040 ^SC( file #44
+7 ;
+8 QUIT
NT ; In Name/Title Array
+1 IF $DATA(GMTSINPT)
QUIT
IF +GMTSWDS'>0
QUIT
KILL GMTSLT
DO CMN
+2 SET GMTSFND=0
SET GMTSLT("W")=+($GET(GMTSWDS))
+3 NEW GMTSNT
FOR GMTSI=1:1:GMTSWDS
Begin DoDot:1
+4 IF '$LENGTH(GMTSWRDS(GMTSI))
QUIT
+5 SET GMTSNT=+($$CHKW(GMTSWRDS(GMTSI)))
+6 IF GMTSNT
SET GMTSFND=GMTSFND+1
SET GMTSLT(GMTSI1)=(+($GET(GMTSLT(GMTSI1)))+1)
End DoDot:1
+7 IF GMTSFND>0
IF GMTSFND=GMTSWDS
IF '$DATA(GMTSLT(GMTSI1))
SET GMTSLT(0)=+($GET(GMTSLT(0)))+1
+8 ; Reorder
+9 SET GMTSFND=0
FOR
SET GMTSFND=$ORDER(GMTSLT(GMTSFND))
IF +GMTSFND=0
QUIT
Begin DoDot:1
+10 IF +($GET(GMTSLT(GMTSFND)))>0&(+($GET(GMTSLT(GMTSFND)))=+($GET(GMTSLT("W"))))
SET GMTSLT("B",+GMTSFND)=""
+11 IF +($GET(GMTSLT(GMTSFND)))>0&(+($GET(GMTSLT(GMTSFND)))'=+($GET(GMTSLT("W"))))
KILL GMTSLT(+GMTSFND)
End DoDot:1
+12 KILL GMTSLT("W")
IF '$DATA(GMTSLT("B"))
KILL GMTSLT
+13 IF $DATA(GMTSLT("B"))
SET GMTSLT("C")=$$MX($PIECE($GET(^GMT(142,+($GET(GMTSIEN)),0)),"^",1))
+14 QUIT
LC ; Location Array (Needs either GMTSIEN or GMTSI1)
+1 IF $DATA(GMTSINPT)
QUIT
IF +GMTSWDS'>0
QUIT
+2 IF '$DATA(GMTSI1)
IF $DATA(GMTSIEN)
IF $DATA(^GMT(142,+($GET(GMTSIEN)),0))
NEW GMTSI1
SET GMTSI1=+($GET(GMTSIEN))
+3 IF '$DATA(GMTSI1)
QUIT
+4 NEW GMTSF,GMTSI,GMTSI2,GMTSI3,GMTSL,GMTSLC
KILL GMTSLI
+5 SET GMTSI2=0
FOR
SET GMTSI2=$ORDER(^GMT(142,GMTSI1,20,GMTSI2))
IF +GMTSI2=0
QUIT
Begin DoDot:1
+6 SET GMTSI3=+($GET(^GMT(142,GMTSI1,20,GMTSI2,0)))
+7 SET GMTSL=$PIECE($GET(^SC(+GMTSI3,0)),"^",1)
+8 SET GMTSF=0
IF GMTSWDS>0
SET GMTSLI("W")=+($GET(GMTSWDS))
+9 FOR GMTSI=1:1:GMTSWDS
Begin DoDot:2
+10 IF '$LENGTH(GMTSWRDS(GMTSI))
QUIT
+11 IF $$UP(GMTSL)[$$UP(GMTSWRDS(GMTSI))
SET GMTSF=GMTSF+1
End DoDot:2
+12 IF GMTSF=GMTSWDS
Begin DoDot:2
+13 IF '$DATA(GMTSLI(GMTSI1,GMTSI2))
SET GMTSLI(0)=+($GET(GMTSLI(0)))+1
+14 SET GMTSLI(GMTSI2)=GMTSF_"^"_GMTSL
+15 SET GMTSLI("I")=GMTSI1
End DoDot:2
End DoDot:1
+16 SET GMTSF=0
FOR
SET GMTSF=$ORDER(GMTSLI(GMTSF))
IF +GMTSF=0
QUIT
Begin DoDot:1
+17 IF +($GET(GMTSLI(GMTSF)))>0&(+($GET(GMTSLI(GMTSF)))=+($GET(GMTSLI("W"))))
SET GMTSLI("B",+GMTSF)=""
+18 IF +($GET(GMTSLI(GMTSF)))>0&(+($GET(GMTSLI(GMTSF)))'=+($GET(GMTSLI("W"))))
KILL GMTSLI(+GMTSF)
End DoDot:1
+19 IF '$DATA(GMTSLI("B"))
KILL GMTSLI
+20 IF $DATA(GMTSLI("B"))
Begin DoDot:1
+21 NEW GMTSI,GMTSC,GMTST,GMTSE
SET (GMTSE,GMTSC)=0
SET GMTST=+($GET(GMTSLI(0)))
IF GMTST=0
QUIT
+22 SET GMTSI=""
SET GMTSF=0
FOR
SET GMTSF=$ORDER(GMTSLI(GMTSF))
IF GMTSE
QUIT
IF +GMTSF=0
QUIT
Begin DoDot:2
+23 IF ($LENGTH($GET(GMTSI))+$LENGTH($PIECE($GET(GMTSLI(GMTSF)),"^",2)))>60
SET GMTSI=""
SET GMTSE=1
QUIT
+24 SET GMTSC=GMTSC+1
+25 IF GMTSI'=""&(GMTSC>1)&(GMTSC'=GMTST)
SET GMTSI=GMTSI_", "_$$MX($PIECE(GMTSLI(GMTSF),"^",2))
+26 IF GMTSI'=""&(GMTSC>1)&(GMTSC=GMTST)
SET GMTSI=GMTSI_" and "_$$MX($PIECE(GMTSLI(GMTSF),"^",2))
+27 IF GMTSI=""
SET GMTSI=$$MX($PIECE(GMTSLI(GMTSF),"^",2))
End DoDot:2
IF GMTSE
QUIT
+28 IF $LENGTH(GMTSI)
SET GMTSLI("C")=GMTSI
End DoDot:1
+29 IF '$DATA(GMTSLI("C"))
KILL GMTSLI
KILL GMTSLI("W")
+30 QUIT
CHKW(X) ; Check Words
+1 SET X=$$UP($GET(X))
IF '$LENGTH(X)
QUIT 0
+2 NEW I,OK
SET OK=0
SET I=0
FOR
SET I=$ORDER(GMTSCOMP(I))
IF +I=0
QUIT
IF $$UP($GET(GMTSCOMP(I)))[X
SET OK=1
IF OK
QUIT
+3 SET X=+($GET(OK))
QUIT X
+4 ;
CM ; Composite Array
+1 KILL GMTSCOMP
SET GMTSIEN=+($GET(GMTSIEN))
IF GMTSIEN=0
GOTO CMQ
+2 NEW GMTSWL,GMTSL,GMTS2
+3 IF $DATA(GMTSNAM)
DO CMP($$UP($$UP(GMTSNAM)))
IF '$DATA(GMTSNAM)
DO CMP($$UP($PIECE($GET(^GMT(142,+GMTSIEN,0)),"^",1)))
+4 IF $DATA(GMTSTTL)
DO CMP($$UP($GET(GMTSTTL)))
IF '$DATA(GMTSTTL)
DO CMP($$UP($PIECE($GET(^GMT(142,+GMTSIEN,"T")),"^",1)))
+5 IF $DATA(GMTSOW)
DO CMP($$UP($GET(GMTSOW)))
+6 IF '$DATA(GMTSOW)
IF +($PIECE($GET(^GMT(142,+GMTSIEN,0)),"^",3))>1
DO CMP($$UP($$GET1^DIQ(200,(+($PIECE($GET(^GMT(142,+GMTSIEN,0)),"^",3))_","),.01)))
+7 IF $DATA(GMTSNO)
GOTO CMQ
+8 SET GMTS2=0
FOR
SET GMTS2=$ORDER(^GMT(142,GMTSIEN,20,GMTS2))
IF +GMTS2=0
QUIT
Begin DoDot:1
+9 SET GMTSL=+($GET(^GMT(142,GMTSIEN,20,GMTS2,0)))
+10 SET GMTSL=$PIECE($GET(^SC(+GMTSL,0)),"^",1)
DO CMP($$UP(GMTSL))
End DoDot:1
CMQ ; Composite Array Quit
+1 DO CMC
QUIT
CMA ; Composite Array (name only)
+1 NEW GMTSNO
DO CM
QUIT
CMN ; Composite Array (name only)
+1 NEW GMTSNO
SET GMTSNO=""
DO CM
QUIT
CMP(X) ; Composite Array Word Parse
+1 NEW GMTSX,GMTSP,GMTSC,GMTSW
SET GMTSX=$GET(X)
IF '$LENGTH(GMTSX)
QUIT
+2 SET GMTSC=1
FOR GMTSP=1:1:$LENGTH(GMTSX)+1
Begin DoDot:1
+3 SET GMTSW=$EXTRACT(GMTSX,GMTSP)
IF "(,.?! '-/&:;)"[GMTSW
Begin DoDot:2
+4 SET GMTSW=$EXTRACT($EXTRACT(GMTSX,GMTSC,GMTSP-1),1,30)
SET GMTSC=GMTSP+1
IF $LENGTH(GMTSW)>0
Begin DoDot:3
+5 IF $LENGTH(GMTSW)
SET GMTSWL(GMTSW)=""
End DoDot:3
End DoDot:2
End DoDot:1
+6 QUIT
CMC ; Composite Array Compile
+1 SET GMTSCOMP("B")=""
NEW GMTSW,GMTSLI
SET GMTSW=""
+2 FOR
SET GMTSW=$ORDER(GMTSWL(GMTSW))
IF GMTSW=""
QUIT
Begin DoDot:1
+3 IF $LENGTH(GMTSCOMP("B")_" "_GMTSW)>200
DO CMCA
SET GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW)
KILL GMTSWL(GMTSW)
QUIT
+4 SET GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW)
KILL GMTSWL(GMTSW)
QUIT
End DoDot:1
+5 FOR
IF $EXTRACT(GMTSCOMP("B"),1)'=" "
QUIT
SET GMTSCOMP("B")=$EXTRACT(GMTSCOMP("B"),2,$LENGTH(GMTSCOMP("B")))
+6 SET GMTSLI=+($ORDER(GMTSCOMP(" "),-1))
IF $DATA(GMTSCOMP("B"))
SET GMTSCOMP((GMTSLI+1))=GMTSCOMP("B")
KILL GMTSCOMP("B")
+7 QUIT
CMCA ; Composite Array Compile (Add String)
+1 NEW I
SET I=+($ORDER(GMTSCOMP(" "),-1))+1
SET GMTSCOMP(I)=GMTSCOMP("B")
SET GMTSCOMP("B")=""
+2 FOR
IF $EXTRACT(GMTSCOMP(I),1)'=" "
QUIT
SET GMTSCOMP(I)=$EXTRACT(GMTSCOMP(I),2,$LENGTH(GMTSCOMP(I)))
+3 QUIT
+4 ;
RDT ; Recommended Display Text
+1 ; Name (used by Location)
+2 IF GMTSKEY["LOC"
Begin DoDot:1
+3 IF '$LENGTH(GMTS5)
QUIT
+4 IF $$UP(GMTS2)'=$$UP(GMTS5)
SET GMTSG=GMTSMN_" (used by "_GMTSLOC
+5 IF $$UP(GMTSMN)=$$UP(GMTSLOC)
SET GMTSG=GMTSMN
End DoDot:1
+6 ; Name (Title)
+7 IF GMTSKEY["TITL"
IF GMTSKEY'["OWN"
Begin DoDot:1
+8 IF '$LENGTH(GMTS3)
QUIT
+9 IF $$UP(GMTS3)=$$UP(GMTS2)
SET GMTSG=GMTS2
QUIT
+10 IF GMTSKEY["TITL"&($$UP(GMTSMN)'=$$UP(GMTSL))
SET GMTSG=GMTSMN_" ("_$$MX(GMTS3)_")"
+11 IF GMTSKEY["TITL"&($$UP(GMTSMN)=$$UP(GMTSL))
SET GMTSG=GMTSMN
End DoDot:1
+12 IF GMTSKEY["TITL"
IF GMTSKEY["OWN"
Begin DoDot:1
+13 IF '$LENGTH(GMTS3)
QUIT
+14 ; Name (Title, Owner) if Title'=Name and Owner
+15 IF $$UP(GMTSMN)'=$$UP(GMTS3)&($LENGTH(GMTS4))
SET GMTSG=GMTSMN_" ("_$$MX(GMTS3)_", HS Owner "_$$OW(GMTSOW)
+16 ; Name (Title) if Title'=Name and no Owner
+17 IF $$UP(GMTSMN)'=$$UP(GMTS3)&('$LENGTH(GMTS4))
SET GMTSG=GMTSMN_" ("_$$MX(GMTSTTL)
+18 ; Name (Owner) if Title=Name and Owner
+19 IF $$UP(GMTSMN)=$$UP(GMTS3)&($LENGTH(GMTS4))
SET GMTSG=GMTSMN_" (HS Owner "_$$OW(GMTSOW)
+20 IF $$UP(GMTSMN)=$$UP(GMTS3)&('$LENGTH(GMTS4))
SET GMTSG=GMTSMN
End DoDot:1
+21 ;
+22 ; Assemble string and store in TMP Global
+23 ; IEN^Name^Title^Owner^Location^Components^Display Text
+24 IF $LENGTH(GMTSG)&(GMTSG'[")")&(GMTSG'["(")&(+GMTS6=0)&($LENGTH(GMTS6))
SET GMTSG=GMTSG_" ("_GMTS6_")"
SET GMTS7=GMTSG
+25 SET ^TMP("GMTSULT",$JOB,GMTSI)=GMTS1_U_GMTS2_U_GMTS3_U_GMTS4_U_GMTS5_U_GMTS6_U_GMTS7
+26 SET ^TMP("GMTSULT",$JOB,0)=GMTSI
+27 QUIT
+28 ;
+29 ; Miscellaneous
UP(X) ; Uppercase
+1 QUIT $TRANSLATE(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
OW(X) ; Mix Case (owner name)
+1 IF $GET(X)'[","
QUIT $$EN^GMTSUMX($GET(X))
+2 QUIT $$EN^GMTSUMX(($PIECE($GET(X),",",1)_", "_$PIECE($GET(X),",",2)))
MX(X) ; Mix Case
+1 QUIT $$EN^GMTSUMX(X)