Produced by Araxis Merge on 2/17/2017 4:27:35 PM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | VSA P2.5 v3.0.12.zip\src.zip\vsa_vistajs_source_v3.0\vsa-mcode\kids | XU_8_659_V9.KID | Mon Jan 16 21:20:00 2017 UTC |
| 2 | VSA P2.5 v3.0.12.zip\src.zip\vsa_vistajs_source_v3.0\vsa-mcode\kids | XU_8_659_V9.KID | Fri Feb 17 04:23:00 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 7 | 16860 |
| Changed | 6 | 12 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | KIDS Distr ibution sa ved on Mar 09, 2016@ 22:50:20 | |
| 2 | KERNEL | |
| 3 | **KIDS**:X U*8.0*659^ | |
| 4 | ||
| 5 | **INSTALL NAME** | |
| 6 | XU*8.0*659 | |
| 7 | "BLD",1548 ,0) | |
| 8 | XU*8.0*659 ^KERNEL^0^ 3160308^y | |
| 9 | "BLD",1548 ,1,0) | |
| 10 | ^^8^8^3160 308^ | |
| 11 | "BLD",1548 ,1,1,0) | |
| 12 | This patch provides enhancemen ts needed to impleme nt Single Sign-On | |
| 13 | "BLD",1548 ,1,2,0) | |
| 14 | Internal ( SSOi) for identifica tion and a uthenticat ion of use rs into Vi stA. | |
| 15 | "BLD",1548 ,1,3,0) | |
| 16 | ||
| 17 | "BLD",1548 ,1,4,0) | |
| 18 | The use of these uti lities are expected to improve security and auditi ng | |
| 19 | "BLD",1548 ,1,5,0) | |
| 20 | capabiliti es in acco rdance wit h VA Handb ook 6500 A ppendix F and revisi on 4 | |
| 21 | "BLD",1548 ,1,6,0) | |
| 22 | of NIST SP 800-53. A s required by FIPS 1 99 and usi ng guidanc e from NIS T SP | |
| 23 | "BLD",1548 ,1,7,0) | |
| 24 | 800-60, th e recommen ded securi ty categor ization fo r these ap plications is | |
| 25 | "BLD",1548 ,1,8,0) | |
| 26 | HIGH. | |
| 27 | "BLD",1548 ,4,0) | |
| 28 | ^9.64PA^89 89.3^2 | |
| 29 | "BLD",1548 ,4,3.081,0 ) | |
| 30 | 3.081 | |
| 31 | "BLD",1548 ,4,3.081,2 ,0) | |
| 32 | ^9.641^3.0 81^1 | |
| 33 | "BLD",1548 ,4,3.081,2 ,3.081,0) | |
| 34 | SIGN-ON LO G (File-t op level) | |
| 35 | "BLD",1548 ,4,3.081,2 ,3.081,1,0 ) | |
| 36 | ^9.6411^10 1^1 | |
| 37 | "BLD",1548 ,4,3.081,2 ,3.081,1,1 01,0) | |
| 38 | LEVEL OF A SSURANCE | |
| 39 | "BLD",1548 ,4,3.081,2 22) | |
| 40 | y^y^p^^^^n ^^n | |
| 41 | "BLD",1548 ,4,3.081,2 24) | |
| 42 | ||
| 43 | "BLD",1548 ,4,8989.3, 0) | |
| 44 | 8989.3 | |
| 45 | "BLD",1548 ,4,8989.3, 2,0) | |
| 46 | ^9.641^898 9.3^1 | |
| 47 | "BLD",1548 ,4,8989.3, 2,8989.3,0 ) | |
| 48 | KERNEL SYS TEM PARAME TERS (Fil e-top leve l) | |
| 49 | "BLD",1548 ,4,8989.3, 2,8989.3,1 ,0) | |
| 50 | ^9.6411^20 0.3^3 | |
| 51 | "BLD",1548 ,4,8989.3, 2,8989.3,1 ,200.1,0) | |
| 52 | SECURITY T OKEN SERVI CE | |
| 53 | "BLD",1548 ,4,8989.3, 2,8989.3,1 ,200.2,0) | |
| 54 | ORGANIZATI ON | |
| 55 | "BLD",1548 ,4,8989.3, 2,8989.3,1 ,200.3,0) | |
| 56 | ORGANIZATI ON ID | |
| 57 | "BLD",1548 ,4,8989.3, 222) | |
| 58 | y^y^p^^^^n ^^n | |
| 59 | "BLD",1548 ,4,8989.3, 224) | |
| 60 | ||
| 61 | "BLD",1548 ,4,"APDD", 3.081,3.08 1) | |
| 62 | ||
| 63 | "BLD",1548 ,4,"APDD", 3.081,3.08 1,101) | |
| 64 | ||
| 65 | "BLD",1548 ,4,"APDD", 8989.3,898 9.3) | |
| 66 | ||
| 67 | "BLD",1548 ,4,"APDD", 8989.3,898 9.3,200.1) | |
| 68 | ||
| 69 | "BLD",1548 ,4,"APDD", 8989.3,898 9.3,200.2) | |
| 70 | ||
| 71 | "BLD",1548 ,4,"APDD", 8989.3,898 9.3,200.3) | |
| 72 | ||
| 73 | "BLD",1548 ,4,"B",3.0 81,3.081) | |
| 74 | ||
| 75 | "BLD",1548 ,4,"B",898 9.3,8989.3 ) | |
| 76 | ||
| 77 | "BLD",1548 ,6.3) | |
| 78 | 22 | |
| 79 | "BLD",1548 ,"ABPKG") | |
| 80 | n | |
| 81 | "BLD",1548 ,"INID") | |
| 82 | ^y | |
| 83 | "BLD",1548 ,"INIT") | |
| 84 | XU8PS659 | |
| 85 | "BLD",1548 ,"KRN",0) | |
| 86 | ^9.67PA^77 9.2^20 | |
| 87 | "BLD",1548 ,"KRN",.4, 0) | |
| 88 | .4 | |
| 89 | "BLD",1548 ,"KRN",.4, "NM",0) | |
| 90 | ^9.68A^2^2 | |
| 91 | "BLD",1548 ,"KRN",.4, "NM",1,0) | |
| 92 | XUSEC LIST FILE # 3.081^3.08 1^0 | |
| 93 | "BLD",1548 ,"KRN",.4, "NM",2,0) | |
| 94 | XUSEC REMO TE ACCESS FILE #3 .081^3.081 ^0 | |
| 95 | "BLD",1548 ,"KRN",.4, "NM","B"," XUSEC LIST FILE # 3.081",1) | |
| 96 | ||
| 97 | "BLD",1548 ,"KRN",.4, "NM","B"," XUSEC REMO TE ACCESS FILE #3 .081",2) | |
| 98 | ||
| 99 | "BLD",1548 ,"KRN",.40 1,0) | |
| 100 | .401 | |
| 101 | "BLD",1548 ,"KRN",.40 2,0) | |
| 102 | .402 | |
| 103 | "BLD",1548 ,"KRN",.40 3,0) | |
| 104 | .403 | |
| 105 | "BLD",1548 ,"KRN",.5, 0) | |
| 106 | .5 | |
| 107 | "BLD",1548 ,"KRN",.84 ,0) | |
| 108 | .84 | |
| 109 | "BLD",1548 ,"KRN",3.6 ,0) | |
| 110 | 3.6 | |
| 111 | "BLD",1548 ,"KRN",3.8 ,0) | |
| 112 | 3.8 | |
| 113 | "BLD",1548 ,"KRN",9.2 ,0) | |
| 114 | 9.2 | |
| 115 | "BLD",1548 ,"KRN",9.8 ,0) | |
| 116 | 9.8 | |
| 117 | "BLD",1548 ,"KRN",9.8 ,"NM",0) | |
| 118 | ^9.68A^30^ 18 | |
| 119 | "BLD",1548 ,"KRN",9.8 ,"NM",7,0) | |
| 120 | XUS^^0^B35 560117 | |
| 121 | "BLD",1548 ,"KRN",9.8 ,"NM",8,0) | |
| 122 | XUSRB^^0^B 35393386 | |
| 123 | "BLD",1548 ,"KRN",9.8 ,"NM",9,0) | |
| 124 | XUSBSE1^^0 ^B15898406 5 | |
| 125 | "BLD",1548 ,"KRN",9.8 ,"NM",10,0 ) | |
| 126 | XUS1^^0^B2 9132312 | |
| 127 | "BLD",1548 ,"KRN",9.8 ,"NM",11,0 ) | |
| 128 | XUESSO1^^0 ^B93859687 | |
| 129 | "BLD",1548 ,"KRN",9.8 ,"NM",12,0 ) | |
| 130 | XUESSO2^^0 ^B11771426 2 | |
| 131 | "BLD",1548 ,"KRN",9.8 ,"NM",13,0 ) | |
| 132 | XUESSO3^^0 ^B22198305 1 | |
| 133 | "BLD",1548 ,"KRN",9.8 ,"NM",14,0 ) | |
| 134 | XUSAML^^0^ B87822485 | |
| 135 | "BLD",1548 ,"KRN",9.8 ,"NM",17,0 ) | |
| 136 | XU8PS655^^ 1^ | |
| 137 | "BLD",1548 ,"KRN",9.8 ,"NM",18,0 ) | |
| 138 | XUCERT^^0^ B4132125 | |
| 139 | "BLD",1548 ,"KRN",9.8 ,"NM",19,0 ) | |
| 140 | XUESSO4^^0 ^B61505269 | |
| 141 | "BLD",1548 ,"KRN",9.8 ,"NM",20,0 ) | |
| 142 | XUP^^0^B11 898665 | |
| 143 | "BLD",1548 ,"KRN",9.8 ,"NM",21,0 ) | |
| 144 | XUSRB4^^0^ B20805610 | |
| 145 | "BLD",1548 ,"KRN",9.8 ,"NM",22,0 ) | |
| 146 | XUCERT1^^0 ^B20606802 | |
| 147 | "BLD",1548 ,"KRN",9.8 ,"NM",27,0 ) | |
| 148 | XLFNSLK^^0 ^B39616756 | |
| 149 | "BLD",1548 ,"KRN",9.8 ,"NM",28,0 ) | |
| 150 | XUSKAAJ^^0 ^B11718164 | |
| 151 | "BLD",1548 ,"KRN",9.8 ,"NM",29,0 ) | |
| 152 | XUSKAAJ1^^ 0^B2125056 | |
| 153 | "BLD",1548 ,"KRN",9.8 ,"NM",30,0 ) | |
| 154 | XUSHSH^^0^ B37891600 | |
| 155 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XLFNSLK", 27) | |
| 156 | ||
| 157 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XU8PS655" ,17) | |
| 158 | ||
| 159 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUCERT",1 8) | |
| 160 | ||
| 161 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUCERT1", 22) | |
| 162 | ||
| 163 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUESSO1", 11) | |
| 164 | ||
| 165 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUESSO2", 12) | |
| 166 | ||
| 167 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUESSO3", 13) | |
| 168 | ||
| 169 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUESSO4", 19) | |
| 170 | ||
| 171 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUP",20) | |
| 172 | ||
| 173 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUS",7) | |
| 174 | ||
| 175 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUS1",10) | |
| 176 | ||
| 177 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSAML",1 4) | |
| 178 | ||
| 179 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSBSE1", 9) | |
| 180 | ||
| 181 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSHSH",3 0) | |
| 182 | ||
| 183 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSKAAJ", 28) | |
| 184 | ||
| 185 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSKAAJ1" ,29) | |
| 186 | ||
| 187 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSRB",8) | |
| 188 | ||
| 189 | "BLD",1548 ,"KRN",9.8 ,"NM","B", "XUSRB4",2 1) | |
| 190 | ||
| 191 | "BLD",1548 ,"KRN",19, 0) | |
| 192 | 19 | |
| 193 | "BLD",1548 ,"KRN",19, "NM",0) | |
| 194 | ^9.68A^3^3 | |
| 195 | "BLD",1548 ,"KRN",19, "NM",1,0) | |
| 196 | XUS SIGNON ^^0 | |
| 197 | "BLD",1548 ,"KRN",19, "NM",2,0) | |
| 198 | XUS VISIT USERS^^0 | |
| 199 | "BLD",1548 ,"KRN",19, "NM",3,0) | |
| 200 | XUSEC REMO TE ACCESS^ ^0 | |
| 201 | "BLD",1548 ,"KRN",19, "NM","B"," XUS SIGNON ",1) | |
| 202 | ||
| 203 | "BLD",1548 ,"KRN",19, "NM","B"," XUS VISIT USERS",2) | |
| 204 | ||
| 205 | "BLD",1548 ,"KRN",19, "NM","B"," XUSEC REMO TE ACCESS" ,3) | |
| 206 | ||
| 207 | "BLD",1548 ,"KRN",19. 1,0) | |
| 208 | 19.1 | |
| 209 | "BLD",1548 ,"KRN",101 ,0) | |
| 210 | 101 | |
| 211 | "BLD",1548 ,"KRN",101 ,"NM",0) | |
| 212 | ^9.68A^^0 | |
| 213 | "BLD",1548 ,"KRN",409 .61,0) | |
| 214 | 409.61 | |
| 215 | "BLD",1548 ,"KRN",771 ,0) | |
| 216 | 771 | |
| 217 | "BLD",1548 ,"KRN",779 .2,0) | |
| 218 | 779.2 | |
| 219 | "BLD",1548 ,"KRN",870 ,0) | |
| 220 | 870 | |
| 221 | "BLD",1548 ,"KRN",898 9.51,0) | |
| 222 | 8989.51 | |
| 223 | "BLD",1548 ,"KRN",898 9.52,0) | |
| 224 | 8989.52 | |
| 225 | "BLD",1548 ,"KRN",899 4,0) | |
| 226 | 8994 | |
| 227 | "BLD",1548 ,"KRN",899 4,"NM",0) | |
| 228 | ^9.68A^18^ 18 | |
| 229 | "BLD",1548 ,"KRN",899 4,"NM",1,0 ) | |
| 230 | XUS ESSO V ALIDATE^^0 | |
| 231 | "BLD",1548 ,"KRN",899 4,"NM",2,0 ) | |
| 232 | XUS IAM FI ND USER^^0 | |
| 233 | "BLD",1548 ,"KRN",899 4,"NM",3,0 ) | |
| 234 | XUS IAM DI SPLAY USER ^^0 | |
| 235 | "BLD",1548 ,"KRN",899 4,"NM",4,0 ) | |
| 236 | XUS IAM ED IT USER^^0 | |
| 237 | "BLD",1548 ,"KRN",899 4,"NM",5,0 ) | |
| 238 | XUS IAM AD D USER^^0 | |
| 239 | "BLD",1548 ,"KRN",899 4,"NM",6,0 ) | |
| 240 | XUS IAM BI ND USER^^0 | |
| 241 | "BLD",1548 ,"KRN",899 4,"NM",7,0 ) | |
| 242 | XUS IAM TE RMINATE US ER^^0 | |
| 243 | "BLD",1548 ,"KRN",899 4,"NM",8,0 ) | |
| 244 | XUS IAM RE ACTIVATE U SER^^0 | |
| 245 | "BLD",1548 ,"KRN",899 4,"NM",9,0 ) | |
| 246 | XUS CVC^^0 | |
| 247 | "BLD",1548 ,"KRN",899 4,"NM",10, 0) | |
| 248 | XUS SIGNON SETUP^^0 | |
| 249 | "BLD",1548 ,"KRN",899 4,"NM",11, 0) | |
| 250 | XUS ALLKEY S^^0 | |
| 251 | "BLD",1548 ,"KRN",899 4,"NM",12, 0) | |
| 252 | XUS KEY CH ECK^^0 | |
| 253 | "BLD",1548 ,"KRN",899 4,"NM",13, 0) | |
| 254 | XUS KAAJEE GET CCOW TOKEN^^0 | |
| 255 | "BLD",1548 ,"KRN",899 4,"NM",14, 0) | |
| 256 | XUS KAAJEE GET USER INFO^^0 | |
| 257 | "BLD",1548 ,"KRN",899 4,"NM",15, 0) | |
| 258 | XUS KAAJEE GET USER VIA PROXY^ ^0 | |
| 259 | "BLD",1548 ,"KRN",899 4,"NM",16, 0) | |
| 260 | XUS KAAJEE LOGOUT^^0 | |
| 261 | "BLD",1548 ,"KRN",899 4,"NM",17, 0) | |
| 262 | XUS BSE TO KEN^^0 | |
| 263 | "BLD",1548 ,"KRN",899 4,"NM",18, 0) | |
| 264 | XUS AV COD E^^0 | |
| 265 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS ALLK EYS",11) | |
| 266 | ||
| 267 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS AV C ODE",18) | |
| 268 | ||
| 269 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS BSE TOKEN",17) | |
| 270 | ||
| 271 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS CVC" ,9) | |
| 272 | ||
| 273 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS ESSO VALIDATE" ,1) | |
| 274 | ||
| 275 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM ADD USER", 5) | |
| 276 | ||
| 277 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM BIND USER" ,6) | |
| 278 | ||
| 279 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM DISPLAY US ER",3) | |
| 280 | ||
| 281 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM EDIT USER" ,4) | |
| 282 | ||
| 283 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM FIND USER" ,2) | |
| 284 | ||
| 285 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM REACTIVATE USER",8) | |
| 286 | ||
| 287 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS IAM TERMINATE USER",7) | |
| 288 | ||
| 289 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS KAAJ EE GET CCO W TOKEN",1 3) | |
| 290 | ||
| 291 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS KAAJ EE GET USE R INFO",14 ) | |
| 292 | ||
| 293 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS KAAJ EE GET USE R VIA PROX Y",15) | |
| 294 | ||
| 295 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS KAAJ EE LOGOUT" ,16) | |
| 296 | ||
| 297 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS KEY CHECK",12) | |
| 298 | ||
| 299 | "BLD",1548 ,"KRN",899 4,"NM","B" ,"XUS SIGN ON SETUP", 10) | |
| 300 | ||
| 301 | "BLD",1548 ,"KRN","B" ,.4,.4) | |
| 302 | ||
| 303 | "BLD",1548 ,"KRN","B" ,.401,.401 ) | |
| 304 | ||
| 305 | "BLD",1548 ,"KRN","B" ,.402,.402 ) | |
| 306 | ||
| 307 | "BLD",1548 ,"KRN","B" ,.403,.403 ) | |
| 308 | ||
| 309 | "BLD",1548 ,"KRN","B" ,.5,.5) | |
| 310 | ||
| 311 | "BLD",1548 ,"KRN","B" ,.84,.84) | |
| 312 | ||
| 313 | "BLD",1548 ,"KRN","B" ,3.6,3.6) | |
| 314 | ||
| 315 | "BLD",1548 ,"KRN","B" ,3.8,3.8) | |
| 316 | ||
| 317 | "BLD",1548 ,"KRN","B" ,9.2,9.2) | |
| 318 | ||
| 319 | "BLD",1548 ,"KRN","B" ,9.8,9.8) | |
| 320 | ||
| 321 | "BLD",1548 ,"KRN","B" ,19,19) | |
| 322 | ||
| 323 | "BLD",1548 ,"KRN","B" ,19.1,19.1 ) | |
| 324 | ||
| 325 | "BLD",1548 ,"KRN","B" ,101,101) | |
| 326 | ||
| 327 | "BLD",1548 ,"KRN","B" ,409.61,40 9.61) | |
| 328 | ||
| 329 | "BLD",1548 ,"KRN","B" ,771,771) | |
| 330 | ||
| 331 | "BLD",1548 ,"KRN","B" ,779.2,779 .2) | |
| 332 | ||
| 333 | "BLD",1548 ,"KRN","B" ,870,870) | |
| 334 | ||
| 335 | "BLD",1548 ,"KRN","B" ,8989.51,8 989.51) | |
| 336 | ||
| 337 | "BLD",1548 ,"KRN","B" ,8989.52,8 989.52) | |
| 338 | ||
| 339 | "BLD",1548 ,"KRN","B" ,8994,8994 ) | |
| 340 | ||
| 341 | "BLD",1548 ,"PRET") | |
| 342 | ||
| 343 | "BLD",1548 ,"QUES",0) | |
| 344 | ^9.62^^ | |
| 345 | "BLD",1548 ,"REQB",0) | |
| 346 | ^9.611^5^5 | |
| 347 | "BLD",1548 ,"REQB",1, 0) | |
| 348 | XU*8.0*655 ^1 | |
| 349 | "BLD",1548 ,"REQB",2, 0) | |
| 350 | XU*8.0*638 ^1 | |
| 351 | "BLD",1548 ,"REQB",3, 0) | |
| 352 | XU*8.0*584 ^1 | |
| 353 | "BLD",1548 ,"REQB",4, 0) | |
| 354 | XU*8.0*430 ^1 | |
| 355 | "BLD",1548 ,"REQB",5, 0) | |
| 356 | XU*8.0*504 ^1 | |
| 357 | "BLD",1548 ,"REQB","B ","XU*8.0* 430",4) | |
| 358 | ||
| 359 | "BLD",1548 ,"REQB","B ","XU*8.0* 504",5) | |
| 360 | ||
| 361 | "BLD",1548 ,"REQB","B ","XU*8.0* 584",3) | |
| 362 | ||
| 363 | "BLD",1548 ,"REQB","B ","XU*8.0* 638",2) | |
| 364 | ||
| 365 | "BLD",1548 ,"REQB","B ","XU*8.0* 655",1) | |
| 366 | ||
| 367 | "FIA",3.08 1) | |
| 368 | SIGN-ON LO G | |
| 369 | "FIA",3.08 1,0) | |
| 370 | ^XUSEC(0, | |
| 371 | "FIA",3.08 1,0,0) | |
| 372 | 3.081P | |
| 373 | "FIA",3.08 1,0,1) | |
| 374 | y^y^p^^^^n ^^n | |
| 375 | "FIA",3.08 1,0,10) | |
| 376 | ||
| 377 | "FIA",3.08 1,0,11) | |
| 378 | ||
| 379 | "FIA",3.08 1,0,"RLRO" ) | |
| 380 | ||
| 381 | "FIA",3.08 1,0,"VR") | |
| 382 | 8.0^XU | |
| 383 | "FIA",3.08 1,3.081) | |
| 384 | 1 | |
| 385 | "FIA",3.08 1,3.081,10 1) | |
| 386 | ||
| 387 | "FIA",8989 .3) | |
| 388 | KERNEL SYS TEM PARAME TERS | |
| 389 | "FIA",8989 .3,0) | |
| 390 | ^XTV(8989. 3, | |
| 391 | "FIA",8989 .3,0,0) | |
| 392 | 8989.3P | |
| 393 | "FIA",8989 .3,0,1) | |
| 394 | y^y^p^^^^n ^^n | |
| 395 | "FIA",8989 .3,0,10) | |
| 396 | ||
| 397 | "FIA",8989 .3,0,11) | |
| 398 | ||
| 399 | "FIA",8989 .3,0,"RLRO ") | |
| 400 | ||
| 401 | "FIA",8989 .3,0,"VR") | |
| 402 | 8.0^XU | |
| 403 | "FIA",8989 .3,8989.3) | |
| 404 | 1 | |
| 405 | "FIA",8989 .3,8989.3, 200.1) | |
| 406 | ||
| 407 | "FIA",8989 .3,8989.3, 200.2) | |
| 408 | ||
| 409 | "FIA",8989 .3,8989.3, 200.3) | |
| 410 | ||
| 411 | "INIT") | |
| 412 | XU8PS659 | |
| 413 | "KRN",.4,3 ,-1) | |
| 414 | 0^1 | |
| 415 | "KRN",.4,3 ,0) | |
| 416 | XUSEC LIST ^3150902.0 721^^3.081 ^^@^316022 4 | |
| 417 | "KRN",.4,3 ,"F",2) | |
| 418 | 0;"Sign-on time"~99; R9~.01;L17 ~S X=$I W X K DIP;L9 ;Z;"$I"~10 ~100;L40~1 01;"LOA"~ | |
| 419 | "KRN",.4,3 ,"H") | |
| 420 | USERS WHO HAVE SIGNE D ONTO THE COMPUTER | |
| 421 | "KRN",.4,7 0,-1) | |
| 422 | 0^2 | |
| 423 | "KRN",.4,7 0,0) | |
| 424 | XUSEC REMO TE ACCESS^ 3150902.07 25^@^3.081 ^^@^315122 2 | |
| 425 | "KRN",.4,7 0,"F",2) | |
| 426 | 0;"Sign-on time"~99; R9~.01~14~ 100;L40~10 1;"LOA"~ | |
| 427 | "KRN",.4,7 0,"H") | |
| 428 | Remote Acc ess User S ign-On Log | |
| 429 | "KRN",19,6 04,-1) | |
| 430 | 0^1 | |
| 431 | "KRN",19,6 04,0) | |
| 432 | XUS SIGNON ^Kernel si gn-on cont ext^^B^^^^ ^^^^KERNEL ^y | |
| 433 | "KRN",19,6 04,99.1) | |
| 434 | 61634,5161 4 | |
| 435 | "KRN",19,6 04,"RPC",0 ) | |
| 436 | ^19.05P^14 ^14 | |
| 437 | "KRN",19,6 04,"RPC",1 ,0) | |
| 438 | XUS SIGNON SETUP | |
| 439 | "KRN",19,6 04,"RPC",2 ,0) | |
| 440 | XUS AV COD E | |
| 441 | "KRN",19,6 04,"RPC",3 ,0) | |
| 442 | XUS INTRO MSG | |
| 443 | "KRN",19,6 04,"RPC",4 ,0) | |
| 444 | XUS CVC | |
| 445 | "KRN",19,6 04,"RPC",5 ,0) | |
| 446 | XUS AV HEL P | |
| 447 | "KRN",19,6 04,"RPC",6 ,0) | |
| 448 | XUS DIVISI ON SET | |
| 449 | "KRN",19,6 04,"RPC",7 ,0) | |
| 450 | XUS GET US ER INFO | |
| 451 | "KRN",19,6 04,"RPC",8 ,0) | |
| 452 | XUS DIVISI ON GET | |
| 453 | "KRN",19,6 04,"RPC",9 ,0) | |
| 454 | XWB GET BR OKER INFO | |
| 455 | "KRN",19,6 04,"RPC",1 0,0) | |
| 456 | XUS GET TO KEN | |
| 457 | "KRN",19,6 04,"RPC",1 1,0) | |
| 458 | XUS CCOW V AULT PARAM | |
| 459 | "KRN",19,6 04,"RPC",1 2,0) | |
| 460 | XUS GET CC OW TOKEN | |
| 461 | "KRN",19,6 04,"RPC",1 3,0) | |
| 462 | XUS ESSO V ALIDATE | |
| 463 | "KRN",19,6 04,"RPC",1 4,0) | |
| 464 | XUS IAM BI ND USER | |
| 465 | "KRN",19,6 04,"U") | |
| 466 | KERNEL SIG N-ON CONTE XT | |
| 467 | "KRN",19,1 654,-1) | |
| 468 | 0^2 | |
| 469 | "KRN",19,1 654,0) | |
| 470 | XUS VISIT USERS^User s with For eign Visit s^^P^^^^^^ ^^KERNEL | |
| 471 | "KRN",19,1 654,1,0) | |
| 472 | ^^2^2^3151 016^ | |
| 473 | "KRN",19,1 654,1,1,0) | |
| 474 | Menu optio n created by patch X U*8*655 us ing sort a nd print t emplates f rom | |
| 475 | "KRN",19,1 654,1,2,0) | |
| 476 | patch XU*8 *165. Show s NPF entr ies that h ave been V ISITORS to this site . | |
| 477 | "KRN",19,1 654,60) | |
| 478 | VA(200, | |
| 479 | "KRN",19,1 654,62) | |
| 480 | 0 | |
| 481 | "KRN",19,1 654,63) | |
| 482 | [XUS VISIT USERS] | |
| 483 | "KRN",19,1 654,64) | |
| 484 | [XUS VISIT USERS] | |
| 485 | "KRN",19,1 654,65) | |
| 486 | ||
| 487 | "KRN",19,1 654,66) | |
| 488 | ||
| 489 | "KRN",19,1 654,"U") | |
| 490 | USERS WITH FOREIGN V ISITS | |
| 491 | "KRN",19,1 655,-1) | |
| 492 | 0^3 | |
| 493 | "KRN",19,1 655,0) | |
| 494 | XUSEC REMO TE ACCESS^ Remote Acc ess User S ign-on Log ^^P^^^^^^^ ^KERNEL | |
| 495 | "KRN",19,1 655,1,0) | |
| 496 | ^^10^10^31 51014^ | |
| 497 | "KRN",19,1 655,1,1,0) | |
| 498 | Menu optio n created by patch X U*8*655 us ing sort a nd print t emplates f rom | |
| 499 | "KRN",19,1 655,1,2,0) | |
| 500 | patch XU*8 *165. Prin ts Sign-on log entri es from re mote users . Added | |
| 501 | "KRN",19,1 655,1,3,0) | |
| 502 | sign-on Le vel Of Ass urance inf ormation i n patch XU *8*659 whe re: | |
| 503 | "KRN",19,1 655,1,4,0) | |
| 504 | LOA=1 - little or no confide nce in the user iden tity (self -asserted) | |
| 505 | "KRN",19,1 655,1,5,0) | |
| 506 | LOA=2 - confidence in the us er identit y (access/ verify cod e or | |
| 507 | "KRN",19,1 655,1,6,0) | |
| 508 | re-authent ication to ken) | |
| 509 | "KRN",19,1 655,1,7,0) | |
| 510 | LOA=3 - high confi dence in t he user id entity (pa ssword wit h hardware or | |
| 511 | "KRN",19,1 655,1,8,0) | |
| 512 | software t oken) | |
| 513 | "KRN",19,1 655,1,9,0) | |
| 514 | LOA=4 - very high confidence in the us er identit y (in-pers on | |
| 515 | "KRN",19,1 655,1,10,0 ) | |
| 516 | registrati on with mu lti-factor authentic ation or P IV card) | |
| 517 | "KRN",19,1 655,60) | |
| 518 | XUSEC(0, | |
| 519 | "KRN",19,1 655,62) | |
| 520 | 0 | |
| 521 | "KRN",19,1 655,63) | |
| 522 | [XUSEC REM OTE ACCESS ] | |
| 523 | "KRN",19,1 655,64) | |
| 524 | [XUSEC REM OTE ACCESS ] | |
| 525 | "KRN",19,1 655,65) | |
| 526 | ||
| 527 | "KRN",19,1 655,66) | |
| 528 | ||
| 529 | "KRN",19,1 655,"U") | |
| 530 | REMOTE ACC ESS USER S IGN-ON LOG | |
| 531 | "KRN",8994 ,15,-1) | |
| 532 | 0^10 | |
| 533 | "KRN",8994 ,15,0) | |
| 534 | XUS SIGNON SETUP^SET UP^XUSRB^2 ^S^^^^1^^1 | |
| 535 | "KRN",8994 ,15,1,0) | |
| 536 | ^^2^2^3151 209^ | |
| 537 | "KRN",8994 ,15,1,1,0) | |
| 538 | RPC ICR #1 632 - API ICR #4054 | |
| 539 | "KRN",8994 ,15,1,2,0) | |
| 540 | Establishe s the envi ronment ne cessary fo r VistA si gn-on. | |
| 541 | "KRN",8994 ,15,2,0) | |
| 542 | ^8994.02A^ 3^3 | |
| 543 | "KRN",8994 ,15,2,1,0) | |
| 544 | XWBUSRNM^1 ^90^0^1 | |
| 545 | "KRN",8994 ,15,2,1,1, 0) | |
| 546 | ^^1^1^3151 201^ | |
| 547 | "KRN",8994 ,15,2,1,1, 1,0) | |
| 548 | Optional B roker Secu rity Enhan cement (BS E) token. | |
| 549 | "KRN",8994 ,15,2,2,0) | |
| 550 | ASOSKIP^1^ 1^0^2 | |
| 551 | "KRN",8994 ,15,2,2,1, 0) | |
| 552 | ^^3^3^3151 201^ | |
| 553 | "KRN",8994 ,15,2,2,1, 1,0) | |
| 554 | Optional. Set ASOSKI P=1 to ski p the Auto Sign-On c heck. Used by RPC | |
| 555 | "KRN",8994 ,15,2,2,1, 2,0) | |
| 556 | applicatio ns that do not resid e on the c lient work station wi th the | |
| 557 | "KRN",8994 ,15,2,2,1, 3,0) | |
| 558 | ClAgent.ex e applicat ion. | |
| 559 | "KRN",8994 ,15,2,3,0) | |
| 560 | D20^1^1^0^ 3 | |
| 561 | "KRN",8994 ,15,2,3,1, 0) | |
| 562 | ^^1^1^3151 201^ | |
| 563 | "KRN",8994 ,15,2,3,1, 1,0) | |
| 564 | Not curren tly used. Leave blan k. | |
| 565 | "KRN",8994 ,15,2,"B", "ASOSKIP", 2) | |
| 566 | ||
| 567 | "KRN",8994 ,15,2,"B", "D20",3) | |
| 568 | ||
| 569 | "KRN",8994 ,15,2,"B", "XWBUSRNM" ,1) | |
| 570 | ||
| 571 | "KRN",8994 ,15,2,"PAR AMSEQ",1,1 ) | |
| 572 | ||
| 573 | "KRN",8994 ,15,2,"PAR AMSEQ",2,2 ) | |
| 574 | ||
| 575 | "KRN",8994 ,15,2,"PAR AMSEQ",3,3 ) | |
| 576 | ||
| 577 | "KRN",8994 ,15,3,0) | |
| 578 | ^^8^8^3151 201^ | |
| 579 | "KRN",8994 ,15,3,1,0) | |
| 580 | RET(0)=se rver name | |
| 581 | "KRN",8994 ,15,3,2,0) | |
| 582 | RET(1)=vo lume | |
| 583 | "KRN",8994 ,15,3,3,0) | |
| 584 | RET(2)=uc i | |
| 585 | "KRN",8994 ,15,3,4,0) | |
| 586 | RET(3)=de vice | |
| 587 | "KRN",8994 ,15,3,5,0) | |
| 588 | RET(4)=# attempts | |
| 589 | "KRN",8994 ,15,3,6,0) | |
| 590 | RET(5)=sk ip signon- screen | |
| 591 | "KRN",8994 ,15,3,7,0) | |
| 592 | RET(6)=Do main Name | |
| 593 | "KRN",8994 ,15,3,8,0) | |
| 594 | RET(7)=pr oduction ( 0=no, 1=ye s) | |
| 595 | "KRN",8994 ,16,-1) | |
| 596 | 0^18 | |
| 597 | "KRN",8994 ,16,0) | |
| 598 | XUS AV COD E^VALIDAV^ XUSRB^2^R^ ^^^1^^0 | |
| 599 | "KRN",8994 ,16,1,0) | |
| 600 | ^8994.01^1 0^10^31512 17^^^^ | |
| 601 | "KRN",8994 ,16,1,1,0) | |
| 602 | This API c hecks if a ACCESS/VE RIFY code pair is va lid. | |
| 603 | "KRN",8994 ,16,1,2,0) | |
| 604 | It returns an array of values | |
| 605 | "KRN",8994 ,16,1,3,0) | |
| 606 | ||
| 607 | "KRN",8994 ,16,1,4,0) | |
| 608 | R(0)=DUZ i f sign-on was OK, ze ro if not OK. | |
| 609 | "KRN",8994 ,16,1,5,0) | |
| 610 | R(1)=(0=OK , 1,2...=C an't sign- on for som e reason). | |
| 611 | "KRN",8994 ,16,1,6,0) | |
| 612 | R(2)=verif y needs ch anging. | |
| 613 | "KRN",8994 ,16,1,7,0) | |
| 614 | R(3)=Messa ge. | |
| 615 | "KRN",8994 ,16,1,8,0) | |
| 616 | R(4)=0 | |
| 617 | "KRN",8994 ,16,1,9,0) | |
| 618 | R(5)=count of the nu mber of li nes of tex t, zero if none. | |
| 619 | "KRN",8994 ,16,1,10,0 ) | |
| 620 | R(5+n)=mes sage text. | |
| 621 | "KRN",8994 ,16,2,0) | |
| 622 | ^8994.02A^ 1^1 | |
| 623 | "KRN",8994 ,16,2,1,0) | |
| 624 | AVCODE^1^6 0^1 | |
| 625 | "KRN",8994 ,16,2,1,1, 0) | |
| 626 | ^8994.021^ 1^1^315121 7^^^^ | |
| 627 | "KRN",8994 ,16,2,1,1, 1,0) | |
| 628 | accessCode _";"_verif yCode in u nencrypted form. | |
| 629 | "KRN",8994 ,16,2,"B", "AVCODE",1 ) | |
| 630 | ||
| 631 | "KRN",8994 ,18,-1) | |
| 632 | 0^12 | |
| 633 | "KRN",8994 ,18,0) | |
| 634 | XUS KEY CH ECK^OWNSKE Y^XUSRB^2^ P^^^^1^^1 | |
| 635 | "KRN",8994 ,18,1,0) | |
| 636 | ^^5^5^3151 209^ | |
| 637 | "KRN",8994 ,18,1,1,0) | |
| 638 | RPC ICR #6 286 - API ICR #3277 | |
| 639 | "KRN",8994 ,18,1,2,0) | |
| 640 | This RPC w ill check if the use r (DUZ) ho lds a secu rity key o r an array of | |
| 641 | "KRN",8994 ,18,1,3,0) | |
| 642 | keys. If a single se curity KEY is sent t he result is returne d in R(0). If | |
| 643 | "KRN",8994 ,18,1,4,0) | |
| 644 | an array i s sent dow n then the return ar ray has th e same ord er as the | |
| 645 | "KRN",8994 ,18,1,5,0) | |
| 646 | calling ar ray. | |
| 647 | "KRN",8994 ,18,2,0) | |
| 648 | ^8994.02A^ 2^2 | |
| 649 | "KRN",8994 ,18,2,1,0) | |
| 650 | KEY^2^30^1 ^1 | |
| 651 | "KRN",8994 ,18,2,1,1, 0) | |
| 652 | ^8994.021^ 4^4^315120 8^^^^ | |
| 653 | "KRN",8994 ,18,2,1,1, 1,0) | |
| 654 | If key is a single v alue it ho lds the on e key to c heck. | |
| 655 | "KRN",8994 ,18,2,1,1, 2,0) | |
| 656 | If key is an array t hen the re sult is an array tha t matches the key | |
| 657 | "KRN",8994 ,18,2,1,1, 3,0) | |
| 658 | list with values tha t match th e status o f the key check for each key. | |
| 659 | "KRN",8994 ,18,2,1,1, 4,0) | |
| 660 | The return is a 1 if the user has the ke y and 0 if not. | |
| 661 | "KRN",8994 ,18,2,2,0) | |
| 662 | IEN^1^30^0 ^2 | |
| 663 | "KRN",8994 ,18,2,2,1, 0) | |
| 664 | ^^3^3^3151 209^ | |
| 665 | "KRN",8994 ,18,2,2,1, 1,0) | |
| 666 | (Optional) If provid ed, this i s the IEN of the use r in the N EW PERSON | |
| 667 | "KRN",8994 ,18,2,2,1, 2,0) | |
| 668 | file (#200 ) to check if they h old the ke y(s) liste d in KEY. If not | |
| 669 | "KRN",8994 ,18,2,2,1, 3,0) | |
| 670 | provided, this param eter defau lts to the DUZ (IEN) of the cu rrent user . | |
| 671 | "KRN",8994 ,18,2,"B", "IEN",2) | |
| 672 | ||
| 673 | "KRN",8994 ,18,2,"B", "KEY",1) | |
| 674 | ||
| 675 | "KRN",8994 ,18,2,"PAR AMSEQ",1,1 ) | |
| 676 | ||
| 677 | "KRN",8994 ,18,2,"PAR AMSEQ",2,2 ) | |
| 678 | ||
| 679 | "KRN",8994 ,19,-1) | |
| 680 | 0^9 | |
| 681 | "KRN",8994 ,19,0) | |
| 682 | XUS CVC^CV C^XUSRB^2^ R^^^^^^0 | |
| 683 | "KRN",8994 ,19,1,0) | |
| 684 | ^^3^3^3151 209^ | |
| 685 | "KRN",8994 ,19,1,1,0) | |
| 686 | RPC ICR #6 296 - API ICR #none | |
| 687 | "KRN",8994 ,19,1,2,0) | |
| 688 | This RPC i s used as part of Ke rnel to al low the us er to chan ge their | |
| 689 | "KRN",8994 ,19,1,3,0) | |
| 690 | verify cod e. | |
| 691 | "KRN",8994 ,19,2,0) | |
| 692 | ^8994.02A^ 1^1 | |
| 693 | "KRN",8994 ,19,2,1,0) | |
| 694 | XU1^1^60^1 ^1 | |
| 695 | "KRN",8994 ,19,2,1,1, 0) | |
| 696 | ^^4^4^3150 818^ | |
| 697 | "KRN",8994 ,19,2,1,1, 1,0) | |
| 698 | Input: X U1 = "curr ent VC^new VC^new VC " | |
| 699 | "KRN",8994 ,19,2,1,1, 2,0) | |
| 700 | where current a nd new ver ify codes are indivi dually | |
| 701 | "KRN",8994 ,19,2,1,1, 3,0) | |
| 702 | encry pted with the VA pro prietary V istA encry ption | |
| 703 | "KRN",8994 ,19,2,1,1, 4,0) | |
| 704 | algor ithm (clie nt softwar e equivale nt of $$EN CRYP^XUSRB 1) | |
| 705 | "KRN",8994 ,19,2,"B", "XU1",1) | |
| 706 | ||
| 707 | "KRN",8994 ,19,2,"PAR AMSEQ",1,1 ) | |
| 708 | ||
| 709 | "KRN",8994 ,19,3,0) | |
| 710 | ^^2^2^3150 818^ | |
| 711 | "KRN",8994 ,19,3,1,0) | |
| 712 | R(0) = Zer o if VC wa s changed, 1 if it c ould not b e changed. | |
| 713 | "KRN",8994 ,19,3,2,0) | |
| 714 | R(1) = Err or message if VC cou ld not be changed. | |
| 715 | "KRN",8994 ,129,-1) | |
| 716 | 0^14 | |
| 717 | "KRN",8994 ,129,0) | |
| 718 | XUS KAAJEE GET USER INFO^USERI NFO^XUSKAA J^2^A^^^^1 ^^1 | |
| 719 | "KRN",8994 ,129,1,0) | |
| 720 | ^8994.01^1 ^1^3151215 ^^^^ | |
| 721 | "KRN",8994 ,129,1,1,0 ) | |
| 722 | Returns a variety of informati on needed for the KA AJEE logon . | |
| 723 | "KRN",8994 ,129,2,0) | |
| 724 | ^8994.02A^ 2^2 | |
| 725 | "KRN",8994 ,129,2,1,0 ) | |
| 726 | CLIENT-IP^ 1^^1^1 | |
| 727 | "KRN",8994 ,129,2,1,1 ,0) | |
| 728 | ^^2^2^3031 209^ | |
| 729 | "KRN",8994 ,129,2,1,1 ,1,0) | |
| 730 | IP address of the cl ient works tation, us ed for log ging (sign on log) | |
| 731 | "KRN",8994 ,129,2,1,1 ,2,0) | |
| 732 | and IP blo cking (fai led access attempts) . | |
| 733 | "KRN",8994 ,129,2,2,0 ) | |
| 734 | SERVER-NM^ 1^^1^2 | |
| 735 | "KRN",8994 ,129,2,2,1 ,0) | |
| 736 | ^8994.021^ 2^2^315121 5^^^^ | |
| 737 | "KRN",8994 ,129,2,2,1 ,1,0) | |
| 738 | Identifyin g name for the calli ng applica tion or se rver, | |
| 739 | "KRN",8994 ,129,2,2,1 ,2,0) | |
| 740 | used for l ogging (si gnon log). | |
| 741 | "KRN",8994 ,129,2,"B" ,"CLIENT-I P",1) | |
| 742 | ||
| 743 | "KRN",8994 ,129,2,"B" ,"SERVER-N M",2) | |
| 744 | ||
| 745 | "KRN",8994 ,129,2,"PA RAMSEQ",1, 1) | |
| 746 | ||
| 747 | "KRN",8994 ,129,2,"PA RAMSEQ",2, 2) | |
| 748 | ||
| 749 | "KRN",8994 ,129,3,0) | |
| 750 | ^8994.03^1 8^18^31512 15^^^^ | |
| 751 | "KRN",8994 ,129,3,1,0 ) | |
| 752 | OUTPUT: | |
| 753 | "KRN",8994 ,129,3,2,0 ) | |
| 754 | Result(0) is the use rs DUZ. | |
| 755 | "KRN",8994 ,129,3,3,0 ) | |
| 756 | Result(1) is the use r name fro m the .01 field. | |
| 757 | "KRN",8994 ,129,3,4,0 ) | |
| 758 | Result(2) is the use rs full na me from th e name sta ndard file . | |
| 759 | "KRN",8994 ,129,3,5,0 ) | |
| 760 | Result(3) is the FAM ILY (LAST) NAME | |
| 761 | "KRN",8994 ,129,3,6,0 ) | |
| 762 | Result(4) is the GIV EN (FIRST) NAME | |
| 763 | "KRN",8994 ,129,3,7,0 ) | |
| 764 | Result(5) is the MID DLE NAME | |
| 765 | "KRN",8994 ,129,3,8,0 ) | |
| 766 | Result(6) is the PRE FIX | |
| 767 | "KRN",8994 ,129,3,9,0 ) | |
| 768 | Result(7) is the SUF FIX | |
| 769 | "KRN",8994 ,129,3,10, 0) | |
| 770 | Result(8) is the DEG REE | |
| 771 | "KRN",8994 ,129,3,11, 0) | |
| 772 | Result(9) is station # of the division t hat the us er is work ing in. | |
| 773 | "KRN",8994 ,129,3,12, 0) | |
| 774 | Result(10) is the st ation # of the paren t facility for the l ogin divis ion | |
| 775 | "KRN",8994 ,129,3,13, 0) | |
| 776 | Result(11) is the st ation # fr om the KSP site para meters, th e parent | |
| 777 | "KRN",8994 ,129,3,14, 0) | |
| 778 | "computer system" | |
| 779 | "KRN",8994 ,129,3,15, 0) | |
| 780 | Result(12) is the si gnon log e ntry IEN | |
| 781 | "KRN",8994 ,129,3,16, 0) | |
| 782 | Result(13) = # of pe rmissible divisions | |
| 783 | "KRN",8994 ,129,3,17, 0) | |
| 784 | Result(14- n) are the permissib le divisio ns for use r login, i n the form at: | |
| 785 | "KRN",8994 ,129,3,18, 0) | |
| 786 | IEN of fil e 4^Statio n Name^Sta tion Numbe r^default? (1 or 0) | |
| 787 | "KRN",8994 ,130,-1) | |
| 788 | 0^16 | |
| 789 | "KRN",8994 ,130,0) | |
| 790 | XUS KAAJEE LOGOUT^SI GNOFF^XUSK AAJ^1^A^^^ ^1^^1 | |
| 791 | "KRN",8994 ,130,1,0) | |
| 792 | ^8994.01^2 ^2^3151215 ^^^^ | |
| 793 | "KRN",8994 ,130,1,1,0 ) | |
| 794 | This RPC c alls the L OUT^XUSCLE AN tag to mark a KAA JEE-signed -on user's | |
| 795 | "KRN",8994 ,130,1,2,0 ) | |
| 796 | entry in t he sign-on log as si gned off. | |
| 797 | "KRN",8994 ,130,2,0) | |
| 798 | ^8994.02A^ 1^1 | |
| 799 | "KRN",8994 ,130,2,1,0 ) | |
| 800 | SIGNON-LOG -DA^1^1^1^ 1 | |
| 801 | "KRN",8994 ,130,2,1,1 ,0) | |
| 802 | ^8994.021^ 1^1^315121 5^^^^ | |
| 803 | "KRN",8994 ,130,2,1,1 ,1,0) | |
| 804 | The DA (IE N) of the user's sig non log en try. | |
| 805 | "KRN",8994 ,130,2,"B" ,"SIGNON-L OG-DA",1) | |
| 806 | ||
| 807 | "KRN",8994 ,130,2,"PA RAMSEQ",1, 1) | |
| 808 | ||
| 809 | "KRN",8994 ,130,3,0) | |
| 810 | ^8994.03^1 ^1^3151215 ^^^^ | |
| 811 | "KRN",8994 ,130,3,1,0 ) | |
| 812 | Returns 1. The retur n value ha s no signi ficance. | |
| 813 | "KRN",8994 ,144,-1) | |
| 814 | 0^11 | |
| 815 | "KRN",8994 ,144,0) | |
| 816 | XUS ALLKEY S^ALLKEYS^ XUSRB^4^P^ ^^1^1^^1 | |
| 817 | "KRN",8994 ,144,1,0) | |
| 818 | ^^5^5^3151 209^ | |
| 819 | "KRN",8994 ,144,1,1,0 ) | |
| 820 | RPC ICR #6 287 - API ICR #3277 | |
| 821 | "KRN",8994 ,144,1,2,0 ) | |
| 822 | This RPC w ill return all the K EYS that a user hold s. If the FLAG is se t to | |
| 823 | "KRN",8994 ,144,1,3,0 ) | |
| 824 | some value the list of KEYS wi ll be scre ened to on ly be thos e for J2EE | |
| 825 | "KRN",8994 ,144,1,4,0 ) | |
| 826 | use. The R PC was des igned for FATKAAT an d KAAJEE ( VistALink clients) b ut | |
| 827 | "KRN",8994 ,144,1,5,0 ) | |
| 828 | may be use d by other applicati ons. | |
| 829 | "KRN",8994 ,144,2,0) | |
| 830 | ^8994.02A^ 2^2 | |
| 831 | "KRN",8994 ,144,2,1,0 ) | |
| 832 | IEN^1^10^0 ^1 | |
| 833 | "KRN",8994 ,144,2,1,1 ,0) | |
| 834 | ^8994.021^ 2^2^315120 9^^ | |
| 835 | "KRN",8994 ,144,2,1,1 ,1,0) | |
| 836 | This is th e IEN or D UZ of the user in qu estion. If not passe d in the R PC | |
| 837 | "KRN",8994 ,144,2,1,1 ,2,0) | |
| 838 | will use t he current DUZ. | |
| 839 | "KRN",8994 ,144,2,2,0 ) | |
| 840 | FLAG^1^3^0 ^2 | |
| 841 | "KRN",8994 ,144,2,2,1 ,0) | |
| 842 | ^8994.021^ 1^1^315120 9^^^^ | |
| 843 | "KRN",8994 ,144,2,2,1 ,1,0) | |
| 844 | Not in use at this t ime. | |
| 845 | "KRN",8994 ,144,2,"B" ,"FLAG",2) | |
| 846 | ||
| 847 | "KRN",8994 ,144,2,"B" ,"IEN",1) | |
| 848 | ||
| 849 | "KRN",8994 ,144,2,"PA RAMSEQ",1, 1) | |
| 850 | ||
| 851 | "KRN",8994 ,144,2,"PA RAMSEQ",2, 2) | |
| 852 | ||
| 853 | "KRN",8994 ,144,3,0) | |
| 854 | ^8994.03^3 ^3^3151209 ^^^^ | |
| 855 | "KRN",8994 ,144,3,1,0 ) | |
| 856 | Returns -1 if failed for some reason. | |
| 857 | "KRN",8994 ,144,3,2,0 ) | |
| 858 | Otherwise it returns a list of the names of the Se curity KEY S the user | |
| 859 | "KRN",8994 ,144,3,3,0 ) | |
| 860 | holds. | |
| 861 | "KRN",8994 ,212,-1) | |
| 862 | 0^15 | |
| 863 | "KRN",8994 ,212,0) | |
| 864 | XUS KAAJEE GET USER VIA PROXY^ USERINFO^X USKAAJ1^2^ R^^^^1^^1 | |
| 865 | "KRN",8994 ,212,1,0) | |
| 866 | ^8994.01^2 ^2^3151215 ^^^ | |
| 867 | "KRN",8994 ,212,1,1,0 ) | |
| 868 | Returns a variety of informati on needed for KAAJEE logon bas ed on the | |
| 869 | "KRN",8994 ,212,1,2,0 ) | |
| 870 | ccow token | |
| 871 | "KRN",8994 ,212,2,0) | |
| 872 | ^8994.02A^ 3^3 | |
| 873 | "KRN",8994 ,212,2,1,0 ) | |
| 874 | CLIENT-IP^ 1^^1^1 | |
| 875 | "KRN",8994 ,212,2,1,1 ,0) | |
| 876 | ^^3^3^3080 730^ | |
| 877 | "KRN",8994 ,212,2,1,1 ,1,0) | |
| 878 | IP address of the cl ient works tation use d for logg ing (signo n log) and IP | |
| 879 | "KRN",8994 ,212,2,1,1 ,2,0) | |
| 880 | blocking ( failed acc ess attemp ts). Also , this IP address is used to | |
| 881 | "KRN",8994 ,212,2,1,1 ,3,0) | |
| 882 | validate c cow token submitted. | |
| 883 | "KRN",8994 ,212,2,2,0 ) | |
| 884 | SERVER-NM^ 1^^1^2 | |
| 885 | "KRN",8994 ,212,2,2,1 ,0) | |
| 886 | ^^2^2^3080 730^ | |
| 887 | "KRN",8994 ,212,2,2,1 ,1,0) | |
| 888 | Identifyin g name for the calli ng applica tion or se rver used for loggin g | |
| 889 | "KRN",8994 ,212,2,2,1 ,2,0) | |
| 890 | (signon lo g) | |
| 891 | "KRN",8994 ,212,2,3,0 ) | |
| 892 | CCOWTOK^1^ ^1^3 | |
| 893 | "KRN",8994 ,212,2,3,1 ,0) | |
| 894 | ^8994.021^ 1^1^315121 5^^^ | |
| 895 | "KRN",8994 ,212,2,3,1 ,1,0) | |
| 896 | Value of c cow token passed. | |
| 897 | "KRN",8994 ,212,2,"B" ,"CCOWTOK" ,3) | |
| 898 | ||
| 899 | "KRN",8994 ,212,2,"B" ,"CLIENT-I P",1) | |
| 900 | ||
| 901 | "KRN",8994 ,212,2,"B" ,"SERVER-N M",2) | |
| 902 | ||
| 903 | "KRN",8994 ,212,2,"PA RAMSEQ",1, 1) | |
| 904 | ||
| 905 | "KRN",8994 ,212,2,"PA RAMSEQ",2, 2) | |
| 906 | ||
| 907 | "KRN",8994 ,212,2,"PA RAMSEQ",3, 3) | |
| 908 | ||
| 909 | "KRN",8994 ,212,3,0) | |
| 910 | ^8994.03^2 0^20^31512 15^^ | |
| 911 | "KRN",8994 ,212,3,1,0 ) | |
| 912 | output is the same a s the RPC named XUS FATKAAT GE T USER INF O. | |
| 913 | "KRN",8994 ,212,3,2,0 ) | |
| 914 | ||
| 915 | "KRN",8994 ,212,3,3,0 ) | |
| 916 | OUTPUT: | |
| 917 | "KRN",8994 ,212,3,4,0 ) | |
| 918 | Result(0) is the us ers DUZ. | |
| 919 | "KRN",8994 ,212,3,5,0 ) | |
| 920 | Result(1) is the us er name fr om the .01 field. | |
| 921 | "KRN",8994 ,212,3,6,0 ) | |
| 922 | Result(2) is the us ers full n ame from t he name st andard fil e. | |
| 923 | "KRN",8994 ,212,3,7,0 ) | |
| 924 | Result(3) is the FA MILY (LAST ) NAME | |
| 925 | "KRN",8994 ,212,3,8,0 ) | |
| 926 | Result(4) is the GI VEN (FIRST ) NAME | |
| 927 | "KRN",8994 ,212,3,9,0 ) | |
| 928 | Result(5) is the MI DDLE NAME | |
| 929 | "KRN",8994 ,212,3,10, 0) | |
| 930 | Result(6) is the PR EFIX | |
| 931 | "KRN",8994 ,212,3,11, 0) | |
| 932 | Result(7) is the SU FFIX | |
| 933 | "KRN",8994 ,212,3,12, 0) | |
| 934 | Result(8) is the DE GREE | |
| 935 | "KRN",8994 ,212,3,13, 0) | |
| 936 | Result(9) is statio n # of the division that the u ser is wor king in. | |
| 937 | "KRN",8994 ,212,3,14, 0) | |
| 938 | Result(10 ) is the s tation # o f the pare nt facilit y for the login divi sion | |
| 939 | "KRN",8994 ,212,3,15, 0) | |
| 940 | Result(11 ) is the s tation # f rom the KS P site par ameters, t he parent | |
| 941 | "KRN",8994 ,212,3,16, 0) | |
| 942 | "computer system" | |
| 943 | "KRN",8994 ,212,3,17, 0) | |
| 944 | Result(12 ) is the s ignon log entry IEN | |
| 945 | "KRN",8994 ,212,3,18, 0) | |
| 946 | Result(13 ) = # of p ermissible divisions | |
| 947 | "KRN",8994 ,212,3,19, 0) | |
| 948 | Result(14 -n) are th e permissi ble divisi ons for us er login, in the for mat: | |
| 949 | "KRN",8994 ,212,3,20, 0) | |
| 950 | IEN of fi le 4^Stati on Name^St ation Numb er^default ? (1 or 0) | |
| 951 | "KRN",8994 ,213,-1) | |
| 952 | 0^13 | |
| 953 | "KRN",8994 ,213,0) | |
| 954 | XUS KAAJEE GET CCOW TOKEN^CCOW IP^XUSKAAJ 1^2^R^^^^1 ^^1 | |
| 955 | "KRN",8994 ,213,1,0) | |
| 956 | ^8994.01^1 ^1^3151215 ^^^ | |
| 957 | "KRN",8994 ,213,1,1,0 ) | |
| 958 | This RPC g ets a toke n to save in the CCO W context to aid in sign-on | |
| 959 | "KRN",8994 ,213,2,0) | |
| 960 | ^8994.02A^ 1^1 | |
| 961 | "KRN",8994 ,213,2,1,0 ) | |
| 962 | IP-ADDRESS ^1^30^0^1 | |
| 963 | "KRN",8994 ,213,2,1,1 ,0) | |
| 964 | ^8994.021^ 4^4^315121 5^^ | |
| 965 | "KRN",8994 ,213,2,1,1 ,1,0) | |
| 966 | This value represent s the IP a ddress of the workst ation. Us eful for J 2EE | |
| 967 | "KRN",8994 ,213,2,1,1 ,2,0) | |
| 968 | applicatio ns that co nnect to V istA via t he applica tion serve r. If pres ent, | |
| 969 | "KRN",8994 ,213,2,1,1 ,3,0) | |
| 970 | this value will be u sed when a ssociating a CCOW to ken to the IP | |
| 971 | "KRN",8994 ,213,2,1,1 ,4,0) | |
| 972 | address of the clien t workstat ion | |
| 973 | "KRN",8994 ,213,2,"B" ,"IP-ADDRE SS",1) | |
| 974 | ||
| 975 | "KRN",8994 ,213,2,"PA RAMSEQ",1, 1) | |
| 976 | ||
| 977 | "KRN",8994 ,332,-1) | |
| 978 | 0^5 | |
| 979 | "KRN",8994 ,332,0) | |
| 980 | XUS IAM AD D USER^IAM AU^XUESSO3 ^2^S^^^^1^ ^0 | |
| 981 | "KRN",8994 ,332,1,0) | |
| 982 | ^^7^7^3160 225^ | |
| 983 | "KRN",8994 ,332,1,1,0 ) | |
| 984 | RPC ICR #6 290 - API ICR #none | |
| 985 | "KRN",8994 ,332,1,2,0 ) | |
| 986 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 987 | "KRN",8994 ,332,1,3,0 ) | |
| 988 | Management (IAM) Pro visioning applicatio n to add a user to t he VistA N EW | |
| 989 | "KRN",8994 ,332,1,4,0 ) | |
| 990 | PERSON fil e (#200). | |
| 991 | "KRN",8994 ,332,1,5,0 ) | |
| 992 | ||
| 993 | "KRN",8994 ,332,1,6,0 ) | |
| 994 | The XUSPF2 00 Securit y Key is r equired to add a use r without an SSN (fi le | |
| 995 | "KRN",8994 ,332,1,7,0 ) | |
| 996 | #200 speci al privile ges). | |
| 997 | "KRN",8994 ,332,2,0) | |
| 998 | ^8994.02A^ 8^8 | |
| 999 | "KRN",8994 ,332,2,1,0 ) | |
| 1000 | NAME^1^35^ 1^1 | |
| 1001 | "KRN",8994 ,332,2,1,1 ,0) | |
| 1002 | ^^2^2^3150 206^ | |
| 1003 | "KRN",8994 ,332,2,1,1 ,1,0) | |
| 1004 | NAME field (#.01) in the NEW P ERSON file (#200) to match the SubjectID in | |
| 1005 | "KRN",8994 ,332,2,1,1 ,2,0) | |
| 1006 | the user's SAML Toke n. | |
| 1007 | "KRN",8994 ,332,2,2,0 ) | |
| 1008 | SECID^1^30 ^1^2 | |
| 1009 | "KRN",8994 ,332,2,2,1 ,0) | |
| 1010 | ^8994.021^ 2^2^315021 0^^ | |
| 1011 | "KRN",8994 ,332,2,2,1 ,1,0) | |
| 1012 | SECID fiel d (#205.1) in the NE W PERSON f ile (#200) to match the SecID in | |
| 1013 | "KRN",8994 ,332,2,2,1 ,2,0) | |
| 1014 | the user's SAML Toke n. | |
| 1015 | "KRN",8994 ,332,2,3,0 ) | |
| 1016 | EMAIL^1^50 ^0^3 | |
| 1017 | "KRN",8994 ,332,2,3,1 ,0) | |
| 1018 | ^^1^1^3150 206^ | |
| 1019 | "KRN",8994 ,332,2,3,1 ,1,0) | |
| 1020 | EMAIL fiel d (#.151) in the NEW PERSON fi le (#200). | |
| 1021 | "KRN",8994 ,332,2,4,0 ) | |
| 1022 | ADUPN^1^50 ^0^4 | |
| 1023 | "KRN",8994 ,332,2,4,1 ,0) | |
| 1024 | ^^2^2^3150 211^ | |
| 1025 | "KRN",8994 ,332,2,4,1 ,1,0) | |
| 1026 | AD UPN fie ld (#205.5 ) in the N EW PERSON file (#200 ) to match user's Ac tive | |
| 1027 | "KRN",8994 ,332,2,4,1 ,2,0) | |
| 1028 | Directory UPN. | |
| 1029 | "KRN",8994 ,332,2,4,2 ) | |
| 1030 | ||
| 1031 | "KRN",8994 ,332,2,5,0 ) | |
| 1032 | SSN^1^9^0^ 5 | |
| 1033 | "KRN",8994 ,332,2,5,1 ,0) | |
| 1034 | ^^4^4^3150 206^ | |
| 1035 | "KRN",8994 ,332,2,5,1 ,1,0) | |
| 1036 | SSN field (#9) in th e NEW PERS ON file (# 200) to ma tch the us er's Socia l | |
| 1037 | "KRN",8994 ,332,2,5,1 ,2,0) | |
| 1038 | Security N umber or T axpayer Id entificati on Number. While not required to | |
| 1039 | "KRN",8994 ,332,2,5,1 ,3,0) | |
| 1040 | provision a VistA us er, not po pulating t his field with a val id SSN cou ld | |
| 1041 | "KRN",8994 ,332,2,5,1 ,4,0) | |
| 1042 | prevent ac cess to so me applica tions and data in Vi stA. | |
| 1043 | "KRN",8994 ,332,2,6,0 ) | |
| 1044 | DOB^1^20^0 ^6 | |
| 1045 | "KRN",8994 ,332,2,6,1 ,0) | |
| 1046 | ^^2^2^3150 206^ | |
| 1047 | "KRN",8994 ,332,2,6,1 ,1,0) | |
| 1048 | DOB field (#5) in th e NEW PERS ON file (# 200) to ma tch the us er's Date of | |
| 1049 | "KRN",8994 ,332,2,6,1 ,2,0) | |
| 1050 | Birth. | |
| 1051 | "KRN",8994 ,332,2,7,0 ) | |
| 1052 | STATION^1^ 20^0^7 | |
| 1053 | "KRN",8994 ,332,2,7,1 ,0) | |
| 1054 | ^8994.021^ 3^3^315021 0^^ | |
| 1055 | "KRN",8994 ,332,2,7,1 ,1,0) | |
| 1056 | DIVISION f ield (#.01 ) of the D IVISION mu ltiple (#1 6) in the NEW PERSON | |
| 1057 | "KRN",8994 ,332,2,7,1 ,2,0) | |
| 1058 | file (#200 ). The nam e of a Div ision that this user may sign on to. The | |
| 1059 | "KRN",8994 ,332,2,7,1 ,3,0) | |
| 1060 | Division s hould be a n active t reating fa cility. | |
| 1061 | "KRN",8994 ,332,2,8,0 ) | |
| 1062 | AUTHCODE^1 ^80^1^8 | |
| 1063 | "KRN",8994 ,332,2,8,1 ,0) | |
| 1064 | ^8994.021^ 1^1^315073 0^^^^ | |
| 1065 | "KRN",8994 ,332,2,8,1 ,1,0) | |
| 1066 | Security P hrase for IAM Provis ioning App lication. | |
| 1067 | "KRN",8994 ,332,2,"B" ,"ADUPN",4 ) | |
| 1068 | ||
| 1069 | "KRN",8994 ,332,2,"B" ,"AUTHCODE ",8) | |
| 1070 | ||
| 1071 | "KRN",8994 ,332,2,"B" ,"DOB",6) | |
| 1072 | ||
| 1073 | "KRN",8994 ,332,2,"B" ,"EMAIL",3 ) | |
| 1074 | ||
| 1075 | "KRN",8994 ,332,2,"B" ,"NAME",1) | |
| 1076 | ||
| 1077 | "KRN",8994 ,332,2,"B" ,"SECID",2 ) | |
| 1078 | ||
| 1079 | "KRN",8994 ,332,2,"B" ,"SSN",5) | |
| 1080 | ||
| 1081 | "KRN",8994 ,332,2,"B" ,"STATION" ,7) | |
| 1082 | ||
| 1083 | "KRN",8994 ,332,2,"PA RAMSEQ",1, 1) | |
| 1084 | ||
| 1085 | "KRN",8994 ,332,2,"PA RAMSEQ",2, 2) | |
| 1086 | ||
| 1087 | "KRN",8994 ,332,2,"PA RAMSEQ",3, 3) | |
| 1088 | ||
| 1089 | "KRN",8994 ,332,2,"PA RAMSEQ",4, 4) | |
| 1090 | ||
| 1091 | "KRN",8994 ,332,2,"PA RAMSEQ",5, 5) | |
| 1092 | ||
| 1093 | "KRN",8994 ,332,2,"PA RAMSEQ",6, 6) | |
| 1094 | ||
| 1095 | "KRN",8994 ,332,2,"PA RAMSEQ",7, 7) | |
| 1096 | ||
| 1097 | "KRN",8994 ,332,2,"PA RAMSEQ",8, 8) | |
| 1098 | ||
| 1099 | "KRN",8994 ,332,3,0) | |
| 1100 | ^^3^3^3150 730^ | |
| 1101 | "KRN",8994 ,332,3,1,0 ) | |
| 1102 | Fail R( 0) = " -1^Number of Errors" | |
| 1103 | "KRN",8994 ,332,3,2,0 ) | |
| 1104 | R( 1) through R(n) = " Error Mess age" | |
| 1105 | "KRN",8994 ,332,3,3,0 ) | |
| 1106 | Success R( 0) = " DUZ^STATIO N" | |
| 1107 | "KRN",8994 ,333,-1) | |
| 1108 | 0^4 | |
| 1109 | "KRN",8994 ,333,0) | |
| 1110 | XUS IAM ED IT USER^IA MEU^XUESSO 3^2^S^^^^1 ^^0 | |
| 1111 | "KRN",8994 ,333,1,0) | |
| 1112 | ^^11^11^31 51209^ | |
| 1113 | "KRN",8994 ,333,1,1,0 ) | |
| 1114 | RPC ICR #6 291 - API ICR #none | |
| 1115 | "KRN",8994 ,333,1,2,0 ) | |
| 1116 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1117 | "KRN",8994 ,333,1,3,0 ) | |
| 1118 | Management (IAM) Pro visioning applicatio n to edit an existin g user in the | |
| 1119 | "KRN",8994 ,333,1,4,0 ) | |
| 1120 | VistA NEW PERSON fil e (#200). | |
| 1121 | "KRN",8994 ,333,1,5,0 ) | |
| 1122 | ||
| 1123 | "KRN",8994 ,333,1,6,0 ) | |
| 1124 | The XUSHOW SSN Securi ty Key is required t o edit Per sonally Id entifiable | |
| 1125 | "KRN",8994 ,333,1,7,0 ) | |
| 1126 | Informatio n (PII) su ch as Soci al Securit y Number ( SSN) or Da te of Birt h | |
| 1127 | "KRN",8994 ,333,1,8,0 ) | |
| 1128 | (DOB). | |
| 1129 | "KRN",8994 ,333,1,9,0 ) | |
| 1130 | ||
| 1131 | "KRN",8994 ,333,1,10, 0) | |
| 1132 | The XUSPF2 00 Securit y Key is r equired to edit a us er without an SSN (f ile | |
| 1133 | "KRN",8994 ,333,1,11, 0) | |
| 1134 | #200 speci al privile ges). | |
| 1135 | "KRN",8994 ,333,2,0) | |
| 1136 | ^8994.02A^ 2^2 | |
| 1137 | "KRN",8994 ,333,2,1,0 ) | |
| 1138 | INARRY^2^2 40^1^1 | |
| 1139 | "KRN",8994 ,333,2,1,1 ,0) | |
| 1140 | ^^13^13^31 50707^ | |
| 1141 | "KRN",8994 ,333,2,1,1 ,1,0) | |
| 1142 | INARRY("SE CID") = Se cID (not e dited, but used to i dentify en try to be | |
| 1143 | "KRN",8994 ,333,2,1,1 ,2,0) | |
| 1144 | ed ited) | |
| 1145 | "KRN",8994 ,333,2,1,1 ,3,0) | |
| 1146 | INARRY("LA STNAME") = User NAME is concat enation of "LASTNAME ,FIRSTNAME | |
| 1147 | "KRN",8994 ,333,2,1,1 ,4,0) | |
| 1148 | MIDDLENAM E SUFFIX" | |
| 1149 | "KRN",8994 ,333,2,1,1 ,5,0) | |
| 1150 | INARRY("FI RSTNAME") | |
| 1151 | "KRN",8994 ,333,2,1,1 ,6,0) | |
| 1152 | INARRY("MI DDLENAME") | |
| 1153 | "KRN",8994 ,333,2,1,1 ,7,0) | |
| 1154 | INARRY("SU FFIX") | |
| 1155 | "KRN",8994 ,333,2,1,1 ,8,0) | |
| 1156 | INARRY("OR GANIZATION NAME") = S UBJECT ORG ANIZATION (Organizat ion Name) | |
| 1157 | "KRN",8994 ,333,2,1,1 ,9,0) | |
| 1158 | INARRY("OR GANIZATION ID") = SUB JECT ORGAN IZATION ID (Organiza tion ID) | |
| 1159 | "KRN",8994 ,333,2,1,1 ,10,0) | |
| 1160 | INARRY("EM AIL") = EM AIL ADDRES S (E-mail Address) | |
| 1161 | "KRN",8994 ,333,2,1,1 ,11,0) | |
| 1162 | INARRY("AD UPN") = AD UPN (Activ e Director y UPN) | |
| 1163 | "KRN",8994 ,333,2,1,1 ,12,0) | |
| 1164 | INARRY("SS N") = SSN (Social Se curity Num ber) | |
| 1165 | "KRN",8994 ,333,2,1,1 ,13,0) | |
| 1166 | INARRY("DO B) = DOB ( Date of Bi rth) | |
| 1167 | "KRN",8994 ,333,2,2,0 ) | |
| 1168 | AUTHCODE^1 ^80^1^2 | |
| 1169 | "KRN",8994 ,333,2,2,1 ,0) | |
| 1170 | ^8994.021^ 1^1^315062 9^^^^ | |
| 1171 | "KRN",8994 ,333,2,2,1 ,1,0) | |
| 1172 | Security P hrase for IAM Provis ioning App lication. | |
| 1173 | "KRN",8994 ,333,2,"B" ,"AUTHCODE ",2) | |
| 1174 | ||
| 1175 | "KRN",8994 ,333,2,"B" ,"INARRY", 1) | |
| 1176 | ||
| 1177 | "KRN",8994 ,333,2,"PA RAMSEQ",1, 1) | |
| 1178 | ||
| 1179 | "KRN",8994 ,333,2,"PA RAMSEQ",2, 2) | |
| 1180 | ||
| 1181 | "KRN",8994 ,333,3,0) | |
| 1182 | ^^3^3^3150 629^ | |
| 1183 | "KRN",8994 ,333,3,1,0 ) | |
| 1184 | Success RE S(0)=DUZ o f NEW PERS ON file en try that w as edited | |
| 1185 | "KRN",8994 ,333,3,2,0 ) | |
| 1186 | Fail RE S(0)="-1^N umber of E rrors" | |
| 1187 | "KRN",8994 ,333,3,3,0 ) | |
| 1188 | RE S(1) throu gh Y(n)="E rror Messa ge" | |
| 1189 | "KRN",8994 ,334,-1) | |
| 1190 | 0^2 | |
| 1191 | "KRN",8994 ,334,0) | |
| 1192 | XUS IAM FI ND USER^IA MFU^XUESSO 3^2^S^^^^1 ^^0 | |
| 1193 | "KRN",8994 ,334,1,0) | |
| 1194 | ^^9^9^3151 209^ | |
| 1195 | "KRN",8994 ,334,1,1,0 ) | |
| 1196 | RPC ICR #6 288 - API ICR #none | |
| 1197 | "KRN",8994 ,334,1,2,0 ) | |
| 1198 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1199 | "KRN",8994 ,334,1,3,0 ) | |
| 1200 | Management (IAM) Pro visioning applicatio n to find a list of users that | |
| 1201 | "KRN",8994 ,334,1,4,0 ) | |
| 1202 | satisfy a collection of input criteria. | |
| 1203 | "KRN",8994 ,334,1,5,0 ) | |
| 1204 | ||
| 1205 | "KRN",8994 ,334,1,6,0 ) | |
| 1206 | One or mor e of the i nput array values mu st be set by the cal ling | |
| 1207 | "KRN",8994 ,334,1,7,0 ) | |
| 1208 | applicatio n. The XUS HOWSSN Sec urity Key is require d to do lo okups usin g | |
| 1209 | "KRN",8994 ,334,1,8,0 ) | |
| 1210 | Personally Identifia ble Inform ation (PII ) such as Social Sec urity Numb er | |
| 1211 | "KRN",8994 ,334,1,9,0 ) | |
| 1212 | (SSN) or D ate of Bir th (DOB). | |
| 1213 | "KRN",8994 ,334,2,0) | |
| 1214 | ^8994.02A^ 6^6 | |
| 1215 | "KRN",8994 ,334,2,1,0 ) | |
| 1216 | NAME^1^35^ 0^1 | |
| 1217 | "KRN",8994 ,334,2,1,1 ,0) | |
| 1218 | ^8994.021^ 1^1^315012 8^^ | |
| 1219 | "KRN",8994 ,334,2,1,1 ,1,0) | |
| 1220 | Search on user name. | |
| 1221 | "KRN",8994 ,334,2,2,0 ) | |
| 1222 | SSN^1^9^^2 | |
| 1223 | "KRN",8994 ,334,2,2,1 ,0) | |
| 1224 | ^^2^2^3150 210^ | |
| 1225 | "KRN",8994 ,334,2,2,1 ,1,0) | |
| 1226 | Search on user Socia l Security Number (S SN). The u ser callin g this RPC | |
| 1227 | "KRN",8994 ,334,2,2,1 ,2,0) | |
| 1228 | must hold the XUSHOW SSN Securi ty Key to search usi ng SSN. | |
| 1229 | "KRN",8994 ,334,2,3,0 ) | |
| 1230 | DOB^1^15^^ 3 | |
| 1231 | "KRN",8994 ,334,2,3,1 ,0) | |
| 1232 | ^^2^2^3150 210^ | |
| 1233 | "KRN",8994 ,334,2,3,1 ,1,0) | |
| 1234 | Search on user Date of Birth ( DOB). The user calli ng this RP C must hol d | |
| 1235 | "KRN",8994 ,334,2,3,1 ,2,0) | |
| 1236 | the XUSHOW SSN Securi ty Key to search usi ng DOB. | |
| 1237 | "KRN",8994 ,334,2,4,0 ) | |
| 1238 | ADUPN^1^50 ^^4 | |
| 1239 | "KRN",8994 ,334,2,4,1 ,0) | |
| 1240 | ^8994.021^ 1^1^315020 6^^ | |
| 1241 | "KRN",8994 ,334,2,4,1 ,1,0) | |
| 1242 | Search on user Activ e Director y UPN. | |
| 1243 | "KRN",8994 ,334,2,5,0 ) | |
| 1244 | SECID^1^30 ^^5 | |
| 1245 | "KRN",8994 ,334,2,5,1 ,0) | |
| 1246 | ^8994.021^ 1^1^315021 0^^^ | |
| 1247 | "KRN",8994 ,334,2,5,1 ,1,0) | |
| 1248 | Search on user Secur ity ID. | |
| 1249 | "KRN",8994 ,334,2,6,0 ) | |
| 1250 | AUTHCODE^1 ^80^1^6 | |
| 1251 | "KRN",8994 ,334,2,6,1 ,0) | |
| 1252 | ^8994.021^ 1^1^315072 9^^^ | |
| 1253 | "KRN",8994 ,334,2,6,1 ,1,0) | |
| 1254 | Security P hrase for IAM Provis ioning App lication. | |
| 1255 | "KRN",8994 ,334,2,"B" ,"ADUPN",4 ) | |
| 1256 | ||
| 1257 | "KRN",8994 ,334,2,"B" ,"AUTHCODE ",6) | |
| 1258 | ||
| 1259 | "KRN",8994 ,334,2,"B" ,"DOB",3) | |
| 1260 | ||
| 1261 | "KRN",8994 ,334,2,"B" ,"NAME",1) | |
| 1262 | ||
| 1263 | "KRN",8994 ,334,2,"B" ,"SECID",5 ) | |
| 1264 | ||
| 1265 | "KRN",8994 ,334,2,"B" ,"SSN",2) | |
| 1266 | ||
| 1267 | "KRN",8994 ,334,2,"PA RAMSEQ",1, 1) | |
| 1268 | ||
| 1269 | "KRN",8994 ,334,2,"PA RAMSEQ",2, 2) | |
| 1270 | ||
| 1271 | "KRN",8994 ,334,2,"PA RAMSEQ",3, 3) | |
| 1272 | ||
| 1273 | "KRN",8994 ,334,2,"PA RAMSEQ",4, 4) | |
| 1274 | ||
| 1275 | "KRN",8994 ,334,2,"PA RAMSEQ",5, 5) | |
| 1276 | ||
| 1277 | "KRN",8994 ,334,2,"PA RAMSEQ",6, 6) | |
| 1278 | ||
| 1279 | "KRN",8994 ,334,3,0) | |
| 1280 | ^^3^3^3150 729^ | |
| 1281 | "KRN",8994 ,334,3,1,0 ) | |
| 1282 | Fail R( 0)="-1^Err or Message " | |
| 1283 | "KRN",8994 ,334,3,2,0 ) | |
| 1284 | Success R( 0)=total n umber of e ntries fou nd, from " 0" to "n". | |
| 1285 | "KRN",8994 ,334,3,3,0 ) | |
| 1286 | R( 1) through R(n)="DUZ ^Name^Name Component s^SSN^Dob^ AD UPN^Sec ID" | |
| 1287 | "KRN",8994 ,337,-1) | |
| 1288 | 0^3 | |
| 1289 | "KRN",8994 ,337,0) | |
| 1290 | XUS IAM DI SPLAY USER ^IAMDU^XUE SSO3^2^S^^ ^^1^^0 | |
| 1291 | "KRN",8994 ,337,1,0) | |
| 1292 | ^^7^7^3160 225^ | |
| 1293 | "KRN",8994 ,337,1,1,0 ) | |
| 1294 | RPC ICE #6 289 - API ICR #none | |
| 1295 | "KRN",8994 ,337,1,2,0 ) | |
| 1296 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1297 | "KRN",8994 ,337,1,3,0 ) | |
| 1298 | Management (IAM) Pro visioning applicatio n to displ ay a VistA user. | |
| 1299 | "KRN",8994 ,337,1,4,0 ) | |
| 1300 | ||
| 1301 | "KRN",8994 ,337,1,5,0 ) | |
| 1302 | The XUSHOW SSN Securi ty Key is required t o display Personally Identifia ble | |
| 1303 | "KRN",8994 ,337,1,6,0 ) | |
| 1304 | Informatio n (PII) su ch as Soci al Securit y Number ( SSN) or Da te of Birt h | |
| 1305 | "KRN",8994 ,337,1,7,0 ) | |
| 1306 | (DOB). | |
| 1307 | "KRN",8994 ,337,2,0) | |
| 1308 | ^8994.02A^ 2^2 | |
| 1309 | "KRN",8994 ,337,2,1,0 ) | |
| 1310 | DISPDUZ^1^ 20^1^1 | |
| 1311 | "KRN",8994 ,337,2,1,1 ,0) | |
| 1312 | ^8994.021^ 1^1^315021 0^^^ | |
| 1313 | "KRN",8994 ,337,2,1,1 ,1,0) | |
| 1314 | DUZ (IEN) of user to be displa yed. | |
| 1315 | "KRN",8994 ,337,2,2,0 ) | |
| 1316 | AUTHCODE^1 ^80^1^2 | |
| 1317 | "KRN",8994 ,337,2,2,1 ,0) | |
| 1318 | ^8994.021^ 1^1^315072 2^^^^ | |
| 1319 | "KRN",8994 ,337,2,2,1 ,1,0) | |
| 1320 | Security P hrase for IAM Provis ioning App lication. | |
| 1321 | "KRN",8994 ,337,2,"B" ,"AUTHCODE ",2) | |
| 1322 | ||
| 1323 | "KRN",8994 ,337,2,"B" ,"DISPDUZ" ,1) | |
| 1324 | ||
| 1325 | "KRN",8994 ,337,2,"PA RAMSEQ",1, 1) | |
| 1326 | ||
| 1327 | "KRN",8994 ,337,2,"PA RAMSEQ",2, 2) | |
| 1328 | ||
| 1329 | "KRN",8994 ,337,3,0) | |
| 1330 | ^^36^36^31 50722^ | |
| 1331 | "KRN",8994 ,337,3,1,0 ) | |
| 1332 | Fail | |
| 1333 | "KRN",8994 ,337,3,2,0 ) | |
| 1334 | R(0) ="- 1^Error Me ssage" | |
| 1335 | "KRN",8994 ,337,3,3,0 ) | |
| 1336 | Success | |
| 1337 | "KRN",8994 ,337,3,4,0 ) | |
| 1338 | R(0) = 1 | |
| 1339 | "KRN",8994 ,337,3,5,0 ) | |
| 1340 | R("NAME" ) = NAME | |
| 1341 | "KRN",8994 ,337,3,6,0 ) | |
| 1342 | R("LASTN AME") = Fa mily Name | |
| 1343 | "KRN",8994 ,337,3,7,0 ) | |
| 1344 | R("FIRST NAME") = G iven Name | |
| 1345 | "KRN",8994 ,337,3,8,0 ) | |
| 1346 | R("MIDDL ENAME") = Middle Nam e | |
| 1347 | "KRN",8994 ,337,3,9,0 ) | |
| 1348 | R("SUFFI X") = Suff ix(es) | |
| 1349 | "KRN",8994 ,337,3,10, 0) | |
| 1350 | R("INITI AL") = INI TIAL | |
| 1351 | "KRN",8994 ,337,3,11, 0) | |
| 1352 | R("TITLE ") = TITLE | |
| 1353 | "KRN",8994 ,337,3,12, 0) | |
| 1354 | R("NICK_ NAME") = N ICK NAME | |
| 1355 | "KRN",8994 ,337,3,13, 0) | |
| 1356 | R("SSN") = SSN (<H idden> if caller doe s not hold XUSHOWSSN key) | |
| 1357 | "KRN",8994 ,337,3,14, 0) | |
| 1358 | R("DOB") = DOB (<H idden> if caller doe s not hold XUSHOWSSN key) | |
| 1359 | "KRN",8994 ,337,3,15, 0) | |
| 1360 | R("DEGRE E") = DEGR EE | |
| 1361 | "KRN",8994 ,337,3,16, 0) | |
| 1362 | R("MAIL_ CODE") = M AIL CODE | |
| 1363 | "KRN",8994 ,337,3,17, 0) | |
| 1364 | R("STATU S") = $$AC TIVE^XUSER (DISPDUZ) | |
| 1365 | "KRN",8994 ,337,3,18, 0) | |
| 1366 | R("DISUS ER") = DIS USER | |
| 1367 | "KRN",8994 ,337,3,19, 0) | |
| 1368 | R("TERMI NATION_DAT E") = TERM INATION DA TE | |
| 1369 | "KRN",8994 ,337,3,20, 0) | |
| 1370 | R("TERMI NATION_REA SON") = TE RMINATION REASON | |
| 1371 | "KRN",8994 ,337,3,21, 0) | |
| 1372 | R("PRIMA RY_MENU_OP TION") = P RIMARY MEN U OPTION | |
| 1373 | "KRN",8994 ,337,3,22, 0) | |
| 1374 | R("SECON DARY_MENU_ OPTION",0) = SECONDA RY MENU OP TION (# of entries) | |
| 1375 | "KRN",8994 ,337,3,23, 0) | |
| 1376 | R("SECON DARY_MENU_ OPTION",1) to R("SEC ONDARY_MEN U_OPTION", n) = entri es | |
| 1377 | "KRN",8994 ,337,3,24, 0) | |
| 1378 | R("FILE_ MANAGER_AC CESS_CODE" ) = FILE M ANAGER ACC ESS CODE | |
| 1379 | "KRN",8994 ,337,3,25, 0) | |
| 1380 | R("DIVIS ION",0) = DIVISION ( number of entries) | |
| 1381 | "KRN",8994 ,337,3,26, 0) | |
| 1382 | R("DIVIS ION",1) to R("DIVISI ON",n) = D IVISION en tries | |
| 1383 | "KRN",8994 ,337,3,27, 0) | |
| 1384 | R("SERVI CE_SECTION ") = SERVI CE/SECTION | |
| 1385 | "KRN",8994 ,337,3,28, 0) | |
| 1386 | R("SUBJE CT_ALTERNA TIVE_NAME" ) = SUBJEC T ALTERNAT IVE NAME | |
| 1387 | "KRN",8994 ,337,3,29, 0) | |
| 1388 | R("SECID ") = SECID | |
| 1389 | "KRN",8994 ,337,3,30, 0) | |
| 1390 | R("ORGAN IZATION_NA ME") = SUB JECT ORGAN IZATION | |
| 1391 | "KRN",8994 ,337,3,31, 0) | |
| 1392 | R("ORGAN IZATION_ID ") = SUBJE CT ORGANIZ ATION ID | |
| 1393 | "KRN",8994 ,337,3,32, 0) | |
| 1394 | R("UNIQU E_USER_ID" ) = UNIQUE USER ID | |
| 1395 | "KRN",8994 ,337,3,33, 0) | |
| 1396 | R("NETWO RK_USER_NA ME") = NET WORK USERN AME | |
| 1397 | "KRN",8994 ,337,3,34, 0) | |
| 1398 | R("ADUPN ") = AD UP N | |
| 1399 | "KRN",8994 ,337,3,35, 0) | |
| 1400 | R("EMAIL ") = EMAIL ADDRESS | |
| 1401 | "KRN",8994 ,337,3,36, 0) | |
| 1402 | R("GENDE R") = SEX (M/F) | |
| 1403 | "KRN",8994 ,338,-1) | |
| 1404 | 0^1 | |
| 1405 | "KRN",8994 ,338,0) | |
| 1406 | XUS ESSO V ALIDATE^ES SO^XUESSO4 ^2^R^^^^1^ ^0 | |
| 1407 | "KRN",8994 ,338,1,0) | |
| 1408 | ^^3^3^3151 209^ | |
| 1409 | "KRN",8994 ,338,1,1,0 ) | |
| 1410 | RPC ICR #6 295 - API ICR #none | |
| 1411 | "KRN",8994 ,338,1,2,0 ) | |
| 1412 | This API/R PC uses th e VA Ident ity and Ac cess Manag ement (IAM ) SAML tok en | |
| 1413 | "KRN",8994 ,338,1,3,0 ) | |
| 1414 | definition version 1 .2 attribu tes from a SAML toke n for user sign-on. | |
| 1415 | "KRN",8994 ,338,2,0) | |
| 1416 | ^8994.02A^ 1^1 | |
| 1417 | "KRN",8994 ,338,2,1,0 ) | |
| 1418 | DOC^1^30^1 ^1 | |
| 1419 | "KRN",8994 ,338,2,1,1 ,0) | |
| 1420 | ^^4^4^3150 305^ | |
| 1421 | "KRN",8994 ,338,2,1,1 ,1,0) | |
| 1422 | Input: D OC = Close d referenc e to globa l root con taining XM L document | |
| 1423 | "KRN",8994 ,338,2,1,1 ,2,0) | |
| 1424 | (load ed STS SAM L Token). See $$EN^M XMLDOM ins tructions in | |
| 1425 | "KRN",8994 ,338,2,1,1 ,3,0) | |
| 1426 | the V istA Kerne l Develope rs Guide f or require d format o f | |
| 1427 | "KRN",8994 ,338,2,1,1 ,4,0) | |
| 1428 | the D OC global. | |
| 1429 | "KRN",8994 ,338,2,"B" ,"DOC",1) | |
| 1430 | ||
| 1431 | "KRN",8994 ,338,2,"PA RAMSEQ",1, 1) | |
| 1432 | ||
| 1433 | "KRN",8994 ,338,3,0) | |
| 1434 | ^8994.03^7 ^7^3150305 ^^^^ | |
| 1435 | "KRN",8994 ,338,3,1,0 ) | |
| 1436 | R(0) = DUZ if sign-o n was OK, zero if no t OK. | |
| 1437 | "KRN",8994 ,338,3,2,0 ) | |
| 1438 | R(1) = (0= OK, 1,2... =Can't sig n on for s ome reason ). | |
| 1439 | "KRN",8994 ,338,3,3,0 ) | |
| 1440 | R(2) = Ver ify Code n eeds chang ing. | |
| 1441 | "KRN",8994 ,338,3,4,0 ) | |
| 1442 | R(3) = Mes sage. | |
| 1443 | "KRN",8994 ,338,3,5,0 ) | |
| 1444 | R(4) = 0 | |
| 1445 | "KRN",8994 ,338,3,6,0 ) | |
| 1446 | R(5) = cou nt of the number of lines of t ext, zero if none. | |
| 1447 | "KRN",8994 ,338,3,7,0 ) | |
| 1448 | R(5+n) = m essage tex t. | |
| 1449 | "KRN",8994 ,339,-1) | |
| 1450 | 0^6 | |
| 1451 | "KRN",8994 ,339,0) | |
| 1452 | XUS IAM BI ND USER^IA MBU^XUESSO 4^1^S^^^^1 ^^0 | |
| 1453 | "KRN",8994 ,339,1,0) | |
| 1454 | ^^5^5^3151 209^ | |
| 1455 | "KRN",8994 ,339,1,1,0 ) | |
| 1456 | RPC ICR #6 294 - API ICR #none | |
| 1457 | "KRN",8994 ,339,1,2,0 ) | |
| 1458 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1459 | "KRN",8994 ,339,1,3,0 ) | |
| 1460 | Management (IAM) Bin ding appli cation to set the Se curity ID (SecID) an d | |
| 1461 | "KRN",8994 ,339,1,4,0 ) | |
| 1462 | Active Dir ectory UPN (ADUPN) i n the Vist A NEW PERS ON file (# 200) for | |
| 1463 | "KRN",8994 ,339,1,5,0 ) | |
| 1464 | Single Sig n-On Inter nal (SSOi) . | |
| 1465 | "KRN",8994 ,339,2,0) | |
| 1466 | ^8994.02A^ 3^3 | |
| 1467 | "KRN",8994 ,339,2,1,0 ) | |
| 1468 | SECID^1^40 ^1^1 | |
| 1469 | "KRN",8994 ,339,2,1,1 ,0) | |
| 1470 | ^^1^1^3150 311^ | |
| 1471 | "KRN",8994 ,339,2,1,1 ,1,0) | |
| 1472 | Unique Sec urity ID [ SecID, ass igned by I dentity an d Access M anagement] | |
| 1473 | "KRN",8994 ,339,2,2,0 ) | |
| 1474 | AUTHCODE^1 ^80^1^2 | |
| 1475 | "KRN",8994 ,339,2,2,1 ,0) | |
| 1476 | ^8994.021^ 1^1^315120 3^^^ | |
| 1477 | "KRN",8994 ,339,2,2,1 ,1,0) | |
| 1478 | Security P hrase for IAM Bindin g Applicat ion | |
| 1479 | "KRN",8994 ,339,2,3,0 ) | |
| 1480 | ADUPN^1^30 ^1^3 | |
| 1481 | "KRN",8994 ,339,2,3,1 ,0) | |
| 1482 | ^8994.021^ 1^1^315120 3^^ | |
| 1483 | "KRN",8994 ,339,2,3,1 ,1,0) | |
| 1484 | Active Dir ectory UPN | |
| 1485 | "KRN",8994 ,339,2,"B" ,"ADUPN",3 ) | |
| 1486 | ||
| 1487 | "KRN",8994 ,339,2,"B" ,"AUTHCODE ",2) | |
| 1488 | ||
| 1489 | "KRN",8994 ,339,2,"B" ,"SECID",1 ) | |
| 1490 | ||
| 1491 | "KRN",8994 ,339,2,"PA RAMSEQ",1, 1) | |
| 1492 | ||
| 1493 | "KRN",8994 ,339,2,"PA RAMSEQ",2, 2) | |
| 1494 | ||
| 1495 | "KRN",8994 ,339,2,"PA RAMSEQ",3, 3) | |
| 1496 | ||
| 1497 | "KRN",8994 ,339,3,0) | |
| 1498 | ^8994.03^2 ^2^3151203 ^^^ | |
| 1499 | "KRN",8994 ,339,3,1,0 ) | |
| 1500 | Return: Fa il Y = "-1^Error Message" | |
| 1501 | "KRN",8994 ,339,3,2,0 ) | |
| 1502 | Su ccess Y = DUZ | |
| 1503 | "KRN",8994 ,342,-1) | |
| 1504 | 0^7 | |
| 1505 | "KRN",8994 ,342,0) | |
| 1506 | XUS IAM TE RMINATE US ER^IAMTU^X UESSO3^2^R ^^^^1^^0 | |
| 1507 | "KRN",8994 ,342,1,0) | |
| 1508 | ^8994.01^3 ^3^3150722 ^^ | |
| 1509 | "KRN",8994 ,342,1,1,0 ) | |
| 1510 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1511 | "KRN",8994 ,342,1,2,0 ) | |
| 1512 | Management (IAM) Pro visioning applicatio n to termi nate an ex isting use r | |
| 1513 | "KRN",8994 ,342,1,3,0 ) | |
| 1514 | in the Vis tA NEW PER SON file ( #200). | |
| 1515 | "KRN",8994 ,342,2,0) | |
| 1516 | ^8994.02A^ 4^4 | |
| 1517 | "KRN",8994 ,342,2,1,0 ) | |
| 1518 | SECID^1^30 ^1^1 | |
| 1519 | "KRN",8994 ,342,2,1,1 ,0) | |
| 1520 | ^^2^2^3150 707^ | |
| 1521 | "KRN",8994 ,342,2,1,1 ,1,0) | |
| 1522 | SECID fiel d (#205.1) in the NE W PERSON f ile (#200) to match the SecID in | |
| 1523 | "KRN",8994 ,342,2,1,1 ,2,0) | |
| 1524 | the user's SAML Toke n. | |
| 1525 | "KRN",8994 ,342,2,2,0 ) | |
| 1526 | TERMDATE^1 ^20^1^2 | |
| 1527 | "KRN",8994 ,342,2,2,1 ,0) | |
| 1528 | ^^1^1^3150 707^ | |
| 1529 | "KRN",8994 ,342,2,2,1 ,1,0) | |
| 1530 | TERMINATIO N DATE fie ld (#9.2) in the NEW PERSON fi le (#200). | |
| 1531 | "KRN",8994 ,342,2,3,0 ) | |
| 1532 | TERMRESN^1 ^45^1^3 | |
| 1533 | "KRN",8994 ,342,2,3,1 ,0) | |
| 1534 | ^8994.021^ 1^1^315070 7^^ | |
| 1535 | "KRN",8994 ,342,2,3,1 ,1,0) | |
| 1536 | Terminatio n Reason f ield (#9.4 ) in the N EW PERSON file (#200 ). | |
| 1537 | "KRN",8994 ,342,2,4,0 ) | |
| 1538 | AUTHCODE^1 ^80^1^4 | |
| 1539 | "KRN",8994 ,342,2,4,1 ,0) | |
| 1540 | ^8994.021^ 1^1^315072 2^^ | |
| 1541 | "KRN",8994 ,342,2,4,1 ,1,0) | |
| 1542 | Security P hrase for IAM Provis ioning App lication. | |
| 1543 | "KRN",8994 ,342,2,"B" ,"AUTHCODE ",4) | |
| 1544 | ||
| 1545 | "KRN",8994 ,342,2,"B" ,"SECID",1 ) | |
| 1546 | ||
| 1547 | "KRN",8994 ,342,2,"B" ,"TERMDATE ",2) | |
| 1548 | ||
| 1549 | "KRN",8994 ,342,2,"B" ,"TERMRESN ",3) | |
| 1550 | ||
| 1551 | "KRN",8994 ,342,2,"PA RAMSEQ",1, 1) | |
| 1552 | ||
| 1553 | "KRN",8994 ,342,2,"PA RAMSEQ",2, 2) | |
| 1554 | ||
| 1555 | "KRN",8994 ,342,2,"PA RAMSEQ",3, 3) | |
| 1556 | ||
| 1557 | "KRN",8994 ,342,2,"PA RAMSEQ",4, 4) | |
| 1558 | ||
| 1559 | "KRN",8994 ,342,3,0) | |
| 1560 | ^^3^3^3150 722^ | |
| 1561 | "KRN",8994 ,342,3,1,0 ) | |
| 1562 | Fail R( 0) = "-1^N umber of E rrors" | |
| 1563 | "KRN",8994 ,342,3,2,0 ) | |
| 1564 | R( 1) through RES(n)="E rror Messa ge" | |
| 1565 | "KRN",8994 ,342,3,3,0 ) | |
| 1566 | Success R( 0) = 1 | |
| 1567 | "KRN",8994 ,343,-1) | |
| 1568 | 0^8 | |
| 1569 | "KRN",8994 ,343,0) | |
| 1570 | XUS IAM RE ACTIVATE U SER^IAMRU^ XUESSO3^2^ S^^^^1^^0 | |
| 1571 | "KRN",8994 ,343,1,0) | |
| 1572 | ^^4^4^3151 209^ | |
| 1573 | "KRN",8994 ,343,1,1,0 ) | |
| 1574 | RPC ICR #6 293 - API ICR #none | |
| 1575 | "KRN",8994 ,343,1,2,0 ) | |
| 1576 | This restr icted RPC is used ex clusively by the Ide ntity and Access | |
| 1577 | "KRN",8994 ,343,1,3,0 ) | |
| 1578 | Management (IAM) Pro visioning applicatio n to react ivate an e xisting us er | |
| 1579 | "KRN",8994 ,343,1,4,0 ) | |
| 1580 | in the Vis tA NEW PER SON file ( #200). | |
| 1581 | "KRN",8994 ,343,2,0) | |
| 1582 | ^8994.02A^ 2^2 | |
| 1583 | "KRN",8994 ,343,2,1,0 ) | |
| 1584 | SECID^1^30 ^1^1 | |
| 1585 | "KRN",8994 ,343,2,1,1 ,0) | |
| 1586 | ^^2^2^3150 707^ | |
| 1587 | "KRN",8994 ,343,2,1,1 ,1,0) | |
| 1588 | SECID fiel d (#205.1) in the NE W PERSON f ile (#200) to match the SecID in | |
| 1589 | "KRN",8994 ,343,2,1,1 ,2,0) | |
| 1590 | the user's SAML Toke n. | |
| 1591 | "KRN",8994 ,343,2,2,0 ) | |
| 1592 | AUTHCODE^1 ^80^1^2 | |
| 1593 | "KRN",8994 ,343,2,2,1 ,0) | |
| 1594 | ^8994.021^ 1^1^315072 2^^ | |
| 1595 | "KRN",8994 ,343,2,2,1 ,1,0) | |
| 1596 | Security P hrase for IAM Provis ioning App lication. | |
| 1597 | "KRN",8994 ,343,2,"B" ,"AUTHCODE ",2) | |
| 1598 | ||
| 1599 | "KRN",8994 ,343,2,"B" ,"SECID",1 ) | |
| 1600 | ||
| 1601 | "KRN",8994 ,343,2,"PA RAMSEQ",1, 1) | |
| 1602 | ||
| 1603 | "KRN",8994 ,343,2,"PA RAMSEQ",2, 2) | |
| 1604 | ||
| 1605 | "KRN",8994 ,343,3,0) | |
| 1606 | ^^3^3^3150 722^ | |
| 1607 | "KRN",8994 ,343,3,1,0 ) | |
| 1608 | Fail R( 0) = "-1^N umber of E rrors" | |
| 1609 | "KRN",8994 ,343,3,2,0 ) | |
| 1610 | R( 1) through RES(n) = "Error Mes sage" | |
| 1611 | "KRN",8994 ,343,3,3,0 ) | |
| 1612 | Success R( 0) = 1 | |
| 1613 | "KRN",8994 ,347,-1) | |
| 1614 | 0^17 | |
| 1615 | "KRN",8994 ,347,0) | |
| 1616 | XUS BSE TO KEN^BSETOK EN^XUSBSE1 ^1^S^^^^1^ ^1 | |
| 1617 | "KRN",8994 ,347,1,0) | |
| 1618 | ^^5^5^3160 105^ | |
| 1619 | "KRN",8994 ,347,1,1,0 ) | |
| 1620 | RPC ICR #T BD - API I CR #none | |
| 1621 | "KRN",8994 ,347,1,2,0 ) | |
| 1622 | This API/R PC returns a string from the c urrent use r authenti cation tha t | |
| 1623 | "KRN",8994 ,347,1,3,0 ) | |
| 1624 | can be use d to authe nticate th e user on a visited system. Th e applicat ion | |
| 1625 | "KRN",8994 ,347,1,4,0 ) | |
| 1626 | is identif ied by a s ecurity ph rase that, when hash ed, matche s the stor ed | |
| 1627 | "KRN",8994 ,347,1,5,0 ) | |
| 1628 | hash of an authorize d applicat ion in the REMOTE AP PLICATION file (#899 4.5) | |
| 1629 | "KRN",8994 ,347,2,0) | |
| 1630 | ^8994.02A^ 1^1 | |
| 1631 | "KRN",8994 ,347,2,1,0 ) | |
| 1632 | XPHRASE^1^ 90^1^1 | |
| 1633 | "KRN",8994 ,347,2,1,1 ,0) | |
| 1634 | ^^2^2^3160 105^ | |
| 1635 | "KRN",8994 ,347,2,1,1 ,1,0) | |
| 1636 | Input: X PHRASE = S ecurity ph rase to be used to a uthenticat e and iden tify | |
| 1637 | "KRN",8994 ,347,2,1,1 ,2,0) | |
| 1638 | the applic ation. | |
| 1639 | "KRN",8994 ,347,2,"B" ,"XPHRASE" ,1) | |
| 1640 | ||
| 1641 | "KRN",8994 ,347,2,"PA RAMSEQ",1, 1) | |
| 1642 | ||
| 1643 | "KRN",8994 ,347,3,0) | |
| 1644 | ^8994.03^3 ^3^3160105 ^^ | |
| 1645 | "KRN",8994 ,347,3,1,0 ) | |
| 1646 | RET = Comp lete BSE l ogin strin g (no proc essing req uired by m iddleware or | |
| 1647 | "KRN",8994 ,347,3,2,0 ) | |
| 1648 | client) to be passed to the XW BUSRNM inp ut paramet er of the XUS SIGNON | |
| 1649 | "KRN",8994 ,347,3,3,0 ) | |
| 1650 | SETUP remo te procedu re. | |
| 1651 | "MBREQ") | |
| 1652 | 0 | |
| 1653 | "ORD",0,9. 8) | |
| 1654 | 9.8;;1;RTN F^XPDTA;RT NE^XPDTA | |
| 1655 | "ORD",0,9. 8,0) | |
| 1656 | ROUTINE | |
| 1657 | "ORD",5,.4 ) | |
| 1658 | .4;5;;;EDE OUT^DIFROM SO(.4,DA," ",XPDA);FP RE^DIFROMS I(.4,"",XP DA);EPRE^D IFROMSI(.4 ,DA,$E("N" ,$G(XPDNEW )),XPDA,"" ,OLDA);;EP OST^DIFROM SI(.4,DA," ",XPDA);DE L^DIFROMSK (.4,"",%) | |
| 1659 | "ORD",5,.4 ,0) | |
| 1660 | PRINT TEMP LATE | |
| 1661 | "ORD",16,8 994) | |
| 1662 | 8994;16;1; ;;;;;;RPCD EL^XPDIA1 | |
| 1663 | "ORD",16,8 994,0) | |
| 1664 | REMOTE PRO CEDURE | |
| 1665 | "ORD",18,1 9) | |
| 1666 | 19;18;;;OP T^XPDTA;OP TF1^XPDIA; OPTE1^XPDI A;OPTF2^XP DIA;;OPTDE L^XPDIA | |
| 1667 | "ORD",18,1 9,0) | |
| 1668 | OPTION | |
| 1669 | "PKG",3,-1 ) | |
| 1670 | 1^1 | |
| 1671 | "PKG",3,0) | |
| 1672 | KERNEL^XU^ SIGN-ON, S ECURITY, M ENU DRIVER , DEVICES, TASKMAN^ | |
| 1673 | "PKG",3,22 ,0) | |
| 1674 | ^9.49I^1^1 | |
| 1675 | "PKG",3,22 ,1,0) | |
| 1676 | 8.0^309070 6^3090706^ 6 | |
| 1677 | "PKG",3,22 ,1,"PAH",1 ,0) | |
| 1678 | 659^316030 8 | |
| 1679 | "PKG",3,22 ,1,"PAH",1 ,1,0) | |
| 1680 | ^^8^8^3160 308 | |
| 1681 | "PKG",3,22 ,1,"PAH",1 ,1,1,0) | |
| 1682 | This patch provides enhancemen ts needed to impleme nt Single Sign-On | |
| 1683 | "PKG",3,22 ,1,"PAH",1 ,1,2,0) | |
| 1684 | Internal ( SSOi) for identifica tion and a uthenticat ion of use rs into Vi stA. | |
| 1685 | "PKG",3,22 ,1,"PAH",1 ,1,3,0) | |
| 1686 | ||
| 1687 | "PKG",3,22 ,1,"PAH",1 ,1,4,0) | |
| 1688 | The use of these uti lities are expected to improve security and auditi ng | |
| 1689 | "PKG",3,22 ,1,"PAH",1 ,1,5,0) | |
| 1690 | capabiliti es in acco rdance wit h VA Handb ook 6500 A ppendix F and revisi on 4 | |
| 1691 | "PKG",3,22 ,1,"PAH",1 ,1,6,0) | |
| 1692 | of NIST SP 800-53. A s required by FIPS 1 99 and usi ng guidanc e from NIS T SP | |
| 1693 | "PKG",3,22 ,1,"PAH",1 ,1,7,0) | |
| 1694 | 800-60, th e recommen ded securi ty categor ization fo r these ap plications is | |
| 1695 | "PKG",3,22 ,1,"PAH",1 ,1,8,0) | |
| 1696 | HIGH. | |
| 1697 | "QUES","XP F1",0) | |
| 1698 | Y | |
| 1699 | "QUES","XP F1","??") | |
| 1700 | ^D REP^XPD H | |
| 1701 | "QUES","XP F1","A") | |
| 1702 | Shall I wr ite over y our |FLAG| File | |
| 1703 | "QUES","XP F1","B") | |
| 1704 | YES | |
| 1705 | "QUES","XP F1","M") | |
| 1706 | D XPF1^XPD IQ | |
| 1707 | "QUES","XP F2",0) | |
| 1708 | Y | |
| 1709 | "QUES","XP F2","??") | |
| 1710 | ^D DTA^XPD H | |
| 1711 | "QUES","XP F2","A") | |
| 1712 | Want my da ta |FLAG| yours | |
| 1713 | "QUES","XP F2","B") | |
| 1714 | YES | |
| 1715 | "QUES","XP F2","M") | |
| 1716 | D XPF2^XPD IQ | |
| 1717 | "QUES","XP I1",0) | |
| 1718 | YO | |
| 1719 | "QUES","XP I1","??") | |
| 1720 | ^D INHIBIT ^XPDH | |
| 1721 | "QUES","XP I1","A") | |
| 1722 | Want KIDS to INHIBIT LOGONs du ring the i nstall | |
| 1723 | "QUES","XP I1","B") | |
| 1724 | NO | |
| 1725 | "QUES","XP I1","M") | |
| 1726 | D XPI1^XPD IQ | |
| 1727 | "QUES","XP M1",0) | |
| 1728 | PO^VA(200, :EM | |
| 1729 | "QUES","XP M1","??") | |
| 1730 | ^D MG^XPDH | |
| 1731 | "QUES","XP M1","A") | |
| 1732 | Enter the Coordinato r for Mail Group '|F LAG|' | |
| 1733 | "QUES","XP M1","B") | |
| 1734 | ||
| 1735 | "QUES","XP M1","M") | |
| 1736 | D XPM1^XPD IQ | |
| 1737 | "QUES","XP O1",0) | |
| 1738 | Y | |
| 1739 | "QUES","XP O1","??") | |
| 1740 | ^D MENU^XP DH | |
| 1741 | "QUES","XP O1","A") | |
| 1742 | Want KIDS to Rebuild Menu Tree s Upon Com pletion of Install | |
| 1743 | "QUES","XP O1","B") | |
| 1744 | NO | |
| 1745 | "QUES","XP O1","M") | |
| 1746 | D XPO1^XPD IQ | |
| 1747 | "QUES","XP Z1",0) | |
| 1748 | Y | |
| 1749 | "QUES","XP Z1","??") | |
| 1750 | ^D OPT^XPD H | |
| 1751 | "QUES","XP Z1","A") | |
| 1752 | Want to DI SABLE Sche duled Opti ons, Menu Options, a nd Protoco ls | |
| 1753 | "QUES","XP Z1","B") | |
| 1754 | NO | |
| 1755 | "QUES","XP Z1","M") | |
| 1756 | D XPZ1^XPD IQ | |
| 1757 | "QUES","XP Z2",0) | |
| 1758 | Y | |
| 1759 | "QUES","XP Z2","??") | |
| 1760 | ^D RTN^XPD H | |
| 1761 | "QUES","XP Z2","A") | |
| 1762 | Want to MO VE routine s to other CPUs | |
| 1763 | "QUES","XP Z2","B") | |
| 1764 | NO | |
| 1765 | "QUES","XP Z2","M") | |
| 1766 | D XPZ2^XPD IQ | |
| 1767 | "RTN") | |
| 1768 | 19 | |
| 1769 | "RTN","XLF NSLK") | |
| 1770 | 0^27^B3961 6756^B4438 4655 | |
| 1771 | "RTN","XLF NSLK",1,0) | |
| 1772 | XLFNSLK ;I SF/RWF,ISD /HGW - Cal ling a DNS server fo r name loo kup ;12/08 /15 12:44 | |
| 1773 | "RTN","XLF NSLK",2,0) | |
| 1774 | ;;8.0;KER NEL;**142, 151,425,63 8,659**;Ju l 10, 1995 ;Build 22 | |
| 1775 | "RTN","XLF NSLK",3,0) | |
| 1776 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 1777 | "RTN","XLF NSLK",4,0) | |
| 1778 | ; | |
| 1779 | "RTN","XLF NSLK",5,0) | |
| 1780 | Q | |
| 1781 | "RTN","XLF NSLK",6,0) | |
| 1782 | TEST ;Test entry | |
| 1783 | "RTN","XLF NSLK",7,0) | |
| 1784 | N XNAME | |
| 1785 | "RTN","XLF NSLK",8,0) | |
| 1786 | R !,"Ente r an IP ad dress to l ookup: www . DNS //",XNAME: DTIME S:XN AME="" XNA ME="www. DNS " Q:XNAME[ "^" | |
| 1787 | "RTN","XLF NSLK",9,0) | |
| 1788 | W !!,"Loo king up IP v4 address : ",XNAME | |
| 1789 | "RTN","XLF NSLK",10,0 ) | |
| 1790 | W !,?5,XN AME,". > " ,$$ADDRESS (XNAME,"A" ) | |
| 1791 | "RTN","XLF NSLK",11,0 ) | |
| 1792 | W !!,"Loo king up IP v6 address : ",XNAME | |
| 1793 | "RTN","XLF NSLK",12,0 ) | |
| 1794 | W !,?5,XN AME,". > " ,$$ADDRESS (XNAME,"AA AA") | |
| 1795 | "RTN","XLF NSLK",13,0 ) | |
| 1796 | W ! | |
| 1797 | "RTN","XLF NSLK",14,0 ) | |
| 1798 | Q | |
| 1799 | "RTN","XLF NSLK",15,0 ) | |
| 1800 | ; | |
| 1801 | "RTN","XLF NSLK",16,0 ) | |
| 1802 | HOST(IP) ; Get a host name from an IP add ress | |
| 1803 | "RTN","XLF NSLK",17,0 ) | |
| 1804 | ;ZEXCEPT: AddrToHos tName,INet Info,TextA ddrToBinar y ;Kernel exemption for Cache Objects | |
| 1805 | "RTN","XLF NSLK",18,0 ) | |
| 1806 | N X,Y | |
| 1807 | "RTN","XLF NSLK",19,0 ) | |
| 1808 | I $$VERSI ON^%ZOSV(1 )["Cache" D Q Y | |
| 1809 | "RTN","XLF NSLK",20,0 ) | |
| 1810 | . S X=$SY STEM.INetI nfo.TextAd drToBinary (IP) | |
| 1811 | "RTN","XLF NSLK",21,0 ) | |
| 1812 | . S Y=$SY STEM.INetI nfo.AddrTo HostName(X ) | |
| 1813 | "RTN","XLF NSLK",22,0 ) | |
| 1814 | ;Enter co de for non -Cache sys tems here: | |
| 1815 | "RTN","XLF NSLK",23,0 ) | |
| 1816 | Q "" | |
| 1817 | "RTN","XLF NSLK",24,0 ) | |
| 1818 | ; | |
| 1819 | "RTN","XLF NSLK",25,0 ) | |
| 1820 | ADDRESS(N, T) ;Get a IP address from a na me | |
| 1821 | "RTN","XLF NSLK",26,0 ) | |
| 1822 | ;ZEXCEPT: HostNameT oAddr,INet Info ;Kern el exempti on for Cac he Objects | |
| 1823 | "RTN","XLF NSLK",27,0 ) | |
| 1824 | N X,XLF,Y ,I S XLF=" ",Y=0 | |
| 1825 | "RTN","XLF NSLK",28,0 ) | |
| 1826 | I $$VERSI ON^XLFIPV S T=$G(T," AAAA") | |
| 1827 | "RTN","XLF NSLK",29,0 ) | |
| 1828 | E S T=$G (T,"A") ; change def ault to "A " if VistA has IPv6 disabled | |
| 1829 | "RTN","XLF NSLK",30,0 ) | |
| 1830 | I ($$VERS ION^%ZOSV( 1)["Cache" )&((T="A") !(T="AAAA" )) D Q Y | |
| 1831 | "RTN","XLF NSLK",31,0 ) | |
| 1832 | . I T="AA AA" D | |
| 1833 | "RTN","XLF NSLK",32,0 ) | |
| 1834 | . . S X=$ SYSTEM.INe tInfo.Host NameToAddr (N,2,0) ;G et IPv6 ad dress | |
| 1835 | "RTN","XLF NSLK",33,0 ) | |
| 1836 | . . S Y=$ $FORCEIP6^ XLFIPV(X) ;Format IP v6 address | |
| 1837 | "RTN","XLF NSLK",34,0 ) | |
| 1838 | . I ($P(Y ,":")="000 0")!(T="A" ) S Y=$SYS TEM.INetIn fo.HostNam eToAddr(N, 1,0) ;Get IPv4 addre ss | |
| 1839 | "RTN","XLF NSLK",35,0 ) | |
| 1840 | ;Non-cach e systems and lookup s other th an "A" or "AAAA" | |
| 1841 | "RTN","XLF NSLK",36,0 ) | |
| 1842 | D NS(.XLF ,N,T) | |
| 1843 | "RTN","XLF NSLK",37,0 ) | |
| 1844 | S Y="" F I=1:1:XLF( "ANCOUNT") S:$D(XLF( "AN"_I_"DA TA")) Y=Y_ XLF("AN"_I _"DATA")_" ," | |
| 1845 | "RTN","XLF NSLK",38,0 ) | |
| 1846 | Q $E(Y,1, $L(Y)-1) | |
| 1847 | "RTN","XLF NSLK",39,0 ) | |
| 1848 | ; | |
| 1849 | "RTN","XLF NSLK",40,0 ) | |
| 1850 | MAIL(RET,N ) ;Get the MX addres s for a do main | |
| 1851 | "RTN","XLF NSLK",41,0 ) | |
| 1852 | ;RET is t he return array | |
| 1853 | "RTN","XLF NSLK",42,0 ) | |
| 1854 | N XLF,Y,I ,T S XLF=" ",T="MX" | |
| 1855 | "RTN","XLF NSLK",43,0 ) | |
| 1856 | D NS(.XLF ,N,T) | |
| 1857 | "RTN","XLF NSLK",44,0 ) | |
| 1858 | S RET=0,I =0 F S I= $O(XLF("P" ,I)) Q:I'> 0 D | |
| 1859 | "RTN","XLF NSLK",45,0 ) | |
| 1860 | . S N=XLF ("P",I),RE T(I)=N_"^" _$G(XLF("B ",N)),RET= RET+1 | |
| 1861 | "RTN","XLF NSLK",46,0 ) | |
| 1862 | Q | |
| 1863 | "RTN","XLF NSLK",47,0 ) | |
| 1864 | ; | |
| 1865 | "RTN","XLF NSLK",48,0 ) | |
| 1866 | NS(XL,NAME ,QTYPE,XLF LOG) ;NAME LOOKUP | |
| 1867 | "RTN","XLF NSLK",49,0 ) | |
| 1868 | ;XL is th e return a rray, NAME is the na me to look up, | |
| 1869 | "RTN","XLF NSLK",50,0 ) | |
| 1870 | ;QTYPE is type of l ookup, XLF LOG is a d ebug array returned. | |
| 1871 | "RTN","XLF NSLK",51,0 ) | |
| 1872 | N RI,DNS, CNT,POP N: '$D(XLFLOG ) XLFLOG S XL("ANCOU NT")=0,CNT =1 | |
| 1873 | "RTN","XLF NSLK",52,0 ) | |
| 1874 | D SAVEDEV | |
| 1875 | "RTN","XLF NSLK",53,0 ) | |
| 1876 | NS2 ; | |
| 1877 | "RTN","XLF NSLK",54,0 ) | |
| 1878 | S DNS=$$G ETDNS(CNT) I DNS="" G EXIT | |
| 1879 | "RTN","XLF NSLK",55,0 ) | |
| 1880 | D LOG("Ca ll server: "_DNS) | |
| 1881 | "RTN","XLF NSLK",56,0 ) | |
| 1882 | D CALL^%Z ISTCP(DNS, 53) I POP S CNT=CNT+ 1 G NS2 | |
| 1883 | "RTN","XLF NSLK",57,0 ) | |
| 1884 | D LOG("Go t connecti on, Send m essage") | |
| 1885 | "RTN","XLF NSLK",58,0 ) | |
| 1886 | D BUILD(N AME,$G(QTY PE,"AAAA") ),LOG("Wai t for repl y") ; Use s "AAAA" t ype for IP v6 if QTYP E is not d efined | |
| 1887 | "RTN","XLF NSLK",59,0 ) | |
| 1888 | ;Close pa rt of READ | |
| 1889 | "RTN","XLF NSLK",60,0 ) | |
| 1890 | D READ,DE CODE | |
| 1891 | "RTN","XLF NSLK",61,0 ) | |
| 1892 | D RESDEV, LOG("Retur ned questi on: "_$G(X L("QD1NAME "))) | |
| 1893 | "RTN","XLF NSLK",62,0 ) | |
| 1894 | Q | |
| 1895 | "RTN","XLF NSLK",63,0 ) | |
| 1896 | EXIT D RES DEV | |
| 1897 | "RTN","XLF NSLK",64,0 ) | |
| 1898 | Q | |
| 1899 | "RTN","XLF NSLK",65,0 ) | |
| 1900 | ; | |
| 1901 | "RTN","XLF NSLK",66,0 ) | |
| 1902 | BUILD(Y,T) ;BUILD A QUERY | |
| 1903 | "RTN","XLF NSLK",67,0 ) | |
| 1904 | ; ID,PARA M,#of?, #o fA, #of Au th, #of ad d, | |
| 1905 | "RTN","XLF NSLK",68,0 ) | |
| 1906 | N X,%,MSG ,I | |
| 1907 | "RTN","XLF NSLK",69,0 ) | |
| 1908 | S X=" M"_ $C(1,0)_$C (0,1)_$C(0 ,0)_$C(0,0 )_$C(0,0) ;Header | |
| 1909 | "RTN","XLF NSLK",70,0 ) | |
| 1910 | I $E(Y,$L (Y))'="." S:$E(Y,$L( Y))'="." Y =Y_"." | |
| 1911 | "RTN","XLF NSLK",71,0 ) | |
| 1912 | F I=1:1:$ L(Y,".") S %=$P(Y,". ",I) S:$L( %) X=X_$C( $L(%))_% ; FQDN Addre ss | |
| 1913 | "RTN","XLF NSLK",72,0 ) | |
| 1914 | S X=X_$C( 0) ;End of FQDN addr ess | |
| 1915 | "RTN","XLF NSLK",73,0 ) | |
| 1916 | ;Type A=1 , NS=2, CN AME=5, MX= 15, AAAA=2 8 | |
| 1917 | "RTN","XLF NSLK",74,0 ) | |
| 1918 | S MSG=X_$ C(0,$$TYPE CODE(T))_$ C(0,1) ;ty pe and cla ss | |
| 1919 | "RTN","XLF NSLK",75,0 ) | |
| 1920 | D LOG("ms g: "_MSG) | |
| 1921 | "RTN","XLF NSLK",76,0 ) | |
| 1922 | U IO S %= $L(MSG) W $C(%\256,% #256)_MSG, ! | |
| 1923 | "RTN","XLF NSLK",77,0 ) | |
| 1924 | Q | |
| 1925 | "RTN","XLF NSLK",78,0 ) | |
| 1926 | READ ; | |
| 1927 | "RTN","XLF NSLK",79,0 ) | |
| 1928 | ;ZEXCEPT: I,RI,XL ; Global var iables wit hin this r outine | |
| 1929 | "RTN","XLF NSLK",80,0 ) | |
| 1930 | N L1,L2,X ,$ET S $ET ="G RDERR" K RI S RI =0 | |
| 1931 | "RTN","XLF NSLK",81,0 ) | |
| 1932 | U IO R L1 #2:20 I '$ T D LOG("T ime-out") G RDERR | |
| 1933 | "RTN","XLF NSLK",82,0 ) | |
| 1934 | S RI=$A(L 1,1)*256+$ A(L1,2) ;g et msg len gth | |
| 1935 | "RTN","XLF NSLK",83,0 ) | |
| 1936 | F I=1:1:6 R L2#2:20 Q:'$T S XL($P("ID^ CODE^QDCOU NT^ANCOUNT ^NSCOUNT^A RCOUNT","^ ",I))=$S(I >2:$$WBN(L 2),I=2:$$B IN16(L2),1 :L2) | |
| 1937 | "RTN","XLF NSLK",84,0 ) | |
| 1938 | I '$T D L OG("Time-o ut") G RDE RR | |
| 1939 | "RTN","XLF NSLK",85,0 ) | |
| 1940 | D LOG("Re turn msg l ength: "_R I) | |
| 1941 | "RTN","XLF NSLK",86,0 ) | |
| 1942 | F I=13:1: RI U IO R *X:20 Q:'$ T S RI(I) =X ;or use X#1 and $ A(X) | |
| 1943 | "RTN","XLF NSLK",87,0 ) | |
| 1944 | RDERR ;End of read | |
| 1945 | "RTN","XLF NSLK",88,0 ) | |
| 1946 | D CLOSE^% ZISTCP | |
| 1947 | "RTN","XLF NSLK",89,0 ) | |
| 1948 | Q | |
| 1949 | "RTN","XLF NSLK",90,0 ) | |
| 1950 | DECODE ; | |
| 1951 | "RTN","XLF NSLK",91,0 ) | |
| 1952 | ;ZEXCEPT: XL ;Globa l variable within th is routine | |
| 1953 | "RTN","XLF NSLK",92,0 ) | |
| 1954 | N I,IX,X, Y,Z,NN,NN2 Q:RI'>7 | |
| 1955 | "RTN","XLF NSLK",93,0 ) | |
| 1956 | I $G(XL(" ID"))'=" M " S XL("ER R")="Bad R esponse" D LOG(XL("E RR")) Q | |
| 1957 | "RTN","XLF NSLK",94,0 ) | |
| 1958 | ;Decode t he header | |
| 1959 | "RTN","XLF NSLK",95,0 ) | |
| 1960 | S Z=XL("C ODE"),XL(" QR")=$E(Z, 1),XL("Opc ode")=$E(Z ,2,5),XL(" AA")=$E(Z, 6),XL("TC" )=$E(Z,7), XL("RD")=$ E(Z,8),XL( "RA")=$E(Z ,9),XL("RC ODE")=$E(Z ,13,16) | |
| 1961 | "RTN","XLF NSLK",96,0 ) | |
| 1962 | ;The Ques tion secti on | |
| 1963 | "RTN","XLF NSLK",97,0 ) | |
| 1964 | S IX=13 | |
| 1965 | "RTN","XLF NSLK",98,0 ) | |
| 1966 | F NN2=1:1 :XL("QDCOU NT") D QD( "QD"_NN2) | |
| 1967 | "RTN","XLF NSLK",99,0 ) | |
| 1968 | F NN="AN" ,"NS","AR" I $G(XL(N N_"COUNT") ) F NN2=1: 1:XL(NN_"C OUNT") D R R(NN_NN2) | |
| 1969 | "RTN","XLF NSLK",100, 0) | |
| 1970 | Q | |
| 1971 | "RTN","XLF NSLK",101, 0) | |
| 1972 | ; | |
| 1973 | "RTN","XLF NSLK",102, 0) | |
| 1974 | QD(NSP) ;D ecode the Question s ection | |
| 1975 | "RTN","XLF NSLK",103, 0) | |
| 1976 | ;ZEXCEPT: IX,RI,XL ;Global va riables wi thin this routine | |
| 1977 | "RTN","XLF NSLK",104, 0) | |
| 1978 | N Y | |
| 1979 | "RTN","XLF NSLK",105, 0) | |
| 1980 | S Y="",IX =IX+$$NAME (IX,.Y,1), XL(NSP_"NA ME")=Y | |
| 1981 | "RTN","XLF NSLK",106, 0) | |
| 1982 | S XL(NSP_ "TYPE")=$$ BN(RI(IX), RI(IX+1)), IX=IX+2 | |
| 1983 | "RTN","XLF NSLK",107, 0) | |
| 1984 | S XL(NSP_ "CLASS")=$ $BN(RI(IX) ,RI(IX+1)) ,IX=IX+2 | |
| 1985 | "RTN","XLF NSLK",108, 0) | |
| 1986 | Q | |
| 1987 | "RTN","XLF NSLK",109, 0) | |
| 1988 | RR(NSP) ; | |
| 1989 | "RTN","XLF NSLK",110, 0) | |
| 1990 | ;ZEXCEPT: IX,RI,X,X L ;Global variables within thi s routine | |
| 1991 | "RTN","XLF NSLK",111, 0) | |
| 1992 | N Y,NA | |
| 1993 | "RTN","XLF NSLK",112, 0) | |
| 1994 | S Y="",IX =IX+$$NAME (IX,.Y,1), XL(NSP_"NA ME")=Y,NA= Y | |
| 1995 | "RTN","XLF NSLK",113, 0) | |
| 1996 | S XL(NSP_ "TYPE")=$$ BN(RI(IX), RI(IX+1)), IX=IX+2 | |
| 1997 | "RTN","XLF NSLK",114, 0) | |
| 1998 | S XL(NSP_ "CLASS")=$ $BN(RI(IX) ,RI(IX+1)) ,IX=IX+2 | |
| 1999 | "RTN","XLF NSLK",115, 0) | |
| 2000 | S Y=RI(IX )*256+RI(I X+1),Y=Y*2 56+RI(IX+2 ),Y=Y*256+ RI(IX+3) | |
| 2001 | "RTN","XLF NSLK",116, 0) | |
| 2002 | S XL(NSP_ "TTL")=Y,I X=IX+4 | |
| 2003 | "RTN","XLF NSLK",117, 0) | |
| 2004 | S (X,XL(N SP_"LENGTH "))=$$BN(R I(IX),RI(I X+1)),IX=I X+2 Q:X=0 | |
| 2005 | "RTN","XLF NSLK",118, 0) | |
| 2006 | I XL(NSP_ "TYPE")=1 D ; IPv4 a ddress | |
| 2007 | "RTN","XLF NSLK",119, 0) | |
| 2008 | . S XL(NS P_"DATA")= RI(IX)_"." _RI(IX+1)_ "."_RI(IX+ 2)_"."_RI( IX+3),XL(" B",NA)=XL( NSP_"DATA" ) | |
| 2009 | "RTN","XLF NSLK",120, 0) | |
| 2010 | I XL(NSP_ "TYPE")=28 D ; IPv6 a ddress | |
| 2011 | "RTN","XLF NSLK",121, 0) | |
| 2012 | . S XL(NS P_"DATA")= $$H1(RI(IX ))_$$H1(RI (IX+1))_": "_$$H1(RI( IX+2))_$$H 1(RI(IX+3) )_":" | |
| 2013 | "RTN","XLF NSLK",122, 0) | |
| 2014 | . S XL(NS P_"DATA")= XL(NSP_"DA TA")_$$H1( RI(IX+4))_ $$H1(RI(IX +5))_":"_$ $H1(RI(IX+ 6))_$$H1(R I(IX+7))_" :" | |
| 2015 | "RTN","XLF NSLK",123, 0) | |
| 2016 | . S XL(NS P_"DATA")= XL(NSP_"DA TA")_$$H1( RI(IX+8))_ $$H1(RI(IX +9))_":"_$ $H1(RI(IX+ 10))_$$H1( RI(IX+11)) _":" | |
| 2017 | "RTN","XLF NSLK",124, 0) | |
| 2018 | . S XL(NS P_"DATA")= XL(NSP_"DA TA")_$$H1( RI(IX+12)) _$$H1(RI(I X+13))_":" _$$H1(RI(I X+14))_$$H 1(RI(IX+15 )) | |
| 2019 | "RTN","XLF NSLK",125, 0) | |
| 2020 | . S XL("B ",NA)=XL(N SP_"DATA") | |
| 2021 | "RTN","XLF NSLK",126, 0) | |
| 2022 | I XL(NSP_ "TYPE")=15 D MX(IX) ; MX ent ry | |
| 2023 | "RTN","XLF NSLK",127, 0) | |
| 2024 | S IX=IX+X L(NSP_"LEN GTH") | |
| 2025 | "RTN","XLF NSLK",128, 0) | |
| 2026 | Q | |
| 2027 | "RTN","XLF NSLK",129, 0) | |
| 2028 | NAME(I,NM, F) ;Decode a NAME se ction | |
| 2029 | "RTN","XLF NSLK",130, 0) | |
| 2030 | ;ZEXCEPT: RI ;Globa l variable within th is routine | |
| 2031 | "RTN","XLF NSLK",131, 0) | |
| 2032 | N P,T,Y,X S NM=$G(N M) S:F T=0 | |
| 2033 | "RTN","XLF NSLK",132, 0) | |
| 2034 | F S X=RI (I) S:(X=0 )&F T=T+1 Q:X=0 D Q:X=0 ;Us e X as fla g to escap e recursio n. | |
| 2035 | "RTN","XLF NSLK",133, 0) | |
| 2036 | . I (X\64 )=3 S X=$$ NAME((X#64 )*256+RI(I +1)+1,.NM, 0),X=0 S:F T=T+2 Q | |
| 2037 | "RTN","XLF NSLK",134, 0) | |
| 2038 | . S NM=NM _$$PART(I+ 1,X),I=I+X +1 S:F T=T +X+1 | |
| 2039 | "RTN","XLF NSLK",135, 0) | |
| 2040 | Q $G(T) | |
| 2041 | "RTN","XLF NSLK",136, 0) | |
| 2042 | ; | |
| 2043 | "RTN","XLF NSLK",137, 0) | |
| 2044 | MX(IX) ;Hi de IX chan ges | |
| 2045 | "RTN","XLF NSLK",138, 0) | |
| 2046 | ;ZEXCEPT: NSP,RI,XL ;Global v ariables w ithin this routine | |
| 2047 | "RTN","XLF NSLK",139, 0) | |
| 2048 | N Y S Y=$ $BN(RI(IX) ,RI(IX+1)) | |
| 2049 | "RTN","XLF NSLK",140, 0) | |
| 2050 | F Q:'$D( XL("P",Y)) S Y=Y+1 | |
| 2051 | "RTN","XLF NSLK",141, 0) | |
| 2052 | S XL(NSP_ "PREF")=Y, IX=IX+2 | |
| 2053 | "RTN","XLF NSLK",142, 0) | |
| 2054 | S Y="",IX =IX+$$NAME (IX,.Y,1), XL(NSP_"NA ME")=Y,XL( "P",XL(NSP _"PREF"))= Y | |
| 2055 | "RTN","XLF NSLK",143, 0) | |
| 2056 | Q | |
| 2057 | "RTN","XLF NSLK",144, 0) | |
| 2058 | ; | |
| 2059 | "RTN","XLF NSLK",145, 0) | |
| 2060 | BN(Z1,Z2) ;Convert t wo binary char 16 bi t number i nto ASCII number | |
| 2061 | "RTN","XLF NSLK",146, 0) | |
| 2062 | Q Z1*256+ Z2 | |
| 2063 | "RTN","XLF NSLK",147, 0) | |
| 2064 | ; | |
| 2065 | "RTN","XLF NSLK",148, 0) | |
| 2066 | WBN(Z1) ;C onvert two byte stri ng to a AS CII number | |
| 2067 | "RTN","XLF NSLK",149, 0) | |
| 2068 | Q $A(Z1,1 )*256+$A(Z 1,2) | |
| 2069 | "RTN","XLF NSLK",150, 0) | |
| 2070 | ; | |
| 2071 | "RTN","XLF NSLK",151, 0) | |
| 2072 | H2(Z2) ;Co nvert 2 by te string to HEX | |
| 2073 | "RTN","XLF NSLK",152, 0) | |
| 2074 | N B S B=$ A(Z2,1)*25 6+$A(Z2,2) | |
| 2075 | "RTN","XLF NSLK",153, 0) | |
| 2076 | Q $$H(B) | |
| 2077 | "RTN","XLF NSLK",154, 0) | |
| 2078 | ; | |
| 2079 | "RTN","XLF NSLK",155, 0) | |
| 2080 | H1(Z1) ;Co nvert deci mal number <= 256 to two digit HEX numbe r | |
| 2081 | "RTN","XLF NSLK",156, 0) | |
| 2082 | N Y S Y=$ $CNV^XLFUT L(Z1,16) | |
| 2083 | "RTN","XLF NSLK",157, 0) | |
| 2084 | Q $$RJ^XL FSTR(Y,2," 0") | |
| 2085 | "RTN","XLF NSLK",158, 0) | |
| 2086 | ; | |
| 2087 | "RTN","XLF NSLK",159, 0) | |
| 2088 | H(Z1) Q $$ BASE^XLFUT L(Z1,10,16 ) | |
| 2089 | "RTN","XLF NSLK",160, 0) | |
| 2090 | ; | |
| 2091 | "RTN","XLF NSLK",161, 0) | |
| 2092 | BIN16(S) ; Convert tw o byte str ing to 16 bit binary | |
| 2093 | "RTN","XLF NSLK",162, 0) | |
| 2094 | N K,Y S S =$A(S,1)*2 56+$A(S,2) ,Y="" | |
| 2095 | "RTN","XLF NSLK",163, 0) | |
| 2096 | F K=0:1:1 5 S Y=(S\( 2**K)#2)_Y | |
| 2097 | "RTN","XLF NSLK",164, 0) | |
| 2098 | Q Y | |
| 2099 | "RTN","XLF NSLK",165, 0) | |
| 2100 | ; | |
| 2101 | "RTN","XLF NSLK",166, 0) | |
| 2102 | PART(S,L) ; | |
| 2103 | "RTN","XLF NSLK",167, 0) | |
| 2104 | ;ZEXCEPT: RI ;Globa l variable within th is routine | |
| 2105 | "RTN","XLF NSLK",168, 0) | |
| 2106 | N R,A S R ="" F A=S: 1:S+L-1 S R=R_$C(RI( A)) | |
| 2107 | "RTN","XLF NSLK",169, 0) | |
| 2108 | Q R_"." | |
| 2109 | "RTN","XLF NSLK",170, 0) | |
| 2110 | ; | |
| 2111 | "RTN","XLF NSLK",171, 0) | |
| 2112 | TYPECODE(T ) ; | |
| 2113 | "RTN","XLF NSLK",172, 0) | |
| 2114 | ;1=A:IPv4 address,2 =NS:namese rver,5=CNA ME,15=MX:m ail exchan ge,28=AAAA :IPv6 addr ess | |
| 2115 | "RTN","XLF NSLK",173, 0) | |
| 2116 | I +T Q $S (T=1:"A",T =2:"NS",T= 5:"CNAME", T=15:"MX", T=28:"AAAA ",1:"ZZ") | |
| 2117 | "RTN","XLF NSLK",174, 0) | |
| 2118 | Q $S(T="A ":1,T="NS" :2,T="CNAM E":5,T="MX ":15,T="AA AA":28,1:1 ) | |
| 2119 | "RTN","XLF NSLK",175, 0) | |
| 2120 | ; | |
| 2121 | "RTN","XLF NSLK",176, 0) | |
| 2122 | CLASS(T) ; | |
| 2123 | "RTN","XLF NSLK",177, 0) | |
| 2124 | Q $S(T=1: "IN",1:"ZZ ") | |
| 2125 | "RTN","XLF NSLK",178, 0) | |
| 2126 | ; | |
| 2127 | "RTN","XLF NSLK",179, 0) | |
| 2128 | GETDNS(I) ;Get the a ddress of our DNS | |
| 2129 | "RTN","XLF NSLK",180, 0) | |
| 2130 | N L S L=$ G(^XTV(898 9.3,1,"DNS ")) | |
| 2131 | "RTN","XLF NSLK",181, 0) | |
| 2132 | Q $P(L,", ",I) | |
| 2133 | "RTN","XLF NSLK",182, 0) | |
| 2134 | ; | |
| 2135 | "RTN","XLF NSLK",183, 0) | |
| 2136 | SW(T,H,V) ; | |
| 2137 | "RTN","XLF NSLK",184, 0) | |
| 2138 | W ?T,$J(H ,8),V | |
| 2139 | "RTN","XLF NSLK",185, 0) | |
| 2140 | Q | |
| 2141 | "RTN","XLF NSLK",186, 0) | |
| 2142 | SAVEDEV ;S ave callin g device | |
| 2143 | "RTN","XLF NSLK",187, 0) | |
| 2144 | D:'$D(IO( 0)) HOME^% ZIS D SAVD EV^%ZISUTL ("XLFNSLK" ) | |
| 2145 | "RTN","XLF NSLK",188, 0) | |
| 2146 | Q | |
| 2147 | "RTN","XLF NSLK",189, 0) | |
| 2148 | RESDEV ;Re store call ing device | |
| 2149 | "RTN","XLF NSLK",190, 0) | |
| 2150 | D USE^%ZI SUTL("XLFN SLK"),RMDE V^%ZISUTL( "XLFNSLK") | |
| 2151 | "RTN","XLF NSLK",191, 0) | |
| 2152 | K IO("CLO SE") | |
| 2153 | "RTN","XLF NSLK",192, 0) | |
| 2154 | Q | |
| 2155 | "RTN","XLF NSLK",193, 0) | |
| 2156 | LOG(M,XLFL OG) ;Log D ebug messa ges | |
| 2157 | "RTN","XLF NSLK",194, 0) | |
| 2158 | ;ZEXCEPT: XLFLOG ;G lobal vari able withi n this rou tine | |
| 2159 | "RTN","XLF NSLK",195, 0) | |
| 2160 | S XLFLOG= $G(XLFLOG) +1,XLFLOG( XLFLOG)=M | |
| 2161 | "RTN","XLF NSLK",196, 0) | |
| 2162 | Q | |
| 2163 | "RTN","XLF NSLK",197, 0) | |
| 2164 | ; | |
| 2165 | "RTN","XU8 PS655") | |
| 2166 | 1^17^^B102 640640 | |
| 2167 | "RTN","XU8 PS659") | |
| 2168 | 0^^B630504 06^n/a | |
| 2169 | "RTN","XU8 PS659",1,0 ) | |
| 2170 | XU8PS659 ; ISD/HGW - Post-Insta ll for XU* 8*659 ;12/ 17/15 10: 49 | |
| 2171 | "RTN","XU8 PS659",2,0 ) | |
| 2172 | ;;8.0;KER NEL;**659* *;Jul 10, 1995;Build 22 | |
| 2173 | "RTN","XU8 PS659",3,0 ) | |
| 2174 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 2175 | "RTN","XU8 PS659",4,0 ) | |
| 2176 | ; | |
| 2177 | "RTN","XU8 PS659",5,0 ) | |
| 2178 | ; Post I nstallatio n Routine for patch XU*8.0*659 | |
| 2179 | "RTN","XU8 PS659",6,0 ) | |
| 2180 | ; EXTERN AL REFEREN CES | |
| 2181 | "RTN","XU8 PS659",7,0 ) | |
| 2182 | ; BMES ^XPDUTL 10 141 | |
| 2183 | "RTN","XU8 PS659",8,0 ) | |
| 2184 | ; $$FI ND1^DIC | |
| 2185 | "RTN","XU8 PS659",9,0 ) | |
| 2186 | ; UPDA TE^DIE 205 3 | |
| 2187 | "RTN","XU8 PS659",10, 0) | |
| 2188 | ; | |
| 2189 | "RTN","XU8 PS659",11, 0) | |
| 2190 | MAIN ; Con trol subro utine | |
| 2191 | "RTN","XU8 PS659",12, 0) | |
| 2192 | N I,XDIR, XREF,XU8DA TA,XU8ERRX ,Y | |
| 2193 | "RTN","XU8 PS659",13, 0) | |
| 2194 | ; | |
| 2195 | "RTN","XU8 PS659",14, 0) | |
| 2196 | ; Delete old BSE Ex ample entr ies from R EMOTE APPL ICATION fi le (#8994. 5) | |
| 2197 | "RTN","XU8 PS659",15, 0) | |
| 2198 | S XU8DATA (1)="XUSBS E TEST1" ; Name | |
| 2199 | "RTN","XU8 PS659",16, 0) | |
| 2200 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2201 | "RTN","XU8 PS659",17, 0) | |
| 2202 | S XU8DATA (1)="XUSBS E TEST2" ; Name | |
| 2203 | "RTN","XU8 PS659",18, 0) | |
| 2204 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2205 | "RTN","XU8 PS659",19, 0) | |
| 2206 | S XU8DATA (1)="XUSBS E TEST3" ; Name | |
| 2207 | "RTN","XU8 PS659",20, 0) | |
| 2208 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2209 | "RTN","XU8 PS659",21, 0) | |
| 2210 | ; | |
| 2211 | "RTN","XU8 PS659",22, 0) | |
| 2212 | ; Install IAM Provi sioning en try into t he REMOTE APPLICATIO N file (#8 994.5) | |
| 2213 | "RTN","XU8 PS659",23, 0) | |
| 2214 | S XU8DATA (1)="IAM P ROVISIONIN G" ; Name | |
| 2215 | "RTN","XU8 PS659",24, 0) | |
| 2216 | S XU8DATA (2)="XUS I AM USER PR OVISIONING " ; Contex tOption Na me | |
| 2217 | "RTN","XU8 PS659",25, 0) | |
| 2218 | S XU8DATA (3)="IAM U ser Provis ioning" ; ContextOpt ion Menu T ext | |
| 2219 | "RTN","XU8 PS659",26, 0) | |
| 2220 | S XU8DATA (4)="put b utter squa re hat" ; Security p hrase | |
| 2221 | "RTN","XU8 PS659",27, 0) | |
| 2222 | ; For TYP E multiple , each ent ry should be XU8DATA (n)=CallBa ckType^Cal lBackPort^ CallBackSe rver^URLSt ring | |
| 2223 | "RTN","XU8 PS659",28, 0) | |
| 2224 | ; where n is 5, 6, 7, 8 etc. | |
| 2225 | "RTN","XU8 PS659",29, 0) | |
| 2226 | S XU8DATA (5)="S^-1^ N/A^N/A" | |
| 2227 | "RTN","XU8 PS659",30, 0) | |
| 2228 | S XU8ERRX =$$OPTION( .XU8DATA) ; Create C ONTEXTOPTI ON if does n't exist | |
| 2229 | "RTN","XU8 PS659",31, 0) | |
| 2230 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2231 | "RTN","XU8 PS659",32, 0) | |
| 2232 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2233 | "RTN","XU8 PS659",33, 0) | |
| 2234 | S XU8ERRX =$$CREATE( .XU8DATA) ; Create R EMOTE APPL ICATION en try | |
| 2235 | "RTN","XU8 PS659",34, 0) | |
| 2236 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2237 | "RTN","XU8 PS659",35, 0) | |
| 2238 | ; | |
| 2239 | "RTN","XU8 PS659",36, 0) | |
| 2240 | ; Install IAM Bindi ng entry i nto the RE MOTE APPLI CATION fil e (#8994.5 ) | |
| 2241 | "RTN","XU8 PS659",37, 0) | |
| 2242 | S XU8DATA (1)="IAM B INDING" ; Name | |
| 2243 | "RTN","XU8 PS659",38, 0) | |
| 2244 | S XU8DATA (2)="XUS I AM USER BI NDING" ; C ontextOpti on Name | |
| 2245 | "RTN","XU8 PS659",39, 0) | |
| 2246 | S XU8DATA (3)="IAM U ser Bindin g App" ; C ontextOpti on Menu Te xt | |
| 2247 | "RTN","XU8 PS659",40, 0) | |
| 2248 | S XU8DATA (4)="de$lA yING55AMO) BAe29" ; S ecurity ph rase | |
| 2249 | "RTN","XU8 PS659",41, 0) | |
| 2250 | ; For TYP E multiple , each ent ry should be XU8DATA (n)=CallBa ckType^Cal lBackPort^ CallBackSe rver^URLSt ring | |
| 2251 | "RTN","XU8 PS659",42, 0) | |
| 2252 | ; where n is 5, 6, 7, 8 etc. | |
| 2253 | "RTN","XU8 PS659",43, 0) | |
| 2254 | S XU8DATA (5)="S^-1^ N/A^N/A" | |
| 2255 | "RTN","XU8 PS659",44, 0) | |
| 2256 | S XU8ERRX =$$OPTION( .XU8DATA) ; Create C ONTEXTOPTI ON if does n't exist | |
| 2257 | "RTN","XU8 PS659",45, 0) | |
| 2258 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2259 | "RTN","XU8 PS659",46, 0) | |
| 2260 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2261 | "RTN","XU8 PS659",47, 0) | |
| 2262 | S XU8ERRX =$$CREATE( .XU8DATA) ; Create R EMOTE APPL ICATION en try | |
| 2263 | "RTN","XU8 PS659",48, 0) | |
| 2264 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2265 | "RTN","XU8 PS659",49, 0) | |
| 2266 | ; | |
| 2267 | "RTN","XU8 PS659",50, 0) | |
| 2268 | ; Install NUMI entr y into the REMOTE AP PLICATION file (#899 4.5) | |
| 2269 | "RTN","XU8 PS659",51, 0) | |
| 2270 | S XU8DATA (1)="NUMI" ; Name | |
| 2271 | "RTN","XU8 PS659",52, 0) | |
| 2272 | S XU8DATA (2)="WEBN NATL UTIL MGMT INTEG " ; Contex tOption Na me | |
| 2273 | "RTN","XU8 PS659",53, 0) | |
| 2274 | S XU8DATA (3)="Natio nal Utiliz ation Mgmt Integrati on" ; Cont extOption Menu Text | |
| 2275 | "RTN","XU8 PS659",54, 0) | |
| 2276 | S XU8DATA (4)="WEBN NATL UTIL MGMT INTEG " ; Securi ty phrase | |
| 2277 | "RTN","XU8 PS659",55, 0) | |
| 2278 | ; For TYP E multiple , each ent ry should be XU8DATA (n)=CallBa ckType^Cal lBackPort^ CallBackSe rver^URLSt ring | |
| 2279 | "RTN","XU8 PS659",56, 0) | |
| 2280 | ; where n is 5, 6, 7, 8 etc. | |
| 2281 | "RTN","XU8 PS659",57, 0) | |
| 2282 | S XU8DATA (5)="S^-1^ N/A^N/A" | |
| 2283 | "RTN","XU8 PS659",58, 0) | |
| 2284 | S XU8ERRX =$$OPTION( .XU8DATA) ; Create C ONTEXTOPTI ON if does n't exist | |
| 2285 | "RTN","XU8 PS659",59, 0) | |
| 2286 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2287 | "RTN","XU8 PS659",60, 0) | |
| 2288 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2289 | "RTN","XU8 PS659",61, 0) | |
| 2290 | S XU8ERRX =$$CREATE( .XU8DATA) ; Create R EMOTE APPL ICATION en try | |
| 2291 | "RTN","XU8 PS659",62, 0) | |
| 2292 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2293 | "RTN","XU8 PS659",63, 0) | |
| 2294 | ; | |
| 2295 | "RTN","XU8 PS659",64, 0) | |
| 2296 | ; Install BMS entry into the REMOTE APP LICATION f ile (#8994 .5) | |
| 2297 | "RTN","XU8 PS659",65, 0) | |
| 2298 | S XU8DATA (1)="BMS" ; Name | |
| 2299 | "RTN","XU8 PS659",66, 0) | |
| 2300 | S XU8DATA (2)="WEBB BED MGMT S OLUTION" ; ContextOp tion Name | |
| 2301 | "RTN","XU8 PS659",67, 0) | |
| 2302 | S XU8DATA (3)="Bed M anagement Solution" ; ContextO ption Menu Text | |
| 2303 | "RTN","XU8 PS659",68, 0) | |
| 2304 | S XU8DATA (4)="WEBB BED MGMT S OLUTION" ; Security phrase | |
| 2305 | "RTN","XU8 PS659",69, 0) | |
| 2306 | ; For TYP E multiple , each ent ry should be XU8DATA (n)=CallBa ckType^Cal lBackPort^ CallBackSe rver^URLSt ring | |
| 2307 | "RTN","XU8 PS659",70, 0) | |
| 2308 | ; where n is 5, 6, 7, 8 etc. | |
| 2309 | "RTN","XU8 PS659",71, 0) | |
| 2310 | S XU8DATA (5)="S^-1^ N/A^N/A" | |
| 2311 | "RTN","XU8 PS659",72, 0) | |
| 2312 | S XU8ERRX =$$OPTION( .XU8DATA) ; Create C ONTEXTOPTI ON if does n't exist | |
| 2313 | "RTN","XU8 PS659",73, 0) | |
| 2314 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2315 | "RTN","XU8 PS659",74, 0) | |
| 2316 | S XU8ERRX =$$DELETE( .XU8DATA) ; Delete e xisting RE MOTE APPLI CATION ent ry | |
| 2317 | "RTN","XU8 PS659",75, 0) | |
| 2318 | S XU8ERRX =$$CREATE( .XU8DATA) ; Create R EMOTE APPL ICATION en try | |
| 2319 | "RTN","XU8 PS659",76, 0) | |
| 2320 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2321 | "RTN","XU8 PS659",77, 0) | |
| 2322 | ; | |
| 2323 | "RTN","XU8 PS659",78, 0) | |
| 2324 | ; Instal l entry in to the DIA LOG file ( #.84) | |
| 2325 | "RTN","XU8 PS659",79, 0) | |
| 2326 | ;NUMBER: 30810.63 DIALOG N UMBER: 308 10.63 | |
| 2327 | "RTN","XU8 PS659",80, 0) | |
| 2328 | ; TYPE: GENERAL ME SSAGE PACKAGE: KERNEL | |
| 2329 | "RTN","XU8 PS659",81, 0) | |
| 2330 | ; SHORT DESCRIPTIO N: STS tok en not val id. | |
| 2331 | "RTN","XU8 PS659",82, 0) | |
| 2332 | ; TEXT: | |
| 2333 | "RTN","XU8 PS659",83, 0) | |
| 2334 | ; Unable to sign o n using Id entity and Access Ma nagement S TS token. | |
| 2335 | "RTN","XU8 PS659",84, 0) | |
| 2336 | K XU8DATA ,XU8ERRX | |
| 2337 | "RTN","XU8 PS659",85, 0) | |
| 2338 | S XU8DATA (1)=30810. 63 | |
| 2339 | "RTN","XU8 PS659",86, 0) | |
| 2340 | S XU8DATA (2)="KERNE L" | |
| 2341 | "RTN","XU8 PS659",87, 0) | |
| 2342 | S XU8DATA (3)=2 ;"GE NERAL MESS AGE" | |
| 2343 | "RTN","XU8 PS659",88, 0) | |
| 2344 | S XU8DATA (4)="STS t oken not v alid." | |
| 2345 | "RTN","XU8 PS659",89, 0) | |
| 2346 | S XU8DATA (5)="Unabl e to sign on using I dentity an d Access M anagement STS token. Try using Access/Ve rify codes ." | |
| 2347 | "RTN","XU8 PS659",90, 0) | |
| 2348 | S XU8ERRX =$$NEWDIA( .XU8DATA) | |
| 2349 | "RTN","XU8 PS659",91, 0) | |
| 2350 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2351 | "RTN","XU8 PS659",92, 0) | |
| 2352 | ; | |
| 2353 | "RTN","XU8 PS659",93, 0) | |
| 2354 | ; Instal l entries into KERNE L SYSTEMS PARAMETERS file (#89 89.3) | |
| 2355 | "RTN","XU8 PS659",94, 0) | |
| 2356 | K XU8DATA ,XU8ERRX | |
| 2357 | "RTN","XU8 PS659",95, 0) | |
| 2358 | S XU8DATA (1)="eauth . DNS " | |
| 2359 | "RTN","XU8 PS659",96, 0) | |
| 2360 | S XU8DATA (2)="Depar tment Of V eterans Af fairs" | |
| 2361 | "RTN","XU8 PS659",97, 0) | |
| 2362 | S XU8DATA (3)="urn:o id:2.16.84 0.1.113883 .4.349" | |
| 2363 | "RTN","XU8 PS659",98, 0) | |
| 2364 | S XU8ERRX =$$NEWKSP( .XU8DATA) | |
| 2365 | "RTN","XU8 PS659",99, 0) | |
| 2366 | D BMES^XP DUTL(XU8ER RX) ; XU8E RRX is "Su ccess mess age" or "E rror text" | |
| 2367 | "RTN","XU8 PS659",100 ,0) | |
| 2368 | ; | |
| 2369 | "RTN","XU8 PS659",101 ,0) | |
| 2370 | K ^XU8P65 5("VACAA") ;Cleanup after patc h XU*8*655 | |
| 2371 | "RTN","XU8 PS659",102 ,0) | |
| 2372 | ; | |
| 2373 | "RTN","XU8 PS659",103 ,0) | |
| 2374 | Q | |
| 2375 | "RTN","XU8 PS659",104 ,0) | |
| 2376 | ; | |
| 2377 | "RTN","XU8 PS659",105 ,0) | |
| 2378 | OPTION(XU8 DATA) ; Cr eate CONTE XTOPTION i f doesn't exist | |
| 2379 | "RTN","XU8 PS659",106 ,0) | |
| 2380 | N XU8ERR, XU8FDA,XU8 IEN,XU8MSG | |
| 2381 | "RTN","XU8 PS659",107 ,0) | |
| 2382 | S XU8IEN= $$FIND1^DI C(19,"","X ",XU8DATA( 2),"B") | |
| 2383 | "RTN","XU8 PS659",108 ,0) | |
| 2384 | S XU8ERR= "Error mes sage: "_XU 8IEN | |
| 2385 | "RTN","XU8 PS659",109 ,0) | |
| 2386 | I +XU8IEN >0 S XU8ER R="OPTION exists at IEN = "_XU 8IEN | |
| 2387 | "RTN","XU8 PS659",110 ,0) | |
| 2388 | I +XU8IEN =0 S XU8ER R="OPTION "_XU8DATA( 2)_" creat ed" D | |
| 2389 | "RTN","XU8 PS659",111 ,0) | |
| 2390 | . S XU8FD A(19,"?+1, ",.01)=XU8 DATA(2) | |
| 2391 | "RTN","XU8 PS659",112 ,0) | |
| 2392 | . S XU8FD A(19,"?+1, ",1)=XU8DA TA(3) | |
| 2393 | "RTN","XU8 PS659",113 ,0) | |
| 2394 | . S XU8FD A(19,"?+1, ",4)="B" ; B:Broker (Client/Se rver) | |
| 2395 | "RTN","XU8 PS659",114 ,0) | |
| 2396 | . D UPDAT E^DIE(""," XU8FDA","X U8IEN","XU 8MSG") | |
| 2397 | "RTN","XU8 PS659",115 ,0) | |
| 2398 | . I $D(XU 8MSG) S XU 8ERR=" * *ERROR** " _$G(XU8MSG ("DIERR",1 ))_" Unabl e to creat e OPTION e ntry "_XU8 DATA(2) | |
| 2399 | "RTN","XU8 PS659",116 ,0) | |
| 2400 | D CLEAN^D ILF | |
| 2401 | "RTN","XU8 PS659",117 ,0) | |
| 2402 | Q XU8ERR | |
| 2403 | "RTN","XU8 PS659",118 ,0) | |
| 2404 | ; | |
| 2405 | "RTN","XU8 PS659",119 ,0) | |
| 2406 | DELETE(XU8 DATA) ; De lete exist ing REMOTE APPLICATI ON entry | |
| 2407 | "RTN","XU8 PS659",120 ,0) | |
| 2408 | N DA,DIK, XU8IEN | |
| 2409 | "RTN","XU8 PS659",121 ,0) | |
| 2410 | S XU8IEN= $$FIND1^DI C(8994.5," ","X",XU8D ATA(1),"B" ) | |
| 2411 | "RTN","XU8 PS659",122 ,0) | |
| 2412 | I $G(XU8I EN)>0 D | |
| 2413 | "RTN","XU8 PS659",123 ,0) | |
| 2414 | . S DIK=" ^XWB(8994. 5,",DA=XU8 IEN | |
| 2415 | "RTN","XU8 PS659",124 ,0) | |
| 2416 | . D ^DIK | |
| 2417 | "RTN","XU8 PS659",125 ,0) | |
| 2418 | . K XU8IE N | |
| 2419 | "RTN","XU8 PS659",126 ,0) | |
| 2420 | Q 1 | |
| 2421 | "RTN","XU8 PS659",127 ,0) | |
| 2422 | CREATE(XU8 DATA) ; Cr eate new R EMOTE APPL ICATION en try | |
| 2423 | "RTN","XU8 PS659",128 ,0) | |
| 2424 | N XU8ERR, XU8FDA,XU8 I,XU8IEN,X U8IENS,XU8 MSG | |
| 2425 | "RTN","XU8 PS659",129 ,0) | |
| 2426 | S XU8ERR= " REMOTE APPLICATI ON entry c reated: "_ XU8DATA(1) | |
| 2427 | "RTN","XU8 PS659",130 ,0) | |
| 2428 | S XU8FDA( 8994.5,"?+ 1,",.01)=X U8DATA(1) ; NAME | |
| 2429 | "RTN","XU8 PS659",131 ,0) | |
| 2430 | S XU8FDA( 8994.5,"?+ 1,",.02)=$ $FIND1^DIC (19,"","X" ,XU8DATA(2 ),"B") ; C ONTEXTOPTI ON | |
| 2431 | "RTN","XU8 PS659",132 ,0) | |
| 2432 | S XU8FDA( 8994.5,"?+ 1,",.03)=$ $SHAHASH^X USHSH(256, XU8DATA(4) ,"B") ; AP PLICATIONC ODE | |
| 2433 | "RTN","XU8 PS659",133 ,0) | |
| 2434 | D UPDATE^ DIE("","XU 8FDA","XU8 IEN","XU8M SG") | |
| 2435 | "RTN","XU8 PS659",134 ,0) | |
| 2436 | I $D(XU8M SG) D | |
| 2437 | "RTN","XU8 PS659",135 ,0) | |
| 2438 | . S XU8ER R=" **ER ROR** "_$G (XU8MSG("D IERR",1))_ " Unable t o create R EMOTE APPL ICATION: " _XU8DATA(1 ) | |
| 2439 | "RTN","XU8 PS659",136 ,0) | |
| 2440 | ; Find th e REMOTE A PPLICATION | |
| 2441 | "RTN","XU8 PS659",137 ,0) | |
| 2442 | S XU8IENS =$$FIND1^D IC(8994.5, "","X",XU8 DATA(1),"B ") | |
| 2443 | "RTN","XU8 PS659",138 ,0) | |
| 2444 | I +XU8IEN S<1 S XU8E RR=XU8IENS Q XU8ERR | |
| 2445 | "RTN","XU8 PS659",139 ,0) | |
| 2446 | ; Fill in CALLBACKT YPE multip le | |
| 2447 | "RTN","XU8 PS659",140 ,0) | |
| 2448 | S XU8I=4 F S XU8I= $O(XU8DATA (XU8I)) Q: XU8I="" D | |
| 2449 | "RTN","XU8 PS659",141 ,0) | |
| 2450 | . N XU8FD A,XU8IEN,X U8MSG,XU8T EST,XU8J,X U8FLAG | |
| 2451 | "RTN","XU8 PS659",142 ,0) | |
| 2452 | . ; Check for dupli cates (loo p through CALLBACKTY PE for thi s entry) | |
| 2453 | "RTN","XU8 PS659",143 ,0) | |
| 2454 | . S XU8J= 0 F S XU8 J=$O(^XWB( 8994.5,XU8 IENS,1,"B" ,$E(XU8DAT A(XU8I),1, 1),XU8J)) Q:(XU8J="" )!($D(XU8F LAG)) D | |
| 2455 | "RTN","XU8 PS659",144 ,0) | |
| 2456 | . . I $G( XU8DATA(XU 8I))=$G(^X WB(8994.5, XU8IENS,1, XU8J,0)) S XU8FLAG=1 | |
| 2457 | "RTN","XU8 PS659",145 ,0) | |
| 2458 | . I '$D(X U8FLAG) D | |
| 2459 | "RTN","XU8 PS659",146 ,0) | |
| 2460 | . . S XU8 FDA(8994.5 1,"+2,"_XU 8IENS_",", .01)=$P(XU 8DATA(XU8I ),"^",1) ; CALLBACKT YPE | |
| 2461 | "RTN","XU8 PS659",147 ,0) | |
| 2462 | . . S XU8 FDA(8994.5 1,"+2,"_XU 8IENS_",", .02)=$P(XU 8DATA(XU8I ),"^",2) ; CALLBACKP ORT | |
| 2463 | "RTN","XU8 PS659",148 ,0) | |
| 2464 | . . S XU8 FDA(8994.5 1,"+2,"_XU 8IENS_",", .03)=$P(XU 8DATA(XU8I ),"^",3) ; CALLBACKS ERVER | |
| 2465 | "RTN","XU8 PS659",149 ,0) | |
| 2466 | . . S XU8 FDA(8994.5 1,"+2,"_XU 8IENS_",", .04)=$P(XU 8DATA(XU8I ),"^",4) ; URLSTRING | |
| 2467 | "RTN","XU8 PS659",150 ,0) | |
| 2468 | . . D UPD ATE^DIE("" ,"XU8FDA", "XU8IEN"," XU8MSG") | |
| 2469 | "RTN","XU8 PS659",151 ,0) | |
| 2470 | . . I $D( XU8MSG) D | |
| 2471 | "RTN","XU8 PS659",152 ,0) | |
| 2472 | . . . S X U8ERR=" **ERROR** "_$G(XU8MS G("DIERR", 1))_" Unab le to upda te REMOTE APPLICATIO N: "_XU8DA TA(1) | |
| 2473 | "RTN","XU8 PS659",153 ,0) | |
| 2474 | ; | |
| 2475 | "RTN","XU8 PS659",154 ,0) | |
| 2476 | D CLEAN^D ILF | |
| 2477 | "RTN","XU8 PS659",155 ,0) | |
| 2478 | Q XU8ERR | |
| 2479 | "RTN","XU8 PS659",156 ,0) | |
| 2480 | ; | |
| 2481 | "RTN","XU8 PS659",157 ,0) | |
| 2482 | NEWDIA(XU8 DATA) ; Cr eate DIALO G entry | |
| 2483 | "RTN","XU8 PS659",158 ,0) | |
| 2484 | N DA,DIK, XU8DT,XU8E RR,XU8FDA, XU8IEN,XU8 MSG | |
| 2485 | "RTN","XU8 PS659",159 ,0) | |
| 2486 | ; Delete existing e ntry if it exists, b efore crea ting updat ed entry | |
| 2487 | "RTN","XU8 PS659",160 ,0) | |
| 2488 | S XU8IEN= $$FIND1^DI C(.84,""," X",XU8DATA (1),"B") | |
| 2489 | "RTN","XU8 PS659",161 ,0) | |
| 2490 | I $G(XU8I EN)>0 D | |
| 2491 | "RTN","XU8 PS659",162 ,0) | |
| 2492 | . S DIK=" ^DI(.84,", DA=XU8IEN | |
| 2493 | "RTN","XU8 PS659",163 ,0) | |
| 2494 | . D ^DIK | |
| 2495 | "RTN","XU8 PS659",164 ,0) | |
| 2496 | . K XU8IE N | |
| 2497 | "RTN","XU8 PS659",165 ,0) | |
| 2498 | S XU8ERR= " DIALOG entry cre ated: "_XU 8DATA(4) | |
| 2499 | "RTN","XU8 PS659",166 ,0) | |
| 2500 | S XU8IEN( 1)=XU8DATA (1) | |
| 2501 | "RTN","XU8 PS659",167 ,0) | |
| 2502 | S XU8FDA( .84,"+1,", .01)=XU8DA TA(1) ;IEN | |
| 2503 | "RTN","XU8 PS659",168 ,0) | |
| 2504 | S XU8FDA( .84,"+1,", 1)=XU8DATA (3) ;TYPE | |
| 2505 | "RTN","XU8 PS659",169 ,0) | |
| 2506 | S XU8FDA( .84,"+1,", 1.2)=XU8DA TA(2) ;PAC KAGE | |
| 2507 | "RTN","XU8 PS659",170 ,0) | |
| 2508 | S XU8FDA( .84,"+1,", 1.3)=XU8DA TA(4) ;SHO RT DESCRIP TION | |
| 2509 | "RTN","XU8 PS659",171 ,0) | |
| 2510 | D UPDATE^ DIE("","XU 8FDA","XU8 IEN","XU8M SG") | |
| 2511 | "RTN","XU8 PS659",172 ,0) | |
| 2512 | I $D(XU8M SG) S XU8E RR=" **E RROR** "_$ G(XU8MSG(" DIERR",1)) _" Unable to create DIALOG ent ry: "_XU8D ATA(4) D C LEAN^DILF Q XU8ERR | |
| 2513 | "RTN","XU8 PS659",173 ,0) | |
| 2514 | S XU8IEN= $$FIND1^DI C(.84,""," X",XU8DATA (1),"B") | |
| 2515 | "RTN","XU8 PS659",174 ,0) | |
| 2516 | I $G(XU8I EN)>0 D | |
| 2517 | "RTN","XU8 PS659",175 ,0) | |
| 2518 | . S XU8DT (1)=XU8DAT A(5) ;TEXT | |
| 2519 | "RTN","XU8 PS659",176 ,0) | |
| 2520 | . D WP^DI E(.84,XU8I EN_",",4,, "XU8DT","X U8MSG") | |
| 2521 | "RTN","XU8 PS659",177 ,0) | |
| 2522 | I $D(XU8M SG) D | |
| 2523 | "RTN","XU8 PS659",178 ,0) | |
| 2524 | . S XU8ER R=" **ER ROR** "_$G (XU8MSG("D IERR",1))_ " Unable t o create D IALOG entr y: "_XU8DA TA(4) | |
| 2525 | "RTN","XU8 PS659",179 ,0) | |
| 2526 | . S DIK=" ^DI(.84,", DA=XU8IEN | |
| 2527 | "RTN","XU8 PS659",180 ,0) | |
| 2528 | . D ^DIK | |
| 2529 | "RTN","XU8 PS659",181 ,0) | |
| 2530 | . K XU8IE N | |
| 2531 | "RTN","XU8 PS659",182 ,0) | |
| 2532 | D CLEAN^D ILF | |
| 2533 | "RTN","XU8 PS659",183 ,0) | |
| 2534 | Q XU8ERR | |
| 2535 | "RTN","XU8 PS659",184 ,0) | |
| 2536 | ; | |
| 2537 | "RTN","XU8 PS659",185 ,0) | |
| 2538 | NEWKSP(XU8 DATA) ; Cr eate KERNE L SYSTEM P ARAMETERS entries | |
| 2539 | "RTN","XU8 PS659",186 ,0) | |
| 2540 | N DA,DIK, XU8ERR,XU8 FDA,XU8MSG | |
| 2541 | "RTN","XU8 PS659",187 ,0) | |
| 2542 | S XU8ERR= " KERNEL SYSTEM PA RAMETERS f ields popu lated: SEC URITY TOKE N SERVICE, ORGANIZAT ION, ORGAN IZATION ID " | |
| 2543 | "RTN","XU8 PS659",188 ,0) | |
| 2544 | S XU8FDA( 8989.3,"1, ",200.1)=X U8DATA(1) | |
| 2545 | "RTN","XU8 PS659",189 ,0) | |
| 2546 | S XU8FDA( 8989.3,"1, ",200.2)=X U8DATA(2) | |
| 2547 | "RTN","XU8 PS659",190 ,0) | |
| 2548 | S XU8FDA( 8989.3,"1, ",200.3)=X U8DATA(3) | |
| 2549 | "RTN","XU8 PS659",191 ,0) | |
| 2550 | D FILE^DI E("E","XU8 FDA","XU8M SG") | |
| 2551 | "RTN","XU8 PS659",192 ,0) | |
| 2552 | I $D(XU8M SG) D | |
| 2553 | "RTN","XU8 PS659",193 ,0) | |
| 2554 | . S XU8ER R=" **ER ROR** "_$G (XU8MSG("D IERR",1))_ " Unable t o populate KERNEL SY STEM PARAM ETERS fiel ds" | |
| 2555 | "RTN","XU8 PS659",194 ,0) | |
| 2556 | D CLEAN^D ILF | |
| 2557 | "RTN","XU8 PS659",195 ,0) | |
| 2558 | Q XU8ERR | |
| 2559 | "RTN","XU8 PS659",196 ,0) | |
| 2560 | ; | |
| 2561 | "RTN","XUC ERT") | |
| 2562 | 0^18^B4132 125^n/a | |
| 2563 | "RTN","XUC ERT",1,0) | |
| 2564 | XUCERT ;IS D/HGW Kern el PKI Cer tificate U tilities ; 10/01/15 14:19 | |
| 2565 | "RTN","XUC ERT",2,0) | |
| 2566 | ;;8.0;KER NEL;**659* *;Jul 10, 1995;Build 22 | |
| 2567 | "RTN","XUC ERT",3,0) | |
| 2568 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 2569 | "RTN","XUC ERT",4,0) | |
| 2570 | ; | |
| 2571 | "RTN","XUC ERT",5,0) | |
| 2572 | Q | |
| 2573 | "RTN","XUC ERT",6,0) | |
| 2574 | VALIDATE(D OC) ;Extri nsic Funct ion. | |
| 2575 | "RTN","XUC ERT",7,0) | |
| 2576 | ;Validate the signa tures in a digitally signed XM L document which con tains an E ncryptedDa ta element and Encry ptedKey el ements. | |
| 2577 | "RTN","XUC ERT",8,0) | |
| 2578 | ; Input: DOC = This s tring is e ither a cl osed refer ence to a global roo t containi ng the XML document or a filen ame | |
| 2579 | "RTN","XUC ERT",9,0) | |
| 2580 | ; and pa th referen ce identif ying the X ML documen t on the h ost system . See the Kernel Dev elopers Gu ide | |
| 2581 | "RTN","XUC ERT",10,0) | |
| 2582 | ; docume ntation on $$EN^MXML DOM() for detailed r equirement s for the format of the input global. | |
| 2583 | "RTN","XUC ERT",11,0) | |
| 2584 | ; Return: Fail = "-1^Er ror Messag e" | |
| 2585 | "RTN","XUC ERT",12,0) | |
| 2586 | ; Succes s = 1 | |
| 2587 | "RTN","XUC ERT",13,0) | |
| 2588 | ; | |
| 2589 | "RTN","XUC ERT",14,0) | |
| 2590 | ;ZEXCEPT: %New,%XML ,Document, OpenFile,O penStream, Reader,Val idateDocum ent,class ;ObjectScr ipt | |
| 2591 | "RTN","XUC ERT",15,0) | |
| 2592 | N XUREAD, XUSIG,XUST ATUS,XUVER | |
| 2593 | "RTN","XUC ERT",16,0) | |
| 2594 | S XUREAD= $$READER^X UCERT1(DOC ) ;Read XM L document | |
| 2595 | "RTN","XUC ERT",17,0) | |
| 2596 | I $G(XURE AD)["-1^" Q XUREAD | |
| 2597 | "RTN","XUC ERT",18,0) | |
| 2598 | S XUSIG=$ $SGNTR^XUC ERT1(XUREA D) ;Find d igital sig nature | |
| 2599 | "RTN","XUC ERT",19,0) | |
| 2600 | I $G(XUSI G)["-1^" Q XUSIG | |
| 2601 | "RTN","XUC ERT",20,0) | |
| 2602 | D GETISSU E(XUSIG) ; Save subje ct of X509 certifica te (issuer of signat ure) | |
| 2603 | "RTN","XUC ERT",21,0) | |
| 2604 | S XUVER=$ $VERSION^% ZOSV() S X UVER=$P(XU VER,".",1) _"."_$P(XU VER,".",2) | |
| 2605 | "RTN","XUC ERT",22,0) | |
| 2606 | I XUVER'< 2015.2 D | |
| 2607 | "RTN","XUC ERT",23,0) | |
| 2608 | . S XUSTA TUS=$$VAL1 ^XUCERT1(X UREAD,XUSI G) | |
| 2609 | "RTN","XUC ERT",24,0) | |
| 2610 | E D | |
| 2611 | "RTN","XUC ERT",25,0) | |
| 2612 | . S XUSTA TUS=$$VAL2 ^XUCERT1(X UREAD,XUSI G) | |
| 2613 | "RTN","XUC ERT",26,0) | |
| 2614 | Q XUSTATU S | |
| 2615 | "RTN","XUC ERT",27,0) | |
| 2616 | ; | |
| 2617 | "RTN","XUC ERT",28,0) | |
| 2618 | GETISSUE(S IG) ;Subro utine. Sav e X509 Cer tificate o wner to XO BDATA("XOB RPC","SAM L",ISSUER" ) | |
| 2619 | "RTN","XUC ERT",29,0) | |
| 2620 | ;ZEXCEPT: Encryptio n,X509GetF ield,XOBDA TA ;Object Script and environme nt variabl es | |
| 2621 | "RTN","XUC ERT",30,0) | |
| 2622 | N CERT | |
| 2623 | "RTN","XUC ERT",31,0) | |
| 2624 | S CERT=$$ CERT^XUCER T1(SIG) | |
| 2625 | "RTN","XUC ERT",32,0) | |
| 2626 | I +CERT=- 1 Q ;Cann ot get cer tificate | |
| 2627 | "RTN","XUC ERT",33,0) | |
| 2628 | S XOBDATA ("XOB RPC" ,"SAML","I SSUER")=$S ystem.Encr yption.X50 9GetField( CERT,"Subj ect") | |
| 2629 | "RTN","XUC ERT",34,0) | |
| 2630 | Q | |
| 2631 | "RTN","XUC ERT",35,0) | |
| 2632 | ; | |
| 2633 | "RTN","XUC ERT",36,0) | |
| 2634 | TEST ;Subr outine. Sy stem check s to help with troub leshooting . | |
| 2635 | "RTN","XUC ERT",37,0) | |
| 2636 | ;Check if Cache ver sion >= 20 15.2 | |
| 2637 | "RTN","XUC ERT",38,0) | |
| 2638 | ; 1234 5678901234 5678901234 5678901234 5678901234 5678901234 5678901234 5678901234 567890 | |
| 2639 | "RTN","XUC ERT",39,0) | |
| 2640 | W !,"XML digital si gnature va lidation i s done dif ferently d epending o n the vers ion" | |
| 2641 | "RTN","XUC ERT",40,0) | |
| 2642 | W !,"of C ache being used on y our system :" | |
| 2643 | "RTN","XUC ERT",41,0) | |
| 2644 | W !," V ersions gr eater than or equal to 2015.2 use $$VAL1 ^XUCERT1" | |
| 2645 | "RTN","XUC ERT",42,0) | |
| 2646 | W !," V ersions le ss than 20 15.2 use $ $VAL2^XUCE RT1" | |
| 2647 | "RTN","XUC ERT",43,0) | |
| 2648 | W !," Y our Cache Version is ",$$VERSI ON^%ZOSV() ,! | |
| 2649 | "RTN","XUC ERT",44,0) | |
| 2650 | ; | |
| 2651 | "RTN","XUC ERT",45,0) | |
| 2652 | ;Check if PKI chain of trust to root is available (how?) | |
| 2653 | "RTN","XUC ERT",46,0) | |
| 2654 | ; ** Appa rently Cac he uses Op enSSL on u nderlying server for chain of trust. Che ck OpenSSL version? | |
| 2655 | "RTN","XUC ERT",47,0) | |
| 2656 | ;Check if %SuperSer ver and %T ELNET/SSL is availab le (how? w ith https? ) | |
| 2657 | "RTN","XUC ERT",48,0) | |
| 2658 | ; ** Is t his still needed? | |
| 2659 | "RTN","XUC ERT",49,0) | |
| 2660 | ;Check if a local X .509 certi ficate is installed (how? same as %Super Server che ck?) | |
| 2661 | "RTN","XUC ERT",50,0) | |
| 2662 | ; ** Not needed. Al l sites us e SSL, so they have a certific ate on the server. | |
| 2663 | "RTN","XUC ERT",51,0) | |
| 2664 | Q | |
| 2665 | "RTN","XUC ERT",52,0) | |
| 2666 | ; | |
| 2667 | "RTN","XUC ERT1") | |
| 2668 | 0^22^B2060 6802^n/a | |
| 2669 | "RTN","XUC ERT1",1,0) | |
| 2670 | XUCERT1 ;I SD/HGW Ker nel PKI Ce rtificate Utilities (cont) ;09 /28/15 09 :08 | |
| 2671 | "RTN","XUC ERT1",2,0) | |
| 2672 | ;;8.0;KER NEL;**659* *;Jul 10, 1995;Build 22 | |
| 2673 | "RTN","XUC ERT1",3,0) | |
| 2674 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 2675 | "RTN","XUC ERT1",4,0) | |
| 2676 | ; | |
| 2677 | "RTN","XUC ERT1",5,0) | |
| 2678 | Q | |
| 2679 | "RTN","XUC ERT1",6,0) | |
| 2680 | VAL1(DOC,S IG) ;Funct ion. Valid ate Docume nt (Cache 2015.2 or greater) | |
| 2681 | "RTN","XUC ERT1",7,0) | |
| 2682 | ;ZEXCEPT: Document, ValidateDo cument ;Ob ject Scrip t | |
| 2683 | "RTN","XUC ERT1",8,0) | |
| 2684 | N XUDOC,X USTATUS | |
| 2685 | "RTN","XUC ERT1",9,0) | |
| 2686 | S XUDOC=D OC.Documen t ;Create the OREF | |
| 2687 | "RTN","XUC ERT1",10,0 ) | |
| 2688 | I $G(XUDO C)="" Q "- 1^Failed t o import X ML documen t" | |
| 2689 | "RTN","XUC ERT1",11,0 ) | |
| 2690 | S XUSTATU S=SIG.Vali dateDocume nt(XUDOC) | |
| 2691 | "RTN","XUC ERT1",12,0 ) | |
| 2692 | I $G(XUST ATUS)["Fai led" Q "-1 ^Failed da ta integri ty or sign ature vali dation che ck" | |
| 2693 | "RTN","XUC ERT1",13,0 ) | |
| 2694 | Q 1 | |
| 2695 | "RTN","XUC ERT1",14,0 ) | |
| 2696 | ; | |
| 2697 | "RTN","XUC ERT1",15,0 ) | |
| 2698 | VAL2(DOC,S IG) ;Funct ion. Valid ate Docume nt (Less t han Cache 2015.2) | |
| 2699 | "RTN","XUC ERT1",16,0 ) | |
| 2700 | N XUSTATU S | |
| 2701 | "RTN","XUC ERT1",17,0 ) | |
| 2702 | S XUSTATU S=$$CHKDAT A(DOC,SIG) ; check integrity | |
| 2703 | "RTN","XUC ERT1",18,0 ) | |
| 2704 | I 'XUSTAT US Q "-1^F ailed data integrity check" | |
| 2705 | "RTN","XUC ERT1",19,0 ) | |
| 2706 | S XUSTATU S=$$CHKSIG N(DOC,SIG) ; check signature is valid | |
| 2707 | "RTN","XUC ERT1",20,0 ) | |
| 2708 | I 'XUSTAT US Q "-1^F ailed sign ature vali dation" | |
| 2709 | "RTN","XUC ERT1",21,0 ) | |
| 2710 | Q 1 | |
| 2711 | "RTN","XUC ERT1",22,0 ) | |
| 2712 | ; | |
| 2713 | "RTN","XUC ERT1",23,0 ) | |
| 2714 | READER(DOC ) ;Functio n. Reads X ML Documen t | |
| 2715 | "RTN","XUC ERT1",24,0 ) | |
| 2716 | ;ZEXCEPT: %New,%XML ,OpenFile, OpenStream ,Reader,cl ass ;Objec t Script | |
| 2717 | "RTN","XUC ERT1",25,0 ) | |
| 2718 | N XUIN,XU READ,XUSC | |
| 2719 | "RTN","XUC ERT1",26,0 ) | |
| 2720 | S XUREAD= ##class(%X ML.Reader) .%New() ;C reate OREF instance in memory | |
| 2721 | "RTN","XUC ERT1",27,0 ) | |
| 2722 | I $E(DOC) ="^" D | |
| 2723 | "RTN","XUC ERT1",28,0 ) | |
| 2724 | . S XUIN= $$LOADSTRM (DOC) ;Ext ract strea m from glo bal | |
| 2725 | "RTN","XUC ERT1",29,0 ) | |
| 2726 | . S XUSC= XUREAD.Ope nStream(XU IN) ;Impor t from str eam | |
| 2727 | "RTN","XUC ERT1",30,0 ) | |
| 2728 | E D | |
| 2729 | "RTN","XUC ERT1",31,0 ) | |
| 2730 | . S XUSC= XUREAD.Ope nFile(DOC) ;Import f rom file | |
| 2731 | "RTN","XUC ERT1",32,0 ) | |
| 2732 | I $G(XUSC )'=1 Q "-1 ^"_$G(XUSC ) | |
| 2733 | "RTN","XUC ERT1",33,0 ) | |
| 2734 | Q XUREAD | |
| 2735 | "RTN","XUC ERT1",34,0 ) | |
| 2736 | ; | |
| 2737 | "RTN","XUC ERT1",35,0 ) | |
| 2738 | SGNTR(READ ER) ;Funct ion. Finds digital s ignature | |
| 2739 | "RTN","XUC ERT1",36,0 ) | |
| 2740 | N SIGNATU RE,STATUS | |
| 2741 | "RTN","XUC ERT1",37,0 ) | |
| 2742 | D READER. Correlate( "Signature ","%XML.Se curity.Sig nature") | |
| 2743 | "RTN","XUC ERT1",38,0 ) | |
| 2744 | D READER. Next(.SIGN ATURE,.STA TUS) | |
| 2745 | "RTN","XUC ERT1",39,0 ) | |
| 2746 | I $G(SIGN ATURE)="" Q "-1^Fail ed to find digital s ignature" | |
| 2747 | "RTN","XUC ERT1",40,0 ) | |
| 2748 | Q SIGNATU RE | |
| 2749 | "RTN","XUC ERT1",41,0 ) | |
| 2750 | ; | |
| 2751 | "RTN","XUC ERT1",42,0 ) | |
| 2752 | CHKDATA(RE ADER,SIG) ;Function. Check int egrity of signed dat a | |
| 2753 | "RTN","XUC ERT1",43,0 ) | |
| 2754 | ; by comp aring comp uted diges t with inc oming dige st value | |
| 2755 | "RTN","XUC ERT1",44,0 ) | |
| 2756 | N COMPUTE D | |
| 2757 | "RTN","XUC ERT1",45,0 ) | |
| 2758 | S COMPUTE D=$$DIGEST CP(READER, SIG) | |
| 2759 | "RTN","XUC ERT1",46,0 ) | |
| 2760 | Q COMPUTE D=$$DIGEST (SIG) | |
| 2761 | "RTN","XUC ERT1",47,0 ) | |
| 2762 | ; | |
| 2763 | "RTN","XUC ERT1",48,0 ) | |
| 2764 | DIGESTCP(R EADER,SIG) ;Function . Compute SHA digest value | |
| 2765 | "RTN","XUC ERT1",49,0 ) | |
| 2766 | ;ZEXCEPT: %New,%XML ,ComputeSh a1Digest,D ocument,Ge tNode,Node Id,Writer, class | |
| 2767 | "RTN","XUC ERT1",50,0 ) | |
| 2768 | N NODE,WR ITER,BITLE NGT,ISSTR, MIME,SIGNN ODE,PREFIX L,CANONTXT | |
| 2769 | "RTN","XUC ERT1",51,0 ) | |
| 2770 | S NODE=RE ADER.Docum ent.GetNod e("") | |
| 2771 | "RTN","XUC ERT1",52,0 ) | |
| 2772 | S NODE.No deId=$$REF NODE(READE R) | |
| 2773 | "RTN","XUC ERT1",53,0 ) | |
| 2774 | S SIGNNOD E=SIG.Node Id | |
| 2775 | "RTN","XUC ERT1",54,0 ) | |
| 2776 | S WRITER= ##class(%X ML.Writer) .%New() | |
| 2777 | "RTN","XUC ERT1",55,0 ) | |
| 2778 | S BITLENG T=160 | |
| 2779 | "RTN","XUC ERT1",56,0 ) | |
| 2780 | S ISSTR=0 | |
| 2781 | "RTN","XUC ERT1",57,0 ) | |
| 2782 | S MIME="" | |
| 2783 | "RTN","XUC ERT1",58,0 ) | |
| 2784 | Q SIG.Com puteSha1Di gest(NODE, SIGNNODE,W RITER,.PRE FIXL,BITLE NGT,ISSTR, .CANONTXT, MIME) | |
| 2785 | "RTN","XUC ERT1",59,0 ) | |
| 2786 | ; | |
| 2787 | "RTN","XUC ERT1",60,0 ) | |
| 2788 | REFNODE(RE ADER) ;Fun ction. Get reference node whic h is Asser tion node since GetN odeById ca n't find " ID" | |
| 2789 | "RTN","XUC ERT1",61,0 ) | |
| 2790 | ;ZEXCEPT: NodeId,ST ATUS | |
| 2791 | "RTN","XUC ERT1",62,0 ) | |
| 2792 | N ASSERTI ON | |
| 2793 | "RTN","XUC ERT1",63,0 ) | |
| 2794 | D READER. Rewind() | |
| 2795 | "RTN","XUC ERT1",64,0 ) | |
| 2796 | D READER. Correlate( "Assertion ","%SAML.A ssertion") | |
| 2797 | "RTN","XUC ERT1",65,0 ) | |
| 2798 | D READER. Next(.ASSE RTION,.STA TUS) | |
| 2799 | "RTN","XUC ERT1",66,0 ) | |
| 2800 | Q ASSERTI ON.NodeId | |
| 2801 | "RTN","XUC ERT1",67,0 ) | |
| 2802 | ; | |
| 2803 | "RTN","XUC ERT1",68,0 ) | |
| 2804 | DIGEST(SIG NATURE) ;F unction. F ind incomi ng digest value | |
| 2805 | "RTN","XUC ERT1",69,0 ) | |
| 2806 | ;ZEXCEPT: DigestVal ue,GetAt,R eference,S ignedInfo | |
| 2807 | "RTN","XUC ERT1",70,0 ) | |
| 2808 | N REF | |
| 2809 | "RTN","XUC ERT1",71,0 ) | |
| 2810 | S REF=SIG NATURE.Sig nedInfo.Re ference.Ge tAt(1) | |
| 2811 | "RTN","XUC ERT1",72,0 ) | |
| 2812 | Q REF.Dig estValue | |
| 2813 | "RTN","XUC ERT1",73,0 ) | |
| 2814 | ; | |
| 2815 | "RTN","XUC ERT1",74,0 ) | |
| 2816 | CHKSIGN(RE ADER,SIGNA TURE) ;Fun ction. Val idate digi tal signat ure | |
| 2817 | "RTN","XUC ERT1",75,0 ) | |
| 2818 | ; Return value: 1 i f the sign ature was successful ly verifie d, 0 other wise. | |
| 2819 | "RTN","XUC ERT1",76,0 ) | |
| 2820 | ;ZEXCEPT: %New,%XML ,Canonical ize,Certif icate,Docu ment,Encry ption,GetN ode,GetXML String,Key Info,NodeI d,OutputTo String,RSA SHAVerify, SignatureV alue,Signe dInfo,Vali dateTokenR ef,Writer, X509Creden tials,clas s | |
| 2821 | "RTN","XUC ERT1",77,0 ) | |
| 2822 | N BITLENG T,CAFILE,C ERT,CRLFIL E,SIGNTXT, SIGNVAL,ST ATUS | |
| 2823 | "RTN","XUC ERT1",78,0 ) | |
| 2824 | S BITLENG T=256 ; (I nteger) Le ngth in bi ts of desi red hash, where 256 is SHA-256 | |
| 2825 | "RTN","XUC ERT1",79,0 ) | |
| 2826 | S SIGNTXT =$$SIGNTEX T(READER,S IGNATURE) ; (String) Data that was signe d | |
| 2827 | "RTN","XUC ERT1",80,0 ) | |
| 2828 | S SIGNVAL =SIGNATURE .Signature Value ; (S tring) Sig nature to be verifie d | |
| 2829 | "RTN","XUC ERT1",81,0 ) | |
| 2830 | S CERT=$$ CERT(SIGNA TURE) ; (S tring) X.5 09 certifi cate conta ining the RSA public key to va lidate the signature | |
| 2831 | "RTN","XUC ERT1",82,0 ) | |
| 2832 | I +CERT=- 1 Q CERT | |
| 2833 | "RTN","XUC ERT1",83,0 ) | |
| 2834 | ;RSASHAVe rify works with Open SSL on Win dows and L inux, but crashes wi th VMS. | |
| 2835 | "RTN","XUC ERT1",84,0 ) | |
| 2836 | I $$VERSI ON^%ZOSV(1 )["OpenVMS " Q 1 ;Qu it if VMS, skip sign ature vali dation | |
| 2837 | "RTN","XUC ERT1",85,0 ) | |
| 2838 | S STATUS= $System.En cryption.R SASHAVerif y(BITLENGT ,SIGNTXT,S IGNVAL,CER T) | |
| 2839 | "RTN","XUC ERT1",86,0 ) | |
| 2840 | Q STATUS= 1 | |
| 2841 | "RTN","XUC ERT1",87,0 ) | |
| 2842 | ; | |
| 2843 | "RTN","XUC ERT1",88,0 ) | |
| 2844 | SIGNTEXT(R EADER,SIGN ATURE) ;Fu nction. Re trieves th e SignedIn fo text | |
| 2845 | "RTN","XUC ERT1",89,0 ) | |
| 2846 | ;ZEXCEPT: %New,%XML ,Canonical ize,Docume nt,GetNode ,GetXMLStr ing,NodeId ,OutputToS tring,Sign edInfo,Wri ter,class ;ObjectScr ipt | |
| 2847 | "RTN","XUC ERT1",90,0 ) | |
| 2848 | N NODE,PR EFARR,WRIT ER,SC | |
| 2849 | "RTN","XUC ERT1",91,0 ) | |
| 2850 | S NODE=RE ADER.Docum ent.GetNod e("") | |
| 2851 | "RTN","XUC ERT1",92,0 ) | |
| 2852 | S NODE.No deId=SIGNA TURE.Signe dInfo.Node Id | |
| 2853 | "RTN","XUC ERT1",93,0 ) | |
| 2854 | S PREFARR ="c14n" ; signing pr efix array | |
| 2855 | "RTN","XUC ERT1",94,0 ) | |
| 2856 | S WRITER= ##class(%X ML.Writer) .%New() | |
| 2857 | "RTN","XUC ERT1",95,0 ) | |
| 2858 | S SC=WRIT ER.OutputT oString() | |
| 2859 | "RTN","XUC ERT1",96,0 ) | |
| 2860 | S SC=WRIT ER.Canonic alize(NODE ,.PREFARR) | |
| 2861 | "RTN","XUC ERT1",97,0 ) | |
| 2862 | Q WRITER. GetXMLStri ng(.SC) ; SignedInfo | |
| 2863 | "RTN","XUC ERT1",98,0 ) | |
| 2864 | ; | |
| 2865 | "RTN","XUC ERT1",99,0 ) | |
| 2866 | CERT(SIG) ;Function. Retrieves a certifi cate | |
| 2867 | "RTN","XUC ERT1",100, 0) | |
| 2868 | ;ZEXCEPT: Certifica te,KeyInfo ,ValidateT okenRef,X5 09Credenti als ;Objec tScript | |
| 2869 | "RTN","XUC ERT1",101, 0) | |
| 2870 | N KEYINFO ,ERROR | |
| 2871 | "RTN","XUC ERT1",102, 0) | |
| 2872 | S KEYINFO =SIG.KeyIn fo | |
| 2873 | "RTN","XUC ERT1",103, 0) | |
| 2874 | S ERROR=K EYINFO.Val idateToken Ref("") | |
| 2875 | "RTN","XUC ERT1",104, 0) | |
| 2876 | I ERROR'= "" Q "-1^I nvalid Key Info" | |
| 2877 | "RTN","XUC ERT1",105, 0) | |
| 2878 | Q KEYINFO .X509Crede ntials.Cer tificate | |
| 2879 | "RTN","XUC ERT1",106, 0) | |
| 2880 | ; | |
| 2881 | "RTN","XUC ERT1",107, 0) | |
| 2882 | LOADSTRM(G LO) ;Intri nsic Funct ion. Load global int o stream | |
| 2883 | "RTN","XUC ERT1",108, 0) | |
| 2884 | ;ZEXCEPT: %New,%Str eam,Global Character, class ;Obj ectScript | |
| 2885 | "RTN","XUC ERT1",109, 0) | |
| 2886 | N GLOREF, I,X,XMLSTR M,XQ,Y | |
| 2887 | "RTN","XUC ERT1",110, 0) | |
| 2888 | S Y=GLO | |
| 2889 | "RTN","XUC ERT1",111, 0) | |
| 2890 | S XQ=$P(Y ,")") ;or use $$OREF ^DILF(clos ed_root) t o convert closed roo t to open root? | |
| 2891 | "RTN","XUC ERT1",112, 0) | |
| 2892 | S XMLSTRM =##class(% Stream.Glo balCharact er).%New() ;Create O REF instan ce in memo ry | |
| 2893 | "RTN","XUC ERT1",113, 0) | |
| 2894 | ;Read XML from glob al, starti ng at the beginning, into XMLS TRM | |
| 2895 | "RTN","XUC ERT1",114, 0) | |
| 2896 | F I=0:0 D Q:Y'[XQ | |
| 2897 | "RTN","XUC ERT1",115, 0) | |
| 2898 | . S Y=$Q( @Y) Q:Y'[X Q | |
| 2899 | "RTN","XUC ERT1",116, 0) | |
| 2900 | . S X=$G( @Y) | |
| 2901 | "RTN","XUC ERT1",117, 0) | |
| 2902 | . D XMLST RM.Write(X ) | |
| 2903 | "RTN","XUC ERT1",118, 0) | |
| 2904 | Q XMLSTRM | |
| 2905 | "RTN","XUC ERT1",119, 0) | |
| 2906 | ; | |
| 2907 | "RTN","XUE SSO1") | |
| 2908 | 0^11^B9385 9687^B7769 3554 | |
| 2909 | "RTN","XUE SSO1",1,0) | |
| 2910 | XUESSO1 ;S EA/LUKE Si ngle Sign- on Utiliti es ;03/08/ 16 08:16 | |
| 2911 | "RTN","XUE SSO1",2,0) | |
| 2912 | ;;8.0;KER NEL;**165, 183,196,24 5,254,269, 337,395,46 6,523,655, 659**;Jul 10, 1995;B uild 22 | |
| 2913 | "RTN","XUE SSO1",3,0) | |
| 2914 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 2915 | "RTN","XUE SSO1",4,0) | |
| 2916 | ; | |
| 2917 | "RTN","XUE SSO1",5,0) | |
| 2918 | GET(INDUZ) ;Gather i dentifying data from user's ho me site. | |
| 2919 | "RTN","XUE SSO1",6,0) | |
| 2920 | ;Called b y SETVISIT ^XUSBSE1 ( Get visito r info for TOKEN) | |
| 2921 | "RTN","XUE SSO1",7,0) | |
| 2922 | ;Called b y SNDQRY^D GROHLS (Re trieve use r info) an d SETUP^XW B2HL7 (Get visitor i nfo) | |
| 2923 | "RTN","XUE SSO1",8,0) | |
| 2924 | ;Called b y (unknown ) (VSA/Vis tA.js) | |
| 2925 | "RTN","XUE SSO1",9,0) | |
| 2926 | ;To visit a remote site, user must have : Name, Ac cess/Verif y Codes, S SN (no pse udo), Stat ion Name, Site Numbe r | |
| 2927 | "RTN","XUE SSO1",10,0 ) | |
| 2928 | ;The foll owing data is option al: Phone, SecID, Ne twork User name | |
| 2929 | "RTN","XUE SSO1",11,0 ) | |
| 2930 | N %,NAME, SITE,SSN,P HONE,X,N,N ETWORK | |
| 2931 | "RTN","XUE SSO1",12,0 ) | |
| 2932 | I '$D(DUZ ) Q "-1^In sufficient info to a llow visit ing: No D UZ" | |
| 2933 | "RTN","XUE SSO1",13,0 ) | |
| 2934 | I '$D(DUZ (2)) Q "-1 ^Insuffici ent info t o allow vi siting: M issing DUZ (2)" | |
| 2935 | "RTN","XUE SSO1",14,0 ) | |
| 2936 | S N=$G(^V A(200,DUZ, 0)) | |
| 2937 | "RTN","XUE SSO1",15,0 ) | |
| 2938 | I '$L(N) Q "-1^Insu fficient i nfo to all ow visitin g: Missin g NPF Zero Node" | |
| 2939 | "RTN","XUE SSO1",16,0 ) | |
| 2940 | S %=$P(N, U,3) I $L( %)<1 Q "-1 ^Insuffici ent info t o allow vi siting: N o Access C ode" | |
| 2941 | "RTN","XUE SSO1",17,0 ) | |
| 2942 | S %=$P($G (^VA(200,D UZ,.1)),U, 2) I $L(%) <1 Q "-1^I nsufficien t info to allow visi ting: No Verify Cod e" | |
| 2943 | "RTN","XUE SSO1",18,0 ) | |
| 2944 | S %=$P(N, U,11) I $L (%)>1,(DT> %) Q "-1^I nsufficien t info to allow visi ting: Ter minated Us er" | |
| 2945 | "RTN","XUE SSO1",19,0 ) | |
| 2946 | I $P($$AC TIVE^XUSER (DUZ),U,1) '=1 Q "-1^ Insufficie nt info to allow vis iting: No t an activ e user" | |
| 2947 | "RTN","XUE SSO1",20,0 ) | |
| 2948 | ;I $G(DUZ ("LOA"))<2 Q "-1^Ins ufficient Level of A ssurance t o allow vi siting: U ser not au thenticate d" | |
| 2949 | "RTN","XUE SSO1",21,0 ) | |
| 2950 | S NAME=$P (N,U) | |
| 2951 | "RTN","XUE SSO1",22,0 ) | |
| 2952 | I '$L(NAM E) Q "-1^I nsufficien t info to allow visi ting: No User Name" | |
| 2953 | "RTN","XUE SSO1",23,0 ) | |
| 2954 | ; | |
| 2955 | "RTN","XUE SSO1",24,0 ) | |
| 2956 | S SITE=$$ NS^XUAF4(D UZ(2)) ;Si te is name ^station# | |
| 2957 | "RTN","XUE SSO1",25,0 ) | |
| 2958 | I $P(SITE ,U,2)="" Q "-1^Insuf ficient in fo to allo w visiting : Missing Station N umber" | |
| 2959 | "RTN","XUE SSO1",26,0 ) | |
| 2960 | ; | |
| 2961 | "RTN","XUE SSO1",27,0 ) | |
| 2962 | S SSN=$P( $G(^VA(200 ,DUZ,1)),U ,9) | |
| 2963 | "RTN","XUE SSO1",28,0 ) | |
| 2964 | I $$SPECI AL($P(SITE ,"^",2)) S SSN=99999 9999 ;Mani la RO does n't need S SN | |
| 2965 | "RTN","XUE SSO1",29,0 ) | |
| 2966 | I 'SSN Q "-1^Insuff icient inf o to allow visiting: Missing SSN" | |
| 2967 | "RTN","XUE SSO1",30,0 ) | |
| 2968 | I $E(SSN, 10)="P" Q "-1^Insuff icient inf o to allow visiting: User has a pseudo SSN" | |
| 2969 | "RTN","XUE SSO1",31,0 ) | |
| 2970 | I '$$SSNC HECK(SSN) Q "-1^Insu fficient i nfo to all ow visitin g: User d oes not ha ve a valid SSN" | |
| 2971 | "RTN","XUE SSO1",32,0 ) | |
| 2972 | ; | |
| 2973 | "RTN","XUE SSO1",33,0 ) | |
| 2974 | S PHONE=$ $PH | |
| 2975 | "RTN","XUE SSO1",34,0 ) | |
| 2976 | S X=SSN_U _NAME_U_SI TE_U_DUZ | |
| 2977 | "RTN","XUE SSO1",35,0 ) | |
| 2978 | I $L(PHON E)>2&($L(P HONE<20)) S X=X_U_PH ONE | |
| 2979 | "RTN","XUE SSO1",36,0 ) | |
| 2980 | S $P(X,U, 7)=$P($G(^ VA(200,DUZ ,205.1)),U ) ;p655 Se cID | |
| 2981 | "RTN","XUE SSO1",37,0 ) | |
| 2982 | S $P(X,U, 8)=$P($G(^ VA(200,DUZ ,501)),U) ;p655 Netw ork Userna me | |
| 2983 | "RTN","XUE SSO1",38,0 ) | |
| 2984 | ;X=ssn^na me^station name^stat ion number ^DUZ^phone ^SecID^net work usern ame | |
| 2985 | "RTN","XUE SSO1",39,0 ) | |
| 2986 | Q X | |
| 2987 | "RTN","XUE SSO1",40,0 ) | |
| 2988 | ; | |
| 2989 | "RTN","XUE SSO1",41,0 ) | |
| 2990 | PH() ; Try for a pho ne number or pager | |
| 2991 | "RTN","XUE SSO1",42,0 ) | |
| 2992 | N %,X | |
| 2993 | "RTN","XUE SSO1",43,0 ) | |
| 2994 | S %="" | |
| 2995 | "RTN","XUE SSO1",44,0 ) | |
| 2996 | S X=$G(^V A(200,DUZ, .13)) | |
| 2997 | "RTN","XUE SSO1",45,0 ) | |
| 2998 | I '$L(X) Q "" | |
| 2999 | "RTN","XUE SSO1",46,0 ) | |
| 3000 | S %=$P(X, U,5) I $L( %)>6 Q % ;Commercia l # | |
| 3001 | "RTN","XUE SSO1",47,0 ) | |
| 3002 | S %=$P(X, U,2) I $L( %)>2 Q % ;Office | |
| 3003 | "RTN","XUE SSO1",48,0 ) | |
| 3004 | S %=$P(X, U,8) I $L( %)>6 Q % ;Digital P ager | |
| 3005 | "RTN","XUE SSO1",49,0 ) | |
| 3006 | S %=$P(X, U,7) I $L( %)>6 Q % ;Pager | |
| 3007 | "RTN","XUE SSO1",50,0 ) | |
| 3008 | S %=$P(X, U,3) I $L( %)>2 Q % ;Phone #3 | |
| 3009 | "RTN","XUE SSO1",51,0 ) | |
| 3010 | S %=$P(X, U,4) I $L( %)>2 Q % ;Phone #4 | |
| 3011 | "RTN","XUE SSO1",52,0 ) | |
| 3012 | S %=$P(X, U,1) I $L( %)>2 Q % ;Home Phon e | |
| 3013 | "RTN","XUE SSO1",53,0 ) | |
| 3014 | Q "" ;Cou ldn't find one. | |
| 3015 | "RTN","XUE SSO1",54,0 ) | |
| 3016 | ; | |
| 3017 | "RTN","XUE SSO1",55,0 ) | |
| 3018 | SPECIAL(SN ) ;INTRINS IC. Specia l Manila R O site | |
| 3019 | "RTN","XUE SSO1",56,0 ) | |
| 3020 | ; Returns 1 if SN i s "358" | |
| 3021 | "RTN","XUE SSO1",57,0 ) | |
| 3022 | Q 358=SN | |
| 3023 | "RTN","XUE SSO1",58,0 ) | |
| 3024 | ; | |
| 3025 | "RTN","XUE SSO1",59,0 ) | |
| 3026 | PUT(DATIN) ;;Setup d ata from a uthenticat ing site G ET() at re ceiving si te | |
| 3027 | "RTN","XUE SSO1",60,0 ) | |
| 3028 | ;Called b y OLDCAPRI ^XUSBSE1 ( Old Capri) and SETUP ^XUSBSE1 ( BSE) | |
| 3029 | "RTN","XUE SSO1",61,0 ) | |
| 3030 | ;Called b y DIQ^DGRO HLU (Sensi tive Patie nt access) and REMOT E^XWB2HL7 (Visitor a ccess via HL7) | |
| 3031 | "RTN","XUE SSO1",62,0 ) | |
| 3032 | ;Called b y (unknown ) (VSA/Vis tA.js) | |
| 3033 | "RTN","XUE SSO1",63,0 ) | |
| 3034 | ;Return: 0=fail, 1= OK | |
| 3035 | "RTN","XUE SSO1",64,0 ) | |
| 3036 | N NAME,NE TWORK,NEWD UZ,PHONE,R MTDUZ,SECI D,SITE,SIT ENUM,SSN,T ODAY,XSITE IEN,XT,XUM F | |
| 3037 | "RTN","XUE SSO1",65,0 ) | |
| 3038 | I $G(DUZ( "LOA"))="" S DUZ("LO A")=1 | |
| 3039 | "RTN","XUE SSO1",66,0 ) | |
| 3040 | ;I $G(DUZ ("LOA"))<2 Q 0 ;do not allow access if Level Of A ssurance i s low | |
| 3041 | "RTN","XUE SSO1",67,0 ) | |
| 3042 | I $G(DUZ( "AUTHENTIC ATION"))=" " S DUZ("A UTHENTICAT ION")="UNK NOWN" | |
| 3043 | "RTN","XUE SSO1",68,0 ) | |
| 3044 | S U="^",T ODAY=$$HTF M^XLFDT($H ),DT=$P(TO DAY,"."),N EWDUZ=0 | |
| 3045 | "RTN","XUE SSO1",69,0 ) | |
| 3046 | K ^TMP("D IERR",$J) | |
| 3047 | "RTN","XUE SSO1",70,0 ) | |
| 3048 | ; | |
| 3049 | "RTN","XUE SSO1",71,0 ) | |
| 3050 | S SSN=$P( DATIN,U,1) ,NAME=$P(D ATIN,U,2), SITE=$P(DA TIN,U,3) | |
| 3051 | "RTN","XUE SSO1",72,0 ) | |
| 3052 | S SITENUM =$P(DATIN, U,4),RMTDU Z=$P(DATIN ,U,5),PHON E=$P(DATIN ,U,6) | |
| 3053 | "RTN","XUE SSO1",73,0 ) | |
| 3054 | S SECID=$ P(DATIN,U, 7) ;p655 | |
| 3055 | "RTN","XUE SSO1",74,0 ) | |
| 3056 | S NETWORK =$P(DATIN, U,8) ;p655 | |
| 3057 | "RTN","XUE SSO1",75,0 ) | |
| 3058 | ;Format c hecks | |
| 3059 | "RTN","XUE SSO1",76,0 ) | |
| 3060 | I NAME'?1 U.E1","1U. E Q 0 | |
| 3061 | "RTN","XUE SSO1",77,0 ) | |
| 3062 | I SSN'?9N Q 0 | |
| 3063 | "RTN","XUE SSO1",78,0 ) | |
| 3064 | I '$L(SIT E)!('$L(SI TENUM)) Q 0 | |
| 3065 | "RTN","XUE SSO1",79,0 ) | |
| 3066 | S XUMF=1 D CHK^DIE( 4,99,,SITE NUM,.XT) I XT=U Q 0 ;p533 | |
| 3067 | "RTN","XUE SSO1",80,0 ) | |
| 3068 | D CHK^DIE (200.06,1, ,SITE,.XT) I XT=U Q 0 ;p533 | |
| 3069 | "RTN","XUE SSO1",81,0 ) | |
| 3070 | I RMTDUZ' >0 Q 0 ;p3 37 | |
| 3071 | "RTN","XUE SSO1",82,0 ) | |
| 3072 | ;Check if visitor i s from a v alid activ e site | |
| 3073 | "RTN","XUE SSO1",83,0 ) | |
| 3074 | S XSITEIE N=$$IEN^XU AF4(SITENU M) I XSITE IEN="" H 1 ;Q 0 ;Qui t if authe nticating VistA not in INSTITU TION file (#4) | |
| 3075 | "RTN","XUE SSO1",84,0 ) | |
| 3076 | ;I '$$ACT IVE^XUAF4( XSITEIEN) Q 0 ;Quit if authent icating Vi stA is not an active VA site ( spoofed) | |
| 3077 | "RTN","XUE SSO1",85,0 ) | |
| 3078 | ;I $P($$N S^XUAF4(XS ITEIEN),"^ ",1)'=SITE Q 0 ;Quit if authen ticating V istA name and statio n number m ismatch (s poofed) | |
| 3079 | "RTN","XUE SSO1",86,0 ) | |
| 3080 | ;Get a LO CK. Block if can't g et. | |
| 3081 | "RTN","XUE SSO1",87,0 ) | |
| 3082 | L +^VA(20 0,"HL7"):1 0 Q:'$T 0 | |
| 3083 | "RTN","XUE SSO1",88,0 ) | |
| 3084 | S XT=$$TA LL($G(DUZ, 0)) L -^VA (200,"HL7" ) | |
| 3085 | "RTN","XUE SSO1",89,0 ) | |
| 3086 | I XT Q $$ SET(NEWDUZ ) ;Return 1 if OK. | |
| 3087 | "RTN","XUE SSO1",90,0 ) | |
| 3088 | Q 0 | |
| 3089 | "RTN","XUE SSO1",91,0 ) | |
| 3090 | ; | |
| 3091 | "RTN","XUE SSO1",92,0 ) | |
| 3092 | TALL(DUZ) ;INTRINSIC . Test for existing user or ad ds a new o ne | |
| 3093 | "RTN","XUE SSO1",93,0 ) | |
| 3094 | ; ZEXCEPT : NAME,NEW DUZ,PHONE, RMTDUZ,SIT E,SITENUM, SSN,XSSN,T ODAY,SECID ,NETWORK ; global var iables wit hin this r outine | |
| 3095 | "RTN","XUE SSO1",94,0 ) | |
| 3096 | ; ZEXCEPT : DIC ;tur n off DIC( 0) for ^XU A4A7 (work around) | |
| 3097 | "RTN","XUE SSO1",95,0 ) | |
| 3098 | N FLAG,NE WREC,XUIAM | |
| 3099 | "RTN","XUE SSO1",96,0 ) | |
| 3100 | S FLAG=0, DUZ(0)="@" ;Make sur e we can a dd the ent ry | |
| 3101 | "RTN","XUE SSO1",97,0 ) | |
| 3102 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 3103 | "RTN","XUE SSO1",98,0 ) | |
| 3104 | ;See if m atch SECID . Only use for looku p. Do not load SECID 's. | |
| 3105 | "RTN","XUE SSO1",99,0 ) | |
| 3106 | I $L(SECI D) D | |
| 3107 | "RTN","XUE SSO1",100, 0) | |
| 3108 | . S NEWDU Z=+$$SECMA TCH^XUESSO 2(SECID) Q :NEWDUZ<1 ;p655 | |
| 3109 | "RTN","XUE SSO1",101, 0) | |
| 3110 | . I '$D(^ VA(200,NEW DUZ,8910," B",SITENUM )) D VISM | |
| 3111 | "RTN","XUE SSO1",102, 0) | |
| 3112 | . D ADDW, UPDT | |
| 3113 | "RTN","XUE SSO1",103, 0) | |
| 3114 | . S FLAG= 1,DUZ(0)=$ P($G(^VA(2 00,NEWDUZ, 0)),U,4) | |
| 3115 | "RTN","XUE SSO1",104, 0) | |
| 3116 | . Q | |
| 3117 | "RTN","XUE SSO1",105, 0) | |
| 3118 | I FLAG Q 1 ;Quit he re if we f ound a mat ch on SECI D | |
| 3119 | "RTN","XUE SSO1",106, 0) | |
| 3120 | ;See if t he SSN is in the NPF cross ref erence | |
| 3121 | "RTN","XUE SSO1",107, 0) | |
| 3122 | I $D(^VA( 200,"SSN", SSN)),$$SS NCHECK(SSN ),'$$SPECI AL(SITENUM ) D | |
| 3123 | "RTN","XUE SSO1",108, 0) | |
| 3124 | . N XUEIE N,XUEAUSER | |
| 3125 | "RTN","XUE SSO1",109, 0) | |
| 3126 | . S XUEIE N=0,NEWDUZ =0 | |
| 3127 | "RTN","XUE SSO1",110, 0) | |
| 3128 | . F S XU EIEN=$O(^V A(200,"SSN ",SSN,XUEI EN)) Q:(XU EIEN="")!( NEWDUZ>0) D | |
| 3129 | "RTN","XUE SSO1",111, 0) | |
| 3130 | . . N XUE NAME S XUE NAME=$P($G (^VA(200,X UEIEN,0)), U) | |
| 3131 | "RTN","XUE SSO1",112, 0) | |
| 3132 | . . S NEW DUZ=XUEIEN | |
| 3133 | "RTN","XUE SSO1",113, 0) | |
| 3134 | . . ;Upda te name if names don 't match, user has v isited bef ore, and u ser is not an active local use r | |
| 3135 | "RTN","XUE SSO1",114, 0) | |
| 3136 | . . I (XU ENAME'=NAM E)&(XUEIEN =$O(^VA(20 0,"AVISIT" ,SITENUM,R MTDUZ,0))) &(('$$ACTI VE^XUSER(X UEIEN))) D ADDN | |
| 3137 | "RTN","XUE SSO1",115, 0) | |
| 3138 | . Q:NEWDU Z'>0 | |
| 3139 | "RTN","XUE SSO1",116, 0) | |
| 3140 | . I '$D(^ VA(200,NEW DUZ,8910," B",SITENUM )) D VISM | |
| 3141 | "RTN","XUE SSO1",117, 0) | |
| 3142 | . D ADDW, ADDI,UPDT | |
| 3143 | "RTN","XUE SSO1",118, 0) | |
| 3144 | . S FLAG= 1,DUZ(0)=$ P($G(^VA(2 00,NEWDUZ, 0)),U,4) | |
| 3145 | "RTN","XUE SSO1",119, 0) | |
| 3146 | . Q | |
| 3147 | "RTN","XUE SSO1",120, 0) | |
| 3148 | I FLAG Q 1 ;Quit he re if we f ound a mat ch for SSN | |
| 3149 | "RTN","XUE SSO1",121, 0) | |
| 3150 | ;See if i n the AVIS IT cross r eference ( Manila onl y) | |
| 3151 | "RTN","XUE SSO1",122, 0) | |
| 3152 | I $$SPECI AL(SITENUM ) D | |
| 3153 | "RTN","XUE SSO1",123, 0) | |
| 3154 | . S NEWDU Z=$O(^VA(2 00,"AVISIT ",SITENUM, RMTDUZ,0)) | |
| 3155 | "RTN","XUE SSO1",124, 0) | |
| 3156 | . Q:NEWDU Z'>0 ;Use r must hav e visited from Manil a at least once to b e found by this test | |
| 3157 | "RTN","XUE SSO1",125, 0) | |
| 3158 | . D ADDW, ADDI,UPDT S FLAG=1,D UZ(0)=$P($ G(^VA(200, NEWDUZ,0)) ,U,4) | |
| 3159 | "RTN","XUE SSO1",126, 0) | |
| 3160 | . Q | |
| 3161 | "RTN","XUE SSO1",127, 0) | |
| 3162 | I FLAG Q 1 ;Quit he re if we f ound a mat ch for AVI SIT | |
| 3163 | "RTN","XUE SSO1",128, 0) | |
| 3164 | ;Try for a NAME mat ch in "B" | |
| 3165 | "RTN","XUE SSO1",129, 0) | |
| 3166 | N XUEIEN, XUESSN | |
| 3167 | "RTN","XUE SSO1",130, 0) | |
| 3168 | S NAME=$$ UP^XLFSTR( NAME) | |
| 3169 | "RTN","XUE SSO1",131, 0) | |
| 3170 | I $D(^VA( 200,"B",NA ME)) D | |
| 3171 | "RTN","XUE SSO1",132, 0) | |
| 3172 | . S XUEIE N=0,NEWDUZ =0 | |
| 3173 | "RTN","XUE SSO1",133, 0) | |
| 3174 | . F S XU EIEN=$O(^V A(200,"B", NAME,XUEIE N)) Q:(XUE IEN="")!(N EWDUZ>0) D | |
| 3175 | "RTN","XUE SSO1",134, 0) | |
| 3176 | . . S XUE SSN=$P($G( ^VA(200,XU EIEN,1)),U ,9) | |
| 3177 | "RTN","XUE SSO1",135, 0) | |
| 3178 | . . I (XU ESSN'=SSN) &($L(XUESS N)>8) Q ; Do not use if name h as a diffe rent SSN | |
| 3179 | "RTN","XUE SSO1",136, 0) | |
| 3180 | . . S NEW DUZ=XUEIEN | |
| 3181 | "RTN","XUE SSO1",137, 0) | |
| 3182 | . I NEWDU Z>0 D | |
| 3183 | "RTN","XUE SSO1",138, 0) | |
| 3184 | . . D ADD S | |
| 3185 | "RTN","XUE SSO1",139, 0) | |
| 3186 | . . I '$D (^VA(200,N EWDUZ,8910 ,"B",SITEN UM)) D VIS M | |
| 3187 | "RTN","XUE SSO1",140, 0) | |
| 3188 | . . D ADD W,ADDI,UPD T | |
| 3189 | "RTN","XUE SSO1",141, 0) | |
| 3190 | . . S FLA G=1,DUZ(0) =$P($G(^VA (200,NEWDU Z,0)),U,4) | |
| 3191 | "RTN","XUE SSO1",142, 0) | |
| 3192 | . Q | |
| 3193 | "RTN","XUE SSO1",143, 0) | |
| 3194 | I FLAG Q 1 ;Quit he re if we f ound an ex act match for NAME ( w/o SSN) | |
| 3195 | "RTN","XUE SSO1",144, 0) | |
| 3196 | ; | |
| 3197 | "RTN","XUE SSO1",145, 0) | |
| 3198 | ;I DUZ("L OA")=1 Q 0 ;Do not add user i f Level Of Assurance is low | |
| 3199 | "RTN","XUE SSO1",146, 0) | |
| 3200 | ;I $G(DUZ ("REMAPP") )="^MDWS" Q 0 ;Do n ot add use r if MDWS access | |
| 3201 | "RTN","XUE SSO1",147, 0) | |
| 3202 | I $G(DUZ( "REMAPP")) ="^MDWS" H $E(DT,1,3 )-315 ;Di scourage d eprecated MDWS acces s | |
| 3203 | "RTN","XUE SSO1",148, 0) | |
| 3204 | ; | |
| 3205 | "RTN","XUE SSO1",149, 0) | |
| 3206 | ;We didn' t find any body under SecID,SSN ,VISITED F ROM, or NA ME so we a dd a new u ser | |
| 3207 | "RTN","XUE SSO1",150, 0) | |
| 3208 | S DIC(0)= "" ;Turn o ff ^XUA4A7 (work aro und) | |
| 3209 | "RTN","XUE SSO1",151, 0) | |
| 3210 | ;Put the name in th e .01 fiel d first. | |
| 3211 | "RTN","XUE SSO1",152, 0) | |
| 3212 | D ADDU ;A DDU will s et NEWDUZ | |
| 3213 | "RTN","XUE SSO1",153, 0) | |
| 3214 | I NEWDUZ= 0 Q 0 ;If NEWDUZ is still 0, the User a dd didn't work so ex it. | |
| 3215 | "RTN","XUE SSO1",154, 0) | |
| 3216 | D ADDS,AD DA ;(p337) Add SSN a nd "VISITO R" Alias. | |
| 3217 | "RTN","XUE SSO1",155, 0) | |
| 3218 | D ADDW,AD DI ; Add N ETWORK USE RNAME and SSO attrib utes | |
| 3219 | "RTN","XUE SSO1",156, 0) | |
| 3220 | D VISM,UP DT ; Fill in the VI SITED FROM multiple | |
| 3221 | "RTN","XUE SSO1",157, 0) | |
| 3222 | I NEWDUZ= 0 Q 0 ;Cou ldn't upda te user | |
| 3223 | "RTN","XUE SSO1",158, 0) | |
| 3224 | I $D(^TMP ("DIERR",$ J)) Q 0 ; FileMan Er ror | |
| 3225 | "RTN","XUE SSO1",159, 0) | |
| 3226 | ; | |
| 3227 | "RTN","XUE SSO1",160, 0) | |
| 3228 | S FLAG=$$ BULL(NAME, NEWDUZ,SIT E,SITENUM, RMTDUZ,PHO NE,TODAY) | |
| 3229 | "RTN","XUE SSO1",161, 0) | |
| 3230 | S DUZ(0)= $P($G(^VA( 200,NEWDUZ ,0)),U,4) | |
| 3231 | "RTN","XUE SSO1",162, 0) | |
| 3232 | Q 1 ;Eve ry thing O K | |
| 3233 | "RTN","XUE SSO1",163, 0) | |
| 3234 | ; | |
| 3235 | "RTN","XUE SSO1",164, 0) | |
| 3236 | SET(NEWDUZ ) ;INTRINS IC. Set th e user up to go | |
| 3237 | "RTN","XUE SSO1",165, 0) | |
| 3238 | ; ZEXCEPT : RMTDUZ,S ITENUM ;gl obal varia bles withi n this rou tine | |
| 3239 | "RTN","XUE SSO1",166, 0) | |
| 3240 | ;Return: 0=fail, 1= OK | |
| 3241 | "RTN","XUE SSO1",167, 0) | |
| 3242 | Q:NEWDUZ' >0 0 | |
| 3243 | "RTN","XUE SSO1",168, 0) | |
| 3244 | N XUSER,X OPT | |
| 3245 | "RTN","XUE SSO1",169, 0) | |
| 3246 | S DUZ=NEW DUZ,U="^", DUZ("VISIT OR")=SITEN UM_U_RMTDU Z ;p533 | |
| 3247 | "RTN","XUE SSO1",170, 0) | |
| 3248 | D DUZ^XUS 1A | |
| 3249 | "RTN","XUE SSO1",171, 0) | |
| 3250 | Q 1 | |
| 3251 | "RTN","XUE SSO1",172, 0) | |
| 3252 | ; | |
| 3253 | "RTN","XUE SSO1",173, 0) | |
| 3254 | ADDU ;SR. Add a new name to th e New Pers on File | |
| 3255 | "RTN","XUE SSO1",174, 0) | |
| 3256 | ; ZEXCEPT : FDR,NAME ,NEWDUZ,NE WREC ;glob al variabl es within this routi ne | |
| 3257 | "RTN","XUE SSO1",175, 0) | |
| 3258 | N DD,DO,D IC,DA,X,Y | |
| 3259 | "RTN","XUE SSO1",176, 0) | |
| 3260 | S NEWDUZ= 0 | |
| 3261 | "RTN","XUE SSO1",177, 0) | |
| 3262 | S DIC="^V A(200,",DI C(0)="F",X =NAME,NEWR EC=1 ;p533 | |
| 3263 | "RTN","XUE SSO1",178, 0) | |
| 3264 | D FILE^DI CN | |
| 3265 | "RTN","XUE SSO1",179, 0) | |
| 3266 | S:Y>0 NEW DUZ=+Y | |
| 3267 | "RTN","XUE SSO1",180, 0) | |
| 3268 | Q | |
| 3269 | "RTN","XUE SSO1",181, 0) | |
| 3270 | ; | |
| 3271 | "RTN","XUE SSO1",182, 0) | |
| 3272 | ADDS ;SR. Add a SSN to the New Person Fi le | |
| 3273 | "RTN","XUE SSO1",183, 0) | |
| 3274 | ; ZEXCEPT : FDR,NEWD UZ,SSN,SIT ENUM ;glob al variabl es within this routi ne | |
| 3275 | "RTN","XUE SSO1",184, 0) | |
| 3276 | N IEN | |
| 3277 | "RTN","XUE SSO1",185, 0) | |
| 3278 | Q:$$SPECI AL(SITENUM ) ;don't add SSN if from Mani la | |
| 3279 | "RTN","XUE SSO1",186, 0) | |
| 3280 | Q:$D(^VA( 200,"SSN", SSN)) ;do n't try to add a dup licate SSN | |
| 3281 | "RTN","XUE SSO1",187, 0) | |
| 3282 | Q:'$$SSNC HECK(SSN) ;only add a valid S SN | |
| 3283 | "RTN","XUE SSO1",188, 0) | |
| 3284 | S IEN=NEW DUZ_"," | |
| 3285 | "RTN","XUE SSO1",189, 0) | |
| 3286 | S FDR(200 ,IEN,9)=SS N | |
| 3287 | "RTN","XUE SSO1",190, 0) | |
| 3288 | ;Do updat e for all data in UP DT | |
| 3289 | "RTN","XUE SSO1",191, 0) | |
| 3290 | Q | |
| 3291 | "RTN","XUE SSO1",192, 0) | |
| 3292 | ; | |
| 3293 | "RTN","XUE SSO1",193, 0) | |
| 3294 | ADDI ;SR. Add SSO at tributes t o the New Person Fil e | |
| 3295 | "RTN","XUE SSO1",194, 0) | |
| 3296 | ; ZEXCEPT : FDR,NEWD UZ,SECID ; global var iables wit hin this r outine | |
| 3297 | "RTN","XUE SSO1",195, 0) | |
| 3298 | N IEN | |
| 3299 | "RTN","XUE SSO1",196, 0) | |
| 3300 | Q:'$L(SEC ID) ;need SECID for SSO | |
| 3301 | "RTN","XUE SSO1",197, 0) | |
| 3302 | S IEN=NEW DUZ_"," | |
| 3303 | "RTN","XUE SSO1",198, 0) | |
| 3304 | I $P($G(^ VA(200,NEW DUZ,205)), U,1)="" S FDR(200,IE N,205.1)=S ECID ;SECI D | |
| 3305 | "RTN","XUE SSO1",199, 0) | |
| 3306 | I $P($G(^ VA(200,NEW DUZ,205)), U,2)="" S FDR(200,IE N,205.2)=$ P($G(^XTV( 8989.3,1,2 00)),U,2) ;Subject O rganizatio n | |
| 3307 | "RTN","XUE SSO1",200, 0) | |
| 3308 | I $P($G(^ VA(200,NEW DUZ,205)), U,3)="" S FDR(200,IE N,205.3)=$ P($G(^XTV( 8989.3,1,2 00)),U,3) ;Subject O rganizatio n ID | |
| 3309 | "RTN","XUE SSO1",201, 0) | |
| 3310 | I $P($G(^ VA(200,NEW DUZ,205)), U,4)="" S FDR(200,IE N,205.4)=S ECID ;Uniq ue User ID | |
| 3311 | "RTN","XUE SSO1",202, 0) | |
| 3312 | ;Do updat e for all data in UP DT | |
| 3313 | "RTN","XUE SSO1",203, 0) | |
| 3314 | Q | |
| 3315 | "RTN","XUE SSO1",204, 0) | |
| 3316 | ; | |
| 3317 | "RTN","XUE SSO1",205, 0) | |
| 3318 | ADDN ;SR. Update the NAME in t he New Per son File | |
| 3319 | "RTN","XUE SSO1",206, 0) | |
| 3320 | ; ZEXCEPT : FDR,NEWD UZ,NAME,RM TDUZ,SITEN UM ;global variables within th is routine | |
| 3321 | "RTN","XUE SSO1",207, 0) | |
| 3322 | N IEN | |
| 3323 | "RTN","XUE SSO1",208, 0) | |
| 3324 | Q:NAME=$P ($G(^VA(20 0,NEWDUZ,0 )),U,1) ; name is u nchanged, do nothing | |
| 3325 | "RTN","XUE SSO1",209, 0) | |
| 3326 | I NEWDUZ' =$O(^VA(20 0,"AVISIT" ,SITENUM,R MTDUZ,0)) Q ; user hasn't vis ited befor e, so this is not a valid name change | |
| 3327 | "RTN","XUE SSO1",210, 0) | |
| 3328 | S IEN=NEW DUZ_"," | |
| 3329 | "RTN","XUE SSO1",211, 0) | |
| 3330 | S FDR(200 ,IEN,.01)= NAME | |
| 3331 | "RTN","XUE SSO1",212, 0) | |
| 3332 | ;Do updat e for all data in UP DT | |
| 3333 | "RTN","XUE SSO1",213, 0) | |
| 3334 | Q | |
| 3335 | "RTN","XUE SSO1",214, 0) | |
| 3336 | ; | |
| 3337 | "RTN","XUE SSO1",215, 0) | |
| 3338 | ADDA ;SR. Add a new Alias to f ile 200.04 | |
| 3339 | "RTN","XUE SSO1",216, 0) | |
| 3340 | ; ZEXCEPT : FDR,NEWD UZ ;global variables within th is routine | |
| 3341 | "RTN","XUE SSO1",217, 0) | |
| 3342 | N IEN | |
| 3343 | "RTN","XUE SSO1",218, 0) | |
| 3344 | Q:$D(^VA( 200,NEWDUZ ,3,"B","VI SITOR")) ; Quit if user is al ready mark ed as visi tor | |
| 3345 | "RTN","XUE SSO1",219, 0) | |
| 3346 | S IEN="+2 ,"_NEWDUZ_ "," | |
| 3347 | "RTN","XUE SSO1",220, 0) | |
| 3348 | S FDR(200 .04,IEN,.0 1)="VISITO R" | |
| 3349 | "RTN","XUE SSO1",221, 0) | |
| 3350 | ;Do updat e for all data in UP DT | |
| 3351 | "RTN","XUE SSO1",222, 0) | |
| 3352 | Q | |
| 3353 | "RTN","XUE SSO1",223, 0) | |
| 3354 | ; | |
| 3355 | "RTN","XUE SSO1",224, 0) | |
| 3356 | ADDW ;SR. Add NETWOR K USERNAME to the Ne w Person F ile | |
| 3357 | "RTN","XUE SSO1",225, 0) | |
| 3358 | ; ZEXCEPT : FDR,NEWD UZ,NETWORK ;global v ariables w ithin this routine | |
| 3359 | "RTN","XUE SSO1",226, 0) | |
| 3360 | N IEN | |
| 3361 | "RTN","XUE SSO1",227, 0) | |
| 3362 | Q:$G(^VA( 200,NEWDUZ ,501))'="" ; Quit i f user alr eady has a NETWORK U SERNAME | |
| 3363 | "RTN","XUE SSO1",228, 0) | |
| 3364 | Q:$L($G(N ETWORK))<1 2 ; Quit if NETWORK USERNAME is too sho rt | |
| 3365 | "RTN","XUE SSO1",229, 0) | |
| 3366 | S IEN=NEW DUZ_"," | |
| 3367 | "RTN","XUE SSO1",230, 0) | |
| 3368 | S FDR(200 ,IEN,501.1 )=$G(NETWO RK) | |
| 3369 | "RTN","XUE SSO1",231, 0) | |
| 3370 | ;Do updat e for all data in UP DT | |
| 3371 | "RTN","XUE SSO1",232, 0) | |
| 3372 | Q | |
| 3373 | "RTN","XUE SSO1",233, 0) | |
| 3374 | ; | |
| 3375 | "RTN","XUE SSO1",234, 0) | |
| 3376 | VISM ;SR. Create a m ultiple fo r this sit e number i n the VISI TED FROM f ile | |
| 3377 | "RTN","XUE SSO1",235, 0) | |
| 3378 | ; ZEXCEPT : FDR,NEWD UZ,RMTDUZ, SITE,SITEN UM,TODAY ; global var iables wit hin this r outine | |
| 3379 | "RTN","XUE SSO1",236, 0) | |
| 3380 | N IEN | |
| 3381 | "RTN","XUE SSO1",237, 0) | |
| 3382 | S IEN="+3 ,"_NEWDUZ_ "," | |
| 3383 | "RTN","XUE SSO1",238, 0) | |
| 3384 | S FDR(200 .06,IEN,.0 1)=SITENUM | |
| 3385 | "RTN","XUE SSO1",239, 0) | |
| 3386 | S FDR(200 .06,IEN,1) =SITE | |
| 3387 | "RTN","XUE SSO1",240, 0) | |
| 3388 | S FDR(200 .06,IEN,2) =RMTDUZ | |
| 3389 | "RTN","XUE SSO1",241, 0) | |
| 3390 | S FDR(200 .06,IEN,3) =TODAY | |
| 3391 | "RTN","XUE SSO1",242, 0) | |
| 3392 | ;Do updat e for all data in UP DT | |
| 3393 | "RTN","XUE SSO1",243, 0) | |
| 3394 | Q | |
| 3395 | "RTN","XUE SSO1",244, 0) | |
| 3396 | ; | |
| 3397 | "RTN","XUE SSO1",245, 0) | |
| 3398 | UPDT ;SR. Update all data fiel ds | |
| 3399 | "RTN","XUE SSO1",246, 0) | |
| 3400 | ; Sets: N EWDUZ=0 if failed to complete update | |
| 3401 | "RTN","XUE SSO1",247, 0) | |
| 3402 | ; ZEXCEPT : FDR,NAME ,NEWDUZ,SI TE,SITENUM ,PHONE,TOD AY,DATIN,N EWREC ;glo bal variab les within this rout ine | |
| 3403 | "RTN","XUE SSO1",248, 0) | |
| 3404 | N IEN,FDQ | |
| 3405 | "RTN","XUE SSO1",249, 0) | |
| 3406 | I $D(FDR( 200.06)) S IEN=$O(FD R(200.06," ")) | |
| 3407 | "RTN","XUE SSO1",250, 0) | |
| 3408 | E S IEN= $O(^VA(200 ,NEWDUZ,89 10,"B",SIT ENUM,0))_" ,"_NEWDUZ_ "," | |
| 3409 | "RTN","XUE SSO1",251, 0) | |
| 3410 | S FDR(200 .06,IEN,4) =TODAY | |
| 3411 | "RTN","XUE SSO1",252, 0) | |
| 3412 | I $D(PHON E),($L(PHO NE)>4) S F DR(200.06, IEN,5)=PHO NE ;p466 U pdate the phone each time | |
| 3413 | "RTN","XUE SSO1",253, 0) | |
| 3414 | I $D(SITE ) S FDR(20 0.06,IEN,1 )=SITE ;p6 55 Update the site e ach time ( name chang es in INST ITUTION fi le) | |
| 3415 | "RTN","XUE SSO1",254, 0) | |
| 3416 | K IEN D U PDATE^DIE( "E","FDR", "IEN") ;Fi le all the data | |
| 3417 | "RTN","XUE SSO1",255, 0) | |
| 3418 | I $D(^TMP ("DIERR",$ J)) D Q | |
| 3419 | "RTN","XUE SSO1",256, 0) | |
| 3420 | . N DIK,D A,Y | |
| 3421 | "RTN","XUE SSO1",257, 0) | |
| 3422 | . I $D(NE WREC) S DI K="^VA(200 ,",DA=NEWD UZ D ^DIK ;Remove pa rtial entr y ;p533 | |
| 3423 | "RTN","XUE SSO1",258, 0) | |
| 3424 | . S NEWDU Z=0 ;Tell failed | |
| 3425 | "RTN","XUE SSO1",259, 0) | |
| 3426 | Q | |
| 3427 | "RTN","XUE SSO1",260, 0) | |
| 3428 | ; | |
| 3429 | "RTN","XUE SSO1",261, 0) | |
| 3430 | BULL(NAME, NEWDUZ,SIT E,SITENUM, RMTDUZ,PHO NE,TODAY) ;INTRINSIC . Send loc al bulleti n if user added | |
| 3431 | "RTN","XUE SSO1",262, 0) | |
| 3432 | ; Returns : 0 if fai led to sen d bulletin , 1 if suc cess | |
| 3433 | "RTN","XUE SSO1",263, 0) | |
| 3434 | ; ZEXCEPT : XTMUNIT ;set for u nit testin g | |
| 3435 | "RTN","XUE SSO1",264, 0) | |
| 3436 | N XMB | |
| 3437 | "RTN","XUE SSO1",265, 0) | |
| 3438 | I ($G(NAM E)="")!($G (NEWDUZ)=" ")!($G(SIT E)="")!($G (SITENUM)= "") Q 0 | |
| 3439 | "RTN","XUE SSO1",266, 0) | |
| 3440 | I ($G(RMT DUZ)="")!( $G(PHONE)= "")!($G(TO DAY)="") Q 0 | |
| 3441 | "RTN","XUE SSO1",267, 0) | |
| 3442 | S XMB="XU VISIT" | |
| 3443 | "RTN","XUE SSO1",268, 0) | |
| 3444 | S XMB(1)= $$FMTE^XLF DT(TODAY) | |
| 3445 | "RTN","XUE SSO1",269, 0) | |
| 3446 | S XMB(2)= NAME,XMB(3 )=NEWDUZ,X MB(4)=SITE | |
| 3447 | "RTN","XUE SSO1",270, 0) | |
| 3448 | S XMB(5)= SITENUM,XM B(6)=RMTDU Z,XMB(7)=P HONE | |
| 3449 | "RTN","XUE SSO1",271, 0) | |
| 3450 | I '$D(XTM UNIT) D ^X MB | |
| 3451 | "RTN","XUE SSO1",272, 0) | |
| 3452 | Q 1 | |
| 3453 | "RTN","XUE SSO1",273, 0) | |
| 3454 | ; | |
| 3455 | "RTN","XUE SSO1",274, 0) | |
| 3456 | SSNCHECK(S SN) ;INTRI NSIC. Chec k for vali d SSN | |
| 3457 | "RTN","XUE SSO1",275, 0) | |
| 3458 | ; Input: SSN in for mat "nnnnn nnnn" or " nnn-nn-nnn n" | |
| 3459 | "RTN","XUE SSO1",276, 0) | |
| 3460 | ; Returns : 0 if SSN is invali d, 1 if su ccess | |
| 3461 | "RTN","XUE SSO1",277, 0) | |
| 3462 | ; Valid S SN range 0 01-01-0001 to 899-99 -9999 with exception s (rule as of 2011) | |
| 3463 | "RTN","XUE SSO1",278, 0) | |
| 3464 | ; Valid I ndividual Taxpayer I dentificat ion Number range 900 -01-0001 t o 999-99-9 999 with e xceptions (rule as o f 1966) | |
| 3465 | "RTN","XUE SSO1",279, 0) | |
| 3466 | N X | |
| 3467 | "RTN","XUE SSO1",280, 0) | |
| 3468 | I $$PROD^ XUPROD()=0 Q 1 ;all ow use of invalid SS Ns in deve lopment ac counts | |
| 3469 | "RTN","XUE SSO1",281, 0) | |
| 3470 | S X=$TR(S SN,"-") | |
| 3471 | "RTN","XUE SSO1",282, 0) | |
| 3472 | I $L(X)'= 9 Q 0 | |
| 3473 | "RTN","XUE SSO1",283, 0) | |
| 3474 | I $E(X,1, 3)'>0 Q 0 ;1st 3 d igits cann ot be 000 | |
| 3475 | "RTN","XUE SSO1",284, 0) | |
| 3476 | I $E(X,4, 5)'>0 Q 0 ;digits 4-5 cannot be 00 | |
| 3477 | "RTN","XUE SSO1",285, 0) | |
| 3478 | I $E(X,6, 9)'>0 Q 0 ;digits 6-9 cannot be 0000 | |
| 3479 | "RTN","XUE SSO1",286, 0) | |
| 3480 | I $E(X,1, 3)=666 Q 0 ;1st 3 d igits cann ot be 666 | |
| 3481 | "RTN","XUE SSO1",287, 0) | |
| 3482 | I (X>9876 54319)&(X< 987654330) Q 0 ;SSN range res erved for advertisin g | |
| 3483 | "RTN","XUE SSO1",288, 0) | |
| 3484 | I ($E(X,1 ,3)>899)&( $E(X,4,5)= 89) Q 0 ; digits 4-5 of ITIN c annot be 8 9 | |
| 3485 | "RTN","XUE SSO1",289, 0) | |
| 3486 | I ($E(X,1 ,3)>899)&( $E(X,4,5)= 93) Q 0 ; digits 4-5 of ITIN c annot be 9 3 | |
| 3487 | "RTN","XUE SSO1",290, 0) | |
| 3488 | Q 1 | |
| 3489 | "RTN","XUE SSO2") | |
| 3490 | 0^12^B1177 14262^B108 993229 | |
| 3491 | "RTN","XUE SSO2",1,0) | |
| 3492 | XUESSO2 ;I SD/HGW Enh anced Sing le Sign-On Utilities ;08/25/15 10:48 | |
| 3493 | "RTN","XUE SSO2",2,0) | |
| 3494 | ;;8.0;KER NEL;**655, 659**;Jul 10, 1995;B uild 22 | |
| 3495 | "RTN","XUE SSO2",3,0) | |
| 3496 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 3497 | "RTN","XUE SSO2",4,0) | |
| 3498 | ; | |
| 3499 | "RTN","XUE SSO2",5,0) | |
| 3500 | ; This ut ility will identify a VistA us er for aud iting and HIPAA requ irements. | |
| 3501 | "RTN","XUE SSO2",6,0) | |
| 3502 | ; NONE of the fie lds listed below can contain a caret (^) character as it is used as a delimiter in VistA! | |
| 3503 | "RTN","XUE SSO2",7,0) | |
| 3504 | ; | |
| 3505 | "RTN","XUE SSO2",8,0) | |
| 3506 | ; $$FINDU SER() - At least one of the fo llowing at tributes i s required to unique ly identif y an exist ing user i n the | |
| 3507 | "RTN","XUE SSO2",9,0) | |
| 3508 | ; NE W PERSON f ile (#200) : | |
| 3509 | "RTN","XUE SSO2",10,0 ) | |
| 3510 | ; | |
| 3511 | "RTN","XUE SSO2",11,0 ) | |
| 3512 | ; XATR( 7) = uniqu e Security ID [SecID , assigned by Identi ty and Acc ess Manage ment] | |
| 3513 | "RTN","XUE SSO2",12,0 ) | |
| 3514 | ; XATR( 8) = uniqu e National Provider Identifier [assigned by Center s for Medi care and M edicaid Se rvices (CM S)] | |
| 3515 | "RTN","XUE SSO2",13,0 ) | |
| 3516 | ; XATR( 9) = uniqu e Social S ecurity (S SN) or Tax payer Iden tification Number (T IN) [assig ned by the Social Se curity Adm inistratio n] | |
| 3517 | "RTN","XUE SSO2",14,0 ) | |
| 3518 | ; XATR( 2) and XAT R(3) = com bination o f a unique Subject O rganizatio n ID (OID) with a Un ique User ID (UID) [ see below] | |
| 3519 | "RTN","XUE SSO2",15,0 ) | |
| 3520 | ; | |
| 3521 | "RTN","XUE SSO2",16,0 ) | |
| 3522 | ; $$ADDUS ER() - If an existin g user is not found in the NEW PERSON fi le (#200), then the following minimum at tributes | |
| 3523 | "RTN","XUE SSO2",17,0 ) | |
| 3524 | ; are required to provisi on a new u ser: | |
| 3525 | "RTN","XUE SSO2",18,0 ) | |
| 3526 | ; | |
| 3527 | "RTN","XUE SSO2",19,0 ) | |
| 3528 | ; XATR( 1) = Subje ct Organiz ation [fre e text, 3- 50 charact ers] | |
| 3529 | "RTN","XUE SSO2",20,0 ) | |
| 3530 | ; XATR( 2) = Subje ct Organiz ation ID [ free text, 1-50 char acters, un ique to Su bject Orga nization] | |
| 3531 | "RTN","XUE SSO2",21,0 ) | |
| 3532 | ; XATR( 3) = Uniqu e User ID [free text , 1-40 cha racters, u nique with in OID] | |
| 3533 | "RTN","XUE SSO2",22,0 ) | |
| 3534 | ; XATR( 4) = Subje ct ID [per son's name , to be en tered into the NAME field (#.0 1) of the NEW PERSON file (#20 0)] | |
| 3535 | "RTN","XUE SSO2",23,0 ) | |
| 3536 | ; | |
| 3537 | "RTN","XUE SSO2",24,0 ) | |
| 3538 | ; The fol lowing att ributes ar e optional for addin g or updat ing a user , but may be require d by a par ticular Vi stA applic ation | |
| 3539 | "RTN","XUE SSO2",25,0 ) | |
| 3540 | ; for further I dentity an d Access M anagement: | |
| 3541 | "RTN","XUE SSO2",26,0 ) | |
| 3542 | ; | |
| 3543 | "RTN","XUE SSO2",27,0 ) | |
| 3544 | ; XATR( 5) = Appli cation ID [Security Phrase to identify a nd authent icate the client app lication a nd establi sh the con text optio n] | |
| 3545 | "RTN","XUE SSO2",28,0 ) | |
| 3546 | ; XATR( 6) = Netwo rk Usernam e [Active Directory Login] | |
| 3547 | "RTN","XUE SSO2",29,0 ) | |
| 3548 | ; XATR( 9) = uniqu e Social S ecurity (S SN) or Tax payer Iden tification Number (T IN) [assig ned by the Social Se curity Adm inistratio n] | |
| 3549 | "RTN","XUE SSO2",30,0 ) | |
| 3550 | ; XATR( 10)= AD UP N [Active Directory User Princ iple Name (UPN)] | |
| 3551 | "RTN","XUE SSO2",31,0 ) | |
| 3552 | ; XATR( 11)= E-Mai l Address | |
| 3553 | "RTN","XUE SSO2",32,0 ) | |
| 3554 | Q | |
| 3555 | "RTN","XUE SSO2",33,0 ) | |
| 3556 | ; | |
| 3557 | "RTN","XUE SSO2",34,0 ) | |
| 3558 | FINDUSER(X ATR) ;Func tion. Find user usin g minimum attributes for user identifica tion | |
| 3559 | "RTN","XUE SSO2",35,0 ) | |
| 3560 | ; Input: XATR = Array con taining us er attribu tes (see a bove). | |
| 3561 | "RTN","XUE SSO2",36,0 ) | |
| 3562 | ; Return: Fail = "-1^Error Message" | |
| 3563 | "RTN","XUE SSO2",37,0 ) | |
| 3564 | ; Success = IEN of NE W PERSON f ile (#200) entry (No te: this r outine wil l NOT set DUZ to the identifie d IEN) | |
| 3565 | "RTN","XUE SSO2",38,0 ) | |
| 3566 | ; | |
| 3567 | "RTN","XUE SSO2",39,0 ) | |
| 3568 | N TODAY,D T,IEN,DIC, XUNAME,ERR MSG | |
| 3569 | "RTN","XUE SSO2",40,0 ) | |
| 3570 | S U="^",T ODAY=$$HTF M^XLFDT($H ),DT=$P(TO DAY,"."),E RRMSG="" | |
| 3571 | "RTN","XUE SSO2",41,0 ) | |
| 3572 | ; Check f or unique identifier (SecID, N PI, SSN, o r OID+UID) | |
| 3573 | "RTN","XUE SSO2",42,0 ) | |
| 3574 | I ($G(XAT R(7))="")& ($G(XATR(8 ))="")&($G (XATR(9))= "")&(($G(X ATR(2))="" )&($G(XATR (3))="")) Q "-1^Arra y does not contain a unique id entifier" | |
| 3575 | "RTN","XUE SSO2",43,0 ) | |
| 3576 | ; Format user attri butes to m atch FileM an fields | |
| 3577 | "RTN","XUE SSO2",44,0 ) | |
| 3578 | S XATR(1) =$$TITLE^X LFSTR($E($ G(XATR(1)) ,1,50)) ; Subject Or ganization | |
| 3579 | "RTN","XUE SSO2",45,0 ) | |
| 3580 | S XATR(2) =$$LOW^XLF STR($E($G( XATR(2)),1 ,50)) ; Subject Or ganization ID | |
| 3581 | "RTN","XUE SSO2",46,0 ) | |
| 3582 | S XATR(3) =$TR($$LOW ^XLFSTR($E ($G(XATR(3 )),1,40)), "^","%") ; Unique Use r ID | |
| 3583 | "RTN","XUE SSO2",47,0 ) | |
| 3584 | I $G(XATR (4))'="" D Q:ERRMSG '="" ERRMS G | |
| 3585 | "RTN","XUE SSO2",48,0 ) | |
| 3586 | . S XUNAM E=XATR(4) S XATR(4)= $$FORMAT^X LFNAME7(.X UNAME,3,35 ,,0,,,2) ; Subject ID converted to standa rd format | |
| 3587 | "RTN","XUE SSO2",49,0 ) | |
| 3588 | . I $G(XA TR(4))'?1U .E1","1U.E S ERRMSG= "-1^Subjec t ID could not be co nverted to 'LAST,FIR ST MIDDLE SUFFIX' Vi stA standa rd format" | |
| 3589 | "RTN","XUE SSO2",50,0 ) | |
| 3590 | S XATR(6) =$$UP^XLFS TR($E($G(X ATR(6)),1, 50)) ; AD Network Username | |
| 3591 | "RTN","XUE SSO2",51,0 ) | |
| 3592 | S XATR(7) =$TR($E($G (XATR(7)), 1,40),"^", "%") ; SecID | |
| 3593 | "RTN","XUE SSO2",52,0 ) | |
| 3594 | Q $$TALL( .XATR) | |
| 3595 | "RTN","XUE SSO2",53,0 ) | |
| 3596 | ; | |
| 3597 | "RTN","XUE SSO2",54,0 ) | |
| 3598 | TALL(XATR) ;Function . Find an existing u ser. | |
| 3599 | "RTN","XUE SSO2",55,0 ) | |
| 3600 | N OID,UID ,SECID,NPI ,SSN,NEWDU Z,ERRMSG,A OIUID,X,Y, Z | |
| 3601 | "RTN","XUE SSO2",56,0 ) | |
| 3602 | S X=$ST($ ST-1,"PLAC E"),Y=$P(X ,"+"),Z=$P (X,"^",2), X=Y_"^"_$P (Z," ") | |
| 3603 | "RTN","XUE SSO2",57,0 ) | |
| 3604 | I X'="FIN DUSER^XUES SO2" Q "-1 ^Not autho rized" | |
| 3605 | "RTN","XUE SSO2",58,0 ) | |
| 3606 | I $G(DUZ( "LOA"))<2 Q "-1^Not authorized " | |
| 3607 | "RTN","XUE SSO2",59,0 ) | |
| 3608 | S OID=$G( XATR(2)) | |
| 3609 | "RTN","XUE SSO2",60,0 ) | |
| 3610 | S UID=$G( XATR(3)) | |
| 3611 | "RTN","XUE SSO2",61,0 ) | |
| 3612 | S SECID=$ G(XATR(7)) | |
| 3613 | "RTN","XUE SSO2",62,0 ) | |
| 3614 | S NPI=$G( XATR(8)) | |
| 3615 | "RTN","XUE SSO2",63,0 ) | |
| 3616 | S SSN=$G( XATR(9)) | |
| 3617 | "RTN","XUE SSO2",64,0 ) | |
| 3618 | S ERRMSG= "",NEWDUZ= 0,Y=0 | |
| 3619 | "RTN","XUE SSO2",65,0 ) | |
| 3620 | ;See if m atch SECID , to be as signed by Identifica tion and A ccess Mana gement (IA M) service s. | |
| 3621 | "RTN","XUE SSO2",66,0 ) | |
| 3622 | I $L(SECI D)>0 D Q: ERRMSG'="" ERRMSG | |
| 3623 | "RTN","XUE SSO2",67,0 ) | |
| 3624 | . S Y=$$S ECMATCH(SE CID) Q:Y<1 | |
| 3625 | "RTN","XUE SSO2",68,0 ) | |
| 3626 | . I NPI'= "" D Q:ER RMSG'="" | |
| 3627 | "RTN","XUE SSO2",69,0 ) | |
| 3628 | . . I NPI '=$P($G(^V A(200,Y,"N PI")),U) S ERRMSG="- 1^NPI mism atch for u ser ID'd b y SecID" Q | |
| 3629 | "RTN","XUE SSO2",70,0 ) | |
| 3630 | . I SSN'= "" D Q:ER RMSG'="" | |
| 3631 | "RTN","XUE SSO2",71,0 ) | |
| 3632 | . . I SSN '=$P($G(^V A(200,Y,1) ),U,9) S E RRMSG="-1^ SSN mismat ch for use r ID'd by SecID" Q | |
| 3633 | "RTN","XUE SSO2",72,0 ) | |
| 3634 | . S NEWDU Z=Y | |
| 3635 | "RTN","XUE SSO2",73,0 ) | |
| 3636 | . S ERRMS G=$$UPDU(. XATR,NEWDU Z) ; Updat e fields i f changes are needed | |
| 3637 | "RTN","XUE SSO2",74,0 ) | |
| 3638 | . Q | |
| 3639 | "RTN","XUE SSO2",75,0 ) | |
| 3640 | I NEWDUZ> 0 Q NEWDUZ ;Quit her e if we fo und a matc h on SECID | |
| 3641 | "RTN","XUE SSO2",76,0 ) | |
| 3642 | ;See if m atch NPI | |
| 3643 | "RTN","XUE SSO2",77,0 ) | |
| 3644 | I $L(NPI) >0 D Q:ER RMSG'="" E RRMSG | |
| 3645 | "RTN","XUE SSO2",78,0 ) | |
| 3646 | . S Y=+$O (^VA(200," ANPI",NPI, 0)) Q:Y<1 | |
| 3647 | "RTN","XUE SSO2",79,0 ) | |
| 3648 | . I SECID '="" D Q: ERRMSG'="" | |
| 3649 | "RTN","XUE SSO2",80,0 ) | |
| 3650 | . . I $$S ECMATCH(SE CID)<1 S E RRMSG="-1^ SecID mism atch for u ser ID'd b y NPI" Q | |
| 3651 | "RTN","XUE SSO2",81,0 ) | |
| 3652 | . I SSN'= "" D Q:ER RMSG'="" | |
| 3653 | "RTN","XUE SSO2",82,0 ) | |
| 3654 | . . I SSN '=$P($G(^V A(200,Y,1) ),U,9) S E RRMSG="-1^ SSN mismat ch for use r ID'd by NPI" Q | |
| 3655 | "RTN","XUE SSO2",83,0 ) | |
| 3656 | . S NEWDU Z=Y | |
| 3657 | "RTN","XUE SSO2",84,0 ) | |
| 3658 | . S ERRMS G=$$UPDU(. XATR,NEWDU Z) ; Updat e fields i f changes are needed | |
| 3659 | "RTN","XUE SSO2",85,0 ) | |
| 3660 | . Q | |
| 3661 | "RTN","XUE SSO2",86,0 ) | |
| 3662 | I NEWDUZ> 0 Q NEWDUZ ;Quit her e if we fo und a matc h on NPI | |
| 3663 | "RTN","XUE SSO2",87,0 ) | |
| 3664 | ;See if m atch SSN | |
| 3665 | "RTN","XUE SSO2",88,0 ) | |
| 3666 | I $L(SSN) >0 D Q:ER RMSG'="" E RRMSG | |
| 3667 | "RTN","XUE SSO2",89,0 ) | |
| 3668 | . S Y=+$O (^VA(200," SSN",SSN,0 )) Q:Y<1 | |
| 3669 | "RTN","XUE SSO2",90,0 ) | |
| 3670 | . I SECID '="" D Q: ERRMSG'="" | |
| 3671 | "RTN","XUE SSO2",91,0 ) | |
| 3672 | . . I $$S ECMATCH(SE CID)<1 S E RRMSG="-1^ SecID mism atch for u ser ID'd b y SSN" Q | |
| 3673 | "RTN","XUE SSO2",92,0 ) | |
| 3674 | . I NPI'= "" D Q:ER RMSG'="" | |
| 3675 | "RTN","XUE SSO2",93,0 ) | |
| 3676 | . . I NPI '=$P($G(^V A(200,Y,"N PI")),U) S ERRMSG="- 1^NPI mism atch for u ser ID'd b y SSN" Q | |
| 3677 | "RTN","XUE SSO2",94,0 ) | |
| 3678 | . S NEWDU Z=Y | |
| 3679 | "RTN","XUE SSO2",95,0 ) | |
| 3680 | . S ERRMS G=$$UPDU(. XATR,NEWDU Z) ; Updat e fields i f changes are needed | |
| 3681 | "RTN","XUE SSO2",96,0 ) | |
| 3682 | . Q | |
| 3683 | "RTN","XUE SSO2",97,0 ) | |
| 3684 | I NEWDUZ> 0 Q NEWDUZ ;Quit her e if we fo und a matc h on SSN | |
| 3685 | "RTN","XUE SSO2",98,0 ) | |
| 3686 | ;See if m atch OID+U ID ("AOIUI D" cross-r eference). | |
| 3687 | "RTN","XUE SSO2",99,0 ) | |
| 3688 | S Y=$$AOI UID(OID,UI D) I Y>0 D Q:ERRMSG '="" ERRMS G | |
| 3689 | "RTN","XUE SSO2",100, 0) | |
| 3690 | . I SECID '="" D Q: ERRMSG'="" | |
| 3691 | "RTN","XUE SSO2",101, 0) | |
| 3692 | . . I $$S ECMATCH(SE CID)<1 S E RRMSG="-1^ SecID mism atch for u ser ID'd b y OID+UID" Q | |
| 3693 | "RTN","XUE SSO2",102, 0) | |
| 3694 | . I NPI'= "" D Q:ER RMSG'="" | |
| 3695 | "RTN","XUE SSO2",103, 0) | |
| 3696 | . . I NPI '=$P($G(^V A(200,Y,"N PI")),U) S ERRMSG="- 1^NPI mism atch for u ser ID'd b y OID+UID" Q | |
| 3697 | "RTN","XUE SSO2",104, 0) | |
| 3698 | . I SSN'= "" D Q:ER RMSG'="" | |
| 3699 | "RTN","XUE SSO2",105, 0) | |
| 3700 | . . I SSN '=$P($G(^V A(200,Y,1) ),U,9) S E RRMSG="-1^ SSN mismat ch for use r ID'd by OID+UID" Q | |
| 3701 | "RTN","XUE SSO2",106, 0) | |
| 3702 | . S NEWDU Z=Y | |
| 3703 | "RTN","XUE SSO2",107, 0) | |
| 3704 | . S ERRMS G=$$UPDU(. XATR,NEWDU Z) ; Updat e fields i f changes are needed | |
| 3705 | "RTN","XUE SSO2",108, 0) | |
| 3706 | . Q | |
| 3707 | "RTN","XUE SSO2",109, 0) | |
| 3708 | I NEWDUZ> 0 Q NEWDUZ ;Quit her e if we fo und a matc h on OID+U ID | |
| 3709 | "RTN","XUE SSO2",110, 0) | |
| 3710 | Q "-1^Use r not foun d" | |
| 3711 | "RTN","XUE SSO2",111, 0) | |
| 3712 | ; | |
| 3713 | "RTN","XUE SSO2",112, 0) | |
| 3714 | ADDUSER(XA TR) ;Funct ion. Add u ser using minimum at tributes f or user id entificati on | |
| 3715 | "RTN","XUE SSO2",113, 0) | |
| 3716 | ; Input: XATR = Array con taining us er attribu tes (see a bove). | |
| 3717 | "RTN","XUE SSO2",114, 0) | |
| 3718 | ; Return: Fail = "-1^Error Message" | |
| 3719 | "RTN","XUE SSO2",115, 0) | |
| 3720 | ; Success = IEN of NE W PERSON f ile (#200) entry (No te: this r outine wil l NOT set DUZ to the identifie d IEN) | |
| 3721 | "RTN","XUE SSO2",116, 0) | |
| 3722 | ; | |
| 3723 | "RTN","XUE SSO2",117, 0) | |
| 3724 | N SID,NEW DUZ,ERRMSG | |
| 3725 | "RTN","XUE SSO2",118, 0) | |
| 3726 | I '$$AUTH () Q "-1^N ot an auth orized cal ling routi ne" | |
| 3727 | "RTN","XUE SSO2",119, 0) | |
| 3728 | I $G(DUZ( "LOA"))<2 Q "-1^Not authorized " | |
| 3729 | "RTN","XUE SSO2",120, 0) | |
| 3730 | S ERRMSG= "" | |
| 3731 | "RTN","XUE SSO2",121, 0) | |
| 3732 | ;Minimum 4 Attribut es are req uired to a dd a new u ser | |
| 3733 | "RTN","XUE SSO2",122, 0) | |
| 3734 | I $G(XATR (1))="" Q "-1^Subjec t Organiza tion is re quired to add a new user" | |
| 3735 | "RTN","XUE SSO2",123, 0) | |
| 3736 | I $G(XATR (2))="" Q "-1^Subjec t Organiza tion ID is required to add a n ew user" | |
| 3737 | "RTN","XUE SSO2",124, 0) | |
| 3738 | I $G(XATR (3))="" Q "-1^Unique User ID i s required to add a new user" | |
| 3739 | "RTN","XUE SSO2",125, 0) | |
| 3740 | I $G(XATR (4))="" Q "-1^Subjec t ID is re quired to add a new user" | |
| 3741 | "RTN","XUE SSO2",126, 0) | |
| 3742 | ; Format user attri butes to m atch FileM an fields | |
| 3743 | "RTN","XUE SSO2",127, 0) | |
| 3744 | S XATR(1) =$$TITLE^X LFSTR($E($ G(XATR(1)) ,1,50)) ; Subject Or ganization | |
| 3745 | "RTN","XUE SSO2",128, 0) | |
| 3746 | S XATR(2) =$$LOW^XLF STR($E($G( XATR(2)),1 ,50)) ; Subject Or ganization ID | |
| 3747 | "RTN","XUE SSO2",129, 0) | |
| 3748 | S XATR(3) =$TR($$LOW ^XLFSTR($E ($G(XATR(3 )),1,40)), "^","%") ; Unique Use r ID | |
| 3749 | "RTN","XUE SSO2",130, 0) | |
| 3750 | I $G(XATR (4))'="" D Q:ERRMSG '="" ERRMS G | |
| 3751 | "RTN","XUE SSO2",131, 0) | |
| 3752 | . S SID=X ATR(4) S X ATR(4)=$$F ORMAT^XLFN AME7(.SID, 3,35,,0,,, 2) ; Subje ct ID conv erted to s tandard fo rmat | |
| 3753 | "RTN","XUE SSO2",132, 0) | |
| 3754 | . I $G(XA TR(4))'?1U .E1","1U.E S ERRMSG= "-1^Subjec t ID could not be co nverted to 'LAST,FIR ST MIDDLE SUFFIX' Vi stA standa rd format" | |
| 3755 | "RTN","XUE SSO2",133, 0) | |
| 3756 | S XATR(6) =$$UP^XLFS TR($E($G(X ATR(6)),1, 15)) ; AD Network Username | |
| 3757 | "RTN","XUE SSO2",134, 0) | |
| 3758 | S XATR(7) =$TR($E($G (XATR(7)), 1,40),"^", "%") ; SecID | |
| 3759 | "RTN","XUE SSO2",135, 0) | |
| 3760 | S NEWDUZ= $$ADDU(XAT R(4)) ;Put the name in the .01 field fir st | |
| 3761 | "RTN","XUE SSO2",136, 0) | |
| 3762 | I +NEWDUZ <1 Q "-1^C reate of n ew user re cord faile d" | |
| 3763 | "RTN","XUE SSO2",137, 0) | |
| 3764 | S ERRMSG= $$UPDU(.XA TR,NEWDUZ) ;Then upd ate the re maining fi elds | |
| 3765 | "RTN","XUE SSO2",138, 0) | |
| 3766 | I +ERRMSG <0 D CLEAN (NEWDUZ) Q ERRMSG ;D elete the added user if update fails (in complete r ecord) | |
| 3767 | "RTN","XUE SSO2",139, 0) | |
| 3768 | I +NEWDUZ <1 Q "-1^C reate or u pdate of u ser record failed" | |
| 3769 | "RTN","XUE SSO2",140, 0) | |
| 3770 | Q NEWDUZ ;Every th ing OK | |
| 3771 | "RTN","XUE SSO2",141, 0) | |
| 3772 | ; | |
| 3773 | "RTN","XUE SSO2",142, 0) | |
| 3774 | SECMATCH(S ECID) ;Fun ction. Fin d match fo r SECID. | |
| 3775 | "RTN","XUE SSO2",143, 0) | |
| 3776 | N W,Y,Z | |
| 3777 | "RTN","XUE SSO2",144, 0) | |
| 3778 | I $G(SECI D)="" Q "" | |
| 3779 | "RTN","XUE SSO2",145, 0) | |
| 3780 | S W=$E(SE CID,1,30), Y=0,Z=0 | |
| 3781 | "RTN","XUE SSO2",146, 0) | |
| 3782 | F D Q:Y ="" | |
| 3783 | "RTN","XUE SSO2",147, 0) | |
| 3784 | . S Y=$O( ^VA(200,"A SECID",$G( SECID),Y)) | |
| 3785 | "RTN","XUE SSO2",148, 0) | |
| 3786 | . I Y>0 D Q | |
| 3787 | "RTN","XUE SSO2",149, 0) | |
| 3788 | . . I SEC ID=$P($G(^ VA(200,Y,2 05)),U,1) S Z=Y,Y="" | |
| 3789 | "RTN","XUE SSO2",150, 0) | |
| 3790 | Q Z | |
| 3791 | "RTN","XUE SSO2",151, 0) | |
| 3792 | ; | |
| 3793 | "RTN","XUE SSO2",152, 0) | |
| 3794 | UPNMATCH(A DUPN) ;Fun ction. Fin d match fo r ADUPN. | |
| 3795 | "RTN","XUE SSO2",153, 0) | |
| 3796 | N W,Y,Z | |
| 3797 | "RTN","XUE SSO2",154, 0) | |
| 3798 | I $G(ADUP N)="" Q "" | |
| 3799 | "RTN","XUE SSO2",155, 0) | |
| 3800 | S W=$E(AD UPN,1,30), Y=0,Z=0 | |
| 3801 | "RTN","XUE SSO2",156, 0) | |
| 3802 | F D Q:Y ="" | |
| 3803 | "RTN","XUE SSO2",157, 0) | |
| 3804 | . S Y=$O( ^VA(200,"A DUPN",$G(A DUPN),Y)) | |
| 3805 | "RTN","XUE SSO2",158, 0) | |
| 3806 | . I Y>0 D Q | |
| 3807 | "RTN","XUE SSO2",159, 0) | |
| 3808 | . . I ADU PN=$P($G(^ VA(200,Y,2 05)),U,5) S Z=Y,Y="" | |
| 3809 | "RTN","XUE SSO2",160, 0) | |
| 3810 | Q Z | |
| 3811 | "RTN","XUE SSO2",161, 0) | |
| 3812 | ; | |
| 3813 | "RTN","XUE SSO2",162, 0) | |
| 3814 | AOIUID(OID ,UID) ;Fun ction. Fin d match fo r OID+UID cross-refe rence. | |
| 3815 | "RTN","XUE SSO2",163, 0) | |
| 3816 | N W,X,Y,Z | |
| 3817 | "RTN","XUE SSO2",164, 0) | |
| 3818 | I ($G(OID )="")!($G( UID)="") Q "" | |
| 3819 | "RTN","XUE SSO2",165, 0) | |
| 3820 | S W=$E(OI D,1,30),X= $E(UID,1,3 0),Y=0,Z=0 | |
| 3821 | "RTN","XUE SSO2",166, 0) | |
| 3822 | F D Q:Y ="" | |
| 3823 | "RTN","XUE SSO2",167, 0) | |
| 3824 | . S Y=$O( ^VA(200,"A OIUID",W,X ,Y)) | |
| 3825 | "RTN","XUE SSO2",168, 0) | |
| 3826 | . I Y>0 D Q | |
| 3827 | "RTN","XUE SSO2",169, 0) | |
| 3828 | . . I (OI D=$P($G(^V A(200,Y,20 5)),U,3))& (UID=$P($G (^VA(200,Y ,205)),U,4 )) S Z=Y,Y ="" | |
| 3829 | "RTN","XUE SSO2",170, 0) | |
| 3830 | Q Z | |
| 3831 | "RTN","XUE SSO2",171, 0) | |
| 3832 | ; | |
| 3833 | "RTN","XUE SSO2",172, 0) | |
| 3834 | ADDU(XUNAM E) ;Functi on. Add a new name t o the NPF | |
| 3835 | "RTN","XUE SSO2",173, 0) | |
| 3836 | N DD,DO,D IC,DA,X,Y, DUZZERO | |
| 3837 | "RTN","XUE SSO2",174, 0) | |
| 3838 | K ^TMP("D IERR",$J) | |
| 3839 | "RTN","XUE SSO2",175, 0) | |
| 3840 | S DIC="^V A(200,",DI C(0)="F",X =XUNAME | |
| 3841 | "RTN","XUE SSO2",176, 0) | |
| 3842 | ; Get a L OCK. Block if can't get. | |
| 3843 | "RTN","XUE SSO2",177, 0) | |
| 3844 | L +^VA(20 0,"HL7"):1 0 Q:'$T "- 1^Addition of new us ers is blo cked" | |
| 3845 | "RTN","XUE SSO2",178, 0) | |
| 3846 | S DUZZERO =DUZ(0),DU Z(0)="@" ; Make sure we can add the entry | |
| 3847 | "RTN","XUE SSO2",179, 0) | |
| 3848 | D FILE^DI CN | |
| 3849 | "RTN","XUE SSO2",180, 0) | |
| 3850 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 3851 | "RTN","XUE SSO2",181, 0) | |
| 3852 | L -^VA(20 0,"HL7") | |
| 3853 | "RTN","XUE SSO2",182, 0) | |
| 3854 | Q +Y | |
| 3855 | "RTN","XUE SSO2",183, 0) | |
| 3856 | ; | |
| 3857 | "RTN","XUE SSO2",184, 0) | |
| 3858 | UPDU(XATR, NEWDUZ) ;F unction. U pdate user in the NP F | |
| 3859 | "RTN","XUE SSO2",185, 0) | |
| 3860 | N DUZZERO ,DIC,ERRMS G,FDR,IEN, XUCODE,XUE NTRY | |
| 3861 | "RTN","XUE SSO2",186, 0) | |
| 3862 | K ^TMP("D IERR",$J) | |
| 3863 | "RTN","XUE SSO2",187, 0) | |
| 3864 | S DIC(0)= "",ERRMSG= "" | |
| 3865 | "RTN","XUE SSO2",188, 0) | |
| 3866 | S IEN=NEW DUZ_"," | |
| 3867 | "RTN","XUE SSO2",189, 0) | |
| 3868 | I ($G(XAT R(1))'="") &($P($G(^V A(200,NEWD UZ,205)),U ,2)="") S FDR(200,IE N,205.2)=$ $TITLE^XLF STR($E($G( XATR(1)),1 ,50)) ;Ad d SORG if missing | |
| 3869 | "RTN","XUE SSO2",190, 0) | |
| 3870 | I ($G(XAT R(2))'="") &($P($G(^V A(200,NEWD UZ,205)),U ,3)="") S FDR(200,IE N,205.3)=$ $LOW^XLFST R($E($G(XA TR(2)),1,5 0)) ;Ad d OID if m issing | |
| 3871 | "RTN","XUE SSO2",191, 0) | |
| 3872 | I ($G(XAT R(3))'="") &($P($G(^V A(200,NEWD UZ,205)),U ,4)="") S FDR(200,IE N,205.4)=$ TR($$LOW^X LFSTR($E($ G(XATR(3)) ,1,40)),"^ ","%") ;Ad d UID if m issing | |
| 3873 | "RTN","XUE SSO2",192, 0) | |
| 3874 | I ($G(XAT R(6))'="") &($P($G(^V A(200,NEWD UZ,501)),U ,1)="") S FDR(200,IE N,501.1)=$ $UP^XLFSTR ($E($G(XAT R(6)),1,15 )) ;Ad d NETWORK USERNAME i f missing | |
| 3875 | "RTN","XUE SSO2",193, 0) | |
| 3876 | I ($G(XAT R(7))'="") &($P($G(^V A(200,NEWD UZ,205)),U ,1)="") S FDR(200,IE N,205.1)=$ TR($E($G(X ATR(7)),1, 40),"^","% ") ;Ad d SecID if missing | |
| 3877 | "RTN","XUE SSO2",194, 0) | |
| 3878 | I ($G(XAT R(8))'="") &($P($G(^V A(200,NEWD UZ,"NPI")) ,U,1)="") S FDR(200, IEN,41.99) =$G(XATR(8 )) ;Ad d NPI if m issing | |
| 3879 | "RTN","XUE SSO2",195, 0) | |
| 3880 | I ($G(XAT R(9))'="") &($P($G(^V A(200,NEWD UZ,1)),U,9 )="") D Q :ERRMSG'=" " ERRMSG ;Ad d SSN if m issing | |
| 3881 | "RTN","XUE SSO2",196, 0) | |
| 3882 | . S ERRMS G=$$ADDS(. FDR,NEWDUZ ,$G(XATR(9 ))) | |
| 3883 | "RTN","XUE SSO2",197, 0) | |
| 3884 | . I ERRMS G'="" Q | |
| 3885 | "RTN","XUE SSO2",198, 0) | |
| 3886 | I ($G(XAT R(10))'="" )&($P($G(^ VA(200,NEW DUZ,205)), U,5)="") S FDR(200,I EN,205.5)= $$LOW^XLFS TR($G(XATR (10))) ;Ad d ADUPN if missing | |
| 3887 | "RTN","XUE SSO2",199, 0) | |
| 3888 | I ($G(XAT R(11))'="" )&($P($G(^ VA(200,NEW DUZ,.15)), U,1)="") S FDR(200,I EN,.151)=$ $LOW^XLFST R($G(XATR( 11))) ;Ad d e-mail i f missing | |
| 3889 | "RTN","XUE SSO2",200, 0) | |
| 3890 | I $G(XATR (5))'="" D Q:ERRMSG '="" ERRMS G ;Assign Context O ption | |
| 3891 | "RTN","XUE SSO2",201, 0) | |
| 3892 | . S ERRMS G=$$SETCNT XT(NEWDUZ, $G(XATR(5) )) | |
| 3893 | "RTN","XUE SSO2",202, 0) | |
| 3894 | . I ERRMS G'="" Q | |
| 3895 | "RTN","XUE SSO2",203, 0) | |
| 3896 | ; Apply a ll the cha nges | |
| 3897 | "RTN","XUE SSO2",204, 0) | |
| 3898 | S DUZZERO =DUZ(0),DU Z(0)="@" ; Make sure we can upd ate the en try | |
| 3899 | "RTN","XUE SSO2",205, 0) | |
| 3900 | I $D(FDR) K IEN D U PDATE^DIE( "E","FDR", "IEN") ;Fi le all the data | |
| 3901 | "RTN","XUE SSO2",206, 0) | |
| 3902 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 3903 | "RTN","XUE SSO2",207, 0) | |
| 3904 | I $D(^TMP ("DIERR",$ J)) Q "-1^ FileMan er ror" ;Fil eMan Error | |
| 3905 | "RTN","XUE SSO2",208, 0) | |
| 3906 | I +ERRMSG <1 Q ERRMS G ;Couldn' t update u ser | |
| 3907 | "RTN","XUE SSO2",209, 0) | |
| 3908 | I +NEWDUZ <1 Q "-1^U pdate of u ser record failed" | |
| 3909 | "RTN","XUE SSO2",210, 0) | |
| 3910 | Q "" | |
| 3911 | "RTN","XUE SSO2",211, 0) | |
| 3912 | ; | |
| 3913 | "RTN","XUE SSO2",212, 0) | |
| 3914 | ADDS(FDR,N EWDUZ,SSN) ;Function . Add a SS N to the N PF | |
| 3915 | "RTN","XUE SSO2",213, 0) | |
| 3916 | N IEN,ERR MSG | |
| 3917 | "RTN","XUE SSO2",214, 0) | |
| 3918 | S IEN=NEW DUZ_",",ER RMSG="" | |
| 3919 | "RTN","XUE SSO2",215, 0) | |
| 3920 | I '$$SSNC HECK^XUESS O1(SSN) Q "-1^SSN is not valid per SSA c riteria" | |
| 3921 | "RTN","XUE SSO2",216, 0) | |
| 3922 | S FDR(200 ,IEN,9)=SS N | |
| 3923 | "RTN","XUE SSO2",217, 0) | |
| 3924 | Q ERRMSG | |
| 3925 | "RTN","XUE SSO2",218, 0) | |
| 3926 | ; | |
| 3927 | "RTN","XUE SSO2",219, 0) | |
| 3928 | CLEAN(Y) ; Subroutine . Clean up (delete) incomplete record in NPF | |
| 3929 | "RTN","XUE SSO2",220, 0) | |
| 3930 | ; ZEXCEPT : DA,DIK | |
| 3931 | "RTN","XUE SSO2",221, 0) | |
| 3932 | N DUZZERO | |
| 3933 | "RTN","XUE SSO2",222, 0) | |
| 3934 | S DUZZERO =DUZ(0),DU Z(0)="@" ; Make sure we can upd ate the en try | |
| 3935 | "RTN","XUE SSO2",223, 0) | |
| 3936 | I +Y>0 D | |
| 3937 | "RTN","XUE SSO2",224, 0) | |
| 3938 | . K DA,DI K S DIK="^ VA(200,",D A=+Y D ^DI K | |
| 3939 | "RTN","XUE SSO2",225, 0) | |
| 3940 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 3941 | "RTN","XUE SSO2",226, 0) | |
| 3942 | Q | |
| 3943 | "RTN","XUE SSO2",227, 0) | |
| 3944 | ; | |
| 3945 | "RTN","XUE SSO2",228, 0) | |
| 3946 | SETCNTXT(N EWDUZ,XAPH RASE) ;Fun ction. Ass ign Contex t Option t o user Sec ondary Men u Options | |
| 3947 | "RTN","XUE SSO2",229, 0) | |
| 3948 | N OPT,XUE NTRY,XOPT, XUCONTXT,X | |
| 3949 | "RTN","XUE SSO2",230, 0) | |
| 3950 | S XUENTRY =$$GETCNTX T(XAPHRASE ) I +XUENT RY<0 Q XUE NTRY | |
| 3951 | "RTN","XUE SSO2",231, 0) | |
| 3952 | S XOPT=$P ($G(^XWB(8 994.5,XUEN TRY,0)),U, 2) | |
| 3953 | "RTN","XUE SSO2",232, 0) | |
| 3954 | I XOPT'>0 Q "-1^Con text Optio n must be identified in the RE MOTE APPLI CATION fil e" | |
| 3955 | "RTN","XUE SSO2",233, 0) | |
| 3956 | S XUCONTX T="`"_XOPT | |
| 3957 | "RTN","XUE SSO2",234, 0) | |
| 3958 | I $$FIND1 ^DIC(19,"" ,"X",XUCON TXT)'>0 Q "-1^Contex t Option n ot in OPTI ON file" | |
| 3959 | "RTN","XUE SSO2",235, 0) | |
| 3960 | ;Have to use $D bec ause of sc reen in 20 0.03 keeps FIND1^DIC from work ing. | |
| 3961 | "RTN","XUE SSO2",236, 0) | |
| 3962 | I '$D(^VA (200,NEWDU Z,203,"B", XOPT)) D | |
| 3963 | "RTN","XUE SSO2",237, 0) | |
| 3964 | . ; Have to give th e user a d elegated o ption | |
| 3965 | "RTN","XUE SSO2",238, 0) | |
| 3966 | . N XARR S XARR(200 .19,"+1,"_ NEWDUZ_"," ,.01)=XUCO NTXT | |
| 3967 | "RTN","XUE SSO2",239, 0) | |
| 3968 | . D UPDAT E^DIE("E", "XARR") | |
| 3969 | "RTN","XUE SSO2",240, 0) | |
| 3970 | . ; And n ow user ca n give sel f the cont ext option | |
| 3971 | "RTN","XUE SSO2",241, 0) | |
| 3972 | . K XARR S XARR(200 .03,"+1,"_ NEWDUZ_"," ,.01)=XUCO NTXT | |
| 3973 | "RTN","XUE SSO2",242, 0) | |
| 3974 | . D UPDAT E^DIE("E", "XARR") ; Give conte xt option as a secon dary menu item | |
| 3975 | "RTN","XUE SSO2",243, 0) | |
| 3976 | . ; But n ow we have to remove the deleg ated optio n | |
| 3977 | "RTN","XUE SSO2",244, 0) | |
| 3978 | . S OPT=$ $FIND1^DIC (200.19,", "_NEWDUZ_" ,","X",XUC ONTXT) | |
| 3979 | "RTN","XUE SSO2",245, 0) | |
| 3980 | . I OPT>0 D | |
| 3981 | "RTN","XUE SSO2",246, 0) | |
| 3982 | . . K XAR R S XARR(2 00.19,(OPT _","_NEWDU Z_","),.01 )="@" | |
| 3983 | "RTN","XUE SSO2",247, 0) | |
| 3984 | . . D FIL E^DIE("E", "XARR") | |
| 3985 | "RTN","XUE SSO2",248, 0) | |
| 3986 | . . Q | |
| 3987 | "RTN","XUE SSO2",249, 0) | |
| 3988 | . Q | |
| 3989 | "RTN","XUE SSO2",250, 0) | |
| 3990 | Q "" | |
| 3991 | "RTN","XUE SSO2",251, 0) | |
| 3992 | ; | |
| 3993 | "RTN","XUE SSO2",252, 0) | |
| 3994 | GETCNTXT(X APHRASE) ; Function. Identify t he REMOTE APPLICATIO N | |
| 3995 | "RTN","XUE SSO2",253, 0) | |
| 3996 | N XUCODE, XUENTRY | |
| 3997 | "RTN","XUE SSO2",254, 0) | |
| 3998 | ;Identify Remote Ap plication with SHA25 6 hash | |
| 3999 | "RTN","XUE SSO2",255, 0) | |
| 4000 | S XUCODE= $$SHAHASH^ XUSHSH(256 ,$G(XAPHRA SE),"B") ; IA #6189 | |
| 4001 | "RTN","XUE SSO2",256, 0) | |
| 4002 | S XUENTRY =$$FIND1^D IC(8994.5, "","X",XUC ODE,"ACODE ") | |
| 4003 | "RTN","XUE SSO2",257, 0) | |
| 4004 | ;If not f ound, chec k with old hash and replace wi th SHA256 hash if fo und | |
| 4005 | "RTN","XUE SSO2",258, 0) | |
| 4006 | I XUENTRY '>0 D | |
| 4007 | "RTN","XUE SSO2",259, 0) | |
| 4008 | . S XUCOD E=$$EN^XUS HSH($G(XAP HRASE)) ; IA #10045 | |
| 4009 | "RTN","XUE SSO2",260, 0) | |
| 4010 | . S XUENT RY=$$FIND1 ^DIC(8994. 5,"","X",X UCODE,"ACO DE") | |
| 4011 | "RTN","XUE SSO2",261, 0) | |
| 4012 | . I XUENT RY>0 D | |
| 4013 | "RTN","XUE SSO2",262, 0) | |
| 4014 | . . S XUC ODE=$$SHAH ASH^XUSHSH (256,$G(XA PHRASE),"B ") ; IA #6 189 | |
| 4015 | "RTN","XUE SSO2",263, 0) | |
| 4016 | . . N FDR | |
| 4017 | "RTN","XUE SSO2",264, 0) | |
| 4018 | . . S FDR (8994.5,XU ENTRY_",", .03)=XUCOD E | |
| 4019 | "RTN","XUE SSO2",265, 0) | |
| 4020 | . . D FIL E^DIE("E", "FDR") | |
| 4021 | "RTN","XUE SSO2",266, 0) | |
| 4022 | I XUENTRY '>0 Q "-1^ Applicatio n ID must be registe red in the REMOTE AP PLICATION file" | |
| 4023 | "RTN","XUE SSO2",267, 0) | |
| 4024 | Q XUENTRY | |
| 4025 | "RTN","XUE SSO2",268, 0) | |
| 4026 | ; | |
| 4027 | "RTN","XUE SSO2",269, 0) | |
| 4028 | AUTH() ;Fu nction. Ch eck if cal ling routi ne is auth orized | |
| 4029 | "RTN","XUE SSO2",270, 0) | |
| 4030 | ; ^XUESSO 2 does not address t he securit y issue of user auth entication , so a res triction i s placed o n the call ing routin e. | |
| 4031 | "RTN","XUE SSO2",271, 0) | |
| 4032 | ; ZEXCEPT : XTMUNIT, XTU ;set f or unit te sting | |
| 4033 | "RTN","XUE SSO2",272, 0) | |
| 4034 | N X,Z | |
| 4035 | "RTN","XUE SSO2",273, 0) | |
| 4036 | S X=$ST($ ST-2,"PLAC E"),Z=$P(X ,"^",2),X= "^"_$P(Z," ") | |
| 4037 | "RTN","XUE SSO2",274, 0) | |
| 4038 | I $E(X,1, 3)="^XU" Q 1 ;Authori zed Kernel access | |
| 4039 | "RTN","XUE SSO2",275, 0) | |
| 4040 | I $D(XTMU NIT)!$G(XT U) Q 1 ;Kernel Unit Testi ng | |
| 4041 | "RTN","XUE SSO2",276, 0) | |
| 4042 | Q 0 | |
| 4043 | "RTN","XUE SSO2",277, 0) | |
| 4044 | ; | |
| 4045 | "RTN","XUE SSO3") | |
| 4046 | 0^13^B2219 83051^B206 943521 | |
| 4047 | "RTN","XUE SSO3",1,0) | |
| 4048 | XUESSO3 ;I SD/HGW Enh anced Sing le Sign-On Utilities ;02/25/16 15:33 | |
| 4049 | "RTN","XUE SSO3",2,0) | |
| 4050 | ;;8.0;KER NEL;**655, 659**;Jul 10, 1995;B uild 22 | |
| 4051 | "RTN","XUE SSO3",3,0) | |
| 4052 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 4053 | "RTN","XUE SSO3",4,0) | |
| 4054 | ; | |
| 4055 | "RTN","XUE SSO3",5,0) | |
| 4056 | Q | |
| 4057 | "RTN","XUE SSO3",6,0) | |
| 4058 | IAMFU(R,NA ME,SSN,DOB ,ADUPN,SEC ID,AUTHCOD E) ;RPC. X US IAM FIN D USER - I A #6288 | |
| 4059 | "RTN","XUE SSO3",7,0) | |
| 4060 | ; The XUS HOWSSN key is requir ed to do l ookups usi ng PII (SS N or DoB). | |
| 4061 | "RTN","XUE SSO3",8,0) | |
| 4062 | ; Input: One or mo re of Name , SSN, DoB , AD UPN, and/or Sec ID must be provided. | |
| 4063 | "RTN","XUE SSO3",9,0) | |
| 4064 | ; AUTHCOD E = Sec urity Phra se for IAM Provision ing Applic ation | |
| 4065 | "RTN","XUE SSO3",10,0 ) | |
| 4066 | ; Return: Fail R(0)="-1^ Error Mess age" | |
| 4067 | "RTN","XUE SSO3",11,0 ) | |
| 4068 | ; Success R(0)=tota l number o f entries found, fro m "0" to " n". | |
| 4069 | "RTN","XUE SSO3",12,0 ) | |
| 4070 | ; R(1) thro ugh R(n)=" DUZ^Name^N ameCompone nts^SSN^Do b^AD UPN^S ecID" | |
| 4071 | "RTN","XUE SSO3",13,0 ) | |
| 4072 | ; | |
| 4073 | "RTN","XUE SSO3",14,0 ) | |
| 4074 | ; ZEXCEPT : %DT | |
| 4075 | "RTN","XUE SSO3",15,0 ) | |
| 4076 | N X,XARRY ,XCOUNT,XI ,XJ,XNAME, XRESULT,XS HOWSSN,XTE MP,XUENTRY ,XUIAM,Y | |
| 4077 | "RTN","XUE SSO3",16,0 ) | |
| 4078 | K R | |
| 4079 | "RTN","XUE SSO3",17,0 ) | |
| 4080 | I DUZ'>1 S R(0)="-1 ^Unauthori zed access " Q | |
| 4081 | "RTN","XUE SSO3",18,0 ) | |
| 4082 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 S R (0)=XUENTR Y Q | |
| 4083 | "RTN","XUE SSO3",19,0 ) | |
| 4084 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" S R( 0)="-1^Una uthorized access" Q | |
| 4085 | "RTN","XUE SSO3",20,0 ) | |
| 4086 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4087 | "RTN","XUE SSO3",21,0 ) | |
| 4088 | S XSHOWSS N=$$KCHK^X USRB("XUSH OWSSN") | |
| 4089 | "RTN","XUE SSO3",22,0 ) | |
| 4090 | S XCOUNT= 0 | |
| 4091 | "RTN","XUE SSO3",23,0 ) | |
| 4092 | ; 1. Sear ch by NAME | |
| 4093 | "RTN","XUE SSO3",24,0 ) | |
| 4094 | I $G(NAME )'="" D | |
| 4095 | "RTN","XUE SSO3",25,0 ) | |
| 4096 | . D FIND^ DIC(200,"" ,"@","PC", NAME,"*"," B") | |
| 4097 | "RTN","XUE SSO3",26,0 ) | |
| 4098 | . S XI=0 F S XI=$O (^TMP("DIL IST",$J,XI )) Q:'XI D | |
| 4099 | "RTN","XUE SSO3",27,0 ) | |
| 4100 | . . S XRE SULT=$G(^T MP("DILIST ",$J,XI,0) ) | |
| 4101 | "RTN","XUE SSO3",28,0 ) | |
| 4102 | . . D:XRE SULT>0 ADD TOLST(.R,. XCOUNT,XSH OWSSN,XRES ULT) | |
| 4103 | "RTN","XUE SSO3",29,0 ) | |
| 4104 | . D CLEAN ^DILF | |
| 4105 | "RTN","XUE SSO3",30,0 ) | |
| 4106 | . K ^TMP( "DILIST",$ J) | |
| 4107 | "RTN","XUE SSO3",31,0 ) | |
| 4108 | ; 2. Sear ch by SSN | |
| 4109 | "RTN","XUE SSO3",32,0 ) | |
| 4110 | I ($G(SSN )'="")&($G (XSHOWSSN) =1) D | |
| 4111 | "RTN","XUE SSO3",33,0 ) | |
| 4112 | . S XARRY (9)=SSN | |
| 4113 | "RTN","XUE SSO3",34,0 ) | |
| 4114 | . S XRESU LT=$$FINDU SER^XUESSO 2(.XARRY) | |
| 4115 | "RTN","XUE SSO3",35,0 ) | |
| 4116 | . I +XRES ULT>0 D AD DTOLST(.R, .XCOUNT,XS HOWSSN,XRE SULT) | |
| 4117 | "RTN","XUE SSO3",36,0 ) | |
| 4118 | . K XARRY (9) | |
| 4119 | "RTN","XUE SSO3",37,0 ) | |
| 4120 | ; 3. Sear ch by DOB | |
| 4121 | "RTN","XUE SSO3",38,0 ) | |
| 4122 | I ($G(DOB )'="")&($G (XSHOWSSN) =1) D | |
| 4123 | "RTN","XUE SSO3",39,0 ) | |
| 4124 | . S X=DOB ,%DT="X" D ^%DT S X= Y,XRESULT= 0 | |
| 4125 | "RTN","XUE SSO3",40,0 ) | |
| 4126 | . F D Q :XRESULT=" " | |
| 4127 | "RTN","XUE SSO3",41,0 ) | |
| 4128 | . . S XRE SULT=$O(^V A(200,XRES ULT)) Q:XR ESULT="" | |
| 4129 | "RTN","XUE SSO3",42,0 ) | |
| 4130 | . . I $P( $G(^VA(200 ,XRESULT,1 )),U,3)=X D ADDTOLST (.R,.XCOUN T,XSHOWSSN ,XRESULT) | |
| 4131 | "RTN","XUE SSO3",43,0 ) | |
| 4132 | ; 4. Sear ch by ADUP N | |
| 4133 | "RTN","XUE SSO3",44,0 ) | |
| 4134 | I $G(ADUP N)'="" D | |
| 4135 | "RTN","XUE SSO3",45,0 ) | |
| 4136 | . S X=$$L OW^XLFSTR( ADUPN),XRE SULT=0 | |
| 4137 | "RTN","XUE SSO3",46,0 ) | |
| 4138 | . S XRESU LT=$$UPNMA TCH^XUESSO 2(ADUPN) | |
| 4139 | "RTN","XUE SSO3",47,0 ) | |
| 4140 | . I XRESU LT>0 D ADD TOLST(.R,. XCOUNT,XSH OWSSN,XRES ULT) | |
| 4141 | "RTN","XUE SSO3",48,0 ) | |
| 4142 | ; 5. Sear ch by SECI D | |
| 4143 | "RTN","XUE SSO3",49,0 ) | |
| 4144 | I $G(SECI D)'="" D | |
| 4145 | "RTN","XUE SSO3",50,0 ) | |
| 4146 | . S XARRY (7)=SECID | |
| 4147 | "RTN","XUE SSO3",51,0 ) | |
| 4148 | . S XRESU LT=$$FINDU SER^XUESSO 2(.XARRY) | |
| 4149 | "RTN","XUE SSO3",52,0 ) | |
| 4150 | . I +XRES ULT>0 D AD DTOLST(.R, .XCOUNT,XS HOWSSN,XRE SULT) | |
| 4151 | "RTN","XUE SSO3",53,0 ) | |
| 4152 | . K XARRY (7) | |
| 4153 | "RTN","XUE SSO3",54,0 ) | |
| 4154 | ; 6. Retu rn results | |
| 4155 | "RTN","XUE SSO3",55,0 ) | |
| 4156 | S R(0)=XC OUNT | |
| 4157 | "RTN","XUE SSO3",56,0 ) | |
| 4158 | Q | |
| 4159 | "RTN","XUE SSO3",57,0 ) | |
| 4160 | ; | |
| 4161 | "RTN","XUE SSO3",58,0 ) | |
| 4162 | IAMDU(R,DI SPDUZ,AUTH CODE) ;RPC . XUS IAM DISPLAY US ER - IA #6 289 | |
| 4163 | "RTN","XUE SSO3",59,0 ) | |
| 4164 | ; Input: DISPDUZ = DU Z (IEN) of user to b e displaye d | |
| 4165 | "RTN","XUE SSO3",60,0 ) | |
| 4166 | ; AUTHCODE = Se curity Phr ase for IA M Provisio ning Appli cation | |
| 4167 | "RTN","XUE SSO3",61,0 ) | |
| 4168 | ; Return: Fail R(0) ="-1 ^Error Mes sage" | |
| 4169 | "RTN","XUE SSO3",62,0 ) | |
| 4170 | ; Success R(0) = 1 | |
| 4171 | "RTN","XUE SSO3",63,0 ) | |
| 4172 | ; R("NAME") = NAME | |
| 4173 | "RTN","XUE SSO3",64,0 ) | |
| 4174 | ; R("LASTNA ME") = Fam ily Name | |
| 4175 | "RTN","XUE SSO3",65,0 ) | |
| 4176 | ; R("FIRSTN AME") = Gi ven Name | |
| 4177 | "RTN","XUE SSO3",66,0 ) | |
| 4178 | ; R("MIDDLE NAME") = M iddle Name | |
| 4179 | "RTN","XUE SSO3",67,0 ) | |
| 4180 | ; R("SUFFIX ") = Suffi x(es) | |
| 4181 | "RTN","XUE SSO3",68,0 ) | |
| 4182 | ; R("INITIA L") = INIT IAL | |
| 4183 | "RTN","XUE SSO3",69,0 ) | |
| 4184 | ; R("TITLE" ) = TITLE | |
| 4185 | "RTN","XUE SSO3",70,0 ) | |
| 4186 | ; R("NICK_N AME") = NI CK NAME | |
| 4187 | "RTN","XUE SSO3",71,0 ) | |
| 4188 | ; R("SSN") = SSN (<Hi dden> if c aller does not have XUSHOWSSN key) | |
| 4189 | "RTN","XUE SSO3",72,0 ) | |
| 4190 | ; R("DOB") = DOB (<Hi dden> if c aller does not have XUSHOWSSN key) | |
| 4191 | "RTN","XUE SSO3",73,0 ) | |
| 4192 | ; R("DEGREE ") = DEGRE E | |
| 4193 | "RTN","XUE SSO3",74,0 ) | |
| 4194 | ; R("MAIL_C ODE") = MA IL CODE | |
| 4195 | "RTN","XUE SSO3",75,0 ) | |
| 4196 | ; R("STATUS ") = $$ACT IVE^XUSER( DISPDUZ) | |
| 4197 | "RTN","XUE SSO3",76,0 ) | |
| 4198 | ; R("DISUSE R") = DISU SER | |
| 4199 | "RTN","XUE SSO3",77,0 ) | |
| 4200 | ; R("TERMIN ATION_DATE ") = TERMI NATION DAT E | |
| 4201 | "RTN","XUE SSO3",78,0 ) | |
| 4202 | ; R("TERMIN ATION_REAS ON") = TER MINATION R EASON | |
| 4203 | "RTN","XUE SSO3",79,0 ) | |
| 4204 | ; R("PRIMAR Y_MENU_OPT ION") = PR IMARY MENU OPTION | |
| 4205 | "RTN","XUE SSO3",80,0 ) | |
| 4206 | ; R("SECOND ARY_MENU_O PTION",0) = SECONDAR Y MENU OPT ION (numbe r of entri es) | |
| 4207 | "RTN","XUE SSO3",81,0 ) | |
| 4208 | ; R("SECOND ARY_MENU_O PTION",1) to R("SECO NDARY_MENU _OPTION",n ) = SECOND ARY MENU O PTION entr ies | |
| 4209 | "RTN","XUE SSO3",82,0 ) | |
| 4210 | ; R("FILE_M ANAGER_ACC ESS_CODE") = FILE MA NAGER ACCE SS CODE | |
| 4211 | "RTN","XUE SSO3",83,0 ) | |
| 4212 | ; R("DIVISI ON",0) = D IVISION (n umber of e ntries) | |
| 4213 | "RTN","XUE SSO3",84,0 ) | |
| 4214 | ; R("DIVISI ON",1) to R("DIVISIO N",n) = DI VISION ent ries | |
| 4215 | "RTN","XUE SSO3",85,0 ) | |
| 4216 | ; R("SERVIC E_SECTION" ) = SERVIC E/SECTION | |
| 4217 | "RTN","XUE SSO3",86,0 ) | |
| 4218 | ; R("SUBJEC T_ALTERNAT IVE_NAME") = SUBJECT ALTERNATI VE NAME (P IV CARD) | |
| 4219 | "RTN","XUE SSO3",87,0 ) | |
| 4220 | ; R("SECID" ) = SECID | |
| 4221 | "RTN","XUE SSO3",88,0 ) | |
| 4222 | ; R("ORGANI ZATION_NAM E") = SUBJ ECT ORGANI ZATION | |
| 4223 | "RTN","XUE SSO3",89,0 ) | |
| 4224 | ; R("ORGANI ZATION_ID" ) = SUBJEC T ORGANIZA TION ID | |
| 4225 | "RTN","XUE SSO3",90,0 ) | |
| 4226 | ; R("UNIQUE _USER_ID") = UNIQUE USER ID | |
| 4227 | "RTN","XUE SSO3",91,0 ) | |
| 4228 | ; R("NETWOR K_USER_NAM E") = NETW ORK USERNA ME | |
| 4229 | "RTN","XUE SSO3",92,0 ) | |
| 4230 | ; R("AD_UPN ") = ADUPN | |
| 4231 | "RTN","XUE SSO3",93,0 ) | |
| 4232 | ; R("EMAIL" ) = EMAIL ADDRESS | |
| 4233 | "RTN","XUE SSO3",94,0 ) | |
| 4234 | ; R("GENDER ") = SEX ( M/F) | |
| 4235 | "RTN","XUE SSO3",95,0 ) | |
| 4236 | ; | |
| 4237 | "RTN","XUE SSO3",96,0 ) | |
| 4238 | N X,XI,XI EN,XJ,XN,X SHOWSSN,XT ,XT1,XT205 ,XT5,XT501 ,XUENTRY,X UIAM,Y | |
| 4239 | "RTN","XUE SSO3",97,0 ) | |
| 4240 | K R | |
| 4241 | "RTN","XUE SSO3",98,0 ) | |
| 4242 | I DUZ'>1 S R(0)="-1 ^Unauthori zed access " Q | |
| 4243 | "RTN","XUE SSO3",99,0 ) | |
| 4244 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 S R (0)=XUENTR Y Q | |
| 4245 | "RTN","XUE SSO3",100, 0) | |
| 4246 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" S R( 0)="-1^Una uthorized access" Q | |
| 4247 | "RTN","XUE SSO3",101, 0) | |
| 4248 | I $G(DUZ( "LOA"))<2 S R(0)="-1 ^Unauthori zed access " Q | |
| 4249 | "RTN","XUE SSO3",102, 0) | |
| 4250 | I $G(DISP DUZ)'>0 S R(0)="-1^U ser not se lected" Q | |
| 4251 | "RTN","XUE SSO3",103, 0) | |
| 4252 | I $G(^VA( 200,DISPDU Z,0))="" S R(0)="-1^ User not f ound" Q | |
| 4253 | "RTN","XUE SSO3",104, 0) | |
| 4254 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4255 | "RTN","XUE SSO3",105, 0) | |
| 4256 | S XSHOWSS N=$$KCHK^X USRB("XUSH OWSSN") | |
| 4257 | "RTN","XUE SSO3",106, 0) | |
| 4258 | S XT=$G(^ VA(200,DIS PDUZ,0)) | |
| 4259 | "RTN","XUE SSO3",107, 0) | |
| 4260 | S XT1=$G( ^VA(200,DI SPDUZ,1)) | |
| 4261 | "RTN","XUE SSO3",108, 0) | |
| 4262 | S XT5=$G( ^VA(200,DI SPDUZ,5)) | |
| 4263 | "RTN","XUE SSO3",109, 0) | |
| 4264 | S XT205=$ G(^VA(200, DISPDUZ,20 5)) | |
| 4265 | "RTN","XUE SSO3",110, 0) | |
| 4266 | S XT501=$ G(^VA(200, DISPDUZ,50 1)) | |
| 4267 | "RTN","XUE SSO3",111, 0) | |
| 4268 | S R(0)=1 | |
| 4269 | "RTN","XUE SSO3",112, 0) | |
| 4270 | S (XN,R(" NAME"))=$P ($G(XT),U) | |
| 4271 | "RTN","XUE SSO3",113, 0) | |
| 4272 | S XIEN=DI SPDUZ_"," | |
| 4273 | "RTN","XUE SSO3",114, 0) | |
| 4274 | S X=0 S X =$O(^VA(20 ,"BB",200, .01,XIEN,X )) ;Get NA ME COMPONE NTS | |
| 4275 | "RTN","XUE SSO3",115, 0) | |
| 4276 | S Y="" I +X>0 S Y=$ G(^VA(20,X ,1)) | |
| 4277 | "RTN","XUE SSO3",116, 0) | |
| 4278 | S R("LAST NAME")=$P( Y,U) | |
| 4279 | "RTN","XUE SSO3",117, 0) | |
| 4280 | S R("FIRS TNAME")=$P (Y,U,2) | |
| 4281 | "RTN","XUE SSO3",118, 0) | |
| 4282 | S R("MIDD LENAME")=$ P(Y,U,3) | |
| 4283 | "RTN","XUE SSO3",119, 0) | |
| 4284 | S R("SUFF IX")=$P(Y, U,4) | |
| 4285 | "RTN","XUE SSO3",120, 0) | |
| 4286 | S R("INIT IAL")=$P($ G(XT),U,2) | |
| 4287 | "RTN","XUE SSO3",121, 0) | |
| 4288 | S R("TITL E")="" S X =$P($G(XT) ,U,9) | |
| 4289 | "RTN","XUE SSO3",122, 0) | |
| 4290 | I $G(X)>0 S R("TITL E")=$P($G( ^DIC(3.1,X ,0)),U) | |
| 4291 | "RTN","XUE SSO3",123, 0) | |
| 4292 | S R("NICK _NAME")=$P ($G(^VA(20 0,DISPDUZ, .1)),U,4) | |
| 4293 | "RTN","XUE SSO3",124, 0) | |
| 4294 | S R("SSN" )="<Hidden >" I $G(XS HOWSSN)=1 S R("SSN") =$P($G(XT1 ),U,9) | |
| 4295 | "RTN","XUE SSO3",125, 0) | |
| 4296 | S R("DOB" )="<Hidden >" I $G(XS HOWSSN)=1 S R("DOB") =$TR($$FMT E^XLFDT($P ($G(XT1),U ,3),"5DZ") ,"/","") | |
| 4297 | "RTN","XUE SSO3",126, 0) | |
| 4298 | S R("DEGR EE")=$P($G (^VA(200,D ISPDUZ,3.1 )),U,6) | |
| 4299 | "RTN","XUE SSO3",127, 0) | |
| 4300 | S R("MAIL _CODE")=$P ($G(XT5),U ,2) | |
| 4301 | "RTN","XUE SSO3",128, 0) | |
| 4302 | S R("STAT US")=$$ACT IVE^XUSER( DISPDUZ) ; Supported IA #2343 | |
| 4303 | "RTN","XUE SSO3",129, 0) | |
| 4304 | S X=$P($G (R("STATUS ")),U,3) I X'="" D | |
| 4305 | "RTN","XUE SSO3",130, 0) | |
| 4306 | . S X=$TR ($$FMTE^XL FDT(X,"5DZ "),"/","") | |
| 4307 | "RTN","XUE SSO3",131, 0) | |
| 4308 | . S $P(R( "STATUS"), U,3)=X | |
| 4309 | "RTN","XUE SSO3",132, 0) | |
| 4310 | S R("DISU SER")=$P($ G(XT),U,7) | |
| 4311 | "RTN","XUE SSO3",133, 0) | |
| 4312 | S R("TERM INATION_DA TE")=$TR($ $FMTE^XLFD T($P($G(XT ),U,11),"5 DZ"),"/"," ") | |
| 4313 | "RTN","XUE SSO3",134, 0) | |
| 4314 | S R("TERM INATION_RE ASON")=$P( $G(XT),U,1 3) | |
| 4315 | "RTN","XUE SSO3",135, 0) | |
| 4316 | S R("PRIM ARY_MENU_O PTION")=$P ($G(^VA(20 0,DISPDUZ, 201)),U) | |
| 4317 | "RTN","XUE SSO3",136, 0) | |
| 4318 | I $G(R("P RIMARY_MEN U_OPTION") )>0 S R("P RIMARY_MEN U_OPTION") =$P($G(^DI C(19,R("PR IMARY_MENU _OPTION"), 0)),U) | |
| 4319 | "RTN","XUE SSO3",137, 0) | |
| 4320 | S (XI,XJ) =0 | |
| 4321 | "RTN","XUE SSO3",138, 0) | |
| 4322 | I $G(^VA( 200,DISPDU Z,203,0))' ="" F D Q:+XI'>0 | |
| 4323 | "RTN","XUE SSO3",139, 0) | |
| 4324 | . S XI=$O (^VA(200,D ISPDUZ,203 ,XI)) Q:+X I'>0 | |
| 4325 | "RTN","XUE SSO3",140, 0) | |
| 4326 | . S XJ=XJ +1,R("SECO NDARY_MENU _OPTION",X J)=$P($G(^ VA(200,DIS PDUZ,203,X I,0)),U) | |
| 4327 | "RTN","XUE SSO3",141, 0) | |
| 4328 | . I $G(R( "SECONDARY _MENU_OPTI ON",XJ))>0 S R("SECO NDARY_MENU _OPTION",X J)=$P($G(^ DIC(19,R(" SECONDARY_ MENU_OPTIO N",XJ),0)) ,U) | |
| 4329 | "RTN","XUE SSO3",142, 0) | |
| 4330 | S R("SECO NDARY_MENU _OPTION",0 )=XJ ;numb er of entr ies | |
| 4331 | "RTN","XUE SSO3",143, 0) | |
| 4332 | S R("FILE _MANAGER_A CCESS_CODE ")=$P($G(X T),U,4) | |
| 4333 | "RTN","XUE SSO3",144, 0) | |
| 4334 | S (XI,XJ) =0 | |
| 4335 | "RTN","XUE SSO3",145, 0) | |
| 4336 | I $G(^VA( 200,DISPDU Z,2,0))'=" " F D Q: +XI'>0 | |
| 4337 | "RTN","XUE SSO3",146, 0) | |
| 4338 | . S XI=$O (^VA(200,D ISPDUZ,2,X I)) Q:+XI' >0 | |
| 4339 | "RTN","XUE SSO3",147, 0) | |
| 4340 | . S XJ=XJ +1,R("DIVI SION",XJ)= $P($G(^VA( 200,DISPDU Z,2,XI,0)) ,U) | |
| 4341 | "RTN","XUE SSO3",148, 0) | |
| 4342 | . I $G(R( "DIVISION" ,XJ))>0 S R("DIVISIO N",XJ)=$P( $G(^DIC(4, R("DIVISIO N",XJ),99) ),U) | |
| 4343 | "RTN","XUE SSO3",149, 0) | |
| 4344 | S R("DIVI SION",0)=X J ;number of entries | |
| 4345 | "RTN","XUE SSO3",150, 0) | |
| 4346 | S R("SERV ICE_SECTIO N")=$P($G( XT5),U,1) | |
| 4347 | "RTN","XUE SSO3",151, 0) | |
| 4348 | I $G(R("S ERVICE_SEC TION"))>0 S R("SERVI CE_SECTION ")=$P($G(^ DIC(49,R(" SERVICE_SE CTION"),0) ),U) | |
| 4349 | "RTN","XUE SSO3",152, 0) | |
| 4350 | S R("SUBJ ECT_ALTERN ATIVE_NAME ")=$P($G(X T501),U,2) | |
| 4351 | "RTN","XUE SSO3",153, 0) | |
| 4352 | S R("SECI D")=$TR($P ($G(XT205) ,U),"%","^ ") | |
| 4353 | "RTN","XUE SSO3",154, 0) | |
| 4354 | S R("ORGA NIZATION_N AME")=$P($ G(XT205),U ,2) | |
| 4355 | "RTN","XUE SSO3",155, 0) | |
| 4356 | S R("ORGA NIZATION_I D")=$P($G( XT205),U,3 ) | |
| 4357 | "RTN","XUE SSO3",156, 0) | |
| 4358 | S R("UNIQ UE_USER_ID ")=$P($G(X T205),U,4) | |
| 4359 | "RTN","XUE SSO3",157, 0) | |
| 4360 | S R("NETW ORK_USER_N AME")=$P($ G(XT501),U ) | |
| 4361 | "RTN","XUE SSO3",158, 0) | |
| 4362 | S R("AD_U PN")=$P($G (XT205),U, 5) | |
| 4363 | "RTN","XUE SSO3",159, 0) | |
| 4364 | S R("EMAI L")=$P($G( ^VA(200,DI SPDUZ,.15) ),U) | |
| 4365 | "RTN","XUE SSO3",160, 0) | |
| 4366 | S R("GEND ER")=$P($G (XT1),U,2) | |
| 4367 | "RTN","XUE SSO3",161, 0) | |
| 4368 | Q | |
| 4369 | "RTN","XUE SSO3",162, 0) | |
| 4370 | ; | |
| 4371 | "RTN","XUE SSO3",163, 0) | |
| 4372 | IAMAU(R,NA ME,SECID,E MAIL,ADUPN ,SSN,DOB,S TATION,AUT HCODE) ;RP C. XUS IAM ADD USER - IA #6290 | |
| 4373 | "RTN","XUE SSO3",164, 0) | |
| 4374 | ; The XUS PF200 secu rity key i s required to add a user witho ut an SSN (file #200 special p rivileges) . | |
| 4375 | "RTN","XUE SSO3",165, 0) | |
| 4376 | ; Input: NAME = Subject ID to be u sed in SAM L Token | |
| 4377 | "RTN","XUE SSO3",166, 0) | |
| 4378 | ; SECID = UniqueU serID to b e used in SSOi or SS Oe SAML To ken | |
| 4379 | "RTN","XUE SSO3",167, 0) | |
| 4380 | ; EMAIL = User's e-mail add ress | |
| 4381 | "RTN","XUE SSO3",168, 0) | |
| 4382 | ; ADUPN = Active Directory User Princ iple Name | |
| 4383 | "RTN","XUE SSO3",169, 0) | |
| 4384 | ; SSN = User's Social Sec urity Numb er or Taxp ayer Ident ification Number | |
| 4385 | "RTN","XUE SSO3",170, 0) | |
| 4386 | ; DOB = User's Date of Bi rth | |
| 4387 | "RTN","XUE SSO3",171, 0) | |
| 4388 | ; STATION = NEW PER SON file ( #200) DIVI SION | |
| 4389 | "RTN","XUE SSO3",172, 0) | |
| 4390 | ; AUTHCODE = (Requir ed) Securi ty Phrase for IAM Pr ovisioning Applicati on | |
| 4391 | "RTN","XUE SSO3",173, 0) | |
| 4392 | ; Return: Fail R (0) = "-1^Number of Errors " | |
| 4393 | "RTN","XUE SSO3",174, 0) | |
| 4394 | ; R (1) throug h R(n) = "Error Mes sage" | |
| 4395 | "RTN","XUE SSO3",175, 0) | |
| 4396 | ; Success R (0) = "DUZ^STATI ON" | |
| 4397 | "RTN","XUE SSO3",176, 0) | |
| 4398 | ; | |
| 4399 | "RTN","XUE SSO3",177, 0) | |
| 4400 | ; ZEXCEPT : %DT,DA,D IERR,DIK ; FileMan sp ecial vari ables | |
| 4401 | "RTN","XUE SSO3",178, 0) | |
| 4402 | N DIC,DUZ ZERO,ERRMS G,FDR,IEN, NEWDUZ,X,X ARRAY,XDIV ,XUENTRY,X UIAM,Y | |
| 4403 | "RTN","XUE SSO3",179, 0) | |
| 4404 | K R | |
| 4405 | "RTN","XUE SSO3",180, 0) | |
| 4406 | S R(0)=0 | |
| 4407 | "RTN","XUE SSO3",181, 0) | |
| 4408 | I DUZ'>1 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4409 | "RTN","XUE SSO3",182, 0) | |
| 4410 | I +$$ACTI VE^XUSER(D UZ)=0 D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4411 | "RTN","XUE SSO3",183, 0) | |
| 4412 | I $G(DUZ( "LOA"))<2 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4413 | "RTN","XUE SSO3",184, 0) | |
| 4414 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4415 | "RTN","XUE SSO3",185, 0) | |
| 4416 | I ($G(SSN )'>1)&('$$ KCHK^XUSRB ("XUSPF200 ")) D EDIT ERR(.R,"Ne ed XUSPF20 0 key if n o SSN") Q | |
| 4417 | "RTN","XUE SSO3",186, 0) | |
| 4418 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 D E DITERR(.R, XUENTRY) Q | |
| 4419 | "RTN","XUE SSO3",187, 0) | |
| 4420 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4421 | "RTN","XUE SSO3",188, 0) | |
| 4422 | I $G(NAME )="" D EDI TERR(.R,"M issing Sub jectID") Q | |
| 4423 | "RTN","XUE SSO3",189, 0) | |
| 4424 | I $G(SECI D)="" D ED ITERR(.R," Missing Se cID") Q | |
| 4425 | "RTN","XUE SSO3",190, 0) | |
| 4426 | S Y=$$SEC MATCH^XUES SO2(SECID) I Y>0 D E DITERR(.R, "User with given Sec ID already exists") Q | |
| 4427 | "RTN","XUE SSO3",191, 0) | |
| 4428 | I $G(SSN) >1 S Y=+$O (^VA(200," SSN",SSN,0 )) | |
| 4429 | "RTN","XUE SSO3",192, 0) | |
| 4430 | I Y>0 D E DITERR(.R, "User with given SSN already e xists") Q | |
| 4431 | "RTN","XUE SSO3",193, 0) | |
| 4432 | I ($G(SSN )>1)&('$$S SNCHECK^XU ESSO1($G(S SN))) D ED ITERR(.R," Invalid SS N") Q | |
| 4433 | "RTN","XUE SSO3",194, 0) | |
| 4434 | I $G(DOB) '="" D Q: Y=-1 | |
| 4435 | "RTN","XUE SSO3",195, 0) | |
| 4436 | . S X=DOB S %DT="X" D ^%DT I Y=-1 D EDI TERR(.R,"I nvalid DOB ") Q | |
| 4437 | "RTN","XUE SSO3",196, 0) | |
| 4438 | . S DOB=$ G(Y) | |
| 4439 | "RTN","XUE SSO3",197, 0) | |
| 4440 | I $G(STAT ION)'="" D Q:Y="" | |
| 4441 | "RTN","XUE SSO3",198, 0) | |
| 4442 | . S Y="" S Y=$O(^DI C(4,"D",$G (STATION), Y)) | |
| 4443 | "RTN","XUE SSO3",199, 0) | |
| 4444 | . I Y="" D EDITERR( .R,"-1^Inv alid STATI ON") Q | |
| 4445 | "RTN","XUE SSO3",200, 0) | |
| 4446 | . S XDIV= $P($G(^DIC (4,Y,0)),U ,1) | |
| 4447 | "RTN","XUE SSO3",201, 0) | |
| 4448 | S XARRAY( 1)=$P($G(^ XTV(8989.3 ,1,200)),U ,2) | |
| 4449 | "RTN","XUE SSO3",202, 0) | |
| 4450 | S XARRAY( 2)=$P($G(^ XTV(8989.3 ,1,200)),U ,3) | |
| 4451 | "RTN","XUE SSO3",203, 0) | |
| 4452 | S XARRAY( 3)=SECID | |
| 4453 | "RTN","XUE SSO3",204, 0) | |
| 4454 | S XARRAY( 4)=NAME | |
| 4455 | "RTN","XUE SSO3",205, 0) | |
| 4456 | S XARRAY( 7)=SECID | |
| 4457 | "RTN","XUE SSO3",206, 0) | |
| 4458 | S XARRAY( 9)=$G(SSN) | |
| 4459 | "RTN","XUE SSO3",207, 0) | |
| 4460 | S Y=$$ADD USER^XUESS O2(.XARRAY ) ;Add the user | |
| 4461 | "RTN","XUE SSO3",208, 0) | |
| 4462 | I +Y<0 D EDITERR(.R ,Y) Q | |
| 4463 | "RTN","XUE SSO3",209, 0) | |
| 4464 | S NEWDUZ= Y | |
| 4465 | "RTN","XUE SSO3",210, 0) | |
| 4466 | ;Use FM c alls to ed it the use r with the remaining informati on | |
| 4467 | "RTN","XUE SSO3",211, 0) | |
| 4468 | K ^TMP("D IERR",$J) | |
| 4469 | "RTN","XUE SSO3",212, 0) | |
| 4470 | S DIC(0)= "",ERRMSG= "" | |
| 4471 | "RTN","XUE SSO3",213, 0) | |
| 4472 | S IEN=NEW DUZ_"," | |
| 4473 | "RTN","XUE SSO3",214, 0) | |
| 4474 | I $G(EMAI L)'="" S F DR(200,IEN ,.151)=$$L OW^XLFSTR( EMAIL) | |
| 4475 | "RTN","XUE SSO3",215, 0) | |
| 4476 | I $G(ADUP N)'="" S F DR(200,IEN ,205.5)=$$ LOW^XLFSTR (ADUPN) | |
| 4477 | "RTN","XUE SSO3",216, 0) | |
| 4478 | I $G(DOB) '="" S FDR (200,IEN,5 )=DOB | |
| 4479 | "RTN","XUE SSO3",217, 0) | |
| 4480 | I $G(XDIV )'="" S FD R(200.02," +3,"_IEN,. 01)=XDIV | |
| 4481 | "RTN","XUE SSO3",218, 0) | |
| 4482 | ; Apply a ll the cha nges: File valid val ues and re ject inval id values. | |
| 4483 | "RTN","XUE SSO3",219, 0) | |
| 4484 | S DUZZERO =DUZ(0),DU Z(0)="@" | |
| 4485 | "RTN","XUE SSO3",220, 0) | |
| 4486 | I $D(FDR) K IEN D U PDATE^DIE( "E","FDR", "IEN") ;Fi le all the data | |
| 4487 | "RTN","XUE SSO3",221, 0) | |
| 4488 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 4489 | "RTN","XUE SSO3",222, 0) | |
| 4490 | I $D(DIER R) D | |
| 4491 | "RTN","XUE SSO3",223, 0) | |
| 4492 | . S Y=0 | |
| 4493 | "RTN","XUE SSO3",224, 0) | |
| 4494 | . F D Q :+Y'>0 | |
| 4495 | "RTN","XUE SSO3",225, 0) | |
| 4496 | . . S Y=$ O(^TMP("DI ERR",$J,Y) ) I +Y>0 W !,$G(^TMP ("DIERR",$ J,Y,"TEXT" ,1)) | |
| 4497 | "RTN","XUE SSO3",226, 0) | |
| 4498 | . . I +Y> 0 D EDITER R(.R,$G(^T MP("DIERR" ,$J,Y,"TEX T",1))) ;F ileMan Err or | |
| 4499 | "RTN","XUE SSO3",227, 0) | |
| 4500 | . K DA,DI K S DIK="^ VA(200,",D A=NEWDUZ D ^DIK ;Rol lback add if all fie lds could not be fil ed | |
| 4501 | "RTN","XUE SSO3",228, 0) | |
| 4502 | I +$G(R(0 ))'=-1 S R (0)=NEWDUZ _U_STATION | |
| 4503 | "RTN","XUE SSO3",229, 0) | |
| 4504 | Q | |
| 4505 | "RTN","XUE SSO3",230, 0) | |
| 4506 | ; | |
| 4507 | "RTN","XUE SSO3",231, 0) | |
| 4508 | IAMEU(R,IN ARRY,AUTHC ODE) ;RPC. XUS IAM E DIT USER - IA #6291 | |
| 4509 | "RTN","XUE SSO3",232, 0) | |
| 4510 | ; The XUS HOWSSN sec urity key is require d to allow edit of P II (SSN an d DoB). | |
| 4511 | "RTN","XUE SSO3",233, 0) | |
| 4512 | ; Input: INARRY("S ECID") = SecID - Us ed to iden tify entry to be edi ted | |
| 4513 | "RTN","XUE SSO3",234, 0) | |
| 4514 | ; INARRAY(" LASTNAME") = User NAME is "LASTNA ME,FIRSTNA ME MIDDLEN AME SUFFIX " | |
| 4515 | "RTN","XUE SSO3",235, 0) | |
| 4516 | ; INARRAY(" FIRSTNAME" ) | |
| 4517 | "RTN","XUE SSO3",236, 0) | |
| 4518 | ; INARRAY(" MIDDLENAME ") | |
| 4519 | "RTN","XUE SSO3",237, 0) | |
| 4520 | ; INARRAY(" SUFFIX") | |
| 4521 | "RTN","XUE SSO3",238, 0) | |
| 4522 | ; INARRY("O RGANIZATIO N_NAME")= SUBJECT OR GANIZATION | |
| 4523 | "RTN","XUE SSO3",239, 0) | |
| 4524 | ; INARRY("O RGANIZATIO N_ID") = SUBJECT OR GANIZATION ID | |
| 4525 | "RTN","XUE SSO3",240, 0) | |
| 4526 | ; INARRY("E MAIL") = EMAIL ADDR ESS | |
| 4527 | "RTN","XUE SSO3",241, 0) | |
| 4528 | ; INARRY("A D_UPN") = ADUPN | |
| 4529 | "RTN","XUE SSO3",242, 0) | |
| 4530 | ; INARRY("S SN") = SSN | |
| 4531 | "RTN","XUE SSO3",243, 0) | |
| 4532 | ; INARRY("D OB") = DOB (Date of Birth) | |
| 4533 | "RTN","XUE SSO3",244, 0) | |
| 4534 | ; AUTHCODE = Security P hrase for IAM Provis ioning App lication | |
| 4535 | "RTN","XUE SSO3",245, 0) | |
| 4536 | ; Return: Fail R (0) = "-1^Number of Errors " | |
| 4537 | "RTN","XUE SSO3",246, 0) | |
| 4538 | ; R (1) throug h R(n) = "Error Mes sage" | |
| 4539 | "RTN","XUE SSO3",247, 0) | |
| 4540 | ; Success R (0) = DUZ of NEW PERSON fi le entry t hat was ed ited | |
| 4541 | "RTN","XUE SSO3",248, 0) | |
| 4542 | ; | |
| 4543 | "RTN","XUE SSO3",249, 0) | |
| 4544 | ; ZEXCEPT : %DT,DIER R ;FileMan special v ariables | |
| 4545 | "RTN","XUE SSO3",250, 0) | |
| 4546 | N DUZZERO ,FDR,IEN,X ,XARRAY,XD UZ,XSHOWSS N,XUENTRY, XUIAM,XUN, XUNAME,XUN EWN,XUOLDN ,Y | |
| 4547 | "RTN","XUE SSO3",251, 0) | |
| 4548 | K R | |
| 4549 | "RTN","XUE SSO3",252, 0) | |
| 4550 | S R(0)=0 | |
| 4551 | "RTN","XUE SSO3",253, 0) | |
| 4552 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4553 | "RTN","XUE SSO3",254, 0) | |
| 4554 | I DUZ'>1 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4555 | "RTN","XUE SSO3",255, 0) | |
| 4556 | I +$$ACTI VE^XUSER(D UZ)=0 D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4557 | "RTN","XUE SSO3",256, 0) | |
| 4558 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 D E DITERR(.R, $P(XUENTRY ,U,2)) Q | |
| 4559 | "RTN","XUE SSO3",257, 0) | |
| 4560 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4561 | "RTN","XUE SSO3",258, 0) | |
| 4562 | I $G(DUZ( "LOA"))<2 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4563 | "RTN","XUE SSO3",259, 0) | |
| 4564 | I $G(INAR RY("SECID" ))="" D ED ITERR(.R," User not i dentified by SecID") Q | |
| 4565 | "RTN","XUE SSO3",260, 0) | |
| 4566 | S XARRAY( 7)=INARRY( "SECID") | |
| 4567 | "RTN","XUE SSO3",261, 0) | |
| 4568 | S XDUZ=$$ SECMATCH^X UESSO2(XAR RAY(7)) I XDUZ'>0 D EDITERR(.R ,"User not found") Q | |
| 4569 | "RTN","XUE SSO3",262, 0) | |
| 4570 | I $S($P(^ VA(200,XDU Z,0),U,11) :$P(^VA(20 0,XDUZ,0), U,11)<DT,1 :0) D EDIT ERR(.R,"No t allowed to edit te rminated u ser") Q | |
| 4571 | "RTN","XUE SSO3",263, 0) | |
| 4572 | S XSHOWSS N=$$KCHK^X USRB("XUSH OWSSN") | |
| 4573 | "RTN","XUE SSO3",264, 0) | |
| 4574 | I ($G(INA RRY("SSN") ))&('XSHOW SSN) D EDI TERR(.R,"X USHOWSSN S ecurity Ke y is requi red to edi t SSN") | |
| 4575 | "RTN","XUE SSO3",265, 0) | |
| 4576 | I ($G(INA RRY("DOB") ))&('XSHOW SSN) D EDI TERR(.R,"X USHOWSSN S ecurity Ke y is requi red to edi t DOB") | |
| 4577 | "RTN","XUE SSO3",266, 0) | |
| 4578 | ;Use FM c alls to ed it the use r with the remaining informati on | |
| 4579 | "RTN","XUE SSO3",267, 0) | |
| 4580 | K ^TMP("D IERR",$J) | |
| 4581 | "RTN","XUE SSO3",268, 0) | |
| 4582 | S IEN=XDU Z_"," | |
| 4583 | "RTN","XUE SSO3",269, 0) | |
| 4584 | S XUN("FI LE")=200,X UN("IENS") =IEN,XUN(" FIELD")=.0 1 | |
| 4585 | "RTN","XUE SSO3",270, 0) | |
| 4586 | S XUOLDN= $$NAMEFMT^ XLFNAME(.X UN,"F","CS ") | |
| 4587 | "RTN","XUE SSO3",271, 0) | |
| 4588 | K XUN S X UN=XUOLDN | |
| 4589 | "RTN","XUE SSO3",272, 0) | |
| 4590 | D NAMECOM P^XLFNAME( .XUN) | |
| 4591 | "RTN","XUE SSO3",273, 0) | |
| 4592 | I $D(INAR RY("LASTNA ME")) S XU N("FAMILY" )=$G(INARR Y("LASTNAM E")) | |
| 4593 | "RTN","XUE SSO3",274, 0) | |
| 4594 | I $D(INAR RY("FIRSTN AME")) S X UN("GIVEN" )=$G(INARR Y("FIRSTNA ME")) | |
| 4595 | "RTN","XUE SSO3",275, 0) | |
| 4596 | I $D(INAR RY("MIDDLE NAME")) S XUN("MIDDL E")=$G(INA RRY("MIDDL ENAME")) | |
| 4597 | "RTN","XUE SSO3",276, 0) | |
| 4598 | I $D(INAR RY("SUFFIX ")) S XUN( "SUFFIX")= $G(INARRY( "SUFFIX")) | |
| 4599 | "RTN","XUE SSO3",277, 0) | |
| 4600 | S XUNEWN= $$NAMEFMT^ XLFNAME(.X UN,"F","CS ") | |
| 4601 | "RTN","XUE SSO3",278, 0) | |
| 4602 | I XUNEWN' =XUOLDN S FDR(200,IE N,.01)=XUN EWN ;set N AME if cha nged | |
| 4603 | "RTN","XUE SSO3",279, 0) | |
| 4604 | I $G(INAR RY("ORGANI ZATION_NAM E"))'="" D | |
| 4605 | "RTN","XUE SSO3",280, 0) | |
| 4606 | . S X=$$T ITLE^XLFST R($E(INARR Y("ORGANIZ ATION_NAME "),1,50)) | |
| 4607 | "RTN","XUE SSO3",281, 0) | |
| 4608 | . I X'=$P ($G(^VA(20 0,XDUZ,205 )),U,2) S FDR(200,IE N,205.2)=X ;set SUBJ ECT ORGANI ZATION if changed | |
| 4609 | "RTN","XUE SSO3",282, 0) | |
| 4610 | I $G(INAR RY("ORGANI ZATION_ID" ))'="" D | |
| 4611 | "RTN","XUE SSO3",283, 0) | |
| 4612 | . S X=$$L OW^XLFSTR( $E(INARRY( "ORGANIZAT ION_ID"),1 ,50)) | |
| 4613 | "RTN","XUE SSO3",284, 0) | |
| 4614 | . I X'=$P ($G(^VA(20 0,XDUZ,205 )),U,3) S FDR(200,IE N,205.3)=X ;set SUBJ ECT ORGANI ZATION ID if changed | |
| 4615 | "RTN","XUE SSO3",285, 0) | |
| 4616 | I $G(INAR RY("EMAIL" ))'="" D | |
| 4617 | "RTN","XUE SSO3",286, 0) | |
| 4618 | . S X=$$L OW^XLFSTR( INARRY("EM AIL")) | |
| 4619 | "RTN","XUE SSO3",287, 0) | |
| 4620 | . I X'=$P ($G(^VA(20 0,XDUZ,.15 )),U) S FD R(200,IEN, .151)=X ;s et EMAIL A DDRESS if changed | |
| 4621 | "RTN","XUE SSO3",288, 0) | |
| 4622 | I $G(INAR RY("AD_UPN "))'="" D | |
| 4623 | "RTN","XUE SSO3",289, 0) | |
| 4624 | . S X=$$L OW^XLFSTR( $E(INARRY( "AD_UPN"), 1,50)) | |
| 4625 | "RTN","XUE SSO3",290, 0) | |
| 4626 | . I X'=$P ($G(^VA(20 0,XDUZ,205 )),U,5) S FDR(200,IE N,205.5)=X ;edit ADU PN if chan ged | |
| 4627 | "RTN","XUE SSO3",291, 0) | |
| 4628 | I ($G(INA RRY("SSN") )'="")&(XS HOWSSN) D | |
| 4629 | "RTN","XUE SSO3",292, 0) | |
| 4630 | . S X=+$O (^VA(200," SSN",INARR Y("SSN"),0 )) ;Search for exist ing user w ith this S SN | |
| 4631 | "RTN","XUE SSO3",293, 0) | |
| 4632 | . I +X>0 D ;SSN fo und | |
| 4633 | "RTN","XUE SSO3",294, 0) | |
| 4634 | . . I +X' =XDUZ D ; SSN assign ed to anot her user | |
| 4635 | "RTN","XUE SSO3",295, 0) | |
| 4636 | . . . D E DITERR(.R, "This SSN is assigne d to anoth er user") | |
| 4637 | "RTN","XUE SSO3",296, 0) | |
| 4638 | . . ; els e SSN is a ssigned to this user , so no ne ed to chan ge SSN | |
| 4639 | "RTN","XUE SSO3",297, 0) | |
| 4640 | . E D ; SSN not fo und | |
| 4641 | "RTN","XUE SSO3",298, 0) | |
| 4642 | . . I $$S SNCHECK^XU ESSO1(INAR RY("SSN")) D ;valid ate SSN | |
| 4643 | "RTN","XUE SSO3",299, 0) | |
| 4644 | . . . S F DR(200,IEN ,9)=INARRY ("SSN") ;e dit SSN if valid | |
| 4645 | "RTN","XUE SSO3",300, 0) | |
| 4646 | . . E D ;error if SSN not v alid | |
| 4647 | "RTN","XUE SSO3",301, 0) | |
| 4648 | . . . D E DITERR(.R, "Not a val id SSN") | |
| 4649 | "RTN","XUE SSO3",302, 0) | |
| 4650 | I ($G(INA RRY("DOB") )'="")&(XS HOWSSN) D | |
| 4651 | "RTN","XUE SSO3",303, 0) | |
| 4652 | . S X=INA RRY("DOB") S %DT="X" D ^%DT | |
| 4653 | "RTN","XUE SSO3",304, 0) | |
| 4654 | . I Y>1 D | |
| 4655 | "RTN","XUE SSO3",305, 0) | |
| 4656 | . . I Y'= $P($G(^VA( 200,XDUZ,1 )),U,3) S FDR(200,IE N,5)=Y ;ed it DOB if changed | |
| 4657 | "RTN","XUE SSO3",306, 0) | |
| 4658 | . E D ; error if D OB not val id | |
| 4659 | "RTN","XUE SSO3",307, 0) | |
| 4660 | . . D EDI TERR(.R,"N ot a valid DOB") | |
| 4661 | "RTN","XUE SSO3",308, 0) | |
| 4662 | ; Apply a ll the cha nges: File valid val ues and re ject inval id values. | |
| 4663 | "RTN","XUE SSO3",309, 0) | |
| 4664 | S DUZZERO =DUZ(0),DU Z(0)="@" | |
| 4665 | "RTN","XUE SSO3",310, 0) | |
| 4666 | I $D(FDR) D FILE^DI E("E","FDR ") ;File a ll the dat a | |
| 4667 | "RTN","XUE SSO3",311, 0) | |
| 4668 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 4669 | "RTN","XUE SSO3",312, 0) | |
| 4670 | I $D(DIER R) D | |
| 4671 | "RTN","XUE SSO3",313, 0) | |
| 4672 | . S Y=0 | |
| 4673 | "RTN","XUE SSO3",314, 0) | |
| 4674 | . F D Q :+Y'>0 | |
| 4675 | "RTN","XUE SSO3",315, 0) | |
| 4676 | . . S Y=$ O(^TMP("DI ERR",$J,Y) ) | |
| 4677 | "RTN","XUE SSO3",316, 0) | |
| 4678 | . . I +Y> 0 D EDITER R(.R,$G(^T MP("DIERR" ,$J,Y,"TEX T",1))) ;F ileMan Err or | |
| 4679 | "RTN","XUE SSO3",317, 0) | |
| 4680 | E I +$G( R(0))'=-1 D | |
| 4681 | "RTN","XUE SSO3",318, 0) | |
| 4682 | . S R(0)= XDUZ | |
| 4683 | "RTN","XUE SSO3",319, 0) | |
| 4684 | Q | |
| 4685 | "RTN","XUE SSO3",320, 0) | |
| 4686 | ; | |
| 4687 | "RTN","XUE SSO3",321, 0) | |
| 4688 | IAMTU(R,SE CID,TERMDA TE,TERMRES N,AUTHCODE ) ;RPC. XU S IAM TERM INATE USER - IA #629 2 | |
| 4689 | "RTN","XUE SSO3",322, 0) | |
| 4690 | ; Input: SECID = S ECID - Use d to ident ify entry to be edit ed | |
| 4691 | "RTN","XUE SSO3",323, 0) | |
| 4692 | ; TERMDATE = T ERMINATION DATE | |
| 4693 | "RTN","XUE SSO3",324, 0) | |
| 4694 | ; TERMRESN = T ermination Reason | |
| 4695 | "RTN","XUE SSO3",325, 0) | |
| 4696 | ; AUTHCODE = S ecurity Ph rase for I AM Provisi oning Appl ication | |
| 4697 | "RTN","XUE SSO3",326, 0) | |
| 4698 | ; Return: Fail R (0) = " -1^Number of Errors" | |
| 4699 | "RTN","XUE SSO3",327, 0) | |
| 4700 | ; R (1) throug h R(n) = " Error Mess age" | |
| 4701 | "RTN","XUE SSO3",328, 0) | |
| 4702 | ; Success R (0) = D UZ | |
| 4703 | "RTN","XUE SSO3",329, 0) | |
| 4704 | ; | |
| 4705 | "RTN","XUE SSO3",330, 0) | |
| 4706 | ; ZEXCEPT : %DT,DIER R ;FileMan special v ariables | |
| 4707 | "RTN","XUE SSO3",331, 0) | |
| 4708 | N DUZZERO ,FDR,IEN,I NARRY,X,XA RRAY,XDUZ, XUENTRY,XU IAM,Y | |
| 4709 | "RTN","XUE SSO3",332, 0) | |
| 4710 | K R | |
| 4711 | "RTN","XUE SSO3",333, 0) | |
| 4712 | S R(0)=0 | |
| 4713 | "RTN","XUE SSO3",334, 0) | |
| 4714 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4715 | "RTN","XUE SSO3",335, 0) | |
| 4716 | I DUZ'>1 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4717 | "RTN","XUE SSO3",336, 0) | |
| 4718 | I +$$ACTI VE^XUSER(D UZ)=0 D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4719 | "RTN","XUE SSO3",337, 0) | |
| 4720 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 D E DITERR(.R, $P(XUENTRY ,U,2)) Q | |
| 4721 | "RTN","XUE SSO3",338, 0) | |
| 4722 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4723 | "RTN","XUE SSO3",339, 0) | |
| 4724 | I $G(SECI D)="" D ED ITERR(.R," User not i dentified by SecID") Q | |
| 4725 | "RTN","XUE SSO3",340, 0) | |
| 4726 | I $G(TERM DATE)="" D EDITERR(. R,"Missing Terminati on Date") Q | |
| 4727 | "RTN","XUE SSO3",341, 0) | |
| 4728 | I $G(TERM RESN)="" D EDITERR(. R,"Missing Terminati on Reason" ) Q | |
| 4729 | "RTN","XUE SSO3",342, 0) | |
| 4730 | S XARRAY( 7)=SECID ; SecID | |
| 4731 | "RTN","XUE SSO3",343, 0) | |
| 4732 | S XDUZ=$$ FINDUSER^X UESSO2(.XA RRAY) ;Fin d user to be termina ted | |
| 4733 | "RTN","XUE SSO3",344, 0) | |
| 4734 | I +XDUZ'> 1 D EDITER R(.R,"User not found ") Q | |
| 4735 | "RTN","XUE SSO3",345, 0) | |
| 4736 | ;Use FM c alls to ed it the use r | |
| 4737 | "RTN","XUE SSO3",346, 0) | |
| 4738 | K ^TMP("D IERR",$J) | |
| 4739 | "RTN","XUE SSO3",347, 0) | |
| 4740 | S IEN=XDU Z_"," | |
| 4741 | "RTN","XUE SSO3",348, 0) | |
| 4742 | S FDR(200 ,IEN,9.2)= TERMDATE ; set Termin ation Date | |
| 4743 | "RTN","XUE SSO3",349, 0) | |
| 4744 | S FDR(200 ,IEN,9.4)= $E(TERMRES N,1,45) ;s et Termina tion Reaso n | |
| 4745 | "RTN","XUE SSO3",350, 0) | |
| 4746 | ; Apply t he changes . | |
| 4747 | "RTN","XUE SSO3",351, 0) | |
| 4748 | S DUZZERO =DUZ(0),DU Z(0)="@" | |
| 4749 | "RTN","XUE SSO3",352, 0) | |
| 4750 | I $D(FDR) D FILE^DI E("E","FDR ") ;File a ll the dat a | |
| 4751 | "RTN","XUE SSO3",353, 0) | |
| 4752 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 4753 | "RTN","XUE SSO3",354, 0) | |
| 4754 | I $D(DIER R) D | |
| 4755 | "RTN","XUE SSO3",355, 0) | |
| 4756 | . S Y=0 | |
| 4757 | "RTN","XUE SSO3",356, 0) | |
| 4758 | . F D Q :+Y'>0 | |
| 4759 | "RTN","XUE SSO3",357, 0) | |
| 4760 | . . S Y=$ O(^TMP("DI ERR",$J,Y) ) | |
| 4761 | "RTN","XUE SSO3",358, 0) | |
| 4762 | . . I +Y> 0 D EDITER R(.R,$G(^T MP("DIERR" ,$J,Y,"TEX T",1))) ;F ileMan Err or | |
| 4763 | "RTN","XUE SSO3",359, 0) | |
| 4764 | E I +$G( R(0))'=-1 D | |
| 4765 | "RTN","XUE SSO3",360, 0) | |
| 4766 | . S R(0)= XDUZ | |
| 4767 | "RTN","XUE SSO3",361, 0) | |
| 4768 | Q | |
| 4769 | "RTN","XUE SSO3",362, 0) | |
| 4770 | ; | |
| 4771 | "RTN","XUE SSO3",363, 0) | |
| 4772 | IAMRU(R,SE CID,AUTHCO DE) ;RPC. XUS IAM RE ACTIVATE U SER - IA # 6293 | |
| 4773 | "RTN","XUE SSO3",364, 0) | |
| 4774 | ; Input: SECID = S ECID - Use d to ident ify entry to be edit ed | |
| 4775 | "RTN","XUE SSO3",365, 0) | |
| 4776 | ; AUTHCODE = S ecurity Ph rase for I AM Provisi oning Appl ication | |
| 4777 | "RTN","XUE SSO3",366, 0) | |
| 4778 | ; Return: Fail R (0) = " -1^Number of Errors" | |
| 4779 | "RTN","XUE SSO3",367, 0) | |
| 4780 | ; R (1) throug h R(n) = " Error Mess age" | |
| 4781 | "RTN","XUE SSO3",368, 0) | |
| 4782 | ; Success R (0) = 1 | |
| 4783 | "RTN","XUE SSO3",369, 0) | |
| 4784 | ; | |
| 4785 | "RTN","XUE SSO3",370, 0) | |
| 4786 | ; ZEXCEPT : DIERR ;F ileMan spe cial varia bles | |
| 4787 | "RTN","XUE SSO3",371, 0) | |
| 4788 | N DUZZERO ,FDR,IEN,I NARRY,X,XA RRAY,XDUZ, XUENTRY,XU IAM,Y | |
| 4789 | "RTN","XUE SSO3",372, 0) | |
| 4790 | K R | |
| 4791 | "RTN","XUE SSO3",373, 0) | |
| 4792 | S R(0)=0 | |
| 4793 | "RTN","XUE SSO3",374, 0) | |
| 4794 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4795 | "RTN","XUE SSO3",375, 0) | |
| 4796 | I DUZ'>1 D EDITERR( .R,"Unauth orized acc ess") Q | |
| 4797 | "RTN","XUE SSO3",376, 0) | |
| 4798 | I +$$ACTI VE^XUSER(D UZ)=0 D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4799 | "RTN","XUE SSO3",377, 0) | |
| 4800 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 D E DITERR(.R, $P(XUENTRY ,U,2)) Q | |
| 4801 | "RTN","XUE SSO3",378, 0) | |
| 4802 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U)'="IA M PROVISIO NING" D ED ITERR(.R," Unauthoriz ed access" ) Q | |
| 4803 | "RTN","XUE SSO3",379, 0) | |
| 4804 | I $G(SECI D)="" D ED ITERR(.R," User not i dentified by SecID") Q | |
| 4805 | "RTN","XUE SSO3",380, 0) | |
| 4806 | S XARRAY( 7)=SECID ; SecID | |
| 4807 | "RTN","XUE SSO3",381, 0) | |
| 4808 | S XDUZ=$$ FINDUSER^X UESSO2(.XA RRAY) ;Fin d user to be reactiv ated | |
| 4809 | "RTN","XUE SSO3",382, 0) | |
| 4810 | I +XDUZ'> 1 D EDITER R(.R,"User not found ") Q | |
| 4811 | "RTN","XUE SSO3",383, 0) | |
| 4812 | K ^TMP("D IERR",$J) | |
| 4813 | "RTN","XUE SSO3",384, 0) | |
| 4814 | S IEN=XDU Z_"," | |
| 4815 | "RTN","XUE SSO3",385, 0) | |
| 4816 | S FDR(200 ,IEN,9.2)= "" ;set Te rmination Date | |
| 4817 | "RTN","XUE SSO3",386, 0) | |
| 4818 | ; Apply t he changes . | |
| 4819 | "RTN","XUE SSO3",387, 0) | |
| 4820 | S DUZZERO =DUZ(0),DU Z(0)="@" | |
| 4821 | "RTN","XUE SSO3",388, 0) | |
| 4822 | I $D(FDR) D FILE^DI E("E","FDR ") ;File a ll the dat a | |
| 4823 | "RTN","XUE SSO3",389, 0) | |
| 4824 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 4825 | "RTN","XUE SSO3",390, 0) | |
| 4826 | I $D(DIER R) D | |
| 4827 | "RTN","XUE SSO3",391, 0) | |
| 4828 | . S Y=0 | |
| 4829 | "RTN","XUE SSO3",392, 0) | |
| 4830 | . F D Q :+Y'>0 | |
| 4831 | "RTN","XUE SSO3",393, 0) | |
| 4832 | . . S Y=$ O(^TMP("DI ERR",$J,Y) ) | |
| 4833 | "RTN","XUE SSO3",394, 0) | |
| 4834 | . . I +Y> 0 D EDITER R(.R,$G(^T MP("DIERR" ,$J,Y,"TEX T",1))) ;F ileMan Err or | |
| 4835 | "RTN","XUE SSO3",395, 0) | |
| 4836 | E I +$G( R(0))'=-1 D | |
| 4837 | "RTN","XUE SSO3",396, 0) | |
| 4838 | . S R(0)= XDUZ | |
| 4839 | "RTN","XUE SSO3",397, 0) | |
| 4840 | Q | |
| 4841 | "RTN","XUE SSO3",398, 0) | |
| 4842 | ; | |
| 4843 | "RTN","XUE SSO3",399, 0) | |
| 4844 | ADDTOLST(X R,XCOUNT,X SHOWSSN,XR ESULT) ;In trinsic Su broutine. Add user t o list. | |
| 4845 | "RTN","XUE SSO3",400, 0) | |
| 4846 | N XFLAG,X I,XODOB,XO NME,XONMEC ,XOSEC,XOS SN,XOUPN | |
| 4847 | "RTN","XUE SSO3",401, 0) | |
| 4848 | S XFLAG=0 | |
| 4849 | "RTN","XUE SSO3",402, 0) | |
| 4850 | F XI=1:1: XCOUNT D | |
| 4851 | "RTN","XUE SSO3",403, 0) | |
| 4852 | . I XRESU LT=$P($G(X R(XI)),U) S XFLAG=1 | |
| 4853 | "RTN","XUE SSO3",404, 0) | |
| 4854 | I XFLAG=0 D | |
| 4855 | "RTN","XUE SSO3",405, 0) | |
| 4856 | . S XCOUN T=XCOUNT+1 | |
| 4857 | "RTN","XUE SSO3",406, 0) | |
| 4858 | . S XONME =$P($G(^VA (200,XRESU LT,0)),U) | |
| 4859 | "RTN","XUE SSO3",407, 0) | |
| 4860 | . S XONME C=$$NAMECO MP(XRESULT ) | |
| 4861 | "RTN","XUE SSO3",408, 0) | |
| 4862 | . S XOSSN ="<Hidden> " I $G(XSH OWSSN)=1 S XOSSN=$P( $G(^VA(200 ,XRESULT,1 )),U,9) | |
| 4863 | "RTN","XUE SSO3",409, 0) | |
| 4864 | . S XODOB ="<Hidden> " I $G(XSH OWSSN)=1 S XODOB=$TR ($$FMTE^XL FDT($P($G( ^VA(200,XR ESULT,1)), U,3),"5DZ" ),"/","") | |
| 4865 | "RTN","XUE SSO3",410, 0) | |
| 4866 | . S XOUPN =$P($G(^VA (200,XRESU LT,205)),U ,5) | |
| 4867 | "RTN","XUE SSO3",411, 0) | |
| 4868 | . S XOSEC =$TR($P($G (^VA(200,X RESULT,205 )),U),"%", "^") | |
| 4869 | "RTN","XUE SSO3",412, 0) | |
| 4870 | . S XR(XC OUNT)=XRES ULT_"^"_XO NME_"^"_XO NMEC_"^"_X OSSN_"^"_X ODOB_"^"_X OUPN_"^"_X OSEC | |
| 4871 | "RTN","XUE SSO3",413, 0) | |
| 4872 | Q | |
| 4873 | "RTN","XUE SSO3",414, 0) | |
| 4874 | ; | |
| 4875 | "RTN","XUE SSO3",415, 0) | |
| 4876 | NAMECOMP(I EN) ;Intri nsic Funct ion. Get N AME COMPON ENTS. | |
| 4877 | "RTN","XUE SSO3",416, 0) | |
| 4878 | N NAME,NC 1,NCIEN | |
| 4879 | "RTN","XUE SSO3",417, 0) | |
| 4880 | S NCIEN=$ O(^VA(20," BB",200,.0 1,IEN_",", 0)) | |
| 4881 | "RTN","XUE SSO3",418, 0) | |
| 4882 | Q:'NCIEN "" | |
| 4883 | "RTN","XUE SSO3",419, 0) | |
| 4884 | S NC1=$G( ^VA(20,NCI EN,1)) | |
| 4885 | "RTN","XUE SSO3",420, 0) | |
| 4886 | Q $TR($P( NC1,U,1,3) _U_$P(NC1, U,5),U,"`" ) | |
| 4887 | "RTN","XUE SSO3",421, 0) | |
| 4888 | ; | |
| 4889 | "RTN","XUE SSO3",422, 0) | |
| 4890 | EDITERR(Y, XMSG) ;Int rinsic Sub routine. A dd error t o list. | |
| 4891 | "RTN","XUE SSO3",423, 0) | |
| 4892 | N I | |
| 4893 | "RTN","XUE SSO3",424, 0) | |
| 4894 | S:$P(XMSG ,"-1^")="" $E(XMSG,1 ,3)="" | |
| 4895 | "RTN","XUE SSO3",425, 0) | |
| 4896 | S I=$O(Y( ""),-1)+1, Y(I)=XMSG, Y(0)=-1_U_ I | |
| 4897 | "RTN","XUE SSO3",426, 0) | |
| 4898 | Q | |
| 4899 | "RTN","XUE SSO4") | |
| 4900 | 0^19^B6150 5269^n/a | |
| 4901 | "RTN","XUE SSO4",1,0) | |
| 4902 | XUESSO4 ;I SD/HGW Enh anced Sing le Sign-On Utilities ;12/03/15 15:03 | |
| 4903 | "RTN","XUE SSO4",2,0) | |
| 4904 | ;;8.0;KER NEL;**659* *;Jul 10, 1995;Build 22 | |
| 4905 | "RTN","XUE SSO4",3,0) | |
| 4906 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 4907 | "RTN","XUE SSO4",4,0) | |
| 4908 | ; | |
| 4909 | "RTN","XUE SSO4",5,0) | |
| 4910 | Q | |
| 4911 | "RTN","XUE SSO4",6,0) | |
| 4912 | ; | |
| 4913 | "RTN","XUE SSO4",7,0) | |
| 4914 | IAMBU(Y,SE CID,AUTHCO DE,ADUPN) ;RPC. XUS IAM BIND U SER - IA # 6294 | |
| 4915 | "RTN","XUE SSO4",8,0) | |
| 4916 | ;Identity and Acces s Manageme nt Edit Us er RPC for SSOi bind ing | |
| 4917 | "RTN","XUE SSO4",9,0) | |
| 4918 | ; Input: SECID = unique Security I D [SecID, assigned b y Identity and Acces s Manageme nt] | |
| 4919 | "RTN","XUE SSO4",10,0 ) | |
| 4920 | ; AUTHCODE = Securit y Phrase f or IAM Bin ding Appli cation | |
| 4921 | "RTN","XUE SSO4",11,0 ) | |
| 4922 | ; ADUPN = Active Directory UPN | |
| 4923 | "RTN","XUE SSO4",12,0 ) | |
| 4924 | ; Return: Fail Y = "-1^Err or Message " | |
| 4925 | "RTN","XUE SSO4",13,0 ) | |
| 4926 | ; Success Y = DUZ | |
| 4927 | "RTN","XUE SSO4",14,0 ) | |
| 4928 | ; | |
| 4929 | "RTN","XUE SSO4",15,0 ) | |
| 4930 | ; ZEXCEPT : DIERR ;F ileMan spe cial varia bles | |
| 4931 | "RTN","XUE SSO4",16,0 ) | |
| 4932 | N DUZZERO ,FDR,IEN,X ARRY,XRESU LT,XUENTRY ,XUIAM | |
| 4933 | "RTN","XUE SSO4",17,0 ) | |
| 4934 | I DUZ'>1 S Y="-1^Un authorized access" Q | |
| 4935 | "RTN","XUE SSO4",18,0 ) | |
| 4936 | S XUENTRY =$$GETCNTX T^XUESSO2( $G(AUTHCOD E)) I +XUE NTRY<0 S Y =XUENTRY Q | |
| 4937 | "RTN","XUE SSO4",19,0 ) | |
| 4938 | I $P($G(^ XWB(8994.5 ,XUENTRY,0 )),U,1)'=" IAM BINDIN G" S Y="-1 ^Unauthori zed access " Q | |
| 4939 | "RTN","XUE SSO4",20,0 ) | |
| 4940 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 4941 | "RTN","XUE SSO4",21,0 ) | |
| 4942 | S XARRY(7 )=$G(SECID ) ;SecID | |
| 4943 | "RTN","XUE SSO4",22,0 ) | |
| 4944 | I $G(SECI D)'="" S X RESULT=$$F INDUSER^XU ESSO2(.XAR RY) | |
| 4945 | "RTN","XUE SSO4",23,0 ) | |
| 4946 | I (+XRESU LT>0)&(XRE SULT'=DUZ) S Y="-1^T his SecID has alread y been ass igned to a nother use r" Q | |
| 4947 | "RTN","XUE SSO4",24,0 ) | |
| 4948 | ;Use FM c alls to ed it the use r | |
| 4949 | "RTN","XUE SSO4",25,0 ) | |
| 4950 | K ^TMP("D IERR",$J) | |
| 4951 | "RTN","XUE SSO4",26,0 ) | |
| 4952 | S IEN=DUZ _"," | |
| 4953 | "RTN","XUE SSO4",27,0 ) | |
| 4954 | S FDR(200 ,IEN,205.1 )=$TR($E($ G(SECID),1 ,40),"^"," %") ;Se cID | |
| 4955 | "RTN","XUE SSO4",28,0 ) | |
| 4956 | S FDR(200 ,IEN,205.2 )=$P($G(^X TV(8989.3, 1,200)),U, 2) ;Su bject Orga nization | |
| 4957 | "RTN","XUE SSO4",29,0 ) | |
| 4958 | S FDR(200 ,IEN,205.3 )=$P($G(^X TV(8989.3, 1,200)),U, 3) ;Su bject Orga nization I D | |
| 4959 | "RTN","XUE SSO4",30,0 ) | |
| 4960 | S FDR(200 ,IEN,205.4 )=$TR($E($ G(SECID),1 ,40),"^"," %") ;Un ique User ID | |
| 4961 | "RTN","XUE SSO4",31,0 ) | |
| 4962 | I $D(ADUP N) S FDR(2 00,IEN,205 .5)=$$LOW^ XLFSTR($E( $G(ADUPN), 1,50)) ;AD UPN | |
| 4963 | "RTN","XUE SSO4",32,0 ) | |
| 4964 | ; Apply a ll the cha nges: File valid val ues and re ject inval id values (no "T" fl ag). | |
| 4965 | "RTN","XUE SSO4",33,0 ) | |
| 4966 | S DUZZERO =DUZ(0),DU Z(0)="@" ; Make sure we can upd ate the en try | |
| 4967 | "RTN","XUE SSO4",34,0 ) | |
| 4968 | I $D(FDR) D FILE^DI E("ET","FD R") ;File all the da ta | |
| 4969 | "RTN","XUE SSO4",35,0 ) | |
| 4970 | S DUZ(0)= DUZZERO ;R estore ori ginal FM a ccess | |
| 4971 | "RTN","XUE SSO4",36,0 ) | |
| 4972 | I $D(DIER R) S Y="-1 ^Error bin ding VistA user to I AM" Q | |
| 4973 | "RTN","XUE SSO4",37,0 ) | |
| 4974 | S Y=DUZ | |
| 4975 | "RTN","XUE SSO4",38,0 ) | |
| 4976 | Q | |
| 4977 | "RTN","XUE SSO4",39,0 ) | |
| 4978 | ; | |
| 4979 | "RTN","XUE SSO4",40,0 ) | |
| 4980 | VACAA(INAR RAY,AUTHCO DE) ; Vete rans Acces s, Choice, and Accou ntability Act of 201 4 (VACAA) | |
| 4981 | "RTN","XUE SSO4",41,0 ) | |
| 4982 | ; Bulk-lo ad non-VA provider i nformation . | |
| 4983 | "RTN","XUE SSO4",42,0 ) | |
| 4984 | ; This in terface is available under a p rivate Int egration A greement ( #6230) for support | |
| 4985 | "RTN","XUE SSO4",43,0 ) | |
| 4986 | ; of VACA A only, an d should n ot be used under any other cir cumstances . | |
| 4987 | "RTN","XUE SSO4",44,0 ) | |
| 4988 | ; Input: INARRAY(0 ) = VISN | |
| 4989 | "RTN","XUE SSO4",45,0 ) | |
| 4990 | ; INARRAY(1 ) = NAME | |
| 4991 | "RTN","XUE SSO4",46,0 ) | |
| 4992 | ; INARRAY(2 ) = DEGRE E | |
| 4993 | "RTN","XUE SSO4",47,0 ) | |
| 4994 | ; INARRAY(3 ) = SEX | |
| 4995 | "RTN","XUE SSO4",48,0 ) | |
| 4996 | ; INARRAY(4 ) = STREE T ADDRESS 1 | |
| 4997 | "RTN","XUE SSO4",49,0 ) | |
| 4998 | ; INARRAY(5 ) = STREE T ADDRESS 2 | |
| 4999 | "RTN","XUE SSO4",50,0 ) | |
| 5000 | ; INARRAY(6 ) = STREE T ADDRESS 3 | |
| 5001 | "RTN","XUE SSO4",51,0 ) | |
| 5002 | ; INARRAY(7 ) = CITY | |
| 5003 | "RTN","XUE SSO4",52,0 ) | |
| 5004 | ; INARRAY(8 ) = STATE | |
| 5005 | "RTN","XUE SSO4",53,0 ) | |
| 5006 | ; INARRAY(9 ) = ZIP | |
| 5007 | "RTN","XUE SSO4",54,0 ) | |
| 5008 | ; INARRAY(1 0) = NPI | |
| 5009 | "RTN","XUE SSO4",55,0 ) | |
| 5010 | ; INARRAY(1 1) = (Opti onal) TAX ID | |
| 5011 | "RTN","XUE SSO4",56,0 ) | |
| 5012 | ; INARRAY(1 2) = DEA # | |
| 5013 | "RTN","XUE SSO4",57,0 ) | |
| 5014 | ; INARRAY(1 3) = Subje ct Organiz ation | |
| 5015 | "RTN","XUE SSO4",58,0 ) | |
| 5016 | ; INARRAY(1 4) = Subje ct Organiz ation ID | |
| 5017 | "RTN","XUE SSO4",59,0 ) | |
| 5018 | ; Return: Fail = "-1^E rror Messa ge" | |
| 5019 | "RTN","XUE SSO4",60,0 ) | |
| 5020 | ; Neutral = 0 (no t an error , but entr y should n ot be made at this s ite) | |
| 5021 | "RTN","XUE SSO4",61,0 ) | |
| 5022 | ; Success = IEN o f NEW PERS ON file (# 200) entry | |
| 5023 | "RTN","XUE SSO4",62,0 ) | |
| 5024 | ; | |
| 5025 | "RTN","XUE SSO4",63,0 ) | |
| 5026 | ; ZEXCEPT : DA,DD,DI C,DIE,DINU M,DLAYGO,D O,DR | |
| 5027 | "RTN","XUE SSO4",64,0 ) | |
| 5028 | N FADA,FD R,IEN,VIEN ,VISN,X,XA TTRIB,XDUZ ,XIP,XSEC, XSTATE,XTA XID,XUIAM, XUVISN,Y | |
| 5029 | "RTN","XUE SSO4",65,0 ) | |
| 5030 | I $$SHAHA SH^XUSHSH( 256,AUTHCO DE)'="69AB 5CA7FF413A CA7422D52E 466B0C1220 BE64C25AFB 354E2915A5 72E251E560 " Q "-1^Un authorized access" | |
| 5031 | "RTN","XUE SSO4",66,0 ) | |
| 5032 | I '$$PROD ^XUPROD Q "-1^Not a production account" | |
| 5033 | "RTN","XUE SSO4",67,0 ) | |
| 5034 | I $G(INAR RAY(0))="" Q "-1^Mis sing VISN" | |
| 5035 | "RTN","XUE SSO4",68,0 ) | |
| 5036 | I $G(INAR RAY(1))="" Q "-1^Mis sing Name" | |
| 5037 | "RTN","XUE SSO4",69,0 ) | |
| 5038 | I $G(INAR RAY(4))="" Q "-1^Mis sing Stree t Addr" | |
| 5039 | "RTN","XUE SSO4",70,0 ) | |
| 5040 | I $G(INAR RAY(7))="" Q "-1^Mis sing City" | |
| 5041 | "RTN","XUE SSO4",71,0 ) | |
| 5042 | I $G(INAR RAY(8))="" Q "-1^Mis sing State " | |
| 5043 | "RTN","XUE SSO4",72,0 ) | |
| 5044 | I $G(INAR RAY(9))="" Q "-1^Mis sing Zip C ode" | |
| 5045 | "RTN","XUE SSO4",73,0 ) | |
| 5046 | I $G(INAR RAY(10))=" " Q "-1^Mi ssing NPI" | |
| 5047 | "RTN","XUE SSO4",74,0 ) | |
| 5048 | I $G(INAR RAY(13))=" " Q "-1^Mi ssing Subj ect Organi zation" | |
| 5049 | "RTN","XUE SSO4",75,0 ) | |
| 5050 | I $G(INAR RAY(14))=" " Q "-1^Mi ssing Subj ect Organi zation ID" | |
| 5051 | "RTN","XUE SSO4",76,0 ) | |
| 5052 | I '$$CHKD GT^XUSNPI( $G(INARRAY (10))) Q " -1^Invalid NPI" | |
| 5053 | "RTN","XUE SSO4",77,0 ) | |
| 5054 | D PARENT^ XUAF4("XUV ISN","`"_D UZ(2),"VIS N") ;Retur ns XUVISN( "P",pien)= "VISN #^" | |
| 5055 | "RTN","XUE SSO4",78,0 ) | |
| 5056 | S VIEN=$O (XUVISN("P ",0)) S VI SN=$TR($P( $G(XUVISN( "P",VIEN)) ,U),"VISN ") ;Return VISN numb er (no tex t) | |
| 5057 | "RTN","XUE SSO4",79,0 ) | |
| 5058 | I VISN'=I NARRAY(0) Q 0 ; Onl y load dat a appropri ate for th e site's V ISN (not a n error) | |
| 5059 | "RTN","XUE SSO4",80,0 ) | |
| 5060 | S DUZ(0)= "@",XUIAM= 1 ;Tempora ry high-le vel access to edit N PF, do not trigger I AM updates | |
| 5061 | "RTN","XUE SSO4",81,0 ) | |
| 5062 | S XATTRIB (8)=INARRA Y(10) ; NP I | |
| 5063 | "RTN","XUE SSO4",82,0 ) | |
| 5064 | S XDUZ=$$ FINDUSER^X UESSO2(.XA TTRIB) ; F irst find user based on NPI al one | |
| 5065 | "RTN","XUE SSO4",83,0 ) | |
| 5066 | ;Set mini mum 4 attr ibutes | |
| 5067 | "RTN","XUE SSO4",84,0 ) | |
| 5068 | S XATTRIB (1)=INARRA Y(13) ; Su bject Orga nization | |
| 5069 | "RTN","XUE SSO4",85,0 ) | |
| 5070 | S XATTRIB (2)=INARRA Y(14) ; Su bject Orga nization I D | |
| 5071 | "RTN","XUE SSO4",86,0 ) | |
| 5072 | S XATTRIB (3)=XATTRI B(8) ; Uni que User I D = NPI pe r NHIN sta ndard | |
| 5073 | "RTN","XUE SSO4",87,0 ) | |
| 5074 | S XATTRIB (4)=INARRA Y(1) ; Sub ject ID = NAME | |
| 5075 | "RTN","XUE SSO4",88,0 ) | |
| 5076 | I (+XDUZ> 0)&('+$$AC TIVE^XUSER (XDUZ)) S XDUZ=$$FIN DUSER^XUES SO2(.XATTR IB) ; If n ot active user, look up on NPI again, upd ate M4A | |
| 5077 | "RTN","XUE SSO4",89,0 ) | |
| 5078 | I +XDUZ<1 S XDUZ=$$ ADDUSER^XU ESSO2(.XAT TRIB) ;Add the new u ser with M 4A | |
| 5079 | "RTN","XUE SSO4",90,0 ) | |
| 5080 | I +XDUZ<1 Q XDUZ ; Quit with error code from ^XUE SSO2 | |
| 5081 | "RTN","XUE SSO4",91,0 ) | |
| 5082 | S IEN=XDU Z_"," | |
| 5083 | "RTN","XUE SSO4",92,0 ) | |
| 5084 | I $G(INAR RAY(2))'=" " S FDR(20 0,IEN,10.6 )=$E($G(IN ARRAY(2)), 1,10) ; D EGREE | |
| 5085 | "RTN","XUE SSO4",93,0 ) | |
| 5086 | I (($G(IN ARRAY(3))= "M")!($G(I NARRAY(3)) ="F")) S F DR(200,IEN ,4)=$E($G( INARRAY(3) ),1,1) ; SEX | |
| 5087 | "RTN","XUE SSO4",94,0 ) | |
| 5088 | I $L($G(I NARRAY(4)) )>2 S FDR( 200,IEN,.1 11)=$E($G( INARRAY(4) ),1,50) ; STREET AD DRESS 1 | |
| 5089 | "RTN","XUE SSO4",95,0 ) | |
| 5090 | I $L($G(I NARRAY(5)) )>2 S FDR( 200,IEN,.1 12)=$E($G( INARRAY(5) ),1,50) ; STREET AD DRESS 2 | |
| 5091 | "RTN","XUE SSO4",96,0 ) | |
| 5092 | I $L($G(I NARRAY(6)) )>2 S FDR( 200,IEN,.1 13)=$E($G( INARRAY(6) ),1,50) ; STREET AD DRESS 3 | |
| 5093 | "RTN","XUE SSO4",97,0 ) | |
| 5094 | I $L($G(I NARRAY(7)) )>2 S FDR( 200,IEN,.1 14)=$E($G( INARRAY(7) ),1,30) ; CITY | |
| 5095 | "RTN","XUE SSO4",98,0 ) | |
| 5096 | I $G(INAR RAY(8))'=" " D | |
| 5097 | "RTN","XUE SSO4",99,0 ) | |
| 5098 | . I $L($G (INARRAY(8 )))>2 S XS TATE="" S XSTATE=$O( ^DIC(5,"B" ,$G(INARRA Y(8)),XSTA TE)) | |
| 5099 | "RTN","XUE SSO4",100, 0) | |
| 5100 | . I $L($G (INARRAY(8 )))=2 D | |
| 5101 | "RTN","XUE SSO4",101, 0) | |
| 5102 | . . S XIP ="" | |
| 5103 | "RTN","XUE SSO4",102, 0) | |
| 5104 | . . D POS TAL^XIPUTI L($G(INARR AY(9)),.XI P) | |
| 5105 | "RTN","XUE SSO4",103, 0) | |
| 5106 | . . S XST ATE=$G(XIP ("STATE PO INTER")) | |
| 5107 | "RTN","XUE SSO4",104, 0) | |
| 5108 | . I XSTAT E'="" S FD R(200,IEN, .115)=XSTA TE ; STATE (pointer to ^DIC(5) ) | |
| 5109 | "RTN","XUE SSO4",105, 0) | |
| 5110 | I $G(INAR RAY(9))'=" " S FDR(20 0,IEN,.116 )=$G(INARR AY(9)) ; ZIP CODE | |
| 5111 | "RTN","XUE SSO4",106, 0) | |
| 5112 | D APPLY(. FDR,IEN) K FDR S IEN =XDUZ_"," | |
| 5113 | "RTN","XUE SSO4",107, 0) | |
| 5114 | S XTAXID= $TR($G(INA RRAY(11)), "-","") | |
| 5115 | "RTN","XUE SSO4",108, 0) | |
| 5116 | I XTAXID' ="" D | |
| 5117 | "RTN","XUE SSO4",109, 0) | |
| 5118 | . S XTAXI D=$E(XTAXI D,1,2)_"-" _$E(XTAXID ,3,9) | |
| 5119 | "RTN","XUE SSO4",110, 0) | |
| 5120 | . S XTAXI D=$TR(XTAX ID," ","0" ) | |
| 5121 | "RTN","XUE SSO4",111, 0) | |
| 5122 | I (XTAXID '="")&($P( $G(^VA(200 ,XDUZ,"TPB ")),U,2)=" ") S FDR(2 00,IEN,53. 92)=XTAXID ; TAX ID | |
| 5123 | "RTN","XUE SSO4",112, 0) | |
| 5124 | D APPLY(. FDR,IEN) K FDR S IEN =XDUZ_"," | |
| 5125 | "RTN","XUE SSO4",113, 0) | |
| 5126 | I $P($G(^ VA(200,XDU Z,"TPB")), U,1)="" S FDR(200,IE N,53.91)=1 ; NON- D A N P
|
|
| 5127 | "RTN","XUE SSO4",114, 0) | |
| 5128 | I $P($G(^ VA(200,XDU Z,"PS")),U ,6)="" S F DR(200,IEN ,53.6)=4 ; PROVIDER TYPE: (4=F EE BASIS) | |
| 5129 | "RTN","XUE SSO4",115, 0) | |
| 5130 | D APPLY(. FDR,IEN) K FDR S IEN =XDUZ_"," | |
| 5131 | "RTN","XUE SSO4",116, 0) | |
| 5132 | I '+$$ACT IVE^XUSER( XDUZ)'="" D ;Could not get UP DATE^DIE t o work con sistently for these fields | |
| 5133 | "RTN","XUE SSO4",117, 0) | |
| 5134 | . I $G(IN ARRAY(12)) '="" D | |
| 5135 | "RTN","XUE SSO4",118, 0) | |
| 5136 | . . S FDR (200,IEN,5 3.1)=1 ; A UTHORIZED TO WRITE M ED ORDERS: (1=YES) | |
| 5137 | "RTN","XUE SSO4",119, 0) | |
| 5138 | . . D APP LY(.FDR,IE N) | |
| 5139 | "RTN","XUE SSO4",120, 0) | |
| 5140 | . . S DIE ="^VA(200, ",DA=XDUZ, DR="53.2// //"_INARRA Y(12) ; DE A # (stuff , due to d uplicate D EA#s and u ser name c hanges) | |
| 5141 | "RTN","XUE SSO4",121, 0) | |
| 5142 | . . L +^V A(200,XDUZ ):$S(+$G(^ DD("DILOCK TM"))>0:+^ DD("DILOCK TM"),1:3) D ^DIE L - ^VA(200,XD UZ) | |
| 5143 | "RTN","XUE SSO4",122, 0) | |
| 5144 | . I $D(^V A(200,XDUZ ,"PS")) D | |
| 5145 | "RTN","XUE SSO4",123, 0) | |
| 5146 | . . I '$P (^VA(200,X DUZ,"PS"), "^",4)!($P (^VA(200,X DUZ,"PS"), "^",4)>DT) D ;Give user "XUOR ES" key if not an ac tive user | |
| 5147 | "RTN","XUE SSO4",124, 0) | |
| 5148 | . . . S D A=XDUZ | |
| 5149 | "RTN","XUE SSO4",125, 0) | |
| 5150 | . . . K D IC S DIC=" ^DIC(19.1, ",DIC(0)=" MZ",X="XUO RES" D ^DI C | |
| 5151 | "RTN","XUE SSO4",126, 0) | |
| 5152 | . . . K D IC S FADA= XDUZ | |
| 5153 | "RTN","XUE SSO4",127, 0) | |
| 5154 | . . . I + Y>0 S X=+Y D | |
| 5155 | "RTN","XUE SSO4",128, 0) | |
| 5156 | . . . . S :'$D(^VA(2 00,FADA,51 ,0)) ^VA(2 00,FADA,51 ,0)="^"_$P (^DD(200,5 1,0),"^",2 )_"^^" | |
| 5157 | "RTN","XUE SSO4",129, 0) | |
| 5158 | . . . . S DIC="^VA( 200,"_FADA _",51,",DI C(0)="LM", DIC("DR")= "1////"_$S ($G(DUZ):D UZ,1:"")_" ;2///"_DT, DLAYGO=200 .051,DINUM =X,DA(1)=F ADA | |
| 5159 | "RTN","XUE SSO4",130, 0) | |
| 5160 | . . . . L +^VA(200, FADA):$S(+ $G(^DD("DI LOCKTM"))> 0:+^DD("DI LOCKTM"),1 :3) K DD,D O D FILE^D ICN L -^VA (200,FADA) K DIC,DR, X,Y | |
| 5161 | "RTN","XUE SSO4",131, 0) | |
| 5162 | . . I $P( $G(^VA(200 ,XDUZ,"PS" )),"^",5)= "" D ; PR OVIDER CLA SS (pointe r to ^DIC( 7)) | |
| 5163 | "RTN","XUE SSO4",132, 0) | |
| 5164 | . . . S X =0 | |
| 5165 | "RTN","XUE SSO4",133, 0) | |
| 5166 | . . . S X =$O(^DIC(7 ,"B","PHYS ICIAN",X)) | |
| 5167 | "RTN","XUE SSO4",134, 0) | |
| 5168 | . . . I X >0 D | |
| 5169 | "RTN","XUE SSO4",135, 0) | |
| 5170 | . . . . S DIE="^VA( 200,",DA=X DUZ,DR="53 .5////"_X | |
| 5171 | "RTN","XUE SSO4",136, 0) | |
| 5172 | . . . . L +^VA(200, XDUZ):$S(+ $G(^DD("DI LOCKTM"))> 0:+^DD("DI LOCKTM"),1 :3) D ^DIE L -^VA(20 0,XDUZ) | |
| 5173 | "RTN","XUE SSO4",137, 0) | |
| 5174 | S DUZ(0)= $P($G(^VA( 200,DUZ,0) ),U,4) | |
| 5175 | "RTN","XUE SSO4",138, 0) | |
| 5176 | Q XDUZ | |
| 5177 | "RTN","XUE SSO4",139, 0) | |
| 5178 | ; | |
| 5179 | "RTN","XUE SSO4",140, 0) | |
| 5180 | APPLY(FDR, IEN) ; App ly the cha nges, used by "VACAA " | |
| 5181 | "RTN","XUE SSO4",141, 0) | |
| 5182 | ;ZEXCEPT: DIC | |
| 5183 | "RTN","XUE SSO4",142, 0) | |
| 5184 | K ^TMP("D IERR",$J) | |
| 5185 | "RTN","XUE SSO4",143, 0) | |
| 5186 | S DIC(0)= "" | |
| 5187 | "RTN","XUE SSO4",144, 0) | |
| 5188 | I $D(FDR) K IEN D U PDATE^DIE( "E","FDR", "IEN") ;Fi le all the data | |
| 5189 | "RTN","XUE SSO4",145, 0) | |
| 5190 | Q | |
| 5191 | "RTN","XUE SSO4",146, 0) | |
| 5192 | ; | |
| 5193 | "RTN","XUE SSO4",147, 0) | |
| 5194 | ESSO(RET,D OC) ; RPC. XUS ESSO VALIDATE - IA #6295 | |
| 5195 | "RTN","XUE SSO4",148, 0) | |
| 5196 | ;This API /RPC uses the VA Ide ntity and Access Man agement (I AM) SAML t oken defin ition vers ion 1.2 at tributes | |
| 5197 | "RTN","XUE SSO4",149, 0) | |
| 5198 | ; from a STS SAML t oken for u ser sign-o n. | |
| 5199 | "RTN","XUE SSO4",150, 0) | |
| 5200 | ; Input: DOC = Closed reference to global root conta ining XML document ( loaded STS SAML Toke n). | |
| 5201 | "RTN","XUE SSO4",151, 0) | |
| 5202 | ; See $$E N^MXMLDOM instructio ns in the VistA Kern el Develop ers Guide for requir ed | |
| 5203 | "RTN","XUE SSO4",152, 0) | |
| 5204 | ; format of the DOC global. | |
| 5205 | "RTN","XUE SSO4",153, 0) | |
| 5206 | ; Return: RET(0) = DUZ if sign-on wa s OK, zero if not OK . | |
| 5207 | "RTN","XUE SSO4",154, 0) | |
| 5208 | ; RET(1) = (0=OK, 1,2...=Can 't sign on for some reason). | |
| 5209 | "RTN","XUE SSO4",155, 0) | |
| 5210 | ; RET(2) = Verify Code needs changing. | |
| 5211 | "RTN","XUE SSO4",156, 0) | |
| 5212 | ; RET(3) = Message . | |
| 5213 | "RTN","XUE SSO4",157, 0) | |
| 5214 | ; RET(4) = 0 | |
| 5215 | "RTN","XUE SSO4",158, 0) | |
| 5216 | ; RET(5) = count o f the numb er of line s of text, zero if n one. | |
| 5217 | "RTN","XUE SSO4",159, 0) | |
| 5218 | ; RET(5+ n) = messa ge text. | |
| 5219 | "RTN","XUE SSO4",160, 0) | |
| 5220 | ; | |
| 5221 | "RTN","XUE SSO4",161, 0) | |
| 5222 | N VCCH,XA RRY,XDIV,X DIVA,XOPT, XUDEV,XUF, XUHOME,XUM ,XUMSG,XUV OL,X,Y | |
| 5223 | "RTN","XUE SSO4",162, 0) | |
| 5224 | S U="^",R ET(0)=0,RE T(5)=0,XUF =$G(XUF,0) ,XUM=0,XUM SG=0,XUDEV =0 | |
| 5225 | "RTN","XUE SSO4",163, 0) | |
| 5226 | ; Begin u ser sign-o n | |
| 5227 | "RTN","XUE SSO4",164, 0) | |
| 5228 | S DUZ=0,D UZ(0)="",V CCH=0 D NO W^XUSRB | |
| 5229 | "RTN","XUE SSO4",165, 0) | |
| 5230 | S XOPT=$$ STATE^XWBS EC("XUS XO PT") | |
| 5231 | "RTN","XUE SSO4",166, 0) | |
| 5232 | S XUVOL=^ %ZOSF("VOL ") | |
| 5233 | "RTN","XUE SSO4",167, 0) | |
| 5234 | S XUMSG=$ $INHIBIT^X USRB() I X UMSG S XUM =1 G VAX^X USRB ;Logo n inhibite d | |
| 5235 | "RTN","XUE SSO4",168, 0) | |
| 5236 | ;3 Strike s | |
| 5237 | "RTN","XUE SSO4",169, 0) | |
| 5238 | I $$LKCHE CK^XUSTZIP ($G(IO("IP "))) S XUM SG=7 G VAX ^XUSRB ;IP locked | |
| 5239 | "RTN","XUE SSO4",170, 0) | |
| 5240 | S DUZ=$$E N^XUSAML(D OC) ;Proce ss SAML to ken | |
| 5241 | "RTN","XUE SSO4",171, 0) | |
| 5242 | I DUZ'>0, $$FAIL^XUS 3 D G VAX ^XUSRB | |
| 5243 | "RTN","XUE SSO4",172, 0) | |
| 5244 | . S XUM=1 ,XUMSG=7,X =$$RA^XUST Z H 5 ;3 S trikes | |
| 5245 | "RTN","XUE SSO4",173, 0) | |
| 5246 | I DUZ'>0 S XUMSG=63 G VAX^XUS RB | |
| 5247 | "RTN","XUE SSO4",174, 0) | |
| 5248 | D USER^XU S(DUZ) ;Bu ild USER | |
| 5249 | "RTN","XUE SSO4",175, 0) | |
| 5250 | S XUMSG=$ $UVALID^XU S() G:XUMS G VAX^XUSR B ;Check i f user is locked out , terminat ed, or dis usered | |
| 5251 | "RTN","XUE SSO4",176, 0) | |
| 5252 | I ('($G(D UZ("AUTHEN TICATION") )="SSOE")) &('($G(DUZ ("AUTHENTI CATION"))= "M4A")) S VCCH=$$VCV ALID^XUSRB () ;Check if VC need s changing | |
| 5253 | "RTN","XUE SSO4",177, 0) | |
| 5254 | I DUZ>0 S XUMSG=$$P OST^XUSRB( 1) | |
| 5255 | "RTN","XUE SSO4",178, 0) | |
| 5256 | I XUMSG>0 S DUZ=0,V CCH=0 ;If can't sign -on, don't tell need to change VC | |
| 5257 | "RTN","XUE SSO4",179, 0) | |
| 5258 | I 'XUMSG, VCCH S XUM SG=12 D SE T^XWBSEC(" XUS DUZ",D UZ) ;Need to change VC | |
| 5259 | "RTN","XUE SSO4",180, 0) | |
| 5260 | D:DUZ>0 P OST2^XUSRB | |
| 5261 | "RTN","XUE SSO4",181, 0) | |
| 5262 | S RET(0)= DUZ,RET(1) =XUM,RET(2 )=VCCH,RET (3)=$S(XUM SG:$$TXT^X US3(XUMSG) ,1:""),RET (4)=0 | |
| 5263 | "RTN","XUE SSO4",182, 0) | |
| 5264 | Q | |
| 5265 | "RTN","XUE SSO4",183, 0) | |
| 5266 | ; | |
| 5267 | "RTN","XUP ") | |
| 5268 | 0^20^B1189 8665^B1155 1061 | |
| 5269 | "RTN","XUP ",1,0) | |
| 5270 | XUP ;SFISC /RWF - Set up environ ment for p rogrammers ;09/02/15 06:36 | |
| 5271 | "RTN","XUP ",2,0) | |
| 5272 | ;;8.0;KER NEL;**208, 258,284,43 2,469,659* *;Jul 10, 1995;Build 22 | |
| 5273 | "RTN","XUP ",3,0) | |
| 5274 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 5275 | "RTN","XUP ",4,0) | |
| 5276 | W !,"Sett ing up pro grammer en vironment" | |
| 5277 | "RTN","XUP ",5,0) | |
| 5278 | S U="^",$ ECODE="",$ ETRAP="" ; Clear erro r and erro r trap | |
| 5279 | "RTN","XUP ",6,0) | |
| 5280 | X ^%ZOSF( "TYPE-AHEA D") | |
| 5281 | "RTN","XUP ",7,0) | |
| 5282 | ;Check if Productio n and repo rt | |
| 5283 | "RTN","XUP ",8,0) | |
| 5284 | W !,"This is a "_$S ($$PROD^XU PROD(1):"P RODUCTION" ,1:"TEST") _" account .",! | |
| 5285 | "RTN","XUP ",9,0) | |
| 5286 | ; | |
| 5287 | "RTN","XUP ",10,0) | |
| 5288 | K ^UTILIT Y($J),^XUT L("XQ",$J) D KILL1^X USCLEAN | |
| 5289 | "RTN","XUP ",11,0) | |
| 5290 | S U="^",D T=$$DT^XLF DT | |
| 5291 | "RTN","XUP ",12,0) | |
| 5292 | S XUEOFF= ^%ZOSF("EO FF"),XUEON =^%ZOSF("E ON"),U="^" ,XUTT=0,XU IOP="" | |
| 5293 | "RTN","XUP ",13,0) | |
| 5294 | D GETENV^ %ZOSV S XU ENV=Y,XUVO L=$P(Y,U,2 ),XUCI=$P( Y,U,1) | |
| 5295 | "RTN","XUP ",14,0) | |
| 5296 | ;Reset DU Z if user "Switched Identities ". | |
| 5297 | "RTN","XUP ",15,0) | |
| 5298 | I $D(DUZ( "SAV")) S DUZ=+DUZ(" SAV"),DUZ( 0)=$P(DUZ( "SAV"),U,2 ) K DUZ("S AV") | |
| 5299 | "RTN","XUP ",16,0) | |
| 5300 | ;Get user info | |
| 5301 | "RTN","XUP ",17,0) | |
| 5302 | I $G(DUZ) >.5,$D(^VA (200,DUZ,0 ))[0 K DUZ W !,"DUZ Must point to a real user." G EXIT ;p432 | |
| 5303 | "RTN","XUP ",18,0) | |
| 5304 | I $G(DUZ) >0 D DUZ(D UZ) | |
| 5305 | "RTN","XUP ",19,0) | |
| 5306 | I $G(DUZ) '>0!('$D(D UZ(0))) D ASKDUZ G:Y '>0 EXIT | |
| 5307 | "RTN","XUP ",20,0) | |
| 5308 | I '$D(XQU SER) S XQU SER=$S($D( ^VA(200,DU Z,20)):$P( ^(20),"^", 2),1:"Unk" ) | |
| 5309 | "RTN","XUP ",21,0) | |
| 5310 | S DTIME=6 00 ;Set a temp DTIME | |
| 5311 | "RTN","XUP ",22,0) | |
| 5312 | S DILOCKT M=+$G(^DD( "DILOCKTM" ),1) ;p432 | |
| 5313 | "RTN","XUP ",23,0) | |
| 5314 | S DUZ("LO A")=2 ;p65 9 | |
| 5315 | "RTN","XUP ",24,0) | |
| 5316 | S DUZ("AU THENTICATI ON")="XUP" | |
| 5317 | "RTN","XUP ",25,0) | |
| 5318 | ;Getting Terminal T ype | |
| 5319 | "RTN","XUP ",26,0) | |
| 5320 | ZIS I XUTT D ENQ^XUS 1 G:$D(XUI OP(1)) ZIS 2 S Y=0 D TT^XUS3 I Y>0 S XUIO P(1)=$P(XU IOP,";",2) G ZIS2 | |
| 5321 | "RTN","XUP ",27,0) | |
| 5322 | S X="`"_+ $G(^VA(200 ,DUZ,1.2)) ,DIC="^%ZI S(2,",DIC( 0)="MQ"_$S (X]"`0":"" ,1:"AE") D ^DIC G:Y' >0 EXIT | |
| 5323 | "RTN","XUP ",28,0) | |
| 5324 | S XUIOP(1 )=$P(Y,U,2 ) I DIC(0) ["A",$G(^V A(200,+DUZ ,0))]"" S $P(^VA(200 ,DUZ,1.2), U,1)=+Y | |
| 5325 | "RTN","XUP ",29,0) | |
| 5326 | ZIS2 S %ZI S="L",IOP= "HOME;"_XU IOP(1) D ^ %ZIS G EXI T:POP W !, "Terminal Type set t o: ",IOST, ! | |
| 5327 | "RTN","XUP ",30,0) | |
| 5328 | S DTIME=$ $DTIME(DUZ ,IOS),DUZ( "BUF")=1,X UDEV=IOS | |
| 5329 | "RTN","XUP ",31,0) | |
| 5330 | S %=+$G(^ VA(200,DUZ ,.1)) I %> 0 S %=$P(^ XTV(8989.3 ,1,"XUS"), U,15)-($H- %) I %<14, %>0 W !!," Your VERIF Y code wil l expire i n "_%_" da ys",!! | |
| 5331 | "RTN","XUP ",32,0) | |
| 5332 | ;Save inf o, Set las t sign-on | |
| 5333 | "RTN","XUP ",33,0) | |
| 5334 | D SAVE^XU S1 S $P(^V A(200,DUZ, 1.1),"^",1 )=$$NOW^XL FDT | |
| 5335 | "RTN","XUP ",34,0) | |
| 5336 | ;Check Ma il | |
| 5337 | "RTN","XUP ",35,0) | |
| 5338 | S Y=$P($G (^XMB(3.7, DUZ,0)),U, 6) I Y W ! ,"You have "_Y_" new message"_ $S(Y=1:"", 1:"s")_"." | |
| 5339 | "RTN","XUP ",36,0) | |
| 5340 | ;Setup er ror trap | |
| 5341 | "RTN","XUP ",37,0) | |
| 5342 | I $$GET^X PAR("USR^S YS","XUS-X UP SET ERR OR TRAP",1 ,"Q") S $E TRAP="D ER R^XUP" | |
| 5343 | "RTN","XUP ",38,0) | |
| 5344 | D KILL1^X USCLEAN S $P(XQXFLG, U,3)="XUP" D ^XQ1 | |
| 5345 | "RTN","XUP ",39,0) | |
| 5346 | EXIT ;Clea n-up and e xit | |
| 5347 | "RTN","XUP ",40,0) | |
| 5348 | D KILL1^X USCLEAN K XQY,XQY0 | |
| 5349 | "RTN","XUP ",41,0) | |
| 5350 | I $G(DUZ) >0,$$GET^X PAR("USR^S YS","XUS-X UP VPE",1, "Q"),$D(^% ZVEMS) X ^ %ZVEMS ;Ru n VPE | |
| 5351 | "RTN","XUP ",42,0) | |
| 5352 | Q | |
| 5353 | "RTN","XUP ",43,0) | |
| 5354 | ; | |
| 5355 | "RTN","XUP ",44,0) | |
| 5356 | ASKDUZ ;As k for Acce ss Code | |
| 5357 | "RTN","XUP ",45,0) | |
| 5358 | N X | |
| 5359 | "RTN","XUP ",46,0) | |
| 5360 | ;X XUEOFF S DIR(0)= "FO",DIR(" A")="Acces s Code" D ^DIR W ! X XUEON I $ D(DIRUT) S Y=-1 Q | |
| 5361 | "RTN","XUP ",47,0) | |
| 5362 | X XUEOFF W !,"Acces s Code: " S X=$$ACCE PT^XUS() X XUEON | |
| 5363 | "RTN","XUP ",48,0) | |
| 5364 | I X["^"!( '$L(X)) S Y=-1 Q | |
| 5365 | "RTN","XUP ",49,0) | |
| 5366 | S X=$$UP^ XLFSTR(X) S:X[":" XU TT=1,X=$P( X,":",1)_$ P(X,":",2) | |
| 5367 | "RTN","XUP ",50,0) | |
| 5368 | D ^XUSHSH S Y=$O(^V A(200,"A", X,0)) | |
| 5369 | "RTN","XUP ",51,0) | |
| 5370 | K DUZ D D UZ(+Y) | |
| 5371 | "RTN","XUP ",52,0) | |
| 5372 | Q | |
| 5373 | "RTN","XUP ",53,0) | |
| 5374 | ; | |
| 5375 | "RTN","XUP ",54,0) | |
| 5376 | DUZ(DA) ;B uild DUZ f or a user. Used by Mailman. | |
| 5377 | "RTN","XUP ",55,0) | |
| 5378 | ;(p284) M ake the se tting of s everal DUZ parts con ditional. | |
| 5379 | "RTN","XUP ",56,0) | |
| 5380 | N Y | |
| 5381 | "RTN","XUP ",57,0) | |
| 5382 | S Y(0)=$G (^VA(200,+ DA,0)),Y(" XUS")=$G(^ XTV(8989.3 ,1,"XUS")) | |
| 5383 | "RTN","XUP ",58,0) | |
| 5384 | S DUZ=DA | |
| 5385 | "RTN","XUP ",59,0) | |
| 5386 | S:$G(DUZ( 0))'="@" D UZ(0)=$P(Y (0),"^",4) | |
| 5387 | "RTN","XUP ",60,0) | |
| 5388 | S DUZ(1)= "",DUZ("AG ")=$P($G(^ XTV(8989.3 ,1,0)),"^" ,8) | |
| 5389 | "RTN","XUP ",61,0) | |
| 5390 | S:'$G(DUZ (2)) DUZ(2 )=$O(^VA(2 00,DUZ,2,0 )) | |
| 5391 | "RTN","XUP ",62,0) | |
| 5392 | S:'DUZ(2) DUZ(2)=+$ P(Y("XUS") ,"^",17) | |
| 5393 | "RTN","XUP ",63,0) | |
| 5394 | S:'$L($G( DUZ("LANG" ))) DUZ("L ANG")=$P(Y ("XUS"),"^ ",7) | |
| 5395 | "RTN","XUP ",64,0) | |
| 5396 | Q | |
| 5397 | "RTN","XUP ",65,0) | |
| 5398 | ; | |
| 5399 | "RTN","XUP ",66,0) | |
| 5400 | DTIME(E,D) ;Return D TIME value for user E, device D. | |
| 5401 | "RTN","XUP ",67,0) | |
| 5402 | N P | |
| 5403 | "RTN","XUP ",68,0) | |
| 5404 | S P=$P($G (^VA(200,+ $G(E),200) ),"^",10) S:P="" P=$ P($G(^%ZIS (1,+$G(D), "XUS")),"^ ",10) S:P= "" P=$P($G (^XTV(8989 .3,1,"XUS" )),"^",10) | |
| 5405 | "RTN","XUP ",69,0) | |
| 5406 | Q $S(P]"" :P,1:300) | |
| 5407 | "RTN","XUP ",70,0) | |
| 5408 | ; | |
| 5409 | "RTN","XUP ",71,0) | |
| 5410 | ERR ; | |
| 5411 | "RTN","XUP ",72,0) | |
| 5412 | N %XUP U $P | |
| 5413 | "RTN","XUP ",73,0) | |
| 5414 | W !,"$ECO DE=",$ECOD E," $STA CK=",$STAC K | |
| 5415 | "RTN","XUP ",74,0) | |
| 5416 | W !,"Loca tion: ",$S TACK($STAC K-1,"PLACE ") | |
| 5417 | "RTN","XUP ",75,0) | |
| 5418 | R !!,"Wan t to recor d the erro r: No// ", %XUP:600 I "Yy"[$E(% XUP_"N") D ^%ZTER | |
| 5419 | "RTN","XUP ",76,0) | |
| 5420 | D UNWIND^ %ZTER ;S:' $ESTACK $E CODE="" S $ETRAP="" Q:$QUIT "" Q | |
| 5421 | "RTN","XUS ") | |
| 5422 | 0^7^B35560 117^B31567 708 | |
| 5423 | "RTN","XUS ",1,0) | |
| 5424 | XUS ;SFISC /STAFF - S IGNON ;09/ 22/15 09: 24 | |
| 5425 | "RTN","XUS ",2,0) | |
| 5426 | ;;8.0;KER NEL;**16,2 6,49,59,14 9,180,265, 337,419,43 4,584,659* *;Jul 10, 1995;Build 22 | |
| 5427 | "RTN","XUS ",3,0) | |
| 5428 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 5429 | "RTN","XUS ",4,0) | |
| 5430 | ; | |
| 5431 | "RTN","XUS ",5,0) | |
| 5432 | ;Sign-on message nu mbers are 30810.51 t o 30810.99 | |
| 5433 | "RTN","XUS ",6,0) | |
| 5434 | S U="^" D INTRO^XUS 1A() | |
| 5435 | "RTN","XUS ",7,0) | |
| 5436 | K K ^XUT L("ZISPARA M",$I) | |
| 5437 | "RTN","XUS ",8,0) | |
| 5438 | S U="^",X QXFLG("GUI ")="^" | |
| 5439 | "RTN","XUS ",9,0) | |
| 5440 | W ! S $Y= 0 D SET1(1 ) I POP S XUM=3 G NO ;Sets DUZ ("LANG") | |
| 5441 | "RTN","XUS ",10,0) | |
| 5442 | S XUSTMP( 51)=$$EZBL D^DIALOG(3 0810.51),X USTMP(52)= $$EZBLD^DI ALOG(30810 .52) | |
| 5443 | "RTN","XUS ",11,0) | |
| 5444 | W !!,"Vol ume set: " ,$P(XUENV, U,4)," UC I: ",XUCI, " Device: ",$I W:$S ('$D(IO("Z IO")):0,1: $I'=IO("ZI O")) " (", IO("ZIO"), ")" W ! | |
| 5445 | "RTN","XUS ",12,0) | |
| 5446 | RESTART ; | |
| 5447 | "RTN","XUS ",13,0) | |
| 5448 | S XUM=$$S ET2 G:XUM NO | |
| 5449 | "RTN","XUS ",14,0) | |
| 5450 | I $P(XU1, U,2)]"" S XUM=$$DEVP AS() I XUM G H:XUM<0 ,NO | |
| 5451 | "RTN","XUS ",15,0) | |
| 5452 | A S (XUSER (0),XUSER( 1),XQUR)=" " | |
| 5453 | "RTN","XUS ",16,0) | |
| 5454 | ;Check fo r locked I P/device. | |
| 5455 | "RTN","XUS ",17,0) | |
| 5456 | I $$LKCHE CK^XUSTZIP () S XUM=7 ,XUFAC=$P( XOPT,U,2), XUHALT=1 G NO | |
| 5457 | "RTN","XUS ",18,0) | |
| 5458 | I $G(DUZ( "LOA"))="" S DUZ("LO A")=2,DUZ( "AUTHENTIC ATION")="A VCODES" | |
| 5459 | "RTN","XUS ",19,0) | |
| 5460 | ;Auto Sig n-on check | |
| 5461 | "RTN","XUS ",20,0) | |
| 5462 | S X=$$AUT OXUS^XUS1B () I X>0 S DUZ=X,DUZ ("AUTHENTI CATION")=" ASHTOKEN" D USER(DUZ ) W !!,">> Auto Sign -on: ",$P( XUSER(0),U )," <<<",! G B | |
| 5463 | "RTN","XUS ",21,0) | |
| 5464 | X XUEOFF S AV=$$ASK AV() X XUE ON I AV="^ ;^" G H ;G et out | |
| 5465 | "RTN","XUS ",22,0) | |
| 5466 | I AV["MAI L-BOX",AV[ ";XMR" S ( XUA,PGM)=" XMR",XMCHA N=$P($P(AV ,";")," ", 2),DUZ=.5 G XMR^XUSC LEAN | |
| 5467 | "RTN","XUS ",23,0) | |
| 5468 | S XQUR=$P (AV,";",3) | |
| 5469 | "RTN","XUS ",24,0) | |
| 5470 | S DUZ=$$C HECKAV(AV) K AV | |
| 5471 | "RTN","XUS ",25,0) | |
| 5472 | S XUM=$$U VALID() G: XUM NO | |
| 5473 | "RTN","XUS ",26,0) | |
| 5474 | B K XUF,%1 S XUF=0 X XUEON | |
| 5475 | "RTN","XUS ",27,0) | |
| 5476 | I DUZ D U SER^XUS1 G :XUM NO | |
| 5477 | "RTN","XUS ",28,0) | |
| 5478 | I DUZ D S EC^XUS3:($ D(^%ZIS(1, XUDEV,"TIM E"))!$D(^( 95))) G:XU M NO | |
| 5479 | "RTN","XUS ",29,0) | |
| 5480 | G NO:'DUZ | |
| 5481 | "RTN","XUS ",30,0) | |
| 5482 | S DTIME=$ P(XOPT,U,1 0),X=$S(DU Z("BUF"):" ",1:"NO-") _"TYPE-AHE AD" X:$D(^ %ZOSF(X)) ^(X) | |
| 5483 | "RTN","XUS ",31,0) | |
| 5484 | D TT^XUS3 :$G(XUTT) | |
| 5485 | "RTN","XUS ",32,0) | |
| 5486 | D CLRFAC^ XUS3($G(IO ("IP"))) | |
| 5487 | "RTN","XUS ",33,0) | |
| 5488 | PGM ; | |
| 5489 | "RTN","XUS ",34,0) | |
| 5490 | S Y=+$G(^ %ZIS(1,XUD EV,201)) I Y>0,$$CHK S XQY=Y G OK | |
| 5491 | "RTN","XUS ",35,0) | |
| 5492 | S Y=+$G(^ VA(200,DUZ ,201)) I Y >0,$$CHK S XQY=Y G O K | |
| 5493 | "RTN","XUS ",36,0) | |
| 5494 | I $D(DUZ( "ASH")) S Y=$O(^DIC( 19,"B","XU NOP MENU" ,0)) I Y>0 S XQY=Y G OK ;rwf 4 03 | |
| 5495 | "RTN","XUS ",37,0) | |
| 5496 | S XUM=16 | |
| 5497 | "RTN","XUS ",38,0) | |
| 5498 | G NO | |
| 5499 | "RTN","XUS ",39,0) | |
| 5500 | ; | |
| 5501 | "RTN","XUS ",40,0) | |
| 5502 | OK D CHEK^ XQ83 | |
| 5503 | "RTN","XUS ",41,0) | |
| 5504 | S (XUA,PG M)="XQ" | |
| 5505 | "RTN","XUS ",42,0) | |
| 5506 | G NEXT^XU S1 | |
| 5507 | "RTN","XUS ",43,0) | |
| 5508 | ; | |
| 5509 | "RTN","XUS ",44,0) | |
| 5510 | CHK() ;Che ck that op tion exist s and LOCK | |
| 5511 | "RTN","XUS ",45,0) | |
| 5512 | I $D(^DIC (19,Y,0)), $S($P(^(0) ,U,6)="":1 ,1:$D(^XUS EC($P(^(0) ,U,6),DUZ) )) Q 1 | |
| 5513 | "RTN","XUS ",46,0) | |
| 5514 | Q 0 | |
| 5515 | "RTN","XUS ",47,0) | |
| 5516 | ; | |
| 5517 | "RTN","XUS ",48,0) | |
| 5518 | LC S X=$$U P(X) | |
| 5519 | "RTN","XUS ",49,0) | |
| 5520 | Q | |
| 5521 | "RTN","XUS ",50,0) | |
| 5522 | UP(%) Q $T R(%,"abcde fghijklmno pqrstuvwxy z","ABCDEF GHIJKLMNOP QRSTUVWXYZ ") | |
| 5523 | "RTN","XUS ",51,0) | |
| 5524 | ; | |
| 5525 | "RTN","XUS ",52,0) | |
| 5526 | FAC ;Faile d access | |
| 5527 | "RTN","XUS ",53,0) | |
| 5528 | S:'DUZ XU F(.1)=$E(% 1) | |
| 5529 | "RTN","XUS ",54,0) | |
| 5530 | S:XUF=2 X UF(.2)=XUF (.2)+1,XUF (XUF(.2))= %1 S %1="" Q | |
| 5531 | "RTN","XUS ",55,0) | |
| 5532 | Q | |
| 5533 | "RTN","XUS ",56,0) | |
| 5534 | NO ;Tell w hy didn't get on | |
| 5535 | "RTN","XUS ",57,0) | |
| 5536 | S X=$$NO^ XUS3() G R ESTART:'X ;fall into exit | |
| 5537 | "RTN","XUS ",58,0) | |
| 5538 | H ;Exit po int for al l applicat ions | |
| 5539 | "RTN","XUS ",59,0) | |
| 5540 | C ;CLOSE | |
| 5541 | "RTN","XUS ",60,0) | |
| 5542 | G ^XUSCLE AN | |
| 5543 | "RTN","XUS ",61,0) | |
| 5544 | ; | |
| 5545 | "RTN","XUS ",62,0) | |
| 5546 | ON X ^%ZOS F("EON") Q | |
| 5547 | "RTN","XUS ",63,0) | |
| 5548 | ; | |
| 5549 | "RTN","XUS ",64,0) | |
| 5550 | ASKAV(PRE) ;Ask and return Acc ess;Verify code, Tur n off echo before ca lling | |
| 5551 | "RTN","XUS ",65,0) | |
| 5552 | N X,Y S P RE=$G(PRE) | |
| 5553 | "RTN","XUS ",66,0) | |
| 5554 | F W !,PR E,XUSTMP(5 1) S X=$$A CCEPT S:X= "^" X="^;^ " Q:$L(X) | |
| 5555 | "RTN","XUS ",67,0) | |
| 5556 | S X=$TR(X ,$C(9),";" ) ;Convert TAB to ; to match G UI. | |
| 5557 | "RTN","XUS ",68,0) | |
| 5558 | I $P(X," ")="MAIL-B OX" S X=X_ ";XMR" | |
| 5559 | "RTN","XUS ",69,0) | |
| 5560 | I $E(X,1, 7)="~~TOK~ ~" Q X ;Us e CCOW tok en | |
| 5561 | "RTN","XUS ",70,0) | |
| 5562 | I '$L($P( X,";",2)) W !,PRE,XU STMP(52) S Y=$$ACCEP T S:Y="^" X="^;" S $ P(X,";",2) =Y | |
| 5563 | "RTN","XUS ",71,0) | |
| 5564 | Q X | |
| 5565 | "RTN","XUS ",72,0) | |
| 5566 | ; | |
| 5567 | "RTN","XUS ",73,0) | |
| 5568 | ;Timeout used by XU STZ call. | |
| 5569 | "RTN","XUS ",74,0) | |
| 5570 | ACCEPT(TO) ;Read A/V and echo '*' char. | |
| 5571 | "RTN","XUS ",75,0) | |
| 5572 | ;Have the Read writ e to flush the buffe r on some systems | |
| 5573 | "RTN","XUS ",76,0) | |
| 5574 | N C,A,E K DUOUT S A ="",TO=$G( TO,60),E=0 | |
| 5575 | "RTN","XUS ",77,0) | |
| 5576 | F D Q:E | |
| 5577 | "RTN","XUS ",78,0) | |
| 5578 | . R "",*C :TO S:('$T ) DUOUT=1 S:('$T)!(C =94) A="^" | |
| 5579 | "RTN","XUS ",79,0) | |
| 5580 | . I (A="^ ")!(C=13)! ($L(A)>60) S E=1 Q | |
| 5581 | "RTN","XUS ",80,0) | |
| 5582 | . I C=127 Q:'$L(A) S A=$E(A, 1,$L(A)-1) W $C(8,32 ,8) Q | |
| 5583 | "RTN","XUS ",81,0) | |
| 5584 | . S A=A_$ C(C) W *42 | |
| 5585 | "RTN","XUS ",82,0) | |
| 5586 | . Q | |
| 5587 | "RTN","XUS ",83,0) | |
| 5588 | Q A | |
| 5589 | "RTN","XUS ",84,0) | |
| 5590 | ; | |
| 5591 | "RTN","XUS ",85,0) | |
| 5592 | CHECKAV(X1 ) ;Check A /V code re turn DUZ o r Zero. (C alled from XUSRB) | |
| 5593 | "RTN","XUS ",86,0) | |
| 5594 | N %,%1,X, Y,IEN,DA,D IK | |
| 5595 | "RTN","XUS ",87,0) | |
| 5596 | S IEN=0 | |
| 5597 | "RTN","XUS ",88,0) | |
| 5598 | ;Start CC OW | |
| 5599 | "RTN","XUS ",89,0) | |
| 5600 | I $E(X1,1 ,7)="~~TOK ~~" D Q:I EN>0 IEN | |
| 5601 | "RTN","XUS ",90,0) | |
| 5602 | . I $E(X1 ,8,9)="~1" S IEN=$$C HKASH^XUSR B4($E(X1,8 ,255)),DUZ ("AUTHENTI CATION")=" ASHTOKEN" | |
| 5603 | "RTN","XUS ",91,0) | |
| 5604 | . I $E(X1 ,8,9)="~2" S IEN=$$C HKCCOW^XUS RB4($E(X1, 8,255)),DU Z("AUTHENT ICATION")= "CCOWTOKEN " | |
| 5605 | "RTN","XUS ",92,0) | |
| 5606 | . Q | |
| 5607 | "RTN","XUS ",93,0) | |
| 5608 | ;End CCOW | |
| 5609 | "RTN","XUS ",94,0) | |
| 5610 | S X1=$$UP (X1) S:X1[ ":" XUTT=1 ,X1=$TR(X1 ,":") | |
| 5611 | "RTN","XUS ",95,0) | |
| 5612 | S X=$P(X1 ,";") Q:X= "^" -1 S:X UF %1="Acc ess: "_X | |
| 5613 | "RTN","XUS ",96,0) | |
| 5614 | Q:X'?1.20 ANP 0 | |
| 5615 | "RTN","XUS ",97,0) | |
| 5616 | S X=$$EN^ XUSHSH(X) I '$D(^VA( 200,"A",X) ) D LBAV Q 0 | |
| 5617 | "RTN","XUS ",98,0) | |
| 5618 | S %1="",I EN=$O(^VA( 200,"A",X, 0)),XUF(.3 )=IEN D US ER(IEN) | |
| 5619 | "RTN","XUS ",99,0) | |
| 5620 | S X=$P(X1 ,";",2) S: XUF %1="Ve rify: "_X S X=$$EN^X USHSH(X) | |
| 5621 | "RTN","XUS ",100,0) | |
| 5622 | I $P(XUSE R(1),"^",2 )'=X D LBA V Q 0 | |
| 5623 | "RTN","XUS ",101,0) | |
| 5624 | I $G(XUFA C(1)) S DI K="^XUSEC( 4,",DA=XUF AC(1) D ^D IK | |
| 5625 | "RTN","XUS ",102,0) | |
| 5626 | I $G(DUZ( "AUTHENTIC ATION"))=" " S DUZ("A UTHENTICAT ION")="AVC ODES" | |
| 5627 | "RTN","XUS ",103,0) | |
| 5628 | Q IEN | |
| 5629 | "RTN","XUS ",104,0) | |
| 5630 | LBAV ;Log Bad AV | |
| 5631 | "RTN","XUS ",105,0) | |
| 5632 | D:XUF FAC | |
| 5633 | "RTN","XUS ",106,0) | |
| 5634 | I IEN S X =$P($G(^VA (200,IEN,1 .1)),U,2)+ 1,$P(^(1.1 ),"^",2)=X | |
| 5635 | "RTN","XUS ",107,0) | |
| 5636 | Q | |
| 5637 | "RTN","XUS ",108,0) | |
| 5638 | ; | |
| 5639 | "RTN","XUS ",109,0) | |
| 5640 | USER(IX) ; Build XUSE R | |
| 5641 | "RTN","XUS ",110,0) | |
| 5642 | S XUSER(0 )=$G(^VA(2 00,+IX,0)) ,XUSER(1)= $G(^(.1)), XUSER(1.1) =$G(^(1.1) ) | |
| 5643 | "RTN","XUS ",111,0) | |
| 5644 | Q | |
| 5645 | "RTN","XUS ",112,0) | |
| 5646 | ; | |
| 5647 | "RTN","XUS ",113,0) | |
| 5648 | XUVOL ;Set up XUENV, XUCI,XQVOL ,XUVOL,XUO SVER | |
| 5649 | "RTN","XUS ",114,0) | |
| 5650 | S U="^" D GETENV^%Z OSV S XUEN V=Y,XUCI=$ P(Y,U,1),X QVOL=$P(Y, U,2),XUOSV ER=$$VERSI ON^%ZOSV | |
| 5651 | "RTN","XUS ",115,0) | |
| 5652 | S X=$O(^X TV(8989.3, 1,4,"B",XQ VOL,0)),XU VOL=$S(X>0 :^XTV(8989 .3,1,4,X,0 ),1:XQVOL_ "^y^1") | |
| 5653 | "RTN","XUS ",116,0) | |
| 5654 | Q | |
| 5655 | "RTN","XUS ",117,0) | |
| 5656 | ; | |
| 5657 | "RTN","XUS ",118,0) | |
| 5658 | XOPT ;Setu p initial XOPT | |
| 5659 | "RTN","XUS ",119,0) | |
| 5660 | S XOPT=$S ($D(^XTV(8 989.3,1,"X US")):^("X US"),1:"") | |
| 5661 | "RTN","XUS ",120,0) | |
| 5662 | F I=2:1:1 5 I $P(XOP T,U,I)="" S $P(XOPT, U,I)=$P("^ 5^900^1^1^ ^^^1^300^^ ^^N^90",U, I) | |
| 5663 | "RTN","XUS ",121,0) | |
| 5664 | Q | |
| 5665 | "RTN","XUS ",122,0) | |
| 5666 | ; | |
| 5667 | "RTN","XUS ",123,0) | |
| 5668 | SET1(FLAG) ;Setup pa rameters ( also calle d from XUS RB) | |
| 5669 | "RTN","XUS ",124,0) | |
| 5670 | N % | |
| 5671 | "RTN","XUS ",125,0) | |
| 5672 | S U="^",X UEON=^%ZOS F("EON"),X UEOFF=^("E OFF") | |
| 5673 | "RTN","XUS ",126,0) | |
| 5674 | D XUVOL,X OPT S DUZ( "LANG")=$P (XOPT,U,7) ;S:$P(XUV OL,U,6)="y " XRTL=XUC I_","_XQVO L | |
| 5675 | "RTN","XUS ",127,0) | |
| 5676 | K ^XUTL(" XQ",$J) S XUF=0,XUDE V=0,DUZ=0, DUZ(0)="@" ,IOS=0,ION ="" | |
| 5677 | "RTN","XUS ",128,0) | |
| 5678 | I FLAG S %ZIS="L",I OP="HOME" D ^%ZIS Q: POP | |
| 5679 | "RTN","XUS ",129,0) | |
| 5680 | S XUDEV=I OS,XUIOP=I ON | |
| 5681 | "RTN","XUS ",130,0) | |
| 5682 | D GETFAC^ XUS3($G(IO ("IP"))) | |
| 5683 | "RTN","XUS ",131,0) | |
| 5684 | S %=$P(XO PT,U,14) | |
| 5685 | "RTN","XUS ",132,0) | |
| 5686 | I "N"'[% D | |
| 5687 | "RTN","XUS ",133,0) | |
| 5688 | . S XUF=( %["R")+1,X UF(.1)="", XUF(.2)=0, XUF(.3)=0 | |
| 5689 | "RTN","XUS ",134,0) | |
| 5690 | . I %["D" S:$D(^XTV (8989.3,1, 4.33,"B",X UDEV))[0 X UF=0 | |
| 5691 | "RTN","XUS ",135,0) | |
| 5692 | S DILOCKT M=+$G(^DD( "DILOCKTM" ),1) ;p434 IA#4909 | |
| 5693 | "RTN","XUS ",136,0) | |
| 5694 | Q | |
| 5695 | "RTN","XUS ",137,0) | |
| 5696 | SET2() ;EF . Return e rror code (also call ed from XU SRB) | |
| 5697 | "RTN","XUS ",138,0) | |
| 5698 | N %,X | |
| 5699 | "RTN","XUS ",139,0) | |
| 5700 | S XUNOW=$ $HTFM^XLFD T($H),DT=$ P(XUNOW,". ") | |
| 5701 | "RTN","XUS ",140,0) | |
| 5702 | K DUZ,XUS ER | |
| 5703 | "RTN","XUS ",141,0) | |
| 5704 | S (DUZ,DU Z(2))=0,(D UZ(0),DUZ( "AG"),XUSE R(0),XUSER (1),XUTT,% UCI)="" | |
| 5705 | "RTN","XUS ",142,0) | |
| 5706 | S %=$$INH IBIT^XUSRB () I %>0 Q % | |
| 5707 | "RTN","XUS ",143,0) | |
| 5708 | S X=$G(^% ZIS(1,XUDE V,"XUS")), XU1=$G(^(1 )) | |
| 5709 | "RTN","XUS ",144,0) | |
| 5710 | I $L(X) F I=1:1:15 I $L($P(X, U,I)) S $P (XOPT,U,I) =$P(X,U,I) | |
| 5711 | "RTN","XUS ",145,0) | |
| 5712 | S DTIME=6 00 | |
| 5713 | "RTN","XUS ",146,0) | |
| 5714 | I '$P(XOP T,U,11),$D (^%ZIS(1,X UDEV,90)), ^(90)>2800 000,^(90)' >DT Q 8 | |
| 5715 | "RTN","XUS ",147,0) | |
| 5716 | Q 0 | |
| 5717 | "RTN","XUS ",148,0) | |
| 5718 | ; | |
| 5719 | "RTN","XUS ",149,0) | |
| 5720 | UVALID() ; EF. Is it valid for this user to sign on ? | |
| 5721 | "RTN","XUS ",150,0) | |
| 5722 | ;ZEXCEPT: XUM,XUNOW ,XUSER ;gl obal Kerne l variable s used dur ing sign-o n | |
| 5723 | "RTN","XUS ",151,0) | |
| 5724 | I DUZ'>0 Q 4 | |
| 5725 | "RTN","XUS ",152,0) | |
| 5726 | I $P(XUSE R(1.1),U,5 ),$P(XUSER (1.1),U,5) >XUNOW S X UM(0)=$$FM TE^XLFDT($ P(XUSER(1. 1),U,5),"2 PM") Q 18 ;User lock ed until | |
| 5727 | "RTN","XUS ",153,0) | |
| 5728 | I $P(XUSE R(0),U,11) ,$P(XUSER( 0),U,11)'> DT Q 11 ;A ccess Term inated | |
| 5729 | "RTN","XUS ",154,0) | |
| 5730 | I $D(DUZ( "ASH")) Q 0 ;If auto handle, A llow to si gn-on p434 | |
| 5731 | "RTN","XUS ",155,0) | |
| 5732 | I $P(XUSE R(0),U,7) Q 5 ;Disus er flag se t | |
| 5733 | "RTN","XUS ",156,0) | |
| 5734 | I ('$L($P (XUSER(1), U,2)))&('( $G(DUZ("AU THENTICATI ON"))="SSO E"))&('($G (DUZ("AUTH ENTICATION "))="M4A") ) Q 21 ;Nu ll verify code not a llowed p41 9 | |
| 5735 | "RTN","XUS ",157,0) | |
| 5736 | Q 0 | |
| 5737 | "RTN","XUS ",158,0) | |
| 5738 | ; | |
| 5739 | "RTN","XUS ",159,0) | |
| 5740 | DEVPAS() ; EF. Ask de vice passw ord | |
| 5741 | "RTN","XUS ",160,0) | |
| 5742 | X XUEOFF W !,"DEVIC E PASSWORD : " R X:60 X XUEON | |
| 5743 | "RTN","XUS ",161,0) | |
| 5744 | S X=$E(X, 1,30) S:'$ T X="^" D LC Q:X["^" -1 I $P(X U1,U,2)'=X S:XUF %1= "Device: " _X D:XUF F AC Q 6 | |
| 5745 | "RTN","XUS ",162,0) | |
| 5746 | Q 0 | |
| 5747 | "RTN","XUS ",163,0) | |
| 5748 | ; | |
| 5749 | "RTN","XUS 1") | |
| 5750 | 0^10^B2913 2312^B2856 8204 | |
| 5751 | "RTN","XUS 1",1,0) | |
| 5752 | XUS1 ;SF-I SC/STAFF - SIGNON ;0 9/22/15 0 8:33 | |
| 5753 | "RTN","XUS 1",2,0) | |
| 5754 | ;;8.0;KER NEL;**9,59 ,111,165,1 50,252,265 ,419,469,5 23,543,638 ,659**;Jul 10, 1995; Build 22 | |
| 5755 | "RTN","XUS 1",3,0) | |
| 5756 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 5757 | "RTN","XUS 1",4,0) | |
| 5758 | ;User set up | |
| 5759 | "RTN","XUS 1",5,0) | |
| 5760 | USER ; | |
| 5761 | "RTN","XUS 1",6,0) | |
| 5762 | K XUTEXT S XUM=$$US ER^XUS1A() ,$Y=0 | |
| 5763 | "RTN","XUS 1",7,0) | |
| 5764 | ;Show pos t sign-on text | |
| 5765 | "RTN","XUS 1",8,0) | |
| 5766 | F I=0:0 S I=$O(XUTE XT(I)) Q:I '>0 D:$Y> 20 W:$E(X UTEXT(I),1 )="!" ! W $E(XUTEXT( I),2,999) | |
| 5767 | "RTN","XUS 1",9,0) | |
| 5768 | . N DIR S DIR(0)="E ",DIR("A") ="Enter RE TURN to co ntinue" D ^DIR W @IO F Q | |
| 5769 | "RTN","XUS 1",10,0) | |
| 5770 | ;if XUM=9 multi sig n-on NOT a llowed | |
| 5771 | "RTN","XUS 1",11,0) | |
| 5772 | I XUM=9 W !!,?8,$$E ZBLD^DIALO G(30810.45 ) | |
| 5773 | "RTN","XUS 1",12,0) | |
| 5774 | Q:XUM ;U ser can't sign-on. | |
| 5775 | "RTN","XUS 1",13,0) | |
| 5776 | SET ; | |
| 5777 | "RTN","XUS 1",14,0) | |
| 5778 | S Y=$$CHK DIV() | |
| 5779 | "RTN","XUS 1",15,0) | |
| 5780 | I $P(Y,U, 2)>0,$D(^D IC(4,0)) D ASKDIV | |
| 5781 | "RTN","XUS 1",16,0) | |
| 5782 | S DUZ(2)= +Y D DUZ^X US1A | |
| 5783 | "RTN","XUS 1",17,0) | |
| 5784 | ;Check ve rify code | |
| 5785 | "RTN","XUS 1",18,0) | |
| 5786 | I $$VCHG D CVC^XUS2 G:$D(DUOU T) H^XUS | |
| 5787 | "RTN","XUS 1",19,0) | |
| 5788 | S:$P(XOPT ,"^",5) XU TT=1 ;Ask Device | |
| 5789 | "RTN","XUS 1",20,0) | |
| 5790 | D ENQ ;In quire to T erminal Ty pe | |
| 5791 | "RTN","XUS 1",21,0) | |
| 5792 | Q | |
| 5793 | "RTN","XUS 1",22,0) | |
| 5794 | ; | |
| 5795 | "RTN","XUS 1",23,0) | |
| 5796 | VCHG() ;Ch eck if the Verify co de needs t o be chang ed | |
| 5797 | "RTN","XUS 1",24,0) | |
| 5798 | I $D(DUZ( "ASH")) Q 0 ;p403 | |
| 5799 | "RTN","XUS 1",25,0) | |
| 5800 | D:'$D(XUS ER) USER^X US(DUZ) | |
| 5801 | "RTN","XUS 1",26,0) | |
| 5802 | Q:'$L($P( XUSER(1),U ,2)) 1 ;Nu ll VC | |
| 5803 | "RTN","XUS 1",27,0) | |
| 5804 | I $$BROKE R^XWBLIB Q :$P(XUSER( 0),U,8)=1 0 ;VC neve r expires, only for BROKER | |
| 5805 | "RTN","XUS 1",28,0) | |
| 5806 | Q (XUSER( 1)+$P(XOPT ,U,15))'>$ H ;Time to change | |
| 5807 | "RTN","XUS 1",29,0) | |
| 5808 | ; | |
| 5809 | "RTN","XUS 1",30,0) | |
| 5810 | ASKDIV ;As k the user for the D ivision, r eturn Y | |
| 5811 | "RTN","XUS 1",31,0) | |
| 5812 | N X | |
| 5813 | "RTN","XUS 1",32,0) | |
| 5814 | S DIC="^V A(200,DUZ, 2,",DIC(0) ="AEQ",DIC ("P")="200 .02P",X=$O (^VA(200,D UZ,2,"AX1" ,1,0)) S:X >0 DIC("B" )=$P($$NS^ XUAF4(X),U ) | |
| 5815 | "RTN","XUS 1",33,0) | |
| 5816 | D ^DIC I Y'>0 W !,* 7,"You mus t select o ne." G ASK DIV | |
| 5817 | "RTN","XUS 1",34,0) | |
| 5818 | Q | |
| 5819 | "RTN","XUS 1",35,0) | |
| 5820 | ; | |
| 5821 | "RTN","XUS 1",36,0) | |
| 5822 | CHKDIV(CD) ;ef,sr Ch eck if use r needs to select Di vision. | |
| 5823 | "RTN","XUS 1",37,0) | |
| 5824 | N %,%1,%2 ,%3,%4 | |
| 5825 | "RTN","XUS 1",38,0) | |
| 5826 | I $G(DUZ( "DIV"))>0 Q DUZ("DIV ") ;p469 S et outside | |
| 5827 | "RTN","XUS 1",39,0) | |
| 5828 | S %=$O(^V A(200,DUZ, 2,0)),%1=$ O(^(%)) | |
| 5829 | "RTN","XUS 1",40,0) | |
| 5830 | I %1,$D(C D) D | |
| 5831 | "RTN","XUS 1",41,0) | |
| 5832 | . S %2=0, %3=0,CD=0 | |
| 5833 | "RTN","XUS 1",42,0) | |
| 5834 | . F S %2 =$O(^VA(20 0,DUZ,2,%2 )) Q:%2'>0 S %4=^(% 2,0),%3=%3 +1,CD(%3)= %2_"^"_$$N S^XUAF4(%2 )_$S($P(%4 ,"^",2):"^ 1",1:"") | |
| 5835 | "RTN","XUS 1",43,0) | |
| 5836 | . S CD=%3 | |
| 5837 | "RTN","XUS 1",44,0) | |
| 5838 | Q %_"^"_% 1 | |
| 5839 | "RTN","XUS 1",45,0) | |
| 5840 | ; | |
| 5841 | "RTN","XUS 1",46,0) | |
| 5842 | ENQ ;Get t erminal ty pe | |
| 5843 | "RTN","XUS 1",47,0) | |
| 5844 | S XUT1="" I XUTT X XUEOFF R X :0 X ^%ZOS F("TYPE-AH EAD") W $C (27,91,99) X "R *X:2 I X=27 F R X#1:2 S XUT1=XUT1 _X Q:'$T!( X=""c"")" | |
| 5845 | "RTN","XUS 1",48,0) | |
| 5846 | ;Removed code for W yse 75 | |
| 5847 | "RTN","XUS 1",49,0) | |
| 5848 | X XUEON I XUTT,XUT1 ["[" S Y=$ O(^%ZIS(3. 22,"B",XUT 1,0)) I Y> 0 S X=$P($ G(^%ZIS(3. 22,Y,0))," ^",2) | |
| 5849 | "RTN","XUS 1",50,0) | |
| 5850 | I X?1.ANP S DIC="^% ZIS(2,",DI C(0)="MO" D ^DIC I Y >0 S XUIOP (1)=$P(Y,U ,2),$P(XUI OP,";",2)= XUIOP(1),^ VA(200,DUZ ,1.2)=+Y | |
| 5851 | "RTN","XUS 1",51,0) | |
| 5852 | I '$D(XUI OP(1)),$D( ^VA(200,DU Z,1.2)) S X=+^(1.2) I X>0,$D(^ %ZIS(2,X,0 )) S $P(XU IOP,";",2) =$P(^(0),U ) | |
| 5853 | "RTN","XUS 1",52,0) | |
| 5854 | Q | |
| 5855 | "RTN","XUS 1",53,0) | |
| 5856 | ; | |
| 5857 | "RTN","XUS 1",54,0) | |
| 5858 | NEXT ;Jump to the ne xt routine | |
| 5859 | "RTN","XUS 1",55,0) | |
| 5860 | S IOP=XUI OP D ^%ZIS D SAVE ;S ave off de vice/user info | |
| 5861 | "RTN","XUS 1",56,0) | |
| 5862 | S X=$G(^D ISV(DUZ)) ;Add kill by session or day he re | |
| 5863 | "RTN","XUS 1",57,0) | |
| 5864 | S ^DISV(D UZ)=$H | |
| 5865 | "RTN","XUS 1",58,0) | |
| 5866 | ;Removed UCI jump p 469 | |
| 5867 | "RTN","XUS 1",59,0) | |
| 5868 | D AUDIT | |
| 5869 | "RTN","XUS 1",60,0) | |
| 5870 | S X=$S($D (^VA(200,D UZ,0)):$P( $P(^(0),U) ,","),1:"U nk"),X=$E( X,1,10)_"_ "_($J#1000 0) D SETEN V^%ZOSV ;S et Process Name | |
| 5871 | "RTN","XUS 1",61,0) | |
| 5872 | ;S X=$P(X OPT,U,16) X:X ^%ZOSF ("PRIORITY ") | |
| 5873 | "RTN","XUS 1",62,0) | |
| 5874 | D LOG:DUZ ,KILL | |
| 5875 | "RTN","XUS 1",63,0) | |
| 5876 | K ^XUTL(" OR",$J),^U TILITY($J) ,%UCI | |
| 5877 | "RTN","XUS 1",64,0) | |
| 5878 | G ^XQ | |
| 5879 | "RTN","XUS 1",65,0) | |
| 5880 | ; | |
| 5881 | "RTN","XUS 1",66,0) | |
| 5882 | SAVE ; | |
| 5883 | "RTN","XUS 1",67,0) | |
| 5884 | N X | |
| 5885 | "RTN","XUS 1",68,0) | |
| 5886 | S X="DUZ" F S X=$Q (@X) Q:X=" " I $D(@X ) S ^XUTL( "XQ",$J,$T R(X,"""")) =@X | |
| 5887 | "RTN","XUS 1",69,0) | |
| 5888 | F X="DUZ" ,"IO","IO( ""IP"")"," IO(""CLNM" ")","XQVOL " I $D(@X) S ^XUTL(" XQ",$J,X)= @X | |
| 5889 | "RTN","XUS 1",70,0) | |
| 5890 | D SAVEVAR ^%ZIS ;Sav e the HOME device va riables | |
| 5891 | "RTN","XUS 1",71,0) | |
| 5892 | Q | |
| 5893 | "RTN","XUS 1",72,0) | |
| 5894 | ; | |
| 5895 | "RTN","XUS 1",73,0) | |
| 5896 | LOG ;used by R/S and Broker | |
| 5897 | "RTN","XUS 1",74,0) | |
| 5898 | N %,XP1,X P2 | |
| 5899 | "RTN","XUS 1",75,0) | |
| 5900 | S XQXFLG( "LLOG")=$P ($G(^VA(20 0,DUZ,1.1) ),U) ;Save for LOGIN templates | |
| 5901 | "RTN","XUS 1",76,0) | |
| 5902 | S XP1=$$S LOG($P(XUV OL,U,1),,X UDEV,XUCI, $P(XUENV,U ,3)) | |
| 5903 | "RTN","XUS 1",77,0) | |
| 5904 | S %=$$COO KIE($P(^VA (200,DUZ,0 ),U),XP1) I $L(%) S XQXFLG("ZE BRA")=XP1_ "~"_%,$P(^ XUSEC(0,XP 1,0),U,13) =% L +^XWB ("SESSION" ,XQXFLG("Z EBRA")):60 | |
| 5905 | "RTN","XUS 1",78,0) | |
| 5906 | Q | |
| 5907 | "RTN","XUS 1",79,0) | |
| 5908 | ; | |
| 5909 | "RTN","XUS 1",80,0) | |
| 5910 | ;Division updated i n DIVSET^X USRB2 | |
| 5911 | "RTN","XUS 1",81,0) | |
| 5912 | ;The othe r paramete rs are in the symbol table wit h known na mes. | |
| 5913 | "RTN","XUS 1",82,0) | |
| 5914 | ;P1=DUZ,P 2=$I,P3=$J ,P4=EXIT D /T,P5=VOLU ME,P6=TASK MAN,P7=XUD EV,P8=UCI, P9=ZIO,P10 =NODE,P11= IPV4,P12=C LNM,P13=HA NDLE,P14=R EMOTE SITE ,P15=REMOT E IEN | |
| 5915 | "RTN","XUS 1",83,0) | |
| 5916 | ;P100=IPV 6,P101=LOA | |
| 5917 | "RTN","XUS 1",84,0) | |
| 5918 | SLOG(P5,P6 ,P7,P8,P10 ,P14,P15) ; | |
| 5919 | "RTN","XUS 1",85,0) | |
| 5920 | ;ZEXCEPT: DILOCKTM ;Global va riable for lock time out | |
| 5921 | "RTN","XUS 1",86,0) | |
| 5922 | ;p638 Cha nges: Save IPv4 addr ess in fie ld 11 (0;1 1) and IPv 6 address in field 1 00 (1;1) | |
| 5923 | "RTN","XUS 1",87,0) | |
| 5924 | N %,I,DA, DIK,N,XL1, XL2,P11,P1 2,P100,P10 1 | |
| 5925 | "RTN","XUS 1",88,0) | |
| 5926 | S XL1=$$N OW^XLFDT | |
| 5927 | "RTN","XUS 1",89,0) | |
| 5928 | S P5=$G(P 5),P6=$G(P 6),P7=$G(P 7),P8=$G(P 8),P10=$P( $G(P10),". ") | |
| 5929 | "RTN","XUS 1",90,0) | |
| 5930 | S P11=$$F ORCEIP4^XL FIPV($G(IO ("IP"))),P 100=$$FORC EIP6^XLFIP V($G(IO("I P"))) | |
| 5931 | "RTN","XUS 1",91,0) | |
| 5932 | S P12=$P( $G(IO("CLN M")),".") | |
| 5933 | "RTN","XUS 1",92,0) | |
| 5934 | I P11="0. 0.0.0" S P 11="" ;Do not store null IPv4 address | |
| 5935 | "RTN","XUS 1",93,0) | |
| 5936 | I P100="0 000:0000:0 000:0000:0 000:0000:0 000:0000" S P100="" ;Do not s tore null IPv6 addre ss | |
| 5937 | "RTN","XUS 1",94,0) | |
| 5938 | S P101=$G (DUZ("LOA" )) | |
| 5939 | "RTN","XUS 1",95,0) | |
| 5940 | S N=DUZ_" ^"_$I_"^"_ $J_"^^"_P5 _"^"_P6_"^ "_P7_"^"_P 8_"^"_$E($ G(IO("ZIO" )),1,30)_" ^"_P10_"^" _P11_"^"_P 12 | |
| 5941 | "RTN","XUS 1",96,0) | |
| 5942 | S:$D(DUZ( "VISITOR") ) $P(N,U,1 4,15)=DUZ( "VISITOR") ;p523 | |
| 5943 | "RTN","XUS 1",97,0) | |
| 5944 | S:$G(DUZ( 2))>0 $P(N ,U,17)=DUZ (2) | |
| 5945 | "RTN","XUS 1",98,0) | |
| 5946 | S:$D(DUZ( "REMAPP")) $P(N,U,18 )=$P(DUZ(" REMAPP"),U ) ;p523 | |
| 5947 | "RTN","XUS 1",99,0) | |
| 5948 | F I=XL1:. 00000001 L +^XUSEC(0 ,I):$G(DIL OCKTM,5) Q :'$D(^XUSE C(0,I)) L -^XUSEC(0 ,I) | |
| 5949 | "RTN","XUS 1",100,0) | |
| 5950 | S ^XUSEC( 0,I,0)=N | |
| 5951 | "RTN","XUS 1",101,0) | |
| 5952 | S ^XUSEC( 0,I,1)=P10 0_"^"_P101 ;Save IPv 6 address and Level Of Assuran ce | |
| 5953 | "RTN","XUS 1",102,0) | |
| 5954 | L -^XUSEC (0,I) | |
| 5955 | "RTN","XUS 1",103,0) | |
| 5956 | S $P(^XUS EC(0,0),"^ ",3,4)=I_U _(1+$P(^XU SEC(0,0)," ^",4)) | |
| 5957 | "RTN","XUS 1",104,0) | |
| 5958 | S (XL1,DA )=I,DIK="^ XUSEC(0," D IX^DIK ; index new entry | |
| 5959 | "RTN","XUS 1",105,0) | |
| 5960 | S ^XUTL(" XQ",$J,0)= XL1 ;save for sign-o ff | |
| 5961 | "RTN","XUS 1",106,0) | |
| 5962 | I 'P6 S X L2=$G(^VA( 200,DUZ,1. 1)),$P(XL2 ,U,1,3)=XL 1_"^0^1",$ P(XL2,U,5) ="",^VA(20 0,DUZ,1.1) =XL2 ;Set last Sign -on | |
| 5963 | "RTN","XUS 1",107,0) | |
| 5964 | Q XL1 | |
| 5965 | "RTN","XUS 1",108,0) | |
| 5966 | ; | |
| 5967 | "RTN","XUS 1",109,0) | |
| 5968 | COOKIE(J1, J2) ;Call VAdeamon f or a cooki e | |
| 5969 | "RTN","XUS 1",110,0) | |
| 5970 | N ZZ,% | |
| 5971 | "RTN","XUS 1",111,0) | |
| 5972 | I $G(XQXF LG("ZEBRA" ))=-1 K XQ XFLG("ZEBR A") Q "" ; Disabled | |
| 5973 | "RTN","XUS 1",112,0) | |
| 5974 | Q:$G(IO(" IP"))="" " " ;Not usi ng Telnet or SSH | |
| 5975 | "RTN","XUS 1",113,0) | |
| 5976 | Q:$D(DUZ( "VISITOR") ) "" ;Don' t create H andles for visitors p523 | |
| 5977 | "RTN","XUS 1",114,0) | |
| 5978 | ; | |
| 5979 | "RTN","XUS 1",115,0) | |
| 5980 | S %=$$CMD ^XWBCAGNT( .ZZ,"XWB C REATE HAND LE",J1_"^" _J2) Q:'% "" | |
| 5981 | "RTN","XUS 1",116,0) | |
| 5982 | Q $G(ZZ(1 )) | |
| 5983 | "RTN","XUS 1",117,0) | |
| 5984 | ; | |
| 5985 | "RTN","XUS 1",118,0) | |
| 5986 | AUDIT ;Set -up Audit info | |
| 5987 | "RTN","XUS 1",119,0) | |
| 5988 | N I,I1,I2 | |
| 5989 | "RTN","XUS 1",120,0) | |
| 5990 | S I=$G(^X TV(8989.3, 1,19)),I1= $P(I,U),I2 =$P(I,U,2) Q:"asu"'[ I1 I (I2> XUNOW)!($P (I,U,3)<XU NOW) Q | |
| 5991 | "RTN","XUS 1",121,0) | |
| 5992 | I "au"[I1 S:(I1="a" )!($D(^XTV (8989.3,1, 19.3,"B",D UZ))>1) XQ AUDIT=1 Q | |
| 5993 | "RTN","XUS 1",122,0) | |
| 5994 | S XQAUDIT ="" F I=0: 0 S I=$O(^ XTV(8989.3 ,1,19.1,"B ",I)) Q:I' >0!($L(XQA UDIT)>245) S XQAUDI T=XQAUDIT_ "2^"_I_U | |
| 5995 | "RTN","XUS 1",123,0) | |
| 5996 | S I1="" F I=0:0 S I 1=$O(^XTV( 8989.3,1,1 9.2,"B",I1 )) Q:I1']" "!($L(XQAU DIT)>245) S XQAUDIT =XQAUDIT_" 3^"_I1_U | |
| 5997 | "RTN","XUS 1",124,0) | |
| 5998 | Q | |
| 5999 | "RTN","XUS 1",125,0) | |
| 6000 | ; | |
| 6001 | "RTN","XUS 1",126,0) | |
| 6002 | DD(Y) Q $$ FMTE^XLFDT (Y,1) | |
| 6003 | "RTN","XUS 1",127,0) | |
| 6004 | ; | |
| 6005 | "RTN","XUS 1",128,0) | |
| 6006 | KILL N %UC I,PGM,U,XQ UR,XMCHAN G KILL1^XU SCLEAN | |
| 6007 | "RTN","XUS 1",129,0) | |
| 6008 | Q | |
| 6009 | "RTN","XUS 1",130,0) | |
| 6010 | NO G NO^XU S | |
| 6011 | "RTN","XUS AML") | |
| 6012 | 0^14^B8782 2485^B7889 6546 | |
| 6013 | "RTN","XUS AML",1,0) | |
| 6014 | XUSAML ;IS D/HGW Kern el SAML To ken Implem entation ; 10/01/15 14:40 | |
| 6015 | "RTN","XUS AML",2,0) | |
| 6016 | ;;8.0;KER NEL;**655, 659**;Jul 10, 1995;B uild 22 | |
| 6017 | "RTN","XUS AML",3,0) | |
| 6018 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 6019 | "RTN","XUS AML",4,0) | |
| 6020 | ; | |
| 6021 | "RTN","XUS AML",5,0) | |
| 6022 | ; Impleme nts the Ke rnel SAML Token mess age framew ork for th e Identifi cation and | |
| 6023 | "RTN","XUS AML",6,0) | |
| 6024 | ; Access Management (IAM) Sin gle Sign-O n (SSO) se curity mod el. | |
| 6025 | "RTN","XUS AML",7,0) | |
| 6026 | ; | |
| 6027 | "RTN","XUS AML",8,0) | |
| 6028 | Q | |
| 6029 | "RTN","XUS AML",9,0) | |
| 6030 | EN(DOC) ;F unction. M ain entry point | |
| 6031 | "RTN","XUS AML",10,0) | |
| 6032 | ;This fun ction pars es and pro cesses the VA Identi ty and Acc ess Manage ment (IAM) STS SAML token | |
| 6033 | "RTN","XUS AML",11,0) | |
| 6034 | ; (versio n 1.2) and returns t he DUZ of the user, if found. It does no t log the user into VistA. | |
| 6035 | "RTN","XUS AML",12,0) | |
| 6036 | ; Input: DOC = Closed reference to global root cont aining XML document (loaded ST S SAML Tok en) | |
| 6037 | "RTN","XUS AML",13,0) | |
| 6038 | ; Exampl e: S Y=$$E N^XUSAML($ NA(^TMP($J ,1))) | |
| 6039 | "RTN","XUS AML",14,0) | |
| 6040 | ; Return: Fail = "-1^Er ror Messag e" | |
| 6041 | "RTN","XUS AML",15,0) | |
| 6042 | ; Succes s = DUZ | |
| 6043 | "RTN","XUS AML",16,0) | |
| 6044 | ;ZEXCEPT: XOBDATA ; environmen t variable | |
| 6045 | "RTN","XUS AML",17,0) | |
| 6046 | N HDL,XAS SRT,XUPN,Y | |
| 6047 | "RTN","XUS AML",18,0) | |
| 6048 | K ^TMP("X USAML",$J) | |
| 6049 | "RTN","XUS AML",19,0) | |
| 6050 | S Y="-1^E rror parsi ng STS SAM L Token",X UPN="",XAS SRT="" | |
| 6051 | "RTN","XUS AML",20,0) | |
| 6052 | S XOBDATA ("XOB RPC" ,"SECURITY ","STATE") ="notauthe nticated" | |
| 6053 | "RTN","XUS AML",21,0) | |
| 6054 | S XOBDATA ("XOB RPC" ,"SAML","A SSERTION") ="notvalid ated" | |
| 6055 | "RTN","XUS AML",22,0) | |
| 6056 | ;--- Call parser | |
| 6057 | "RTN","XUS AML",23,0) | |
| 6058 | S HDL=$$E N^MXMLDOM( DOC,"W") | |
| 6059 | "RTN","XUS AML",24,0) | |
| 6060 | I HDL>0 D | |
| 6061 | "RTN","XUS AML",25,0) | |
| 6062 | . D ND(HD L,1,1,.XUP N,.XASSRT) ;Traverse and proce ss documen t | |
| 6063 | "RTN","XUS AML",26,0) | |
| 6064 | . S Y="-1 ^Invalid S AML assert ion" | |
| 6065 | "RTN","XUS AML",27,0) | |
| 6066 | . ;Interi m solution , code to be depreca ted and re moved afte r ???? (da te and tim e) | |
| 6067 | "RTN","XUS AML",28,0) | |
| 6068 | . I $$LOW ^XLFSTR($G (^TMP("XUS AML",$J,"N ame","auth nsystem")) )="m4a" D | |
| 6069 | "RTN","XUS AML",29,0) | |
| 6070 | . . S Y=$ $FINDUSER( ) | |
| 6071 | "RTN","XUS AML",30,0) | |
| 6072 | . . I +Y> 0 H $E(DT, 1,3)-316 ; Add "hang time" as this inter face ages to encoura ge migrati on | |
| 6073 | "RTN","XUS AML",31,0) | |
| 6074 | . E D | |
| 6075 | "RTN","XUS AML",32,0) | |
| 6076 | . . ;End of Interim solution, code to b e deprecat ed and rem oved after ???? (dat e and time ) | |
| 6077 | "RTN","XUS AML",33,0) | |
| 6078 | . . D VAL ASSRT(.XAS SRT,DOC) ; Validate S AML assert ion | |
| 6079 | "RTN","XUS AML",34,0) | |
| 6080 | . . I $G( XOBDATA("X OB RPC","S AML","ASSE RTION"))=" validated" D | |
| 6081 | "RTN","XUS AML",35,0) | |
| 6082 | . . . S Y =$$FINDUSE R() | |
| 6083 | "RTN","XUS AML",36,0) | |
| 6084 | . D DELET E^MXMLDOM( HDL) | |
| 6085 | "RTN","XUS AML",37,0) | |
| 6086 | I +Y>0 S XOBDATA("X OB RPC","S ECURITY"," STATE")="a uthenticat ed" | |
| 6087 | "RTN","XUS AML",38,0) | |
| 6088 | K ^TMP("X USAML",$J) | |
| 6089 | "RTN","XUS AML",39,0) | |
| 6090 | Q Y | |
| 6091 | "RTN","XUS AML",40,0) | |
| 6092 | ND(HDL,ND, FS,XUPN,XA SSRT) ;SR. Traverse tree | |
| 6093 | "RTN","XUS AML",41,0) | |
| 6094 | N CH,SIB, TX | |
| 6095 | "RTN","XUS AML",42,0) | |
| 6096 | D SH(HDL, ND,.XUPN,. XASSRT) | |
| 6097 | "RTN","XUS AML",43,0) | |
| 6098 | S CH=0 | |
| 6099 | "RTN","XUS AML",44,0) | |
| 6100 | S CH=$$CH ILD^MXMLDO M(HDL,ND,C H) | |
| 6101 | "RTN","XUS AML",45,0) | |
| 6102 | I CH D ND (HDL,CH,1, .XUPN,.XAS SRT) | |
| 6103 | "RTN","XUS AML",46,0) | |
| 6104 | Q:'FS ;D on't follo w the sibl ings of si blings | |
| 6105 | "RTN","XUS AML",47,0) | |
| 6106 | S SIB=ND | |
| 6107 | "RTN","XUS AML",48,0) | |
| 6108 | F S SIB= $$SIBLING^ MXMLDOM(HD L,SIB) Q:' SIB D ND( HDL,SIB,0, .XUPN,.XAS SRT) | |
| 6109 | "RTN","XUS AML",49,0) | |
| 6110 | Q | |
| 6111 | "RTN","XUS AML",50,0) | |
| 6112 | SH(HDL,ND, XUPN,XASSR T) ;SR. Pr ocess node elements | |
| 6113 | "RTN","XUS AML",51,0) | |
| 6114 | ;ZEXCEPT: XOBDATA ; environmen t variable | |
| 6115 | "RTN","XUS AML",52,0) | |
| 6116 | N ELE,I,N M,V,VV,XCH ILD,XERR,X TEXT,XVALU E | |
| 6117 | "RTN","XUS AML",53,0) | |
| 6118 | S ELE=$$N AME^MXMLDO M(HDL,ND) | |
| 6119 | "RTN","XUS AML",54,0) | |
| 6120 | ; ------- ---------- --- saml: Subject Ev ent Proces sing ---- ---------- ---------- -------- | |
| 6121 | "RTN","XUS AML",55,0) | |
| 6122 | I (ELE="S ubject")!( ELE="saml: Subject")! (ELE="ns2: Subject") D Q ;Sub ject eleme nt is requ ired | |
| 6123 | "RTN","XUS AML",56,0) | |
| 6124 | . S XASSR T("Subject ")="yes" | |
| 6125 | "RTN","XUS AML",57,0) | |
| 6126 | I (ELE="S ubjectConf irmationDa ta")!(ELE= "saml:Subj ectConfirm ationData" )!(ELE="ns 2:SubjectC onfirmatio nData") D Q | |
| 6127 | "RTN","XUS AML",58,0) | |
| 6128 | . D EL(HD L,ND,.NM,. XUPN) | |
| 6129 | "RTN","XUS AML",59,0) | |
| 6130 | . S XASSR T("Subject Confirmati onData@Add ress")=$O( ^TMP("XUSA ML",$J,"Su bjectConfi rmationDat a@Address" ,"")) | |
| 6131 | "RTN","XUS AML",60,0) | |
| 6132 | . S XASSR T("Subject Confirmati onData@Rec ipient")=$ O(^TMP("XU SAML",$J," SubjectCon firmationD ata@Recipi ent","")) | |
| 6133 | "RTN","XUS AML",61,0) | |
| 6134 | ; | |
| 6135 | "RTN","XUS AML",62,0) | |
| 6136 | ; ------- ---------- --- saml: Conditions Event Pro cessing - ---------- ---------- ---- | |
| 6137 | "RTN","XUS AML",63,0) | |
| 6138 | I (ELE="C onditions" )!(ELE="sa ml:Conditi ons")!(ELE ="ns2:Cond itions") D Q | |
| 6139 | "RTN","XUS AML",64,0) | |
| 6140 | . D EL(HD L,ND,.NM,. XUPN) | |
| 6141 | "RTN","XUS AML",65,0) | |
| 6142 | . S XASSR T("NotBefo re")=$O(^T MP("XUSAML ",$J,"NotB efore","") ) | |
| 6143 | "RTN","XUS AML",66,0) | |
| 6144 | . S XASSR T("NotOnOr After")=$O (^TMP("XUS AML",$J,"N otOnOrAfte r","")) | |
| 6145 | "RTN","XUS AML",67,0) | |
| 6146 | ; | |
| 6147 | "RTN","XUS AML",68,0) | |
| 6148 | ; ------- ---------- --- saml: AuthnState ment Event Processin g ------- ---------- -------- | |
| 6149 | "RTN","XUS AML",69,0) | |
| 6150 | I (ELE="A uthnStatem ent")!(ELE ="saml:Aut hnStatemen t")!(ELE=" ns2:AuthnS tatement") D Q | |
| 6151 | "RTN","XUS AML",70,0) | |
| 6152 | . D EL(HD L,ND,.NM,. XUPN) | |
| 6153 | "RTN","XUS AML",71,0) | |
| 6154 | . S XASSR T("AuthnIn stant")=$O (^TMP("XUS AML",$J,"A uthnInstan t","")) | |
| 6155 | "RTN","XUS AML",72,0) | |
| 6156 | I (ELE="A uthnContex tClassRef" )!(ELE="sa ml:AuthnCo ntextClass Ref")!(ELE ="ns2:Auth nContextCl assRef") D Q | |
| 6157 | "RTN","XUS AML",73,0) | |
| 6158 | . S XUPN= "AuthnCont extClassRe f" | |
| 6159 | "RTN","XUS AML",74,0) | |
| 6160 | . D CH(HD L,ND,XUPN) | |
| 6161 | "RTN","XUS AML",75,0) | |
| 6162 | . S XASSR T("AuthnCo ntextClass Ref")=$G(^ TMP("XUSAM L",$J,"Aut hnContextC lassRef")) | |
| 6163 | "RTN","XUS AML",76,0) | |
| 6164 | ; | |
| 6165 | "RTN","XUS AML",77,0) | |
| 6166 | ; ------- ---------- --- saml: Attribute Event Proc essing -- ---------- ------ | |
| 6167 | "RTN","XUS AML",78,0) | |
| 6168 | I (ELE="A ttribute") !(ELE="sam l:Attribut e")!(ELE=" ns2:Attrib ute") D Q | |
| 6169 | "RTN","XUS AML",79,0) | |
| 6170 | . S XCHIL D=$$CHILD^ MXMLDOM(HD L,ND) ;Ide ntify chil d (Attribu teValue) o f node ND | |
| 6171 | "RTN","XUS AML",80,0) | |
| 6172 | . S XTEXT ="" S XERR =$$TEXT^MX MLDOM(HDL, XCHILD,$NA (VV)) ;Get text of A ttributeVa lue | |
| 6173 | "RTN","XUS AML",81,0) | |
| 6174 | . I XERR= 1 F I=1:1 Q:'$D(VV(I )) S XTEX T=XTEXT_VV (I) | |
| 6175 | "RTN","XUS AML",82,0) | |
| 6176 | . S NM="" | |
| 6177 | "RTN","XUS AML",83,0) | |
| 6178 | . F S NM =$$ATTRIB^ MXMLDOM(HD L,ND,NM) Q :'$L(NM) D ;Get na me of Attr ibute | |
| 6179 | "RTN","XUS AML",84,0) | |
| 6180 | . . I $G( NM)="Name" D | |
| 6181 | "RTN","XUS AML",85,0) | |
| 6182 | . . . S X VALUE=$$VA LUE^MXMLDO M(HDL,ND,N M) | |
| 6183 | "RTN","XUS AML",86,0) | |
| 6184 | . . . S ^ TMP("XUSAM L",$J,NM,X VALUE)=XTE XT ;Set up the ^TMP global for the Attri bute | |
| 6185 | "RTN","XUS AML",87,0) | |
| 6186 | Q | |
| 6187 | "RTN","XUS AML",88,0) | |
| 6188 | CH(HDL,ND, XUPN) ;SR. Process t ext node | |
| 6189 | "RTN","XUS AML",89,0) | |
| 6190 | N I,VV,Y | |
| 6191 | "RTN","XUS AML",90,0) | |
| 6192 | I $G(XUPN )'="" D | |
| 6193 | "RTN","XUS AML",91,0) | |
| 6194 | . S Y="" | |
| 6195 | "RTN","XUS AML",92,0) | |
| 6196 | . D TEXT^ MXMLDOM(HD L,ND,$NA(V V)) | |
| 6197 | "RTN","XUS AML",93,0) | |
| 6198 | . I $D(VV )>2 F I=1: 1 Q:'$D(VV (I)) S Y= Y_VV(I) | |
| 6199 | "RTN","XUS AML",94,0) | |
| 6200 | . I $P(XU PN,"^",2)= "" D | |
| 6201 | "RTN","XUS AML",95,0) | |
| 6202 | . . S ^TM P("XUSAML" ,$J,$P(XUP N,"^",1))= Y | |
| 6203 | "RTN","XUS AML",96,0) | |
| 6204 | . E D | |
| 6205 | "RTN","XUS AML",97,0) | |
| 6206 | . . S ^TM P("XUSAML" ,$J,$P(XUP N,"^",1),$ P(XUPN,"^" ,2))=Y | |
| 6207 | "RTN","XUS AML",98,0) | |
| 6208 | Q | |
| 6209 | "RTN","XUS AML",99,0) | |
| 6210 | EL(HDL,ND, NM,XUPN) ; SR. Proces s element | |
| 6211 | "RTN","XUS AML",100,0 ) | |
| 6212 | K XUPN S (NM,XUPN)= "" | |
| 6213 | "RTN","XUS AML",101,0 ) | |
| 6214 | F S NM=$ $ATTRIB^MX MLDOM(HDL, ND,NM) Q:' $L(NM) D | |
| 6215 | "RTN","XUS AML",102,0 ) | |
| 6216 | . I $L(NM ) S XUPN=N M_"^"_$$VA LUE^MXMLDO M(HDL,ND,N M) | |
| 6217 | "RTN","XUS AML",103,0 ) | |
| 6218 | . I $P(XU PN,"^",2)= "" D | |
| 6219 | "RTN","XUS AML",104,0 ) | |
| 6220 | . . S ^TM P("XUSAML" ,$J,$P(XUP N,"^",1))= "" | |
| 6221 | "RTN","XUS AML",105,0 ) | |
| 6222 | . E D | |
| 6223 | "RTN","XUS AML",106,0 ) | |
| 6224 | . . S ^TM P("XUSAML" ,$J,$P(XUP N,"^",1),$ P(XUPN,"^" ,2))="" | |
| 6225 | "RTN","XUS AML",107,0 ) | |
| 6226 | Q | |
| 6227 | "RTN","XUS AML",108,0 ) | |
| 6228 | FINDUSER() ;Function . Identify user | |
| 6229 | "RTN","XUS AML",109,0 ) | |
| 6230 | ;ZEXCEPT: XOBDATA ; environmen t variable | |
| 6231 | "RTN","XUS AML",110,0 ) | |
| 6232 | ;ZEXCEPT: XTMUNIT,X TU ;set fo r unit tes ting | |
| 6233 | "RTN","XUS AML",111,0 ) | |
| 6234 | N VISTAID ,X,XARRY,X AUTH,XUIAM ,XUHOME,Y, Z | |
| 6235 | "RTN","XUS AML",112,0 ) | |
| 6236 | I '$$AUTH ^XUESSO2() Q "-1^Not an author ized calli ng routine " | |
| 6237 | "RTN","XUS AML",113,0 ) | |
| 6238 | S Y="-1^U ser could not be ide ntified" | |
| 6239 | "RTN","XUS AML",114,0 ) | |
| 6240 | S XUIAM=1 ;Do not t rigger IAM updates | |
| 6241 | "RTN","XUS AML",115,0 ) | |
| 6242 | S XARRY(1 )=$$TITLE^ XLFSTR($E( $G(^TMP("X USAML",$J, "Name","ur n:oasis:na mes:tc:xsp a:1.0:subj ect:organi zation")), 1,50)) ;Su bject Orga nization | |
| 6243 | "RTN","XUS AML",116,0 ) | |
| 6244 | S XARRY(2 )=$$LOW^XL FSTR($E($G (^TMP("XUS AML",$J,"N ame","urn: oasis:name s:tc:xspa: 1.0:subjec t:organiza tion-id")) ,1,50)) ;S ubject Org anization ID | |
| 6245 | "RTN","XUS AML",117,0 ) | |
| 6246 | S XARRY(3 )=$G(^TMP( "XUSAML",$ J,"Name"," uniqueUser Id")) ;Uni que User I D | |
| 6247 | "RTN","XUS AML",118,0 ) | |
| 6248 | S XARRY(4 )=$G(^TMP( "XUSAML",$ J,"Name"," urn:oasis: names:tc:x spa:1.0:su bject:subj ect-id")) ;Subject I D | |
| 6249 | "RTN","XUS AML",119,0 ) | |
| 6250 | ;S XARRY( 5)=$G(XASS RT("Subjec tConfirmat ionData@Ad dress")) ; Use to aut horize app lication w ith REMOTE APPLICATI ON file? O r see SSOe below. | |
| 6251 | "RTN","XUS AML",120,0 ) | |
| 6252 | S XARRY(6 )=$G(^TMP( "XUSAML",$ J,"Name"," urn:va:ad: samaccount name")) ;N etwork Use rname | |
| 6253 | "RTN","XUS AML",121,0 ) | |
| 6254 | S XARRY(7 )=$G(^TMP( "XUSAML",$ J,"Name"," urn:va:vrm :iam:secid ")) ;SecID | |
| 6255 | "RTN","XUS AML",122,0 ) | |
| 6256 | S XARRY(8 )=$G(^TMP( "XUSAML",$ J,"Name"," urn:oasis: names:tc:x spa:2.0:su bject:npi" )) ;NPI | |
| 6257 | "RTN","XUS AML",123,0 ) | |
| 6258 | ;S XARRY( 9)=$G(^TMP ("XUSAML", $J,"Name", "SSN")) ;S SN is not part of ST S Token sp ecificatio n v1.2 | |
| 6259 | "RTN","XUS AML",124,0 ) | |
| 6260 | S XARRY(1 0)=$G(^TMP ("XUSAML", $J,"Name", "upn")) ;A ctive Dire ctory User Principle Name (UPN ) | |
| 6261 | "RTN","XUS AML",125,0 ) | |
| 6262 | S XARRY(1 1)=$G(^TMP ("XUSAML", $J,"Name", "email")) ;E-Mail Ad dress | |
| 6263 | "RTN","XUS AML",126,0 ) | |
| 6264 | ;S XARRY( 12)=$G(^TM P("XUSAML" ,$J,"Name" ,"urn:oasi s:names:tc :xacml:2.0 :subject:r ole")) ;Ro le is not part of ST S Token sp ecificatio n v1.2 | |
| 6265 | "RTN","XUS AML",127,0 ) | |
| 6266 | S XAUTH=$ $LOW^XLFST R($G(^TMP( "XUSAML",$ J,"Name"," authnsyste m"))) ;SSO i, SSOe, o r Other au thenticati on | |
| 6267 | "RTN","XUS AML",128,0 ) | |
| 6268 | S XUHOME= $$LOW^XLFS TR($G(^TMP ("XUSAML", $J,"Name", "urn:nhin: names:saml :homeCommu nityId"))) ;Home Com munity ID | |
| 6269 | "RTN","XUS AML",129,0 ) | |
| 6270 | S VISTAID =$G(^TMP(" XUSAML",$J ,"Name","u rn:va:vrm: iam:vistai d")) ;VIST AID | |
| 6271 | "RTN","XUS AML",130,0 ) | |
| 6272 | ;S ???=$G (^TMP("XUS AML",$J,"N ame","urn: va:vrn:iam :mviicn")) ;ICN - ti e PATIENT file (#2) to NEW PER SON file ( #200)? | |
| 6273 | "RTN","XUS AML",131,0 ) | |
| 6274 | ;For SSOi and SSOe, the token should co me from IA M. Validat e using "s aml:Issuer " or somet hing from the certif icate? | |
| 6275 | "RTN","XUS AML",132,0 ) | |
| 6276 | ;<saml:Is suer Forma t="urn:oas is:names:t c:SAML:2.0 :nameid-fo rmat:entit y">https:/ / DNS /Issuer/SA ML2</saml: Issuer> | |
| 6277 | "RTN","XUS AML",133,0 ) | |
| 6278 | I (XUHOME =$P($G(^XT V(8989.3,1 ,200)),U,3 ))&(XAUTH= "ssoi") D ;SSOi | |
| 6279 | "RTN","XUS AML",134,0 ) | |
| 6280 | . S XARRY (3)=XARRY( 7) ;UID=Se cID | |
| 6281 | "RTN","XUS AML",135,0 ) | |
| 6282 | . S Y=$$F INDUSER^XU ESSO2(.XAR RY) ;Ident ify user | |
| 6283 | "RTN","XUS AML",136,0 ) | |
| 6284 | . S DUZ(" AUTHENTICA TION")="SS OI" | |
| 6285 | "RTN","XUS AML",137,0 ) | |
| 6286 | . ;I +Y<0 D | |
| 6287 | "RTN","XUS AML",138,0 ) | |
| 6288 | . ;. ;Fut ure: Add S SOi "VISIT OR" entry if not pro visioned? Require so me sort of Role-base d access o r REMOTE A PPLICATION file entr y? | |
| 6289 | "RTN","XUS AML",139,0 ) | |
| 6290 | E I (XUH OME=$P($G( ^XTV(8989. 3,1,200)), U,3))&(XAU TH="ssoe") D ;SSOe | |
| 6291 | "RTN","XUS AML",140,0 ) | |
| 6292 | . S XARRY (3)=XARRY( 7) ;UID=Se cID | |
| 6293 | "RTN","XUS AML",141,0 ) | |
| 6294 | . S Y=$$F INDUSER^XU ESSO2(.XAR RY) ;Ident ify user | |
| 6295 | "RTN","XUS AML",142,0 ) | |
| 6296 | . S DUZ(" AUTHENTICA TION")="SS OE" | |
| 6297 | "RTN","XUS AML",143,0 ) | |
| 6298 | . I +Y<0 D | |
| 6299 | "RTN","XUS AML",144,0 ) | |
| 6300 | . . I $$G ETCNTXT^XU ESSO2($G(X ARRY(2)))> 0 D | |
| 6301 | "RTN","XUS AML",145,0 ) | |
| 6302 | . . . ;Fo r SSOe the XARRY(1) and XARRY( 2) will be the CSP t hat authen ticated th e user. | |
| 6303 | "RTN","XUS AML",146,0 ) | |
| 6304 | . . . ; T he values will be th e CSP frie ndly name and the ma pped SiteI D as maint ained in M VI. | |
| 6305 | "RTN","XUS AML",147,0 ) | |
| 6306 | . . . ; U se REMOTE APPLICATIO N file (#2 00) where XARRY(1) i s applicat ion and ha shed XARRY (2) is aut horization code | |
| 6307 | "RTN","XUS AML",148,0 ) | |
| 6308 | . . . I X ARRY(1)'=$ P($G(^XTV( 8989.3,1,2 00)),U,2) S Y=$$ADDU SER^XUESSO 2(.XARRY) ;If autho rized appl ication, a dd the SSO e user | |
| 6309 | "RTN","XUS AML",149,0 ) | |
| 6310 | . . . S X =$$SETCNTX T^XUESSO2( Y,$G(XARRY (2))) ;Ad d the cont ext option for SSOe | |
| 6311 | "RTN","XUS AML",150,0 ) | |
| 6312 | E I (XUH OME=$P($G( ^XTV(8989. 3,1,200)), U,3))&(XAU TH="m4a") D ;m4a | |
| 6313 | "RTN","XUS AML",151,0 ) | |
| 6314 | . S Y=$$F INDUSER^XU ESSO2(.XAR RY) ;Ident ify user | |
| 6315 | "RTN","XUS AML",152,0 ) | |
| 6316 | . S DUZ(" AUTHENTICA TION")="M4 A" | |
| 6317 | "RTN","XUS AML",153,0 ) | |
| 6318 | E I (XAR RY(2)["htt p://")!(XA RRY(2)["ht tps://")!( (XARRY(2)[ "urn:oid:" )&(XARRY(2 )'=$P($G(^ XTV(8989.3 ,1,200)),U ,3))) D ; NHIN | |
| 6319 | "RTN","XUS AML",154,0 ) | |
| 6320 | . I $G(XA RRY(3))="" S XARRY(3 )=XARRY(8) ;NHIN: UI D is NPI i f availabl e (preferr ed) | |
| 6321 | "RTN","XUS AML",155,0 ) | |
| 6322 | . I $G(XA RRY(3))="" S XARRY(3 )=XARRY(11 ) ;NHIN: U ID is e-ma il if avai lable (alt ernative t o NPI) | |
| 6323 | "RTN","XUS AML",156,0 ) | |
| 6324 | . S Y=$$F INDUSER^XU ESSO2(.XAR RY) ;Ident ify user b y NPI or U nique User ID | |
| 6325 | "RTN","XUS AML",157,0 ) | |
| 6326 | . I +Y<0 D | |
| 6327 | "RTN","XUS AML",158,0 ) | |
| 6328 | . . S XAR RY(8)="" | |
| 6329 | "RTN","XUS AML",159,0 ) | |
| 6330 | . . S Y=$ $FINDUSER^ XUESSO2(.X ARRY) ;Ide ntify user by Unique User ID o nly | |
| 6331 | "RTN","XUS AML",160,0 ) | |
| 6332 | . S DUZ(" AUTHENTICA TION")="NH IN" | |
| 6333 | "RTN","XUS AML",161,0 ) | |
| 6334 | ;E I VIS TAID'="" D ;If ther e is a VIS TAID attri bute, chec k that a D UZ and STA TION combi nation exi sts for th is user | |
| 6335 | "RTN","XUS AML",162,0 ) | |
| 6336 | ;. ;SAML v1.2 speci fication s hows (but current pa rsing meth ods will o nly return a single attribute value): | |
| 6337 | "RTN","XUS AML",163,0 ) | |
| 6338 | ;. ; <sam l:Attribut e Name="ur n:va:vrm:i am:vistaid "> | |
| 6339 | "RTN","XUS AML",164,0 ) | |
| 6340 | ;. ; <sam l:Attribut eValue>404 -11128439< /saml:Attr ibuteValue > | |
| 6341 | "RTN","XUS AML",165,0 ) | |
| 6342 | ;. ; <sam l:Attribut eValue>322 -22228439< /saml:Attr ibuteValue > | |
| 6343 | "RTN","XUS AML",166,0 ) | |
| 6344 | ;. ; </sa ml:Attribu te> | |
| 6345 | "RTN","XUS AML",167,0 ) | |
| 6346 | ;. ;Examp le from IA M shows: | |
| 6347 | "RTN","XUS AML",168,0 ) | |
| 6348 | ;. ; <sam l:Attribut e Name="ur n:va:vrm:i am:vistaid " NameForm at="urn:oa sis:names: tc:SAML:2. 0:attrname -format:un specified" > | |
| 6349 | "RTN","XUS AML",169,0 ) | |
| 6350 | ;. ; <sam l:Attribut eValue>200 M|33328439 ^PN^200M^U SVHA|A,508 |22228439^ PN^508^USV HA|A,590|1 1128439^PN ^590^USVHA |A</saml:A ttributeVa lue> | |
| 6351 | "RTN","XUS AML",170,0 ) | |
| 6352 | ;. ; </sa ml:Attribu te> | |
| 6353 | "RTN","XUS AML",171,0 ) | |
| 6354 | ;. ;***** If VISTAI D match, s et SECID f or user ID 'd by DUZ and run $$ FINDUSER a gain to up date user attributes and authe nticate? S elf-provis ioning! | |
| 6355 | "RTN","XUS AML",172,0 ) | |
| 6356 | ;. S VID= "" | |
| 6357 | "RTN","XUS AML",173,0 ) | |
| 6358 | ;. F J=1: 1 D Q:VID ="" | |
| 6359 | "RTN","XUS AML",174,0 ) | |
| 6360 | ;. . S VI D=$P(VISTA ID,",",J) | |
| 6361 | "RTN","XUS AML",175,0 ) | |
| 6362 | ;. . W !, VID,! ;VID should be "200M|333 28439^PN^2 00M^USVHA| A" where 2 00M is STA TION and 3 3328439 is DUZ | |
| 6363 | "RTN","XUS AML",176,0 ) | |
| 6364 | ;. ;***** Developme nt of iden tification by VISTAI D abandone d in XU*8* 659 due to discrepan cies betwe en standar d and IAM example, p lus lack o f good tes t data | |
| 6365 | "RTN","XUS AML",177,0 ) | |
| 6366 | Q Y | |
| 6367 | "RTN","XUS AML",178,0 ) | |
| 6368 | VALASSRT(X ASSRT,DOC) ;Intrinsi c Subrouti ne. Valida te SAML as sertion | |
| 6369 | "RTN","XUS AML",179,0 ) | |
| 6370 | ;ZEXCEPT: XOBDATA ; environmen t variable | |
| 6371 | "RTN","XUS AML",180,0 ) | |
| 6372 | N XD,XNOW | |
| 6373 | "RTN","XUS AML",181,0 ) | |
| 6374 | S XOBDATA ("XOB RPC" ,"SAML","A UTHENTICAT ION TYPE") =$G(^TMP(" XUSAML",$J ,"Name","a uthenticat iontype")) | |
| 6375 | "RTN","XUS AML",182,0 ) | |
| 6376 | S XOBDATA ("XOB RPC" ,"SAML","P ROOFING AU THORITY")= $G(^TMP("X USAML",$J, "Name","pr oofingauth ority")) | |
| 6377 | "RTN","XUS AML",183,0 ) | |
| 6378 | ;Validate timestamp s (e.g., N otBefore, NotOnOrAft er) | |
| 6379 | "RTN","XUS AML",184,0 ) | |
| 6380 | S XNOW=$$ NOW^XLFDT | |
| 6381 | "RTN","XUS AML",185,0 ) | |
| 6382 | S XD=$$CO NVTIME($G( XASSRT("Au thnInstant "))) I XD= -1 Q ;inv alid times tamp | |
| 6383 | "RTN","XUS AML",186,0 ) | |
| 6384 | S XD=$$CO NVTIME($G( XASSRT("No tBefore")) ) I (XD=-1 )!(XD>XNOW ) Q ;toke n not vali d yet | |
| 6385 | "RTN","XUS AML",187,0 ) | |
| 6386 | S XD=$$CO NVTIME($G( XASSRT("No tOnOrAfter "))) I (XD =-1)!(XD'> XNOW) Q ; token expi red | |
| 6387 | "RTN","XUS AML",188,0 ) | |
| 6388 | ;Validate endpoints (Optional based on scenario) | |
| 6389 | "RTN","XUS AML",189,0 ) | |
| 6390 | I '$D(XAS SRT("Subje ct")) Q ; very basic check for "Subject" tag | |
| 6391 | "RTN","XUS AML",190,0 ) | |
| 6392 | ; - TBD | |
| 6393 | "RTN","XUS AML",191,0 ) | |
| 6394 | ; a) Val idate Subj ect::Subje ctConfirma tion::Subj ectConfirm ationData@ Address | |
| 6395 | "RTN","XUS AML",192,0 ) | |
| 6396 | ; mat ches the r equestor ( e.g., comm on name in this attr ibute matc hes that | |
| 6397 | "RTN","XUS AML",193,0 ) | |
| 6398 | ; fro m the cert ificate wh ich secure d the sess ion). Note : This Sub ject will | |
| 6399 | "RTN","XUS AML",194,0 ) | |
| 6400 | ; be the system that requ ested the token - it may or ma y not be t he System | |
| 6401 | "RTN","XUS AML",195,0 ) | |
| 6402 | ; han ding the t oken to Vi stA. | |
| 6403 | "RTN","XUS AML",196,0 ) | |
| 6404 | ; As of patch 6 59, IAM SA ML tokens are missin g this inf ormation | |
| 6405 | "RTN","XUS AML",197,0 ) | |
| 6406 | ; b) Val idate Serv ice Endpoi nt using | |
| 6407 | "RTN","XUS AML",198,0 ) | |
| 6408 | ; Sub ject::Subj ectConfirm ation::Sub jectConfir mationData @Recipient | |
| 6409 | "RTN","XUS AML",199,0 ) | |
| 6410 | ; VistA shal l accept a n endpoint of " DNS " | |
| 6411 | "RTN","XUS AML",200,0 ) | |
| 6412 | ; As of patch 6 59, IAM SA ML tokens have this informatio n in the w rong place : | |
| 6413 | "RTN","XUS AML",201,0 ) | |
| 6414 | ; <sa ml:Subject Confirmati onData Rec ipient="ht tp://SSOi/ AppliesTo/ SAML2"/> | |
| 6415 | "RTN","XUS AML",202,0 ) | |
| 6416 | ; <saml:Audi enceRestri ction><sam l:Audience >https://* . DNS /*</saml:A udience></ saml:Audie nceRestric tion> | |
| 6417 | "RTN","XUS AML",203,0 ) | |
| 6418 | I '$D(XAS SRT("Authn ContextCla ssRef")) Q | |
| 6419 | "RTN","XUS AML",204,0 ) | |
| 6420 | ; - TBD | |
| 6421 | "RTN","XUS AML",205,0 ) | |
| 6422 | ; Verify Level of A ssurance ( VA require s LOA-1 th rough LOA- 3, but LOA -4 is curr ently the best) | |
| 6423 | "RTN","XUS AML",206,0 ) | |
| 6424 | K XOBDATA ("XOB RPC" ,"SAML","A SSURANCE L EVEL") | |
| 6425 | "RTN","XUS AML",207,0 ) | |
| 6426 | S XD=$G(^ TMP("XUSAM L",$J,"Nam e","assura ncelevel") ) I (+XD<1 )!(+XD="") S XD=1 | |
| 6427 | "RTN","XUS AML",208,0 ) | |
| 6428 | S XOBDATA ("XOB RPC" ,"SAML","A SSURANCE L EVEL")=XD | |
| 6429 | "RTN","XUS AML",209,0 ) | |
| 6430 | S DUZ("LO A")=XD ;Se t LOA envi ronment va riable for SIGN-ON l og and per missions | |
| 6431 | "RTN","XUS AML",210,0 ) | |
| 6432 | ;Validate Digital S ignature | |
| 6433 | "RTN","XUS AML",211,0 ) | |
| 6434 | I '$$VALI DATE^XUCER T(DOC) Q | |
| 6435 | "RTN","XUS AML",212,0 ) | |
| 6436 | ;Validate Token Iss uer (Subje ct of X509 Certifica te used to sign toke n) | |
| 6437 | "RTN","XUS AML",213,0 ) | |
| 6438 | I '($G(XO BDATA("XOB RPC","SAM L","ISSUER "))[$P($G( ^XTV(8989. 3,1,200)), U,1)) Q | |
| 6439 | "RTN","XUS AML",214,0 ) | |
| 6440 | ;Token ha s been val idated | |
| 6441 | "RTN","XUS AML",215,0 ) | |
| 6442 | S XOBDATA ("XOB RPC" ,"SAML","A SSERTION") ="validate d" | |
| 6443 | "RTN","XUS AML",216,0 ) | |
| 6444 | Q | |
| 6445 | "RTN","XUS AML",217,0 ) | |
| 6446 | CONVTIME(T IME) ;Intr insic Func tion. Conv ert XML ti me to File Man format | |
| 6447 | "RTN","XUS AML",218,0 ) | |
| 6448 | ;ZEXCEPT: %DT ;envi ronment va riable | |
| 6449 | "RTN","XUS AML",219,0 ) | |
| 6450 | N X,XD,XO UT,XT,XZ,Y | |
| 6451 | "RTN","XUS AML",220,0 ) | |
| 6452 | S XZ=0 I $G(TIME)[" Z" S XZ=1 ;Zulu time (GMT) | |
| 6453 | "RTN","XUS AML",221,0 ) | |
| 6454 | S XD=$P($ G(TIME),"T ",1) ;Date | |
| 6455 | "RTN","XUS AML",222,0 ) | |
| 6456 | S XD=$P(X D,"-",2)_" /"_$P(XD," -",3)_"/"_ $P(XD,"-", 1) ;Conver t date to MM/DD/YYYY | |
| 6457 | "RTN","XUS AML",223,0 ) | |
| 6458 | S XT=$P($ G(TIME),"T ",2) ;Time | |
| 6459 | "RTN","XUS AML",224,0 ) | |
| 6460 | I XZ=1 S XT=$P(XT," Z",1) ;Str ip "Z" fro m time | |
| 6461 | "RTN","XUS AML",225,0 ) | |
| 6462 | S X=XD_"@ "_XT S %DT ="RTS" | |
| 6463 | "RTN","XUS AML",226,0 ) | |
| 6464 | D ^%DT S XOUT=Y | |
| 6465 | "RTN","XUS AML",227,0 ) | |
| 6466 | I XZ=1 S XOUT=$$FMA DD^XLFDT(X OUT,0,+$E( $$TZ^XLFDT ,1,3),0,0) ;Adjust f rom GMT | |
| 6467 | "RTN","XUS AML",228,0 ) | |
| 6468 | K %DT(0) | |
| 6469 | "RTN","XUS AML",229,0 ) | |
| 6470 | Q XOUT | |
| 6471 | "RTN","XUS BSE1") | |
| 6472 | 0^9^B15898 4065^B1171 44392 | |
| 6473 | "RTN","XUS BSE1",1,0) | |
| 6474 | XUSBSE1 ;I SF/JLI,ISD /HGW - MOD IFICATIONS FOR BSE ; 01/06/16 16:37 | |
| 6475 | "RTN","XUS BSE1",2,0) | |
| 6476 | ;;8.0;KER NEL;**404, 439,523,59 5,522,638, 659**;Jul 10, 1995;B uild 22 | |
| 6477 | "RTN","XUS BSE1",3,0) | |
| 6478 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 6479 | "RTN","XUS BSE1",4,0) | |
| 6480 | ; | |
| 6481 | "RTN","XUS BSE1",5,0) | |
| 6482 | Q | |
| 6483 | "RTN","XUS BSE1",6,0) | |
| 6484 | SETVISIT(R ES) ; RPC. XUS SET V ISITOR - I A #5501 | |
| 6485 | "RTN","XUS BSE1",7,0) | |
| 6486 | ;Returns a BSE TOKE N | |
| 6487 | "RTN","XUS BSE1",8,0) | |
| 6488 | N TOKEN,O ,X | |
| 6489 | "RTN","XUS BSE1",9,0) | |
| 6490 | S X=$$ACT IVE^XUSER( DUZ) I $P( X,U)<1 S R ES=X Q ;U ser must b e active | |
| 6491 | "RTN","XUS BSE1",10,0 ) | |
| 6492 | S TOKEN=$ $HANDLE^XU SRB4("XUSB SE",1) | |
| 6493 | "RTN","XUS BSE1",11,0 ) | |
| 6494 | I TOKEN=" NOT AUTHEN TICATED" S RES=TOKEN Q ;User must be au thenticate d | |
| 6495 | "RTN","XUS BSE1",12,0 ) | |
| 6496 | S ^XTMP(T OKEN,1)=$$ ENCRYP^XUS RB1($$GET^ XUESSO1(DU Z)) | |
| 6497 | "RTN","XUS BSE1",13,0 ) | |
| 6498 | S ^XTMP(T OKEN,3)=+$ H ;Set exp iration da y | |
| 6499 | "RTN","XUS BSE1",14,0 ) | |
| 6500 | L -^XTMP( TOKEN) ;Lo ck set in $$HANDLE^X USRB4 | |
| 6501 | "RTN","XUS BSE1",15,0 ) | |
| 6502 | S RES=TOK EN | |
| 6503 | "RTN","XUS BSE1",16,0 ) | |
| 6504 | Q | |
| 6505 | "RTN","XUS BSE1",17,0 ) | |
| 6506 | ; | |
| 6507 | "RTN","XUS BSE1",18,0 ) | |
| 6508 | GETVISIT(R ES,TOKEN) ; RPC. XUS GET VISIT OR - IA #5 532 | |
| 6509 | "RTN","XUS BSE1",19,0 ) | |
| 6510 | ;Returns demographi cs for use r indicate d by TOKEN | |
| 6511 | "RTN","XUS BSE1",20,0 ) | |
| 6512 | ; or "-1 ^error mes sage" if u ser is not permitted to visit | |
| 6513 | "RTN","XUS BSE1",21,0 ) | |
| 6514 | ; input - TOKEN - token va lue return ed by remo te site | |
| 6515 | "RTN","XUS BSE1",22,0 ) | |
| 6516 | ; outpu t - RES - passed by reference, contains user demog raphics on return | |
| 6517 | "RTN","XUS BSE1",23,0 ) | |
| 6518 | N O,X | |
| 6519 | "RTN","XUS BSE1",24,0 ) | |
| 6520 | S RES="", O=0 | |
| 6521 | "RTN","XUS BSE1",25,0 ) | |
| 6522 | I TOKEN=" " S X=$$LO GERR("BSE NULL TOKEN ") Q ;Sho uldn't com e in with a null tok en | |
| 6523 | "RTN","XUS BSE1",26,0 ) | |
| 6524 | L +^XTMP( TOKEN):10 I '$T Q ; If ^XTMP is purged, token con text will be lost | |
| 6525 | "RTN","XUS BSE1",27,0 ) | |
| 6526 | I ($G(^XT MP(TOKEN,3 ))-$H) K ^ XTMP(TOKEN ) Q ;Chec k expirati on time, a nd if it h as passed | |
| 6527 | "RTN","XUS BSE1",28,0 ) | |
| 6528 | S RES=$G( ^XTMP(TOKE N,1)) S:$L (RES) RES= $$DECRYP^X USRB1(RES) | |
| 6529 | "RTN","XUS BSE1",29,0 ) | |
| 6530 | L -^XTMP( TOKEN) ;Lo ck set in $$HANDLE^X USRB4 | |
| 6531 | "RTN","XUS BSE1",30,0 ) | |
| 6532 | S:'$L(RES ) X=$$LOGE RR("BSE GE T USER ID" ) ;p595 | |
| 6533 | "RTN","XUS BSE1",31,0 ) | |
| 6534 | Q | |
| 6535 | "RTN","XUS BSE1",32,0 ) | |
| 6536 | ; | |
| 6537 | "RTN","XUS BSE1",33,0 ) | |
| 6538 | OLDCAPRI(X WBUSRNM) ; Intrinsic . Old CAPR I code, cu rrently us ed by MDWS : Disable with syste m paramete r XU522. | |
| 6539 | "RTN","XUS BSE1",34,0 ) | |
| 6540 | ; Return 1 if a val id user, e lse 0. | |
| 6541 | "RTN","XUS BSE1",35,0 ) | |
| 6542 | ;******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** | |
| 6543 | "RTN","XUS BSE1",36,0 ) | |
| 6544 | ;***** Th is interfa ce is depr ecated as of patch X U*8.0*522 and will b e permanen tly disabl ed with pa tch XU*8.0 *617 ***** | |
| 6545 | "RTN","XUS BSE1",37,0 ) | |
| 6546 | ;******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** | |
| 6547 | "RTN","XUS BSE1",38,0 ) | |
| 6548 | ; ZEXCEPT : DTIME - Kernel exe mption | |
| 6549 | "RTN","XUS BSE1",39,0 ) | |
| 6550 | N XVAL,XO PTION,XVAL 522 | |
| 6551 | "RTN","XUS BSE1",40,0 ) | |
| 6552 | S XVAL522 =$$GET^XPA R("SYS","X U522",1,"Q ") ; p522 system pa rameter XU 522 contro ls CAPRI l ogin disab ling, logg ing | |
| 6553 | "RTN","XUS BSE1",41,0 ) | |
| 6554 | D:(XVAL52 2="E"!(XVA L522="L")) APPERROR^ %ZTER("OLD CAPRI LOGI N ATTEMPT" ) ; p522 record CAP RI login a ttempt if XU522 = E or L | |
| 6555 | "RTN","XUS BSE1",42,0 ) | |
| 6556 | Q:(XVAL52 2'="L")&(X VAL522'="N ") 0 ; p5 22 fully a ctivate BS E unless p aram XU522 = N or L | |
| 6557 | "RTN","XUS BSE1",43,0 ) | |
| 6558 | S DUZ("LO A")=1,DUZ( "AUTHENTIC ATION")="N ONE",DUZ(" REMAPP")=" ^MDWS" | |
| 6559 | "RTN","XUS BSE1",44,0 ) | |
| 6560 | S XVAL=$$ PUT^XUESSO 1($P(XWBUS RNM,U,3,99 )) ; Sign in as Visi tor | |
| 6561 | "RTN","XUS BSE1",45,0 ) | |
| 6562 | I XVAL D | |
| 6563 | "RTN","XUS BSE1",46,0 ) | |
| 6564 | . S XOPTI ON=$$FIND1 ^DIC(19,"" ,"X","DVBA CAPRI G UI") | |
| 6565 | "RTN","XUS BSE1",47,0 ) | |
| 6566 | . D SETCN TXT(XOPTIO N) S DTIME =$$DTIME^X UP(DUZ),DU Z(0)="" | |
| 6567 | "RTN","XUS BSE1",48,0 ) | |
| 6568 | . N XUAPI EN,XUUCYES ,XURPIEN | |
| 6569 | "RTN","XUS BSE1",49,0 ) | |
| 6570 | . S XUAPI EN=$O(^VA( 201,"B","A PPLICATION PROXY",0) ) Q:XUAPIE N'>0 ; Ge t IEN of " APPLICATON PROXY" Us er Class | |
| 6571 | "RTN","XUS BSE1",50,0 ) | |
| 6572 | . S XUUCY ES=$O(^VA( 200,DUZ,"U SC3","B",X UAPIEN,0)) Q:XUUCYES '>0 ; Ch eck if DUZ is APPLIC ATION PROX Y | |
| 6573 | "RTN","XUS BSE1",51,0 ) | |
| 6574 | . ;I XUUC YES=XUAPIE N S XVAL=0 ; Applic ation Prox y use of t his interf ace is not permitted | |
| 6575 | "RTN","XUS BSE1",52,0 ) | |
| 6576 | Q $S(XVAL >0:1,1:0) | |
| 6577 | "RTN","XUS BSE1",53,0 ) | |
| 6578 | ; | |
| 6579 | "RTN","XUS BSE1",54,0 ) | |
| 6580 | CHKUSER(IN PUTSTR) ; Extrinsic. Determine s if a BSE sign-on i s valid - called fro m XUSRB | |
| 6581 | "RTN","XUS BSE1",55,0 ) | |
| 6582 | ; INPUT STR - inpu t - String of charac ters from client | |
| 6583 | "RTN","XUS BSE1",56,0 ) | |
| 6584 | ; retur n value - 1 if a val id user an d applicat ion, else 0 | |
| 6585 | "RTN","XUS BSE1",57,0 ) | |
| 6586 | ; ZEXCEPT : DTIME - Kernel exe mption | |
| 6587 | "RTN","XUS BSE1",58,0 ) | |
| 6588 | N X,XUCOD E,XUENTRY, XUSTR,XUTO KEN | |
| 6589 | "RTN","XUS BSE1",59,0 ) | |
| 6590 | I +INPUTS TR=-31,INP UTSTR["DVB A_" Q $$OL DCAPRI(INP UTSTR) | |
| 6591 | "RTN","XUS BSE1",60,0 ) | |
| 6592 | I +INPUTS TR'=-35 S X=$$LOGERR ("BSE LOGI N ERROR") Q 0 ; not a BSE log in | |
| 6593 | "RTN","XUS BSE1",61,0 ) | |
| 6594 | S INPUTST R=$P(INPUT STR,U,2,99 ) | |
| 6595 | "RTN","XUS BSE1",62,0 ) | |
| 6596 | K ^TMP("X USBSE1",$J ) | |
| 6597 | "RTN","XUS BSE1",63,0 ) | |
| 6598 | S XUCODE= $$DECRYP^X USRB1(INPU TSTR) | |
| 6599 | "RTN","XUS BSE1",64,0 ) | |
| 6600 | S XUENTRY =$$GETCNTX T^XUESSO2( $P(XUCODE, U)) | |
| 6601 | "RTN","XUS BSE1",65,0 ) | |
| 6602 | I XUENTRY '>0 S X=$$ LOGERR("BS E LOGIN ER ROR - REMA PP") Q 0 ; invalid remote app lication | |
| 6603 | "RTN","XUS BSE1",66,0 ) | |
| 6604 | S DUZ("LO A")=2,DUZ( "AUTHENTIC ATION")="B SETOKEN" | |
| 6605 | "RTN","XUS BSE1",67,0 ) | |
| 6606 | S DUZ("RE MAPP")=XUE NTRY_U_$$G ET1^DIQ(89 94.5,XUENT RY_",",.01 ) | |
| 6607 | "RTN","XUS BSE1",68,0 ) | |
| 6608 | S XUTOKEN =$P(XUCODE ,U,2) | |
| 6609 | "RTN","XUS BSE1",69,0 ) | |
| 6610 | S XUSTR=$ P(XUCODE,U ,3,4) | |
| 6611 | "RTN","XUS BSE1",70,0 ) | |
| 6612 | S XUENTRY =$$BSEUSER (XUENTRY,X UTOKEN,XUS TR) | |
| 6613 | "RTN","XUS BSE1",71,0 ) | |
| 6614 | S DTIME=$ $DTIME^XUP (DUZ) | |
| 6615 | "RTN","XUS BSE1",72,0 ) | |
| 6616 | I XUENTRY '>0 S X=$$ LOGERR("BS E LOGIN ER ROR - USER ") Q 0 ; invalid us er | |
| 6617 | "RTN","XUS BSE1",73,0 ) | |
| 6618 | Q XUENTRY | |
| 6619 | "RTN","XUS BSE1",74,0 ) | |
| 6620 | ; | |
| 6621 | "RTN","XUS BSE1",75,0 ) | |
| 6622 | BSEUSER(EN TRY,TOKEN, STR) ; Int rinsic. Re turns inte rnal entry number fo r authenti cated user | |
| 6623 | "RTN","XUS BSE1",76,0 ) | |
| 6624 | ; ENTRY - input - internal entry numb er in REMO TE APPLICA TION file | |
| 6625 | "RTN","XUS BSE1",77,0 ) | |
| 6626 | ; TOKEN - input - token fro m authenti cating sit e | |
| 6627 | "RTN","XUS BSE1",78,0 ) | |
| 6628 | ; STR - input - remainder of input string (st ation #^TC P/IP port for statio n-based au thenticati on) | |
| 6629 | "RTN","XUS BSE1",79,0 ) | |
| 6630 | ; retur ns - IEN f or authent icated use r, or 0 if not authe nticated | |
| 6631 | "RTN","XUS BSE1",80,0 ) | |
| 6632 | ; ZEXCEPT : XWBSEC - Kernel ex emption, c ontains er ror messag e returned to GUI ap plication | |
| 6633 | "RTN","XUS BSE1",81,0 ) | |
| 6634 | N X,XUIEN ,XUCONTXT, XUDEMOG,XC NT,XVAL,AR RAY,XUCACH E,XUCONTXT | |
| 6635 | "RTN","XUS BSE1",82,0 ) | |
| 6636 | S XUIEN=0 ,XUDEMOG=" ",XUCONTXT =0 | |
| 6637 | "RTN","XUS BSE1",83,0 ) | |
| 6638 | ; Check f or cached user authe ntication (p638) | |
| 6639 | "RTN","XUS BSE1",84,0 ) | |
| 6640 | I $D(^XTM P("XUSBSE1 ",TOKEN)) D | |
| 6641 | "RTN","XUS BSE1",85,0 ) | |
| 6642 | . S XUCAC HE=$G(^XTM P("XUSBSE1 ",TOKEN)) ; Retrieve cached va lues | |
| 6643 | "RTN","XUS BSE1",86,0 ) | |
| 6644 | . I $P($P (XUCACHE,U ,1),".",1) <$$DT^XLFD T() K ^XTM P("XUSBSE1 ",TOKEN) Q ; Do not use if ex pired (not from toda y) | |
| 6645 | "RTN","XUS BSE1",87,0 ) | |
| 6646 | . I $P(XU CACHE,U,1) =$$HADD^XL FDT($$NOW^ XLFDT(),0, 0,0,600) K ^XTMP("XU SBSE1",TOK EN) Q ; D o not use if expired (older th an 600s) | |
| 6647 | "RTN","XUS BSE1",88,0 ) | |
| 6648 | . S XUDEM OG=$P(XUCA CHE,U,3,99 ) ; Get de mographics of authen ticated us er | |
| 6649 | "RTN","XUS BSE1",89,0 ) | |
| 6650 | . I '$$PU T^XUESSO1( XUDEMOG) Q ; Set VI SITOR entr y, quit if failed | |
| 6651 | "RTN","XUS BSE1",90,0 ) | |
| 6652 | . S XUIEN =$G(DUZ) | |
| 6653 | "RTN","XUS BSE1",91,0 ) | |
| 6654 | . S XUCON TXT=$P(XUC ACHE,U,2), ^XUTL("XQ" ,$J,"DUZ(B SE)")=XUCO NTXT ; Set Context O ption | |
| 6655 | "RTN","XUS BSE1",92,0 ) | |
| 6656 | . S:(XUIE N>0) ^XTMP ("XUSBSE1" ,TOKEN)=$$ NOW^XLFDT( )_"^"_$G(X UCONTXT)_" ^"_XUDEMOG ; Reset c ache to ke ep authent ication al ive | |
| 6657 | "RTN","XUS BSE1",93,0 ) | |
| 6658 | I (XUIEN> 0)&(XUCONT XT>0) Q XU IEN ; p63 8 Use cach ed authent ication | |
| 6659 | "RTN","XUS BSE1",94,0 ) | |
| 6660 | ; | |
| 6661 | "RTN","XUS BSE1",95,0 ) | |
| 6662 | S XCNT=0 F S XCNT= $O(^XWB(89 94.5,ENTRY ,1,XCNT)) Q:XCNT'>0 S XVAL=^( XCNT,0) D Q:XUDEMOG '="" | |
| 6663 | "RTN","XUS BSE1",96,0 ) | |
| 6664 | . ; CODE TO HANDLE CONNECTION TYPE AND CONNECTION S | |
| 6665 | "RTN","XUS BSE1",97,0 ) | |
| 6666 | . I $P(XV AL,U)="M" S XUDEMOG= $$M2M($P(X VAL,U,3),$ P(XVAL,U,2 ),TOKEN) D CLOSE^XWB M2MC() Q ; M2M-Brok er authent ication | |
| 6667 | "RTN","XUS BSE1",98,0 ) | |
| 6668 | . I $P(XV AL,U)="R" S XUDEMOG= $$XWB($P(X VAL,U,3),$ P(XVAL,U,2 ),TOKEN) Q ; RPC-Br oker authe ntication | |
| 6669 | "RTN","XUS BSE1",99,0 ) | |
| 6670 | . I $P(XV AL,U)="H" S XUDEMOG= $$POST1^XU SBSE2(.ARR AY,$P(XVAL ,U,3),$P(X VAL,U,2),$ P(XVAL,U,4 ),"xVAL="_ TOKEN) Q ; HTTP aut henticatio n | |
| 6671 | "RTN","XUS BSE1",100, 0) | |
| 6672 | . I $P(XV AL,U)="S" S XUDEMOG= $$HOME(TOK EN,XVAL,ST R) Q ; St ation-numb er authent ication | |
| 6673 | "RTN","XUS BSE1",101, 0) | |
| 6674 | . Q | |
| 6675 | "RTN","XUS BSE1",102, 0) | |
| 6676 | ; if inva lid set XW BSEC so an error is reported i n the GUI applicatio n | |
| 6677 | "RTN","XUS BSE1",103, 0) | |
| 6678 | I +XUDEMO G=-1 S XWB SEC="BSE E RROR - "_$ P(XUDEMOG, "^",2) | |
| 6679 | "RTN","XUS BSE1",104, 0) | |
| 6680 | I $L(XUDE MOG,"^")>2 D | |
| 6681 | "RTN","XUS BSE1",105, 0) | |
| 6682 | . S XUCON TXT=$P($G( ^XWB(8994. 5,ENTRY,0) ),U,2) | |
| 6683 | "RTN","XUS BSE1",106, 0) | |
| 6684 | . S XUIEN =$$SETUP(X UDEMOG,XUC ONTXT) | |
| 6685 | "RTN","XUS BSE1",107, 0) | |
| 6686 | S:(XUIEN' >0) X=$$LO GERR("BSE LOGIN ERRO R") ;p595 | |
| 6687 | "RTN","XUS BSE1",108, 0) | |
| 6688 | S:(XUIEN> 0) ^XTMP(" XUSBSE1",T OKEN)=$$NO W^XLFDT()_ "^"_$G(XUC ONTXT)_"^" _XUDEMOG ; p638 Cach e user aut henticatio n | |
| 6689 | "RTN","XUS BSE1",109, 0) | |
| 6690 | Q $S(XUIE N'>0:0,1:X UIEN) | |
| 6691 | "RTN","XUS BSE1",110, 0) | |
| 6692 | ; | |
| 6693 | "RTN","XUS BSE1",111, 0) | |
| 6694 | XWB(SERVER ,PORT,TOKE N) ; Speci al Broker service | |
| 6695 | "RTN","XUS BSE1",112, 0) | |
| 6696 | N DEMOSTR ,IO,XWBTDE V,XWBRBUF | |
| 6697 | "RTN","XUS BSE1",113, 0) | |
| 6698 | Q $$CALLB SE^XWBTCPM 2(SERVER,P ORT,TOKEN) | |
| 6699 | "RTN","XUS BSE1",114, 0) | |
| 6700 | ; | |
| 6701 | "RTN","XUS BSE1",115, 0) | |
| 6702 | M2M(SERVER ,PORT,TOKE N) ; M2M B roker | |
| 6703 | "RTN","XUS BSE1",116, 0) | |
| 6704 | N DEMOGST R,XWBCRLFL ,RETRNVAL, XUSBSARR | |
| 6705 | "RTN","XUS BSE1",117, 0) | |
| 6706 | S DEMOGST R="" | |
| 6707 | "RTN","XUS BSE1",118, 0) | |
| 6708 | N XWBSTAT ,XWBPARMS, XWBTDEV,XW BNULL | |
| 6709 | "RTN","XUS BSE1",119, 0) | |
| 6710 | S XWBPARM S("ADDRESS ")=SERVER, XWBPARMS(" PORT")=POR T | |
| 6711 | "RTN","XUS BSE1",120, 0) | |
| 6712 | S XWBPARM S("RETRIES ")=3 ;Retr ies 3 time s to open | |
| 6713 | "RTN","XUS BSE1",121, 0) | |
| 6714 | ; | |
| 6715 | "RTN","XUS BSE1",122, 0) | |
| 6716 | I '$$OPEN ^XWBRL(.XW BPARMS) Q "NO OPEN" | |
| 6717 | "RTN","XUS BSE1",123, 0) | |
| 6718 | S XWBPARM S("URI")=" XUS GET VI SITOR" | |
| 6719 | "RTN","XUS BSE1",124, 0) | |
| 6720 | D CLEARP^ XWBM2MEZ | |
| 6721 | "RTN","XUS BSE1",125, 0) | |
| 6722 | D SETPARA M^XWBM2MEZ (1,"STRING ",TOKEN) | |
| 6723 | "RTN","XUS BSE1",126, 0) | |
| 6724 | S XWBPARM S("URI")=" XUS GET VI SITOR" | |
| 6725 | "RTN","XUS BSE1",127, 0) | |
| 6726 | S XWBPARM S("RESULTS ")=$NA(^TM P("XUSBSE1 ",$J)) | |
| 6727 | "RTN","XUS BSE1",128, 0) | |
| 6728 | S XWBCRLF L=0 | |
| 6729 | "RTN","XUS BSE1",129, 0) | |
| 6730 | D REQUEST ^XWBRPCC(. XWBPARMS) | |
| 6731 | "RTN","XUS BSE1",130, 0) | |
| 6732 | I XWBCRLF L S RETRNV AL="XWBCRL FL IS TRUE " G M2MEXI T | |
| 6733 | "RTN","XUS BSE1",131, 0) | |
| 6734 | ; | |
| 6735 | "RTN","XUS BSE1",132, 0) | |
| 6736 | I '$$EXEC UTE^XWBVLC (.XWBPARMS ) S RETRNV AL="FAILUR E ON EXECU TE" G M2ME XIT ;Run R PC and pla ce raw XML results i n ^TMP("XW BM2MVLC" | |
| 6737 | "RTN","XUS BSE1",133, 0) | |
| 6738 | D PARSE^X WBRPC(.XWB PARMS,"XUS BSARR") ;P arse out r aw XML and place res ults in ^T MP("XWBM2M RPC" | |
| 6739 | "RTN","XUS BSE1",134, 0) | |
| 6740 | S RETRNVA L=$G(XUSBS ARR(1)) | |
| 6741 | "RTN","XUS BSE1",135, 0) | |
| 6742 | M2MEXIT ; | |
| 6743 | "RTN","XUS BSE1",136, 0) | |
| 6744 | D CLOSE^X WBM2MEZ | |
| 6745 | "RTN","XUS BSE1",137, 0) | |
| 6746 | Q RETRNVA L | |
| 6747 | "RTN","XUS BSE1",138, 0) | |
| 6748 | ; | |
| 6749 | "RTN","XUS BSE1",139, 0) | |
| 6750 | HOME(TOKEN ,RAD,BSE) ; Call hom e station for token. | |
| 6751 | "RTN","XUS BSE1",140, 0) | |
| 6752 | ; input TOKEN - token to i dentify us er to auth enticating server | |
| 6753 | "RTN","XUS BSE1",141, 0) | |
| 6754 | ; input RAD - Zero node of applica tion data from REMOT E APPLICAT ION file ( #8994.5) | |
| 6755 | "RTN","XUS BSE1",142, 0) | |
| 6756 | ; input BSE - Station #^ TCP/IP por t | |
| 6757 | "RTN","XUS BSE1",143, 0) | |
| 6758 | ; returns - string of demographi c characte ristics or "-1^error message" | |
| 6759 | "RTN","XUS BSE1",144, 0) | |
| 6760 | N X,XUESS O,PORT,STN ,IP,STNIEN ,XUCACHE,S TNPRNT | |
| 6761 | "RTN","XUS BSE1",145, 0) | |
| 6762 | D:$G(XWBD EBUG) LOG^ XWBDLOG("E NTERED HOM E BSE: "_B SE) ; DEBU G | |
| 6763 | "RTN","XUS BSE1",146, 0) | |
| 6764 | Q:$P(RAD, U,2)'=-1 " " ;Not set up right | |
| 6765 | "RTN","XUS BSE1",147, 0) | |
| 6766 | ;Set Stat ion #, por t from pas sed in dat a | |
| 6767 | "RTN","XUS BSE1",148, 0) | |
| 6768 | S STN=$P( BSE,U),POR T=$P(BSE,U ,2),XUESSO ="" | |
| 6769 | "RTN","XUS BSE1",149, 0) | |
| 6770 | ; Check i f STN is a valid sta tion numbe r in the I NSTITUTION file (sec urity chec k) | |
| 6771 | "RTN","XUS BSE1",150, 0) | |
| 6772 | S STNIEN= $$LKUP^XUA F4(STN) I STNIEN=0 S XUESSO="- 1^"_STN_" WAS NOT FO UND IN FIL E 4" Q XUE SSO | |
| 6773 | "RTN","XUS BSE1",151, 0) | |
| 6774 | ; Check i f STN is a n active f acility (s ecurity ch eck) | |
| 6775 | "RTN","XUS BSE1",152, 0) | |
| 6776 | I '$$ACTI VE^XUAF4(S TNIEN) S X UESSO="-1^ "_STN_" IS NOT AN AC TIVE VA FA CILITY" Q XUESSO | |
| 6777 | "RTN","XUS BSE1",153, 0) | |
| 6778 | S IP="" | |
| 6779 | "RTN","XUS BSE1",154, 0) | |
| 6780 | ; Look fo r a valid cached DNS address ( less than 1800 secon ds old) | |
| 6781 | "RTN","XUS BSE1",155, 0) | |
| 6782 | S STNPRNT =$P($$PRNT ^XUAF4(STN ),U,2) S:' +STNPRNT S TNPRNT=STN ; Convert subdivisi on to pare nt station | |
| 6783 | "RTN","XUS BSE1",156, 0) | |
| 6784 | S XUCACHE =$G(^XTMP( "XUSBSE1", STNPRNT)) | |
| 6785 | "RTN","XUS BSE1",157, 0) | |
| 6786 | I ($D(XUC ACHE))&($$ HDIFF^XLFD T($H,$P(XU CACHE,U,2) ,2)<1800) S IP=$P(XU CACHE,U,1) | |
| 6787 | "RTN","XUS BSE1",158, 0) | |
| 6788 | I '$L(IP) S IP=$$IP FLOC(STNPR NT) ; Get the IP add ress from HL LOGICA L LINK fil e (#870) | |
| 6789 | "RTN","XUS BSE1",159, 0) | |
| 6790 | I '$L(IP) S IP=$$SI TESVC(STNP RNT) ; Get the IP ad dress from VASITESER VICE | |
| 6791 | "RTN","XUS BSE1",160, 0) | |
| 6792 | I '$L(IP) S XUESSO= "-1^ADDRES S FOR STN "_STN_" NO T FOUND" | |
| 6793 | "RTN","XUS BSE1",161, 0) | |
| 6794 | D:$G(XWBD EBUG) LOG^ XWBDLOG("H OME BSE IP : "_IP_" P ORT:"_PORT ) | |
| 6795 | "RTN","XUS BSE1",162, 0) | |
| 6796 | I $L(IP) S XUESSO=$ $CALLBSE^X WBTCPM2(IP ,PORT,TOKE N,STN) | |
| 6797 | "RTN","XUS BSE1",163, 0) | |
| 6798 | D:$G(XWBD EBUG) LOG^ XWBDLOG("L EAVING HOM E XUESSO: "_XUESSO) | |
| 6799 | "RTN","XUS BSE1",164, 0) | |
| 6800 | I XUESSO= "Didn't op en connect ion." S XU ESSO="-1^C OULD NOT C ONNECT TO STN "_STN_ " USING PO RT "_PORT | |
| 6801 | "RTN","XUS BSE1",165, 0) | |
| 6802 | I XUESSO= "No Respon se" S XUES SO="-1^BSE TOKEN EXP IRED" | |
| 6803 | "RTN","XUS BSE1",166, 0) | |
| 6804 | Q XUESSO | |
| 6805 | "RTN","XUS BSE1",167, 0) | |
| 6806 | ; | |
| 6807 | "RTN","XUS BSE1",168, 0) | |
| 6808 | IPFLOC(STN ) ;Get the address f rom the st ation numb er from HL LOGICAL L INK file ( #870) | |
| 6809 | "RTN","XUS BSE1",169, 0) | |
| 6810 | ; input STN - station nu mber | |
| 6811 | "RTN","XUS BSE1",170, 0) | |
| 6812 | ; retur ns - IP address or null | |
| 6813 | "RTN","XUS BSE1",171, 0) | |
| 6814 | N XUSBSE, I,RET,ADD, IP,STNPRNT | |
| 6815 | "RTN","XUS BSE1",172, 0) | |
| 6816 | S STNPRNT =$P($$PRNT ^XUAF4(STN ),U,2) S:' +STNPRNT S TNPRNT=STN ; Convert subdivisi on to pare nt station | |
| 6817 | "RTN","XUS BSE1",173, 0) | |
| 6818 | ; Look fo r station number in HL LOGICAL LINK file (#870) | |
| 6819 | "RTN","XUS BSE1",174, 0) | |
| 6820 | D FIND^DI C(870,,".0 3;.08","X" ,STNPRNT,, "C",,,"XUS BSE") ; IA # 5449 "C" index loo kup | |
| 6821 | "RTN","XUS BSE1",175, 0) | |
| 6822 | Q:+$G(XUS BSE("DILIS T",0))=0 " " | |
| 6823 | "RTN","XUS BSE1",176, 0) | |
| 6824 | S I=0,ADD ="",IP="" | |
| 6825 | "RTN","XUS BSE1",177, 0) | |
| 6826 | F S I=$O (XUSBSE("D ILIST","ID ",I)) Q:'I D Q:IP | |
| 6827 | "RTN","XUS BSE1",178, 0) | |
| 6828 | . ;HL LOG ICAL LINK file (#870 ) DNS DOMA IN field ( #.08) | |
| 6829 | "RTN","XUS BSE1",179, 0) | |
| 6830 | . S ADD=X USBSE("DIL IST","ID", I,.08) I $ L(ADD) D Q:IP'="" | |
| 6831 | "RTN","XUS BSE1",180, 0) | |
| 6832 | . . I $$V ALIDATE^XL FIPV(ADD) S IP=ADD Q ;ICR #58 44 | |
| 6833 | "RTN","XUS BSE1",181, 0) | |
| 6834 | . . S IP= $$ADDRESS^ XLFNSLK(AD D) S:IP="" IP=$$ADDR ESS^XLFNSL K(ADD,"A") ; Make 2 attempts t o get IP, force IPv4 on second attempt | |
| 6835 | "RTN","XUS BSE1",182, 0) | |
| 6836 | . . Q | |
| 6837 | "RTN","XUS BSE1",183, 0) | |
| 6838 | . ;HL LOG ICAL LINK file (#870 ) MAILMAIN DOMAIN fi eld (#.03) | |
| 6839 | "RTN","XUS BSE1",184, 0) | |
| 6840 | . S ADD=X USBSE("DIL IST","ID", I,.03) I $ L(ADD) D Q:IP'="" | |
| 6841 | "RTN","XUS BSE1",185, 0) | |
| 6842 | . . I $$V ALIDATE^XL FIPV(ADD) S IP=ADD Q ;ICR #58 44 | |
| 6843 | "RTN","XUS BSE1",186, 0) | |
| 6844 | . . S IP= $$ADDRESS^ XLFNSLK("V ISTA."_ADD ) S:IP="" IP=$$ADDRE SS^XLFNSLK ("VISTA."_ ADD,"A") ; Make 2 at tempts to get IP, fo rce IPv4 o n second a ttempt | |
| 6845 | "RTN","XUS BSE1",187, 0) | |
| 6846 | . . Q | |
| 6847 | "RTN","XUS BSE1",188, 0) | |
| 6848 | I $L(IP) S ^XTMP("X USBSE1",ST NPRNT)=IP_ "^"_$H ; C ache the I P address | |
| 6849 | "RTN","XUS BSE1",189, 0) | |
| 6850 | Q IP | |
| 6851 | "RTN","XUS BSE1",190, 0) | |
| 6852 | ; | |
| 6853 | "RTN","XUS BSE1",191, 0) | |
| 6854 | SITESVC(ST N) ;Get IP from the stn# from VISTASITES ERVICE | |
| 6855 | "RTN","XUS BSE1",192, 0) | |
| 6856 | ; input STN - s tation num ber | |
| 6857 | "RTN","XUS BSE1",193, 0) | |
| 6858 | ; retur ns - I P address or null | |
| 6859 | "RTN","XUS BSE1",194, 0) | |
| 6860 | N DNSADD, IP,STNPRNT | |
| 6861 | "RTN","XUS BSE1",195, 0) | |
| 6862 | S IP="" | |
| 6863 | "RTN","XUS BSE1",196, 0) | |
| 6864 | S STNPRNT =$P($$PRNT ^XUAF4(STN ),U,2) S:' +STNPRNT S TNPRNT=STN ; Convert subdivisi on to pare nt station | |
| 6865 | "RTN","XUS BSE1",197, 0) | |
| 6866 | S DNSADD= $$WEBADDRS (STNPRNT) | |
| 6867 | "RTN","XUS BSE1",198, 0) | |
| 6868 | I $L(DNSA DD) S IP=$ $ADDRESS^X LFNSLK(DNS ADD) S:IP= "" IP=$$AD DRESS^XLFN SLK(DNSADD ,"A") ; Ma ke 2 attem pts to get IP, force IPv4 on s econd atte mpt | |
| 6869 | "RTN","XUS BSE1",199, 0) | |
| 6870 | I $L(IP) S ^XTMP("X USBSE1",ST NPRNT)=IP_ "^"_$H ; C ache the I P address | |
| 6871 | "RTN","XUS BSE1",200, 0) | |
| 6872 | Q IP | |
| 6873 | "RTN","XUS BSE1",201, 0) | |
| 6874 | ; | |
| 6875 | "RTN","XUS BSE1",202, 0) | |
| 6876 | WEBADDRS(S TNNUM) ; | |
| 6877 | "RTN","XUS BSE1",203, 0) | |
| 6878 | N IP,URL, XUSBSE,RES ULTS,I,X,P OP | |
| 6879 | "RTN","XUS BSE1",204, 0) | |
| 6880 | D FIND^DI C(2005.2,, "1","MO"," VISTASITES ERVICE",,, ,,"XUSBSE" ) | |
| 6881 | "RTN","XUS BSE1",205, 0) | |
| 6882 | S URL=$G( XUSBSE("DI LIST","ID" ,1,1)) | |
| 6883 | "RTN","XUS BSE1",206, 0) | |
| 6884 | D EN1^XUS BSE2(URL_" /getSite?s iteID="_ST NNUM,.RESU LTS) | |
| 6885 | "RTN","XUS BSE1",207, 0) | |
| 6886 | S X="" F I=1:1 Q:'$ D(RESULTS( I)) I RES ULTS(I)["h ostname>" S X=$P($P( RESULTS(I) ,"<hostnam e>",2),"</ hostname>" ) Q | |
| 6887 | "RTN","XUS BSE1",208, 0) | |
| 6888 | Q X | |
| 6889 | "RTN","XUS BSE1",209, 0) | |
| 6890 | ; | |
| 6891 | "RTN","XUS BSE1",210, 0) | |
| 6892 | SETUP(XUDE MOG,XUCONT XT) ; Setu p user as visitor, a dd context option | |
| 6893 | "RTN","XUS BSE1",211, 0) | |
| 6894 | ; input XUDEMOG - string o f demograp hic charac teristics | |
| 6895 | "RTN","XUS BSE1",212, 0) | |
| 6896 | ; input XUCONTXT - context option to be given t o user | |
| 6897 | "RTN","XUS BSE1",213, 0) | |
| 6898 | ; return value = in ternal ent ry number for user, or 0 | |
| 6899 | "RTN","XUS BSE1",214, 0) | |
| 6900 | I '$$PUT^ XUESSO1(XU DEMOG) Q 0 | |
| 6901 | "RTN","XUS BSE1",215, 0) | |
| 6902 | I $G(DUZ) '>0 Q 0 | |
| 6903 | "RTN","XUS BSE1",216, 0) | |
| 6904 | D SETCNTX T(XUCONTXT ) | |
| 6905 | "RTN","XUS BSE1",217, 0) | |
| 6906 | Q DUZ | |
| 6907 | "RTN","XUS BSE1",218, 0) | |
| 6908 | ; | |
| 6909 | "RTN","XUS BSE1",219, 0) | |
| 6910 | SETCNTXT(X OPT) ; | |
| 6911 | "RTN","XUS BSE1",220, 0) | |
| 6912 | N OPT,XUC ONTXT,X | |
| 6913 | "RTN","XUS BSE1",221, 0) | |
| 6914 | S XUCONTX T="`"_XOPT | |
| 6915 | "RTN","XUS BSE1",222, 0) | |
| 6916 | I $$FIND1 ^DIC(19,"" ,"X",XUCON TXT)'>0 S X=$$LOGERR ("BSE LOGI N ERROR - CONTEXT") Q ;Contex t option n ot in opti on file | |
| 6917 | "RTN","XUS BSE1",223, 0) | |
| 6918 | I $G(DUZ( "LOA"))=1 H 1 | |
| 6919 | "RTN","XUS BSE1",224, 0) | |
| 6920 | ;Have to use $D bec ause of sc reen in 20 0.03 keeps FIND1^DIC from work ing. | |
| 6921 | "RTN","XUS BSE1",225, 0) | |
| 6922 | I '$D(^VA (200,DUZ,2 03,"B",XOP T)) D | |
| 6923 | "RTN","XUS BSE1",226, 0) | |
| 6924 | . ; Have to give th e user a d elegated o ption | |
| 6925 | "RTN","XUS BSE1",227, 0) | |
| 6926 | . N XARR S XARR(200 .19,"+1,"_ DUZ_",",.0 1)=XUCONTX T | |
| 6927 | "RTN","XUS BSE1",228, 0) | |
| 6928 | . D UPDAT E^DIE("E", "XARR") | |
| 6929 | "RTN","XUS BSE1",229, 0) | |
| 6930 | . ; And n ow she can give hims elf the co ntext opti on | |
| 6931 | "RTN","XUS BSE1",230, 0) | |
| 6932 | . K XARR S XARR(200 .03,"+1,"_ DUZ_",",.0 1)=XUCONTX T | |
| 6933 | "RTN","XUS BSE1",231, 0) | |
| 6934 | . D UPDAT E^DIE("E", "XARR") ; Give conte xt option as a secon dary menu item | |
| 6935 | "RTN","XUS BSE1",232, 0) | |
| 6936 | . S ^XUTL ("XQ",$J," DUZ(BSE)") =XUCONTXT | |
| 6937 | "RTN","XUS BSE1",233, 0) | |
| 6938 | . ; But n ow we have to remove the deleg ated optio n | |
| 6939 | "RTN","XUS BSE1",234, 0) | |
| 6940 | . S OPT=$ $FIND1^DIC (200.19,", "_DUZ_",", "X",XUCONT XT) | |
| 6941 | "RTN","XUS BSE1",235, 0) | |
| 6942 | . I OPT>0 D | |
| 6943 | "RTN","XUS BSE1",236, 0) | |
| 6944 | . . K XAR R S XARR(2 00.19,(OPT _","_DUZ_" ,"),.01)=" @" | |
| 6945 | "RTN","XUS BSE1",237, 0) | |
| 6946 | . . D FIL E^DIE("E", "XARR") | |
| 6947 | "RTN","XUS BSE1",238, 0) | |
| 6948 | . . Q | |
| 6949 | "RTN","XUS BSE1",239, 0) | |
| 6950 | . Q | |
| 6951 | "RTN","XUS BSE1",240, 0) | |
| 6952 | Q | |
| 6953 | "RTN","XUS BSE1",241, 0) | |
| 6954 | ; | |
| 6955 | "RTN","XUS BSE1",242, 0) | |
| 6956 | STNTEST ; tests stat ion#-to-IP conversio n (IPFLOC, WEBADDRS) used by HO ME station #-based ca llback | |
| 6957 | "RTN","XUS BSE1",243, 0) | |
| 6958 | N XUSLSTI ,XUSLSTV,X USSTN,XUSI P1,XUSIP2, XUSBSE | |
| 6959 | "RTN","XUS BSE1",244, 0) | |
| 6960 | W !,"Brok er Securit y Enhancem ent (BSE) Station Nu mber-to-IP conversio n test (fo r BSE" | |
| 6961 | "RTN","XUS BSE1",245, 0) | |
| 6962 | W !,"call backs to h ome system ). Note: I t is not n ecessarily wrong if results di ffer" | |
| 6963 | "RTN","XUS BSE1",246, 0) | |
| 6964 | W !,"or a re blank. 2 methods' results a re listed: HL LOGICA L LINK/VIS TASITESERV ICE" | |
| 6965 | "RTN","XUS BSE1",247, 0) | |
| 6966 | ; | |
| 6967 | "RTN","XUS BSE1",248, 0) | |
| 6968 | D FIND^DI C(2005.2,, "1","MO"," VISTASITES ERVICE",,, ,,"XUSBSE" ) | |
| 6969 | "RTN","XUS BSE1",249, 0) | |
| 6970 | W !!," lo cal VISTAS ITESERVICE server:", !," ",$G(X USBSE("DIL IST","ID", 1,1)),"",! | |
| 6971 | "RTN","XUS BSE1",250, 0) | |
| 6972 | K ^TMP($J ,"XUSBSE1" ) | |
| 6973 | "RTN","XUS BSE1",251, 0) | |
| 6974 | DO LIST^D IC(4,,"@;. 01;11;99;1 01","IP",, ,,"D",,,$N A(^TMP($J, "XUSBSE1") )) | |
| 6975 | "RTN","XUS BSE1",252, 0) | |
| 6976 | S XUSLSTI =0 F S XU SLSTI=$O(^ TMP($J,"XU SBSE1","DI LIST",XUSL STI)) Q:'+ XUSLSTI D | |
| 6977 | "RTN","XUS BSE1",253, 0) | |
| 6978 | . S XUSLS TV=^TMP($J ,"XUSBSE1" ,"DILIST", XUSLSTI,0) | |
| 6979 | "RTN","XUS BSE1",254, 0) | |
| 6980 | . Q:+$P(X USLSTV,U,5 ) | |
| 6981 | "RTN","XUS BSE1",255, 0) | |
| 6982 | . S XUSST N=$P(XUSLS TV,U,4) Q: '$$TF^XUAF 4(XUSSTN) | |
| 6983 | "RTN","XUS BSE1",256, 0) | |
| 6984 | . S XUSIP 1=$$IPFLOC (XUSSTN),X USIP2=$$SI TESVC(XUSS TN) | |
| 6985 | "RTN","XUS BSE1",257, 0) | |
| 6986 | . I $L(XU SIP1)!$L(X USIP2) D | |
| 6987 | "RTN","XUS BSE1",258, 0) | |
| 6988 | . . W !,X USSTN,?8," (",$P(XUSL STV,U,2)," ): " W $S( $L(XUSIP1) :XUSIP1,1: "blank")," /",$S($L(X USIP2):XUS IP2,1:"bla nk") | |
| 6989 | "RTN","XUS BSE1",259, 0) | |
| 6990 | . . I $L( XUSIP1),$L (XUSIP2),( XUSIP1'=XU SIP2) W " ***DIFFERE NT***" | |
| 6991 | "RTN","XUS BSE1",260, 0) | |
| 6992 | K ^TMP($J ,"XUSBSE1" ) | |
| 6993 | "RTN","XUS BSE1",261, 0) | |
| 6994 | Q | |
| 6995 | "RTN","XUS BSE1",262, 0) | |
| 6996 | LOGERR(XUS ETXT) ; lo g an error in error trap for f ailed logi n attempts ; p595 | |
| 6997 | "RTN","XUS BSE1",263, 0) | |
| 6998 | ; XUSETXT is the er ror subjec t line $ZE | |
| 6999 | "RTN","XUS BSE1",264, 0) | |
| 7000 | ; The fun ction retu rns 0 if t he error w as screene d, and 1 i f an error was trapp ed | |
| 7001 | "RTN","XUS BSE1",265, 0) | |
| 7002 | N XUSAPP | |
| 7003 | "RTN","XUS BSE1",266, 0) | |
| 7004 | ; ZEXCEPT : XWBSEC,X UDEMOG - K ernel glob al variabl es | |
| 7005 | "RTN","XUS BSE1",267, 0) | |
| 7006 | S XUSAPP= $P($G(DUZ( "REMAPP")) ,U,2) | |
| 7007 | "RTN","XUS BSE1",268, 0) | |
| 7008 | I $P($G(X UDEMOG),U, 2)="BSE TO KEN EXPIRE D" Q 0 ; screen out "TOKEN EX PIRED" err ors | |
| 7009 | "RTN","XUS BSE1",269, 0) | |
| 7010 | I $G(XWBS EC)="BSE E RROR - BSE TOKEN EXP IRED" Q 0 ; screen out "TOKEN EXPIRED" errors | |
| 7011 | "RTN","XUS BSE1",270, 0) | |
| 7012 | I XUSAPP' ="" S XUSE TXT=XUSETX T_" ("_XUS APP_")" | |
| 7013 | "RTN","XUS BSE1",271, 0) | |
| 7014 | D APPERRO R^%ZTER($E (XUSETXT,1 ,32)) | |
| 7015 | "RTN","XUS BSE1",272, 0) | |
| 7016 | Q 1 | |
| 7017 | "RTN","XUS BSE1",273, 0) | |
| 7018 | ; | |
| 7019 | "RTN","XUS BSE1",274, 0) | |
| 7020 | BSETOKEN(R ET,XPHRASE ) ; RPC. X US BSE TOK EN - IA #( under deve lopment) | |
| 7021 | "RTN","XUS BSE1",275, 0) | |
| 7022 | ;Returns a string t hat can be passed as the XUBUS RNM parame ter to the | |
| 7023 | "RTN","XUS BSE1",276, 0) | |
| 7024 | ;XUS SIGN ON SETUP r pc to auth enticate a user on a remote sy stem. The input | |
| 7025 | "RTN","XUS BSE1",277, 0) | |
| 7026 | ;is an ap plication identifier (pass phr ase) that, when hash ed, | |
| 7027 | "RTN","XUS BSE1",278, 0) | |
| 7028 | ;matches the stored hash of a n authoriz ed applica tion in th e REMOTE | |
| 7029 | "RTN","XUS BSE1",279, 0) | |
| 7030 | ;APPLICAT ION file ( #8994.5) A PPLICATION CODE field (#.03) | |
| 7031 | "RTN","XUS BSE1",280, 0) | |
| 7032 | ; - Input - Applica tion pass phrase | |
| 7033 | "RTN","XUS BSE1",281, 0) | |
| 7034 | N XAPP,XP ORT,XSTA,X STATION,XS TRING,XTOK EN | |
| 7035 | "RTN","XUS BSE1",282, 0) | |
| 7036 | S XAPP=$G (XPHRASE) | |
| 7037 | "RTN","XUS BSE1",283, 0) | |
| 7038 | I XAPP="" S RET="-1 ^NOT AUTHE NTICATED" Q ;Applic ation must be authen ticated | |
| 7039 | "RTN","XUS BSE1",284, 0) | |
| 7040 | S XAPP=$$ GETCNTXT^X UESSO2(XPH RASE) | |
| 7041 | "RTN","XUS BSE1",285, 0) | |
| 7042 | I +XAPP=- 1 S RET="- 1^NOT AUTH ENTICATED" Q ;Appli cation mus t be authe nticated | |
| 7043 | "RTN","XUS BSE1",286, 0) | |
| 7044 | S XAPP=XP HRASE | |
| 7045 | "RTN","XUS BSE1",287, 0) | |
| 7046 | D SETVISI T(.XTOKEN) | |
| 7047 | "RTN","XUS BSE1",288, 0) | |
| 7048 | I XTOKEN= "-1^NOT AU THENTICATE D" S RET=X TOKEN Q ; User must be authent icated | |
| 7049 | "RTN","XUS BSE1",289, 0) | |
| 7050 | I $G(DUZ( 2))="" S R ET="-1^HOM E STATION NOT IDENTI FIED" Q ; User must be authent icated on valid home station | |
| 7051 | "RTN","XUS BSE1",290, 0) | |
| 7052 | S XSTA=$$ NS^XUAF4(D UZ(2)) | |
| 7053 | "RTN","XUS BSE1",291, 0) | |
| 7054 | S XSTATIO N=$P(XSTA, U,2) | |
| 7055 | "RTN","XUS BSE1",292, 0) | |
| 7056 | I XSTA="" S RET="-1 ^HOME STAT ION NOT ID ENTIFIED" Q ;User m ust be aut henticated on valid home stati on | |
| 7057 | "RTN","XUS BSE1",293, 0) | |
| 7058 | S XPORT=$ G(^XTMP("X USBSE1","R PCBrokerPo rt")) | |
| 7059 | "RTN","XUS BSE1",294, 0) | |
| 7060 | I XPORT=" " D | |
| 7061 | "RTN","XUS BSE1",295, 0) | |
| 7062 | . ; Do a VistA Exch ange Site Service lo okup for c urrent sta tion (once daily) | |
| 7063 | "RTN","XUS BSE1",296, 0) | |
| 7064 | . N IP,UR L,XUSBSE,R ESULTS,I,X ,POP | |
| 7065 | "RTN","XUS BSE1",297, 0) | |
| 7066 | . D FIND^ DIC(2005.2 ,,"1","MO" ,"VISTASIT ESERVICE", ,,,,"XUSBS E") | |
| 7067 | "RTN","XUS BSE1",298, 0) | |
| 7068 | . S URL=$ G(XUSBSE(" DILIST","I D",1,1)) | |
| 7069 | "RTN","XUS BSE1",299, 0) | |
| 7070 | . D EN1^X USBSE2(URL _"/getSite ?siteID="_ XSTATION,. RESULTS) | |
| 7071 | "RTN","XUS BSE1",300, 0) | |
| 7072 | . S X="" F I=1:1 Q: '$D(RESULT S(I)) I R ESULTS(I)[ "port>" S X=$P($P(RE SULTS(I)," <port>",2) ,"</port>" ) Q | |
| 7073 | "RTN","XUS BSE1",301, 0) | |
| 7074 | . S XPORT =X | |
| 7075 | "RTN","XUS BSE1",302, 0) | |
| 7076 | . I XPORT '="" S ^XT MP("XUSBSE 1","RPCBro kerPort")= X | |
| 7077 | "RTN","XUS BSE1",303, 0) | |
| 7078 | I XPORT=" " S RET="- 1^RPC BROK ER PORT NO T AVAILABL E" Q ;Cou ld not obt ain port f rom VistA Exchange S ite Servic e lookup | |
| 7079 | "RTN","XUS BSE1",304, 0) | |
| 7080 | S XSTRING =XAPP_"^"_ XTOKEN_"^" _XSTATION_ "^"_XPORT | |
| 7081 | "RTN","XUS BSE1",305, 0) | |
| 7082 | S RET="-3 5^"_$$ENCR YP^XUSRB1( XSTRING) | |
| 7083 | "RTN","XUS BSE1",306, 0) | |
| 7084 | Q | |
| 7085 | "RTN","XUS BSE1",307, 0) | |
| 7086 | ; | |
| 7087 | "RTN","XUS HSH") | |
| 7088 | 0^30^B3789 1600^B3104 0658 | |
| 7089 | "RTN","XUS HSH",1,0) | |
| 7090 | XUSHSH ;IS F/STAFF - ENCRYPTION /DECRYPTIO N UTILITIE S ;01/20/1 6 14:33 | |
| 7091 | "RTN","XUS HSH",2,0) | |
| 7092 | ;;8.0;KER NEL;**655, 659**;Jul 10, 1995;B uild 22 | |
| 7093 | "RTN","XUS HSH",3,0) | |
| 7094 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 7095 | "RTN","XUS HSH",4,0) | |
| 7096 | ; | |
| 7097 | "RTN","XUS HSH",5,0) | |
| 7098 | ;ZEXCEPT: X ;Return ed global value when called as an extrin sic subrou tine. | |
| 7099 | "RTN","XUS HSH",6,0) | |
| 7100 | S X=$$EN( X) | |
| 7101 | "RTN","XUS HSH",7,0) | |
| 7102 | Q | |
| 7103 | "RTN","XUS HSH",8,0) | |
| 7104 | ; | |
| 7105 | "RTN","XUS HSH",9,0) | |
| 7106 | EN(X) ;Ext rinsic fun ction $$EN ^XUSHSH(X) , IA #4758 | |
| 7107 | "RTN","XUS HSH",10,0) | |
| 7108 | N XUA,XUI ,XUJ,XUL,X UR,XUX,XUY ,XUY1,XUZ D KE Q X | |
| 7109 | "RTN","XUS HSH",11,0) | |
| 7110 | ; | |
| 7111 | "RTN","XUS HSH",12,0) | |
| 7112 | KE ;Intrin sic subrou tine. | |
| 7113 | "RTN","XUS HSH",13,0) | |
| 7114 | Q:X="" S XUX=$E(X, 1,20),X="" ,XUL=$L(XU X) D CL F XUZ=1:1 Q: $L(X)>19 D C S X=$S (XUZ#2:XUX _X,1:X_XUX ) | |
| 7115 | "RTN","XUS HSH",14,0) | |
| 7116 | S X=$E(X, 1,20) | |
| 7117 | "RTN","XUS HSH",15,0) | |
| 7118 | S X=$TR(X ,$C(127,12 8)) | |
| 7119 | "RTN","XUS HSH",16,0) | |
| 7120 | Q | |
| 7121 | "RTN","XUS HSH",17,0) | |
| 7122 | ; | |
| 7123 | "RTN","XUS HSH",18,0) | |
| 7124 | B ;Intrins ic subrout ine. | |
| 7125 | "RTN","XUS HSH",19,0) | |
| 7126 | ;ZEXCEPT: X ;Extrin sic global value | |
| 7127 | "RTN","XUS HSH",20,0) | |
| 7128 | ;ZEXCEPT: XUI,XUJ ; Intrinsic global val ues | |
| 7129 | "RTN","XUS HSH",21,0) | |
| 7130 | F XUI=0:0 Q:X'[$C(1 27) S XUJ =$F(X,$C(1 27)),X=$E( X,1,XUJ-2) _$E(X,XUJ, 20) | |
| 7131 | "RTN","XUS HSH",22,0) | |
| 7132 | F XUI=0:0 Q:X'[$C(1 28) S XUJ =$F(X,$C(1 28)),X=$E( X,1,XUJ-2) _$E(X,XUJ, 20) | |
| 7133 | "RTN","XUS HSH",23,0) | |
| 7134 | Q | |
| 7135 | "RTN","XUS HSH",24,0) | |
| 7136 | ; | |
| 7137 | "RTN","XUS HSH",25,0) | |
| 7138 | C ;Intrins ic subrout ine. | |
| 7139 | "RTN","XUS HSH",26,0) | |
| 7140 | ;ZEXCEPT: XUA,XUI,X UJ,XUL,XUR ,XUX,XUY,X UY1 ;Intri nsic globa l values | |
| 7141 | "RTN","XUS HSH",27,0) | |
| 7142 | S XUR=0 F XUI=1:1:X UL S XUR=X UR+$A(XUX, XUI) | |
| 7143 | "RTN","XUS HSH",28,0) | |
| 7144 | S XUR=XUR #94 | |
| 7145 | "RTN","XUS HSH",29,0) | |
| 7146 | F XUI=1:1 :XUL S XUJ =$F(XUA(XU I),$E(XUX, XUI))-1+XU R\2,XUA(XU I)=$E(XUA( XUI),XUJ,9 99)_$E(XUA (XUI),1,XU J-1) | |
| 7147 | "RTN","XUS HSH",30,0) | |
| 7148 | S XUY="" F XUI=1:1: XUL S XUY1 =$F(XUA(XU I#XUL+1),$ E(XUX,XUI) )+33 S:XUY 1=94 XUY1= -1 S XUY=X UY_$C(XUY1 ) | |
| 7149 | "RTN","XUS HSH",31,0) | |
| 7150 | S XUX=XUY Q | |
| 7151 | "RTN","XUS HSH",32,0) | |
| 7152 | ; | |
| 7153 | "RTN","XUS HSH",33,0) | |
| 7154 | CL ;Intrin sic subrou tine. | |
| 7155 | "RTN","XUS HSH",34,0) | |
| 7156 | F XUI=1:1 :XUL S XUA (XUI)=$P($ T(Z+$A($E( XUX,XUI))+ XUI#20+1), ";",3,9) | |
| 7157 | "RTN","XUS HSH",35,0) | |
| 7158 | Q | |
| 7159 | "RTN","XUS HSH",36,0) | |
| 7160 | ; | |
| 7161 | "RTN","XUS HSH",37,0) | |
| 7162 | SHAHASH(N, X,FLAG) ;O ne-Way Has h Utility, IA #6189 | |
| 7163 | "RTN","XUS HSH",38,0) | |
| 7164 | ;Input: N = L ength in b its of the desired h ash. | |
| 7165 | "RTN","XUS HSH",39,0) | |
| 7166 | ; 160 (SHA-1 ) | |
| 7167 | "RTN","XUS HSH",40,0) | |
| 7168 | ; 224 (SHA-2 24) | |
| 7169 | "RTN","XUS HSH",41,0) | |
| 7170 | ; 256 (SHA-2 56) | |
| 7171 | "RTN","XUS HSH",42,0) | |
| 7172 | ; 384 (SHA-3 84) | |
| 7173 | "RTN","XUS HSH",43,0) | |
| 7174 | ; 512 (SHA-5 12) | |
| 7175 | "RTN","XUS HSH",44,0) | |
| 7176 | ; X = S tring to b e hashed. | |
| 7177 | "RTN","XUS HSH",45,0) | |
| 7178 | ; FLAG = ( Optional) Flag to co ntrol form at of hash : | |
| 7179 | "RTN","XUS HSH",46,0) | |
| 7180 | ; "H" - He xadecimal (default) | |
| 7181 | "RTN","XUS HSH",47,0) | |
| 7182 | ; "B" - Ba se64 Encod ed | |
| 7183 | "RTN","XUS HSH",48,0) | |
| 7184 | ;Return: String = H ashed valu e of X. | |
| 7185 | "RTN","XUS HSH",49,0) | |
| 7186 | ;ZEXCEPT: Encryptio n,SHAHash | |
| 7187 | "RTN","XUS HSH",50,0) | |
| 7188 | N I,Y,Z,X OUT | |
| 7189 | "RTN","XUS HSH",51,0) | |
| 7190 | I ('$D(N) )!('$D(X)) Q "" | |
| 7191 | "RTN","XUS HSH",52,0) | |
| 7192 | I ($G(N)' =160)&($G( N)'=224)&( $G(N)'=256 )&($G(N)'= 384)&($G(N )'=512) Q "" | |
| 7193 | "RTN","XUS HSH",53,0) | |
| 7194 | S XOUT="" ,Y=$SYSTEM .Encryptio n.SHAHash( N,X) | |
| 7195 | "RTN","XUS HSH",54,0) | |
| 7196 | I $G(FLAG )="B" D | |
| 7197 | "RTN","XUS HSH",55,0) | |
| 7198 | . S XOUT= $$B64ENCD( Y) | |
| 7199 | "RTN","XUS HSH",56,0) | |
| 7200 | E D | |
| 7201 | "RTN","XUS HSH",57,0) | |
| 7202 | . F I=1:1 D Q:Z=-1 | |
| 7203 | "RTN","XUS HSH",58,0) | |
| 7204 | . . S Z=$ A(Y,I) Q:Z =-1 | |
| 7205 | "RTN","XUS HSH",59,0) | |
| 7206 | . . S XOU T=XOUT_$$R J^XLFSTR($ $CNV^XLFUT L(Z,16),2, "0") | |
| 7207 | "RTN","XUS HSH",60,0) | |
| 7208 | Q XOUT | |
| 7209 | "RTN","XUS HSH",61,0) | |
| 7210 | ; | |
| 7211 | "RTN","XUS HSH",62,0) | |
| 7212 | B64ENCD(X) ;Base 64 Encode, IA #6189 | |
| 7213 | "RTN","XUS HSH",63,0) | |
| 7214 | ;Use with $$B64DECD | |
| 7215 | "RTN","XUS HSH",64,0) | |
| 7216 | ;Input: X = S tring to b e encoded. | |
| 7217 | "RTN","XUS HSH",65,0) | |
| 7218 | ;Return: String = E ncoded val ue of X. | |
| 7219 | "RTN","XUS HSH",66,0) | |
| 7220 | ;ZEXCEPT: Encryptio n,Base64En code | |
| 7221 | "RTN","XUS HSH",67,0) | |
| 7222 | Q $SYSTEM .Encryptio n.Base64En code(X) | |
| 7223 | "RTN","XUS HSH",68,0) | |
| 7224 | ; | |
| 7225 | "RTN","XUS HSH",69,0) | |
| 7226 | B64DECD(X) ;Base 64 Decode, IA #6189 | |
| 7227 | "RTN","XUS HSH",70,0) | |
| 7228 | ;Use with $$B64ENCD | |
| 7229 | "RTN","XUS HSH",71,0) | |
| 7230 | ;Input: X = S tring to b e decoded. | |
| 7231 | "RTN","XUS HSH",72,0) | |
| 7232 | ;Return: String = D ecoded val ue of X. | |
| 7233 | "RTN","XUS HSH",73,0) | |
| 7234 | ;ZEXCEPT: Encryptio n,Base64De code | |
| 7235 | "RTN","XUS HSH",74,0) | |
| 7236 | Q $SYSTEM .Encryptio n.Base64De code(X) | |
| 7237 | "RTN","XUS HSH",75,0) | |
| 7238 | ; | |
| 7239 | "RTN","XUS HSH",76,0) | |
| 7240 | RSAENCR(TE XT,CERT,CA FILE,CRLFI LE,ENC) ;R SA Encrypt , IA #6189 | |
| 7241 | "RTN","XUS HSH",77,0) | |
| 7242 | ;Use with $$RSADECR | |
| 7243 | "RTN","XUS HSH",78,0) | |
| 7244 | ;Input: TEXT = P laintext s tring to b e encrypte d. | |
| 7245 | "RTN","XUS HSH",79,0) | |
| 7246 | ; CERT = A n X.509 ce rtificate containing the RSA p ublic key to be used for encry ption, | |
| 7247 | "RTN","XUS HSH",80,0) | |
| 7248 | ; i n PEM enco ded or bin ary DER fo rmat. Note that the length of the plaint ext can | |
| 7249 | "RTN","XUS HSH",81,0) | |
| 7250 | ; n ot be grea ter than t he length of the mod ulus of th e RSA publ ic key con tained | |
| 7251 | "RTN","XUS HSH",82,0) | |
| 7252 | ; i n the cert ificate mi nus 42 byt es. | |
| 7253 | "RTN","XUS HSH",83,0) | |
| 7254 | ; CAFILE = T he name of a file co ntaining t rusted Cer tificate A uthority X .509 Certi ficates | |
| 7255 | "RTN","XUS HSH",84,0) | |
| 7256 | ; i n PEM-enco ded format , one of w hich was u sed to sig n the Cert ificate (o ptional). | |
| 7257 | "RTN","XUS HSH",85,0) | |
| 7258 | ; C RLFILE = T he name of a file co ntaining X .509 Certi ficate Rev ocation Li sts in PEM -encoded | |
| 7259 | "RTN","XUS HSH",86,0) | |
| 7260 | ; f ormat that should be checked t o verify t he status of the Cer tificate ( optional). | |
| 7261 | "RTN","XUS HSH",87,0) | |
| 7262 | ; ENC = E ncoding - PKCS #1 v2 .1 encodin g method ( optional): | |
| 7263 | "RTN","XUS HSH",88,0) | |
| 7264 | ; 1 = OAEP ( default) | |
| 7265 | "RTN","XUS HSH",89,0) | |
| 7266 | ; 2 = PKCS1- v1_5 | |
| 7267 | "RTN","XUS HSH",90,0) | |
| 7268 | ;Return: String = C iphertext. | |
| 7269 | "RTN","XUS HSH",91,0) | |
| 7270 | ;ZEXCEPT: Encryptio n,RSAEncry pt | |
| 7271 | "RTN","XUS HSH",92,0) | |
| 7272 | I ('$D(TE XT))!('$D( CERT)) Q " " | |
| 7273 | "RTN","XUS HSH",93,0) | |
| 7274 | I $G(ENC) '=2 S ENC= 1 | |
| 7275 | "RTN","XUS HSH",94,0) | |
| 7276 | Q $SYSTEM .Encryptio n.RSAEncry pt(TEXT,CE RT,$G(CAFI LE),$G(CRL FILE),ENC) | |
| 7277 | "RTN","XUS HSH",95,0) | |
| 7278 | ; | |
| 7279 | "RTN","XUS HSH",96,0) | |
| 7280 | RSADECR(TE XT,KEY,PWD ,ENC) ;RSA Decrypt, IA #6189 | |
| 7281 | "RTN","XUS HSH",97,0) | |
| 7282 | ;Use with $$RSAENCR | |
| 7283 | "RTN","XUS HSH",98,0) | |
| 7284 | ;Input: TEXT = C iphertext string to be decrypt ed. | |
| 7285 | "RTN","XUS HSH",99,0) | |
| 7286 | ; KEY = R SA private key corre sponding t o the RSA public key that was used for | |
| 7287 | "RTN","XUS HSH",100,0 ) | |
| 7288 | ; e ncryption, PEM encod ed. | |
| 7289 | "RTN","XUS HSH",101,0 ) | |
| 7290 | ; PWD = P rivate key password (optional) . | |
| 7291 | "RTN","XUS HSH",102,0 ) | |
| 7292 | ; ENC = E ncoding - PKCS #1 v2 .1 encodin g method ( optional): | |
| 7293 | "RTN","XUS HSH",103,0 ) | |
| 7294 | ; 1 = OAEP ( default) | |
| 7295 | "RTN","XUS HSH",104,0 ) | |
| 7296 | ; 2 = PKCS1- v1_5 | |
| 7297 | "RTN","XUS HSH",105,0 ) | |
| 7298 | ;Return: String = P laintext. | |
| 7299 | "RTN","XUS HSH",106,0 ) | |
| 7300 | ;ZEXCEPT: Encryptio n,RSADecry pt | |
| 7301 | "RTN","XUS HSH",107,0 ) | |
| 7302 | I ('$D(TE XT))!('$D( KEY)) Q "" | |
| 7303 | "RTN","XUS HSH",108,0 ) | |
| 7304 | I $G(ENC) '=2 S ENC= 1 | |
| 7305 | "RTN","XUS HSH",109,0 ) | |
| 7306 | Q $SYSTEM .Encryptio n.RSADecry pt(TEXT,KE Y,$G(PWD), ENC) | |
| 7307 | "RTN","XUS HSH",110,0 ) | |
| 7308 | ; | |
| 7309 | "RTN","XUS HSH",111,0 ) | |
| 7310 | AESENCR(TE XT,KEY,IV) ;AES Encr ypt, IA #6 189 | |
| 7311 | "RTN","XUS HSH",112,0 ) | |
| 7312 | ;Use with $$EASDECR | |
| 7313 | "RTN","XUS HSH",113,0 ) | |
| 7314 | ;Input: TEXT = P laintext s tring to b e encrypte d. | |
| 7315 | "RTN","XUS HSH",114,0 ) | |
| 7316 | ; KEY = I nput key m aterial 16 , 24, or 3 2 characte rs long. | |
| 7317 | "RTN","XUS HSH",115,0 ) | |
| 7318 | ; IV = I nitializat ion vector (optional ). If this argument is present it must b e 16 chara cters long . | |
| 7319 | "RTN","XUS HSH",116,0 ) | |
| 7320 | ;Return: String = C iphertext. | |
| 7321 | "RTN","XUS HSH",117,0 ) | |
| 7322 | ;ZEXCEPT: Encryptio n,AESCBCEn crypt | |
| 7323 | "RTN","XUS HSH",118,0 ) | |
| 7324 | I ('$D(TE XT))!('$D( KEY)) Q "" | |
| 7325 | "RTN","XUS HSH",119,0 ) | |
| 7326 | Q $SYSTEM .Encryptio n.AESCBCEn crypt(TEXT ,KEY,$G(IV )) | |
| 7327 | "RTN","XUS HSH",120,0 ) | |
| 7328 | ; | |
| 7329 | "RTN","XUS HSH",121,0 ) | |
| 7330 | AESDECR(TE XT,KEY,IV) ;AES Decr ypt, IA #6 189 | |
| 7331 | "RTN","XUS HSH",122,0 ) | |
| 7332 | ;Use with $$EASENCR | |
| 7333 | "RTN","XUS HSH",123,0 ) | |
| 7334 | ;Input: TEXT = C iphertext string to be decrypt ed. | |
| 7335 | "RTN","XUS HSH",124,0 ) | |
| 7336 | ; KEY = I nput key m aterial 16 , 24, or 3 2 characte rs long. | |
| 7337 | "RTN","XUS HSH",125,0 ) | |
| 7338 | ; IV = I nitializat ion vector (optional ). If this argument is present it must b e 16 chara cters long . | |
| 7339 | "RTN","XUS HSH",126,0 ) | |
| 7340 | ;Return: String = P laintext. | |
| 7341 | "RTN","XUS HSH",127,0 ) | |
| 7342 | ;ZEXCEPT: Encryptio n,AESCBCDe crypt | |
| 7343 | "RTN","XUS HSH",128,0 ) | |
| 7344 | I ('$D(TE XT))!('$D( KEY)) Q "" | |
| 7345 | "RTN","XUS HSH",129,0 ) | |
| 7346 | Q $SYSTEM .Encryptio n.AESCBCDe crypt(TEXT ,KEY,$G(IV )) | |
| 7347 | "RTN","XUS HSH",130,0 ) | |
| 7348 | ; | |
| 7349 | "RTN","XUS HSH",131,0 ) | |
| 7350 | Z ;; | |
| 7351 | "RTN","XUS HSH",132,0 ) | |
| 7352 | ;;&Qu9l) Jjk|1O+NpA =3*Lbv[(XF ,zZWHgi>S" UM;0@.dIon }4_Pw-8qyC ?K/YV6t7sE ]f~x'D`TB% R#a{\!G<2$ h5rc:me | |
| 7353 | "RTN","XUS HSH",133,0 ) | |
| 7354 | ;;-tFWg@0 D[T2{MZLb/ o8y.Jp3Oh7 w:knRmqV~X u#E]GYC+'! rP(4|ScBU" Nv*}z&da6j <e$H,xKA9\ ; s>?%`51I =il_fQ) | |
| 7355 | "RTN","XUS HSH",134,0 ) | |
| 7356 | ;;1ZsHoTn Y;av~%0O+h X,gx[?qCFA /:6{V7|y*f }]258)4GUN l-Q_@r#cPW >$w kB3D"K (iLJ=!E'S< MRe&p.mjI\ d`u9tzb | |
| 7357 | "RTN","XUS HSH",135,0 ) | |
| 7358 | ;;J02b7|* p>`WlOm6qI 1Q\Me&)i.E TGwH"RLVu{ oBv=P?8+X- j%A!(<]Z,g kh4FDc$}K9 n5YC#af;x3 /Uty~_N@'r S[sz: d | |
| 7359 | "RTN","XUS HSH",136,0 ) | |
| 7360 | ;;>uKF}Qp Bl;~A2DVO= eY</Em&onT .j#+,058"a $k!WN:7LM@ \hGv]-3_41 `'*y?UPwCZ X% xIq{(ft i)r9HSgRJb 6cd|sz[ | |
| 7361 | "RTN","XUS HSH",137,0 ) | |
| 7362 | ;;]z>}GUq T.K4ePp#;M sf"FHc8[J$ I2%Sx-~3Eu rkgBV?\*iW |&_@=YZ 5b 7/<9,`0:Ny RaQlhv)X1D o6'({!mLjA tCO+nwd | |
| 7363 | "RTN","XUS HSH",138,0 ) | |
| 7364 | ;;6Bv>kYg j_GJFE`q]! H27usXz5Zx R%p.Kh{)tU e:~=LV@/[S w1<Ob$#,8d aoT\4cri?A l+Nn3IPmMy 9*0"QW|'Cf D&;}- ( | |
| 7365 | "RTN","XUS HSH",139,0 ) | |
| 7366 | ;;_}+Fkea 1<Z,SDh~ ` Y62BHuN-Jq O>5j(xsl3* !{G"T&M[/w W4PpiCLtUI 9bm:r%fRV. @dQE0A]c\$ o|y7;8g?)# =Kz'vnX | |
| 7367 | "RTN","XUS HSH",140,0 ) | |
| 7368 | ;;TZlp]~x %8,E.}|kMH 9/!3a z`yW ed0Ccm\jB# SgOfIJ&_(6 s{K"@L);>P 5<uYD2+nvV Rb:'$?XNio qA17-rU=wF t*Gh[4Q | |
| 7369 | "RTN","XUS HSH",141,0 ) | |
| 7370 | ;;{.= Kt& vz8_`D;+BY c-GkQ"[gJd |]oInwyT'l >)e:XN3UVa hiS0!9PqE$ L?HA4,R/Mm 2W~<*6pjrF #@uZ}5%7xb s(Of1\C | |
| 7371 | "RTN","XUS HSH",142,0 ) | |
| 7372 | ;;f6\W:mY iF.$"hR<Xq E4_sdk-3T, yO#Ix}`r'n /C)tp9{=N BljLKgvuc[ P&!>]VU~20 zD+1A5H8%S GQ?@*(Zb|o 7JM;aew | |
| 7373 | "RTN","XUS HSH",143,0 ) | |
| 7374 | ;;]'x[m!8 OPYLQosE t w{$HuZv"*G h;7N2.D~Ji 3<%e)@a0fB U&dCR1A+=M n\p|jzTyK` #/S_br:-V> FI96,}cq4l 5?WXgk( | |
| 7375 | "RTN","XUS HSH",144,0 ) | |
| 7376 | ;;A{;0d/H $jg.Niy!:' tcah`&z\*" GTeO=MFI~Z 5vbu>m_9)C }6Ps73%x]w [?Xrf+QKRq WB|<4EY8DS n1kL oV-@2 #lU(Jp, | |
| 7377 | "RTN","XUS HSH",145,0 ) | |
| 7378 | ;;Aot4N!@ 'r/{Rk_<EC "B8l +6)YF z?ID:evMJ[ SpZXPs9>f0 \caKwU]%*y }GH,m7QdhT &b1V~-L5Og x|qju=$`32 (.Win;# | |
| 7379 | "RTN","XUS HSH",146,0 ) | |
| 7380 | ;;-xZ\h3_ $9.7f>Be!* sT w"UAJ4{ q[0mybrENS <dP&]~2i8I a'MjcKYu;: Rn=G/)t?1W +#%5Q|l(v6 pFO`D@V,oC kgzX}LH | |
| 7381 | "RTN","XUS HSH",147,0 ) | |
| 7382 | ;;mkU3n g /96z>Hx`C" fl5e#uw}Kr j7_o*J+vbN R)h\XyOVZ@ tE{QTM|]8; c?$PaBW:40 ,1dY%FG!L[ i~D(A.2p=- S'&<sqI | |
| 7383 | "RTN","XUS HSH",148,0 ) | |
| 7384 | ;;pnRq(hW 1)`Xt7D=9P aT*8<d+3/v IEQrcb-gBj YH]MSU#Nwi s5.om_%Cu> }6~x{;|!FA \y ekKl,O& ['?VG0:2@L Z$fJ4"z | |
| 7385 | "RTN","XUS HSH",149,0 ) | |
| 7386 | ;;RJfF>=} :0@(8tW-Ai d6h*{/,)ON _B"MZHo.?I ]Eek<yL5v3 $`c[x~74aY qnDuz1bp+\ 2smlVCQSP# G&j;X9r%g' w!|TKU | |
| 7387 | "RTN","XUS HSH",150,0 ) | |
| 7388 | ;;o*B~e]p 0lRY[=/`7C nfO'Wb2+sd 3a,6#k{&LU (".qMNG$A% mg:J?Dwc!x 5XvS;yj4t< uP@h_KT98 }\H1ZQ-rFi |I)>zVE | |
| 7389 | "RTN","XUS HSH",151,0 ) | |
| 7390 | ;;E7UvoK3 Z%-y$2]s?} mBLQ!OVN'd 58&+rk4;_ >u#/1PIt@< ~x[G`WA"CM iq|pj=,:a) glXJn0RbwF fDz*e(\H9h c6.{TSY | |
| 7391 | "RTN","XUS HSH",152,0 ) | |
| 7392 | ;; | |
| 7393 | "RTN","XUS KAAJ") | |
| 7394 | 0^28^B1171 8164^B1162 9985 | |
| 7395 | "RTN","XUS KAAJ",1,0) | |
| 7396 | XUSKAAJ ;; 12/15/15 08:54;08/2 4/2006 | |
| 7397 | "RTN","XUS KAAJ",2,0) | |
| 7398 | ;;8.0;KER NEL;**329, 430,659**; Jul 10, 19 95;Build 2 2 | |
| 7399 | "RTN","XUS KAAJ",3,0) | |
| 7400 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 7401 | "RTN","XUS KAAJ",4,0) | |
| 7402 | ;; | |
| 7403 | "RTN","XUS KAAJ",5,0) | |
| 7404 | QUIT | |
| 7405 | "RTN","XUS KAAJ",6,0) | |
| 7406 | ; | |
| 7407 | "RTN","XUS KAAJ",7,0) | |
| 7408 | ; ------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 7409 | "RTN","XUS KAAJ",8,0) | |
| 7410 | ; SSO/U C KAAJEE R PCs | |
| 7411 | "RTN","XUS KAAJ",9,0) | |
| 7412 | ; ------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 7413 | "RTN","XUS KAAJ",10,0 ) | |
| 7414 | ; | |
| 7415 | "RTN","XUS KAAJ",11,0 ) | |
| 7416 | USERINFO(R ET,CLIENTI P,SERVERNM ) ; called by XUS KA AJEE GET U SER INFO r pc | |
| 7417 | "RTN","XUS KAAJ",12,0 ) | |
| 7418 | ; | |
| 7419 | "RTN","XUS KAAJ",13,0 ) | |
| 7420 | ; INPUT: | |
| 7421 | "RTN","XUS KAAJ",14,0 ) | |
| 7422 | ; CLIENTI P is IP ad dress of t he client workstatio n, used fo r logging (signon lo g) and IP blocking ( failed acc ess attemp ts). | |
| 7423 | "RTN","XUS KAAJ",15,0 ) | |
| 7424 | ; SERVERN M is Ident ifying nam e for the calling ap plication or server, used for logging (s ignon log) . | |
| 7425 | "RTN","XUS KAAJ",16,0 ) | |
| 7426 | ; OUTPUT: | |
| 7427 | "RTN","XUS KAAJ",17,0 ) | |
| 7428 | ; Result( 0) is the users DUZ. | |
| 7429 | "RTN","XUS KAAJ",18,0 ) | |
| 7430 | ; Result( 1) is the user name from the . 01 field. | |
| 7431 | "RTN","XUS KAAJ",19,0 ) | |
| 7432 | ; Result( 2) is the users full name from the name standard f ile. | |
| 7433 | "RTN","XUS KAAJ",20,0 ) | |
| 7434 | ; Result( 3) is the FAMILY (LA ST) NAME | |
| 7435 | "RTN","XUS KAAJ",21,0 ) | |
| 7436 | ; Result( 4) is the GIVEN (FIR ST) NAME | |
| 7437 | "RTN","XUS KAAJ",22,0 ) | |
| 7438 | ; Result( 5) is the MIDDLE NAM E | |
| 7439 | "RTN","XUS KAAJ",23,0 ) | |
| 7440 | ; Result( 6) is the PREFIX | |
| 7441 | "RTN","XUS KAAJ",24,0 ) | |
| 7442 | ; Result( 7) is the SUFFIX | |
| 7443 | "RTN","XUS KAAJ",25,0 ) | |
| 7444 | ; Result( 8) is the DEGREE | |
| 7445 | "RTN","XUS KAAJ",26,0 ) | |
| 7446 | ; Result( 9) is stat ion # of t he divisio n that the user is w orking in. | |
| 7447 | "RTN","XUS KAAJ",27,0 ) | |
| 7448 | ; Result( 10) is the station # of the pa rent facil ity for th e login di vision | |
| 7449 | "RTN","XUS KAAJ",28,0 ) | |
| 7450 | ; Result( 11) is the station # from the KSP site p arameters, the paren t "compute r system" | |
| 7451 | "RTN","XUS KAAJ",29,0 ) | |
| 7452 | ; Result( 12) is the signon lo g entry IE N | |
| 7453 | "RTN","XUS KAAJ",30,0 ) | |
| 7454 | ; Result( 13) = # of permissib le divisio ns | |
| 7455 | "RTN","XUS KAAJ",31,0 ) | |
| 7456 | ; Result( 14-n) are the permis sible divi sions for user login , in the f ormat: | |
| 7457 | "RTN","XUS KAAJ",32,0 ) | |
| 7458 | ; IEN of file 4^Sta tion Name^ Station Nu mber^defau lt? (1 or 0) | |
| 7459 | "RTN","XUS KAAJ",33,0 ) | |
| 7460 | ; | |
| 7461 | "RTN","XUS KAAJ",34,0 ) | |
| 7462 | N I,XUNC, XUNC1,XUKE RR,XUKRET, XUDIVS,XUK I,XULINE,X UPARENT,XU DIVLIN,XUK DEF | |
| 7463 | "RTN","XUS KAAJ",35,0 ) | |
| 7464 | ; | |
| 7465 | "RTN","XUS KAAJ",36,0 ) | |
| 7466 | ; initial ize return array | |
| 7467 | "RTN","XUS KAAJ",37,0 ) | |
| 7468 | S RET(0)= DUZ | |
| 7469 | "RTN","XUS KAAJ",38,0 ) | |
| 7470 | F I=1:1:1 3 S RET(I) ="" | |
| 7471 | "RTN","XUS KAAJ",39,0 ) | |
| 7472 | ; | |
| 7473 | "RTN","XUS KAAJ",40,0 ) | |
| 7474 | ; get ptr to Name C omponents file | |
| 7475 | "RTN","XUS KAAJ",41,0 ) | |
| 7476 | D GETS^DI Q(200,DUZ_ ",","10.1" ,"I","XUNC ","XUKERR" ) | |
| 7477 | "RTN","XUS KAAJ",42,0 ) | |
| 7478 | I '$D(XUK ERR) D | |
| 7479 | "RTN","XUS KAAJ",43,0 ) | |
| 7480 | .S XUNC=X UNC(200,DU Z_",",10.1 ,"I") | |
| 7481 | "RTN","XUS KAAJ",44,0 ) | |
| 7482 | .; get na me compone nts | |
| 7483 | "RTN","XUS KAAJ",45,0 ) | |
| 7484 | .D GETS^D IQ(20,XUNC _",","1:6" ,"","XUNC1 ","XUKERR" ) | |
| 7485 | "RTN","XUS KAAJ",46,0 ) | |
| 7486 | .I '$D(XU KERR) D | |
| 7487 | "RTN","XUS KAAJ",47,0 ) | |
| 7488 | ..S RET(3 )=XUNC1(20 ,XUNC_",", 1) S:'$L(R ET(3)) RET (3)="^" | |
| 7489 | "RTN","XUS KAAJ",48,0 ) | |
| 7490 | ..S RET(4 )=XUNC1(20 ,XUNC_",", 2) S:'$L(R ET(4)) RET (4)="^" | |
| 7491 | "RTN","XUS KAAJ",49,0 ) | |
| 7492 | ..S RET(5 )=XUNC1(20 ,XUNC_",", 3) S:'$L(R ET(5)) RET (5)="^" | |
| 7493 | "RTN","XUS KAAJ",50,0 ) | |
| 7494 | ..S RET(6 )=XUNC1(20 ,XUNC_",", 4) S:'$L(R ET(6)) RET (6)="^" | |
| 7495 | "RTN","XUS KAAJ",51,0 ) | |
| 7496 | ..S RET(7 )=XUNC1(20 ,XUNC_",", 5) S:'$L(R ET(7)) RET (7)="^" | |
| 7497 | "RTN","XUS KAAJ",52,0 ) | |
| 7498 | ..S RET(8 )=XUNC1(20 ,XUNC_",", 6) S:'$L(R ET(8)) RET (8)="^" | |
| 7499 | "RTN","XUS KAAJ",53,0 ) | |
| 7500 | ; | |
| 7501 | "RTN","XUS KAAJ",54,0 ) | |
| 7502 | ; get .01 New Perso n name, Na me compone nts name, and login division i nfo | |
| 7503 | "RTN","XUS KAAJ",55,0 ) | |
| 7504 | D USERINF O^XUSRB2(. XUKRET) | |
| 7505 | "RTN","XUS KAAJ",56,0 ) | |
| 7506 | S RET(1)= XUKRET(1) S:'$L(RET( 1)) RET(1) ="^" | |
| 7507 | "RTN","XUS KAAJ",57,0 ) | |
| 7508 | S RET(2)= XUKRET(2) S:'$L(RET( 2)) RET(2) ="^" | |
| 7509 | "RTN","XUS KAAJ",58,0 ) | |
| 7510 | S RET(9)= $P(XUKRET( 3),U,3) S: '$L(RET(9) ) RET(9)=" 0" | |
| 7511 | "RTN","XUS KAAJ",59,0 ) | |
| 7512 | ; | |
| 7513 | "RTN","XUS KAAJ",60,0 ) | |
| 7514 | ; get par ent facili ty station # | |
| 7515 | "RTN","XUS KAAJ",61,0 ) | |
| 7516 | S XUPAREN T=$$PRNT^X UAF4(RET(9 )) | |
| 7517 | "RTN","XUS KAAJ",62,0 ) | |
| 7518 | S RET(10) =$S(($P(XU PARENT,U)< 1):XUPAREN T,1:$$STA^ XUAF4($P(X UPARENT,U) )) | |
| 7519 | "RTN","XUS KAAJ",63,0 ) | |
| 7520 | S:'$L(RET (10)) RET( 10)="^" | |
| 7521 | "RTN","XUS KAAJ",64,0 ) | |
| 7522 | ; | |
| 7523 | "RTN","XUS KAAJ",65,0 ) | |
| 7524 | ; get the computer system sta tion# | |
| 7525 | "RTN","XUS KAAJ",66,0 ) | |
| 7526 | S RET(11) =$$STA^XUA F4($$KSP^X UPARAM("IN ST")) | |
| 7527 | "RTN","XUS KAAJ",67,0 ) | |
| 7528 | S:'$L(RET (11)) RET( 11)="0" | |
| 7529 | "RTN","XUS KAAJ",68,0 ) | |
| 7530 | ; | |
| 7531 | "RTN","XUS KAAJ",69,0 ) | |
| 7532 | ; make si gnon log e ntry, get IEN | |
| 7533 | "RTN","XUS KAAJ",70,0 ) | |
| 7534 | S RET(12) =$$SIGNLOG ^XUSKAAJ(C LIENTIP,SE RVERNM) | |
| 7535 | "RTN","XUS KAAJ",71,0 ) | |
| 7536 | ; | |
| 7537 | "RTN","XUS KAAJ",72,0 ) | |
| 7538 | ; get per mitted div isions | |
| 7539 | "RTN","XUS KAAJ",73,0 ) | |
| 7540 | S XUDIVLI N=13 ; ret urn array subscript counter fo r division start poi nt | |
| 7541 | "RTN","XUS KAAJ",74,0 ) | |
| 7542 | D DIVGET^ XUSRB2(.XU DIVS,DUZ) | |
| 7543 | "RTN","XUS KAAJ",75,0 ) | |
| 7544 | I '+XUDIV S(0) S RET (XUDIVLIN) =1,RET(XUD IVLIN+1)=X UKRET(3)_" ^1" ; only 1 divisio n, so use login divi sion. | |
| 7545 | "RTN","XUS KAAJ",76,0 ) | |
| 7546 | I +XUDIVS (0) S RET( XUDIVLIN)= +XUDIVS(0) D | |
| 7547 | "RTN","XUS KAAJ",77,0 ) | |
| 7548 | .S XUKDEF =$O(^VA(20 0,DUZ,2,"A X1",1,"")) ; default division if any. Sh ould only be 1. | |
| 7549 | "RTN","XUS KAAJ",78,0 ) | |
| 7550 | .S XUKI=0 ,XULINE=XU DIVLIN F S XUKI=$O( XUDIVS(XUK I)) Q:XUKI ']"" D | |
| 7551 | "RTN","XUS KAAJ",79,0 ) | |
| 7552 | ..S XULIN E=XULINE+1 ,RET(XULIN E)=XUDIVS( XUKI) | |
| 7553 | "RTN","XUS KAAJ",80,0 ) | |
| 7554 | ..S $P(RE T(XULINE), U,4)=$S($P (XUDIVS(XU KI),U)=XUK DEF:1,1:0) | |
| 7555 | "RTN","XUS KAAJ",81,0 ) | |
| 7556 | ; | |
| 7557 | "RTN","XUS KAAJ",82,0 ) | |
| 7558 | Q | |
| 7559 | "RTN","XUS KAAJ",83,0 ) | |
| 7560 | ; | |
| 7561 | "RTN","XUS KAAJ",84,0 ) | |
| 7562 | SIGNOFF(RE T,DA) ; ki ll entry i n sign-on log. Calle d by XUS K AAJEE LOGO UT rpc. | |
| 7563 | "RTN","XUS KAAJ",85,0 ) | |
| 7564 | D LOUT^XU SCLEAN(DA) | |
| 7565 | "RTN","XUS KAAJ",86,0 ) | |
| 7566 | S RET=1 Q | |
| 7567 | "RTN","XUS KAAJ",87,0 ) | |
| 7568 | ; | |
| 7569 | "RTN","XUS KAAJ",88,0 ) | |
| 7570 | SIGNLOG(CL IENTIP,SER VERNM) ; m ake a sign on log ent ry for KAA JEE user | |
| 7571 | "RTN","XUS KAAJ",89,0 ) | |
| 7572 | ; todo: e xpand size of server name fiel d? | |
| 7573 | "RTN","XUS KAAJ",90,0 ) | |
| 7574 | N XP1,XPI P,XPCLNM,Y | |
| 7575 | "RTN","XUS KAAJ",91,0 ) | |
| 7576 | S:$D(IO(" IP")) XPIP =IO("IP") S IO("IP") =CLIENTIP | |
| 7577 | "RTN","XUS KAAJ",92,0 ) | |
| 7578 | S:$D(IO(" CLNM")) XP CLNM=IO("C LNM") S IO ("CLNM")=$ E(SERVERNM ,1,20) | |
| 7579 | "RTN","XUS KAAJ",93,0 ) | |
| 7580 | ; | |
| 7581 | "RTN","XUS KAAJ",94,0 ) | |
| 7582 | D GETENV^ %ZOSV | |
| 7583 | "RTN","XUS KAAJ",95,0 ) | |
| 7584 | S XP1=$$S LOG^XUS1($ P(Y,U,2),, ,$P(Y,U),$ P(Y,U,3)," KAAJEE","" ) | |
| 7585 | "RTN","XUS KAAJ",96,0 ) | |
| 7586 | ; | |
| 7587 | "RTN","XUS KAAJ",97,0 ) | |
| 7588 | S:$D(XPIP ) IO("IP") =XPIP | |
| 7589 | "RTN","XUS KAAJ",98,0 ) | |
| 7590 | S:$D(XPCL NM) IO("CL NM")=XPCLN M | |
| 7591 | "RTN","XUS KAAJ",99,0 ) | |
| 7592 | Q XP1 | |
| 7593 | "RTN","XUS KAAJ",100, 0) | |
| 7594 | ; | |
| 7595 | "RTN","XUS KAAJ1") | |
| 7596 | 0^29^B2125 056^B16874 17 | |
| 7597 | "RTN","XUS KAAJ1",1,0 ) | |
| 7598 | XUSKAAJ1 ; ;12/15/15 08:54;10/ 19/2009 | |
| 7599 | "RTN","XUS KAAJ1",2,0 ) | |
| 7600 | ;;8.0;KER NEL;**504, 659**;Jul 10, 1995;B uild 22 | |
| 7601 | "RTN","XUS KAAJ1",3,0 ) | |
| 7602 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 7603 | "RTN","XUS KAAJ1",4,0 ) | |
| 7604 | ;; | |
| 7605 | "RTN","XUS KAAJ1",5,0 ) | |
| 7606 | QUIT | |
| 7607 | "RTN","XUS KAAJ1",6,0 ) | |
| 7608 | ; | |
| 7609 | "RTN","XUS KAAJ1",7,0 ) | |
| 7610 | ; ------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 7611 | "RTN","XUS KAAJ1",8,0 ) | |
| 7612 | ; SSO/U C KAAJEE R PCs | |
| 7613 | "RTN","XUS KAAJ1",9,0 ) | |
| 7614 | ; ------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 7615 | "RTN","XUS KAAJ1",10, 0) | |
| 7616 | ; | |
| 7617 | "RTN","XUS KAAJ1",11, 0) | |
| 7618 | CCOWIP(RET ,CLIENTIP) ;rpc. CCO W Auto Sig non Handle for middl e tiered a pplication servers | |
| 7619 | "RTN","XUS KAAJ1",12, 0) | |
| 7620 | N XUIOIP, XULOOPIP | |
| 7621 | "RTN","XUS KAAJ1",13, 0) | |
| 7622 | S XUIOIP= $G(IO("IP" )) ; save original | |
| 7623 | "RTN","XUS KAAJ1",14, 0) | |
| 7624 | ; get act ual ip add ress inste ad of loca lhost addr ess if pos sible | |
| 7625 | "RTN","XUS KAAJ1",15, 0) | |
| 7626 | ;S IO("IP ")=$S($G(C LIENTIP)=" 127.0.0.1" :XUIOIP,$G (CLIENTIP) ="":XUIOIP ,1:$G(CLIE NTIP)) | |
| 7627 | "RTN","XUS KAAJ1",16, 0) | |
| 7628 | S XULOOPI P=$$CONVER T^XLFIPV(" 127.0.0.1" ) ;p659 | |
| 7629 | "RTN","XUS KAAJ1",17, 0) | |
| 7630 | S IO("IP" )=$S($G(CL IENTIP)=XU LOOPIP:XUI OIP,$G(CLI ENTIP)="": XUIOIP,1:$ G(CLIENTIP )) ;p659 | |
| 7631 | "RTN","XUS KAAJ1",18, 0) | |
| 7632 | D CCOW^XU SRB4(.RET) | |
| 7633 | "RTN","XUS KAAJ1",19, 0) | |
| 7634 | S IO("IP" )=XUIOIP ; revert to original | |
| 7635 | "RTN","XUS KAAJ1",20, 0) | |
| 7636 | Q | |
| 7637 | "RTN","XUS KAAJ1",21, 0) | |
| 7638 | ; | |
| 7639 | "RTN","XUS KAAJ1",22, 0) | |
| 7640 | USERINFO(R ET,CLIENTI P,SERVERNM ,CCOWTOK) ; rpc, cal led by XUS KAAJEE GE T USER INF O VIA PROX Y | |
| 7641 | "RTN","XUS KAAJ1",23, 0) | |
| 7642 | ; | |
| 7643 | "RTN","XUS KAAJ1",24, 0) | |
| 7644 | N %,DUZ,X UF,XULOOPI P | |
| 7645 | "RTN","XUS KAAJ1",25, 0) | |
| 7646 | S XUF=$G( XUF,0) | |
| 7647 | "RTN","XUS KAAJ1",26, 0) | |
| 7648 | S %=$G(IO ("IP")) ; save origi nal | |
| 7649 | "RTN","XUS KAAJ1",27, 0) | |
| 7650 | ; get act ual ip add ress inste ad of loca lhost addr ess if pos sible | |
| 7651 | "RTN","XUS KAAJ1",28, 0) | |
| 7652 | ;S IO("IP ")=$S($G(C LIENTIP)=" 127.0.0.1" :%,$G(CLIE NTIP)="":% ,1:$G(CLIE NTIP)) | |
| 7653 | "RTN","XUS KAAJ1",29, 0) | |
| 7654 | S XULOOPI P=$$CONVER T^XLFIPV(" 127.0.0.1" ) ;p659 | |
| 7655 | "RTN","XUS KAAJ1",30, 0) | |
| 7656 | S IO("IP" )=$S($G(CL IENTIP)=XU LOOPIP:%,$ G(CLIENTIP )="":%,1:$ G(CLIENTIP )) ;p659 | |
| 7657 | "RTN","XUS KAAJ1",31, 0) | |
| 7658 | S DUZ=$$C HECKAV^XUS ($$DECRYP^ XUSRB1(CCO WTOK)) | |
| 7659 | "RTN","XUS KAAJ1",32, 0) | |
| 7660 | S IO("IP" )=% ; reve rt to orig inal | |
| 7661 | "RTN","XUS KAAJ1",33, 0) | |
| 7662 | D USERINF O^XUSKAAJ( .RET,CLIEN TIP,SERVER NM) | |
| 7663 | "RTN","XUS KAAJ1",34, 0) | |
| 7664 | Q | |
| 7665 | "RTN","XUS KAAJ1",35, 0) | |
| 7666 | ; | |
| 7667 | "RTN","XUS RB") | |
| 7668 | 0^8^B35393 386^B33401 626 | |
| 7669 | "RTN","XUS RB",1,0) | |
| 7670 | XUSRB ;ISC SF/RWF - R equest Bro ker ;12/01 /15 07:54 | |
| 7671 | "RTN","XUS RB",2,0) | |
| 7672 | ;;8.0;KER NEL;**11,1 6,28,32,59 ,70,82,109 ,115,165,1 50,180,213 ,234,238,2 65,337,395 ,404,437,5 23,659**;J ul 10, 199 5;Build 22 | |
| 7673 | "RTN","XUS RB",3,0) | |
| 7674 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 7675 | "RTN","XUS RB",4,0) | |
| 7676 | Q ;No en try from t op | |
| 7677 | "RTN","XUS RB",5,0) | |
| 7678 | ; | |
| 7679 | "RTN","XUS RB",6,0) | |
| 7680 | ;RPC BROK ER calls, First para meter is a lways call -by-refere nce | |
| 7681 | "RTN","XUS RB",7,0) | |
| 7682 | VALIDAV(RE T,AVCODE) ;RPC. XUS CVC - IA # 6296 | |
| 7683 | "RTN","XUS RB",8,0) | |
| 7684 | ;Check a users acce ss | |
| 7685 | "RTN","XUS RB",9,0) | |
| 7686 | ;Return R (0)=DUZ, R (1)=(0=OK, 1,2...=Ca n't sign-o n for some reason) | |
| 7687 | "RTN","XUS RB",10,0) | |
| 7688 | ; R(2)=ve rify needs changing, R(3)=Mess age, R(4)= 0, R(5)=ms g cnt, R(5 +n) | |
| 7689 | "RTN","XUS RB",11,0) | |
| 7690 | ; R(R(5)+ 6)=# div u ser must s elect from , R(R(5)+6 +n)=div | |
| 7691 | "RTN","XUS RB",12,0) | |
| 7692 | ; | |
| 7693 | "RTN","XUS RB",13,0) | |
| 7694 | N X,XUSER ,XUNOW,XUD EV,XUM,XUM SG,%1,VCCH K DUZ | |
| 7695 | "RTN","XUS RB",14,0) | |
| 7696 | S U="^",R ET(0)=0,RE T(5)=0,XUF =$G(XUF,0) ,XUM=0,XUM SG=0,XUDEV =0 | |
| 7697 | "RTN","XUS RB",15,0) | |
| 7698 | S DUZ=0,D UZ(0)="",V CCH=0 D NO W | |
| 7699 | "RTN","XUS RB",16,0) | |
| 7700 | S XOPT=$$ STATE^XWBS EC("XUS XO PT") | |
| 7701 | "RTN","XUS RB",17,0) | |
| 7702 | S XUMSG=$ $INHIBIT() I XUMSG S XUM=1 G V AX ;Logon inhibited | |
| 7703 | "RTN","XUS RB",18,0) | |
| 7704 | ;3 Strike s | |
| 7705 | "RTN","XUS RB",19,0) | |
| 7706 | I $$LKCHE CK^XUSTZIP ($G(IO("IP "))) S XUM SG=7 G VAX ;IP locke d | |
| 7707 | "RTN","XUS RB",20,0) | |
| 7708 | ;Check ty pe of sign -on code | |
| 7709 | "RTN","XUS RB",21,0) | |
| 7710 | I $L(AVCO DE) D | |
| 7711 | "RTN","XUS RB",22,0) | |
| 7712 | . I $E(AV CODE,1,2)= "~1" S DUZ =$$CHKASH^ XUSRB4(AVC ODE),DUZ(" AUTHENTICA TION")="AS HTOKEN" Q | |
| 7713 | "RTN","XUS RB",23,0) | |
| 7714 | . I $E(AV CODE,1,2)= "~2" S DUZ =$$CHKCCOW ^XUSRB4(AV CODE),DUZ( "AUTHENTIC ATION")="C COWTOKEN" Q | |
| 7715 | "RTN","XUS RB",24,0) | |
| 7716 | . S DUZ=$ $CHECKAV^X US($$DECRY P^XUSRB1(A VCODE)),DU Z("AUTHENT ICATION")= "AVCODES" | |
| 7717 | "RTN","XUS RB",25,0) | |
| 7718 | . Q | |
| 7719 | "RTN","XUS RB",26,0) | |
| 7720 | I DUZ'>0, $$FAIL^XUS 3 D G VAX | |
| 7721 | "RTN","XUS RB",27,0) | |
| 7722 | . S XUM=1 ,XUMSG=7,X =$$RA^XUST Z H 5 ;3 S trikes | |
| 7723 | "RTN","XUS RB",28,0) | |
| 7724 | S XUMSG=$ $UVALID^XU S() G:XUMS G VAX ;Che ck User | |
| 7725 | "RTN","XUS RB",29,0) | |
| 7726 | S VCCH=$$ VCVALID() ;Check VC | |
| 7727 | "RTN","XUS RB",30,0) | |
| 7728 | I $G(DUZ( "LOA"))="" S DUZ("LO A")=2 | |
| 7729 | "RTN","XUS RB",31,0) | |
| 7730 | I DUZ>0 S XUMSG=$$P OST(1) | |
| 7731 | "RTN","XUS RB",32,0) | |
| 7732 | I XUMSG>0 S DUZ=0,V CCH=0 ;If can't sign -on, don't tell need to change VC | |
| 7733 | "RTN","XUS RB",33,0) | |
| 7734 | I 'XUMSG, VCCH S XUM SG=12 D SE T^XWBSEC(" XUS DUZ",D UZ) ;Need to change VC | |
| 7735 | "RTN","XUS RB",34,0) | |
| 7736 | VAX S:XUMS G>0 DUZ=0 ;Can't sig n-on, Clea r DUZ. | |
| 7737 | "RTN","XUS RB",35,0) | |
| 7738 | I DUZ>0 D | |
| 7739 | "RTN","XUS RB",36,0) | |
| 7740 | . S DUZ(" LOA")=2 | |
| 7741 | "RTN","XUS RB",37,0) | |
| 7742 | . D POST2 | |
| 7743 | "RTN","XUS RB",38,0) | |
| 7744 | S RET(0)= DUZ,RET(1) =XUM,RET(2 )=VCCH,RET (3)=$S(XUM SG:$$TXT^X US3(XUMSG) ,1:""),RET (4)=0 | |
| 7745 | "RTN","XUS RB",39,0) | |
| 7746 | K DUZ("CC OW") | |
| 7747 | "RTN","XUS RB",40,0) | |
| 7748 | Q | |
| 7749 | "RTN","XUS RB",41,0) | |
| 7750 | ; | |
| 7751 | "RTN","XUS RB",42,0) | |
| 7752 | NOW S U="^ ",XUNOW=$$ NOW^XLFDT( ),DT=$P(XU NOW,".") | |
| 7753 | "RTN","XUS RB",43,0) | |
| 7754 | Q | |
| 7755 | "RTN","XUS RB",44,0) | |
| 7756 | ; | |
| 7757 | "RTN","XUS RB",45,0) | |
| 7758 | INTRO(RET) ;Return I NTRO TEXT. | |
| 7759 | "RTN","XUS RB",46,0) | |
| 7760 | D INTRO^X US1A("RET" ) | |
| 7761 | "RTN","XUS RB",47,0) | |
| 7762 | Q | |
| 7763 | "RTN","XUS RB",48,0) | |
| 7764 | ; | |
| 7765 | "RTN","XUS RB",49,0) | |
| 7766 | VCVALID() ;Return 1 if the Ver ify code n eeds chang ing. | |
| 7767 | "RTN","XUS RB",50,0) | |
| 7768 | Q:'$G(DUZ ) 1 | |
| 7769 | "RTN","XUS RB",51,0) | |
| 7770 | Q:$P($G(^ VA(200,DUZ ,.1)),U,2) ="" 1 ;VC is empty | |
| 7771 | "RTN","XUS RB",52,0) | |
| 7772 | Q:$P(^VA( 200,DUZ,0) ,U,8)=1 0 ;VC never expires | |
| 7773 | "RTN","XUS RB",53,0) | |
| 7774 | N XUSER D USER^XUS( DUZ) | |
| 7775 | "RTN","XUS RB",54,0) | |
| 7776 | Q $$VCHG^ XUS1 | |
| 7777 | "RTN","XUS RB",55,0) | |
| 7778 | ; | |
| 7779 | "RTN","XUS RB",56,0) | |
| 7780 | CVC(RET,XU 1) ;change VC, Retur n 0 = succ ess | |
| 7781 | "RTN","XUS RB",57,0) | |
| 7782 | N XU2,XU3 ,XU4 S DUZ =$G(DUZ),R ET(0)=99,X U4=$$STATE ^XWBSEC("X US DUZ") S :(DUZ=0)&( XU4>0) DUZ =XU4 Q:DUZ '>0 | |
| 7783 | "RTN","XUS RB",58,0) | |
| 7784 | S U="^",X U2=$P(XU1, U,2),XU3=$ P(XU1,U,3) ,XU1=$P(XU 1,U) | |
| 7785 | "RTN","XUS RB",59,0) | |
| 7786 | S XU1=$$D ECRYP^XUSR B1(XU1),XU 2=$$DECRYP ^XUSRB1(XU 2),XU3=$$D ECRYP^XUSR B1(XU3) | |
| 7787 | "RTN","XUS RB",60,0) | |
| 7788 | S XU3=$$B RCVC^XUS2( XU1,XU2),R ET(0)=+XU3 ,RET(1)=$P (XU3,U,2,9 ) | |
| 7789 | "RTN","XUS RB",61,0) | |
| 7790 | I XU3>0 S DUZ=0 ;Cl ean-up if not change d. | |
| 7791 | "RTN","XUS RB",62,0) | |
| 7792 | I 'XU3,XU 4 D KILL^X WBSEC("XUS DUZ"),POS T2 | |
| 7793 | "RTN","XUS RB",63,0) | |
| 7794 | Q | |
| 7795 | "RTN","XUS RB",64,0) | |
| 7796 | ; | |
| 7797 | "RTN","XUS RB",65,0) | |
| 7798 | SHOWPOST() ;EF. Chec k if shoul d send the POST SIGN -ON msg. | |
| 7799 | "RTN","XUS RB",66,0) | |
| 7800 | Q +$P($G( ^XTV(8989. 3,1,"XWB") ),"^",2) | |
| 7801 | "RTN","XUS RB",67,0) | |
| 7802 | ; | |
| 7803 | "RTN","XUS RB",68,0) | |
| 7804 | POST(CVC) ;Finish se tup partit ion, I CVC don't log yet | |
| 7805 | "RTN","XUS RB",69,0) | |
| 7806 | N X,XUM,X UDIV S:$D( IO)[0 IO=$ I S IO(0)= IO | |
| 7807 | "RTN","XUS RB",70,0) | |
| 7808 | K ^UTILIT Y($J),^TMP ($J) | |
| 7809 | "RTN","XUS RB",71,0) | |
| 7810 | I '$D(XUS ER(0)),DUZ D USER^XU S(DUZ) | |
| 7811 | "RTN","XUS RB",72,0) | |
| 7812 | S XUM=$$U SER^XUS1A Q:XUM>0 XU M ;User ca n't sign o n for some reason. | |
| 7813 | "RTN","XUS RB",73,0) | |
| 7814 | S RET(5)= 0 ;The nex t line sen ds the pos t sign-on msg | |
| 7815 | "RTN","XUS RB",74,0) | |
| 7816 | F %=1:1 Q :'$D(XUTEX T(%)) S R ET(5+%)=$E (XUTEXT(%) ,2,256),RE T(5)=% | |
| 7817 | "RTN","XUS RB",75,0) | |
| 7818 | I '$$SHOW POST S RET (5)=0 ;Thi s line sto ps the sen ding/displ ay of the msg. | |
| 7819 | "RTN","XUS RB",76,0) | |
| 7820 | D:'$G(CVC ) POST2 | |
| 7821 | "RTN","XUS RB",77,0) | |
| 7822 | Q 0 | |
| 7823 | "RTN","XUS RB",78,0) | |
| 7824 | ; | |
| 7825 | "RTN","XUS RB",79,0) | |
| 7826 | POST2 ;Fin ish User S etup for s ilent log- on | |
| 7827 | "RTN","XUS RB",80,0) | |
| 7828 | D:'$D(XUN OW) NOW | |
| 7829 | "RTN","XUS RB",81,0) | |
| 7830 | D DUZ^XUS 1A,SAVE^XU S1,LOG^XUS 1,ABT^XQ12 | |
| 7831 | "RTN","XUS RB",82,0) | |
| 7832 | D KILL^XW BSEC("XUS XOPT"),CLR FAC^XUS3($ G(IO("IP") )) ;p265 | |
| 7833 | "RTN","XUS RB",83,0) | |
| 7834 | D SETTIME ^XWBTCPM() ;Set norm al Broker time-out | |
| 7835 | "RTN","XUS RB",84,0) | |
| 7836 | S DTIME=$ $DTIME^XUP (DUZ) ;See DTIME set for user | |
| 7837 | "RTN","XUS RB",85,0) | |
| 7838 | K:$G(XWBV ER)<1.106 XQY,XQY0 ; Delete the sign-on c ontext. | |
| 7839 | "RTN","XUS RB",86,0) | |
| 7840 | K XUTEXT, XOPT,XUEON ,XUEOFF,XU TT,XUDEV,X USER | |
| 7841 | "RTN","XUS RB",87,0) | |
| 7842 | Q | |
| 7843 | "RTN","XUS RB",88,0) | |
| 7844 | ; | |
| 7845 | "RTN","XUS RB",89,0) | |
| 7846 | INHIBIT() ;Is Logon to this sy stem Inhib ited? | |
| 7847 | "RTN","XUS RB",90,0) | |
| 7848 | I $$INHIB 1() Q 1 | |
| 7849 | "RTN","XUS RB",91,0) | |
| 7850 | I $$INHIB 2() Q 2 | |
| 7851 | "RTN","XUS RB",92,0) | |
| 7852 | Q 0 | |
| 7853 | "RTN","XUS RB",93,0) | |
| 7854 | ; | |
| 7855 | "RTN","XUS RB",94,0) | |
| 7856 | INHIB1() ; The LOGON check | |
| 7857 | "RTN","XUS RB",95,0) | |
| 7858 | I $G(^%ZI S(14.5,"LO GON",XQVOL )) Q 1 | |
| 7859 | "RTN","XUS RB",96,0) | |
| 7860 | Q 0 | |
| 7861 | "RTN","XUS RB",97,0) | |
| 7862 | ; | |
| 7863 | "RTN","XUS RB",98,0) | |
| 7864 | INHIB2() ; The Max Us er Check | |
| 7865 | "RTN","XUS RB",99,0) | |
| 7866 | I $D(^%ZO SF("ACTJ") ) X ^("ACT J") I $P(X UVOL,U,3), ($P(XUVOL, U,3)'>Y) Q 2 | |
| 7867 | "RTN","XUS RB",100,0) | |
| 7868 | Q 0 | |
| 7869 | "RTN","XUS RB",101,0) | |
| 7870 | ; | |
| 7871 | "RTN","XUS RB",102,0) | |
| 7872 | LOGOUT ;Fi nish logou t of user. | |
| 7873 | "RTN","XUS RB",103,0) | |
| 7874 | N XU1 | |
| 7875 | "RTN","XUS RB",104,0) | |
| 7876 | D CLEARAL L^XWBDRPC( .XU1) | |
| 7877 | "RTN","XUS RB",105,0) | |
| 7878 | ;Remove C COW sign-o n data | |
| 7879 | "RTN","XUS RB",106,0) | |
| 7880 | S HDL=$G( ^XUTL("XQ" ,$J,"HDL") ) I $L(HDL ) D | |
| 7881 | "RTN","XUS RB",107,0) | |
| 7882 | . K ^XTMP (HDL,"JOB" ,$J) | |
| 7883 | "RTN","XUS RB",108,0) | |
| 7884 | . I $O(^X TMP(HDL,"J OB",0))="" K ^XTMP(H DL) | |
| 7885 | "RTN","XUS RB",109,0) | |
| 7886 | ; | |
| 7887 | "RTN","XUS RB",110,0) | |
| 7888 | D BYE^XUS CLEAN,XUTL ^XUSCLEAN ;Mark the sign-on lo g, File cl eanup. | |
| 7889 | "RTN","XUS RB",111,0) | |
| 7890 | Q | |
| 7891 | "RTN","XUS RB",112,0) | |
| 7892 | ;D1,D2 ar e place ho lders for now | |
| 7893 | "RTN","XUS RB",113,0) | |
| 7894 | SETUP(RET, XWBUSRNM,A SOSKIP,D2) ;RPC. XUS SIGNON SE TUP - IA # 1632 (API IA #4054) | |
| 7895 | "RTN","XUS RB",114,0) | |
| 7896 | ;sets up environmen t for GUI signon | |
| 7897 | "RTN","XUS RB",115,0) | |
| 7898 | N X1 K DU Z | |
| 7899 | "RTN","XUS RB",116,0) | |
| 7900 | S XWBUSRN M=$G(XWBUS RNM),ASOSK IP=$G(ASOS KIP) | |
| 7901 | "RTN","XUS RB",117,0) | |
| 7902 | I $L($G(X WBTIP)) S IO("IP")=X WBTIP | |
| 7903 | "RTN","XUS RB",118,0) | |
| 7904 | S IO("CLN M")=$$LOW^ XLFSTR($G( XWBCLMAN)) D ZIO^%ZI S4 | |
| 7905 | "RTN","XUS RB",119,0) | |
| 7906 | ;Setup ne eded varia bles | |
| 7907 | "RTN","XUS RB",120,0) | |
| 7908 | D SET1^XU S(0),SET^X WBSEC("XUS XOPT",XOP T) ;p265 | |
| 7909 | "RTN","XUS RB",121,0) | |
| 7910 | ;I '$D(IO ("HOME")) S %ZIS="0H ",IOP="NUL L" D ^%ZIS ;Setup NU LL as the home devic e | |
| 7911 | "RTN","XUS RB",122,0) | |
| 7912 | D SAVE^XU S1 ;save t he home de vice | |
| 7913 | "RTN","XUS RB",123,0) | |
| 7914 | ;0=server name, 1=v olume, 2=u ci, 3=devi ce, 4=# at tempts, 5= skip signo n-screen,6 =Domain Na me, 7=Prod uction (0= no, 1=Yes) | |
| 7915 | "RTN","XUS RB",124,0) | |
| 7916 | S RET(0)= $P(XUENV,U ,3),RET(1) =$P(XUVOL, U),RET(2)= XUCI | |
| 7917 | "RTN","XUS RB",125,0) | |
| 7918 | S RET(3)= $I,RET(4)= $P(XOPT,U, 2),RET(5)= 0 | |
| 7919 | "RTN","XUS RB",126,0) | |
| 7920 | S RET(6)= $G(^XMB("N ETNAME")) ;DBIA #113 1 | |
| 7921 | "RTN","XUS RB",127,0) | |
| 7922 | S RET(7)= $$PROD^XUP ROD ;Tell if product ion. | |
| 7923 | "RTN","XUS RB",128,0) | |
| 7924 | S X1=$$IN HIBIT() I X1 S XWBER R=$S(X1=1: "Logons In hibited",1 :"Max User s") Q ;p5 23 | |
| 7925 | "RTN","XUS RB",129,0) | |
| 7926 | ; Check f or Broker Security E nhancement (BSE) tok en | |
| 7927 | "RTN","XUS RB",130,0) | |
| 7928 | I (+XWBUS RNM<-30),$ $CHKUSER^X USBSE1(XWB USRNM) S R ET(5)=1 D POST2 Q ; p523 BSE C HANGE | |
| 7929 | "RTN","XUS RB",131,0) | |
| 7930 | ; End of Check for BSE token | |
| 7931 | "RTN","XUS RB",132,0) | |
| 7932 | ;Auto sig n-on check only for Broker v1. 1 | |
| 7933 | "RTN","XUS RB",133,0) | |
| 7934 | I $G(ASOS KIP) S XQX FLG("ASO") =1 ;Skip t he ASO che ck, Not fo r VISITORS p523 | |
| 7935 | "RTN","XUS RB",134,0) | |
| 7936 | I $G(XWBV ER)<1.1 S XQXFLG("ZE BRA")=-1 ; Disable fo r v1.0 | |
| 7937 | "RTN","XUS RB",135,0) | |
| 7938 | I $L(IO(" CLNM")),'$ G(DUZ) S D UZ=$$AUTOX WB^XUS1B() ;Only che ck when 1. 1 CL. | |
| 7939 | "RTN","XUS RB",136,0) | |
| 7940 | I $G(DUZ) >0 D ;p52 3 | |
| 7941 | "RTN","XUS RB",137,0) | |
| 7942 | . I '$D(X USER(0)),D UZ D USER^ XUS(DUZ) | |
| 7943 | "RTN","XUS RB",138,0) | |
| 7944 | . N %T S %T=$$USER^ XUS1A I %T S DUZ=0 Q | |
| 7945 | "RTN","XUS RB",139,0) | |
| 7946 | . D NOW,P OST2 S RET (5)=1 | |
| 7947 | "RTN","XUS RB",140,0) | |
| 7948 | Q | |
| 7949 | "RTN","XUS RB",141,0) | |
| 7950 | ; | |
| 7951 | "RTN","XUS RB",142,0) | |
| 7952 | OWNSKEY(RE T,LIST,IEN ) ;RPC. XU S KEY CHEC K - IA #62 86 (API IA #3277) | |
| 7953 | "RTN","XUS RB",143,0) | |
| 7954 | ;Does use r have Sec urity Key? | |
| 7955 | "RTN","XUS RB",144,0) | |
| 7956 | N I,K S I ="" | |
| 7957 | "RTN","XUS RB",145,0) | |
| 7958 | I $G(IEN) '>0 S IEN= $G(DUZ) | |
| 7959 | "RTN","XUS RB",146,0) | |
| 7960 | I $G(IEN) '>0 S RET( 0)=0 Q | |
| 7961 | "RTN","XUS RB",147,0) | |
| 7962 | I $O(LIST (""))="" S RET(0)=$$ KCHK(LIST, IEN) Q | |
| 7963 | "RTN","XUS RB",148,0) | |
| 7964 | F S I=$O (LIST(I)) Q:I="" S RET(I)=$$K CHK(LIST(I ),IEN) | |
| 7965 | "RTN","XUS RB",149,0) | |
| 7966 | Q | |
| 7967 | "RTN","XUS RB",150,0) | |
| 7968 | ; | |
| 7969 | "RTN","XUS RB",151,0) | |
| 7970 | KCHK(%,IEN ) ;Key Che ck | |
| 7971 | "RTN","XUS RB",152,0) | |
| 7972 | S:$G(IEN) '>0 IEN=$G (DUZ) Q $S ($G(IEN)>0 :$D(^XUSEC (%,IEN)),1 :0) | |
| 7973 | "RTN","XUS RB",153,0) | |
| 7974 | ; | |
| 7975 | "RTN","XUS RB",154,0) | |
| 7976 | ALLKEYS(RE T,IEN,FLG) ;RPC. XUS ALLKEYS - IA #6287 (API IA #3 277) | |
| 7977 | "RTN","XUS RB",155,0) | |
| 7978 | ;Return A LL or most KEYS that a user ha s. | |
| 7979 | "RTN","XUS RB",156,0) | |
| 7980 | N I,J,K,L K ^TMP("X U",$J) | |
| 7981 | "RTN","XUS RB",157,0) | |
| 7982 | S RET=$NA (^TMP("XU" ,$J)) | |
| 7983 | "RTN","XUS RB",158,0) | |
| 7984 | S:'$D(IEN ) IEN=DUZ I IEN'>0 S @RET@(0)= -1 Q | |
| 7985 | "RTN","XUS RB",159,0) | |
| 7986 | S I=0,L=0 | |
| 7987 | "RTN","XUS RB",160,0) | |
| 7988 | F S I=$O (^VA(200,I EN,51,I)) Q:I'>0 S K=$G(^DIC( 19.1,I,0)) D | |
| 7989 | "RTN","XUS RB",161,0) | |
| 7990 | . Q:'$P(K ,U,5) ;Ch eck 'Send to J2EE' f ield. | |
| 7991 | "RTN","XUS RB",162,0) | |
| 7992 | . S L=L+1 ,@RET@(L,0 )=$P(K,U,1 ) | |
| 7993 | "RTN","XUS RB",163,0) | |
| 7994 | . Q | |
| 7995 | "RTN","XUS RB",164,0) | |
| 7996 | Q | |
| 7997 | "RTN","XUS RB",165,0) | |
| 7998 | ; | |
| 7999 | "RTN","XUS RB",166,0) | |
| 8000 | AVHELP(RET ) ; send a ccess/veri fy code in structions . | |
| 8001 | "RTN","XUS RB",167,0) | |
| 8002 | S RET(0)= $$AVHLPTXT ^XUS2() | |
| 8003 | "RTN","XUS RB",168,0) | |
| 8004 | Q | |
| 8005 | "RTN","XUS RB",169,0) | |
| 8006 | ; | |
| 8007 | "RTN","XUS RB",170,0) | |
| 8008 | OPTACCES(R ET,USER,OP TIONS,MODE ) ;Checks or sets us er's acces s for pass ed in opti ons | |
| 8009 | "RTN","XUS RB",171,0) | |
| 8010 | S MODE="C HECK" ;onl y CHECK mo de support ed for now | |
| 8011 | "RTN","XUS RB",172,0) | |
| 8012 | N I S I=" " | |
| 8013 | "RTN","XUS RB",173,0) | |
| 8014 | I $G(USER )'>0 S RET (0)=0 Q | |
| 8015 | "RTN","XUS RB",174,0) | |
| 8016 | F S I=$O (OPTIONS(I )) Q:I="" S RET(I)= $$CHK^XQCS (USER,OPTI ONS(I))=1 | |
| 8017 | "RTN","XUS RB",175,0) | |
| 8018 | Q | |
| 8019 | "RTN","XUS RB",176,0) | |
| 8020 | ; | |
| 8021 | "RTN","XUS RB",177,0) | |
| 8022 | CHECKAV(AV C) ;SR. EF . to check an A/V co de, Separa te w/ ";", return IE N or 0 | |
| 8023 | "RTN","XUS RB",178,0) | |
| 8024 | N XUF,XUS ER S XUF=0 ,U="^" | |
| 8025 | "RTN","XUS RB",179,0) | |
| 8026 | Q $$CHECK AV^XUS(AVC ) | |
| 8027 | "RTN","XUS RB4") | |
| 8028 | 0^21^B2080 5610^B1843 5992 | |
| 8029 | "RTN","XUS RB4",1,0) | |
| 8030 | XUSRB4 ;IS F/RWF - Bu ild a temp orary sign -on token ;01/29/14 14:56 | |
| 8031 | "RTN","XUS RB4",2,0) | |
| 8032 | ;;8.0;KER NEL;**150, 337,395,41 9,437,499, 523,573,59 6,638,659* *;Jul 10, 1995;Build 22 | |
| 8033 | "RTN","XUS RB4",3,0) | |
| 8034 | ;Per VA D irective 6 402, this routine sh ould not b e modified . | |
| 8035 | "RTN","XUS RB4",4,0) | |
| 8036 | Q | |
| 8037 | "RTN","XUS RB4",5,0) | |
| 8038 | ; | |
| 8039 | "RTN","XUS RB4",6,0) | |
| 8040 | ASH(RET) ; rpc. Auto Signon Han dle | |
| 8041 | "RTN","XUS RB4",7,0) | |
| 8042 | N HDL | |
| 8043 | "RTN","XUS RB4",8,0) | |
| 8044 | ;Do not g ive token to user wi th authent ication Le vel Of Ass urance = 1 , as they then would | |
| 8045 | "RTN","XUS RB4",9,0) | |
| 8046 | ;have the ability t o re-authe nticate at a higher Level Of A ssurance ( spoofing). | |
| 8047 | "RTN","XUS RB4",10,0) | |
| 8048 | S RET="NO T AUTHENTI CATED" | |
| 8049 | "RTN","XUS RB4",11,0) | |
| 8050 | I $G(DUZ) <1 Q ;Not an authen ticated us er | |
| 8051 | "RTN","XUS RB4",12,0) | |
| 8052 | I $G(DUZ( "LOA"))=1 Q ;Not an authentic ated user | |
| 8053 | "RTN","XUS RB4",13,0) | |
| 8054 | S HDL=$$H ANDLE("XWB AS",1),RET ="~1"_HDL | |
| 8055 | "RTN","XUS RB4",14,0) | |
| 8056 | ;Now plac e user inf o in it. | |
| 8057 | "RTN","XUS RB4",15,0) | |
| 8058 | D TOK(HDL ) | |
| 8059 | "RTN","XUS RB4",16,0) | |
| 8060 | Q | |
| 8061 | "RTN","XUS RB4",17,0) | |
| 8062 | ; | |
| 8063 | "RTN","XUS RB4",18,0) | |
| 8064 | CCOW(RET) ;rpc. CCOW Auto Sign on Handle | |
| 8065 | "RTN","XUS RB4",19,0) | |
| 8066 | N HDL,HDL 2,X | |
| 8067 | "RTN","XUS RB4",20,0) | |
| 8068 | S RET(0)= "NO PROXY USER",RET( 1)="ERROR" | |
| 8069 | "RTN","XUS RB4",21,0) | |
| 8070 | I $$USERT YPE^XUSAP( DUZ,"APPLI CATION PRO XY") Q ;N o Proxy | |
| 8071 | "RTN","XUS RB4",22,0) | |
| 8072 | I $$USERT YPE^XUSAP( DUZ,"CONNE CTOR PROXY ") Q ;No Proxy | |
| 8073 | "RTN","XUS RB4",23,0) | |
| 8074 | ;Do not g ive token to user wi th authent ication Le vel Of Ass urance = 1 , as they then would | |
| 8075 | "RTN","XUS RB4",24,0) | |
| 8076 | ;have the ability t o re-authe nticate at a higher Level Of A ssurance ( spoofing). | |
| 8077 | "RTN","XUS RB4",25,0) | |
| 8078 | S RET(0)= "NOT AUTHE NTICATED", RET(1)="ER ROR" | |
| 8079 | "RTN","XUS RB4",26,0) | |
| 8080 | I $G(DUZ( "LOA"))=1 Q ;Not an authentic ated user | |
| 8081 | "RTN","XUS RB4",27,0) | |
| 8082 | S X=$$ACT IVE^XUSER( DUZ) I 'X S RET(0)=X Q ;User must be ac tive | |
| 8083 | "RTN","XUS RB4",28,0) | |
| 8084 | S HDL=$$H ANDLE("XWB CCW",1) | |
| 8085 | "RTN","XUS RB4",29,0) | |
| 8086 | ;Return R ET(0) the CCOW token , RET(1) t he domain name and t he Station # | |
| 8087 | "RTN","XUS RB4",30,0) | |
| 8088 | S RET(0)= "~2"_$$LOW ^XLFSTR(HD L),RET(1)= $G(^XMB("N ETNAME"))_ "^"_$$STA^ XUAF4(DUZ( 2)) | |
| 8089 | "RTN","XUS RB4",31,0) | |
| 8090 | ;Now plac e user inf o in it. | |
| 8091 | "RTN","XUS RB4",32,0) | |
| 8092 | D TOK(HDL ) | |
| 8093 | "RTN","XUS RB4",33,0) | |
| 8094 | S ^XUTL(" XQ",$J,"HD L")=HDL ;S ave handle with job | |
| 8095 | "RTN","XUS RB4",34,0) | |
| 8096 | Q | |
| 8097 | "RTN","XUS RB4",35,0) | |
| 8098 | ; | |
| 8099 | "RTN","XUS RB4",36,0) | |
| 8100 | HANDLE(NS, LT) ;Retur n a unique handle in to ^XTMP ( ef. sup) | |
| 8101 | "RTN","XUS RB4",37,0) | |
| 8102 | ;NS is th e namespac e, LT is t he Handle Lifetime i n days | |
| 8103 | "RTN","XUS RB4",38,0) | |
| 8104 | N %H,A,J, HL | |
| 8105 | "RTN","XUS RB4",39,0) | |
| 8106 | I $G(NS)= "" Q "" ;R eturn null if no nam espace | |
| 8107 | "RTN","XUS RB4",40,0) | |
| 8108 | S LT=$G(L T,1) S:LT> 7 LT=7 ;De fault to 1 | |
| 8109 | "RTN","XUS RB4",41,0) | |
| 8110 | S %H=$H,J =NS_($J#20 48)_"-"_(% H#7*86400+ $P(%H,",", 2))_"_",A= $R(10) | |
| 8111 | "RTN","XUS RB4",42,0) | |
| 8112 | F S HL=J _A,A=A+1 L +^XTMP(HL ):1 I $T Q :'$D(^XTMP (HL)) L - ^XTMP(HL) | |
| 8113 | "RTN","XUS RB4",43,0) | |
| 8114 | S ^XTMP(H L,0)=$$HTF M^XLFDT(%H +LT)_"^"_$ $DT^XLFDT( ) | |
| 8115 | "RTN","XUS RB4",44,0) | |
| 8116 | ;L -^XTMP (HL) Leave the Unloc k to the c aller | |
| 8117 | "RTN","XUS RB4",45,0) | |
| 8118 | Q HL | |
| 8119 | "RTN","XUS RB4",46,0) | |
| 8120 | ; | |
| 8121 | "RTN","XUS RB4",47,0) | |
| 8122 | TOK(H) ;St ore a Toke n | |
| 8123 | "RTN","XUS RB4",48,0) | |
| 8124 | ;H is han dle into X TMP | |
| 8125 | "RTN","XUS RB4",49,0) | |
| 8126 | N J,T,R,% | |
| 8127 | "RTN","XUS RB4",50,0) | |
| 8128 | S T=$$H3^ %ZTM($H) | |
| 8129 | "RTN","XUS RB4",51,0) | |
| 8130 | S R=$J_"| "_T_"|"_$G (DUZ)_"|"_ H | |
| 8131 | "RTN","XUS RB4",52,0) | |
| 8132 | S ^XTMP(H ,"D",0)="| "_$$ENCRYP ^XUSRB1(R) _"|" | |
| 8133 | "RTN","XUS RB4",53,0) | |
| 8134 | S ^XTMP(H ,"D2")=$G( DUZ(2)) | |
| 8135 | "RTN","XUS RB4",54,0) | |
| 8136 | S %=$G(IO ("IP")) I $L(%),'$$V ALIDATE^XL FIPV(%) S %=$P($$ADD RESS^XLFNS LK(%),",") ;p638 | |
| 8137 | "RTN","XUS RB4",55,0) | |
| 8138 | S ^XTMP(H ,"D3")=% | |
| 8139 | "RTN","XUS RB4",56,0) | |
| 8140 | S ^XTMP(H ,"CLNM")=$ G(IO("CLNM ")) | |
| 8141 | "RTN","XUS RB4",57,0) | |
| 8142 | S ^XTMP(H ,"JOB",$J) =$G(IO("IP ")) | |
| 8143 | "RTN","XUS RB4",58,0) | |
| 8144 | S ^XTMP(H ,"STATUS") ="0^New",^ ("CNT")=0 | |
| 8145 | "RTN","XUS RB4",59,0) | |
| 8146 | L -^XTMP( H) ;Clear Lock | |
| 8147 | "RTN","XUS RB4",60,0) | |
| 8148 | Q | |
| 8149 | "RTN","XUS RB4",61,0) | |
| 8150 | ; | |
| 8151 | "RTN","XUS RB4",62,0) | |
| 8152 | REMOVE(HL) ;Remove ( kill) a Ha ndle. p523 | |
| 8153 | "RTN","XUS RB4",63,0) | |
| 8154 | I $L($G(H L)) K ^XTM P(HL) | |
| 8155 | "RTN","XUS RB4",64,0) | |
| 8156 | Q | |
| 8157 | "RTN","XUS RB4",65,0) | |
| 8158 | ; | |
| 8159 | "RTN","XUS RB4",66,0) | |
| 8160 | CHKASH(HL) ;rpc. Che ck a Auto Signon Han dle | |
| 8161 | "RTN","XUS RB4",67,0) | |
| 8162 | N HDL,RET ,FDA,IEN S HDL=$E(HL ,3,999) | |
| 8163 | "RTN","XUS RB4",68,0) | |
| 8164 | S RET=$$C HECK(HDL) | |
| 8165 | "RTN","XUS RB4",69,0) | |
| 8166 | I RET>0 D | |
| 8167 | "RTN","XUS RB4",70,0) | |
| 8168 | . S DUZ(" ASH")=1,IE N=DUZ_"," | |
| 8169 | "RTN","XUS RB4",71,0) | |
| 8170 | . I $$GET 1^DIQ(200, IEN,7,"I") S FDA(200 ,DUZ_",",7 )=0 D FILE ^DIE("K"," FDA") ;p40 3 | |
| 8171 | "RTN","XUS RB4",72,0) | |
| 8172 | D REMOVE( HDL) ;Toke n only goo d for one try. | |
| 8173 | "RTN","XUS RB4",73,0) | |
| 8174 | Q RET | |
| 8175 | "RTN","XUS RB4",74,0) | |
| 8176 | ; | |
| 8177 | "RTN","XUS RB4",75,0) | |
| 8178 | CHKCCOW(HL ) ;rpc. Ch eck a CCOW Auto Sign on Handle | |
| 8179 | "RTN","XUS RB4",76,0) | |
| 8180 | N HDL,RET ,T | |
| 8181 | "RTN","XUS RB4",77,0) | |
| 8182 | S HDL=$$U P^XLFSTR($ E(HL,3,999 )),T=$P($G (^XTV(8989 .3,1,30),5 400),U) | |
| 8183 | "RTN","XUS RB4",78,0) | |
| 8184 | S RET=$$C HECK(HDL,T ) | |
| 8185 | "RTN","XUS RB4",79,0) | |
| 8186 | I RET>0 D | |
| 8187 | "RTN","XUS RB4",80,0) | |
| 8188 | . ;This C COW Token good for m ore that o ne try. | |
| 8189 | "RTN","XUS RB4",81,0) | |
| 8190 | . S ^XTMP (HDL,"JOB" ,$J)=$G(IO ("IP")) | |
| 8191 | "RTN","XUS RB4",82,0) | |
| 8192 | . S ^XTMP (HDL,"STAT US")=(^XTM P(HDL,"STA TUS")+1)_" ^Active" | |
| 8193 | "RTN","XUS RB4",83,0) | |
| 8194 | . S ^XUTL ("XQ",$J," HDL")=HDL ;Save hand le with jo b | |
| 8195 | "RTN","XUS RB4",84,0) | |
| 8196 | . S DUZ(" CCOW")=1 ; Flag a CCO W sign-on. | |
| 8197 | "RTN","XUS RB4",85,0) | |
| 8198 | Q RET | |
| 8199 | "RTN","XUS RB4",86,0) | |
| 8200 | ; | |
| 8201 | "RTN","XUS RB4",87,0) | |
| 8202 | CHECK(HL,T OUT) ;Chec k a Token | |
| 8203 | "RTN","XUS RB4",88,0) | |
| 8204 | N %,J,D,L ,M,S,T,CLN M | |
| 8205 | "RTN","XUS RB4",89,0) | |
| 8206 | S S=$G(^X TMP(HL,0)) I '$L(S) Q "0^Bad H andle" | |
| 8207 | "RTN","XUS RB4",90,0) | |
| 8208 | S S=$G(^X TMP(HL,"D" ,0)) I '$L (S) Q "0^B ad Handle" ;Now have real toke n | |
| 8209 | "RTN","XUS RB4",91,0) | |
| 8210 | I $E(S)'= "|" Q "0^B ad Token" | |
| 8211 | "RTN","XUS RB4",92,0) | |
| 8212 | S S=$$DEC RYP^XUSRB1 ($E(S,2,$L (S)-1)) I S="" Q "0^ Bad Token" | |
| 8213 | "RTN","XUS RB4",93,0) | |
| 8214 | S J=$P(S, "|"),T=$P( S,"|",2),D =$P(S,"|", 3),M=$P(S, "|",4) | |
| 8215 | "RTN","XUS RB4",94,0) | |
| 8216 | ;Check to ken time | |
| 8217 | "RTN","XUS RB4",95,0) | |
| 8218 | S %=$$H3^ %ZTM($H),T OUT=$G(TOU T,90) ; P5 73 changed 20 to 90 JLI | |
| 8219 | "RTN","XUS RB4",96,0) | |
| 8220 | I T+TOUT< % D REMOVE (HL) Q "0^ Token Expi red" ;Toke n good for TOUT or 9 0 seconds | |
| 8221 | "RTN","XUS RB4",97,0) | |
| 8222 | ;Check jo b | |
| 8223 | "RTN","XUS RB4",98,0) | |
| 8224 | ;Check th at token h as handle | |
| 8225 | "RTN","XUS RB4",99,0) | |
| 8226 | I M'=HL Q "0^Bad To ken" | |
| 8227 | "RTN","XUS RB4",100,0 ) | |
| 8228 | ;Check Us er | |
| 8229 | "RTN","XUS RB4",101,0 ) | |
| 8230 | I $G(^VA( 200,D,0))= "" Q "0^Ba d User" | |
| 8231 | "RTN","XUS RB4",102,0 ) | |
| 8232 | ;Do IP ch eck | |
| 8233 | "RTN","XUS RB4",103,0 ) | |
| 8234 | S %=$G(IO ("IP")),T= 0,CLNM="" | |
| 8235 | "RTN","XUS RB4",104,0 ) | |
| 8236 | I $L(%),' $$VALIDATE ^XLFIPV(%) S CLNM=%, %=$P($$ADD RESS^XLFNS LK(%),",") ;p638 | |
| 8237 | "RTN","XUS RB4",105,0 ) | |
| 8238 | S CLNM=$S ($L($G(IO( "CLNM"))): IO("CLNM") ,$L(CLNM): CLNM,1:"") ;p499 | |
| 8239 | "RTN","XUS RB4",106,0 ) | |
| 8240 | I $L($G(^ XTMP(HL,"D 3"))),^XTM P(HL,"D3") =% S T=1 | |
| 8241 | "RTN","XUS RB4",107,0 ) | |
| 8242 | I 'T,$L(C LNM),$G(^X TMP(HL,"CL NM"))=IO(" CLNM") S T =1 | |
| 8243 | "RTN","XUS RB4",108,0 ) | |
| 8244 | I 'T,$$LO W^XLFSTR($ S($L($G(IO ("ZIO"))): IO("ZIO"), 1:$G(IO))) [$P($G(^XT MP(HL,"CLN M")),".") S T=1 ;ra m p596 | |
| 8245 | "RTN","XUS RB4",109,0 ) | |
| 8246 | I 'T Q "0 ^Different IP" ;p499 | |
| 8247 | "RTN","XUS RB4",110,0 ) | |
| 8248 | I $D(^XTM P(HL,"D2") ),D>0 S DU Z(2)=^XTMP (HL,"D2") | |
| 8249 | "RTN","XUS RB4",111,0 ) | |
| 8250 | D USER^XU S(D) | |
| 8251 | "RTN","XUS RB4",112,0 ) | |
| 8252 | Q D | |
| 8253 | "RTN","XUS RB4",113,0 ) | |
| 8254 | ; | |
| 8255 | "RTN","XUS RB4",114,0 ) | |
| 8256 | ; | |
| 8257 | "RTN","XUS RB4",115,0 ) | |
| 8258 | CCOWPC(RET ) ;Return ap | |
| 8259 | "RTN","XUS RB4",116,0 ) | |
| 8260 | N I,XU4 | |
| 8261 | "RTN","XUS RB4",117,0 ) | |
| 8262 | S RET(0)= "" I '$$BR OKER^XWBLI B Q | |
| 8263 | "RTN","XUS RB4",118,0 ) | |
| 8264 | D GETLST^ XPAR(.XU4, "SYS","XUS CCOW VAUL T PARAM"," Q") | |
| 8265 | "RTN","XUS RB4",119,0 ) | |
| 8266 | F I=0,1 S RET(I)=$P ($G(XU4(I+ 1)),"^",2, 99) | |
| 8267 | "RTN","XUS RB4",120,0 ) | |
| 8268 | Q | |
| 8269 | "RTN","XUS RB4",121,0 ) | |
| 8270 | ; | |
| 8271 | "RTN","XUS RB4",122,0 ) | |
| 8272 | ;p500 | |
| 8273 | "RTN","XUS RB4",123,0 ) | |
| 8274 | CCOWIP(RET ,CLIENTIP) ;rpc. CCO W Auto Sig non Handle for middl e tiered a pplication servers | |
| 8275 | "RTN","XUS RB4",124,0 ) | |
| 8276 | N % | |
| 8277 | "RTN","XUS RB4",125,0 ) | |
| 8278 | S %=$G(IO ("IP")) ; save origi nal | |
| 8279 | "RTN","XUS RB4",126,0 ) | |
| 8280 | ; get act ual ip add ress inste ad of loca lhost addr ess if pos sible | |
| 8281 | "RTN","XUS RB4",127,0 ) | |
| 8282 | S IO("IP" )=$S($G(CL IENTIP)=$$ CONVERT^XL FIPV("127. 0.0.1"):%, $G(CLIENTI P)="":%,1: $G(CLIENTI P)) ;p638 | |
| 8283 | "RTN","XUS RB4",128,0 ) | |
| 8284 | D CCOW(.R ET) | |
| 8285 | "RTN","XUS RB4",129,0 ) | |
| 8286 | S IO("IP" )=% ; reve rt to orig inal | |
| 8287 | "RTN","XUS RB4",130,0 ) | |
| 8288 | Q | |
| 8289 | "RTN","XUS RB4",131,0 ) | |
| 8290 | ; | |
| 8291 | "VER") | |
| 8292 | 8.0^22.0 | |
| 8293 | "^DD",3.08 1,3.081,10 1,0) | |
| 8294 | LEVEL OF A SSURANCE^F ^^1;2^K:$L (X)>1!($L( X)<1) X | |
| 8295 | "^DD",3.08 1,3.081,10 1,.1) | |
| 8296 | LOA | |
| 8297 | "^DD",3.08 1,3.081,10 1,3) | |
| 8298 | Answer mus t be 1 cha racter in length. | |
| 8299 | "^DD",3.08 1,3.081,10 1,21,0) | |
| 8300 | ^^31^31^31 51014^ | |
| 8301 | "^DD",3.08 1,3.081,10 1,21,1,0) | |
| 8302 | Level of A ssurance ( LOA) of th e authenti cated user sign-on p er guidanc e | |
| 8303 | "^DD",3.08 1,3.081,10 1,21,2,0) | |
| 8304 | from OMB 0 4-04 and N IST SP 800 -63-2. | |
| 8305 | "^DD",3.08 1,3.081,10 1,21,3,0) | |
| 8306 | ||
| 8307 | "^DD",3.08 1,3.081,10 1,21,4,0) | |
| 8308 | LOA=1 | |
| 8309 | "^DD",3.08 1,3.081,10 1,21,5,0) | |
| 8310 | Little or no conf idence exi sts in the asserted identity; usually | |
| 8311 | "^DD",3.08 1,3.081,10 1,21,6,0) | |
| 8312 | self-asser ted; essen tially a p ersistent identifier . Requires no identi ty | |
| 8313 | "^DD",3.08 1,3.081,10 1,21,7,0) | |
| 8314 | proofing, allows any type of t oken inclu ding a sim ple PIN. E xamples: | |
| 8315 | "^DD",3.08 1,3.081,10 1,21,8,0) | |
| 8316 | Old-style RPC Broker Visitor A ccess; Ide ntificatio n by DUZ w ithout | |
| 8317 | "^DD",3.08 1,3.081,10 1,21,9,0) | |
| 8318 | authentica tion (re-a uthenticat ion using DUZ only). | |
| 8319 | "^DD",3.08 1,3.081,10 1,21,10,0) | |
| 8320 | ||
| 8321 | "^DD",3.08 1,3.081,10 1,21,11,0) | |
| 8322 | LOA=2 | |
| 8323 | "^DD",3.08 1,3.081,10 1,21,12,0) | |
| 8324 | Confide nce exists that the asserted i dentity is accurate; used | |
| 8325 | "^DD",3.08 1,3.081,10 1,21,13,0) | |
| 8326 | frequently for self- service ap plications . Requires identity proofing, | |
| 8327 | "^DD",3.08 1,3.081,10 1,21,14,0) | |
| 8328 | allows sin gle-factor authentic ation. Pas swords are the norm at this le vel. | |
| 8329 | "^DD",3.08 1,3.081,10 1,21,15,0) | |
| 8330 | Examples: VistA Acce ss and Ver ify Code; Windows Us ername and Password; | |
| 8331 | "^DD",3.08 1,3.081,10 1,21,16,0) | |
| 8332 | Broker Sec urity Enha ncement (B SE) Visito r Access; Auto sign- on and CCO W | |
| 8333 | "^DD",3.08 1,3.081,10 1,21,17,0) | |
| 8334 | token re-a uthenticat ion. | |
| 8335 | "^DD",3.08 1,3.081,10 1,21,18,0) | |
| 8336 | ||
| 8337 | "^DD",3.08 1,3.081,10 1,21,19,0) | |
| 8338 | LOA=3 | |
| 8339 | "^DD",3.08 1,3.081,10 1,21,20,0) | |
| 8340 | High co nfidence i n the asse rted ident ity's accu racy; used to access | |
| 8341 | "^DD",3.08 1,3.081,10 1,21,21,0) | |
| 8342 | restricted data. Req uires stri ngent iden tity proof ing, multi -factor | |
| 8343 | "^DD",3.08 1,3.081,10 1,21,22,0) | |
| 8344 | authentica tion, typi cally a pa ssword or biometric factor use d in | |
| 8345 | "^DD",3.08 1,3.081,10 1,21,23,0) | |
| 8346 | combinatio n with a 1 ) software token, 2) hardware token, or 3) one-tim e | |
| 8347 | "^DD",3.08 1,3.081,10 1,21,24,0) | |
| 8348 | password d evice toke n. Example s: OTP dev ices; X.50 9 user cer tificates. | |
| 8349 | "^DD",3.08 1,3.081,10 1,21,25,0) | |
| 8350 | ||
| 8351 | "^DD",3.08 1,3.081,10 1,21,26,0) | |
| 8352 | LOA=4 | |
| 8353 | "^DD",3.08 1,3.081,10 1,21,27,0) | |
| 8354 | Very hi gh confide nce in the asserted identity's accuracy; used to | |
| 8355 | "^DD",3.08 1,3.081,10 1,21,28,0) | |
| 8356 | access hig hly restri cted data. Requires stringent and in-per son | |
| 8357 | "^DD",3.08 1,3.081,10 1,21,29,0) | |
| 8358 | registrati on, multi- factor aut henticatio n with a h ardware cr ypto token | |
| 8359 | "^DD",3.08 1,3.081,10 1,21,30,0) | |
| 8360 | (use of be arer token s is not p ermitted). Examples: X.509 use r certific ates | |
| 8361 | "^DD",3.08 1,3.081,10 1,21,31,0) | |
| 8362 | on a hardw are token that is FI PS 140-2 c ompliant; PIV card. | |
| 8363 | "^DD",3.08 1,3.081,10 1,"DT") | |
| 8364 | 3150528 | |
| 8365 | "^DD",8989 .3,8989.3, 200.1,0) | |
| 8366 | SECURITY T OKEN SERVI CE^F^^200; 1^K:$L(X)> 60!($L(X)< 3) X | |
| 8367 | "^DD",8989 .3,8989.3, 200.1,3) | |
| 8368 | Issuer of security t oken. Answ er must be 3-60 char acters in length. | |
| 8369 | "^DD",8989 .3,8989.3, 200.1,21,0 ) | |
| 8370 | ^^11^11^31 50916^ | |
| 8371 | "^DD",8989 .3,8989.3, 200.1,21,1 ,0) | |
| 8372 | When using brokered authentica tion with a security token iss ued by a | |
| 8373 | "^DD",8989 .3,8989.3, 200.1,21,2 ,0) | |
| 8374 | Security T oken Servi ce (STS), this field will cont ain the id entificati on | |
| 8375 | "^DD",8989 .3,8989.3, 200.1,21,3 ,0) | |
| 8376 | of the iss uer of the token. Th e STS is t rusted by both the c lient and the | |
| 8377 | "^DD",8989 .3,8989.3, 200.1,21,4 ,0) | |
| 8378 | service to provide i nteroperab le securit y tokens. | |
| 8379 | "^DD",8989 .3,8989.3, 200.1,21,5 ,0) | |
| 8380 | ||
| 8381 | "^DD",8989 .3,8989.3, 200.1,21,6 ,0) | |
| 8382 | Security A ssertion M arkup Lang uage (SAML ) tokens a re standar ds-based X ML | |
| 8383 | "^DD",8989 .3,8989.3, 200.1,21,7 ,0) | |
| 8384 | tokens tha t are used to exchan ge securit y informat ion, inclu ding | |
| 8385 | "^DD",8989 .3,8989.3, 200.1,21,8 ,0) | |
| 8386 | attribute statements , authenti cation dec ision stat ements, an d | |
| 8387 | "^DD",8989 .3,8989.3, 200.1,21,9 ,0) | |
| 8388 | authorizat ion decisi on stateme nts. They can be use d as part of a Singl e | |
| 8389 | "^DD",8989 .3,8989.3, 200.1,21,1 0,0) | |
| 8390 | Sign-On (S SO) soluti on allowin g a client to talk t o services running o n | |
| 8391 | "^DD",8989 .3,8989.3, 200.1,21,1 1,0) | |
| 8392 | disparate technologi es. | |
| 8393 | "^DD",8989 .3,8989.3, 200.1,"DT" ) | |
| 8394 | 3150916 | |
| 8395 | "^DD",8989 .3,8989.3, 200.2,0) | |
| 8396 | ORGANIZATI ON^F^^200; 2^K:$L(X)> 50!($L(X)< 3) X | |
| 8397 | "^DD",8989 .3,8989.3, 200.2,3) | |
| 8398 | Name of Or ganization (owner of this Vist A instance ). Answer must be 3- 50 charact ers in len gth. | |
| 8399 | "^DD",8989 .3,8989.3, 200.2,21,0 ) | |
| 8400 | ^^5^5^3150 916^ | |
| 8401 | "^DD",8989 .3,8989.3, 200.2,21,1 ,0) | |
| 8402 | Identity a nd Access Management ORGANIZAT ION field used to id entify the | |
| 8403 | "^DD",8989 .3,8989.3, 200.2,21,2 ,0) | |
| 8404 | Organizati on of this VistA ins tance. For internall y authenti cated user s, | |
| 8405 | "^DD",8989 .3,8989.3, 200.2,21,3 ,0) | |
| 8406 | this field will matc h the SUBJ ECT ORGANI ZATION fie ld (#205.2 ) of the u ser | |
| 8407 | "^DD",8989 .3,8989.3, 200.2,21,4 ,0) | |
| 8408 | identified in the NE W PERSON f ile (#200) . For the VA, this f ield shoul d | |
| 8409 | "^DD",8989 .3,8989.3, 200.2,21,5 ,0) | |
| 8410 | always con tain the v alue: "Dep artment Of Veterans Affairs" | |
| 8411 | "^DD",8989 .3,8989.3, 200.2,"DT" ) | |
| 8412 | 3150916 | |
| 8413 | "^DD",8989 .3,8989.3, 200.3,0) | |
| 8414 | ORGANIZATI ON ID^F^^2 00;3^K:$L( X)>50!($L( X)<1) X | |
| 8415 | "^DD",8989 .3,8989.3, 200.3,3) | |
| 8416 | ID of Orga nization ( owner of t his VistA instance). Answer mu st be 1-50 character s in lengt h. | |
| 8417 | "^DD",8989 .3,8989.3, 200.3,21,0 ) | |
| 8418 | ^^6^6^3150 916^ | |
| 8419 | "^DD",8989 .3,8989.3, 200.3,21,1 ,0) | |
| 8420 | Identity a nd Access Management ORGANIZAT ION ID fie ld used to uniquely | |
| 8421 | "^DD",8989 .3,8989.3, 200.3,21,2 ,0) | |
| 8422 | identify t he Organiz ation of t his VistA instance. For intern ally | |
| 8423 | "^DD",8989 .3,8989.3, 200.3,21,3 ,0) | |
| 8424 | authentica ted users, this fiel d will mat ch the SUB JECT ORGAN IZATION ID | |
| 8425 | "^DD",8989 .3,8989.3, 200.3,21,4 ,0) | |
| 8426 | field (#20 5.3) of th e user ide ntified in the NEW P ERSON file (#200). F or | |
| 8427 | "^DD",8989 .3,8989.3, 200.3,21,5 ,0) | |
| 8428 | the VA, th is field s hould alwa ys contain the value : | |
| 8429 | "^DD",8989 .3,8989.3, 200.3,21,6 ,0) | |
| 8430 | "urn:oid:2 .16.840.1. 113883.4.3 49" | |
| 8431 | "^DD",8989 .3,8989.3, 200.3,"DT" ) | |
| 8432 | 3150916 | |
| 8433 | "BLD",1548 ,6) | |
| 8434 | 9^ | |
| 8435 | **END** | |
| 8436 | **END** |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.