| 1 | GMTSULT3 ; SLC/KER - HS Type Lookup (Save)          ; 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 | ; | 
|---|
| 8 | Q | 
|---|
| 9 | SM ; Save match | 
|---|
| 10 | ; | 
|---|
| 11 | ;   GMTSIEN    Type Internal Entry Number | 
|---|
| 12 | ;   GMTSKWRD   Keyword from AW index | 
|---|
| 13 | ;   GMTSWRDS   Parsed word array | 
|---|
| 14 | ;   GMTSEO     Exact Match (One)      OE | 
|---|
| 15 | ;   GMTSEQ     Exact Match Required   X | 
|---|
| 16 | ;   GMTSIF     Interal Entry Number   N | 
|---|
| 17 | ; | 
|---|
| 18 | S GMTSIEN=+($G(GMTSIEN)),GMTSKWRD=$G(GMTSKWRD),GMTSEO=+($G(GMTSEO)),GMTSEQ=+($G(GMTSEQ)),GMTSIF=+($G(GMTSIF)),U="^" | 
|---|
| 19 | N GMTSCOMP,GMTSCF,GMTSWRD,GMTSWDS,GMTSEQ,GMTSLOK,GMTSOK,GMTSLT,GMTSLI,GMTSASM,GMTSI1,GMTSI2,GMTSI3,GMTSNAM,GMTSTTL,GMTSOW,GMTSLOC,GMTSCMP,GMTSRC | 
|---|
| 20 | S (GMTSNAM,GMTSTTL,GMTSOW,GMTSLOC,GMTSCMP,GMTSRC)="",GMTSLOK=0,GMTSRC="Name",GMTSWRD=$G(GMTSWRDS(1)),GMTSWDS=+($O(GMTSWRDS(" "),-1)) | 
|---|
| 21 | ; Get Internal Entry Number (IEN) | 
|---|
| 22 | S GMTSI1=+($G(GMTSIEN)) Q:'$D(^GMT(142,GMTSI1,0)) | 
|---|
| 23 | ; Check Screen - DIC("S") | 
|---|
| 24 | S GMTSOK=1 I $L($G(GMTSDICS)) S GMTSOK=$$DICS^GMTSULT2(GMTSDICS,X,GMTSI1) Q:'GMTSOK | 
|---|
| 25 | ; Get Health Summary Type | 
|---|
| 26 | ;   Components | 
|---|
| 27 | S GMTSCMP=$$CM^GMTSULT2(+GMTSI1) | 
|---|
| 28 | ;   Name | 
|---|
| 29 | S GMTSNAM=$P($G(^GMT(142,+GMTSI1,0)),U,1) | 
|---|
| 30 | ;   Title | 
|---|
| 31 | S GMTSTTL=$P($G(^GMT(142,+GMTSI1,"T")),U,1) | 
|---|
| 32 | S:$L(GMTSTTL) GMTSRC="Title" | 
|---|
| 33 | ;   Owner | 
|---|
| 34 | S GMTSOW=+($P($G(^GMT(142,+GMTSI1,0)),U,3)) S:GMTSOW<1 GMTSOW="" | 
|---|
| 35 | S:+GMTSOW>0 GMTSOW=$$GET1^DIQ(200,(+GMTSOW_","),.01) | 
|---|
| 36 | I $L($G(GMTSKWRD)) S:$L(GMTSOW)&(GMTSOW[GMTSKWRD) GMTSRC="Title/Owner" | 
|---|
| 37 | ;   Name/Title | 
|---|
| 38 | D NT^GMTSULT4 | 
|---|
| 39 | ;   Location | 
|---|
| 40 | D LC^GMTSULT4 | 
|---|
| 41 | S:'$L($G(GMTSLT("C")))&($L($G(GMTSLI("C")))) GMTSLOC=$G(GMTSLI("C")) | 
|---|
| 42 | ; Get Composite String | 
|---|
| 43 | D CMA^GMTSULT4 | 
|---|
| 44 | ; Find words in string | 
|---|
| 45 | S (GMTSCF,GMTSFND)=0 I GMTSWDS>0 F GMTSI=1:1:GMTSWDS D | 
|---|
| 46 | . Q:'$L(GMTSWRDS(GMTSI)) | 
|---|
| 47 | . S GMTSCF=+($$CHKW^GMTSULT4(GMTSWRDS(GMTSI))) | 
|---|
| 48 | . S:GMTSCF GMTSFND=GMTSFND+1 | 
|---|
| 49 | . S:$L(GMTSOW)&(GMTSOW[$$UP^GMTSULT2(GMTSWRDS(GMTSI))) GMTSRC="Title/Owner" | 
|---|
| 50 | ; | 
|---|
| 51 | ; If input is not an Internal Entry Number    +GMTSIF=0 | 
|---|
| 52 | ; and not all of the words were found          GMTSFND'=GMTSWDS | 
|---|
| 53 | ; then quit | 
|---|
| 54 | ; | 
|---|
| 55 | Q:'(+($G(GMTSIF)))&(GMTSFND'=GMTSWDS) | 
|---|
| 56 | ; | 
|---|
| 57 | ; Save Health Summary Type | 
|---|
| 58 | ;   Exact match only        DIC(0)["O" & DIC(0)["E" | 
|---|
| 59 | I '(+($G(GMTSIF))),+($G(GMTSEO)),($$UP^GMTSULT2(GMTSNAM)'=$$UP^GMTSULT2(X)&($$UP^GMTSULT2(GMTSLOC)'=$$UP^GMTSULT2(X))) Q | 
|---|
| 60 | S:$L(GMTSLOC) GMTSRC="Location" | 
|---|
| 61 | ;   Quit if Health Summary is already saved | 
|---|
| 62 | Q:$D(^TMP("GMTSULT2",$J,"IEN",+GMTSI1))&(+($G(^TMP("GMTSULT2",$J,"EM")))'=+GMTSI1) | 
|---|
| 63 | ; | 
|---|
| 64 | ;   Assemble string and store in TMP Global | 
|---|
| 65 | ;      IEN^Name^Title^Owner^Location^Components^Source | 
|---|
| 66 | S GMTSC=+($O(^TMP("GMTSULT2",$J," "),-1))+1 | 
|---|
| 67 | S GMTSASM=GMTSI1_U_GMTSNAM_U_GMTSTTL_U_GMTSOW_U_GMTSLOC_U_GMTSCMP_U_GMTSRC | 
|---|
| 68 | S ^TMP("GMTSULT2",$J,"IEN",+GMTSI1)="",^TMP("GMTSULT2",$J,GMTSC)=GMTSASM,^TMP("GMTSULT2",$J,"B",(GMTSNAM_" "),GMTSC)="" | 
|---|
| 69 | S:+($G(^TMP("GMTSULT2",$J,"EM")))=GMTSI1 ^TMP("GMTSULT2",$J,"EMI")=GMTSC,^TMP("GMTSULT2",$J,"EMB")=GMTSNAM_" " | 
|---|
| 70 | Q | 
|---|
| 71 | ; | 
|---|
| 72 | REO ; Reorder List | 
|---|
| 73 | S GMTSEO=+($G(GMTSEO)),GMTSEQ=+($G(GMTSEQ)),GMTSIF=+($G(GMTSIF)) | 
|---|
| 74 | N GMTSC,GMTSFND,GMTSG,GMTSI,GMTSIEN,GMTSKEY,GMTSL,GMTSCMP,GMTSOW,GMTSTTL,GMTSLOC,GMTSMN,GMTSNM | 
|---|
| 75 | S GMTSI=0,GMTSFND="" | 
|---|
| 76 | ;   Add exact match to the top of the selection list | 
|---|
| 77 | I '$D(^TMP("GMTSULT2",$J,"E")),+($G(GMTSEO)) K ^TMP("GMTSULT2",$J) | 
|---|
| 78 | I $D(^TMP("GMTSULT2",$J,"E")) D | 
|---|
| 79 | . S GMTSI=0,GMTSC="E" D ADD | 
|---|
| 80 | . S ^TMP("GMTSULT",$J,0)=GMTSI | 
|---|
| 81 | . K ^TMP("GMTSULT2",$J,"E") | 
|---|
| 82 | . ;   Kill global (quit) if Exact Match is found | 
|---|
| 83 | . ;     and DIR(0) either contains OE or X | 
|---|
| 84 | . K:+($G(GMTSEQ)) ^TMP("GMTSULT2",$J) K:+($G(GMTSEO)) ^TMP("GMTSULT2",$J) | 
|---|
| 85 | ;   Kill global (quit) if Exact Match is not | 
|---|
| 86 | ;     found and DIR(0)["OE" | 
|---|
| 87 | I '$D(^TMP("GMTSULT2",$J,"E")),+($G(GMTSEO)) K ^TMP("GMTSULT2",$J) | 
|---|
| 88 | ;   Add remaining entries in Alphabetical Order | 
|---|
| 89 | F  S GMTSFND=$O(^TMP("GMTSULT2",$J,"B",GMTSFND)) Q:GMTSFND=""  D | 
|---|
| 90 | . S GMTSC=0 F  S GMTSC=$O(^TMP("GMTSULT2",$J,"B",GMTSFND,GMTSC)) Q:+GMTSC=0  D | 
|---|
| 91 | . . D ADD | 
|---|
| 92 | D CLEAN^GMTSULT | 
|---|
| 93 | Q | 
|---|
| 94 | ; | 
|---|
| 95 | ADD ; Add to list in appropriate order | 
|---|
| 96 | N GMTS0,GMTS1,GMTS2,GMTS3,GMTS4,GMTS5,GMTS6,GMTS7 | 
|---|
| 97 | S GMTSI=+($G(GMTSI))+1,GMTS0=$G(^TMP("GMTSULT2",$J,GMTSC)) | 
|---|
| 98 | ; | 
|---|
| 99 | ;   Piece    Data Element | 
|---|
| 100 | ; | 
|---|
| 101 | ;     1      Internal Entry Number | 
|---|
| 102 | S (GMTS1,GMTSIEN)=+($P(GMTS0,U,1)) | 
|---|
| 103 | ;     2      Health Summary Name | 
|---|
| 104 | S (GMTSG,GMTSMN,GMTS2)=$$MX^GMTSULT2($P(GMTS0,U,2)) | 
|---|
| 105 | S GMTSNM=$$UP^GMTSULT2(GMTSMN) | 
|---|
| 106 | ;     3      Health Summary Title | 
|---|
| 107 | S (GMTS3,GMTSTTL)=$$MX^GMTSULT2($P(GMTS0,U,3)),GMTSTTL=GMTSTTL_")" | 
|---|
| 108 | ;     4      Health Summary Owner | 
|---|
| 109 | S (GMTS4,GMTSOW)=$$MX^GMTSULT2($P(GMTS0,U,4)),GMTSOW=GMTSOW_")" | 
|---|
| 110 | ;     5      Health Summary Location | 
|---|
| 111 | S (GMTS5,GMTSLOC)=$$MX^GMTSULT2($P(GMTS0,U,5)),GMTSLOC=GMTSLOC_")" | 
|---|
| 112 | ;     6      Health Summary Components | 
|---|
| 113 | S (GMTS6,GMTSCMP)=$P(GMTS0,U,6) | 
|---|
| 114 | S GMTSL=$P(GMTS0,U,4) | 
|---|
| 115 | ;     7      Recommended Display Text | 
|---|
| 116 | S GMTSKEY=$$UP^GMTSULT2($P(GMTS0,U,7)) | 
|---|
| 117 | ; | 
|---|
| 118 | ;   Recommended Display Text | 
|---|
| 119 | D RDT^GMTSULT4 | 
|---|
| 120 | ; | 
|---|
| 121 | ;   Assemble string and store in TMP Global | 
|---|
| 122 | ;      IEN^Name^Title^Owner^Location^Components^Display Text | 
|---|
| 123 | S:$L(GMTSG)&(GMTSG'[")")&(GMTSG'["(")&(+GMTS6=0)&($L(GMTS6)) GMTSG=GMTSG_" ("_GMTS6_")" S GMTS7=GMTSG | 
|---|
| 124 | S ^TMP("GMTSULT",$J,GMTSI)=GMTS1_U_GMTS2_U_GMTS3_U_GMTS4_U_GMTS5_U_GMTS6_U_GMTS7 | 
|---|
| 125 | S ^TMP("GMTSULT",$J,0)=GMTSI | 
|---|
| 126 | Q | 
|---|