1 | GMTSULT4 ; SLC/KER - HS Type Lookup (Array) ; 08/27/2002
|
---|
2 | ;;2.7;Health Summary;**30,32,56**;Oct 20, 1995
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10060 ^VA(200,
|
---|
6 | ; DBIA 2056 $$GET1^DIQ (file #200)
|
---|
7 | ; DBIA 10040 ^SC( file #44
|
---|
8 | ;
|
---|
9 | Q
|
---|
10 | NT ; In Name/Title Array
|
---|
11 | Q:$D(GMTSINPT) Q:+GMTSWDS'>0 K GMTSLT D CMN
|
---|
12 | S GMTSFND=0,GMTSLT("W")=+($G(GMTSWDS))
|
---|
13 | N GMTSNT F GMTSI=1:1:GMTSWDS D
|
---|
14 | . Q:'$L(GMTSWRDS(GMTSI))
|
---|
15 | . S GMTSNT=+($$CHKW(GMTSWRDS(GMTSI)))
|
---|
16 | . S:GMTSNT GMTSFND=GMTSFND+1,GMTSLT(GMTSI1)=(+($G(GMTSLT(GMTSI1)))+1)
|
---|
17 | I GMTSFND>0,GMTSFND=GMTSWDS,'$D(GMTSLT(GMTSI1)) S GMTSLT(0)=+($G(GMTSLT(0)))+1
|
---|
18 | ; Reorder
|
---|
19 | S GMTSFND=0 F S GMTSFND=$O(GMTSLT(GMTSFND)) Q:+GMTSFND=0 D
|
---|
20 | . S:+($G(GMTSLT(GMTSFND)))>0&(+($G(GMTSLT(GMTSFND)))=+($G(GMTSLT("W")))) GMTSLT("B",+GMTSFND)=""
|
---|
21 | . K:+($G(GMTSLT(GMTSFND)))>0&(+($G(GMTSLT(GMTSFND)))'=+($G(GMTSLT("W")))) GMTSLT(+GMTSFND)
|
---|
22 | K GMTSLT("W") K:'$D(GMTSLT("B")) GMTSLT
|
---|
23 | S:$D(GMTSLT("B")) GMTSLT("C")=$$MX($P($G(^GMT(142,+($G(GMTSIEN)),0)),"^",1))
|
---|
24 | Q
|
---|
25 | LC ; Location Array (Needs either GMTSIEN or GMTSI1)
|
---|
26 | Q:$D(GMTSINPT) Q:+GMTSWDS'>0
|
---|
27 | I '$D(GMTSI1),$D(GMTSIEN),$D(^GMT(142,+($G(GMTSIEN)),0)) N GMTSI1 S GMTSI1=+($G(GMTSIEN))
|
---|
28 | Q:'$D(GMTSI1)
|
---|
29 | N GMTSF,GMTSI,GMTSI2,GMTSI3,GMTSL,GMTSLC K GMTSLI
|
---|
30 | S GMTSI2=0 F S GMTSI2=$O(^GMT(142,GMTSI1,20,GMTSI2)) Q:+GMTSI2=0 D
|
---|
31 | . S GMTSI3=+($G(^GMT(142,GMTSI1,20,GMTSI2,0)))
|
---|
32 | . S GMTSL=$P($G(^SC(+GMTSI3,0)),"^",1)
|
---|
33 | . S GMTSF=0 I GMTSWDS>0 S GMTSLI("W")=+($G(GMTSWDS))
|
---|
34 | . F GMTSI=1:1:GMTSWDS D
|
---|
35 | . . Q:'$L(GMTSWRDS(GMTSI))
|
---|
36 | . . S:$$UP(GMTSL)[$$UP(GMTSWRDS(GMTSI)) GMTSF=GMTSF+1
|
---|
37 | . I GMTSF=GMTSWDS D
|
---|
38 | . . S:'$D(GMTSLI(GMTSI1,GMTSI2)) GMTSLI(0)=+($G(GMTSLI(0)))+1
|
---|
39 | . . S GMTSLI(GMTSI2)=GMTSF_"^"_GMTSL
|
---|
40 | . . S GMTSLI("I")=GMTSI1
|
---|
41 | S GMTSF=0 F S GMTSF=$O(GMTSLI(GMTSF)) Q:+GMTSF=0 D
|
---|
42 | . S:+($G(GMTSLI(GMTSF)))>0&(+($G(GMTSLI(GMTSF)))=+($G(GMTSLI("W")))) GMTSLI("B",+GMTSF)=""
|
---|
43 | . K:+($G(GMTSLI(GMTSF)))>0&(+($G(GMTSLI(GMTSF)))'=+($G(GMTSLI("W")))) GMTSLI(+GMTSF)
|
---|
44 | K:'$D(GMTSLI("B")) GMTSLI
|
---|
45 | I $D(GMTSLI("B")) D
|
---|
46 | . N GMTSI,GMTSC,GMTST,GMTSE S (GMTSE,GMTSC)=0,GMTST=+($G(GMTSLI(0))) Q:GMTST=0
|
---|
47 | . S GMTSI="",GMTSF=0 F S GMTSF=$O(GMTSLI(GMTSF)) Q:GMTSE Q:+GMTSF=0 D Q:GMTSE
|
---|
48 | . . I ($L($G(GMTSI))+$L($P($G(GMTSLI(GMTSF)),"^",2)))>60 S GMTSI="",GMTSE=1 Q
|
---|
49 | . . S GMTSC=GMTSC+1
|
---|
50 | . . S:GMTSI'=""&(GMTSC>1)&(GMTSC'=GMTST) GMTSI=GMTSI_", "_$$MX($P(GMTSLI(GMTSF),"^",2))
|
---|
51 | . . S:GMTSI'=""&(GMTSC>1)&(GMTSC=GMTST) GMTSI=GMTSI_" and "_$$MX($P(GMTSLI(GMTSF),"^",2))
|
---|
52 | . . S:GMTSI="" GMTSI=$$MX($P(GMTSLI(GMTSF),"^",2))
|
---|
53 | . S:$L(GMTSI) GMTSLI("C")=GMTSI
|
---|
54 | K:'$D(GMTSLI("C")) GMTSLI K GMTSLI("W")
|
---|
55 | Q
|
---|
56 | CHKW(X) ; Check Words
|
---|
57 | S X=$$UP($G(X)) Q:'$L(X) 0
|
---|
58 | 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
|
---|
59 | S X=+($G(OK)) Q X
|
---|
60 | ;
|
---|
61 | CM ; Composite Array
|
---|
62 | K GMTSCOMP S GMTSIEN=+($G(GMTSIEN)) G:GMTSIEN=0 CMQ
|
---|
63 | N GMTSWL,GMTSL,GMTS2
|
---|
64 | D:$D(GMTSNAM) CMP($$UP($$UP(GMTSNAM))) D:'$D(GMTSNAM) CMP($$UP($P($G(^GMT(142,+GMTSIEN,0)),"^",1)))
|
---|
65 | D:$D(GMTSTTL) CMP($$UP($G(GMTSTTL))) D:'$D(GMTSTTL) CMP($$UP($P($G(^GMT(142,+GMTSIEN,"T")),"^",1)))
|
---|
66 | D:$D(GMTSOW) CMP($$UP($G(GMTSOW)))
|
---|
67 | 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)))
|
---|
68 | G:$D(GMTSNO) CMQ
|
---|
69 | S GMTS2=0 F S GMTS2=$O(^GMT(142,GMTSIEN,20,GMTS2)) Q:+GMTS2=0 D
|
---|
70 | . S GMTSL=+($G(^GMT(142,GMTSIEN,20,GMTS2,0)))
|
---|
71 | . S GMTSL=$P($G(^SC(+GMTSL,0)),"^",1) D CMP($$UP(GMTSL))
|
---|
72 | CMQ ; Composite Array Quit
|
---|
73 | D CMC Q
|
---|
74 | CMA ; Composite Array (name only)
|
---|
75 | N GMTSNO D CM Q
|
---|
76 | CMN ; Composite Array (name only)
|
---|
77 | N GMTSNO S GMTSNO="" D CM Q
|
---|
78 | CMP(X) ; Composite Array Word Parse
|
---|
79 | N GMTSX,GMTSP,GMTSC,GMTSW S GMTSX=$G(X) Q:'$L(GMTSX)
|
---|
80 | S GMTSC=1 F GMTSP=1:1:$L(GMTSX)+1 D
|
---|
81 | . S GMTSW=$E(GMTSX,GMTSP) I "(,.?! '-/&:;)"[GMTSW D
|
---|
82 | . . S GMTSW=$E($E(GMTSX,GMTSC,GMTSP-1),1,30),GMTSC=GMTSP+1 I $L(GMTSW)>0 D
|
---|
83 | . . . S:$L(GMTSW) GMTSWL(GMTSW)=""
|
---|
84 | Q
|
---|
85 | CMC ; Composite Array Compile
|
---|
86 | S GMTSCOMP("B")="" N GMTSW,GMTSLI S GMTSW=""
|
---|
87 | F S GMTSW=$O(GMTSWL(GMTSW)) Q:GMTSW="" D
|
---|
88 | . I $L(GMTSCOMP("B")_" "_GMTSW)>200 D CMCA S GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW) K GMTSWL(GMTSW) Q
|
---|
89 | . S GMTSCOMP("B")=GMTSCOMP("B")_" "_$$UP(GMTSW) K GMTSWL(GMTSW) Q
|
---|
90 | F Q:$E(GMTSCOMP("B"),1)'=" " S GMTSCOMP("B")=$E(GMTSCOMP("B"),2,$L(GMTSCOMP("B")))
|
---|
91 | S GMTSLI=+($O(GMTSCOMP(" "),-1)) I $D(GMTSCOMP("B")) S GMTSCOMP((GMTSLI+1))=GMTSCOMP("B") K GMTSCOMP("B")
|
---|
92 | Q
|
---|
93 | CMCA ; Composite Array Compile (Add String)
|
---|
94 | N I S I=+($O(GMTSCOMP(" "),-1))+1 S GMTSCOMP(I)=GMTSCOMP("B"),GMTSCOMP("B")=""
|
---|
95 | F Q:$E(GMTSCOMP(I),1)'=" " S GMTSCOMP(I)=$E(GMTSCOMP(I),2,$L(GMTSCOMP(I)))
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | RDT ; Recommended Display Text
|
---|
99 | ; Name (used by Location)
|
---|
100 | I GMTSKEY["LOC" D
|
---|
101 | . Q:'$L(GMTS5)
|
---|
102 | . S:$$UP(GMTS2)'=$$UP(GMTS5) GMTSG=GMTSMN_" (used by "_GMTSLOC
|
---|
103 | . S:$$UP(GMTSMN)=$$UP(GMTSLOC) GMTSG=GMTSMN
|
---|
104 | ; Name (Title)
|
---|
105 | I GMTSKEY["TITL",GMTSKEY'["OWN" D
|
---|
106 | . Q:'$L(GMTS3)
|
---|
107 | . I $$UP(GMTS3)=$$UP(GMTS2) S GMTSG=GMTS2 Q
|
---|
108 | . S:GMTSKEY["TITL"&($$UP(GMTSMN)'=$$UP(GMTSL)) GMTSG=GMTSMN_" ("_$$MX(GMTS3)_")"
|
---|
109 | . S:GMTSKEY["TITL"&($$UP(GMTSMN)=$$UP(GMTSL)) GMTSG=GMTSMN
|
---|
110 | I GMTSKEY["TITL",GMTSKEY["OWN" D
|
---|
111 | . Q:'$L(GMTS3)
|
---|
112 | . ; Name (Title, Owner) if Title'=Name and Owner
|
---|
113 | . S:$$UP(GMTSMN)'=$$UP(GMTS3)&($L(GMTS4)) GMTSG=GMTSMN_" ("_$$MX(GMTS3)_", HS Owner "_$$OW(GMTSOW)
|
---|
114 | . ; Name (Title) if Title'=Name and no Owner
|
---|
115 | . S:$$UP(GMTSMN)'=$$UP(GMTS3)&('$L(GMTS4)) GMTSG=GMTSMN_" ("_$$MX(GMTSTTL)
|
---|
116 | . ; Name (Owner) if Title=Name and Owner
|
---|
117 | . S:$$UP(GMTSMN)=$$UP(GMTS3)&($L(GMTS4)) GMTSG=GMTSMN_" (HS Owner "_$$OW(GMTSOW)
|
---|
118 | . S:$$UP(GMTSMN)=$$UP(GMTS3)&('$L(GMTS4)) GMTSG=GMTSMN
|
---|
119 | ;
|
---|
120 | ; Assemble string and store in TMP Global
|
---|
121 | ; IEN^Name^Title^Owner^Location^Components^Display Text
|
---|
122 | S:$L(GMTSG)&(GMTSG'[")")&(GMTSG'["(")&(+GMTS6=0)&($L(GMTS6)) GMTSG=GMTSG_" ("_GMTS6_")" S GMTS7=GMTSG
|
---|
123 | S ^TMP("GMTSULT",$J,GMTSI)=GMTS1_U_GMTS2_U_GMTS3_U_GMTS4_U_GMTS5_U_GMTS6_U_GMTS7
|
---|
124 | S ^TMP("GMTSULT",$J,0)=GMTSI
|
---|
125 | Q
|
---|
126 | ;
|
---|
127 | ; Miscellaneous
|
---|
128 | UP(X) ; Uppercase
|
---|
129 | Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
|
---|
130 | OW(X) ; Mix Case (owner name)
|
---|
131 | Q:$G(X)'["," $$EN^GMTSUMX($G(X))
|
---|
132 | Q $$EN^GMTSUMX(($P($G(X),",",1)_", "_$P($G(X),",",2)))
|
---|
133 | MX(X) ; Mix Case
|
---|
134 | Q $$EN^GMTSUMX(X)
|
---|