| 1 | GMTSXAL ; SLC/KER - List Parameters/Get List              ; 02/27/2002
 | 
|---|
| 2 |  ;;2.7;Health Summary;**47,49,66**;Oct 20, 1995
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;                          
 | 
|---|
| 5 |  ; External References in GMTSXAL
 | 
|---|
| 6 |  ;   DBIA  2992  ^XTV(8989.5,
 | 
|---|
| 7 |  ;   DBIA  2056  $$GET1^DIQ
 | 
|---|
| 8 |  ;   DBIA  2263  GETLST^XPAR
 | 
|---|
| 9 |  ;                
 | 
|---|
| 10 | GETLIST(GMTSL,GMTSUSR,GBL,ERR) ; Get Health Summary Type Parameter List
 | 
|---|
| 11 |  N GMTSCP,GMTSCPL,GMTSPRE,GMTSDEF,ROOT
 | 
|---|
| 12 |  I '$G(GBL) K GMTSL S ROOT=$NA(GMTSL)
 | 
|---|
| 13 |  I $G(GBL) D  Q:$G(ERR)
 | 
|---|
| 14 |  . I $E($G(GMTSL),1)'="^" S ERR="19^"_$$EZBLD^DIALOG(19) Q
 | 
|---|
| 15 |  . S ROOT=GMTSL
 | 
|---|
| 16 |  S @ROOT=0
 | 
|---|
| 17 |  S GMTSUSR=+($G(GMTSUSR)) Q:+GMTSUSR'>0  Q:'$L($$UNM^GMTSXAW3(GMTSUSR))
 | 
|---|
| 18 |  S GMTSCPL=$$CPL(GMTSUSR),GMTSPRE=$$PRE(GMTSUSR)
 | 
|---|
| 19 |  D GETLST(.ROOT,GMTSUSR,GMTSCPL,GMTSPRE)
 | 
|---|
| 20 |  I $D(GMTSIDX) D
 | 
|---|
| 21 |  . S @ROOT@("AC","PRE")=GMTSPRE,@ROOT@("AC","CPL")=GMTSCPL_"^"_$S(+($G(GMTSCPL))'>0:"Overwrite",1:"Append")
 | 
|---|
| 22 |  . N GMTSI,GMTST,GMTSTO,GMTSTC,GMTSTCT,GMTSV,GMTSC
 | 
|---|
| 23 |  . S GMTSTO="",(GMTSC,GMTSTC,GMTSTCT,GMTSI)=0
 | 
|---|
| 24 |  . F  S GMTSI=$O(@ROOT@(GMTSI)) Q:+GMTSI=0  D
 | 
|---|
| 25 |  . . S GMTSV=$G(@ROOT@(GMTSI)),GMTST=$G(@ROOT@("C",GMTSI)) Q:'$L(GMTST)
 | 
|---|
| 26 |  . . S GMTSC=GMTSC+1,@ROOT@("A",GMTST,0)=GMTSC,@ROOT@("A",GMTST,GMTSC)=GMTSV
 | 
|---|
| 27 |  . . S:GMTST'=GMTSTO GMTSTC=GMTSTC+1,GMTSTCT=0
 | 
|---|
| 28 |  . . S GMTSTCT=GMTSTCT+1
 | 
|---|
| 29 |  . . S @ROOT@("AB",0)=GMTSTC,@ROOT@("AB",+GMTSTC,0)=GMTSTCT,@ROOT@("AB",+GMTSTC,GMTSTCT)=GMTST_"^"_GMTSV,GMTSTO=GMTST
 | 
|---|
| 30 |  . K @ROOT@("B"),@ROOT@("C") S GMTST="" F  S GMTST=$O(@ROOT@("A",GMTST)) Q:GMTST=""  D
 | 
|---|
| 31 |  . . S GMTSI=0 F  S GMTSI=$O(@ROOT@("A",GMTST,GMTSI)) Q:+GMTSI=0  D
 | 
|---|
| 32 |  . . . S GMTSC=+($G(@ROOT@("A",GMTST,GMTSI)))
 | 
|---|
| 33 |  . . . S GMTSV=$P($G(@ROOT@("A",GMTST,GMTSI)),"^",2)
 | 
|---|
| 34 |  . . . S:+GMTSC>0 @ROOT@("B",+GMTSC,GMTSI)=""
 | 
|---|
| 35 |  . . . S:$L(GMTSV)>0 @ROOT@("BA",GMTSV,GMTSI)=""
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;                      
 | 
|---|
| 38 | GETILIST(GMTSL,GMTSUSR) ; Get Indexed Health Summary Types Parameter List
 | 
|---|
| 39 |  S GMTSUSR=+($G(GMTSUSR)) Q:GMTSUSR=0  Q:'$L($$UNM^GMTSXAW3(GMTSUSR))
 | 
|---|
| 40 |  N GMTSIDX S GMTSIDX=1 D GETLIST(.GMTSL,GMTSUSR)
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 |  ;                            
 | 
|---|
| 43 | GETLST(ROOT,GMTSUSR,GMTSCPL,GMTSPRE) ; Get List
 | 
|---|
| 44 |  ;                            
 | 
|---|
| 45 |  ; Health Summary Version of call in GETHS^ORWRP:
 | 
|---|
| 46 |  ;                         
 | 
|---|
| 47 |  ;   D GETLST^XPAR(.ORHSPARM,"ALL",
 | 
|---|
| 48 |  ;                   "ORWRP HEALTH SUMMARY TYPE LIST","N")
 | 
|---|
| 49 |  ;                            
 | 
|---|
| 50 |  ; Merges Health Summary Parameters for display in the
 | 
|---|
| 51 |  ; Health Summary Types on the Reports Tab.  National
 | 
|---|
| 52 |  ; Health Summary Types (remote data views) are grouped 
 | 
|---|
| 53 |  ; together and added to the list separately.  For a 
 | 
|---|
| 54 |  ; National Health Summary Type to be included on the list,
 | 
|---|
| 55 |  ; it must first be defined in the parameters file.
 | 
|---|
| 56 |  ; The merge of parameters is accomplished by either 
 | 
|---|
| 57 |  ; appending or over-writing the parameters to the list.
 | 
|---|
| 58 |  ;                            
 | 
|---|
| 59 |  ; Input Variables
 | 
|---|
| 60 |  ;                    
 | 
|---|
| 61 |  ;   GMTSL    Local Array of Health Summary Parameters 
 | 
|---|
| 62 |  ;                            
 | 
|---|
| 63 |  ;   GMTSCPL  Compile Method
 | 
|---|
| 64 |  ;                            
 | 
|---|
| 65 |  ;     GMTSCPL=1   <DEFAULT>  Append Parameters to List
 | 
|---|
| 66 |  ;     GMTSCPL=0   Overwrite Parameters (by entity)
 | 
|---|
| 67 |  ;                            
 | 
|---|
| 68 |  ;   GMTSPRE  Precedence of Entities
 | 
|---|
| 69 |  ;                            
 | 
|---|
| 70 |  ;     Having defined how the list is to be created using
 | 
|---|
| 71 |  ;     GMTSCPL (Append or Overwrite), this variable 
 | 
|---|
| 72 |  ;     defines the order that each entity will be 
 | 
|---|
| 73 |  ;     referenced (first, second, etc.)
 | 
|---|
| 74 |  ;                            
 | 
|---|
| 75 |  ;       FORMAT   Series of 3 Characters, Uppercase taken
 | 
|---|
| 76 |  ;                from the PARAMETER ENTITY file delimited
 | 
|---|
| 77 |  ;                by semi-colons
 | 
|---|
| 78 |  ;                            
 | 
|---|
| 79 |  ;                Default value:  $$DEF^GMTSXAW
 | 
|---|
| 80 |  ;                            
 | 
|---|
| 81 | LST ; Create List
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  N DIC,DTOUT,DUOUT,GMTSE,GMTSENT,GMTSER,GMTSI,GMTSLI,GMTSLL,GMTSLN
 | 
|---|
| 84 |  N GMTSPAR,GMTSYS,GMTSAD,GMTSAR,GMTST,GMTSV,GMTSVAL,GMTSII
 | 
|---|
| 85 |  N GMTSUP,GMTSEI,GMTSIV,GMTSEV,GMTSN,GMTSCHK,X,Y
 | 
|---|
| 86 |  K ^TMP($J,"GMTSLL"),^TMP($J,"GMTSLN"),^TMP($J,"GMTSTYP")
 | 
|---|
| 87 |  S GMTSUSR=+($G(GMTSUSR)) Q:GMTSUSR=0  Q:'$L($$UNM^GMTSXAW3(GMTSUSR))
 | 
|---|
| 88 |  S GMTSCPL=$G(GMTSCPL),GMTSPRE=$G(GMTSPRE)
 | 
|---|
| 89 |  S:'$L(GMTSCPL) GMTSCPL=0 S:'$L(GMTSPRE) GMTSPRE=$$DEF^GMTSXAW
 | 
|---|
| 90 |  S (GMTSPAR,X)="ORWRP HEALTH SUMMARY TYPE LIST"
 | 
|---|
| 91 |  S GMTSAD="GMTS HS ADHOC OPTION",GMTSAR="GMTS HS REMOTE ADHOC OPTION"
 | 
|---|
| 92 |  S GMTSYS=$$SYSV^GMTSXAW3,GMTSUP=$$UVP^GMTSXAW3(+GMTSUSR),GMTSPAR=+($$PDI^GMTSXAW3(GMTSPAR)) Q:GMTSPAR'>0  S GMTSENT="",U="^"
 | 
|---|
| 93 |  D CHK^GMTSXAW(.GMTSCHK,GMTSUSR,"GMTS")
 | 
|---|
| 94 |  F  S GMTSENT=$O(^XTV(8989.5,"AC",GMTSPAR,GMTSENT)) Q:GMTSENT=""  D BYE
 | 
|---|
| 95 |  K @ROOT D BUILD^GMTSXAB
 | 
|---|
| 96 |  K:'$D(GMTSIDX) @ROOT@("B"),@ROOT@("C") S (GMTSI,GMTSN)=0
 | 
|---|
| 97 |  F  S GMTSI=$O(@ROOT@(GMTSI)) Q:+GMTSI=0  S GMTSN=GMTSN+1
 | 
|---|
| 98 |  S:+GMTSN>0 GMTSL=GMTSN
 | 
|---|
| 99 |  K ^TMP($J,"GMTSLL"),^TMP($J,"GMTSLN"),^TMP($J,"GMTSTYP")
 | 
|---|
| 100 |  Q 
 | 
|---|
| 101 | BYE ;   By Entity
 | 
|---|
| 102 |  Q:'$L(GMTSENT)  Q:GMTSENT'[";"  Q:+GMTSENT=0  Q:'$L($P(GMTSENT,";",2))  Q:'$D(GMTSCHK("CHK",GMTSENT))
 | 
|---|
| 103 |  S GMTSVAL=$P($G(@(U_$P(GMTSENT,";",2)_+($P(GMTSENT,";",1))_",0)")),U,1)
 | 
|---|
| 104 |  Q:'$L(GMTSVAL)  K GMTSL,GMTSER Q:'$L($G(GMTSPAR))  Q:'$L($G(GMTSENT))
 | 
|---|
| 105 |  D GETLST^XPAR(.GMTSL,GMTSENT,GMTSPAR,"B",.GMTSER) Q:+($G(GMTSER))>0
 | 
|---|
| 106 |  S GMTSLI=0 F  S GMTSLI=$O(GMTSL(GMTSLI)) Q:+GMTSLI=0  D BYP
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | BYP ;   By Parameter
 | 
|---|
| 109 |  S GMTST=$$ABR^GMTSXAW3(GMTSENT) N GMTSII,GMTSEI,GMTSIV,GMTSEV,GMTSIEN,GMTSVAL,GMTSND,GMTSNM,GMTSHT
 | 
|---|
| 110 |  S GMTSII=$P($G(GMTSL(GMTSLI,"N")),"^",1) Q:'$L(GMTSII)
 | 
|---|
| 111 |  S GMTSEI=$P($G(GMTSL(GMTSLI,"N")),"^",2) Q:'$L(GMTSEI)
 | 
|---|
| 112 |  S GMTSIV=$P($G(GMTSL(GMTSLI,"V")),"^",1) Q:'$L(GMTSIV)
 | 
|---|
| 113 |  S GMTSEV=$P($G(GMTSL(GMTSLI,"V")),"^",2) Q:'$L(GMTSEV)
 | 
|---|
| 114 |  S GMTST=$S(GMTSPRE["NAT"&(+($G(^GMT(142,+GMTSIV,"VA")))>0):"NAT",1:$G(GMTST))
 | 
|---|
| 115 |  S GMTSND=$S(GMTSPRE["NAT"&(+($G(^GMT(142,+GMTSIV,"VA")))>0):"^TMP($J,""GMTSLN"")",1:"^TMP($J,""GMTSLL"")")
 | 
|---|
| 116 |  D SAV
 | 
|---|
| 117 |  Q
 | 
|---|
| 118 | SAV ;   Save Parameters
 | 
|---|
| 119 |  N GMTSI Q:'$L($G(GMTSL(GMTSLI,"V")))  S GMTSVAL=GMTSL(GMTSLI,"V"),GMTSHT=+GMTSVAL,GMTSNM=$P(GMTSVAL,"^",2)
 | 
|---|
| 120 |  S GMTSI=(+($O(@GMTSND@(" "),-1)+1))
 | 
|---|
| 121 |  I GMTSNM=GMTSAD!(GMTSNM=GMTSAR) D SAVD Q
 | 
|---|
| 122 |  S @GMTSND@(GMTSI,"N")=$G(GMTSL(GMTSLI,"N"))
 | 
|---|
| 123 |  S @GMTSND@(GMTSI,"V")=$G(GMTSVAL)
 | 
|---|
| 124 |  S @GMTSND@(GMTSI,"E")=$G(GMTSENT)
 | 
|---|
| 125 |  S ^TMP($J,"GMTSTYP",GMTST,GMTSI)=$G(GMTSVAL)
 | 
|---|
| 126 |  S:$L(GMTSNM) ^TMP($J,"GMTSTYP",GMTST,"B",GMTSNM,GMTSI)=""
 | 
|---|
| 127 |  S:GMTSHT>0 ^TMP($J,"GMTSTYP",GMTST,"C",GMTSHT,GMTSI)=""
 | 
|---|
| 128 |  Q
 | 
|---|
| 129 | SAVD ;   Save Adhoc and Remote Adhoc Parameters
 | 
|---|
| 130 |  N GMTSAT,GMTSC,GMTSI S GMTSND=$G(GMTSND) Q:'$L(GMTSND)  Q:GMTSND="^TMP($J,""GMTSLN"")"
 | 
|---|
| 131 |  I GMTSNM=GMTSAD S GMTSI=(+($O(@GMTSND@("ADH"," "),-1)+1)),GMTSAT="ADH"
 | 
|---|
| 132 |  I GMTSNM=GMTSAR S GMTSI=(+($O(@GMTSND@("RAD"," "),-1)+1)),GMTSAT="RAD"
 | 
|---|
| 133 |  Q:'$L($G(GMTST))  Q:'$L($G(GMTSAT))  Q:'$L($G(GMTSNM))  Q:'$L($G(GMTSVAL))  Q:'$L($G(GMTSHT))  Q:$D(^TMP($J,"GMTSTYP",GMTST,GMTSAT,"B",GMTSNM))
 | 
|---|
| 134 |  S @GMTSND@("GMTSAT",GMTSI,"N")=$G(GMTSL(GMTSLI,"N"))
 | 
|---|
| 135 |  S @GMTSND@("GMTSAT",GMTSI,"V")=$G(GMTSL(GMTSLI,"V"))
 | 
|---|
| 136 |  S @GMTSND@("GMTSAT",GMTSI,"E")=$G(GMTSENT)
 | 
|---|
| 137 |  S @GMTSND@("GMTSAT","B",GMTSVAL,GMTSI)=""
 | 
|---|
| 138 |  S @GMTSND@("GMTSAT","C",GMTSEI_"^"_GMTSVAL,GMTSI)=""
 | 
|---|
| 139 |  S GMTSC=+($O(@GMTSND@("GMTST",GMTSAT," "),-1))+1
 | 
|---|
| 140 |  S ^TMP($J,"GMTSTYP",GMTST,GMTSAT,GMTSC)=$G(GMTSVAL)
 | 
|---|
| 141 |  S:$L(GMTSNM) ^TMP($J,"GMTSTYP",GMTST,GMTSAT,"B",GMTSNM,GMTSC)=""
 | 
|---|
| 142 |  S:GMTSHT>0 ^TMP($J,"GMTSTYP",GMTST,GMTSAT,"C",GMTSHT,GMTSC)=""
 | 
|---|
| 143 |  Q
 | 
|---|
| 144 |  ;                            
 | 
|---|
| 145 |  ; Miscellaneous
 | 
|---|
| 146 | NUM(X) ;   Number of Types for User X
 | 
|---|
| 147 |  N GMTSUSR,GMTSL,GMTSI,GMTSN S GMTSUSR=+($G(X)),(GMTSI,GMTSN)=0 Q:GMTSUSR=0 0 Q:'$L($$UNM^GMTSXAW3(GMTSUSR)) 0
 | 
|---|
| 148 |  D GETLIST(.GMTSL,GMTSUSR) Q:+($G(GMTSL))>0 +($G(GMTSL))
 | 
|---|
| 149 |  F  S GMTSI=$O(GMTSL(GMTSI)) Q:+GMTSI=0  S GMTSN=GMTSN+1
 | 
|---|
| 150 |  S X=GMTSN Q X
 | 
|---|
| 151 | DEF(X) ; Defaults    <compile> ^ <precedence> 
 | 
|---|
| 152 |  N DIERR,GMTSUSR,GMTSSIC,GMTSSIP,GMTSSCPL,GMTSPRE
 | 
|---|
| 153 |  S GMTSSIC=1,GMTSSIP=$$DEF^GMTSXAW
 | 
|---|
| 154 |  S GMTSUSR=+($G(X)),X=""
 | 
|---|
| 155 |  Q:+GMTSUSR=0 (GMTSSIC_"^"_GMTSSIP)
 | 
|---|
| 156 |  Q:'$L($$UNM^GMTSXAW3(+GMTSUSR)) (GMTSSIC_"^"_GMTSSIP)
 | 
|---|
| 157 |  S GMTSCPL=$$GET1^DIQ(142.98,(GMTSUSR_","),10,"I")
 | 
|---|
| 158 |  S:GMTSCPL="" GMTSCPL=GMTSSIC
 | 
|---|
| 159 |  S GMTSPRE=$$GET1^DIQ(142.98,(GMTSUSR_","),11)
 | 
|---|
| 160 |  S:GMTSPRE="" GMTSPRE=GMTSSIP
 | 
|---|
| 161 |  S X=GMTSCPL_"^"_GMTSPRE
 | 
|---|
| 162 |  Q X
 | 
|---|
| 163 | CPL(X) ;   Compile Method
 | 
|---|
| 164 |  N DIERR,GMTSITE,GMTSUSR,GMTSCPL S GMTSUSR=+($G(X))
 | 
|---|
| 165 |  S GMTSITE=$P($G(^GMT(142.98,"ASITE")),"^",1)
 | 
|---|
| 166 |  S GMTSITE=$S($L(GMTSITE):+GMTSITE,1:1) I GMTSUSR=.5 S X=GMTSITE Q X
 | 
|---|
| 167 |  S GMTSCPL=$$GET1^DIQ(142.98,(GMTSUSR_","),10,"I")
 | 
|---|
| 168 |  S:'$L(GMTSCPL) GMTSCPL=GMTSITE
 | 
|---|
| 169 |  S X=GMTSCPL
 | 
|---|
| 170 |  Q X
 | 
|---|
| 171 | PRE(X) ;   Precedence
 | 
|---|
| 172 |  N GMTSUSR,GMTSPRE,GMTSDEF,GMTSC,GMTSI,GMTSA,GMTS S GMTSUSR=+($G(X))
 | 
|---|
| 173 |  S (GMTSDEF,X)=$$DEF^GMTSXAW Q:+GMTSUSR=0 X  S GMTSPRE=$$GET1^DIQ(142.98,(GMTSUSR_","),11),GMTSC="^"_$TR($$DEF^GMTSXAW,";","^")_"^"
 | 
|---|
| 174 |  S GMTS="" F GMTSI=1:1 Q:GMTSI>$L(GMTSPRE,";")  D
 | 
|---|
| 175 |  . S GMTSA=$P($G(GMTSPRE),";",GMTSI) Q:$L(GMTSA)'=3  Q:GMTSA'="NAT"&(GMTSC'[("^"_GMTSA_"^"))  Q:GMTS[(";"_GMTSA)  S GMTS=GMTS_";"_GMTSA
 | 
|---|
| 176 |  S GMTSPRE=$$TRIM^GMTSXA(GMTS,";") S:'$L(GMTSPRE) GMTSPRE=GMTSDEF
 | 
|---|
| 177 |  S X=GMTSPRE
 | 
|---|
| 178 |  Q X
 | 
|---|