387. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 2/17/2017 4:27:34 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.

387.1 Files compared

# Location File Last Modified
1 VSA P2.5 v3.0.12.zip\src.zip\vsa_vistajs_source_v3.0\vsa-mcode\kids XSA_1_0.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 XSA_1_0.KID Fri Feb 17 04:21:08 2017 UTC

387.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 11 10424
Changed 10 20
Inserted 0 0
Removed 0 0

387.3 Comparison options

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

387.4 Active regular expressions

No regular expressions were active.

387.5 Comparison detail

  1   KIDS Distr ibution sa ved on Jan  16, 2017@ 11:58:17
  2   Vista Serv ice Assemb ler Build  3.12
  3   **KIDS**:X SA 1.0^
  4  
  5   **INSTALL  NAME**
  6   XSA 1.0
  7   "BLD",9393 ,0)
  8   XSA 1.0^VI STA SERVIC ES ASSEMBL ER^0^31701 16^y
  9   "BLD",9393 ,1,0)
  10   ^^211^211^ 3160314^
  11   "BLD",9393 ,1,1,0)
  12   Descriptio n:
  13   "BLD",9393 ,1,2,0)
  14   ========== =
  15   "BLD",9393 ,1,3,0)
  16   The VistA  Services A ssembler ( VSA) VistA .js Data F ederation  Platform
  17   "BLD",9393 ,1,4,0)
  18   is a full- stack gene rative fra mework and  delivery  platform f or 
  19   "BLD",9393 ,1,5,0)
  20   building W eb servers , services , and appl ications o n-demand o
  21   "BLD",9393 ,1,6,0)
  22   a properly  layered e nterprise  architectu re.
  23   "BLD",9393 ,1,7,0)
  24    
  25   "BLD",9393 ,1,8,0)
  26   VSA VistA. js support s compleme ntary RPC  Wizard and  API Brows er
  27   "BLD",9393 ,1,9,0)
  28   applicatio ns for sim ple Remote  Procedure  Call (RPC ) RESTific ation,
  29   "BLD",9393 ,1,10,0)
  30   and the ab ility to g enerate ne w Federato r, VistA,  and Web se rver
  31   "BLD",9393 ,1,11,0)
  32   instances  on-demand  via its vs a-gen util ity. For d evelopers,  these
  33   "BLD",9393 ,1,12,0)
  34   capabiliti es facilit ate access  to VistA  data throu gh the use  of HTTP,
  35   "BLD",9393 ,1,13,0)
  36   JavaScript , REST, an d JSON."
  37   "BLD",9393 ,1,14,0)
  38    
  39   "BLD",9393 ,1,15,0)
  40   The VSA M  components  distrubut ed through  the XSA 1 .0.KID hos t file
  41   "BLD",9393 ,1,16,0)
  42   provides s upporting  extrinsic  functions  called by  the VSA Vi stA.js
  43   "BLD",9393 ,1,17,0)
  44   platform t hrough the  Cache Nod e.js inter face. All  functions  are intend ed
  45   "BLD",9393 ,1,18,0)
  46   to be call ed only by  the VSA V istA.js pl atform. No  other pac kages
  47   "BLD",9393 ,1,19,0)
  48   should ref erence any  routines  in the XSA  namespace .
  49   "BLD",9393 ,1,20,0)
  50    
  51   "BLD",9393 ,1,21,0)
  52    
  53   "BLD",9393 ,1,22,0)
  54    
  55   "BLD",9393 ,1,23,0)
  56   Patch Comp onents
  57   "BLD",9393 ,1,24,0)
  58   ========== ======
  59   "BLD",9393 ,1,25,0)
  60    
  61   "BLD",9393 ,1,26,0)
  62   Files & Fi elds Assoc iated:
  63   "BLD",9393 ,1,27,0)
  64    
  65   "BLD",9393 ,1,28,0)
  66   File Name  (#)                 F ield Name  (#)      N ew/Modifie d/Deleted
  67   "BLD",9393 ,1,29,0)
  68   ---------- ----------          - ---------- ----     - ---------- ---------   
  69   "BLD",9393 ,1,30,0)
  70   XSA DEFINI TION (#17. 01)                            N ew
  71   "BLD",9393 ,1,31,0)
  72    
  73   "BLD",9393 ,1,32,0)
  74   Forms Asso ciated:
  75   "BLD",9393 ,1,33,0)
  76    
  77   "BLD",9393 ,1,34,0)
  78   Form Name                  File  #                   N ew/Modifie d/Deleted
  79   "BLD",9393 ,1,35,0)
  80   ---------                  ----- -                   - ---------- ---------
  81   "BLD",9393 ,1,36,0)
  82   N/A
  83   "BLD",9393 ,1,37,0)
  84    
  85   "BLD",9393 ,1,38,0)
  86   Functions  Associated :
  87   "BLD",9393 ,1,39,0)
  88    
  89   "BLD",9393 ,1,40,0)
  90   Function N ame                      New/Mod ified/Dele ted
  91   "BLD",9393 ,1,41,0)
  92   ---------- ---                      ------- ---------- ---
  93   "BLD",9393 ,1,42,0)
  94   N/A
  95   "BLD",9393 ,1,43,0)
  96    
  97   "BLD",9393 ,1,44,0)
  98   HL Logical  Link:
  99   "BLD",9393 ,1,45,0)
  100    
  101   "BLD",9393 ,1,46,0)
  102   HL Logical  Name                    New/Mod ified/Dele ted
  103   "BLD",9393 ,1,47,0)
  104   ---------- -----                    ------- ---------- ---
  105   "BLD",9393 ,1,48,0)
  106   N/A
  107   "BLD",9393 ,1,49,0)
  108    
  109   "BLD",9393 ,1,50,0)
  110   HL7 Applic ation Para meters:
  111   "BLD",9393 ,1,51,0)
  112    
  113   "BLD",9393 ,1,52,0)
  114   HL7 Parame ter Name                 New/Mod ified/Dele ted
  115   "BLD",9393 ,1,53,0)
  116   ---------- --------                 ------- ---------- ---
  117   "BLD",9393 ,1,54,0)
  118   N/A
  119   "BLD",9393 ,1,55,0)
  120    
  121   "BLD",9393 ,1,56,0)
  122   HLO Applic ation Regi stry:
  123   "BLD",9393 ,1,57,0)
  124    
  125   "BLD",9393 ,1,58,0)
  126   HLO Regist ry Name                  New/Mod ified/Dele ted
  127   "BLD",9393 ,1,59,0)
  128   ---------- --------                 ------- ---------- ---
  129   "BLD",9393 ,1,60,0)
  130   N/A
  131   "BLD",9393 ,1,61,0)
  132    
  133   "BLD",9393 ,1,62,0)
  134   Mail Group s Associat ed:
  135   "BLD",9393 ,1,63,0)
  136    
  137   "BLD",9393 ,1,64,0)
  138   Mail Group  Name                    New/Mod ified/Dele ted
  139   "BLD",9393 ,1,65,0)
  140   ---------- -----                    ------- ---------- ---
  141   "BLD",9393 ,1,66,0)
  142   N/A
  143   "BLD",9393 ,1,67,0)
  144    
  145   "BLD",9393 ,1,68,0)
  146   Options As sociated:
  147   "BLD",9393 ,1,69,0)
  148    
  149   "BLD",9393 ,1,70,0)
  150   Option Nam e                      Type              Ne w/Modified /Deleted
  151   "BLD",9393 ,1,71,0)
  152   ---------- -                      ----              -- ---------- --------
  153   "BLD",9393 ,1,72,0)
  154   N/A
  155   "BLD",9393 ,1,73,0)
  156    
  157   "BLD",9393 ,1,74,0)
  158   Parameter  Definition s:
  159   "BLD",9393 ,1,75,0)
  160    
  161   "BLD",9393 ,1,76,0)
  162   Parameter  Name                                     Ne w/Modified /Deleted
  163   "BLD",9393 ,1,77,0)
  164   ---------- ----                                     -- ---------- --------
  165   "BLD",9393 ,1,78,0)
  166   N/A
  167   "BLD",9393 ,1,79,0)
  168    
  169   "BLD",9393 ,1,80,0)
  170   Protocols  Associated :
  171   "BLD",9393 ,1,81,0)
  172    
  173   "BLD",9393 ,1,82,0)
  174   Protocol N ame                       New/Mo dified/Del eted
  175   "BLD",9393 ,1,83,0)
  176   ---------- ---                       ------ ---------- ----
  177   "BLD",9393 ,1,84,0)
  178   N/A
  179   "BLD",9393 ,1,85,0)
  180    
  181   "BLD",9393 ,1,86,0)
  182   Remote Pro cedure Cal ls:
  183   "BLD",9393 ,1,87,0)
  184    
  185   "BLD",9393 ,1,88,0)
  186   RPC Name                                            Ne w/Modified /Deleted
  187   "BLD",9393 ,1,89,0)
  188   --------                                            -- ---------- --------
  189   "BLD",9393 ,1,90,0)
  190   XSA TEST G ET VARIABL E                             Ne w
  191   "BLD",9393 ,1,91,0)
  192   XSA TEST S ET VARIABL E                             Ne w
  193   "BLD",9393 ,1,92,0)
  194    
  195   "BLD",9393 ,1,93,0)
  196   Security K eys Associ ated:
  197   "BLD",9393 ,1,94,0)
  198    
  199   "BLD",9393 ,1,95,0)
  200   Security K ey Name
  201   "BLD",9393 ,1,96,0)
  202   ---------- -------
  203   "BLD",9393 ,1,97,0)
  204   N/A
  205   "BLD",9393 ,1,98,0)
  206    
  207   "BLD",9393 ,1,99,0)
  208   Templates  Associated :
  209   "BLD",9393 ,1,100,0)
  210    
  211   "BLD",9393 ,1,101,0)
  212   Template N ame      T ype      F ile Name ( #)         New/Modifi ed/Deleted
  213   "BLD",9393 ,1,102,0)
  214   ---------- ---      - ---      - ---------- -------    ---------- ----------
  215   "BLD",9393 ,1,103,0)
  216   N/A
  217   "BLD",9393 ,1,104,0)
  218    
  219   "BLD",9393 ,1,105,0)
  220   Additional  Informati on:
  221   "BLD",9393 ,1,106,0)
  222   N/A
  223   "BLD",9393 ,1,107,0)
  224    
  225   "BLD",9393 ,1,108,0)
  226    
  227   "BLD",9393 ,1,109,0)
  228   New Servic e Requests  (NSRs):
  229   "BLD",9393 ,1,110,0)
  230   ---------- ---------- ---------
  231   "BLD",9393 ,1,111,0)
  232   N/A
  233   "BLD",9393 ,1,112,0)
  234    
  235   "BLD",9393 ,1,113,0)
  236    
  237   "BLD",9393 ,1,114,0)
  238   Patient Sa fety Issue s (PSIs):
  239   "BLD",9393 ,1,115,0)
  240   ---------- ---------- ----------
  241   "BLD",9393 ,1,116,0)
  242   N/A
  243   "BLD",9393 ,1,117,0)
  244    
  245   "BLD",9393 ,1,118,0)
  246    
  247   "BLD",9393 ,1,119,0)
  248   Remedy Tic ket(s) & O verviews:
  249   "BLD",9393 ,1,120,0)
  250   ---------- ---------- ---------
  251   "BLD",9393 ,1,121,0)
  252   N/A
  253   "BLD",9393 ,1,122,0)
  254    
  255   "BLD",9393 ,1,123,0)
  256    
  257   "BLD",9393 ,1,124,0)
  258   Test Sites :
  259   "BLD",9393 ,1,125,0)
  260   ---------- -
  261   "BLD",9393 ,1,126,0)
  262   Boise
  263   "BLD",9393 ,1,127,0)
  264   Memphis
  265   "BLD",9393 ,1,128,0)
  266   Hudson Val ley
  267   "BLD",9393 ,1,129,0)
  268   Hampton
  269   "BLD",9393 ,1,130,0)
  270   South Texa s
  271   "BLD",9393 ,1,131,0)
  272    
  273   "BLD",9393 ,1,132,0)
  274    
  275   "BLD",9393 ,1,133,0)
  276   Documentat ion Retrie val Instru ctions:
  277   "BLD",9393 ,1,134,0)
  278   ---------- ---------- ---------- -------
  279   "BLD",9393 ,1,135,0)
  280   Updated do cumentatio n describi ng the new  functiona lity intro duced by t his 
  281   "BLD",9393 ,1,136,0)
  282   patch is a vailable.
  283   "BLD",9393 ,1,137,0)
  284    
  285   "BLD",9393 ,1,138,0)
  286   The prefer red method  is to FTP  the files  from 
  287   "BLD",9393 ,1,139,0)
  288   ftp://down load. DNS        . DNS     /.
  289   "BLD",9393 ,1,140,0)
  290   This trans mits the f iles from  the first  available  FTP server . Sites ma
  291   "BLD",9393 ,1,141,0)
  292   also elect  to retrie ve softwar e directly  from a sp ecific ser ver as 
  293   "BLD",9393 ,1,142,0)
  294   follows:
  295   "BLD",9393 ,1,143,0)
  296    
  297   "BLD",9393 ,1,144,0)
  298   Albany          DNS.U RL          <DNS.URL        >
  299   "BLD",9393 ,1,145,0)
  300   Hines           ftp.D NS     .UR L           <ftp://ft p.DNS      .URL        >
  301   "BLD",9393 ,1,146,0)
  302   Salt Lake  City DNS.U RL             <ftp:/ /DNS.URL        >
  303   "BLD",9393 ,1,147,0)
  304    
  305   "BLD",9393 ,1,148,0)
  306    
  307   "BLD",9393 ,1,149,0)
  308   The docume ntation wi ll be in t he form of  Adobe Acr obat files .
  309   "BLD",9393 ,1,150,0)
  310    
  311   "BLD",9393 ,1,151,0)
  312   Documentat ion can al so be foun d on the V A Software  Documenta tion Libra ry 
  313   "BLD",9393 ,1,152,0)
  314   at: http:/ / URL               /
  315   "BLD",9393 ,1,153,0)
  316    
  317   "BLD",9393 ,1,154,0)
  318   File Descr iption                               File N ame              FTP  Mode
  319   "BLD",9393 ,1,155,0)
  320   ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  321   "BLD",9393 ,1,156,0)
  322   VistA Serv ices Assem bler Insta ll Guide       xsa1_0 ig.pdf           bina ry
  323   "BLD",9393 ,1,157,0)
  324   VistA Serv ices Assem bler Relea se Notes       xsa1_0 rn.pdf           bina ry
  325   "BLD",9393 ,1,158,0)
  326   VistA Serv ices Assem bler Devel oper Guide     xsa1_0 dg.pdf           bina ry
  327   "BLD",9393 ,1,159,0)
  328    
  329   "BLD",9393 ,1,160,0)
  330    
  331   "BLD",9393 ,1,161,0)
  332   Patch Inst allation:
  333   "BLD",9393 ,1,162,0)
  334    
  335   "BLD",9393 ,1,163,0)
  336    
  337   "BLD",9393 ,1,164,0)
  338   Pre/Post I nstallatio n Overview
  339   "BLD",9393 ,1,165,0)
  340   ---------- ---------- ----------
  341   "BLD",9393 ,1,166,0)
  342    
  343   "BLD",9393 ,1,167,0)
  344    
  345   "BLD",9393 ,1,168,0)
  346   Pre-Instal lation Ins tructions
  347   "BLD",9393 ,1,169,0)
  348   ---------- ---------- ---------
  349   "BLD",9393 ,1,170,0)
  350   This patch  may be in stalled wi th users o n the syst em. This p atch shoul
  351   "BLD",9393 ,1,171,0)
  352   take less  than 5 min utes to in stall.
  353   "BLD",9393 ,1,172,0)
  354    
  355   "BLD",9393 ,1,173,0)
  356    
  357   "BLD",9393 ,1,174,0)
  358   Installati on Instruc tions
  359   "BLD",9393 ,1,175,0)
  360   ---------- ---------- -----
  361   "BLD",9393 ,1,176,0)
  362   1.  Use th e 'Load a  Distributi on' option  on the KI DS install ation menu .
  363   "BLD",9393 ,1,177,0)
  364       When p rompted to  enter a h ost file t ype in [DI R]:XSA_1_0 .KID, 
  365   "BLD",9393 ,1,178,0)
  366       Where  [DIR] is t he local d irectory w here the h ost file w as copied  to.
  367   "BLD",9393 ,1,179,0)
  368    
  369   "BLD",9393 ,1,180,0)
  370   2.  From t he Kernel  Installati on and Dis tribution  System Men u, select
  371   "BLD",9393 ,1,181,0)
  372       the In stallation  Menu.  Fr om this me nu, you ma y elect to  use the
  373   "BLD",9393 ,1,182,0)
  374       follow ing option . When pro mpted for  the INSTAL L enter th e patch #
  375   "BLD",9393 ,1,183,0)
  376       (XSA 1 .0):
  377   "BLD",9393 ,1,184,0)
  378    
  379   "BLD",9393 ,1,185,0)
  380       a. Bac kup a Tran sport Glob al - This  option wil l create a  backup
  381   "BLD",9393 ,1,186,0)
  382          mes sage of an y routines  exported  with this  patch. It  will not
  383   "BLD",9393 ,1,187,0)
  384          bac kup any ot her change s such as  DD's or te mplates.
  385   "BLD",9393 ,1,188,0)
  386       b. Com pare Trans port Globa l to Curre nt System  - This opt ion will
  387   "BLD",9393 ,1,189,0)
  388          all ow you to  view all c hanges tha t will be  made when  this patch
  389   "BLD",9393 ,1,190,0)
  390          is  installed.   It compa res all co mponents o f this pat ch
  391   "BLD",9393 ,1,191,0)
  392          (ro utines, DD 's, templa tes, etc.) .
  393   "BLD",9393 ,1,192,0)
  394       c. Ver ify Checks ums in Tra nsport Glo bal - This  option wi ll allow
  395   "BLD",9393 ,1,193,0)
  396          you  to ensure  the integ rity of th e routines  that are  in the
  397   "BLD",9393 ,1,194,0)
  398          tra nsport glo bal.
  399   "BLD",9393 ,1,195,0)
  400    
  401   "BLD",9393 ,1,196,0)
  402   3.  From t he Install ation Menu , select t he Install  Package(s ) option a nd
  403   "BLD",9393 ,1,197,0)
  404       choose  the patch  to instal l. Enter X SA 1.0.
  405   "BLD",9393 ,1,198,0)
  406    
  407   "BLD",9393 ,1,199,0)
  408   4.  When p rompted 'W ant KIDS t o Rebuild  Menu Trees  Upon Comp letion of
  409   "BLD",9393 ,1,200,0)
  410       Instal l? NO//',  respond NO .
  411   "BLD",9393 ,1,201,0)
  412    
  413   "BLD",9393 ,1,202,0)
  414   5.  When p rompted 'W ant KIDS t o INHIBIT  LOGONs dur ing the in stall? NO/ /',
  415   "BLD",9393 ,1,203,0)
  416       respon d NO.
  417   "BLD",9393 ,1,204,0)
  418    
  419   "BLD",9393 ,1,205,0)
  420   6.  When p rompted 'W ant to DIS ABLE Sched uled Optio ns, Menu O ptions, an d
  421   "BLD",9393 ,1,206,0)
  422       Protoc ols? NO//' , respond  NO.
  423   "BLD",9393 ,1,207,0)
  424   7.  If pro mpted 'Del ay Install  (Minutes) :  (0 - 60 ): 0//', r espond 0.
  425   "BLD",9393 ,1,208,0)
  426    
  427   "BLD",9393 ,1,209,0)
  428   Post-Insta llation In structions
  429   "BLD",9393 ,1,210,0)
  430   ---------- ---------- ----------
  431   "BLD",9393 ,1,211,0)
  432   N/A
  433   "BLD",9393 ,4,0)
  434   ^9.64PA^17 .01^1
  435   "BLD",9393 ,4,17.01,0 )
  436   17.01
  437   "BLD",9393 ,4,17.01,2 22)
  438   y^y^f^^^^n ^^
  439   "BLD",9393 ,4,17.01,2 24)
  440  
  441   "BLD",9393 ,4,"B",17. 01,17.01)
  442  
  443   "BLD",9393 ,6.3)
  444   66
  445   "BLD",9393 ,"ABNS",0)
  446   ^9.66A^1^1
  447   "BLD",9393 ,"ABNS",1, 0)
  448   XSA
  449   "BLD",9393 ,"ABNS",1, 1,0)
  450   ^9.661A^^
  451   "BLD",9393 ,"ABNS","B ","XSA",1)
  452  
  453   "BLD",9393 ,"ABPKG")
  454   n^n
  455   "BLD",9393 ,"KRN",0)
  456   ^9.67PA^77 9.2^20
  457   "BLD",9393 ,"KRN",.4, 0)
  458   .4
  459   "BLD",9393 ,"KRN",.40 1,0)
  460   .401
  461   "BLD",9393 ,"KRN",.40 2,0)
  462   .402
  463   "BLD",9393 ,"KRN",.40 3,0)
  464   .403
  465   "BLD",9393 ,"KRN",.5, 0)
  466   .5
  467   "BLD",9393 ,"KRN",.84 ,0)
  468   .84
  469   "BLD",9393 ,"KRN",3.6 ,0)
  470   3.6
  471   "BLD",9393 ,"KRN",3.8 ,0)
  472   3.8
  473   "BLD",9393 ,"KRN",9.2 ,0)
  474   9.2
  475   "BLD",9393 ,"KRN",9.8 ,0)
  476   9.8
  477   "BLD",9393 ,"KRN",9.8 ,"NM",0)
  478   ^9.68A^19^ 13
  479   "BLD",9393 ,"KRN",9.8 ,"NM",1,0)
  480   XSAPXL1^^0 ^B88784941
  481   "BLD",9393 ,"KRN",9.8 ,"NM",3,0)
  482   XSAPXUTL^^ 0^B8307485 5
  483   "BLD",9393 ,"KRN",9.8 ,"NM",5,0)
  484   XSAPXACC^^ 0^B1597116 7
  485   "BLD",9393 ,"KRN",9.8 ,"NM",6,0)
  486   XSAPXCRS^^ 0^B3127041
  487   "BLD",9393 ,"KRN",9.8 ,"NM",7,0)
  488   XSAPXERR^^ 0^B3823851
  489   "BLD",9393 ,"KRN",9.8 ,"NM",8,0)
  490   XSAPXRPC^^ 0^B1084495 5
  491   "BLD",9393 ,"KRN",9.8 ,"NM",12,0 )
  492   XSAPXPUB^^ 0^B2379658 9
  493   "BLD",9393 ,"KRN",9.8 ,"NM",14,0 )
  494   XSAPXIAM^^ 0^B1075562 3
  495   "BLD",9393 ,"KRN",9.8 ,"NM",15,0 )
  496   XSAPXD1^^0 ^B2481
  497   "BLD",9393 ,"KRN",9.8 ,"NM",16,0 )
  498   XSAPXD2^^0 ^B2489
  499   "BLD",9393 ,"KRN",9.8 ,"NM",17,0 )
  500   XSAPXT^^0^ B358614
  501   "BLD",9393 ,"KRN",9.8 ,"NM",18,0 )
  502   XSAPXPSS^^ 0^B1926250 38
  503   "BLD",9393 ,"KRN",9.8 ,"NM",19,0 )
  504   XSAPXINS^^ 0^B1660712
  505   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXACC" ,5)
  506  
  507   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXCRS" ,6)
  508  
  509   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXD1", 15)
  510  
  511   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXD2", 16)
  512  
  513   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXERR" ,7)
  514  
  515   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXIAM" ,14)
  516  
  517   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXINS" ,19)
  518  
  519   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXL1", 1)
  520  
  521   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXPSS" ,18)
  522  
  523   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXPUB" ,12)
  524  
  525   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXRPC" ,8)
  526  
  527   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXT",1 7)
  528  
  529   "BLD",9393 ,"KRN",9.8 ,"NM","B", "XSAPXUTL" ,3)
  530  
  531   "BLD",9393 ,"KRN",19, 0)
  532   19
  533   "BLD",9393 ,"KRN",19, "NM",0)
  534   ^9.68A^^0
  535   "BLD",9393 ,"KRN",19. 1,0)
  536   19.1
  537   "BLD",9393 ,"KRN",101 ,0)
  538   101
  539   "BLD",9393 ,"KRN",409 .61,0)
  540   409.61
  541   "BLD",9393 ,"KRN",771 ,0)
  542   771
  543   "BLD",9393 ,"KRN",779 .2,0)
  544   779.2
  545   "BLD",9393 ,"KRN",870 ,0)
  546   870
  547   "BLD",9393 ,"KRN",898 9.51,0)
  548   8989.51
  549   "BLD",9393 ,"KRN",898 9.52,0)
  550   8989.52
  551   "BLD",9393 ,"KRN",899 4,0)
  552   8994
  553   "BLD",9393 ,"KRN",899 4,"NM",0)
  554   ^9.68A^2^2
  555   "BLD",9393 ,"KRN",899 4,"NM",1,0 )
  556   XSA TEST G ET VARIABL E^^0
  557   "BLD",9393 ,"KRN",899 4,"NM",2,0 )
  558   XSA TEST S ET VARIABL E^^0
  559   "BLD",9393 ,"KRN",899 4,"NM","B" ,"XSA TEST  GET VARIA BLE",1)
  560  
  561   "BLD",9393 ,"KRN",899 4,"NM","B" ,"XSA TEST  SET VARIA BLE",2)
  562  
  563   "BLD",9393 ,"KRN","B" ,.4,.4)
  564  
  565   "BLD",9393 ,"KRN","B" ,.401,.401 )
  566  
  567   "BLD",9393 ,"KRN","B" ,.402,.402 )
  568  
  569   "BLD",9393 ,"KRN","B" ,.403,.403 )
  570  
  571   "BLD",9393 ,"KRN","B" ,.5,.5)
  572  
  573   "BLD",9393 ,"KRN","B" ,.84,.84)
  574  
  575   "BLD",9393 ,"KRN","B" ,3.6,3.6)
  576  
  577   "BLD",9393 ,"KRN","B" ,3.8,3.8)
  578  
  579   "BLD",9393 ,"KRN","B" ,9.2,9.2)
  580  
  581   "BLD",9393 ,"KRN","B" ,9.8,9.8)
  582  
  583   "BLD",9393 ,"KRN","B" ,19,19)
  584  
  585   "BLD",9393 ,"KRN","B" ,19.1,19.1 )
  586  
  587   "BLD",9393 ,"KRN","B" ,101,101)
  588  
  589   "BLD",9393 ,"KRN","B" ,409.61,40 9.61)
  590  
  591   "BLD",9393 ,"KRN","B" ,771,771)
  592  
  593   "BLD",9393 ,"KRN","B" ,779.2,779 .2)
  594  
  595   "BLD",9393 ,"KRN","B" ,870,870)
  596  
  597   "BLD",9393 ,"KRN","B" ,8989.51,8 989.51)
  598  
  599   "BLD",9393 ,"KRN","B" ,8989.52,8 989.52)
  600  
  601   "BLD",9393 ,"KRN","B" ,8994,8994 )
  602  
  603   "BLD",9393 ,"QUES",0)
  604   ^9.62^^
  605   "BLD",9393 ,"REQB",0)
  606   ^9.611^1^1
  607   "BLD",9393 ,"REQB",1, 0)
  608   XU*8.0*659 ^1
  609   "BLD",9393 ,"REQB","B ","XU*8.0* 659",1)
  610  
  611   "FIA",17.0 1)
  612   XSA DEFINI TIONS
  613   "FIA",17.0 1,0)
  614   ^XSA(17.01 ,
  615   "FIA",17.0 1,0,0)
  616   17.01
  617   "FIA",17.0 1,0,1)
  618   y^y^f^^^^n ^^
  619   "FIA",17.0 1,0,10)
  620  
  621   "FIA",17.0 1,0,11)
  622  
  623   "FIA",17.0 1,0,"RLRO" )
  624  
  625   "FIA",17.0 1,0,"VR")
  626   1.0^XSA
  627   "FIA",17.0 1,17.01)
  628   0
  629   "FIA",17.0 1,17.02)
  630   0
  631   "KRN",8994 ,3264,-1)
  632   0^2
  633   "KRN",8994 ,3264,0)
  634   XSA TEST S ET VARIABL E^SET^XSAP XT^1^P
  635   "KRN",8994 ,3264,1,0)
  636   ^^3^3^3160 304^
  637   "KRN",8994 ,3264,1,1, 0)
  638   The purpos e of this  RPC is to  test the V istA Servi ces Assemb ler sessio
  639   "KRN",8994 ,3264,1,2, 0)
  640   state mana gement for  maintaini ng the sco pe of loca l variable s between  RPC 
  641   "KRN",8994 ,3264,1,3, 0)
  642   calls.
  643   "KRN",8994 ,3264,2,0)
  644   ^8994.02A^ 1^1
  645   "KRN",8994 ,3264,2,1, 0)
  646   XSAVAL^1^6 0^0^1
  647   "KRN",8994 ,3264,2,1, 1,0)
  648   ^^3^3^3160 304^
  649   "KRN",8994 ,3264,2,1, 1,1,0)
  650   This input  parameter  will be u sed as the  value for  the local  variable 
  651   "KRN",8994 ,3264,2,1, 1,2,0)
  652   XSAVAR. If  no value  is set in  this param eter the R PC will se t the defa ult 
  653   "KRN",8994 ,3264,2,1, 1,3,0)
  654   value to " VistA Serv ices Assem bler test  RPC".
  655   "KRN",8994 ,3264,2,"B ","XSAVAL" ,1)
  656  
  657   "KRN",8994 ,3264,2,"P ARAMSEQ",1 ,1)
  658  
  659   "KRN",8994 ,3264,3,0)
  660   ^^1^1^3160 304^
  661   "KRN",8994 ,3264,3,1, 0)
  662   This RPC s hould alwa ys return  the value  1 (one).
  663   "KRN",8994 ,3265,-1)
  664   0^1
  665   "KRN",8994 ,3265,0)
  666   XSA TEST G ET VARIABL E^GET^XSAP XT^1^P
  667   "KRN",8994 ,3265,1,0)
  668   ^^3^3^3160 304^
  669   "KRN",8994 ,3265,1,1, 0)
  670   The purpos e of this  RPC is to  test the V istA Servi ces Assemb ler sessio n
  671   "KRN",8994 ,3265,1,2, 0)
  672   state mana gement for  maintaini ng the sco pe of loca l variable s between  RPC
  673   "KRN",8994 ,3265,1,3, 0)
  674   calls.
  675   "KRN",8994 ,3265,3,0)
  676   ^^3^3^3160 304^
  677   "KRN",8994 ,3265,3,1, 0)
  678   This RPC s hould retu rn the val ue defined  in the lo cal variab le XSAVAR,  if 
  679   "KRN",8994 ,3265,3,2, 0)
  680   defined. X SAVAR is s et by call ing the XS A TEST SET  VARIABLE  Remote 
  681   "KRN",8994 ,3265,3,3, 0)
  682   Procedure.
  683   "MBREQ")
  684   0
  685   "ORD",16,8 994)
  686   8994;16;1; ;;;;;;RPCD EL^XPDIA1
  687   "ORD",16,8 994,0)
  688   REMOTE PRO CEDURE
  689   "PKG",575, -1)
  690   1^1
  691   "PKG",575, 0)
  692   VISTA SERV ICES ASSEM BLER^XSA^V ISTA SERVI CES ASSEMB LER
  693   "PKG",575, 7)
  694   ^^I
  695   "PKG",575, 20,0)
  696   ^9.402P^^
  697   "PKG",575, 22,0)
  698   ^9.49I^1^1
  699   "PKG",575, 22,1,0)
  700   1.0^317011 6^3160526^ .5
  701   "PKG",575, 22,1,1,0)
  702   ^^211^211^ 3170116
  703   "PKG",575, 22,1,1,1,0 )
  704   Descriptio n:
  705   "PKG",575, 22,1,1,2,0 )
  706   ========== =
  707   "PKG",575, 22,1,1,3,0 )
  708   The VistA  Services A ssembler ( VSA) VistA .js Data F ederation  Platform
  709   "PKG",575, 22,1,1,4,0 )
  710   is a full- stack gene rative fra mework and  delivery  platform f or 
  711   "PKG",575, 22,1,1,5,0 )
  712   building W eb servers , services , and appl ications o n-demand o
  713   "PKG",575, 22,1,1,6,0 )
  714   a properly  layered e nterprise  architectu re.
  715   "PKG",575, 22,1,1,7,0 )
  716    
  717   "PKG",575, 22,1,1,8,0 )
  718   VSA VistA. js support s compleme ntary RPC  Wizard and  API Brows er
  719   "PKG",575, 22,1,1,9,0 )
  720   applicatio ns for sim ple Remote  Procedure  Call (RPC ) RESTific ation,
  721   "PKG",575, 22,1,1,10, 0)
  722   and the ab ility to g enerate ne w Federato r, VistA,  and Web se rver
  723   "PKG",575, 22,1,1,11, 0)
  724   instances  on-demand  via its vs a-gen util ity. For d evelopers,  these
  725   "PKG",575, 22,1,1,12, 0)
  726   capabiliti es facilit ate access  to VistA  data throu gh the use  of HTTP,
  727   "PKG",575, 22,1,1,13, 0)
  728   JavaScript , REST, an d JSON."
  729   "PKG",575, 22,1,1,14, 0)
  730    
  731   "PKG",575, 22,1,1,15, 0)
  732   The VSA M  components  distrubut ed through  the XSA 1 .0.KID hos t file
  733   "PKG",575, 22,1,1,16, 0)
  734   provides s upporting  extrinsic  functions  called by  the VSA Vi stA.js
  735   "PKG",575, 22,1,1,17, 0)
  736   platform t hrough the  Cache Nod e.js inter face. All  functions  are intend ed
  737   "PKG",575, 22,1,1,18, 0)
  738   to be call ed only by  the VSA V istA.js pl atform. No  other pac kages
  739   "PKG",575, 22,1,1,19, 0)
  740   should ref erence any  routines  in the XSA  namespace .
  741   "PKG",575, 22,1,1,20, 0)
  742    
  743   "PKG",575, 22,1,1,21, 0)
  744    
  745   "PKG",575, 22,1,1,22, 0)
  746    
  747   "PKG",575, 22,1,1,23, 0)
  748   Patch Comp onents
  749   "PKG",575, 22,1,1,24, 0)
  750   ========== ======
  751   "PKG",575, 22,1,1,25, 0)
  752    
  753   "PKG",575, 22,1,1,26, 0)
  754   Files & Fi elds Assoc iated:
  755   "PKG",575, 22,1,1,27, 0)
  756    
  757   "PKG",575, 22,1,1,28, 0)
  758   File Name  (#)                 F ield Name  (#)      N ew/Modifie d/Deleted
  759   "PKG",575, 22,1,1,29, 0)
  760   ---------- ----------          - ---------- ----     - ---------- ---------   
  761   "PKG",575, 22,1,1,30, 0)
  762   XSA DEFINI TION (#17. 01)                            N ew
  763   "PKG",575, 22,1,1,31, 0)
  764    
  765   "PKG",575, 22,1,1,32, 0)
  766   Forms Asso ciated:
  767   "PKG",575, 22,1,1,33, 0)
  768    
  769   "PKG",575, 22,1,1,34, 0)
  770   Form Name                  File  #                   N ew/Modifie d/Deleted
  771   "PKG",575, 22,1,1,35, 0)
  772   ---------                  ----- -                   - ---------- ---------
  773   "PKG",575, 22,1,1,36, 0)
  774   N/A
  775   "PKG",575, 22,1,1,37, 0)
  776    
  777   "PKG",575, 22,1,1,38, 0)
  778   Functions  Associated :
  779   "PKG",575, 22,1,1,39, 0)
  780    
  781   "PKG",575, 22,1,1,40, 0)
  782   Function N ame                      New/Mod ified/Dele ted
  783   "PKG",575, 22,1,1,41, 0)
  784   ---------- ---                      ------- ---------- ---
  785   "PKG",575, 22,1,1,42, 0)
  786   N/A
  787   "PKG",575, 22,1,1,43, 0)
  788    
  789   "PKG",575, 22,1,1,44, 0)
  790   HL Logical  Link:
  791   "PKG",575, 22,1,1,45, 0)
  792    
  793   "PKG",575, 22,1,1,46, 0)
  794   HL Logical  Name                    New/Mod ified/Dele ted
  795   "PKG",575, 22,1,1,47, 0)
  796   ---------- -----                    ------- ---------- ---
  797   "PKG",575, 22,1,1,48, 0)
  798   N/A
  799   "PKG",575, 22,1,1,49, 0)
  800    
  801   "PKG",575, 22,1,1,50, 0)
  802   HL7 Applic ation Para meters:
  803   "PKG",575, 22,1,1,51, 0)
  804    
  805   "PKG",575, 22,1,1,52, 0)
  806   HL7 Parame ter Name                 New/Mod ified/Dele ted
  807   "PKG",575, 22,1,1,53, 0)
  808   ---------- --------                 ------- ---------- ---
  809   "PKG",575, 22,1,1,54, 0)
  810   N/A
  811   "PKG",575, 22,1,1,55, 0)
  812    
  813   "PKG",575, 22,1,1,56, 0)
  814   HLO Applic ation Regi stry:
  815   "PKG",575, 22,1,1,57, 0)
  816    
  817   "PKG",575, 22,1,1,58, 0)
  818   HLO Regist ry Name                  New/Mod ified/Dele ted
  819   "PKG",575, 22,1,1,59, 0)
  820   ---------- --------                 ------- ---------- ---
  821   "PKG",575, 22,1,1,60, 0)
  822   N/A
  823   "PKG",575, 22,1,1,61, 0)
  824    
  825   "PKG",575, 22,1,1,62, 0)
  826   Mail Group s Associat ed:
  827   "PKG",575, 22,1,1,63, 0)
  828    
  829   "PKG",575, 22,1,1,64, 0)
  830   Mail Group  Name                    New/Mod ified/Dele ted
  831   "PKG",575, 22,1,1,65, 0)
  832   ---------- -----                    ------- ---------- ---
  833   "PKG",575, 22,1,1,66, 0)
  834   N/A
  835   "PKG",575, 22,1,1,67, 0)
  836    
  837   "PKG",575, 22,1,1,68, 0)
  838   Options As sociated:
  839   "PKG",575, 22,1,1,69, 0)
  840    
  841   "PKG",575, 22,1,1,70, 0)
  842   Option Nam e                      Type              Ne w/Modified /Deleted
  843   "PKG",575, 22,1,1,71, 0)
  844   ---------- -                      ----              -- ---------- --------
  845   "PKG",575, 22,1,1,72, 0)
  846   N/A
  847   "PKG",575, 22,1,1,73, 0)
  848    
  849   "PKG",575, 22,1,1,74, 0)
  850   Parameter  Definition s:
  851   "PKG",575, 22,1,1,75, 0)
  852    
  853   "PKG",575, 22,1,1,76, 0)
  854   Parameter  Name                                     Ne w/Modified /Deleted
  855   "PKG",575, 22,1,1,77, 0)
  856   ---------- ----                                     -- ---------- --------
  857   "PKG",575, 22,1,1,78, 0)
  858   N/A
  859   "PKG",575, 22,1,1,79, 0)
  860    
  861   "PKG",575, 22,1,1,80, 0)
  862   Protocols  Associated :
  863   "PKG",575, 22,1,1,81, 0)
  864    
  865   "PKG",575, 22,1,1,82, 0)
  866   Protocol N ame                       New/Mo dified/Del eted
  867   "PKG",575, 22,1,1,83, 0)
  868   ---------- ---                       ------ ---------- ----
  869   "PKG",575, 22,1,1,84, 0)
  870   N/A
  871   "PKG",575, 22,1,1,85, 0)
  872    
  873   "PKG",575, 22,1,1,86, 0)
  874   Remote Pro cedure Cal ls:
  875   "PKG",575, 22,1,1,87, 0)
  876    
  877   "PKG",575, 22,1,1,88, 0)
  878   RPC Name                                            Ne w/Modified /Deleted
  879   "PKG",575, 22,1,1,89, 0)
  880   --------                                            -- ---------- --------
  881   "PKG",575, 22,1,1,90, 0)
  882   XSA TEST G ET VARIABL E                             Ne w
  883   "PKG",575, 22,1,1,91, 0)
  884   XSA TEST S ET VARIABL E                             Ne w
  885   "PKG",575, 22,1,1,92, 0)
  886    
  887   "PKG",575, 22,1,1,93, 0)
  888   Security K eys Associ ated:
  889   "PKG",575, 22,1,1,94, 0)
  890    
  891   "PKG",575, 22,1,1,95, 0)
  892   Security K ey Name
  893   "PKG",575, 22,1,1,96, 0)
  894   ---------- -------
  895   "PKG",575, 22,1,1,97, 0)
  896   N/A
  897   "PKG",575, 22,1,1,98, 0)
  898    
  899   "PKG",575, 22,1,1,99, 0)
  900   Templates  Associated :
  901   "PKG",575, 22,1,1,100 ,0)
  902    
  903   "PKG",575, 22,1,1,101 ,0)
  904   Template N ame      T ype      F ile Name ( #)         New/Modifi ed/Deleted
  905   "PKG",575, 22,1,1,102 ,0)
  906   ---------- ---      - ---      - ---------- -------    ---------- ----------
  907   "PKG",575, 22,1,1,103 ,0)
  908   N/A
  909   "PKG",575, 22,1,1,104 ,0)
  910    
  911   "PKG",575, 22,1,1,105 ,0)
  912   Additional  Informati on:
  913   "PKG",575, 22,1,1,106 ,0)
  914   N/A
  915   "PKG",575, 22,1,1,107 ,0)
  916    
  917   "PKG",575, 22,1,1,108 ,0)
  918    
  919   "PKG",575, 22,1,1,109 ,0)
  920   New Servic e Requests  (NSRs):
  921   "PKG",575, 22,1,1,110 ,0)
  922   ---------- ---------- ---------
  923   "PKG",575, 22,1,1,111 ,0)
  924   N/A
  925   "PKG",575, 22,1,1,112 ,0)
  926    
  927   "PKG",575, 22,1,1,113 ,0)
  928    
  929   "PKG",575, 22,1,1,114 ,0)
  930   Patient Sa fety Issue s (PSIs):
  931   "PKG",575, 22,1,1,115 ,0)
  932   ---------- ---------- ----------
  933   "PKG",575, 22,1,1,116 ,0)
  934   N/A
  935   "PKG",575, 22,1,1,117 ,0)
  936    
  937   "PKG",575, 22,1,1,118 ,0)
  938    
  939   "PKG",575, 22,1,1,119 ,0)
  940   Remedy Tic ket(s) & O verviews:
  941   "PKG",575, 22,1,1,120 ,0)
  942   ---------- ---------- ---------
  943   "PKG",575, 22,1,1,121 ,0)
  944   N/A
  945   "PKG",575, 22,1,1,122 ,0)
  946    
  947   "PKG",575, 22,1,1,123 ,0)
  948    
  949   "PKG",575, 22,1,1,124 ,0)
  950   Test Sites :
  951   "PKG",575, 22,1,1,125 ,0)
  952   ---------- -
  953   "PKG",575, 22,1,1,126 ,0)
  954   Boise
  955   "PKG",575, 22,1,1,127 ,0)
  956   Memphis
  957   "PKG",575, 22,1,1,128 ,0)
  958   Hudson Val ley
  959   "PKG",575, 22,1,1,129 ,0)
  960   Hampton
  961   "PKG",575, 22,1,1,130 ,0)
  962   South Texa s
  963   "PKG",575, 22,1,1,131 ,0)
  964    
  965   "PKG",575, 22,1,1,132 ,0)
  966    
  967   "PKG",575, 22,1,1,133 ,0)
  968   Documentat ion Retrie val Instru ctions:
  969   "PKG",575, 22,1,1,134 ,0)
  970   ---------- ---------- ---------- -------
  971   "PKG",575, 22,1,1,135 ,0)
  972   Updated do cumentatio n describi ng the new  functiona lity intro duced by t his 
  973   "PKG",575, 22,1,1,136 ,0)
  974   patch is a vailable.
  975   "PKG",575, 22,1,1,137 ,0)
  976    
  977   "PKG",575, 22,1,1,138 ,0)
  978   The prefer red method  is to FTP  the files  from 
  979   "PKG",575, 22,1,1,139 ,0)
  980   ftp://down load. DNS        . DNS     /.
  981   "PKG",575, 22,1,1,140 ,0)
  982   This trans mits the f iles from  the first  available  FTP server . Sites ma
  983   "PKG",575, 22,1,1,141 ,0)
  984   also elect  to retrie ve softwar e directly  from a sp ecific ser ver as 
  985   "PKG",575, 22,1,1,142 ,0)
  986   follows:
  987   "PKG",575, 22,1,1,143 ,0)
  988    
  989   "PKG",575, 22,1,1,144 ,0)
  990   Albany           ftp.fo-alb any. URL            <ftp://ftp .fo-albany . URL         >
  991   "PKG",575, 22,1,1,145 ,0)
  992   Hines           ftp.D NS     .UR L           <ftp://ft p.DNS      .URL        >
  993   "PKG",575, 22,1,1,146 ,0)
  994   Salt Lake  City ftp.f o-slc. URL                <ftp://ftp .fo-slc. URL         >
  995   "PKG",575, 22,1,1,147 ,0)
  996    
  997   "PKG",575, 22,1,1,148 ,0)
  998    
  999   "PKG",575, 22,1,1,149 ,0)
  1000   The docume ntation wi ll be in t he form of  Adobe Acr obat files .
  1001   "PKG",575, 22,1,1,150 ,0)
  1002    
  1003   "PKG",575, 22,1,1,151 ,0)
  1004   Documentat ion can al so be foun d on the V A Software  Documenta tion Libra ry 
  1005   "PKG",575, 22,1,1,152 ,0)
  1006   at: http:/ / URL               /
  1007   "PKG",575, 22,1,1,153 ,0)
  1008    
  1009   "PKG",575, 22,1,1,154 ,0)
  1010   File Descr iption                               File N ame              FTP  Mode
  1011   "PKG",575, 22,1,1,155 ,0)
  1012   ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1013   "PKG",575, 22,1,1,156 ,0)
  1014   VistA Serv ices Assem bler Insta ll Guide       xsa1_0 ig.pdf           bina ry
  1015   "PKG",575, 22,1,1,157 ,0)
  1016   VistA Serv ices Assem bler Relea se Notes       xsa1_0 rn.pdf           bina ry
  1017   "PKG",575, 22,1,1,158 ,0)
  1018   VistA Serv ices Assem bler Devel oper Guide     xsa1_0 dg.pdf           bina ry
  1019   "PKG",575, 22,1,1,159 ,0)
  1020    
  1021   "PKG",575, 22,1,1,160 ,0)
  1022    
  1023   "PKG",575, 22,1,1,161 ,0)
  1024   Patch Inst allation:
  1025   "PKG",575, 22,1,1,162 ,0)
  1026    
  1027   "PKG",575, 22,1,1,163 ,0)
  1028    
  1029   "PKG",575, 22,1,1,164 ,0)
  1030   Pre/Post I nstallatio n Overview
  1031   "PKG",575, 22,1,1,165 ,0)
  1032   ---------- ---------- ----------
  1033   "PKG",575, 22,1,1,166 ,0)
  1034    
  1035   "PKG",575, 22,1,1,167 ,0)
  1036    
  1037   "PKG",575, 22,1,1,168 ,0)
  1038   Pre-Instal lation Ins tructions
  1039   "PKG",575, 22,1,1,169 ,0)
  1040   ---------- ---------- ---------
  1041   "PKG",575, 22,1,1,170 ,0)
  1042   This patch  may be in stalled wi th users o n the syst em. This p atch shoul
  1043   "PKG",575, 22,1,1,171 ,0)
  1044   take less  than 5 min utes to in stall.
  1045   "PKG",575, 22,1,1,172 ,0)
  1046    
  1047   "PKG",575, 22,1,1,173 ,0)
  1048    
  1049   "PKG",575, 22,1,1,174 ,0)
  1050   Installati on Instruc tions
  1051   "PKG",575, 22,1,1,175 ,0)
  1052   ---------- ---------- -----
  1053   "PKG",575, 22,1,1,176 ,0)
  1054   1.  Use th e 'Load a  Distributi on' option  on the KI DS install ation menu .
  1055   "PKG",575, 22,1,1,177 ,0)
  1056       When p rompted to  enter a h ost file t ype in [DI R]:XSA_1_0 .KID, 
  1057   "PKG",575, 22,1,1,178 ,0)
  1058       Where  [DIR] is t he local d irectory w here the h ost file w as copied  to.
  1059   "PKG",575, 22,1,1,179 ,0)
  1060    
  1061   "PKG",575, 22,1,1,180 ,0)
  1062   2.  From t he Kernel  Installati on and Dis tribution  System Men u, select
  1063   "PKG",575, 22,1,1,181 ,0)
  1064       the In stallation  Menu.  Fr om this me nu, you ma y elect to  use the
  1065   "PKG",575, 22,1,1,182 ,0)
  1066       follow ing option . When pro mpted for  the INSTAL L enter th e patch #
  1067   "PKG",575, 22,1,1,183 ,0)
  1068       (XSA 1 .0):
  1069   "PKG",575, 22,1,1,184 ,0)
  1070    
  1071   "PKG",575, 22,1,1,185 ,0)
  1072       a. Bac kup a Tran sport Glob al - This  option wil l create a  backup
  1073   "PKG",575, 22,1,1,186 ,0)
  1074          mes sage of an y routines  exported  with this  patch. It  will not
  1075   "PKG",575, 22,1,1,187 ,0)
  1076          bac kup any ot her change s such as  DD's or te mplates.
  1077   "PKG",575, 22,1,1,188 ,0)
  1078       b. Com pare Trans port Globa l to Curre nt System  - This opt ion will
  1079   "PKG",575, 22,1,1,189 ,0)
  1080          all ow you to  view all c hanges tha t will be  made when  this patch
  1081   "PKG",575, 22,1,1,190 ,0)
  1082          is  installed.   It compa res all co mponents o f this pat ch
  1083   "PKG",575, 22,1,1,191 ,0)
  1084          (ro utines, DD 's, templa tes, etc.) .
  1085   "PKG",575, 22,1,1,192 ,0)
  1086       c. Ver ify Checks ums in Tra nsport Glo bal - This  option wi ll allow
  1087   "PKG",575, 22,1,1,193 ,0)
  1088          you  to ensure  the integ rity of th e routines  that are  in the
  1089   "PKG",575, 22,1,1,194 ,0)
  1090          tra nsport glo bal.
  1091   "PKG",575, 22,1,1,195 ,0)
  1092    
  1093   "PKG",575, 22,1,1,196 ,0)
  1094   3.  From t he Install ation Menu , select t he Install  Package(s ) option a nd
  1095   "PKG",575, 22,1,1,197 ,0)
  1096       choose  the patch  to instal l. Enter X SA 1.0.
  1097   "PKG",575, 22,1,1,198 ,0)
  1098    
  1099   "PKG",575, 22,1,1,199 ,0)
  1100   4.  When p rompted 'W ant KIDS t o Rebuild  Menu Trees  Upon Comp letion of
  1101   "PKG",575, 22,1,1,200 ,0)
  1102       Instal l? NO//',  respond NO .
  1103   "PKG",575, 22,1,1,201 ,0)
  1104    
  1105   "PKG",575, 22,1,1,202 ,0)
  1106   5.  When p rompted 'W ant KIDS t o INHIBIT  LOGONs dur ing the in stall? NO/ /',
  1107   "PKG",575, 22,1,1,203 ,0)
  1108       respon d NO.
  1109   "PKG",575, 22,1,1,204 ,0)
  1110    
  1111   "PKG",575, 22,1,1,205 ,0)
  1112   6.  When p rompted 'W ant to DIS ABLE Sched uled Optio ns, Menu O ptions, an d
  1113   "PKG",575, 22,1,1,206 ,0)
  1114       Protoc ols? NO//' , respond  NO.
  1115   "PKG",575, 22,1,1,207 ,0)
  1116   7.  If pro mpted 'Del ay Install  (Minutes) :  (0 - 60 ): 0//', r espond 0.
  1117   "PKG",575, 22,1,1,208 ,0)
  1118    
  1119   "PKG",575, 22,1,1,209 ,0)
  1120   Post-Insta llation In structions
  1121   "PKG",575, 22,1,1,210 ,0)
  1122   ---------- ---------- ----------
  1123   "PKG",575, 22,1,1,211 ,0)
  1124   N/A
  1125   "PKG",575, "DEV")
  1126   BRIAN TOML IN/APEX DA TA SOLUTIO NS, INC.
  1127   "PKG",575, "VERSION")
  1128   1.0
  1129   "QUES","XP F1",0)
  1130   Y
  1131   "QUES","XP F1","??")
  1132   ^D REP^XPD H
  1133   "QUES","XP F1","A")
  1134   Shall I wr ite over y our |FLAG|  File
  1135   "QUES","XP F1","B")
  1136   YES
  1137   "QUES","XP F1","M")
  1138   D XPF1^XPD IQ
  1139   "QUES","XP F2",0)
  1140   Y
  1141   "QUES","XP F2","??")
  1142   ^D DTA^XPD H
  1143   "QUES","XP F2","A")
  1144   Want my da ta |FLAG|  yours
  1145   "QUES","XP F2","B")
  1146   YES
  1147   "QUES","XP F2","M")
  1148   D XPF2^XPD IQ
  1149   "QUES","XP I1",0)
  1150   YO
  1151   "QUES","XP I1","??")
  1152   ^D INHIBIT ^XPDH
  1153   "QUES","XP I1","A")
  1154   Want KIDS  to INHIBIT  LOGONs du ring the i nstall
  1155   "QUES","XP I1","B")
  1156   NO
  1157   "QUES","XP I1","M")
  1158   D XPI1^XPD IQ
  1159   "QUES","XP M1",0)
  1160   PO^VA(200, :EM
  1161   "QUES","XP M1","??")
  1162   ^D MG^XPDH
  1163   "QUES","XP M1","A")
  1164   Enter the  Coordinato r for Mail  Group '|F LAG|'
  1165   "QUES","XP M1","B")
  1166  
  1167   "QUES","XP M1","M")
  1168   D XPM1^XPD IQ
  1169   "QUES","XP O1",0)
  1170   Y
  1171   "QUES","XP O1","??")
  1172   ^D MENU^XP DH
  1173   "QUES","XP O1","A")
  1174   Want KIDS  to Rebuild  Menu Tree s Upon Com pletion of  Install
  1175   "QUES","XP O1","B")
  1176   NO
  1177   "QUES","XP O1","M")
  1178   D XPO1^XPD IQ
  1179   "QUES","XP Z1",0)
  1180   Y
  1181   "QUES","XP Z1","??")
  1182   ^D OPT^XPD H
  1183   "QUES","XP Z1","A")
  1184   Want to DI SABLE Sche duled Opti ons, Menu  Options, a nd Protoco ls
  1185   "QUES","XP Z1","B")
  1186   NO
  1187   "QUES","XP Z1","M")
  1188   D XPZ1^XPD IQ
  1189   "QUES","XP Z2",0)
  1190   Y
  1191   "QUES","XP Z2","??")
  1192   ^D RTN^XPD H
  1193   "QUES","XP Z2","A")
  1194   Want to MO VE routine s to other  CPUs
  1195   "QUES","XP Z2","B")
  1196   NO
  1197   "QUES","XP Z2","M")
  1198   D XPZ2^XPD IQ
  1199   "RTN")
  1200   13
  1201   "RTN","XSA PXACC")
  1202   0^5^B15971 167
  1203   "RTN","XSA PXACC",1,0 )
  1204   XSAPXACC ; DAL/BNT -  VistA Serv ices Assem bler Login  Functions ;1/27/2016
  1205   "RTN","XSA PXACC",2,0 )
  1206    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  1207   "RTN","XSA PXACC",3,0 )
  1208    ;
  1209   "RTN","XSA PXACC",4,0 )
  1210    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  1211   "RTN","XSA PXACC",5,0 )
  1212    ;
  1213   "RTN","XSA PXACC",6,0 )
  1214    ; Externa l Referenc es           DBIA#
  1215   "RTN","XSA PXACC",7,0 )
  1216    ; ------- ---------- --           -----
  1217   "RTN","XSA PXACC",8,0 )
  1218    ; NOW^%DT C                       10000
  1219   "RTN","XSA PXACC",9,0 )
  1220    ; $$FMTHL 7^XLFDT                 10103
  1221   "RTN","XSA PXACC",10, 0)
  1222    ; $$NOW^X LFDT                    10103
  1223   "RTN","XSA PXACC",11, 0)
  1224    ; $$UP^XL FSTR                    10104
  1225   "RTN","XSA PXACC",12, 0)
  1226    ; $$GET^X UESSO1                  4342
  1227   "RTN","XSA PXACC",13, 0)
  1228    ; $$PUT^X UESSO1                  4342
  1229   "RTN","XSA PXACC",14, 0)
  1230    ; ESSO^XU ESSO4                   6295
  1231   "RTN","XSA PXACC",15, 0)
  1232    ; SETUP^X USRB                    4054
  1233   "RTN","XSA PXACC",16, 0)
  1234    ; VALIDAV ^XUSRB                  4054
  1235   "RTN","XSA PXACC",17, 0)
  1236    ; $$DECRY P^XUSRB1                2241
  1237   "RTN","XSA PXACC",18, 0)
  1238    ; $$ENCRY P^XUSRB1                2240
  1239   "RTN","XSA PXACC",19, 0)
  1240    ; USERINF O^XUSRB2                4055
  1241   "RTN","XSA PXACC",20, 0)
  1242    Q
  1243   "RTN","XSA PXACC",21, 0)
  1244    ;
  1245   "RTN","XSA PXACC",22, 0)
  1246    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  1247   "RTN","XSA PXACC",23, 0)
  1248    ;
  1249   "RTN","XSA PXACC",24, 0)
  1250   LOGIN(SOUR CE,TARGET)  ; Wrapper  for mulit ple authen tication m odes login
  1251   "RTN","XSA PXACC",25, 0)
  1252    N XSAAV,X SALERR,XSA USER,XSASY SL,XSAUSR, XSAACC,XSA VER,XSADIV ,XSAIP
  1253   "RTN","XSA PXACC",26, 0)
  1254    N XSABSEU ,XSADATA,X SAOS,PARAM S
  1255   "RTN","XSA PXACC",27, 0)
  1256    I '$$AUTH ^XSAPXUTL( ) D  Q $$R ESULT^XSAP XUTL()
  1257   "RTN","XSA PXACC",28, 0)
  1258    . D BLDER ROR^XSAPXU TL(1,"Not  an authori zed callin g Applicat ion","$$LO GIN^XSAPXA CC")
  1259   "RTN","XSA PXACC",29, 0)
  1260    F X="XSAA CC","XSAVE R","XSADIV ","XSAIP", "XSABSEU", "XSAESSO"  D INITPARM ^XSAPXUTL( .X)
  1261   "RTN","XSA PXACC",30, 0)
  1262    ; Encrypt  the A/V c ode ';'-de limited st ring befor e anything  else
  1263   "RTN","XSA PXACC",31, 0)
  1264    I XSAACC] "" D
  1265   "RTN","XSA PXACC",32, 0)
  1266    . ; CCOW  Login Supp ort
  1267   "RTN","XSA PXACC",33, 0)
  1268    . I $E(XS AACC,1,2)= "~2" S XSA AV=XSAACC  Q
  1269   "RTN","XSA PXACC",34, 0)
  1270    . S XSAAV =$$ENCRYP^ XUSRB1($S( XSAVER]"": $G(XSAACC) _";"_$G(XS AVER),1:$G (XSAACC))_ ";"_XSAIP)
  1271   "RTN","XSA PXACC",35, 0)
  1272    K XSAVER, XSAACC,XWB TIP
  1273   "RTN","XSA PXACC",36, 0)
  1274    S XSALERR =0
  1275   "RTN","XSA PXACC",37, 0)
  1276    ; -- Init ial System  Setup for  logon
  1277   "RTN","XSA PXACC",38, 0)
  1278    D INIT,SE TUP^XUSRB( .XSASYSL," ",1,"")
  1279   "RTN","XSA PXACC",39, 0)
  1280    ;
  1281   "RTN","XSA PXACC",40, 0)
  1282    ; -- BSE  Login
  1283   "RTN","XSA PXACC",41, 0)
  1284    I $G(XSAB SEU)]"" D   Q:XSALERR  $$RESULT^ XSAPXUTL()
  1285   "RTN","XSA PXACC",42, 0)
  1286    . I '$$PU T^XUESSO1( $$DECRYP^X USRB1(XSAB SEU)) D  Q
  1287   "RTN","XSA PXACC",43, 0)
  1288    . . S PAR AMS(1)="Un able to cr eate remot e Visitor  user"
  1289   "RTN","XSA PXACC",44, 0)
  1290    . . D ERR OR^XSAPXER R(182305," XSAPXACC -  BSE Logon ",.PARAMS, "")
  1291   "RTN","XSA PXACC",45, 0)
  1292    . . S XSA LERR=1
  1293   "RTN","XSA PXACC",46, 0)
  1294    . ; BSE L ITE Implem entation s pecific fo r VSA
  1295   "RTN","XSA PXACC",47, 0)
  1296    . S DUZ(" AUTHENTICA TION")="BS ELITE"
  1297   "RTN","XSA PXACC",48, 0)
  1298    . S DUZ(" LOA")=2
  1299   "RTN","XSA PXACC",49, 0)
  1300    ;
  1301   "RTN","XSA PXACC",50, 0)
  1302    ; -- Vali date Acces s/Verify c odes for l ogin
  1303   "RTN","XSA PXACC",51, 0)
  1304    I $G(XSAA V)]"" D  Q :XSALERR $ $RESULT^XS APXUTL()
  1305   "RTN","XSA PXACC",52, 0)
  1306    . D VALID AV^XUSRB(. XSAUSER,XS AAV)
  1307   "RTN","XSA PXACC",53, 0)
  1308    . I 'XSAU SER(0) D   Q
  1309   "RTN","XSA PXACC",54, 0)
  1310    . . S PAR AMS(1)=XSA USER(3)
  1311   "RTN","XSA PXACC",55, 0)
  1312    . . D ERR OR^XSAPXER R(182305," XSAPXACC -  A/V Logon ",.PARAMS, "")
  1313   "RTN","XSA PXACC",56, 0)
  1314    . . S XSA LERR=1
  1315   "RTN","XSA PXACC",57, 0)
  1316    . S @TARG ET@("resul ts","GREET ING")=$G(X SAUSER(7))
  1317   "RTN","XSA PXACC",58, 0)
  1318    ;
  1319   "RTN","XSA PXACC",59, 0)
  1320    ; -- Vali date ESSO  User from  SAML Token
  1321   "RTN","XSA PXACC",60, 0)
  1322    I $D(@SOU RCE@("XSAE SSO",1)) D   Q:XSALER R $$RESULT ^XSAPXUTL( )
  1323   "RTN","XSA PXACC",61, 0)
  1324    . D ESSO^ XUESSO4(.X SAUSER,$NA (@SOURCE@( "XSAESSO") ))
  1325   "RTN","XSA PXACC",62, 0)
  1326    . I 'XSAU SER(0) D   Q
  1327   "RTN","XSA PXACC",63, 0)
  1328    . . S PAR AMS(1)=XSA USER(3)
  1329   "RTN","XSA PXACC",64, 0)
  1330    . . D ERR OR^XSAPXER R(182305," XSAPXACC -  ESSO Logo n",.PARAMS ,"")
  1331   "RTN","XSA PXACC",65, 0)
  1332    . . S XSA LERR=1
  1333   "RTN","XSA PXACC",66, 0)
  1334    . S @TARG ET@("resul ts","GREET ING")=$G(X SAUSER(7))
  1335   "RTN","XSA PXACC",67, 0)
  1336    ;
  1337   "RTN","XSA PXACC",68, 0)
  1338    ; -- DUZ  not define d so unabl e to Logon  with inpu t credenti als
  1339   "RTN","XSA PXACC",69, 0)
  1340    I $G(DUZ) <1 D  Q $$ RESULT^XSA PXUTL()
  1341   "RTN","XSA PXACC",70, 0)
  1342    . S PARAM S(1)="No s upported l ogon crede ntials ide ntified. U nable to l ogon user. "
  1343   "RTN","XSA PXACC",71, 0)
  1344    . D ERROR ^XSAPXERR( 182305,"XS APXACC - L ogon",.PAR AMS,"")
  1345   "RTN","XSA PXACC",72, 0)
  1346    ;
  1347   "RTN","XSA PXACC",73, 0)
  1348    ; -- Get  user info
  1349   "RTN","XSA PXACC",74, 0)
  1350    D USERINF O^XUSRB2(. XSAUSR)
  1351   "RTN","XSA PXACC",75, 0)
  1352    ;
  1353   "RTN","XSA PXACC",76, 0)
  1354    ; Build t he Encrypt ed BSE Vis itor User  for remote  visitor a ccess
  1355   "RTN","XSA PXACC",77, 0)
  1356    I XSABSEU ']"" S XSA BSEU=$$ENC RYP^XUSRB1 ($$GET^XUE SSO1(.DUZ) )
  1357   "RTN","XSA PXACC",78, 0)
  1358    ;
  1359   "RTN","XSA PXACC",79, 0)
  1360    ; Build r eturn data
  1361   "RTN","XSA PXACC",80, 0)
  1362    S @TARGET @("results ","DT")=DT
  1363   "RTN","XSA PXACC",81, 0)
  1364    S @TARGET @("results ","SIGNON- DATETIME") =$$FMTHL7^ XLFDT($$NO W^XLFDT())
  1365   "RTN","XSA PXACC",82, 0)
  1366    S @TARGET @("results ","XSABSEU ")=$G(XSAB SEU)
  1367   "RTN","XSA PXACC",83, 0)
  1368    S @TARGET @("results ","DUZ")=D UZ
  1369   "RTN","XSA PXACC",84, 0)
  1370    S @TARGET @("results ","USER-NA ME")=$G(XS AUSR(1))
  1371   "RTN","XSA PXACC",85, 0)
  1372    S @TARGET @("results ","USER-DI SPLAY-NAME ")=$G(XSAU SR(2))
  1373   "RTN","XSA PXACC",86, 0)
  1374    S @TARGET @("results ","USER-LO GGED-ON-DI VISION")=$ G(XSAUSR(3 ))
  1375   "RTN","XSA PXACC",87, 0)
  1376    S @TARGET @("results ","USER-TI TLE")=$G(X SAUSR(4))
  1377   "RTN","XSA PXACC",88, 0)
  1378    S @TARGET @("results ","USER-SE RVICE-SECT ION")=$G(X SAUSR(5))
  1379   "RTN","XSA PXACC",89, 0)
  1380    S @TARGET @("results ","USER-LA NGUAGE")=$ G(XSAUSR(6 ))
  1381   "RTN","XSA PXACC",90, 0)
  1382    S @TARGET @("results ","USER-RE AD-TIMEOUT ")=$G(XSAU SR(7))
  1383   "RTN","XSA PXACC",91, 0)
  1384    S @TARGET @("results ","USER-VP ID")=$G(XS AUSR(8))
  1385   "RTN","XSA PXACC",92, 0)
  1386    S @TARGET @("results ","USER-IP ")=$G(XSAI P)
  1387   "RTN","XSA PXACC",93, 0)
  1388    M @TARGET @("results ","DUZARRA Y")=DUZ
  1389   "RTN","XSA PXACC",94, 0)
  1390    S @TARGET @("results ","VJS-SES SION-TOKEN ")=XSASYMI D
  1391   "RTN","XSA PXACC",95, 0)
  1392    Q $$RESUL T^XSAPXUTL ()
  1393   "RTN","XSA PXACC",96, 0)
  1394    ;
  1395   "RTN","XSA PXACC",97, 0)
  1396   INIT ; --  VSA-specif ic or gene ral partit ion setup  before rea uthenticat ion proces s starts
  1397   "RTN","XSA PXACC",98, 0)
  1398    K XSASYS
  1399   "RTN","XSA PXACC",99, 0)
  1400    ;
  1401   "RTN","XSA PXACC",100 ,0)
  1402    L
  1403   "RTN","XSA PXACC",101 ,0)
  1404    S:$D(IO)[ 0 IO=$I S  IO(0)=IO
  1405   "RTN","XSA PXACC",102 ,0)
  1406    S:$G(XSAI P)]"" (IO( "ZIO"),IO( "IP"))=XSA IP
  1407   "RTN","XSA PXACC",103 ,0)
  1408    K ^UTILIT Y($J),^TMP ($J)
  1409   "RTN","XSA PXACC",104 ,0)
  1410    K ^XUTL(" XQ",$J)
  1411   "RTN","XSA PXACC",105 ,0)
  1412    D NOW^%DT C S DT=X
  1413   "RTN","XSA PXACC",106 ,0)
  1414    Q
  1415   "RTN","XSA PXCRS")
  1416   0^6^B31270 41
  1417   "RTN","XSA PXCRS",1,0 )
  1418   XSAPXCRS ; DAL/BNT -  VistA Serv ices Assem bler Clini cal Reconc iliation S ervices;1/ 27/2016
  1419   "RTN","XSA PXCRS",2,0 )
  1420    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  1421   "RTN","XSA PXCRS",3,0 )
  1422    ;
  1423   "RTN","XSA PXCRS",4,0 )
  1424    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  1425   "RTN","XSA PXCRS",5,0 )
  1426    ;
  1427   "RTN","XSA PXCRS",6,0 )
  1428    ; Externa l Referenc es           DBIA#
  1429   "RTN","XSA PXCRS",7,0 )
  1430    ; ------- ---------- --           -----
  1431   "RTN","XSA PXCRS",8,0 )
  1432    ; $$GETIC N^MPIF001               2701
  1433   "RTN","XSA PXCRS",9,0 )
  1434    ; TFL^VAF CTFU1                   2990
  1435   "RTN","XSA PXCRS",10, 0)
  1436    ; $$FMTE^ XLFDT                   10103
  1437   "RTN","XSA PXCRS",11, 0)
  1438    Q
  1439   "RTN","XSA PXCRS",12, 0)
  1440    ;
  1441   "RTN","XSA PXCRS",13, 0)
  1442    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  1443   "RTN","XSA PXCRS",14, 0)
  1444    ;
  1445   "RTN","XSA PXCRS",15, 0)
  1446    ;
  1447   "RTN","XSA PXCRS",16, 0)
  1448   GETPTFL(SO URCE,TARGE T) ; - Ret urn patien t visit in formation
  1449   "RTN","XSA PXCRS",17, 0)
  1450    N ICN,LIS T,XSAFAC,D FN
  1451   "RTN","XSA PXCRS",18, 0)
  1452    N X F X=" DFN" D INI TPARM^XSAP XUTL(.X)
  1453   "RTN","XSA PXCRS",19, 0)
  1454    D TFL^VAF CTFU1(.LIS T,DFN)     ; get list  of sites  and local  DFNs
  1455   "RTN","XSA PXCRS",20, 0)
  1456    S ICN=$$G ETICN^MPIF 001(DFN)   ; get the  global ICN  for this  DFN
  1457   "RTN","XSA PXCRS",21, 0)
  1458    S @TARGET @("results ","ICN")=$ G(ICN)
  1459   "RTN","XSA PXCRS",22, 0)
  1460    I $D(LIST (1)) D
  1461   "RTN","XSA PXCRS",23, 0)
  1462    . I +LIST (1)=-1 D
  1463   "RTN","XSA PXCRS",24, 0)
  1464    . . D BLD ERROR^XSAP XUTL(1,$P( LIST(1),U, 2),"GETPTF L^XSAPXCRS ") Q
  1465   "RTN","XSA PXCRS",25, 0)
  1466    . N X S X ="" F  S X =$O(LIST(X )) Q:X=""   D
  1467   "RTN","XSA PXCRS",26, 0)
  1468    . . S @TA RGET@("res ults","STA TION",$P(L IST(X),U), "NAME")=$P (LIST(X),U ,2)
  1469   "RTN","XSA PXCRS",27, 0)
  1470    . . S @TA RGET@("res ults","STA TION",$P(L IST(X),U), "DATE")=$$ FMTE^XLFDT ($P(LIST(X ),U,3))
  1471   "RTN","XSA PXCRS",28, 0)
  1472    . . S @TA RGET@("res ults","STA TION",$P(L IST(X),U), "EVENT_REA SON_CODE") =$P(LIST(X ),U,4)
  1473   "RTN","XSA PXCRS",29, 0)
  1474    . . S XSA FAC=$P(LIS T(X),U,5)  I XSAFAC]" " D
  1475   "RTN","XSA PXCRS",30, 0)
  1476    . . . S X SAFAC=$O(^ DIC(4.1,"B ",XSAFAC,0 ))
  1477   "RTN","XSA PXCRS",31, 0)
  1478    . . . I X SAFAC S XS AFAC=$P(^D IC(4.1,XSA FAC,0),U,2 )
  1479   "RTN","XSA PXCRS",32, 0)
  1480    . . S @TA RGET@("res ults","STA TION",$P(L IST(X),U), "FACILITY_ TYPE")=XSA FAC
  1481   "RTN","XSA PXCRS",33, 0)
  1482    Q $$RESUL T^XSAPXUTL ()
  1483   "RTN","XSA PXD1")
  1484   0^15^B2481
  1485   "RTN","XSA PXD1",1,0)
  1486   XSAPXD1 ;D AL/BNT - V istA Servi ces Assemb ler Publis hed Functi ons Docume ntation;1/ 27/2016
  1487   "RTN","XSA PXD1",2,0)
  1488    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  1489   "RTN","XSA PXD1",3,0)
  1490    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  1491   "RTN","XSA PXD1",4,0)
  1492    ;
  1493   "RTN","XSA PXD1",5,0)
  1494    ;NOTE: Th is documen t is pre-f ormatted i n MARKDOWN . To view  it with MA RKDOWN for matting yo u can Find  " ;" and  Replace wi th "" to r emove the  comment ta gs.
  1495   "RTN","XSA PXD1",6,0)
  1496    ;
  1497   "RTN","XSA PXD1",7,0)
  1498    ;#VistA S ervices As sembler AP I Document ation
  1499   "RTN","XSA PXD1",8,0)
  1500    ;
  1501   "RTN","XSA PXD1",9,0)
  1502    ;##Extern al Referen ces
  1503   "RTN","XSA PXD1",10,0 )
  1504    ;
  1505   "RTN","XSA PXD1",11,0 )
  1506    ;|Routine              |is Invo ked by:       |ICR#    |Usage         |Stat us    |
  1507   "RTN","XSA PXD1",12,0 )
  1508    ;|------- ---------- --|------- ---------- ---|------ -|-------- -----|---- ------|
  1509   "RTN","XSA PXD1",13,0 )
  1510    ;
  1511   "RTN","XSA PXD1",14,0 )
  1512    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ---
  1513   "RTN","XSA PXD1",15,0 )
  1514    ;
  1515   "RTN","XSA PXD1",16,0 )
  1516    ;All publ ished func tions in t he XSAPXPU B routine  require th e same two  input par ameters.
  1517   "RTN","XSA PXD1",17,0 )
  1518    ;All publ ished func tion retur n 1 if the  call  as  successful  and 0 if  the call f ailed. 
  1519   "RTN","XSA PXD1",18,0 )
  1520    ;
  1521   "RTN","XSA PXD1",19,0 )
  1522    ;##SOURCE
  1523   "RTN","XSA PXD1",20,0 )
  1524    ;A closed  global ro ot contain ing source  input par ameters re quired by  the callin g function .
  1525   "RTN","XSA PXD1",21,0 )
  1526    ;The SOUR CE input g lobal arra y is set b y the Vist A Service  Assembler  JavaScript  software  through th e cache.no de interfa ce. The in put variab le(s) for  each funct ion are se t in the l ast subscr ipt of the  SOURCE gl obal.
  1527   "RTN","XSA PXD1",22,0 )
  1528    ;SOURCE s hould be s et to a Te mporary gl obal name  such as ^T MP($J,"XSA ","RPC LIS T"), howev er, it can  be any te mporary gl obal.
  1529   "RTN","XSA PXD1",23,0 )
  1530    ;
  1531   "RTN","XSA PXD1",24,0 )
  1532    ;The exam ple below  shows the  SOURCE glo bal array  when calli ng the LIS T function  to get a  list of 40  RPCs that  start wit h "VPS".
  1533   "RTN","XSA PXD1",25,0 )
  1534    ;
  1535   "RTN","XSA PXD1",26,0 )
  1536    ;###Examp le of SOUR CE
  1537   "RTN","XSA PXD1",27,0 )
  1538    ;
  1539   "RTN","XSA PXD1",28,0 )
  1540    ;    ^TMP ($J,"XSA", "RPC LIST" )
  1541   "RTN","XSA PXD1",29,0 )
  1542    ;    ^TMP ($J,"XSA", "RPC LIST" ,"FILE")=8 994
  1543   "RTN","XSA PXD1",30,0 )
  1544    ;    ^TMP ($J,"XSA", "RPC LIST" ,"IENS")=" "
  1545   "RTN","XSA PXD1",31,0 )
  1546    ;    ^TMP ($J,"XSA", "RPC LIST" ,"FIELDS") =""
  1547   "RTN","XSA PXD1",32,0 )
  1548    ;    ^TMP ($J,"XSA", "RPC LIST" ,"FLAGS")= ""
  1549   "RTN","XSA PXD1",33,0 )
  1550    ;    ^TMP ($J,"XSA", "RPC LIST" ,"NUMBER") =40
  1551   "RTN","XSA PXD1",34,0 )
  1552    ;    ^TMP ($J,"XSA", "RPC LIST" ,"FROM")=" "
  1553   "RTN","XSA PXD1",35,0 )
  1554    ;    ^TMP ($J,"XSA", "RPC LIST" ,"PART")=" VPS"
  1555   "RTN","XSA PXD1",36,0 )
  1556    ;    ^TMP ($J,"XSA", "RPC LIST" ,"INDEX")= ""
  1557   "RTN","XSA PXD1",37,0 )
  1558    ;    ^TMP ($J,"XSA", "RPC LIST" ,"SCREEN") =""
  1559   "RTN","XSA PXD1",38,0 )
  1560    ;    ^TMP ($J,"XSA", "RPC LIST" ,"XSASYM") =1
  1561   "RTN","XSA PXD1",39,0 )
  1562    ;    ^TMP ($J,"XSA", "RPC LIST" ,"ID")=""
  1563   "RTN","XSA PXD1",40,0 )
  1564    ;
  1565   "RTN","XSA PXD1",41,0 )
  1566    ;###XSASY M Paramete r
  1567   "RTN","XSA PXD1",42,0 )
  1568    ;This par ameter sho uld be set  to 1 if t he Symbol  table shou ld be save d and retu rned in th e TARGET a rray.
  1569   "RTN","XSA PXD1",43,0 )
  1570    ;All loca l variable s will be  saved and  returned u nder the " symbolTabl e" node of  the TARGE T array.
  1571   "RTN","XSA PXD1",44,0 )
  1572    ;
  1573   "RTN","XSA PXD1",45,0 )
  1574    ;###XSASY MGR Parame ter
  1575   "RTN","XSA PXD1",46,0 )
  1576    ;Specifie s the base  global of  the sessi on cache b eing used  to save an d restore  symbol tab le informa tion to.
  1577   "RTN","XSA PXD1",47,0 )
  1578    ;Should b e of the f ormat GLOB AL|S1,S2 w here GLOBA L is the n ame of the  global an d S1 and S 2 are subs cripts
  1579   "RTN","XSA PXD1",48,0 )
  1580    ;
  1581   "RTN","XSA PXD1",49,0 )
  1582    ;###XSASY MID Parame ter
  1583   "RTN","XSA PXD1",50,0 )
  1584    ;Specifes  the sessi on Key in  the sessio n cache (m anaged by  XSAPXPSS)  to load th e symbol t able from  for the cu rrent call .
  1585   "RTN","XSA PXD1",51,0 )
  1586    ;
  1587   "RTN","XSA PXD1",52,0 )
  1588    ;##TARGET
  1589   "RTN","XSA PXD1",53,0 )
  1590    ;A closed  global ro ot where t he results  are to be  returned.  Errors ar e also ret urned in t he TARGET.
  1591   "RTN","XSA PXD1",54,0 )
  1592    ;All resu lts for a  successful , or faile d, functio n call are  returned  in the TAR GET global  node.
  1593   "RTN","XSA PXD1",55,0 )
  1594    ;
  1595   "RTN","XSA PXD1",56,0 )
  1596    ;The resu lt data is  returned  in the "re sults" nod e of the T ARGET arra y.
  1597   "RTN","XSA PXD1",57,0 )
  1598    ;
  1599   "RTN","XSA PXD1",58,0 )
  1600    ;    ^TMP (19976,"XS A","RPC"," results",0 )="RPCs St arting wit h 'VPR' .. . (4) entr ies found. "
  1601   "RTN","XSA PXD1",59,0 )
  1602    ;    ^TMP (19976,"XS A","RPC"," results",1 )="VPR DAT A VERSION"
  1603   "RTN","XSA PXD1",60,0 )
  1604    ;    ^TMP (19976,"XS A","RPC"," results",2 )="VPR GET  CHECKSUM"
  1605   "RTN","XSA PXD1",61,0 )
  1606    ;    ^TMP (19976,"XS A","RPC"," results",3 )="VPR GET  PATIENT D ATA"
  1607   "RTN","XSA PXD1",62,0 )
  1608    ;    ^TMP (19976,"XS A","RPC"," results",4 )="VPR GET  PATIENT D ATA JSON"
  1609   "RTN","XSA PXD1",63,0 )
  1610    ;
  1611   "RTN","XSA PXD1",64,0 )
  1612    ;Error da ta is retu rned in th e "error"  node of th e TARGET a rray.
  1613   "RTN","XSA PXD1",65,0 )
  1614    ;
  1615   "RTN","XSA PXD1",66,0 )
  1616    ;    ^TMP (19976,"XS A","RPC"," error","da ta","code" )=182005
  1617   "RTN","XSA PXD1",67,0 )
  1618    ;    ^TMP (19976,"XS A","RPC"," error","da ta","error  type")="X OBV TEST N OT IN CONT EXT"
  1619   "RTN","XSA PXD1",68,0 )
  1620    ;    ^TMP (19976,"XS A","RPC"," error","da ta","fault  actor")=" XOBV TEST  NOT IN CON TEXT"
  1621   "RTN","XSA PXD1",69,0 )
  1622    ;    ^TMP (19976,"XS A","RPC"," error","da ta","fault  string")= "Internal  Applicatio n Error"
  1623   "RTN","XSA PXD1",70,0 )
  1624    ;    ^TMP (19976,"XS A","RPC"," error","ms g")="RPC C ontext Err or :: User  CLERK,WAR D does not  have acce ss to opti on XOBV VI STALINK TE STER"
  1625   "RTN","XSA PXD1",71,0 )
  1626    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1627   "RTN","XSA PXD1",72,0 )
  1628    ;
  1629   "RTN","XSA PXD1",73,0 )
  1630    ;##LIST(S OURCE,TARG ET)
  1631   "RTN","XSA PXD1",74,0 )
  1632    ;
  1633   "RTN","XSA PXD1",75,0 )
  1634    ;This Fun ction is a  wrapper f or the Fil eMan LIST^ DIC Lister  API
  1635   "RTN","XSA PXD1",76,0 )
  1636    ;Refer to  the VA Fi leMan Prog rammer Gui de for add itional in put parame ter explan ations
  1637   "RTN","XSA PXD1",77,0 )
  1638    ;
  1639   "RTN","XSA PXD1",78,0 )
  1640    ;###INPUT
  1641   "RTN","XSA PXD1",79,0 )
  1642    ;
  1643   "RTN","XSA PXD1",80,0 )
  1644    ;|Paramet er|Require d/Optional |Descripti on|
  1645   "RTN","XSA PXD1",81,0 )
  1646    ;|------- --|------- ---------- |--------- --|
  1647   "RTN","XSA PXD1",82,0 )
  1648    ;|FILE      |(R)                |File or S ub-file Nu mber.|
  1649   "RTN","XSA PXD1",83,0 )
  1650    ;|IENS      |(O)                |Standard  IENS indic ating inte rnal entry  numbers.  IENS is on ly require d for Sub- File lists .|
  1651   "RTN","XSA PXD1",84,0 )
  1652    ;|FIELDS    |(O)                |Fields re turned in  the ouput  data. Defa ult is '@; . ;01;FID' .|
  1653   "RTN","XSA PXD1",85,0 )
  1654    ;|FLAGS     |(O)                |Flags to  control pr ocessing.  Default is  "P".|
  1655   "RTN","XSA PXD1",86,0 )
  1656    ;|NUMBER    |(O)                |The numbe r of entri es to retu rn.|
  1657   "RTN","XSA PXD1",87,0 )
  1658    ;|FROM      |(O)                |The index  from whic h to begin  the list. |
  1659   "RTN","XSA PXD1",88,0 )
  1660    ;|PART      |(O)                |The parti al match r estriction  used to s earch for  records to  return.|
  1661   "RTN","XSA PXD1",89,0 )
  1662    ;|INDEX     |(O)                |The name  of the ind ex from wh ich to bui ld the lis t. Default  is 'B'.|
  1663   "RTN","XSA PXD1",90,0 )
  1664    ;|SCREEN    |(O)                |Standard  M code scr een to exc lude recor ds from th e list.|
  1665   "RTN","XSA PXD1",91,0 )
  1666    ;|ID        |(O)                |Text to a ccompany e ach potent ial entry  in the lis t to help  identify i t to the e nd user.|
  1667   "RTN","XSA PXD1",92,0 )
  1668    ;|TARGET    |(R)                |The name  of a close d root ref erence whe re the dat a is retur ned.|
  1669   "RTN","XSA PXD1",93,0 )
  1670    ;
  1671   "RTN","XSA PXD1",94,0 )
  1672    ;###OUTPU T
  1673   "RTN","XSA PXD1",95,0 )
  1674    ;
  1675   "RTN","XSA PXD1",96,0 )
  1676    ;|Paramet er|Require d/Optional |Descripti on|
  1677   "RTN","XSA PXD1",97,0 )
  1678    ;|------- --|------- ---------- |--------- --|
  1679   "RTN","XSA PXD1",98,0 )
  1680    ;|TARGET    |(R)                |The outpu t array is  in a modi fied FDA f ormat with  camelCase  names|
  1681   "RTN","XSA PXD1",99,0 )
  1682    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1683   "RTN","XSA PXD1",100, 0)
  1684    ;
  1685   "RTN","XSA PXD1",101, 0)
  1686    ;##GETS(S OURCE,TARG ET)
  1687   "RTN","XSA PXD1",102, 0)
  1688    ;
  1689   "RTN","XSA PXD1",103, 0)
  1690    ;This Fun ction is a  wrapper f or the Fil eMan GETS^ DIQ Data R etriever.
  1691   "RTN","XSA PXD1",104, 0)
  1692    ;Refer to  the VA Fi leMan Prog rammer Gui de for add itional in put parame ter explan ations
  1693   "RTN","XSA PXD1",105, 0)
  1694    ;
  1695   "RTN","XSA PXD1",106, 0)
  1696    ;###INPUT
  1697   "RTN","XSA PXD1",107, 0)
  1698    ;
  1699   "RTN","XSA PXD1",108, 0)
  1700    ;|Paramet er|Require d/Optional |Descripti on|
  1701   "RTN","XSA PXD1",109, 0)
  1702    ;|------- --|------- ---------- |--------- --|
  1703   "RTN","XSA PXD1",110, 0)
  1704    ;|FILE      |(R)                |File or S ubfile Num ber.|
  1705   "RTN","XSA PXD1",111, 0)
  1706    ;|IENS      |(R)                |Standard  IENS indic ating inte rnal entry  numbers.|
  1707   "RTN","XSA PXD1",112, 0)
  1708    ;|FIELDS    |(O)                |Fields re turned in  the ouput  data. Defa ult is '** '.|
  1709   "RTN","XSA PXD1",113, 0)
  1710    ;|FLAGS     |(O)                |Flags to  control pr ocessing.  Default is  "EINR".|
  1711   "RTN","XSA PXD1",114, 0)
  1712    ;|TARGET    |(R)                |The name  of a close d root ref erence whe re the dat a is retur ned.|
  1713   "RTN","XSA PXD1",115, 0)
  1714    ;
  1715   "RTN","XSA PXD1",116, 0)
  1716    ;###OUTPU T
  1717   "RTN","XSA PXD1",117, 0)
  1718    ;
  1719   "RTN","XSA PXD1",118, 0)
  1720    ;|Paramet er|Require d/Optional |Descripti on|
  1721   "RTN","XSA PXD1",119, 0)
  1722    ;|------- --|------- ---------- |--------- --|
  1723   "RTN","XSA PXD1",120, 0)
  1724    ;|TARGET    |(R)                |The outpu t array is  in a modi fied FDA f ormat with  camelCase  names|
  1725   "RTN","XSA PXD1",121, 0)
  1726    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1727   "RTN","XSA PXD1",122, 0)
  1728    ;
  1729   "RTN","XSA PXD1",123, 0)
  1730    ;##UPD170 1(SOURCE,T ARGET)
  1731   "RTN","XSA PXD1",124, 0)
  1732    ;
  1733   "RTN","XSA PXD1",125, 0)
  1734    ;This is  a VistA Se rvices Ass embler spe cific func tion used  to add, up date or de lete recor ds in the  XSA DEFINI TIONS file  (#17.01).
  1735   "RTN","XSA PXD1",126, 0)
  1736    ;
  1737   "RTN","XSA PXD1",127, 0)
  1738    ;###INPUT
  1739   "RTN","XSA PXD1",128, 0)
  1740    ;
  1741   "RTN","XSA PXD1",129, 0)
  1742    ;|Paramet er|Require d/Optional |Descripti on|
  1743   "RTN","XSA PXD1",130, 0)
  1744    ;|------- --|------- ---------- |--------- --|
  1745   "RTN","XSA PXD1",131, 0)
  1746    ;|IEN       |(O)                |The Inter nal Entry  Number for  the recor d|
  1747   "RTN","XSA PXD1",132, 0)
  1748    ;|NAME      |(R)                |The uniqu e name for  the recor d|
  1749   "RTN","XSA PXD1",133, 0)
  1750    ;|DEF       |(O)                |The servi ce definit ion should  be conver ted using  Pretty Pri nt and spl it on each  line.)
  1751   "RTN","XSA PXD1",134, 0)
  1752    ;
  1753   "RTN","XSA PXD1",135, 0)
  1754    ;####ADD
  1755   "RTN","XSA PXD1",136, 0)
  1756    ;
  1757   "RTN","XSA PXD1",137, 0)
  1758    ;To Add n ew records  to the fi le the NAM E and the  DEF inputs  must exis t.
  1759   "RTN","XSA PXD1",138, 0)
  1760    ;Example:   ^TMP($J, "XSA","UPD 1701","NAM E")="MY AW ESOME SERV ICE"
  1761   "RTN","XSA PXD1",139, 0)
  1762    ;           ^TMP($J, "XSA","UPD 1701","DEF ",1)="{"
  1763   "RTN","XSA PXD1",140, 0)
  1764    ;           ^TMP($J, "XSA","UPD 1701","DEF ",2)= "swa gger": "2. 0",
  1765   "RTN","XSA PXD1",141, 0)
  1766    ;           ^TMP($J, "XSA","UPD 1701","DEF ",3)= "inf o": {
  1767   "RTN","XSA PXD1",142, 0)
  1768    ;           ^TMP($J, "XSA","UPD 1701","DEF ",4)=   "t itle": "Vi stA.js RPC  REST Serv ice",
  1769   "RTN","XSA PXD1",143, 0)
  1770    ;           ^TMP($J, "XSA","UPD 1701","DEF ",5)=   "d escription ": "A frie ndly servi ce that pr ovides eas y REST-ifi cation of  VistA RPCs .",
  1771   "RTN","XSA PXD1",144, 0)
  1772    ;           ^TMP($J, "XSA","UPD 1701","DEF ",6)=   "v ersion": " 0.0.1"
  1773   "RTN","XSA PXD1",145, 0)
  1774    ;           ^TMP($J, "XSA","UPD 1701","DEF ",...)=
  1775   "RTN","XSA PXD1",146, 0)
  1776    ;
  1777   "RTN","XSA PXD1",147, 0)
  1778    ;####UPDA TE
  1779   "RTN","XSA PXD1",148, 0)
  1780    ;
  1781   "RTN","XSA PXD1",149, 0)
  1782    ;To Updat e existing  records t o either c hange the  NAME or th e DEFINITI ON fields  the IEN mu st exist.
  1783   "RTN","XSA PXD1",150, 0)
  1784    ;This exa mple chang es the DEF INITION to  a WADL Se rvice Desc ription.
  1785   "RTN","XSA PXD1",151, 0)
  1786    ;Example:   ^TMP($J, "XSA","UPD 1701","IEN ")=123
  1787   "RTN","XSA PXD1",152, 0)
  1788    ;           ^TMP($J, "XSA","UPD 1701","NAM E")="MY AW ESOME SERV ICE"
  1789   "RTN","XSA PXD1",153, 0)
  1790    ;           ^TMP($J, "XSA","UPD 1701","DEF ",1)="<met hod name=" GET" id="" ItemSearch "">"
  1791   "RTN","XSA PXD1",154, 0)
  1792    ;           ^TMP($J, "XSA","UPD 1701","DEF ",2)=" <re quest>"
  1793   "RTN","XSA PXD1",155, 0)
  1794    ;           ^TMP($J, "XSA","UPD 1701","DEF ",3)="  <p aram name= "Service"  style=""qu ery"""
  1795   "RTN","XSA PXD1",156, 0)
  1796    ;           ^TMP($J, "XSA","UPD 1701","DEF ",4)="   f ixed=""AWS ECommerceS ervice""/> "
  1797   "RTN","XSA PXD1",157, 0)
  1798    ;           ^TMP($J, "XSA","UPD 1701","DEF ",5)="  <p aram name= ""Version" " style="" query"" fi xed=""2005 -07-26""/> "
  1799   "RTN","XSA PXD1",158, 0)
  1800    ;
  1801   "RTN","XSA PXD1",159, 0)
  1802    ;####DELE TE
  1803   "RTN","XSA PXD1",160, 0)
  1804    ;
  1805   "RTN","XSA PXD1",161, 0)
  1806    ;To Delet e existing  records t he IEN and  NAME must  exist and  the NAME  value must  be '@'.
  1807   "RTN","XSA PXD1",162, 0)
  1808    ;CAUTION:  Deletions  are done  immediatel y without  confirmati on.
  1809   "RTN","XSA PXD1",163, 0)
  1810    ;Example:   ^TMP($J, "XSA","UPD 1701","IEN ")=123
  1811   "RTN","XSA PXD1",164, 0)
  1812    ;           ^TMP($J, "XSA","UPD 1701","NAM E")="@"
  1813   "RTN","XSA PXD1",165, 0)
  1814    ;
  1815   "RTN","XSA PXD1",166, 0)
  1816    ;###OUTPU T
  1817   "RTN","XSA PXD1",167, 0)
  1818    ;
  1819   "RTN","XSA PXD1",168, 0)
  1820    ;|Paramet er|Require d/Optional |Descripti on|
  1821   "RTN","XSA PXD1",169, 0)
  1822    ;|------- --|------- ---------- |--------- --|
  1823   "RTN","XSA PXD1",170, 0)
  1824    ;|TARGET    |(R)                |The outpu t is the I EN of the  new or upd ated recor d if the c all is suc cessful. A  deletion  will retur n 0 in the  TARGET ar ray if suc cessful.|
  1825   "RTN","XSA PXD1",171, 0)
  1826    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1827   "RTN","XSA PXD1",172, 0)
  1828    ;
  1829   "RTN","XSA PXD1",173, 0)
  1830    ;##GETPTF L(SOURCE,T ARGET)
  1831   "RTN","XSA PXD1",174, 0)
  1832    ;
  1833   "RTN","XSA PXD1",175, 0)
  1834    ;This met hod return s a list o f treating  facilitie s this ins tance of V istA knows  about for  a given p atient DFN , as well  as the glo bal ICN nu mber for t he patient
  1835   "RTN","XSA PXD1",176, 0)
  1836    ;Note: Th is is used  in the fi rst phase  of the BSE  implement ation to i nform the  federator  which othe r sites ne ed to be v isited.
  1837   "RTN","XSA PXD1",177, 0)
  1838    ;
  1839   "RTN","XSA PXD1",178, 0)
  1840    ;###INPUT
  1841   "RTN","XSA PXD1",179, 0)
  1842    ;
  1843   "RTN","XSA PXD1",180, 0)
  1844    ;|Paramet er|Require d/Optional |Descripti on|
  1845   "RTN","XSA PXD1",181, 0)
  1846    ;|------- --|------- ---------- |--------- --|
  1847   "RTN","XSA PXD1",182, 0)
  1848    ;|DFN       |(R)                |The DFN o f the pati ent.|
  1849   "RTN","XSA PXD1",183, 0)
  1850    ;
  1851   "RTN","XSA PXD1",184, 0)
  1852    ;Example:   ^TMP($J, "XSA","FUN CTION","DF N")=237
  1853   "RTN","XSA PXD1",185, 0)
  1854    ;
  1855   "RTN","XSA PXD1",186, 0)
  1856    ;The EVEN T_REASON_C ODE value  is the HL7  EVENT TYP E CODE for  the patie nt visit.
  1857   "RTN","XSA PXD1",187, 0)
  1858    ;Results:   ^TMP($J, "XSA","res ults","ICN ")="12345V 0987654"
  1859   "RTN","XSA PXD1",188, 0)
  1860    ;           ^TMP($J, "XSA","res ults","STA TION",548, "NAME")="W EST PALM B EACH VAMC"
  1861   "RTN","XSA PXD1",189, 0)
  1862    ;           ^TMP($J, "XSA","res ults","STA TION",548, "DATE")="M ar 03, 201 6@09:45"
  1863   "RTN","XSA PXD1",190, 0)
  1864    ;           ^TMP($J, "XSA","res ults","STA TION",548, "EVENT_REA SON_CODE") =3
  1865   "RTN","XSA PXD1",191, 0)
  1866    ;           ^TMP($J, "XSA","res ults","STA TION",548, "FACILITY_ TYPE")="OU TPATIENT C LINIC (IND EPENDENT)"
  1867   "RTN","XSA PXD1",192, 0)
  1868    ;           ^TMP($J, "XSA","res ults","STA TION",673, "NAME")="T AMPA (JAH  VAH)"
  1869   "RTN","XSA PXD1",193, 0)
  1870    ;           ^TMP($J, "XSA","res ults","STA TION",673, "DATE")="J an 02, 201 0@08:30"
  1871   "RTN","XSA PXD1",194, 0)
  1872    ;           ^TMP($J, "XSA","res ults","STA TION",673, "EVENT_REA SON")=""
  1873   "RTN","XSA PXD1",195, 0)
  1874    ;           ^TMP($J, "XSA","res ults","STA TION",673, "FACILITY_ TYPE")="OU TPATIENT C LINIC (IND EPENDENT)"
  1875   "RTN","XSA PXD1",196, 0)
  1876    ;
  1877   "RTN","XSA PXD1",197, 0)
  1878    ;###OUTPU T
  1879   "RTN","XSA PXD1",198, 0)
  1880    ;
  1881   "RTN","XSA PXD1",199, 0)
  1882    ;|Paramet er|Require d/Optional |Descripti on|
  1883   "RTN","XSA PXD1",200, 0)
  1884    ;|------- --|------- ---------- |--------- --|
  1885   "RTN","XSA PXD1",201, 0)
  1886    ;|TARGET    |(R)                |The outpu t is the I CN and a l ist of loc ations the  patient h as been se en at.|
  1887   "RTN","XSA PXD1",202, 0)
  1888    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ---- ;
  1889   "RTN","XSA PXD1",203, 0)
  1890    ;
  1891   "RTN","XSA PXD1",204, 0)
  1892    ;##FUNCTI ON(SOURCE, TARGET)
  1893   "RTN","XSA PXD1",205, 0)
  1894    ;
  1895   "RTN","XSA PXD1",206, 0)
  1896    ;This met hod calls  any Extrin sic Functi on and wil l return t he output  in the sta ndard VSA  format.
  1897   "RTN","XSA PXD1",207, 0)
  1898    ;
  1899   "RTN","XSA PXD1",208, 0)
  1900    ;###INPUT
  1901   "RTN","XSA PXD1",209, 0)
  1902    ;
  1903   "RTN","XSA PXD1",210, 0)
  1904    ;|Paramet er|Require d/Optional |Descripti on|
  1905   "RTN","XSA PXD1",211, 0)
  1906    ;|------- --|------- ---------- |--------- --|
  1907   "RTN","XSA PXD1",212, 0)
  1908    ;|ROUTINE   |(R)                |The name  of the rou tine.|
  1909   "RTN","XSA PXD1",213, 0)
  1910    ;|ENTRY     |(R)                |The name  of the ent ry point i n the rout ine|
  1911   "RTN","XSA PXD1",214, 0)
  1912    ;|PARAMS, n,TYPE |(O )          |This is t he list of  input par ameters re quired by  the functi on being c alled. The  value for  'n' is th e ordinal  position o f the inpu t paramete r. The two  types of  input para meters are  LITERAL a nd LIST.|
  1913   "RTN","XSA PXD1",215, 0)
  1914    ;
  1915   "RTN","XSA PXD1",216, 0)
  1916    ;The foll owing exam ple assume s the SOUR CE input a rray is ^T MP($J,"XSA ","FUNCTIO N").
  1917   "RTN","XSA PXD1",217, 0)
  1918    ;The $$GE TDFN^MPIF0 01(ICN) fu nction is  used to ge t the DFN  for a pati ent based  on the ICN .
  1919   "RTN","XSA PXD1",218, 0)
  1920    ;The outp ut of the  function i s returned  in the "r esults" no de of the  TARGET arr ay.
  1921   "RTN","XSA PXD1",219, 0)
  1922    ;
  1923   "RTN","XSA PXD1",220, 0)
  1924    ;Example:   ^TMP($J, "XSA","FUN CTION","EN TRY")="GET DFN"
  1925   "RTN","XSA PXD1",221, 0)
  1926    ;           ^TMP($J, "XSA","FUN CTION","RO UTINE")="M PIF001"
  1927   "RTN","XSA PXD1",222, 0)
  1928    ;           ^TMP($J, "XSA","FUN CTION","PA RAM",1,"LI TERAL")="1 2345V09876 54"
  1929   "RTN","XSA PXD1",223, 0)
  1930    ;
  1931   "RTN","XSA PXD1",224, 0)
  1932    ;Results:   ^TMP($J, "XSA","res ults","1") =237
  1933   "RTN","XSA PXD1",225, 0)
  1934    ;
  1935   "RTN","XSA PXD1",226, 0)
  1936    ; 
  1937   "RTN","XSA PXD1",227, 0)
  1938    ;###OUTPU T
  1939   "RTN","XSA PXD1",228, 0)
  1940    ;
  1941   "RTN","XSA PXD1",229, 0)
  1942    ;|Paramet er|Require d/Optional |Descripti on|
  1943   "RTN","XSA PXD1",230, 0)
  1944    ;|------- --|------- ---------- |--------- --|
  1945   "RTN","XSA PXD1",231, 0)
  1946    ;|TARGET    |(R)                |The outpu t of whate ver the fu nction ret urns.|
  1947   "RTN","XSA PXD1",232, 0)
  1948    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1949   "RTN","XSA PXD2")
  1950   0^16^B2489
  1951   "RTN","XSA PXD2",1,0)
  1952   XSAPXD2 ;D AL/BNT - V istA Servi ces Assemb ler Publis hed Functi ons Docume ntation;1/ 27/2016
  1953   "RTN","XSA PXD2",2,0)
  1954    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  1955   "RTN","XSA PXD2",3,0)
  1956    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  1957   "RTN","XSA PXD2",4,0)
  1958    ;
  1959   "RTN","XSA PXD2",5,0)
  1960    ;NOTE: Th is documen t is pre-f ormatted i n MARKDOWN . To view  it with MA RKDOWN for matting yo u can Find  " ;" and  Replace wi th "" to r emove the  comment ta gs.
  1961   "RTN","XSA PXD2",6,0)
  1962    ;
  1963   "RTN","XSA PXD2",7,0)
  1964    ;#VistA S ervices As sembler AP I Document ation
  1965   "RTN","XSA PXD2",8,0)
  1966    ;
  1967   "RTN","XSA PXD2",9,0)
  1968    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  1969   "RTN","XSA PXD2",10,0 )
  1970    ;##LOGIN( SOURCE,TAR GET)
  1971   "RTN","XSA PXD2",11,0 )
  1972    ;
  1973   "RTN","XSA PXD2",12,0 )
  1974    ;This met hod is use d to authe nticate an d create a  user sess ion in Vis tA. 
  1975   "RTN","XSA PXD2",13,0 )
  1976    ;
  1977   "RTN","XSA PXD2",14,0 )
  1978    ;###INPUT
  1979   "RTN","XSA PXD2",15,0 )
  1980    ;
  1981   "RTN","XSA PXD2",16,0 )
  1982    ;|Paramet er|Require d/Optional |Descripti on|
  1983   "RTN","XSA PXD2",17,0 )
  1984    ;|------- --|------- ---------- |--------- --|
  1985   "RTN","XSA PXD2",18,0 )
  1986    ;|XSAACC    |(O)                |The users  Access Co de to veri fy|
  1987   "RTN","XSA PXD2",19,0 )
  1988    ;|XSAVER    |(O)                |The users  Verify Co de to veri fy|
  1989   "RTN","XSA PXD2",20,0 )
  1990    ;|XSADIV    |(O)                |The users  logged on  Division|
  1991   "RTN","XSA PXD2",21,0 )
  1992    ;|XSAIP     |(R)                |TCP/IP Ad dress of t he client  logging in |
  1993   "RTN","XSA PXD2",22,0 )
  1994    ;|XSABSEU   |(O)                |The BSE U ser Demogr aphics for  Remote Lo gin|
  1995   "RTN","XSA PXD2",23,0 )
  1996    ;|XSAESSO   |(O)                |The ESSO  User SAML  Token. The  XML must  be convert ed to Pret ty Print a nd each li ne on a se parate nod e. i.e. (^ TMP($J,"XS AESSO",1)= "<?xml ver sion=""1.0 ""?>")|
  1997   "RTN","XSA PXD2",24,0 )
  1998    ;
  1999   "RTN","XSA PXD2",25,0 )
  2000    ;###OUTPU T
  2001   "RTN","XSA PXD2",26,0 )
  2002    ;
  2003   "RTN","XSA PXD2",27,0 )
  2004    ;|Paramet er|Require d/Optional |Descripti on|
  2005   "RTN","XSA PXD2",28,0 )
  2006    ;|------- --|------- ---------- |--------- --|
  2007   "RTN","XSA PXD2",29,0 )
  2008    ;|TARGET    |(R)                |The outpu t is an ar ray of Use r Informat ion associ ated with  the logged  on sessio n.|
  2009   "RTN","XSA PXD2",30,0 )
  2010    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2011   "RTN","XSA PXD2",31,0 )
  2012    ;
  2013   "RTN","XSA PXD2",32,0 )
  2014    ;##RPCMET A(SOURCE,T ARGET)
  2015   "RTN","XSA PXD2",33,0 )
  2016    ;
  2017   "RTN","XSA PXD2",34,0 )
  2018    ;This met hod will r eturn the  metadata f or a speci fic RPC.
  2019   "RTN","XSA PXD2",35,0 )
  2020    ;
  2021   "RTN","XSA PXD2",36,0 )
  2022    ;###INPUT
  2023   "RTN","XSA PXD2",37,0 )
  2024    ;
  2025   "RTN","XSA PXD2",38,0 )
  2026    ;|Paramet er|Require d/Optional |Descripti on|
  2027   "RTN","XSA PXD2",39,0 )
  2028    ;|------- --|------- ---------- |--------- --|
  2029   "RTN","XSA PXD2",40,0 )
  2030    ;|RPC       |(R)                |The RPC N ame or IEN  from the  Remote Pro cedure fil e|
  2031   "RTN","XSA PXD2",41,0 )
  2032    ;
  2033   "RTN","XSA PXD2",42,0 )
  2034    ;###OUTPU T
  2035   "RTN","XSA PXD2",43,0 )
  2036    ;
  2037   "RTN","XSA PXD2",44,0 )
  2038    ;|Paramet er|Require d/Optional |Descripti on|
  2039   "RTN","XSA PXD2",45,0 )
  2040    ;|------- --|------- ---------- |--------- --|
  2041   "RTN","XSA PXD2",46,0 )
  2042    ;|TARGET    |(R)                |The outpu t is the m etadata fo r an RPC t o be used  to build t he Swagger  Definitio n that wil l allow RE STificatio n of the R PC.|
  2043   "RTN","XSA PXD2",47,0 )
  2044    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2045   "RTN","XSA PXD2",48,0 )
  2046    ;
  2047   "RTN","XSA PXD2",49,0 )
  2048    ;##RPC(SO URCE,TARGE T)
  2049   "RTN","XSA PXD2",50,0 )
  2050    ;
  2051   "RTN","XSA PXD2",51,0 )
  2052    ;This met hod suppor ts calling  Remote Pr ocedures ( RPCs) from  a VSA ser vice.
  2053   "RTN","XSA PXD2",52,0 )
  2054    ;
  2055   "RTN","XSA PXD2",53,0 )
  2056    ;###INPUT
  2057   "RTN","XSA PXD2",54,0 )
  2058    ;
  2059   "RTN","XSA PXD2",55,0 )
  2060    ;|Paramet er|Require d/Optional |Descripti on|
  2061   "RTN","XSA PXD2",56,0 )
  2062    ;|------- --|------- ---------- |--------- --|
  2063   "RTN","XSA PXD2",57,0 )
  2064    ;|RPC NAM E |(R)                |The RPC N ame from t he Remote  Procedure  file|
  2065   "RTN","XSA PXD2",58,0 )
  2066    ;|DUZ       |(R)                |The logge d on users  Internal  ID|
  2067   "RTN","XSA PXD2",59,0 )
  2068    ;|RPC CON TEXT |(O)             |This is a n RPC Cont ext Option  that can  be used to  check if  the user h as access  to this RP C. This is  optional. |
  2069   "RTN","XSA PXD2",60,0 )
  2070    ;|PARAMS, n,TYPE |(O )          |This is t he list of  input par ameters re quired by  the RPC be ing called . The valu e for 'n'  is the ord inal posit ion of the  input par ameter. Th e two type s of input  parameter s are LITE RAL and LI ST.|
  2071   "RTN","XSA PXD2",61,0 )
  2072    ;
  2073   "RTN","XSA PXD2",62,0 )
  2074    ;####RPC  Input Para meter Type s
  2075   "RTN","XSA PXD2",63,0 )
  2076    ;
  2077   "RTN","XSA PXD2",64,0 )
  2078    ;|Paramet er Type |D escription    |
  2079   "RTN","XSA PXD2",65,0 )
  2080    ;|------- --------|- ---------- ---|
  2081   "RTN","XSA PXD2",66,0 )
  2082    ;|LITERAL         |A  literal s tring valu e|
  2083   "RTN","XSA PXD2",67,0 )
  2084    ;|LIST            |A n array of  string va lues.|
  2085   "RTN","XSA PXD2",68,0 )
  2086    ;
  2087   "RTN","XSA PXD2",69,0 )
  2088    ;####Exam ple of a L IST local  array para meters:
  2089   "RTN","XSA PXD2",70,0 )
  2090    ;
  2091   "RTN","XSA PXD2",71,0 )
  2092    ;    ^TMP ($J,"XSA", "RPC","DUZ ")=DUZ
  2093   "RTN","XSA PXD2",72,0 )
  2094    ;    ^TMP ($J,"XSA", "RPC","RPC  NAME")="X OBV TEST L OCAL ARRAY "
  2095   "RTN","XSA PXD2",73,0 )
  2096    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R(1)")="TH IS IS THE  FIRST LINE  OF TEXT"
  2097   "RTN","XSA PXD2",74,0 )
  2098    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R(2)")="TH IS IS THE  SECOND LIN E OF TEXT"
  2099   "RTN","XSA PXD2",75,0 )
  2100    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R(3)")="TH IS IS THE  THIRD LINE  OF TEXT"
  2101   "RTN","XSA PXD2",76,0 )
  2102    ;
  2103   "RTN","XSA PXD2",77,0 )
  2104    ;####Exam ple of Mul tiple LIST  array par ameters in  the same  RPC call:
  2105   "RTN","XSA PXD2",78,0 )
  2106    ;
  2107   "RTN","XSA PXD2",79,0 )
  2108    ;    ^TMP ($J,"XSA", "RPC","DUZ ")=DUZ
  2109   "RTN","XSA PXD2",80,0 )
  2110    ;    ^TMP ($J,"XSA", "RPC","RPC  NAME")="X OBV TEST M ULT ARRAY  PARAMS"
  2111   "RTN","XSA PXD2",81,0 )
  2112    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R1(1)")="T HIS IS THE  FIRST LIN E OF TEXT"
  2113   "RTN","XSA PXD2",82,0 )
  2114    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R1(2)")="T HIS IS THE  SECOND LI NE OF TEXT "
  2115   "RTN","XSA PXD2",83,0 )
  2116    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI ST","XOBAR R1(3)")="T HIS IS THE  THIRD LIN E OF TEXT"
  2117   "RTN","XSA PXD2",84,0 )
  2118    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",2,"LI ST","XOBAR R2(1)")="T HIS IS THE  FIRST LIN E OF TEXT"
  2119   "RTN","XSA PXD2",85,0 )
  2120    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",2,"LI ST","XOBAR R2(2)")="T HIS IS THE  SECOND LI NE OF TEXT "
  2121   "RTN","XSA PXD2",86,0 )
  2122    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",2,"LI ST","XOBAR R2(3)")="T HIS IS THE  THIRD LIN E OF TEXT"
  2123   "RTN","XSA PXD2",87,0 )
  2124    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",3,"LI ST","XOBAR R3(1)")="T HIS IS THE  FIRST LIN E OF TEXT"
  2125   "RTN","XSA PXD2",88,0 )
  2126    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",3,"LI ST","XOBAR R3(2)")="T HIS IS THE  SECOND LI NE OF TEXT "
  2127   "RTN","XSA PXD2",89,0 )
  2128    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",3,"LI ST","XOBAR R3(3)")="T HIS IS THE  THIRD LIN E OF TEXT"
  2129   "RTN","XSA PXD2",90,0 )
  2130    ;
  2131   "RTN","XSA PXD2",91,0 )
  2132    ;####Exam ple of a L ITERAL str ing parame ter:
  2133   "RTN","XSA PXD2",92,0 )
  2134    ;
  2135   "RTN","XSA PXD2",93,0 )
  2136    ;    ^TMP ($J,"XSA", "RPC","DUZ ")=DUZ
  2137   "RTN","XSA PXD2",94,0 )
  2138    ;    ^TMP ($J,"XSA", "RPC","RPC  NAME")="X OBV TEST S TRING"
  2139   "RTN","XSA PXD2",95,0 )
  2140    ;    ^TMP ($J,"XSA", "RPC","PAR AMS",1,"LI TERAL",)=" THIS IS A  STRING"
  2141   "RTN","XSA PXD2",96,0 )
  2142    ;
  2143   "RTN","XSA PXD2",97,0 )
  2144    ;
  2145   "RTN","XSA PXD2",98,0 )
  2146    ;###OUTPU T
  2147   "RTN","XSA PXD2",99,0 )
  2148    ;
  2149   "RTN","XSA PXD2",100, 0)
  2150    ;|Paramet er|Require d/Optional |Descripti on|
  2151   "RTN","XSA PXD2",101, 0)
  2152    ;|------- --|------- ---------- |--------- --|
  2153   "RTN","XSA PXD2",102, 0)
  2154    ;|TARGET    |(R)                |The outpu t is relev ant to the  RPC outpu t and can  be in the  form of ar ray or lit eral strin g.|
  2155   "RTN","XSA PXD2",103, 0)
  2156    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2157   "RTN","XSA PXD2",104, 0)
  2158    ;
  2159   "RTN","XSA PXD2",105, 0)
  2160    ;##IAMAU( SOURCE,TAR GET)
  2161   "RTN","XSA PXD2",106, 0)
  2162    ;
  2163   "RTN","XSA PXD2",107, 0)
  2164    ;This res tricted fu nction is  used exclu sively by  the Identi ty and Acc ess Manage ment (IAM)  Provision ing applic ation to a dd a user  to the Vis tA NEW PER SON file ( #200).
  2165   "RTN","XSA PXD2",108, 0)
  2166    ;
  2167   "RTN","XSA PXD2",109, 0)
  2168    ;The XUSP F200 Secur ity Key is  required  to add a u ser withou t an SSN ( file #200  special pr ivileges).
  2169   "RTN","XSA PXD2",110, 0)
  2170    ;
  2171   "RTN","XSA PXD2",111, 0)
  2172    ;###INPUT
  2173   "RTN","XSA PXD2",112, 0)
  2174    ;
  2175   "RTN","XSA PXD2",113, 0)
  2176    ;|Paramet er|Require d/Optional |Descripti on|
  2177   "RTN","XSA PXD2",114, 0)
  2178    ;|------- --|------- ---------- |--------- --|
  2179   "RTN","XSA PXD2",115, 0)
  2180    ;|NAME      |(R)                |SubjectID  to be use d in SAML  Token|
  2181   "RTN","XSA PXD2",116, 0)
  2182    ;|SECID     |(R)                |UniqueUse rID to be  used in SS Oi or SSOe  SAML Toke n|
  2183   "RTN","XSA PXD2",117, 0)
  2184    ;|EMAIL     |(O)                |User's e- mail addre ss|
  2185   "RTN","XSA PXD2",118, 0)
  2186    ;|ADUPN     |(O)                |Active Di rectory Us er Princip le Name|
  2187   "RTN","XSA PXD2",119, 0)
  2188    ;|SSN       |(O)                |User's So cial Secur ity Number  or Taxpay er Identif ication Nu mber|
  2189   "RTN","XSA PXD2",120, 0)
  2190    ;|DOB       |(O)                |User's Da te of Birt h|
  2191   "RTN","XSA PXD2",121, 0)
  2192    ;|STATION   |(O)                |NEW PERSO N file (#2 00) DIVISI ON|
  2193   "RTN","XSA PXD2",122, 0)
  2194    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication|
  2195   "RTN","XSA PXD2",123, 0)
  2196    ;
  2197   "RTN","XSA PXD2",124, 0)
  2198    ;###OUTPU T
  2199   "RTN","XSA PXD2",125, 0)
  2200    ;
  2201   "RTN","XSA PXD2",126, 0)
  2202    ;|Paramet er|Require d/Optional |Descripti on|
  2203   "RTN","XSA PXD2",127, 0)
  2204    ;|------- --|------- ---------- |--------- --|
  2205   "RTN","XSA PXD2",128, 0)
  2206    ;|TARGET    |(R)                |The outpu t in the T ARGET arra y will be  "DUZ^STATI ON" if suc cessful|
  2207   "RTN","XSA PXD2",129, 0)
  2208    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2209   "RTN","XSA PXD2",130, 0)
  2210    ;
  2211   "RTN","XSA PXD2",131, 0)
  2212    ;##IAMEU( SOURCE,TAR GET)
  2213   "RTN","XSA PXD2",132, 0)
  2214    ;
  2215   "RTN","XSA PXD2",133, 0)
  2216    ;This res tricted RP C is used  exclusivel y by the I dentity an d Access M anagement  (IAM) Prov isioning a pplication  to edit a n existing  user in t he VistA N EW PERSON  file (#200 ).
  2217   "RTN","XSA PXD2",134, 0)
  2218    ;The XUSH OWSSN Secu rity Key i s required  to edit P ersonally  Identifiab le Informa tion (PII)  such as S ocial Secu rity Numbe r (SSN) or  Date of B irth (DOB) .
  2219   "RTN","XSA PXD2",135, 0)
  2220    ;
  2221   "RTN","XSA PXD2",136, 0)
  2222    ;The XUSP F200 Secur ity Key is  required  to edit a  user witho ut an SSN  (file #200  special p rivileges) .
  2223   "RTN","XSA PXD2",137, 0)
  2224    ;
  2225   "RTN","XSA PXD2",138, 0)
  2226    ;###INPUT
  2227   "RTN","XSA PXD2",139, 0)
  2228    ;
  2229   "RTN","XSA PXD2",140, 0)
  2230    ;|Paramet er|Require d/Optional |Descripti on|
  2231   "RTN","XSA PXD2",141, 0)
  2232    ;|------- --|------- ---------- |--------- --|
  2233   "RTN","XSA PXD2",142, 0)
  2234    ;|INARRY    |(R)                |Input arr ay of fiel ds to be e dited|
  2235   "RTN","XSA PXD2",143, 0)
  2236    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication|
  2237   "RTN","XSA PXD2",144, 0)
  2238    ;
  2239   "RTN","XSA PXD2",145, 0)
  2240    ;####Inpu t Array va lues
  2241   "RTN","XSA PXD2",146, 0)
  2242    ;|INARRY  ID         |Descripti on      |
  2243   "RTN","XSA PXD2",147, 0)
  2244    ;|------- ---------- |--------- --------|
  2245   "RTN","XSA PXD2",148, 0)
  2246    ;|SECID              |SecID (no t edited,  but used t o identify  entry to  be edited) |
  2247   "RTN","XSA PXD2",149, 0)
  2248    ;|LASTNAM E          |User last  name|
  2249   "RTN","XSA PXD2",150, 0)
  2250    ;|FIRSTNA ME         |User firs t name|
  2251   "RTN","XSA PXD2",151, 0)
  2252    ;|MIDDLEN AME        |User midd le name|
  2253   "RTN","XSA PXD2",152, 0)
  2254    ;|SUFFIX             |User suff ix|
  2255   "RTN","XSA PXD2",153, 0)
  2256    ;|ORGANIZ ATIONNAME  |SUBJECT O RGANIZATIO N (Organiz ation Name )|
  2257   "RTN","XSA PXD2",154, 0)
  2258    ;|ORGANIZ ATIONID    |SUBJECT O RGANIZATIO N ID (Orga nization I D)|
  2259   "RTN","XSA PXD2",155, 0)
  2260    ;|EMAIL              |EMAIL ADD RESS (E-ma il Address )|
  2261   "RTN","XSA PXD2",156, 0)
  2262    ;|ADUPN              |ADUPN (Ac tive Direc tory UPN)|
  2263   "RTN","XSA PXD2",157, 0)
  2264    ;|SSN                |SSN (Soci al Securit y Number)|
  2265   "RTN","XSA PXD2",158, 0)
  2266    ;|DOB                |DOB (Date  of Birth) |
  2267   "RTN","XSA PXD2",159, 0)
  2268    ;
  2269   "RTN","XSA PXD2",160, 0)
  2270    ;###OUTPU T
  2271   "RTN","XSA PXD2",161, 0)
  2272    ;
  2273   "RTN","XSA PXD2",162, 0)
  2274    ;|Paramet er|Require d/Optional |Descripti on|
  2275   "RTN","XSA PXD2",163, 0)
  2276    ;|------- --|------- ---------- |--------- --|
  2277   "RTN","XSA PXD2",164, 0)
  2278    ;|TARGET    |(R)                |The outpu t in the T ARGET arra y will be  the DUZ of  NEW PERSO N file ent ry that wa s edited|
  2279   "RTN","XSA PXD2",165, 0)
  2280    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2281   "RTN","XSA PXD2",166, 0)
  2282    ;
  2283   "RTN","XSA PXD2",167, 0)
  2284    ;##IAMDU( SOURCE,TAR GET)
  2285   "RTN","XSA PXD2",168, 0)
  2286    ;
  2287   "RTN","XSA PXD2",169, 0)
  2288    ;This res tricted PR C is used  exclusivel y by the I dentity an d Access M anagement  (IAM) Prov isioning a pplication  to displa y a VistA  user.
  2289   "RTN","XSA PXD2",170, 0)
  2290    ;The XUSH OWSSN Secu rity Key i s required  to displa y Personal ly Identif iable Info rmation (P II) such a s Social S ecurity Nu mber (SSN)  or Date o f Birth
  2291   "RTN","XSA PXD2",171, 0)
  2292    ;
  2293   "RTN","XSA PXD2",172, 0)
  2294    ;###INPUT
  2295   "RTN","XSA PXD2",173, 0)
  2296    ;
  2297   "RTN","XSA PXD2",174, 0)
  2298    ;|Paramet er|Require d/Optional |Descripti on|
  2299   "RTN","XSA PXD2",175, 0)
  2300    ;|------- --|------- ---------- |--------- --|
  2301   "RTN","XSA PXD2",176, 0)
  2302    ;|DISPDUZ   |(R)                |DUZ (IEN)  of user t o be displ ayed.|
  2303   "RTN","XSA PXD2",177, 0)
  2304    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication. |
  2305   "RTN","XSA PXD2",178, 0)
  2306    ;
  2307   "RTN","XSA PXD2",179, 0)
  2308    ;###OUTPU T
  2309   "RTN","XSA PXD2",180, 0)
  2310    ;
  2311   "RTN","XSA PXD2",181, 0)
  2312    ;|Paramet er|Require d/Optional |Descripti on|
  2313   "RTN","XSA PXD2",182, 0)
  2314    ;|------- --|------- ---------- |--------- --|
  2315   "RTN","XSA PXD2",183, 0)
  2316    ;|TARGET    |(R)                |Array of  User Attri butes|
  2317   "RTN","XSA PXD2",184, 0)
  2318    ;
  2319   "RTN","XSA PXD2",185, 0)
  2320    ;####Exam ple of TAR GET array:
  2321   "RTN","XSA PXD2",186, 0)
  2322    ;
  2323   "RTN","XSA PXD2",187, 0)
  2324    ;    ^TMP ($J,"XSA", "IAM","res ults",0) =  1
  2325   "RTN","XSA PXD2",188, 0)
  2326    ;    ^TMP ($J,"XSA", "IAM","res ults","NAM E") = NAME
  2327   "RTN","XSA PXD2",189, 0)
  2328    ;    ^TMP ($J,"XSA", "IAM","res ults","LAS TNAME") =  Family Nam e
  2329   "RTN","XSA PXD2",190, 0)
  2330    ;    ^TMP ($J,"XSA", "IAM","res ults","FIR STNAME") =  Given Nam e
  2331   "RTN","XSA PXD2",191, 0)
  2332    ;    ^TMP ($J,"XSA", "IAM","res ults","MID DLENAME")  = Middle N ame
  2333   "RTN","XSA PXD2",192, 0)
  2334    ;    ^TMP ($J,"XSA", "IAM","res ults","SUF FIX") = Su ffix(es)
  2335   "RTN","XSA PXD2",193, 0)
  2336    ;    ^TMP ($J,"XSA", "IAM","res ults","INI TIAL") = I NITIAL
  2337   "RTN","XSA PXD2",194, 0)
  2338    ;    ^TMP ($J,"XSA", "IAM","res ults","TIT LE") = TIT LE
  2339   "RTN","XSA PXD2",195, 0)
  2340    ;    ^TMP ($J,"XSA", "IAM","res ults","NIC K_NAME") =  NICK NAME
  2341   "RTN","XSA PXD2",196, 0)
  2342    ;    ^TMP ($J,"XSA", "IAM","res ults","SSN ") = SSN ( <Hidden> i f caller d oes not ho ld XUSHOWS SN key)
  2343   "RTN","XSA PXD2",197, 0)
  2344    ;    ^TMP ($J,"XSA", "IAM","res ults","DOB ") = DOB ( <Hidden> i f caller d oes not ho ld XUSHOWS SN key)
  2345   "RTN","XSA PXD2",198, 0)
  2346    ;    ^TMP ($J,"XSA", "IAM","res ults","DEG REE") = DE GREE
  2347   "RTN","XSA PXD2",199, 0)
  2348    ;    ^TMP ($J,"XSA", "IAM","res ults","MAI L_CODE") =  MAIL CODE
  2349   "RTN","XSA PXD2",200, 0)
  2350    ;    ^TMP ($J,"XSA", "IAM","res ults","STA TUS") = $$ ACTIVE^XUS ER(DISPDUZ )
  2351   "RTN","XSA PXD2",201, 0)
  2352    ;    ^TMP ($J,"XSA", "IAM","res ults","DIS USER") = D ISUSER
  2353   "RTN","XSA PXD2",202, 0)
  2354    ;    ^TMP ($J,"XSA", "IAM","res ults","TER MINATION_D ATE") = TE RMINATION  DATE
  2355   "RTN","XSA PXD2",203, 0)
  2356    ;    ^TMP ($J,"XSA", "IAM","res ults","TER MINATION_R EASON") =  TERMINATIO N REASON
  2357   "RTN","XSA PXD2",204, 0)
  2358    ;    ^TMP ($J,"XSA", "IAM","res ults","PRI MARY_MENU_ OPTION") =  PRIMARY M ENU OPTION
  2359   "RTN","XSA PXD2",205, 0)
  2360    ;    ^TMP ($J,"XSA", "IAM","res ults","SEC ONDARY_MEN U_OPTION", 0) = SECON DARY MENU  OPTION (#  of entries )
  2361   "RTN","XSA PXD2",206, 0)
  2362    ;    ^TMP ($J,"XSA", "IAM","res ults","SEC ONDARY_MEN U_OPTION", 1) to R("S ECONDARY_M ENU_OPTION ",n) = ent ries
  2363   "RTN","XSA PXD2",207, 0)
  2364    ;    ^TMP ($J,"XSA", "IAM","res ults","FIL E_MANAGER_ ACCESS_COD E") = FILE  MANAGER A CCESS CODE
  2365   "RTN","XSA PXD2",208, 0)
  2366    ;    ^TMP ($J,"XSA", "IAM","res ults","DIV ISION",0)  = DIVISION  (number o f entries)
  2367   "RTN","XSA PXD2",209, 0)
  2368    ;    ^TMP ($J,"XSA", "IAM","res ults","DIV ISION",1)  to R("DIVI SION",n) =  DIVISION  entries
  2369   "RTN","XSA PXD2",210, 0)
  2370    ;    ^TMP ($J,"XSA", "IAM","res ults","SER VICE_SECTI ON") = SER VICE/SECTI ON
  2371   "RTN","XSA PXD2",211, 0)
  2372    ;    ^TMP ($J,"XSA", "IAM","res ults","SUB JECT_ALTER NATIVE_NAM E") = SUBJ ECT ALTERN ATIVE NAME
  2373   "RTN","XSA PXD2",212, 0)
  2374    ;    ^TMP ($J,"XSA", "IAM","res ults","SEC ID") = SEC ID
  2375   "RTN","XSA PXD2",213, 0)
  2376    ;    ^TMP ($J,"XSA", "IAM","res ults","ORG ANIZATION_ NAME") = S UBJECT ORG ANIZATION
  2377   "RTN","XSA PXD2",214, 0)
  2378    ;    ^TMP ($J,"XSA", "IAM","res ults","ORG ANIZATION_ ID") = SUB JECT ORGAN IZATION ID
  2379   "RTN","XSA PXD2",215, 0)
  2380    ;    ^TMP ($J,"XSA", "IAM","res ults","UNI QUE_USER_I D") = UNIQ UE USER ID
  2381   "RTN","XSA PXD2",216, 0)
  2382    ;    ^TMP ($J,"XSA", "IAM","res ults","NET WORK_USER_ NAME") = N ETWORK USE RNAME
  2383   "RTN","XSA PXD2",217, 0)
  2384    ;    ^TMP ($J,"XSA", "IAM","res ults","ADU PN") = AD  UPN
  2385   "RTN","XSA PXD2",218, 0)
  2386    ;    ^TMP ($J,"XSA", "IAM","res ults","EMA IL") = EMA IL ADDRESS
  2387   "RTN","XSA PXD2",219, 0)
  2388    ;    ^TMP ($J,"XSA", "IAM","res ults","GEN DER") = SE X (M/F) 
  2389   "RTN","XSA PXD2",220, 0)
  2390    ;
  2391   "RTN","XSA PXD2",221, 0)
  2392    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2393   "RTN","XSA PXD2",222, 0)
  2394    ;
  2395   "RTN","XSA PXD2",223, 0)
  2396    ;##IAMFU( SOURCE,TAR GET)
  2397   "RTN","XSA PXD2",224, 0)
  2398    ;
  2399   "RTN","XSA PXD2",225, 0)
  2400    ;This res tricted RP C is used  exclusivel y by the I dentity an d Access M anagement  (IAM) Prov isioning a pplication  to find a  list of u sers that  satisfy a  collection  of input  criteria.
  2401   "RTN","XSA PXD2",226, 0)
  2402    ;One or m ore of the  input arr ay values  must be se t by the c alling app lication. 
  2403   "RTN","XSA PXD2",227, 0)
  2404    ;The XUSH OWSSN Secu rity Key i s required  to do loo kups using  Personall y Identifi able Infor mation (PI I) such as  Social Se curity Num ber
  2405   "RTN","XSA PXD2",228, 0)
  2406    ;
  2407   "RTN","XSA PXD2",229, 0)
  2408    ;###INPUT
  2409   "RTN","XSA PXD2",230, 0)
  2410    ;
  2411   "RTN","XSA PXD2",231, 0)
  2412    ;|Paramet er|Require d/Optional |Descripti on|
  2413   "RTN","XSA PXD2",232, 0)
  2414    ;|------- --|------- ---------- |--------- --|
  2415   "RTN","XSA PXD2",233, 0)
  2416    ;|NAME      |(O)                |Search on  user name |
  2417   "RTN","XSA PXD2",234, 0)
  2418    ;|SSN       |(O)                |Search on  user Soci al Securit y Number ( SSN).|
  2419   "RTN","XSA PXD2",235, 0)
  2420    ;|DOB       |(O)                |Search on  user Date  of Birth  (DOB).|
  2421   "RTN","XSA PXD2",236, 0)
  2422    ;|ADUPN     |(O)                |Search on  user Acti ve Directo ry UPN.|
  2423   "RTN","XSA PXD2",237, 0)
  2424    ;|SECID     |(R)                |Search on  user Secu rity ID.|
  2425   "RTN","XSA PXD2",238, 0)
  2426    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication|
  2427   "RTN","XSA PXD2",239, 0)
  2428    ;
  2429   "RTN","XSA PXD2",240, 0)
  2430    ;###OUTPU T
  2431   "RTN","XSA PXD2",241, 0)
  2432    ;
  2433   "RTN","XSA PXD2",242, 0)
  2434    ;|Paramet er|Require d/Optional |Descripti on|
  2435   "RTN","XSA PXD2",243, 0)
  2436    ;|------- --|------- ---------- |--------- --|
  2437   "RTN","XSA PXD2",244, 0)
  2438    ;|TARGET    |(R)                |A list of  found use rs in the  TARGET res ults with  the values : "DUZ^Nam e^Name Com ponents^SS N^Dob^AD U PN^SecID"|
  2439   "RTN","XSA PXD2",245, 0)
  2440    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2441   "RTN","XSA PXD2",246, 0)
  2442    ;
  2443   "RTN","XSA PXD2",247, 0)
  2444    ;##IAMRU( SOURCE,TAR GET)
  2445   "RTN","XSA PXD2",248, 0)
  2446    ;
  2447   "RTN","XSA PXD2",249, 0)
  2448    ;This res tricted fu nction is  used exclu sively by  the Identi ty and Acc ess Manage ment (IAM)  Provision ing applic ation reac tivate an  existing u ser in the  VistA NEW  PERSON fi le (#200).
  2449   "RTN","XSA PXD2",250, 0)
  2450    ;
  2451   "RTN","XSA PXD2",251, 0)
  2452    ;###INPUT
  2453   "RTN","XSA PXD2",252, 0)
  2454    ;
  2455   "RTN","XSA PXD2",253, 0)
  2456    ;|Paramet er|Require d/Optional |Descripti on|
  2457   "RTN","XSA PXD2",254, 0)
  2458    ;|------- --|------- ---------- |--------- --|
  2459   "RTN","XSA PXD2",255, 0)
  2460    ;|SECID     |(R)                |SECID fie ld (#205.1 ) in the N EW PERSON  file (#200 ) to match  the SecID  in the us er's SAML  Token.|
  2461   "RTN","XSA PXD2",256, 0)
  2462    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication|
  2463   "RTN","XSA PXD2",257, 0)
  2464    ;
  2465   "RTN","XSA PXD2",258, 0)
  2466    ;###OUTPU T
  2467   "RTN","XSA PXD2",259, 0)
  2468    ;
  2469   "RTN","XSA PXD2",260, 0)
  2470    ;|Paramet er|Require d/Optional |Descripti on|
  2471   "RTN","XSA PXD2",261, 0)
  2472    ;|------- --|------- ---------- |--------- --|
  2473   "RTN","XSA PXD2",262, 0)
  2474    ;|TARGET    |(R)                |A value o f '1' is r eturned if  the call  was succes sful|
  2475   "RTN","XSA PXD2",263, 0)
  2476    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2477   "RTN","XSA PXD2",264, 0)
  2478    ;
  2479   "RTN","XSA PXD2",265, 0)
  2480    ;##IAMTU( SOURCE,TAR GET)
  2481   "RTN","XSA PXD2",266, 0)
  2482    ;This res tricted fu nction is  used exclu sively by  the Identi ty and Acc ess Manage ment (IAM)  Provision ing applic ation to t erminate a n existing  user in t he VistA N EW PERSON  file (#200 ).
  2483   "RTN","XSA PXD2",267, 0)
  2484    ;
  2485   "RTN","XSA PXD2",268, 0)
  2486    ;###INPUT
  2487   "RTN","XSA PXD2",269, 0)
  2488    ;
  2489   "RTN","XSA PXD2",270, 0)
  2490    ;|Paramet er|Require d/Optional |Descripti on|
  2491   "RTN","XSA PXD2",271, 0)
  2492    ;|------- --|------- ---------- |--------- --|
  2493   "RTN","XSA PXD2",272, 0)
  2494    ;|SECID     |(R)                |SECID fie ld (#205.1 ) in the N EW PERSON  file (#200 ) to match  the SecID  in the us er's SAML  Token.|
  2495   "RTN","XSA PXD2",273, 0)
  2496    ;|TERMDAT E |(R)                |TERMINATI ON DATE fi eld (#9.2)  in the NE W PERSON f ile (#200) .|
  2497   "RTN","XSA PXD2",274, 0)
  2498    ;|TERMRES N |(R)                |Terminati on Reason  field (#9. 4) in the  NEW PERSON  file (#20 0).|
  2499   "RTN","XSA PXD2",275, 0)
  2500    ;|AUTHCOD E |(R)                |Security  Phrase for  IAM Provi sioning Ap plication|
  2501   "RTN","XSA PXD2",276, 0)
  2502    ;
  2503   "RTN","XSA PXD2",277, 0)
  2504    ;###OUTPU T
  2505   "RTN","XSA PXD2",278, 0)
  2506    ;
  2507   "RTN","XSA PXD2",279, 0)
  2508    ;|Paramet er|Require d/Optional |Descripti on|
  2509   "RTN","XSA PXD2",280, 0)
  2510    ;|------- --|------- ---------- |--------- --|
  2511   "RTN","XSA PXD2",281, 0)
  2512    ;|TARGET    |(R)                |A value o f '1' is r eturned if  the call  was succes sful|
  2513   "RTN","XSA PXD2",282, 0)
  2514    ;-------- ---------- ---------- ---------- ---------- ---------- ---------- ----
  2515   "RTN","XSA PXERR")
  2516   0^7^B38238 51
  2517   "RTN","XSA PXERR",1,0 )
  2518   XSAPXERR ; rbc/apex -  Standard  error trap ping routi ne;1/27/20 16
  2519   "RTN","XSA PXERR",2,0 )
  2520    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  2521   "RTN","XSA PXERR",3,0 )
  2522    ;
  2523   "RTN","XSA PXERR",4,0 )
  2524    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  2525   "RTN","XSA PXERR",5,0 )
  2526    ;
  2527   "RTN","XSA PXERR",6,0 )
  2528    ; Externa l Referenc es           DBIA#
  2529   "RTN","XSA PXERR",7,0 )
  2530    ; ------- ---------- --           -----
  2531   "RTN","XSA PXERR",8,0 )
  2532    ; $$EC^%Z OSV                     10097
  2533   "RTN","XSA PXERR",9,0 )
  2534    ; ^%ZTER                          1621
  2535   "RTN","XSA PXERR",10, 0)
  2536    ; $$EZBLD ^DIALOG                 2050
  2537   "RTN","XSA PXERR",11, 0)
  2538    Q
  2539   "RTN","XSA PXERR",12, 0)
  2540    ;
  2541   "RTN","XSA PXERR",13, 0)
  2542    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  2543   "RTN","XSA PXERR",14, 0)
  2544    ;
  2545   "RTN","XSA PXERR",15, 0)
  2546   ERROR(CODE ,XSANAME,P ARAMS,MSG)  ; -- send  applicati on error
  2547   "RTN","XSA PXERR",16, 0)
  2548    N XSAI,XS ADAT
  2549   "RTN","XSA PXERR",17, 0)
  2550    S XSAERR= 0
  2551   "RTN","XSA PXERR",18, 0)
  2552    ; -- if p arameters  are passed  as in COD E (where C ODE = code ^param1^pa ram2^...)
  2553   "RTN","XSA PXERR",19, 0)
  2554    ; -- pars e CODE and  put param eters into  PARAMS ar ray.
  2555   "RTN","XSA PXERR",20, 0)
  2556    I CODE[U, $D(PARAMS) =0 D
  2557   "RTN","XSA PXERR",21, 0)
  2558    . K PARAM S
  2559   "RTN","XSA PXERR",22, 0)
  2560    . F XSAI= 2:1:$L(COD E,U) S PAR AMS(XSAI-1 )=$P(CODE, U,XSAI)
  2561   "RTN","XSA PXERR",23, 0)
  2562    ;
  2563   "RTN","XSA PXERR",24, 0)
  2564    S @TARGET @("error", "data","fa ult string ")="Intern al Applica tion Error "
  2565   "RTN","XSA PXERR",25, 0)
  2566    S @TARGET @("error", "data","fa ult actor" )=XSANAME
  2567   "RTN","XSA PXERR",26, 0)
  2568    S @TARGET @("error", "data","co de")=CODE
  2569   "RTN","XSA PXERR",27, 0)
  2570    S @TARGET @("error", "data","er ror type") =XSANAME
  2571   "RTN","XSA PXERR",28, 0)
  2572    S @TARGET @("error", "error")=$ S(MSG]"":M SG,1:$$EZB LD^DIALOG( CODE,.PARA MS))
  2573   "RTN","XSA PXERR",29, 0)
  2574    ;
  2575   "RTN","XSA PXERR",30, 0)
  2576    Q XSAERR
  2577   "RTN","XSA PXERR",31, 0)
  2578    ;
  2579   "RTN","XSA PXERR",32, 0)
  2580   ERR(TARGET ) ; -- Cat ch an erro r and stor e it in th e Error Gl obal
  2581   "RTN","XSA PXERR",33, 0)
  2582    S XSAERR= 0
  2583   "RTN","XSA PXERR",34, 0)
  2584    ; Save er ror data t o the Symb ol Table v alues if r equested.
  2585   "RTN","XSA PXERR",35, 0)
  2586    I +$G(XSA SYM) D SAV ESYM^XSAPX UTL($TR(TA RGET,")"," ,")_"""sym bolTable"" "_",")
  2587   "RTN","XSA PXERR",36, 0)
  2588    ;K @TARGE T
  2589   "RTN","XSA PXERR",37, 0)
  2590    S %ZT(TAR GET)=""
  2591   "RTN","XSA PXERR",38, 0)
  2592    S $ZE="XS A ERROR: " _$$EC^%ZOS V
  2593   "RTN","XSA PXERR",39, 0)
  2594    S $ZE="XS A ERROR: " _$$EC^%ZOS V
  2595   "RTN","XSA PXERR",40, 0)
  2596    S @TARGET @("error", "data","fa ult string ")="Genera l System E rror"
  2597   "RTN","XSA PXERR",41, 0)
  2598    S @TARGET @("error", "data","fa ult actor" )="System  Fault Erro r"
  2599   "RTN","XSA PXERR",42, 0)
  2600    S @TARGET @("error", "data","co de")=00000
  2601   "RTN","XSA PXERR",43, 0)
  2602    S @TARGET @("error", "data","er ror type") ="System F ault Error "
  2603   "RTN","XSA PXERR",44, 0)
  2604    S @TARGET @("error", "error")=$ ZE
  2605   "RTN","XSA PXERR",45, 0)
  2606    ;
  2607   "RTN","XSA PXERR",46, 0)
  2608    ; -- Save  off the e rror
  2609   "RTN","XSA PXERR",47, 0)
  2610    D ^%ZTER
  2611   "RTN","XSA PXERR",48, 0)
  2612    ;
  2613   "RTN","XSA PXERR",49, 0)
  2614    Q XSAERR
  2615   "RTN","XSA PXIAM")
  2616   0^14^B1075 5623
  2617   "RTN","XSA PXIAM",1,0 )
  2618   XSAPXIAM ; DAL/BNT -  VistA Serv ice Assemb ler XUS IA M Wrapper  Functions; 1/27/2016
  2619   "RTN","XSA PXIAM",2,0 )
  2620    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  2621   "RTN","XSA PXIAM",3,0 )
  2622    ;
  2623   "RTN","XSA PXIAM",4,0 )
  2624    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  2625   "RTN","XSA PXIAM",5,0 )
  2626    ;
  2627   "RTN","XSA PXIAM",6,0 )
  2628    ; Externa l Referenc es           DBIA#
  2629   "RTN","XSA PXIAM",7,0 )
  2630    ; ------- ---------- --           -----
  2631   "RTN","XSA PXIAM",8,0 )
  2632    ; IAMAU^X UESSO3                  6290
  2633   "RTN","XSA PXIAM",9,0 )
  2634    ; IAMDU^X UESSO3                  6289
  2635   "RTN","XSA PXIAM",10, 0)
  2636    ; IAMEU^X UESSO3                  6291
  2637   "RTN","XSA PXIAM",11, 0)
  2638    ; IAMFU^X UESSO3                  6288
  2639   "RTN","XSA PXIAM",12, 0)
  2640    ; IAMRU^X UESSO3                  6293
  2641   "RTN","XSA PXIAM",13, 0)
  2642    ; IAMTU^X UESSO3                  6292
  2643   "RTN","XSA PXIAM",14, 0)
  2644    Q
  2645   "RTN","XSA PXIAM",15, 0)
  2646    ;
  2647   "RTN","XSA PXIAM",16, 0)
  2648    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  2649   "RTN","XSA PXIAM",17, 0)
  2650    ;
  2651   "RTN","XSA PXIAM",18, 0)
  2652    ;
  2653   "RTN","XSA PXIAM",19, 0)
  2654   IAMAU(SOUR CE,TARGET)  ; IAM Add  User
  2655   "RTN","XSA PXIAM",20, 0)
  2656    N X,R,NAM E,SECID,EM AIL,ADUPN, SSN,DOB,ST ATION,AUTH CODE
  2657   "RTN","XSA PXIAM",21, 0)
  2658    F X="NAME ","SECID", "EMAIL","A DUPN","SSN ","DOB","S TATION","A UTHCODE" D  INITPARM^ XSAPXUTL(. X)
  2659   "RTN","XSA PXIAM",22, 0)
  2660    D IAMAU^X UESSO3(.R, NAME,SECID ,EMAIL,ADU PN,SSN,DOB ,STATION,A UTHCODE)
  2661   "RTN","XSA PXIAM",23, 0)
  2662    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2663   "RTN","XSA PXIAM",24, 0)
  2664    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Add Us er"),"IAM  Add User")  Q
  2665   "RTN","XSA PXIAM",25, 0)
  2666    S @TARGET @("results ","DUZ")=$ P(R(0),U)
  2667   "RTN","XSA PXIAM",26, 0)
  2668    S @TARGET @("results ","STATION ")=$P(R(0) ,U,2)
  2669   "RTN","XSA PXIAM",27, 0)
  2670    Q $$RESUL T^XSAPXUTL ()
  2671   "RTN","XSA PXIAM",28, 0)
  2672    ;
  2673   "RTN","XSA PXIAM",29, 0)
  2674   IAMEU(SOUR CE,TARGET)  ; IAM Edi t User
  2675   "RTN","XSA PXIAM",30, 0)
  2676    N R,INARR Y,AUTHCODE
  2677   "RTN","XSA PXIAM",31, 0)
  2678    F X="AUTH CODE" D IN ITPARM^XSA PXUTL(.X)
  2679   "RTN","XSA PXIAM",32, 0)
  2680    M INARRY= @SOURCE@(" INARRY")
  2681   "RTN","XSA PXIAM",33, 0)
  2682    D IAMEU^X UESSO3(.R, .INARRY,AU THCODE)
  2683   "RTN","XSA PXIAM",34, 0)
  2684    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2685   "RTN","XSA PXIAM",35, 0)
  2686    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Edit U ser"),"IAM  Edit User ") Q
  2687   "RTN","XSA PXIAM",36, 0)
  2688    S @TARGET @("results ","DUZ")=R (0)
  2689   "RTN","XSA PXIAM",37, 0)
  2690    Q $$RESUL T^XSAPXUTL ()
  2691   "RTN","XSA PXIAM",38, 0)
  2692    ;
  2693   "RTN","XSA PXIAM",39, 0)
  2694   IAMDU(SOUR CE,TARGET)  ; IAM Dis play User
  2695   "RTN","XSA PXIAM",40, 0)
  2696    N X,R,DIS PDUZ,AUTHC ODE
  2697   "RTN","XSA PXIAM",41, 0)
  2698    F X="DISP DUZ","AUTH CODE" D IN ITPARM^XSA PXUTL(.X)
  2699   "RTN","XSA PXIAM",42, 0)
  2700    D IAMDU^X UESSO3(.R, DISPDUZ,AU THCODE)
  2701   "RTN","XSA PXIAM",43, 0)
  2702    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2703   "RTN","XSA PXIAM",44, 0)
  2704    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Displa y User")," IAM Displa y User") Q
  2705   "RTN","XSA PXIAM",45, 0)
  2706    M @TARGET @("results ")=R
  2707   "RTN","XSA PXIAM",46, 0)
  2708    Q $$RESUL T^XSAPXUTL ()
  2709   "RTN","XSA PXIAM",47, 0)
  2710    ;
  2711   "RTN","XSA PXIAM",48, 0)
  2712   IAMFU(SOUR CE,TARGET)  ; IAM Fin d User
  2713   "RTN","XSA PXIAM",49, 0)
  2714    N X,R,NAM E,SSN,DOB, ADUPN,SECI D,AUTHCODE
  2715   "RTN","XSA PXIAM",50, 0)
  2716    F X="NAME ","SSN","D OB","ADUPN ","SECID", "AUTHCODE"  D INITPAR M^XSAPXUTL (.X)
  2717   "RTN","XSA PXIAM",51, 0)
  2718    D IAMFU^X UESSO3(.R, NAME,SSN,D OB,ADUPN,S ECID,AUTHC ODE)
  2719   "RTN","XSA PXIAM",52, 0)
  2720    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2721   "RTN","XSA PXIAM",53, 0)
  2722    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Find U ser"),"IAM  Find User ") Q
  2723   "RTN","XSA PXIAM",54, 0)
  2724    M @TARGET @("results ")=R
  2725   "RTN","XSA PXIAM",55, 0)
  2726    Q $$RESUL T^XSAPXUTL ()
  2727   "RTN","XSA PXIAM",56, 0)
  2728    ;
  2729   "RTN","XSA PXIAM",57, 0)
  2730   IAMRU(SOUR CE,TARGET)  ; IAM Rea ctivate Us er
  2731   "RTN","XSA PXIAM",58, 0)
  2732    N X,R,SEC ID,AUTHCOD E
  2733   "RTN","XSA PXIAM",59, 0)
  2734    F X="SECI D","AUTHCO DE" D INIT PARM^XSAPX UTL(.X)
  2735   "RTN","XSA PXIAM",60, 0)
  2736    D IAMRU^X UESSO3(.R, SECID,AUTH CODE)
  2737   "RTN","XSA PXIAM",61, 0)
  2738    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2739   "RTN","XSA PXIAM",62, 0)
  2740    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Reacti vate User" ),"IAM Rea ctivate Us er") Q
  2741   "RTN","XSA PXIAM",63, 0)
  2742    S @TARGET @("results ","DUZ")=R (0)
  2743   "RTN","XSA PXIAM",64, 0)
  2744    Q $$RESUL T^XSAPXUTL ()
  2745   "RTN","XSA PXIAM",65, 0)
  2746    ;
  2747   "RTN","XSA PXIAM",66, 0)
  2748   IAMTU(SOUR CE,TARGET)  ; IAM Ter minate Use r
  2749   "RTN","XSA PXIAM",67, 0)
  2750    N X,R,SEC ID,TERMDAT E,TERMRESN ,AUTHCODE
  2751   "RTN","XSA PXIAM",68, 0)
  2752    F X="SECI D","TERMDA TE","TERMR ESN","AUTH CODE" D IN ITPARM^XSA PXUTL(.X)
  2753   "RTN","XSA PXIAM",69, 0)
  2754    D IAMTU^X UESSO3(.R, SECID,TERM DATE,TERMR ESN,AUTHCO DE)
  2755   "RTN","XSA PXIAM",70, 0)
  2756    I +R(0)<1  D  Q $$RE SULT^XSAPX UTL()
  2757   "RTN","XSA PXIAM",71, 0)
  2758    . D BLDER ROR^XSAPXU TL(1,$S(R( 1)]"":R(1) ,1:"Unable  to Termin ate User") ,"IAM Term inate User ") Q
  2759   "RTN","XSA PXIAM",72, 0)
  2760    S @TARGET @("results ","DUZ")=R (0)
  2761   "RTN","XSA PXIAM",73, 0)
  2762    Q $$RESUL T^XSAPXUTL ()
  2763   "RTN","XSA PXINS")
  2764   0^19^B1660 712
  2765   "RTN","XSA PXINS",1,0 )
  2766   XSAPXINS ; SYD/JWM -  VSA Server  Instituti on Data Fu nctions ;9 /28/2016
  2767   "RTN","XSA PXINS",2,0 )
  2768    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  2769   "RTN","XSA PXINS",3,0 )
  2770    ;
  2771   "RTN","XSA PXINS",4,0 )
  2772    Q
  2773   "RTN","XSA PXINS",5,0 )
  2774   SITENAME(S OURCE,TARG ET) ; retu rn site na me of each  site prov ided in th e SITES ar gument fro m instutio n file (4)
  2775   "RTN","XSA PXINS",6,0 )
  2776    N ERRRES, SITEID,INS ID
  2777   "RTN","XSA PXINS",7,0 )
  2778    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  2779   "RTN","XSA PXINS",8,0 )
  2780    I '$D(@SO URCE@("SIT ES")) D BL DERROR^XSA PXUTL(1,"N o sites sp ecified"," SITENAME^X SAPXINS")  Q $$RESULT ^XSAPXUTL( )
  2781   "RTN","XSA PXINS",9,0 )
  2782    ; SITES s ubscript s hould also  contain s ubnodes fo r each ite m to be ke pt
  2783   "RTN","XSA PXINS",10, 0)
  2784    S SITEID= ""
  2785   "RTN","XSA PXINS",11, 0)
  2786    F  S SITE ID=$O(@SOU RCE@("SITE S",SITEID) ) Q:SITEID =""  D
  2787   "RTN","XSA PXINS",12, 0)
  2788    . S INSID =$O(^DIC(4 ,"D",SITEI D,""))
  2789   "RTN","XSA PXINS",13, 0)
  2790    . I $L(IN SID)>0 D
  2791   "RTN","XSA PXINS",14, 0)
  2792    . . S @TA RGET@("res ults","sit eData",SIT EID,"siteN ame")=$P(^ DIC(4,INSI D,0),U,1)
  2793   "RTN","XSA PXINS",15, 0)
  2794    . . S @TA RGET@("res ults","sit eData",SIT EID,"offic ialName")= $P(^DIC(4, INSID,99), U,3)
  2795   "RTN","XSA PXINS",16, 0)
  2796    S @TARGET @("results ","ok")=1
  2797   "RTN","XSA PXINS",17, 0)
  2798    Q $$RESUL T^XSAPXUTL ()
  2799   "RTN","XSA PXL1")
  2800   0^1^B88784 941
  2801   "RTN","XSA PXL1",1,0)
  2802   XSAPXL1 ;D AL/BNT - V istA Servi ces Assemb ler FileMa n Wrapper  Utility Fu nctions;1/ 27/2016
  2803   "RTN","XSA PXL1",2,0)
  2804    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  2805   "RTN","XSA PXL1",3,0)
  2806    ;
  2807   "RTN","XSA PXL1",4,0)
  2808    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  2809   "RTN","XSA PXL1",5,0)
  2810    ; Externa l Referenc es           DBIA#
  2811   "RTN","XSA PXL1",6,0)
  2812    ; ------- ---------- --           -----
  2813   "RTN","XSA PXL1",7,0)
  2814    ; LIST^DI C                       2051
  2815   "RTN","XSA PXL1",8,0)
  2816    ; UPDATE^ DIE                     2053
  2817   "RTN","XSA PXL1",9,0)
  2818    ; WP^DIE                          2053
  2819   "RTN","XSA PXL1",10,0 )
  2820    ; GETS^DI Q                       2056
  2821   "RTN","XSA PXL1",11,0 )
  2822    Q
  2823   "RTN","XSA PXL1",12,0 )
  2824    ;
  2825   "RTN","XSA PXL1",13,0 )
  2826    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  2827   "RTN","XSA PXL1",14,0 )
  2828    ;
  2829   "RTN","XSA PXL1",15,0 )
  2830   GETS(SOURC E,TARGET)  ; Wrapper  for FileMa n GETS^DIQ  Database  Server API
  2831   "RTN","XSA PXL1",16,0 )
  2832    N ERRRES, SUCCESS,FI LE,IENS,FI ELDS,FLAGS
  2833   "RTN","XSA PXL1",17,0 )
  2834    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  2835   "RTN","XSA PXL1",18,0 )
  2836    N X F X=" FILE","IEN S","FIELDS ","FLAGS"  D INITPARM ^XSAPXUTL( .X)
  2837   "RTN","XSA PXL1",19,0 )
  2838    ; Verify  that FILE  exists
  2839   "RTN","XSA PXL1",20,0 )
  2840    S SUCCESS =$$VFILE^X SAPXUTL(FI LE,TARGET)  Q:'+SUCCE SS $$RESUL T^XSAPXUTL ()
  2841   "RTN","XSA PXL1",21,0 )
  2842    ; Verify  that IENS  exists
  2843   "RTN","XSA PXL1",22,0 )
  2844    I IENS=""  D BLDERRO R^XSAPXUTL (1,"Missin g IENS par ameter","G ETS^XSAPXL 1") Q XSAE RR
  2845   "RTN","XSA PXL1",23,0 )
  2846    ; Verify  that FIELD  is valid
  2847   "RTN","XSA PXL1",24,0 )
  2848    I FIELDS] "" S SUCCE SS=$$VFIEL D^XSAPXUTL (FILE,FIEL DS,"**",TA RGET) Q:'+ SUCCESS $$ RESULT^XSA PXUTL()
  2849   "RTN","XSA PXL1",25,0 )
  2850    I FIELDS= "" S FIELD S="**"
  2851   "RTN","XSA PXL1",26,0 )
  2852    ; Verify  that FLAGS  is valid
  2853   "RTN","XSA PXL1",27,0 )
  2854    I FLAGS]" " S SUCCES S=$$VFLAGS ^XSAPXUTL( "EINRZ",FL AGS,TARGET ) Q:'+SUCC ESS $$RESU LT^XSAPXUT L()
  2855   "RTN","XSA PXL1",28,0 )
  2856    ; If FLAG S are null , set to d efault
  2857   "RTN","XSA PXL1",29,0 )
  2858    I FLAGS=" " S FLAGS= "ENR"
  2859   "RTN","XSA PXL1",30,0 )
  2860    ; Make su re the IEN S is prope rly format ted
  2861   "RTN","XSA PXL1",31,0 )
  2862    I $E(IENS ,$L(IENS)) '="," S IE NS=IENS_", "
  2863   "RTN","XSA PXL1",32,0 )
  2864    ; Call th e FileMan  GETS^DIQ A PI and che ck for Err or Conditi on
  2865   "RTN","XSA PXL1",33,0 )
  2866    D GETS^DI Q(FILE,IEN S,FIELDS,F LAGS,RESUL TS,ERRRES)
  2867   "RTN","XSA PXL1",34,0 )
  2868    ; If an e rror occur ed, get th e error co de and tex t from the  results a nd build e rror node
  2869   "RTN","XSA PXL1",35,0 )
  2870    I $D(@ERR RES) D ERR OR^XSAPXUT L(ERRRES," $$GETS^XSA PXL1") Q $ $RESULT^XS APXUTL()
  2871   "RTN","XSA PXL1",36,0 )
  2872    ; Parse t he data in  the RESUL TS array a nd convert  it to a V istA.js su itable for mat
  2873   "RTN","XSA PXL1",37,0 )
  2874    D GETS^XS APXUTL(RES ULTS,TARGE T)
  2875   "RTN","XSA PXL1",38,0 )
  2876    Q $$RESUL T^XSAPXUTL ()
  2877   "RTN","XSA PXL1",39,0 )
  2878    ;
  2879   "RTN","XSA PXL1",40,0 )
  2880   LIST(SOURC E,TARGET)  ; Wrapper  for FileMa n LIST^DIC  Lister AP I
  2881   "RTN","XSA PXL1",41,0 )
  2882    N ERRRES, SUCCESS,FI LE,IENS,FI ELDS,FLAGS ,NUMBER,FR OM,PART,IN DEX,SCREEN ,ID,X
  2883   "RTN","XSA PXL1",42,0 )
  2884    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  2885   "RTN","XSA PXL1",43,0 )
  2886    N X F X=" FILE","IEN S","FIELDS ","FLAGS", "NUMBER"," FROM","PAR T","INDEX" ,"SCREEN", "ID" D INI TPARM^XSAP XUTL(.X)
  2887   "RTN","XSA PXL1",44,0 )
  2888    ; Make su re PART is  in upper  case
  2889   "RTN","XSA PXL1",45,0 )
  2890    S PART=$$ UP^XLFSTR( PART)
  2891   "RTN","XSA PXL1",46,0 )
  2892    ; Verify  that FILE  exists
  2893   "RTN","XSA PXL1",47,0 )
  2894    S SUCCESS =$$VFILE^X SAPXUTL(FI LE,TARGET)  Q:'+SUCCE SS $$RESUL T^XSAPXUTL ()
  2895   "RTN","XSA PXL1",48,0 )
  2896    ; Verify  that FIELD  is valid
  2897   "RTN","XSA PXL1",49,0 )
  2898    I FIELDS= "" S SUCCE SS=$$VFIEL D^XSAPXUTL (FILE,FIEL DS,"@IXIFI DIIXEFIDEW ID-",TARGE T) Q:'+SUC CESS $$RES ULT^XSAPXU TL()
  2899   "RTN","XSA PXL1",50,0 )
  2900    I FIELDS= "" S FIELD S="@;.01;F ID"
  2901   "RTN","XSA PXL1",51,0 )
  2902    ; Verify  that FLAGS  is valid
  2903   "RTN","XSA PXL1",52,0 )
  2904    I FLAGS]" " S SUCCES S=$$VFLAGS ^XSAPXUTL( "BIKPMQU", FLAGS,TARG ET) Q:'+SU CCESS $$RE SULT^XSAPX UTL()
  2905   "RTN","XSA PXL1",53,0 )
  2906    ; If FLAG S are null , set to d efault
  2907   "RTN","XSA PXL1",54,0 )
  2908    I FLAGS=" " S FLAGS= "P"
  2909   "RTN","XSA PXL1",55,0 )
  2910    ; Call th e FileMan  LIST^DIC A PI and che ck for Err or Conditi on
  2911   "RTN","XSA PXL1",56,0 )
  2912    D LIST^DI C(FILE,IEN S,FIELDS,F LAGS,NUMBE R,FROM,PAR T,INDEX,SC REEN,ID,RE SULTS,ERRR ES)
  2913   "RTN","XSA PXL1",57,0 )
  2914    ; If an e rror occur ed, get th e error co de and tex t from the  results a nd build e rror node
  2915   "RTN","XSA PXL1",58,0 )
  2916    I $D(@ERR RES) D ERR OR^XSAPXUT L(RESULTS, "$$LIST^XS APXL1") Q  $$RESULT^X SAPXUTL()
  2917   "RTN","XSA PXL1",59,0 )
  2918    ; Parse t he data in  the RESUL TS array a nd convert  it to a V istA.js su itable for mat
  2919   "RTN","XSA PXL1",60,0 )
  2920    D LIST^XS APXUTL(FIL E,RESULTS, TARGET)
  2921   "RTN","XSA PXL1",61,0 )
  2922    Q $$RESUL T^XSAPXUTL ()
  2923   "RTN","XSA PXL1",62,0 )
  2924    ;
  2925   "RTN","XSA PXL1",63,0 )
  2926   UPD1701(SO URCE,TARGE T) ; Wrapp er for Fil eMan Updat er to add/ update/del ete record s in the X SA Definit ions file
  2927   "RTN","XSA PXL1",64,0 )
  2928    N RES,FDA ,FDAIEN,SU CCESS,IEN, NAME,DEF,M SG,WPERR
  2929   "RTN","XSA PXL1",65,0 )
  2930    N X F X=" IEN","NAME ","DEF" D  INITPARM^X SAPXUTL(.X )
  2931   "RTN","XSA PXL1",66,0 )
  2932    I $D(@SOU RCE@("DEF" )) M DEF=@ SOURCE@("D EF") S DEF (0)=""
  2933   "RTN","XSA PXL1",67,0 )
  2934    I 'IEN,NA ME']"" D B LDERROR^XS APXUTL(1," NAME or IE N is requi red","$$UP D1701^XSAP XL1") Q $$ RESULT^XSA PXUTL()
  2935   "RTN","XSA PXL1",68,0 )
  2936    ; If no I EN but NAM E exists,  try to fin d a match  to update
  2937   "RTN","XSA PXL1",69,0 )
  2938    I 'IEN,NA ME]"" S IE N=$O(^XSA( 17.01,"B", NAME,0))
  2939   "RTN","XSA PXL1",70,0 )
  2940    ; Set up  IENS
  2941   "RTN","XSA PXL1",71,0 )
  2942    S IENS=$S ($G(IEN)]" ":IEN,1:"+ 1,")
  2943   "RTN","XSA PXL1",72,0 )
  2944    I $E(IENS ,$L(IENS)) '="," S IE NS=IENS_", "
  2945   "RTN","XSA PXL1",73,0 )
  2946    I NAME]""  S FDA(17. 01,IENS,.0 1)=NAME D  UPDATE^DIE ("","FDA", "FDAIEN"," MSG(17.01) ") S IEN=$ S($G(FDAIE N(1))]"":F DAIEN(1),1 :IEN)
  2947   "RTN","XSA PXL1",74,0 )
  2948    ; If an e rror occur ed, get th e error co de and tex t from the  results a nd build e rror node
  2949   "RTN","XSA PXL1",75,0 )
  2950    I $D(MSG( 17.01,"DIE RR")) M @R ESULTS=MSG (17.01) D  ERROR^XSAP XUTL(RESUL TS,"$$UPD1 701^XSAPXL 1") Q $$RE SULT^XSAPX UTL()
  2951   "RTN","XSA PXL1",76,0 )
  2952    ; Update  DEFINITION  if needed
  2953   "RTN","XSA PXL1",77,0 )
  2954    I $D(DEF( 1)),IEN>0, $G(NAME)'= "@" D WP^D IE(17.01,I EN_",",10, "K","DEF", "WPERR(17. 02)") I $D (WPERR(17. 02)) M @RE SULTS=WPER R(17.02) D  ERROR^XSA PXUTL(RESU LTS,"$$UPD 1701^XSAPX L1") Q $$R ESULT^XSAP XUTL()
  2955   "RTN","XSA PXL1",78,0 )
  2956    S @TARGET @("results ","IEN")=I EN
  2957   "RTN","XSA PXL1",79,0 )
  2958    Q $$RESUL T^XSAPXUTL ()
  2959   "RTN","XSA PXL1",80,0 )
  2960    ;
  2961   "RTN","XSA PXL1",81,0 )
  2962   RPCMETA(SO URCE,TARGE T) ; Wrapp er for RPC  Metatdata
  2963   "RTN","XSA PXL1",82,0 )
  2964    N ERR,IEN ,IENS,MSIG ,PNUM,RES, MSG,RPC,RE SIDX,BADID X,BADNAME
  2965   "RTN","XSA PXL1",83,0 )
  2966    N X F X=" RPC" D INI TPARM^XSAP XUTL(.X)
  2967   "RTN","XSA PXL1",84,0 )
  2968    I RPC']""   D BLDERR OR^XSAPXUT L(1,"The R PC is requ ired in or der to loo k up an RP C.","RPCME TA^XSAPXL1 ") Q $$RES ULT^XSAPXU TL()
  2969   "RTN","XSA PXL1",85,0 )
  2970    I $D(^XWB (8994,RPC) ) S IEN=RP C
  2971   "RTN","XSA PXL1",86,0 )
  2972    E  S IEN= $O(^XWB(89 94,"B",RPC ,0))
  2973   "RTN","XSA PXL1",87,0 )
  2974    I 'IEN D  BLDERROR^X SAPXUTL(1, "RPC "_RPC _" is not  a valid RP C.","RPCME TA^XSAPXL1 ") Q $$RES ULT^XSAPXU TL()
  2975   "RTN","XSA PXL1",88,0 )
  2976    ; Build t he output  data
  2977   "RTN","XSA PXL1",89,0 )
  2978    S IENS=IE N_"," D GE TS^DIQ(899 4,IENS,"** ","E","RES ","MSG")
  2979   "RTN","XSA PXL1",90,0 )
  2980    S @TARGET @("results ","name")= RES(8994,I ENS,.01,"E ")
  2981   "RTN","XSA PXL1",91,0 )
  2982    I RES(899 4,IENS,.03 ,"E")']""  D BLDERROR ^XSAPXUTL( 1,"RPC ROU TINE is un defined.", "RPCMETA^X SAPXL1") Q  $$RESULT^ XSAPXUTL()
  2983   "RTN","XSA PXL1",92,0 )
  2984    I RES(899 4,IENS,.02 ,"E")']""  D BLDERROR ^XSAPXUTL( 1,"RPC TAG  is undefi ned.") Q $ $RESULT^XS APXUTL()
  2985   "RTN","XSA PXL1",93,0 )
  2986    S @TARGET @("results ","tag")=R ES(8994,IE NS,.02,"E" )
  2987   "RTN","XSA PXL1",94,0 )
  2988    S @TARGET @("results ","routine ")=RES(899 4,IENS,.03 ,"E")
  2989   "RTN","XSA PXL1",95,0 )
  2990    S MSIG=$$ MTHDSIG^XS APXUTL(RES (8994,IENS ,.03,"E"), RES(8994,I ENS,.02,"E "))
  2991   "RTN","XSA PXL1",96,0 )
  2992    I MSIG=""  D BLDERRO R^XSAPXUTL (1,"Method  Signature  for TAG " _RES(8994, IENS,.02," E")_" in R OUTINE "_R ES(8994,IE NS,.03,"E" )_" is not  valid."," RPCMETA^XS APXL1") Q  $$RESULT^X SAPXUTL()
  2993   "RTN","XSA PXL1",97,0 )
  2994    S @TARGET @("results ","methodS ignature") =$P(MSIG," (")_"^"_RE S(8994,IEN S,.03,"E") _"("_$P(MS IG,"(",2)
  2995   "RTN","XSA PXL1",98,0 )
  2996    S @TARGET @("results ","returnT ype")=RES( 8994,IENS, .04,"E")
  2997   "RTN","XSA PXL1",99,0 )
  2998    S @TARGET @("results ","availab ility")=RE S(8994,IEN S,.05,"E")
  2999   "RTN","XSA PXL1",100, 0)
  3000    S @TARGET @("results ","inactiv e")=RES(89 94,IENS,.0 6,"E")
  3001   "RTN","XSA PXL1",101, 0)
  3002    S @TARGET @("results ","clientM anager")=R ES(8994,IE NS,.07,"E" )
  3003   "RTN","XSA PXL1",102, 0)
  3004    S @TARGET @("results ","wordWra pOn")=RES( 8994,IENS, .08,"E")
  3005   "RTN","XSA PXL1",103, 0)
  3006    S @TARGET @("results ","version ")=RES(899 4,IENS,.09 ,"E")
  3007   "RTN","XSA PXL1",104, 0)
  3008    S @TARGET @("results ","appProx yAllowed") =RES(8994, IENS,.11," E")
  3009   "RTN","XSA PXL1",105, 0)
  3010    S @TARGET @("results ","descrip tion")=""
  3011   "RTN","XSA PXL1",106, 0)
  3012    I RES(899 4,IENS,1," E")]"" M @ TARGET@("r esults","d escription ")=@RES(89 94,IENS,1, "E") K @TA RGET@("res ults","des cription", "E")
  3013   "RTN","XSA PXL1",107, 0)
  3014    S @TARGET @("results ","returnP arameterDe scription" )=""
  3015   "RTN","XSA PXL1",108, 0)
  3016    I RES(899 4,IENS,3," E")]"" M @ TARGET@("r esults","r eturnParam eterDescri ption")=@R ES(8994,IE NS,3,"E")  K @TARGET@ ("results" ,"returnPa rameterDes cription", "E")
  3017   "RTN","XSA PXL1",109, 0)
  3018    ; Initial ize input  parameters  to zero i f none exi st
  3019   "RTN","XSA PXL1",110, 0)
  3020    S @TARGET @("results ","inputPa rameter")= 0
  3021   "RTN","XSA PXL1",111, 0)
  3022    I $L(MSIG ,",")<2 D
  3023   "RTN","XSA PXL1",112, 0)
  3024    . S @TARG ET@("resul ts","input Parameter" ,0,"name") =""
  3025   "RTN","XSA PXL1",113, 0)
  3026    . S @TARG ET@("resul ts","input Parameter" ,0,"parame terType")= ""
  3027   "RTN","XSA PXL1",114, 0)
  3028    . S @TARG ET@("resul ts","input Parameter" ,0,"maxDat aLength")= ""
  3029   "RTN","XSA PXL1",115, 0)
  3030    . S @TARG ET@("resul ts","input Parameter" ,0,"requir ed")=""
  3031   "RTN","XSA PXL1",116, 0)
  3032    . S @TARG ET@("resul ts","input Parameter" ,0,"descri ption")=""
  3033   "RTN","XSA PXL1",117, 0)
  3034    ; Set the  Input Par ameters ba sed on the  Method Si gnature, n ot what's  defined in  the RPC f ile
  3035   "RTN","XSA PXL1",118, 0)
  3036    N I,CNT,X ,PARAM,PAR AMIDX S CN T=0 F I=2: 1 S X=$P($ P($P(MSIG, " "),")"), ",",I) Q:X =""  S CNT =CNT+1,PAR AM(CNT)=X, PARAMIDX(X )=CNT
  3037   "RTN","XSA PXL1",119, 0)
  3038    N X,NAME, SEQNUM S X ="" F  S X =$O(RES(89 94.02,X))  Q:X=""  D
  3039   "RTN","XSA PXL1",120, 0)
  3040    . S NAME= $G(RES(899 4.02,X,.01 ,"E"))
  3041   "RTN","XSA PXL1",121, 0)
  3042    . S SEQNU M=$G(RES(8 994.02,X,. 05,"E"))
  3043   "RTN","XSA PXL1",122, 0)
  3044    . I $L(NA ME) D
  3045   "RTN","XSA PXL1",123, 0)
  3046    . . S RES IDX(NAME,X )=SEQNUM
  3047   "RTN","XSA PXL1",124, 0)
  3048    N NAME,SE QNUM,CNT S  NAME="" F   S NAME=$ O(PARAMIDX (NAME)) Q: NAME=""  D
  3049   "RTN","XSA PXL1",125, 0)
  3050    . S CNT=$ INCREMENT( @TARGET@(" results"," inputParam eter"))
  3051   "RTN","XSA PXL1",126, 0)
  3052    . S SEQNU M=PARAMIDX (NAME)
  3053   "RTN","XSA PXL1",127, 0)
  3054    . I $D(RE SIDX(NAME) ) D
  3055   "RTN","XSA PXL1",128, 0)
  3056    . . ; Par ameter of  same name  found
  3057   "RTN","XSA PXL1",129, 0)
  3058    . . S X=$ O(RESIDX(N AME,""))
  3059   "RTN","XSA PXL1",130, 0)
  3060    . . I SEQ NUM'=RESID X(NAME,X)  D
  3061   "RTN","XSA PXL1",131, 0)
  3062    . . . ;Se quence num ber of par ameter dif fers betwe en RPC def inition an d method s ignature
  3063   "RTN","XSA PXL1",132, 0)
  3064    . . . S @ TARGET@("r esults","i nputParame ter",SEQNU M,"flag")= "Suspiciou s: RPC Inp ut Paramet er Name -  Variable N ame mismat ch"
  3065   "RTN","XSA PXL1",133, 0)
  3066    . . . S B ADIDX=$G(R ESIDX(NAME ,X))
  3067   "RTN","XSA PXL1",134, 0)
  3068    . . . S B ADNAME=$S( (BADIDX&$D (PARAM(BAD IDX))):PAR AM(BADIDX) ,1:NAME)
  3069   "RTN","XSA PXL1",135, 0)
  3070    . . . S @ TARGET@("r esults","i nputParame ter",SEQNU M,"RPCInpu tParamName ")=BADNAME
  3071   "RTN","XSA PXL1",136, 0)
  3072    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "name")=NA ME
  3073   "RTN","XSA PXL1",137, 0)
  3074    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "parameter Type")=$G( RES(8994.0 2,X,.02,"E "))
  3075   "RTN","XSA PXL1",138, 0)
  3076    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "maxDataLe ngth")=$G( RES(8994.0 2,X,.03,"E "))
  3077   "RTN","XSA PXL1",139, 0)
  3078    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "required" )=$G(RES(8 994.02,X,. 04,"E"))
  3079   "RTN","XSA PXL1",140, 0)
  3080    . . I $G( RES(8994.0 2,X,1,"E") )]"" D
  3081   "RTN","XSA PXL1",141, 0)
  3082    . . . M @ TARGET@("r esults","i nputParame ter",SEQNU M,"descrip tion")=@RE S(8994.02, X,1,"E")
  3083   "RTN","XSA PXL1",142, 0)
  3084    . . . K @ TARGET@("r esults",SE QNUM,"desc ription"," E")
  3085   "RTN","XSA PXL1",143, 0)
  3086    . I '$D(R ESIDX(NAME )) D
  3087   "RTN","XSA PXL1",144, 0)
  3088    . . ;Para meter is i n method s ignature b ut not RPC  definitio n
  3089   "RTN","XSA PXL1",145, 0)
  3090    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "flag")="S uspicious:  Missing R PC Input P arameter d efinition  in REMOTE  PROCEDURE  file"
  3091   "RTN","XSA PXL1",146, 0)
  3092    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "name")=NA ME
  3093   "RTN","XSA PXL1",147, 0)
  3094    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "parameter Type")=""
  3095   "RTN","XSA PXL1",148, 0)
  3096    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "maxDataLe ngth")=""
  3097   "RTN","XSA PXL1",149, 0)
  3098    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "required" )=""
  3099   "RTN","XSA PXL1",150, 0)
  3100    . . S @TA RGET@("res ults","inp utParamete r",SEQNUM, "descripti on")=""
  3101   "RTN","XSA PXL1",151, 0)
  3102    ;Check fo r RPC name s defined  in the RPC  definitio n but not  found in t he method  signature
  3103   "RTN","XSA PXL1",152, 0)
  3104    N NAME,J  S NAME=""  F  S NAME= $O(RESIDX( NAME)) Q:N AME=""  D
  3105   "RTN","XSA PXL1",153, 0)
  3106    . I '$D(P ARAMIDX(NA ME)) D
  3107   "RTN","XSA PXL1",154, 0)
  3108    . . S J=$ INCREMENT( @TARGET@(" results"," inputParam eter"))
  3109   "RTN","XSA PXL1",155, 0)
  3110    . . S X=$ O(RESIDX(N AME,""))
  3111   "RTN","XSA PXL1",156, 0)
  3112    . . S @TA RGET@("res ults","inp utParamete r",J,"flag ")="Suspic ious: RPC  Input Para meter Name  - Variabl e Name mis match"
  3113   "RTN","XSA PXL1",157, 0)
  3114    . . S @TA RGET@("res ults","inp utParamete r",J,"name ")=NAME
  3115   "RTN","XSA PXL1",158, 0)
  3116    . . S @TA RGET@("res ults","inp utParamete r",J,"RPCI nputParamN ame")=NAME
  3117   "RTN","XSA PXL1",159, 0)
  3118    . . S @TA RGET@("res ults","inp utParamete r",J,"para meterType" )=$G(RES(8 994.02,X,. 02,"E"))
  3119   "RTN","XSA PXL1",160, 0)
  3120    . . S @TA RGET@("res ults","inp utParamete r",J,"maxD ataLength" )=$G(RES(8 994.02,X,. 03,"E"))
  3121   "RTN","XSA PXL1",161, 0)
  3122    . . S @TA RGET@("res ults","inp utParamete r",J,"requ ired")=$G( RES(8994.0 2,X,.04,"E "))
  3123   "RTN","XSA PXL1",162, 0)
  3124    . . I $G( RES(8994.0 2,X,1,"E") )]"" D
  3125   "RTN","XSA PXL1",163, 0)
  3126    . . . M @ TARGET@("r esults","i nputParame ter",J,"de scription" )=@RES(899 4.02,X,1," E")
  3127   "RTN","XSA PXL1",164, 0)
  3128    . . . K @ TARGET@("r esults",J, "descripti on","E")
  3129   "RTN","XSA PXL1",165, 0)
  3130    Q $$RESUL T^XSAPXUTL ()
  3131   "RTN","XSA PXL1",166, 0)
  3132    ;
  3133   "RTN","XSA PXL1",167, 0)
  3134   FUNCTION(S OURCE,TARG ET) ; Exec ute an ext ernal func tion and r eturn the  output
  3135   "RTN","XSA PXL1",168, 0)
  3136    N ERR,FUN C,RES,METH SIG,MSIG,C ALL,XSADAT A,ROUTINE, ENTRY S ER R=""
  3137   "RTN","XSA PXL1",169, 0)
  3138    N X F X=" ROUTINE"," ENTRY" D I NITPARM^XS APXUTL(.X)
  3139   "RTN","XSA PXL1",170, 0)
  3140    N METHSIG ,MSIG
  3141   "RTN","XSA PXL1",171, 0)
  3142    S MSIG=$$ MTHDSIG^XS APXUTL(ROU TINE,ENTRY )
  3143   "RTN","XSA PXL1",172, 0)
  3144    I MSIG=""  D BLDERRO R^XSAPXUTL (1,"Method  Signature  "_ENTRY_" ^"_ROUTINE _" does no t exist.", "FUNCTION^ XSAPXL1")  Q $$RESULT ^XSAPXUTL( )
  3145   "RTN","XSA PXL1",173, 0)
  3146    I MSIG'[" (" D BLDER ROR^XSAPXU TL(1,"Meth od Signatu re "_ENTRY _"^"_ROUTI NE_" is no t a Functi on.","FUNC TION^XSAPX L1") Q $$R ESULT^XSAP XUTL()
  3147   "RTN","XSA PXL1",174, 0)
  3148    ; Need to  handle th e case for  no input  params
  3149   "RTN","XSA PXL1",175, 0)
  3150    S METHSIG =ENTRY_"^" _ROUTINE_" ()"
  3151   "RTN","XSA PXL1",176, 0)
  3152    ; Parse t he PARAMS  global and  build par ams for me thod signa ture
  3153   "RTN","XSA PXL1",177, 0)
  3154    D GETPARM S^XSAPXUTL (.SOURCE,R OUTINE,.XS ADATA)
  3155   "RTN","XSA PXL1",178, 0)
  3156    I $G(XSAD ATA(ROUTIN E,"PARAMS" ))]"" S ME THSIG=ENTR Y_"^"_ROUT INE_"("_$G (XSADATA(R OUTINE,"PA RAMS"))_") "
  3157   "RTN","XSA PXL1",179, 0)
  3158    ; Create  the Functi on Call an d execute  it
  3159   "RTN","XSA PXL1",180, 0)
  3160    S CALL="S  RES=$$"_M ETHSIG X C ALL
  3161   "RTN","XSA PXL1",181, 0)
  3162    S @TARGET @("results ","result" )=RES
  3163   "RTN","XSA PXL1",182, 0)
  3164    Q $$RESUL T^XSAPXUTL ()
  3165   "RTN","XSA PXPSS")
  3166   0^18^B1926 25038
  3167   "RTN","XSA PXPSS",1,0 )
  3168   XSAPXPSS ; SYD/JWM -  VSA Server  Persisten t State St ore Access  Functions ;4/15/2016
  3169   "RTN","XSA PXPSS",2,0 )
  3170    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  3171   "RTN","XSA PXPSS",3,0 )
  3172    ;
  3173   "RTN","XSA PXPSS",4,0 )
  3174    ; Externa l Referenc es           DBIA#
  3175   "RTN","XSA PXPSS",5,0 )
  3176    ; ------- ---------- --           -----
  3177   "RTN","XSA PXPSS",6,0 )
  3178    ; DT^DILF                         2054
  3179   "RTN","XSA PXPSS",7,0 )
  3180    Q
  3181   "RTN","XSA PXPSS",8,0 )
  3182    ;
  3183   "RTN","XSA PXPSS",9,0 )
  3184    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  3185   "RTN","XSA PXPSS",10, 0)
  3186    ;
  3187   "RTN","XSA PXPSS",11, 0)
  3188   INIT(SOURC E,TARGET)  ; Initiali se Persist ent Store
  3189   "RTN","XSA PXPSS",12, 0)
  3190    N GLOBAL, REAPFREQ,R NODE
  3191   "RTN","XSA PXPSS",13, 0)
  3192    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3193   "RTN","XSA PXPSS",14, 0)
  3194    N X F X=" GLOBAL","R EAPFREQ" D  INITPARM^ XSAPXUTL(. X)
  3195   "RTN","XSA PXPSS",15, 0)
  3196    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","INI T^XSAPXPSS ") Q $$RES ULT^XSAPXU TL()
  3197   "RTN","XSA PXPSS",16, 0)
  3198    D FILEMAN (GLOBAL)
  3199   "RTN","XSA PXPSS",17, 0)
  3200    I $G(REAP FREQ) D
  3201   "RTN","XSA PXPSS",18, 0)
  3202    . S RNODE =$$REAPNOD E(GLOBAL)
  3203   "RTN","XSA PXPSS",19, 0)
  3204    . S @RNOD E@("FREQ") =REAPFREQ
  3205   "RTN","XSA PXPSS",20, 0)
  3206    S @TARGET @("results ","ok")=1
  3207   "RTN","XSA PXPSS",21, 0)
  3208    Q $$RESUL T^XSAPXUTL ()
  3209   "RTN","XSA PXPSS",22, 0)
  3210   SAVE(SOURC E,TARGET)  ; Save a v alue to ca che or upd ate an exi sting valu e
  3211   "RTN","XSA PXPSS",23, 0)
  3212    N GLOBAL, KEY,VALUE, LIFETIME,E RR,ERRRES
  3213   "RTN","XSA PXPSS",24, 0)
  3214    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3215   "RTN","XSA PXPSS",25, 0)
  3216    N X F X=" GLOBAL","K EY","VALUE ","LIFETIM E" D INITP ARM^XSAPXU TL(.X)
  3217   "RTN","XSA PXPSS",26, 0)
  3218    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","SAV E^XSAPXPSS ") Q $$RES ULT^XSAPXU TL()
  3219   "RTN","XSA PXPSS",27, 0)
  3220    I $L(KEY) =0 D BLDER ROR^XSAPXU TL(1,"No C ache Key s pecified", "SAVE^XSAP XPSS") Q $ $RESULT^XS APXUTL()
  3221   "RTN","XSA PXPSS",28, 0)
  3222    D SAVEKEY (GLOBAL,KE Y,VALUE,LI FETIME)
  3223   "RTN","XSA PXPSS",29, 0)
  3224    D SAVESKD T(GLOBAL,K EY,SOURCE)
  3225   "RTN","XSA PXPSS",30, 0)
  3226    S @TARGET @("results ","ok")=1
  3227   "RTN","XSA PXPSS",31, 0)
  3228    Q $$RESUL T^XSAPXUTL ()
  3229   "RTN","XSA PXPSS",32, 0)
  3230   LOAD(SOURC E,TARGET)  ; Load a v alue from  cache. Ret urns an er ror for no n existent  key
  3231   "RTN","XSA PXPSS",33, 0)
  3232    N GLOBAL, KEY,SUBKEY ,VNODE,ENO DE,INODE,E XPIRY,ERRR ES,MISSERR ,VALID,PAS SED,DELONE XP,KEYTYPE
  3233   "RTN","XSA PXPSS",34, 0)
  3234    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3235   "RTN","XSA PXPSS",35, 0)
  3236    N X F X=" GLOBAL","K EY","SUBKE Y","MISSER R","DELONE XP" D INIT PARM^XSAPX UTL(.X)
  3237   "RTN","XSA PXPSS",36, 0)
  3238    S @TARGET @("results ","ok")=0
  3239   "RTN","XSA PXPSS",37, 0)
  3240    S KEYTYPE ="VALUE"
  3241   "RTN","XSA PXPSS",38, 0)
  3242    I $G(SUBK EY) S KEYT YPE="SUBKE YS"
  3243   "RTN","XSA PXPSS",39, 0)
  3244    I '$G(MIS SERR) S MI SSERR=0
  3245   "RTN","XSA PXPSS",40, 0)
  3246    I $LENGTH ($G(DELONE XP))<1 S D ELONEXP=1
  3247   "RTN","XSA PXPSS",41, 0)
  3248    S VNODE=$ $DATANODE( GLOBAL,KEY ,KEYTYPE,$ G(SUBKEY))
  3249   "RTN","XSA PXPSS",42, 0)
  3250    S ENODE=$ $DATANODE( GLOBAL,KEY ,"EXPIRY")
  3251   "RTN","XSA PXPSS",43, 0)
  3252    S VALID=$ D(@VNODE)
  3253   "RTN","XSA PXPSS",44, 0)
  3254    I MISSERR &'VALID D  BLDERROR^X SAPXUTL(-1 ,"Key not  found","LO AD^XSAPXPS S") Q $$RE SULT^XSAPX UTL()
  3255   "RTN","XSA PXPSS",45, 0)
  3256    S PASSED= 0
  3257   "RTN","XSA PXPSS",46, 0)
  3258    I VALID D
  3259   "RTN","XSA PXPSS",47, 0)
  3260    . S PASSE D=$$EXPGON E(@ENODE)
  3261   "RTN","XSA PXPSS",48, 0)
  3262    . I PASSE D&DELONEXP  D REMOVE( GLOBAL,KEY )
  3263   "RTN","XSA PXPSS",49, 0)
  3264    . S VALID ='PASSED
  3265   "RTN","XSA PXPSS",50, 0)
  3266    I MISSERR &PASSED D  BLDERROR^X SAPXUTL(-1 ,"Key not  found","LO AD^XSAPXPS S") Q $$RE SULT^XSAPX UTL()
  3267   "RTN","XSA PXPSS",51, 0)
  3268    S @TARGET @("results ","ok")=VA LID
  3269   "RTN","XSA PXPSS",52, 0)
  3270    I VALID S  @TARGET@( "results", "value")=@ VNODE
  3271   "RTN","XSA PXPSS",53, 0)
  3272    Q $$RESUL T^XSAPXUTL ()
  3273   "RTN","XSA PXPSS",54, 0)
  3274   DELETE(SOU RCE,TARGET ) ; Delete s a value  from the c ache
  3275   "RTN","XSA PXPSS",55, 0)
  3276    N GLOBAL, KEY
  3277   "RTN","XSA PXPSS",56, 0)
  3278    N X F X=" GLOBAL","K EY" D INIT PARM^XSAPX UTL(.X)
  3279   "RTN","XSA PXPSS",57, 0)
  3280    D REMOVE( GLOBAL,KEY )
  3281   "RTN","XSA PXPSS",58, 0)
  3282    S @TARGET @("results ","ok")=1
  3283   "RTN","XSA PXPSS",59, 0)
  3284    Q $$RESUL T^XSAPXUTL ()
  3285   "RTN","XSA PXPSS",60, 0)
  3286   REAP(SOURC E,TARGET)  ; Force re moval of a ll expired  values fr om the cac he
  3287   "RTN","XSA PXPSS",61, 0)
  3288    N GLOBAL, BASENODE,T IME,NODE,T NODE,KEY,T DONE,NDONE ,RNODE,DOR EAP,RCOUNT ,SAVEKEY,S KCOUNT,SKD NODE
  3289   "RTN","XSA PXPSS",62, 0)
  3290    N X F X=" GLOBAL","S UBKEY" D I NITPARM^XS APXUTL(.X)
  3291   "RTN","XSA PXPSS",63, 0)
  3292    S SAVEKEY =$G(SUBKEY )'=""
  3293   "RTN","XSA PXPSS",64, 0)
  3294    S RNODE=$ $REAPNODE( GLOBAL)
  3295   "RTN","XSA PXPSS",65, 0)
  3296    S DOREAP= '$D(@RNODE @("NEXT"))
  3297   "RTN","XSA PXPSS",66, 0)
  3298    I 'DOREAP  S DOREAP= $$EXPGONE( @RNODE@("N EXT"))
  3299   "RTN","XSA PXPSS",67, 0)
  3300    S @TARGET @("results ","ok")=0
  3301   "RTN","XSA PXPSS",68, 0)
  3302    Q:'DOREAP  $$RESULT^ XSAPXUTL()
  3303   "RTN","XSA PXPSS",69, 0)
  3304    D FILEMAN (GLOBAL)
  3305   "RTN","XSA PXPSS",70, 0)
  3306    I $D(@RNO DE@("FREQ" )) S @RNOD E@("NEXT") =$$EXPTIME (@RNODE@(" FREQ"))
  3307   "RTN","XSA PXPSS",71, 0)
  3308    S BASENOD E=$$IDXBAS E(GLOBAL," EXPIRY")
  3309   "RTN","XSA PXPSS",72, 0)
  3310    S TDONE=0
  3311   "RTN","XSA PXPSS",73, 0)
  3312    S RCOUNT= 0
  3313   "RTN","XSA PXPSS",74, 0)
  3314    S TIME=""
  3315   "RTN","XSA PXPSS",75, 0)
  3316    F  S TIME =$O(@BASEN ODE@(TIME) ) Q:TDONE   D
  3317   "RTN","XSA PXPSS",76, 0)
  3318    . S TDONE =(TIME="")
  3319   "RTN","XSA PXPSS",77, 0)
  3320    . Q:TDONE
  3321   "RTN","XSA PXPSS",78, 0)
  3322    . S TDONE ='$$EXPGON E(TIME)
  3323   "RTN","XSA PXPSS",79, 0)
  3324    . Q:TDONE
  3325   "RTN","XSA PXPSS",80, 0)
  3326    . S TNODE =$$TIMENOD E(GLOBAL,T IME)
  3327   "RTN","XSA PXPSS",81, 0)
  3328    . S NODE= TNODE
  3329   "RTN","XSA PXPSS",82, 0)
  3330    . S NDONE =0
  3331   "RTN","XSA PXPSS",83, 0)
  3332    . F  S NO DE=$Q(@NOD E) Q:NDONE   D
  3333   "RTN","XSA PXPSS",84, 0)
  3334    . . S NDO NE=(NODE=" ")
  3335   "RTN","XSA PXPSS",85, 0)
  3336    . . Q:NDO NE
  3337   "RTN","XSA PXPSS",86, 0)
  3338    . . S KEY =$$LEAFSUB S(TNODE,NO DE)
  3339   "RTN","XSA PXPSS",87, 0)
  3340    . . S NDO NE=$L(KEY) =0
  3341   "RTN","XSA PXPSS",88, 0)
  3342    . . Q:NDO NE
  3343   "RTN","XSA PXPSS",89, 0)
  3344    . . S RCO UNT=RCOUNT +1
  3345   "RTN","XSA PXPSS",90, 0)
  3346    . . I SAV EKEY D
  3347   "RTN","XSA PXPSS",91, 0)
  3348    . . . S S KDNODE=$$D ATANODE(GL OBAL,KEY," SUBKEYS")
  3349   "RTN","XSA PXPSS",92, 0)
  3350    . . . S S KCOUNT=@SK DNODE
  3351   "RTN","XSA PXPSS",93, 0)
  3352    . . . I $ D(@SKDNODE @(+SKCOUNT ,SUBKEY))  S @TARGET@ ("results" ,"subkeys" ,@SKDNODE@ (SKCOUNT,S UBKEY))=""
  3353   "RTN","XSA PXPSS",94, 0)
  3354    . . D REM OVE(GLOBAL ,KEY)
  3355   "RTN","XSA PXPSS",95, 0)
  3356    S @TARGET @("results ","ok")=1
  3357   "RTN","XSA PXPSS",96, 0)
  3358    S @TARGET @("results ","totalTo kensDelete d")=RCOUNT
  3359   "RTN","XSA PXPSS",97, 0)
  3360    Q $$RESUL T^XSAPXUTL ()
  3361   "RTN","XSA PXPSS",98, 0)
  3362   TOUCH(SOUR CE,TARGET)  ; update  timestamp  on an exis ting value
  3363   "RTN","XSA PXPSS",99, 0)
  3364    N GLOBAL, KEY,LIFETI ME,ERR,VNO DE,ENODE,I NODE,OLDIN ODE,EXPIRY ,ERRRES
  3365   "RTN","XSA PXPSS",100 ,0)
  3366    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3367   "RTN","XSA PXPSS",101 ,0)
  3368    N X F X=" GLOBAL","K EY","LIFET IME" D INI TPARM^XSAP XUTL(.X)
  3369   "RTN","XSA PXPSS",102 ,0)
  3370    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","TOU CH^XSAPXPS S") Q $$RE SULT^XSAPX UTL()
  3371   "RTN","XSA PXPSS",103 ,0)
  3372    I $L(KEY) =0 D BLDER ROR^XSAPXU TL(1,"No C ache Key s pecified", "TOUCH^XSA PXPSS") Q  $$RESULT^X SAPXUTL()
  3373   "RTN","XSA PXPSS",104 ,0)
  3374    S ENODE=$ $DATANODE( GLOBAL,KEY ,"EXPIRY")
  3375   "RTN","XSA PXPSS",105 ,0)
  3376    S VNODE=$ $DATANODE( GLOBAL,KEY ,"VALUE")
  3377   "RTN","XSA PXPSS",106 ,0)
  3378    I '$D(@VN ODE) D BLD ERROR^XSAP XUTL(1,"Ke y does not  exist","T OUCH^XSAPX PSS") Q $$ RESULT^XSA PXUTL()
  3379   "RTN","XSA PXPSS",107 ,0)
  3380    S OLDINOD E=$$IDXNOD E(GLOBAL," EXPIRY",KE Y,@ENODE)
  3381   "RTN","XSA PXPSS",108 ,0)
  3382    K @OLDINO DE
  3383   "RTN","XSA PXPSS",109 ,0)
  3384    S EXPIRY= $$EXPTIME( LIFETIME)
  3385   "RTN","XSA PXPSS",110 ,0)
  3386    S INODE=$ $IDXNODE(G LOBAL,"EXP IRY",KEY,E XPIRY)
  3387   "RTN","XSA PXPSS",111 ,0)
  3388    S @ENODE= EXPIRY
  3389   "RTN","XSA PXPSS",112 ,0)
  3390    S @INODE= ""
  3391   "RTN","XSA PXPSS",113 ,0)
  3392    S @TARGET @("results ","ok")=1
  3393   "RTN","XSA PXPSS",114 ,0)
  3394    Q $$RESUL T^XSAPXUTL ()
  3395   "RTN","XSA PXPSS",115 ,0)
  3396   ADDSKEY(SO URCE,TARGE T) ; Regis ter a new  subkey the  cache wil l attempt  to use on  saving new  entries
  3397   "RTN","XSA PXPSS",116 ,0)
  3398    N GLOBAL, NAME,INDEX ED,ERR,SNO DE,ERRRES
  3399   "RTN","XSA PXPSS",117 ,0)
  3400    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3401   "RTN","XSA PXPSS",118 ,0)
  3402    N X F X=" GLOBAL","N AME","INDE XED" D INI TPARM^XSAP XUTL(.X)
  3403   "RTN","XSA PXPSS",119 ,0)
  3404    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","ADD SKEY^XSAPX PSS") Q $$ RESULT^XSA PXUTL()
  3405   "RTN","XSA PXPSS",120 ,0)
  3406    I $L(NAME )=0 D BLDE RROR^XSAPX UTL(1,"No  Subkey nam e specifie d","ADDSKE Y^XSAPXPSS ") Q $$RES ULT^XSAPXU TL()
  3407   "RTN","XSA PXPSS",121 ,0)
  3408    D FILEMAN (GLOBAL)
  3409   "RTN","XSA PXPSS",122 ,0)
  3410    S SNODE=$ $SKNODE(GL OBAL)
  3411   "RTN","XSA PXPSS",123 ,0)
  3412    S @SNODE@ (NAME)=IND EXED
  3413   "RTN","XSA PXPSS",124 ,0)
  3414    S @TARGET @("results ","ok")=1
  3415   "RTN","XSA PXPSS",125 ,0)
  3416    Q $$RESUL T^XSAPXUTL ()
  3417   "RTN","XSA PXPSS",126 ,0)
  3418   READIDX(SO URCE,TARGE T) ; Read  the conten ts of a su bkey index  returning  value of  specified  subkey for  each valu e in the i ndex
  3419   "RTN","XSA PXPSS",127 ,0)
  3420    N GLOBAL, INDEX,SUBK EY,ERR,SNO DE,INODE,I BNODE,SKDN ODE,SKINOD E,NODE,IDX VAL,ERRRES ,VCOUNT,ND ONE,SKCOUN T,KEY,TMP
  3421   "RTN","XSA PXPSS",128 ,0)
  3422    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3423   "RTN","XSA PXPSS",129 ,0)
  3424    N X F X=" GLOBAL","I NDEX","SUB KEY" D INI TPARM^XSAP XUTL(.X)
  3425   "RTN","XSA PXPSS",130 ,0)
  3426    S SNODE=$ $SKNODE(GL OBAL)
  3427   "RTN","XSA PXPSS",131 ,0)
  3428    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","REA DIDX^XSAPX PSS") Q $$ RESULT^XSA PXUTL()
  3429   "RTN","XSA PXPSS",132 ,0)
  3430    I $L(SUBK EY)=0 D BL DERROR^XSA PXUTL(1,"N o subkey n ame specif ied","READ IDX^XSAPXP SS") Q $$R ESULT^XSAP XUTL()
  3431   "RTN","XSA PXPSS",133 ,0)
  3432    I $L(INDE X)=0 D BLD ERROR^XSAP XUTL(1,"No  index nam e specifie d","READID X^XSAPXPSS ") Q $$RES ULT^XSAPXU TL()
  3433   "RTN","XSA PXPSS",134 ,0)
  3434    I '$D(@SN ODE@(INDEX )) D BLDER ROR^XSAPXU TL(1,"Inde x does not  exist","R EADIDX^XSA PXPSS") Q  $$RESULT^X SAPXUTL()
  3435   "RTN","XSA PXPSS",135 ,0)
  3436    I @SNODE@ (INDEX)'=1  D BLDERRO R^XSAPXUTL (1,"Subkey  is not de fined as a n index"," READIDX^XS APXPSS") Q  $$RESULT^ XSAPXUTL()
  3437   "RTN","XSA PXPSS",136 ,0)
  3438    S IBNODE= $$IDXBASE( GLOBAL,IND EX)
  3439   "RTN","XSA PXPSS",137 ,0)
  3440    S IDXVAL= ""
  3441   "RTN","XSA PXPSS",138 ,0)
  3442    S @TARGET @("results ","count") =0
  3443   "RTN","XSA PXPSS",139 ,0)
  3444    F  S IDXV AL=$O(@IBN ODE@(IDXVA L)) Q:IDXV AL=""  D
  3445   "RTN","XSA PXPSS",140 ,0)
  3446    . S INODE =$$IVALNOD E(GLOBAL,I NDEX,IDXVA L)
  3447   "RTN","XSA PXPSS",141 ,0)
  3448    . S NODE= INODE
  3449   "RTN","XSA PXPSS",142 ,0)
  3450    . S VCOUN T=0
  3451   "RTN","XSA PXPSS",143 ,0)
  3452    . S NDONE =0
  3453   "RTN","XSA PXPSS",144 ,0)
  3454    . F  S NO DE=$Q(@NOD E) Q:NDONE   D
  3455   "RTN","XSA PXPSS",145 ,0)
  3456    . . S NDO NE=(NODE=" ")
  3457   "RTN","XSA PXPSS",146 ,0)
  3458    . . Q:NDO NE
  3459   "RTN","XSA PXPSS",147 ,0)
  3460    . . S KEY =$$LEAFSUB S(INODE,NO DE)
  3461   "RTN","XSA PXPSS",148 ,0)
  3462    . . S NDO NE=(KEY="" )
  3463   "RTN","XSA PXPSS",149 ,0)
  3464    . . Q:NDO NE
  3465   "RTN","XSA PXPSS",150 ,0)
  3466    . . S KEY =$P(KEY,"^ ",1,$L(KEY ,"^")-1)
  3467   "RTN","XSA PXPSS",151 ,0)
  3468    . . S SKD NODE=$$DAT ANODE(GLOB AL,KEY,"SU BKEYS")
  3469   "RTN","XSA PXPSS",152 ,0)
  3470    . . S SKI NODE=$$IDX NODE(GLOBA L,INDEX,KE Y,IDXVAL)
  3471   "RTN","XSA PXPSS",153 ,0)
  3472    . . S SKC OUNT=$O(@S KINODE@("" ),-1) ; Mo st recent  entry with  this valu e
  3473   "RTN","XSA PXPSS",154 ,0)
  3474    . . S @TA RGET@("res ults","ind ex",IDXVAL ,VCOUNT)=@ SKDNODE@(S KCOUNT,SUB KEY)
  3475   "RTN","XSA PXPSS",155 ,0)
  3476    . . S VCO UNT=VCOUNT +1
  3477   "RTN","XSA PXPSS",156 ,0)
  3478    . . S TMP =$INCREMEN T(@TARGET@ ("results" ,"count"))
  3479   "RTN","XSA PXPSS",157 ,0)
  3480    . . S NOD E=$$IDXNOD E(GLOBAL,I NDEX,KEY,I DXVAL,SKCO UNT) ; Mov e node cur sor to ind ex node fo r node rea d above (i f not alre ady there)
  3481   "RTN","XSA PXPSS",158 ,0)
  3482    S @TARGET @("results ","ok")=1
  3483   "RTN","XSA PXPSS",159 ,0)
  3484    Q $$RESUL T^XSAPXUTL ()
  3485   "RTN","XSA PXPSS",160 ,0)
  3486   FILTER(SOU RCE,TARGET ) ; Filter  records t o remove a ll records  not match ing the fi lter (FINC LUDE=1) or  all match ing (FINCL UDE=0). Fo r multiple  subkeys
  3487   "RTN","XSA PXPSS",161 ,0)
  3488    N GLOBAL, INDEX,FINC LUDE,ERR,S NODE,INODE ,IBNODE,SK DNODE,NODE ,IDXVAL,ER RRES,VCOUN T,NDONE,SK COUNT,KEY, KEEP
  3489   "RTN","XSA PXPSS",162 ,0)
  3490    S ERRRES= $NA(^TMP($ J,"XSA","E RRRES")) K  @ERRRES
  3491   "RTN","XSA PXPSS",163 ,0)
  3492    N X F X=" GLOBAL","I NDEX","FIN CLUDE" D I NITPARM^XS APXUTL(.X)
  3493   "RTN","XSA PXPSS",164 ,0)
  3494    ; TARGETS  subscript  should al so contain  subnodes  for each i tem to be  kept
  3495   "RTN","XSA PXPSS",165 ,0)
  3496    S SNODE=$ $SKNODE(GL OBAL)
  3497   "RTN","XSA PXPSS",166 ,0)
  3498    I $L(GLOB AL)=0 D BL DERROR^XSA PXUTL(1,"N o Cache gl obal speci fied","FIL TER^XSAPXP SS") Q $$R ESULT^XSAP XUTL()
  3499   "RTN","XSA PXPSS",167 ,0)
  3500    I $L(INDE X)=0 D BLD ERROR^XSAP XUTL(1,"No  index nam e specifie d","FILTER ^XSAPXPSS" ) Q $$RESU LT^XSAPXUT L()
  3501   "RTN","XSA PXPSS",168 ,0)
  3502    I '$D(@SN ODE@(INDEX )) D BLDER ROR^XSAPXU TL(1,"Inde x does not  exist","F ILTER^XSAP XPSS") Q $ $RESULT^XS APXUTL()
  3503   "RTN","XSA PXPSS",169 ,0)
  3504    I @SNODE@ (INDEX)'=1  D BLDERRO R^XSAPXUTL (1,"Subkey  is not de fined as a n index"," FILTER^XSA PXPSS") Q  $$RESULT^X SAPXUTL()
  3505   "RTN","XSA PXPSS",170 ,0)
  3506    I '$G(FIN CLUDE) S F INCLUDE=1
  3507   "RTN","XSA PXPSS",171 ,0)
  3508    S IBNODE= $$IDXBASE( GLOBAL,IND EX)
  3509   "RTN","XSA PXPSS",172 ,0)
  3510    S IDXVAL= ""
  3511   "RTN","XSA PXPSS",173 ,0)
  3512    S VCOUNT= 0
  3513   "RTN","XSA PXPSS",174 ,0)
  3514    F  S IDXV AL=$O(@IBN ODE@(IDXVA L)) Q:IDXV AL=""  D
  3515   "RTN","XSA PXPSS",175 ,0)
  3516    . S KEEP= ($D(@SOURC E@("TARGET S",IDXVAL) )&FINCLUDE )!('$D(@SO URCE@("TAR GETS",IDXV AL))&'FINC LUDE)
  3517   "RTN","XSA PXPSS",176 ,0)
  3518    . Q:KEEP
  3519   "RTN","XSA PXPSS",177 ,0)
  3520    . S INODE =$$IVALNOD E(GLOBAL,I NDEX,IDXVA L)
  3521   "RTN","XSA PXPSS",178 ,0)
  3522    . S NODE= INODE
  3523   "RTN","XSA PXPSS",179 ,0)
  3524    . S NDONE =0
  3525   "RTN","XSA PXPSS",180 ,0)
  3526    . F  S NO DE=$Q(@NOD E) Q:NDONE   D
  3527   "RTN","XSA PXPSS",181 ,0)
  3528    . . S NDO NE=(NODE=" ")
  3529   "RTN","XSA PXPSS",182 ,0)
  3530    . . Q:NDO NE
  3531   "RTN","XSA PXPSS",183 ,0)
  3532    . . S KEY =$$LEAFSUB S(INODE,NO DE)
  3533   "RTN","XSA PXPSS",184 ,0)
  3534    . . S NDO NE=(KEY="" )
  3535   "RTN","XSA PXPSS",185 ,0)
  3536    . . Q:NDO NE
  3537   "RTN","XSA PXPSS",186 ,0)
  3538    . . S SKC OUNT=$P(KE Y,"^",$L(K EY,"^"))
  3539   "RTN","XSA PXPSS",187 ,0)
  3540    . . S KEY =$P(KEY,"^ ",1,$L(KEY ,"^")-1)
  3541   "RTN","XSA PXPSS",188 ,0)
  3542    . . S SKD NODE=$$DAT ANODE(GLOB AL,KEY,"SU BKEYS")
  3543   "RTN","XSA PXPSS",189 ,0)
  3544    . . ; Onl y remove i tem if the  subkey ma tch is fro m the late st subkey
  3545   "RTN","XSA PXPSS",190 ,0)
  3546    . . I @SK DNODE=SKCO UNT D
  3547   "RTN","XSA PXPSS",191 ,0)
  3548    . . . S V COUNT=VCOU NT+1
  3549   "RTN","XSA PXPSS",192 ,0)
  3550    . . . I $ D(@SKDNODE @(+SKCOUNT ,INDEX)) S  @TARGET@( "results", "deletedKe ys",@SKDNO DE@(SKCOUN T,INDEX))= ""
  3551   "RTN","XSA PXPSS",193 ,0)
  3552    . . . D R EMOVE(GLOB AL,KEY)
  3553   "RTN","XSA PXPSS",194 ,0)
  3554    S @TARGET @("results ","ok")=1
  3555   "RTN","XSA PXPSS",195 ,0)
  3556    S @TARGET @("results ","deleted Count")=VC OUNT
  3557   "RTN","XSA PXPSS",196 ,0)
  3558    Q $$RESUL T^XSAPXUTL ()
  3559   "RTN","XSA PXPSS",197 ,0)
  3560   CRSKNODE(G LOBAL,KEY, SUBKEY) ;  Create Sub key node.  Not expose d to JS bu t is calle d from ses sion manag ement M co de Returns  name of n ode create d;
  3561   "RTN","XSA PXPSS",198 ,0)
  3562    N SNODE,V NODE,ENODE ,INODE,SKD NODE,SKCOU NT
  3563   "RTN","XSA PXPSS",199 ,0)
  3564    I $L(GLOB AL)=0 Q "- 1^No Cache  global sp ecified"
  3565   "RTN","XSA PXPSS",200 ,0)
  3566    I $L(KEY) =0 Q "-1^N o Cache Ke y specifie d"
  3567   "RTN","XSA PXPSS",201 ,0)
  3568    S VNODE=$ $DATANODE( GLOBAL,KEY ,"VALUE")
  3569   "RTN","XSA PXPSS",202 ,0)
  3570    I '$D(@VN ODE) D SAV EKEY(GLOBA L,KEY,"",- 1)
  3571   "RTN","XSA PXPSS",203 ,0)
  3572    S SNODE=$ $SKNODE(GL OBAL)
  3573   "RTN","XSA PXPSS",204 ,0)
  3574    I '$D(@SN ODE@(SUBKE Y)) Q "-1^ Subkey doe s not exis t"
  3575   "RTN","XSA PXPSS",205 ,0)
  3576    I @SNODE@ (SUBKEY) Q  "-1^Opera tion not s upported o n indexed  subkeys"
  3577   "RTN","XSA PXPSS",206 ,0)
  3578    S SKDNODE =$$DATANOD E(GLOBAL,K EY,"SUBKEY S")
  3579   "RTN","XSA PXPSS",207 ,0)
  3580    S SKCOUNT =$S($D(@SK DNODE):@SK DNODE,1:1)
  3581   "RTN","XSA PXPSS",208 ,0)
  3582    S @SKDNOD E@(SKCOUNT ,SUBKEY)=" "
  3583   "RTN","XSA PXPSS",209 ,0)
  3584    Q $ZREFER ENCE
  3585   "RTN","XSA PXPSS",210 ,0)
  3586   SAVEKEY(GL OBAL,KEY,V ALUE,LIFET IME) ; Sav e Value of  Key
  3587   "RTN","XSA PXPSS",211 ,0)
  3588    N VNODE,E NODE,INODE ,OLDINODE, EXPIRY
  3589   "RTN","XSA PXPSS",212 ,0)
  3590    S VNODE=$ $DATANODE( GLOBAL,KEY ,"VALUE")
  3591   "RTN","XSA PXPSS",213 ,0)
  3592    S ENODE=$ $DATANODE( GLOBAL,KEY ,"EXPIRY")
  3593   "RTN","XSA PXPSS",214 ,0)
  3594    I $D(@VNO DE) D
  3595   "RTN","XSA PXPSS",215 ,0)
  3596    . S OLDIN ODE=$$IDXN ODE(GLOBAL ,"EXPIRY", KEY,@ENODE )
  3597   "RTN","XSA PXPSS",216 ,0)
  3598    . K @OLDI NODE
  3599   "RTN","XSA PXPSS",217 ,0)
  3600    S EXPIRY= $$EXPTIME( LIFETIME)
  3601   "RTN","XSA PXPSS",218 ,0)
  3602    S INODE=$ $IDXNODE(G LOBAL,"EXP IRY",KEY,E XPIRY)
  3603   "RTN","XSA PXPSS",219 ,0)
  3604    S @VNODE= VALUE
  3605   "RTN","XSA PXPSS",220 ,0)
  3606    S @ENODE= EXPIRY
  3607   "RTN","XSA PXPSS",221 ,0)
  3608    S @INODE= ""
  3609   "RTN","XSA PXPSS",222 ,0)
  3610    Q
  3611   "RTN","XSA PXPSS",223 ,0)
  3612   SAVESKDT(G LOBAL,KEY, SOURCE) ;  Save Subke y Data
  3613   "RTN","XSA PXPSS",224 ,0)
  3614    N SNODE,S UBKEY,SKDN ODE,INODE, SKVALUE,SK COUNT
  3615   "RTN","XSA PXPSS",225 ,0)
  3616    S SNODE=$ $SKNODE(GL OBAL)
  3617   "RTN","XSA PXPSS",226 ,0)
  3618    S SKDNODE =$$DATANOD E(GLOBAL,K EY,"SUBKEY S")
  3619   "RTN","XSA PXPSS",227 ,0)
  3620    S SKCOUNT =$INCREMEN T(@SKDNODE )
  3621   "RTN","XSA PXPSS",228 ,0)
  3622    S SUBKEY= ""
  3623   "RTN","XSA PXPSS",229 ,0)
  3624    F  S SUBK EY=$O(@SNO DE@(SUBKEY )) Q:SUBKE Y=""  D
  3625   "RTN","XSA PXPSS",230 ,0)
  3626    . I $L($G (@SOURCE@( SUBKEY)))> 0 D
  3627   "RTN","XSA PXPSS",231 ,0)
  3628    . . S SKV ALUE=@SOUR CE@(SUBKEY )
  3629   "RTN","XSA PXPSS",232 ,0)
  3630    . . S @SK DNODE@(SKC OUNT,SUBKE Y)=SKVALUE
  3631   "RTN","XSA PXPSS",233 ,0)
  3632    . . I @SN ODE@(SUBKE Y) D  ;thi s subkey i s indexed
  3633   "RTN","XSA PXPSS",234 ,0)
  3634    . . . S I NODE=$$IDX NODE(GLOBA L,SUBKEY,K EY,SKVALUE ,SKCOUNT)
  3635   "RTN","XSA PXPSS",235 ,0)
  3636    . . . S @ INODE=""
  3637   "RTN","XSA PXPSS",236 ,0)
  3638    Q
  3639   "RTN","XSA PXPSS",237 ,0)
  3640   KILLSKDT(G LOBAL,KEY)  ; Kill Su bkey Data
  3641   "RTN","XSA PXPSS",238 ,0)
  3642    N SNODE,S UBKEY,SKDN ODE,INODE, SKVALUE,SK COUNT
  3643   "RTN","XSA PXPSS",239 ,0)
  3644    S SKDNODE =$$DATANOD E(GLOBAL,K EY,"SUBKEY S")
  3645   "RTN","XSA PXPSS",240 ,0)
  3646    S SNODE=$ $SKNODE(GL OBAL)
  3647   "RTN","XSA PXPSS",241 ,0)
  3648    S SKCOUNT =""
  3649   "RTN","XSA PXPSS",242 ,0)
  3650    F  S SKCO UNT=$O(@SK DNODE@(SKC OUNT)) Q:S KCOUNT=""   D
  3651   "RTN","XSA PXPSS",243 ,0)
  3652    . S SUBKE Y=""
  3653   "RTN","XSA PXPSS",244 ,0)
  3654    . F  S SU BKEY=$O(@S KDNODE@(SK COUNT,SUBK EY)) Q:SUB KEY=""  D
  3655   "RTN","XSA PXPSS",245 ,0)
  3656    . . S SKV ALUE=@SKDN ODE@(SKCOU NT,SUBKEY)
  3657   "RTN","XSA PXPSS",246 ,0)
  3658    . . I @SN ODE@(SUBKE Y) D  ; th is subkey  is indexed
  3659   "RTN","XSA PXPSS",247 ,0)
  3660    . . . S I NODE=$$IDX NODE(GLOBA L,SUBKEY,K EY,SKVALUE ,SKCOUNT)
  3661   "RTN","XSA PXPSS",248 ,0)
  3662    . . . K @ INODE
  3663   "RTN","XSA PXPSS",249 ,0)
  3664    K @SKDNOD E
  3665   "RTN","XSA PXPSS",250 ,0)
  3666    Q
  3667   "RTN","XSA PXPSS",251 ,0)
  3668   SUBNODE(RO OT,TARGET)  ; Determi ne if the  target is  a subnode  of root
  3669   "RTN","XSA PXPSS",252 ,0)
  3670    N RES,IDX ,ROOTSUB,T ARGETSUB
  3671   "RTN","XSA PXPSS",253 ,0)
  3672    I $$GETGN AME(ROOT)' =$$GETGNAM E(TARGET)  Q 0
  3673   "RTN","XSA PXPSS",254 ,0)
  3674    S RES=1
  3675   "RTN","XSA PXPSS",255 ,0)
  3676    S ROOTSUB =$$GETSUBS (ROOT)
  3677   "RTN","XSA PXPSS",256 ,0)
  3678    S TARGETS UB=$$GETSU BS(TARGET)
  3679   "RTN","XSA PXPSS",257 ,0)
  3680    Q (ROOTSU B=$P(TARGE TSUB,"^",1 ,$L(ROOTSU B,"^")))
  3681   "RTN","XSA PXPSS",258 ,0)
  3682   LEAFSUBS(R OOT,TARGET ) ; Return  all nodes  of target  that are  children o f root
  3683   "RTN","XSA PXPSS",259 ,0)
  3684    N SUBS,SU BI,SUBQ,RO OTLEN,ROOT SUB,TARGET SUB,TARGET LEN
  3685   "RTN","XSA PXPSS",260 ,0)
  3686    S ROOTSUB =$$GETSUBS (ROOT)
  3687   "RTN","XSA PXPSS",261 ,0)
  3688    S TARGETS UB=$$GETSU BS(TARGET)
  3689   "RTN","XSA PXPSS",262 ,0)
  3690    S ROOTLEN =$L(ROOTSU B,"^")
  3691   "RTN","XSA PXPSS",263 ,0)
  3692    S TARGETL EN=$L(TARG ETSUB,"^")
  3693   "RTN","XSA PXPSS",264 ,0)
  3694    I '$$SUBN ODE(ROOT,T ARGET) Q " "
  3695   "RTN","XSA PXPSS",265 ,0)
  3696    Q $P(TARG ETSUB,"^", ROOTLEN+1, TARGETLEN)
  3697   "RTN","XSA PXPSS",266 ,0)
  3698   REMOVE(GLO BAL,KEY) ;  Remove a  cache entr y (should  not be cal led direct ly outside  this rout ine)
  3699   "RTN","XSA PXPSS",267 ,0)
  3700    D KILLSKD T(GLOBAL,K EY)
  3701   "RTN","XSA PXPSS",268 ,0)
  3702    S VNODE=$ $DATANODE( GLOBAL,KEY ,"VALUE")
  3703   "RTN","XSA PXPSS",269 ,0)
  3704    S ENODE=$ $DATANODE( GLOBAL,KEY ,"EXPIRY")
  3705   "RTN","XSA PXPSS",270 ,0)
  3706    S EXPIRY= @ENODE
  3707   "RTN","XSA PXPSS",271 ,0)
  3708    S INODE=$ $IDXNODE(G LOBAL,"EXP IRY",KEY,E XPIRY)
  3709   "RTN","XSA PXPSS",272 ,0)
  3710    K @INODE
  3711   "RTN","XSA PXPSS",273 ,0)
  3712    K @ENODE
  3713   "RTN","XSA PXPSS",274 ,0)
  3714    K @VNODE
  3715   "RTN","XSA PXPSS",275 ,0)
  3716    Q
  3717   "RTN","XSA PXPSS",276 ,0)
  3718   GETSUBS(ST R) ; Provi ded with a  global re ference in  string fo rm, return  the subsc ripts part  as caret  delimited  list of su bscripts
  3719   "RTN","XSA PXPSS",277 ,0)
  3720    N TMP,RES ,I,TOKEN,I NQUOTE,CHA R,STRLEN
  3721   "RTN","XSA PXPSS",278 ,0)
  3722    I $L(STR, "(")=0 Q S TR
  3723   "RTN","XSA PXPSS",279 ,0)
  3724    S TMP=$P( STR,"(",2)
  3725   "RTN","XSA PXPSS",280 ,0)
  3726    S TMP=$P( TMP,")",1, $L(TMP,")" )-1)
  3727   "RTN","XSA PXPSS",281 ,0)
  3728    S RES=""
  3729   "RTN","XSA PXPSS",282 ,0)
  3730    S TOKEN=" "
  3731   "RTN","XSA PXPSS",283 ,0)
  3732    S INQUOTE =0
  3733   "RTN","XSA PXPSS",284 ,0)
  3734    S LASTCHA R=""
  3735   "RTN","XSA PXPSS",285 ,0)
  3736    S STRLEN= $L(TMP)
  3737   "RTN","XSA PXPSS",286 ,0)
  3738    F I=1:1:S TRLEN D
  3739   "RTN","XSA PXPSS",287 ,0)
  3740    . S CHAR= $E(TMP,I,I )
  3741   "RTN","XSA PXPSS",288 ,0)
  3742    . I CHAR= """" S INQ UOTE='INQU OTE
  3743   "RTN","XSA PXPSS",289 ,0)
  3744    . I ((CHA R=",")&('I NQUOTE))!( I=STRLEN)  D
  3745   "RTN","XSA PXPSS",290 ,0)
  3746    . . I (I= STRLEN)&'( CHAR="""")  S TOKEN=T OKEN_CHAR
  3747   "RTN","XSA PXPSS",291 ,0)
  3748    . . I $L( RES)>0 S R ES=RES_"^"
  3749   "RTN","XSA PXPSS",292 ,0)
  3750    . . S RES =RES_TOKEN
  3751   "RTN","XSA PXPSS",293 ,0)
  3752    . . S TOK EN=""
  3753   "RTN","XSA PXPSS",294 ,0)
  3754    . I INQUO TE&'(CHAR= """") S TO KEN=TOKEN_ CHAR
  3755   "RTN","XSA PXPSS",295 ,0)
  3756    . I ('INQ UOTE)&'("  ,"""[CHAR)  S TOKEN=T OKEN_CHAR
  3757   "RTN","XSA PXPSS",296 ,0)
  3758    . I (INQU OTE)&((CHA R="""")&(L ASTCHAR="" "")) S TOK EN=TOKEN_C HAR
  3759   "RTN","XSA PXPSS",297 ,0)
  3760    . S LASTC HAR=CHAR
  3761   "RTN","XSA PXPSS",298 ,0)
  3762    Q RES
  3763   "RTN","XSA PXPSS",299 ,0)
  3764   GETGNAME(S TR) ; Prov ided with  a global r eference a s a string  return th e global n ame
  3765   "RTN","XSA PXPSS",300 ,0)
  3766    N TMP
  3767   "RTN","XSA PXPSS",301 ,0)
  3768    I $L(STR, "(")=0 Q S TR
  3769   "RTN","XSA PXPSS",302 ,0)
  3770    Q $P(STR, "(",1)
  3771   "RTN","XSA PXPSS",303 ,0)
  3772   EXPTIME(LI FETIME) ;  For a give n lifetime  in millis econds cal culate an  appropiate  expiry ti me in $h f ormat, pas s -1 for n on expirin g
  3773   "RTN","XSA PXPSS",304 ,0)
  3774    N NOW,DAY ,TIME,LIFE SEC,MAXTIM E
  3775   "RTN","XSA PXPSS",305 ,0)
  3776    I LIFETIM E<0 Q "999 999,0"
  3777   "RTN","XSA PXPSS",306 ,0)
  3778    S NOW=$H
  3779   "RTN","XSA PXPSS",307 ,0)
  3780    S DAY=$P( NOW,",",1)
  3781   "RTN","XSA PXPSS",308 ,0)
  3782    S TIME=$P (NOW,",",2 )
  3783   "RTN","XSA PXPSS",309 ,0)
  3784    S LIFESEC =LIFETIME\ 1000
  3785   "RTN","XSA PXPSS",310 ,0)
  3786    S MAXTIME =60*60*24
  3787   "RTN","XSA PXPSS",311 ,0)
  3788    S DAY=DAY +(LIFESEC\ MAXTIME)
  3789   "RTN","XSA PXPSS",312 ,0)
  3790    S TIME=TI ME+(LIFESE C#MAXTIME)
  3791   "RTN","XSA PXPSS",313 ,0)
  3792    Q DAY_"," _TIME
  3793   "RTN","XSA PXPSS",314 ,0)
  3794   EXPGONE(HV ALUE) ; Ch eck if an  expirty ti me (in $H  format) ha s already  passed
  3795   "RTN","XSA PXPSS",315 ,0)
  3796    N NOW,DAY ,TIME,TEST DAY,TESTTI ME,RES
  3797   "RTN","XSA PXPSS",316 ,0)
  3798    S NOW=$H
  3799   "RTN","XSA PXPSS",317 ,0)
  3800    S DAY=$P( NOW,",",1)
  3801   "RTN","XSA PXPSS",318 ,0)
  3802    S TIME=$P (NOW,",",2 )
  3803   "RTN","XSA PXPSS",319 ,0)
  3804    S TESTDAY =$P(HVALUE ,",",1)
  3805   "RTN","XSA PXPSS",320 ,0)
  3806    S TESTTIM E=$P(HVALU E,",",2)
  3807   "RTN","XSA PXPSS",321 ,0)
  3808    S RES=0
  3809   "RTN","XSA PXPSS",322 ,0)
  3810    IF TESTDA Y<DAY S RE S=1
  3811   "RTN","XSA PXPSS",323 ,0)
  3812    IF (TESTD AY=DAY)&(T ESTTIME<TI ME) S RES= 1
  3813   "RTN","XSA PXPSS",324 ,0)
  3814    Q RES
  3815   "RTN","XSA PXPSS",325 ,0)
  3816   DATANODE(G LOBAL,KEY, KEYTYPE,SU BKEY) ; Fi nd data gl obal for g iven subsc ript and s ubkey
  3817   "RTN","XSA PXPSS",326 ,0)
  3818    N REF,KSU B,SKDNODE, SKCOUNT,FO UND
  3819   "RTN","XSA PXPSS",327 ,0)
  3820    S REF=$$D ATAGLOB(GL OBAL)
  3821   "RTN","XSA PXPSS",328 ,0)
  3822    S KSUB=$$ KEYSUBS(KE Y)
  3823   "RTN","XSA PXPSS",329 ,0)
  3824    S REF=REF _KSUB_","" "_KEYTYPE_ """"
  3825   "RTN","XSA PXPSS",330 ,0)
  3826    I $L($G(S UBKEY))&(K EYTYPE="SU BKEYS") D
  3827   "RTN","XSA PXPSS",331 ,0)
  3828    . S SKDNO DE=REF_")"
  3829   "RTN","XSA PXPSS",332 ,0)
  3830    . S SKCOU NT=""
  3831   "RTN","XSA PXPSS",333 ,0)
  3832    . S FOUND =0
  3833   "RTN","XSA PXPSS",334 ,0)
  3834    . F  S SK COUNT=$O(@ SKDNODE@(S KCOUNT),-1 ) Q:((SKCO UNT="")!(F OUND=1))   D
  3835   "RTN","XSA PXPSS",335 ,0)
  3836    . . I $D( @SKDNODE@( SKCOUNT,SU BKEY)) D
  3837   "RTN","XSA PXPSS",336 ,0)
  3838    . . . S R EF=REF_"," _SKCOUNT_" ,"""_SUBKE Y_""""
  3839   "RTN","XSA PXPSS",337 ,0)
  3840    . . . S F OUND=1
  3841   "RTN","XSA PXPSS",338 ,0)
  3842    S REF=REF _")"
  3843   "RTN","XSA PXPSS",339 ,0)
  3844    Q REF
  3845   "RTN","XSA PXPSS",340 ,0)
  3846   IDXNODE(GL OBAL,IDXNA ME,KEY,IDX ENTRY,IDXC OUNT) ; Fi nd index n ode
  3847   "RTN","XSA PXPSS",341 ,0)
  3848    N REF,KSU B,HAVEIDX
  3849   "RTN","XSA PXPSS",342 ,0)
  3850    S REF=$$I DXGLOB(GLO BAL,IDXNAM E)
  3851   "RTN","XSA PXPSS",343 ,0)
  3852    S KSUB=$$ KEYSUBS(KE Y)
  3853   "RTN","XSA PXPSS",344 ,0)
  3854    S HAVEIDX =$L($G(IDX COUNT))>0
  3855   "RTN","XSA PXPSS",345 ,0)
  3856    I HAVEIDX  S REF=REF _""""_IDXE NTRY_"""," _KSUB_","_ IDXCOUNT_" )"
  3857   "RTN","XSA PXPSS",346 ,0)
  3858    I 'HAVEID X S REF=RE F_""""_IDX ENTRY_""", "_KSUB_")"
  3859   "RTN","XSA PXPSS",347 ,0)
  3860    Q REF
  3861   "RTN","XSA PXPSS",348 ,0)
  3862   KEYSUBS(KE Y) ; Parse  Key subsc ripts as p assed from  JS code i n ^ delimi ted list f ormat
  3863   "RTN","XSA PXPSS",349 ,0)
  3864    N SUBI,SU BS
  3865   "RTN","XSA PXPSS",350 ,0)
  3866    S SUBS=""
  3867   "RTN","XSA PXPSS",351 ,0)
  3868    F SUBI=1: 1:$L(KEY," ^") D
  3869   "RTN","XSA PXPSS",352 ,0)
  3870    . S SUBS= SUBS_""""_ $P(KEY,"^" ,SUBI)_""" ,"
  3871   "RTN","XSA PXPSS",353 ,0)
  3872    Q $E(SUBS ,1,$L(SUBS )-1)
  3873   "RTN","XSA PXPSS",354 ,0)
  3874   DATAGLOB(G LOBAL) ; C onstruct b ase of dat a global
  3875   "RTN","XSA PXPSS",355 ,0)
  3876    N REF,PAR
  3877   "RTN","XSA PXPSS",356 ,0)
  3878    S PAR=$$P ARGLOB(GLO BAL)
  3879   "RTN","XSA PXPSS",357 ,0)
  3880    S REF=PAR _"""DATA"" ,"
  3881   "RTN","XSA PXPSS",358 ,0)
  3882    Q REF
  3883   "RTN","XSA PXPSS",359 ,0)
  3884   IDXGLOB(GL OBAL,IDXNA ME) ; Cons truct base  of index  global
  3885   "RTN","XSA PXPSS",360 ,0)
  3886    N REF,PAR
  3887   "RTN","XSA PXPSS",361 ,0)
  3888    S PAR=$$P ARGLOB(GLO BAL)
  3889   "RTN","XSA PXPSS",362 ,0)
  3890    S REF=PAR _"""IDX"", """_IDXNAM E_""","
  3891   "RTN","XSA PXPSS",363 ,0)
  3892    Q REF
  3893   "RTN","XSA PXPSS",364 ,0)
  3894   IDXBASE(GL OBAL,IDXNA ME) ; Refe rence to p arent inde x node
  3895   "RTN","XSA PXPSS",365 ,0)
  3896     N REF
  3897   "RTN","XSA PXPSS",366 ,0)
  3898     S REF=$$ IDXGLOB(GL OBAL,IDXNA ME)
  3899   "RTN","XSA PXPSS",367 ,0)
  3900     S REF=$E (REF,1,$L( REF)-1)_") "
  3901   "RTN","XSA PXPSS",368 ,0)
  3902     Q REF
  3903   "RTN","XSA PXPSS",369 ,0)
  3904   TIMENODE(G LOBAL,TIME ) ; Refere nce to a t ime node b elow the b ase expiry  index nod e
  3905   "RTN","XSA PXPSS",370 ,0)
  3906     N REF
  3907   "RTN","XSA PXPSS",371 ,0)
  3908     S REF=$$ IDXGLOB(GL OBAL,"EXPI RY")
  3909   "RTN","XSA PXPSS",372 ,0)
  3910     S REF=RE F_""""_TIM E_""")"
  3911   "RTN","XSA PXPSS",373 ,0)
  3912     Q REF
  3913   "RTN","XSA PXPSS",374 ,0)
  3914   IVALNODE(G LOBAL,INDE X,IVAL) ;  Reference  to a time  node below  the base  expiry ind ex node
  3915   "RTN","XSA PXPSS",375 ,0)
  3916     N REF
  3917   "RTN","XSA PXPSS",376 ,0)
  3918     S REF=$$ IDXGLOB(GL OBAL,INDEX )
  3919   "RTN","XSA PXPSS",377 ,0)
  3920     S REF=RE F_""""_IVA L_""")"
  3921   "RTN","XSA PXPSS",378 ,0)
  3922     Q REF
  3923   "RTN","XSA PXPSS",379 ,0)
  3924   METAGLOB(G LOBAL) ; C onstruct b ase of met a global
  3925   "RTN","XSA PXPSS",380 ,0)
  3926     N REF,PA R
  3927   "RTN","XSA PXPSS",381 ,0)
  3928     S PAR=$$ PARGLOB(GL OBAL)
  3929   "RTN","XSA PXPSS",382 ,0)
  3930     S REF=PA R_"""META" ","
  3931   "RTN","XSA PXPSS",383 ,0)
  3932     Q REF
  3933   "RTN","XSA PXPSS",384 ,0)
  3934   SKNODE(GLO BAL) ; Ref erence to  subkey met a node
  3935   "RTN","XSA PXPSS",385 ,0)
  3936     N REF
  3937   "RTN","XSA PXPSS",386 ,0)
  3938     S REF=$$ METAGLOB(G LOBAL)
  3939   "RTN","XSA PXPSS",387 ,0)
  3940     S REF=RE F_"""SUBKE Y"")"
  3941   "RTN","XSA PXPSS",388 ,0)
  3942     Q REF
  3943   "RTN","XSA PXPSS",389 ,0)
  3944   REAPNODE(G LOBAL) ; R eference t o next rea p node
  3945   "RTN","XSA PXPSS",390 ,0)
  3946     N REF
  3947   "RTN","XSA PXPSS",391 ,0)
  3948     S REF=$$ METAGLOB(G LOBAL)
  3949   "RTN","XSA PXPSS",392 ,0)
  3950     S REF=RE F_"""REAP" ")"
  3951   "RTN","XSA PXPSS",393 ,0)
  3952     Q REF
  3953   "RTN","XSA PXPSS",394 ,0)
  3954    ;Produce  partial gl obal refer ence of th e form ^X( "S1","S2",
  3955   "RTN","XSA PXPSS",395 ,0)
  3956   PARGLOB(GL OBAL) ; Co nstruct th e parent p art of glo bal (from  value in V SA server  config)
  3957   "RTN","XSA PXPSS",396 ,0)
  3958     N POINTE R,GNAME,SU BS,SUBI
  3959   "RTN","XSA PXPSS",397 ,0)
  3960     S GNAME= "^"_$P(GLO BAL,"|",1)
  3961   "RTN","XSA PXPSS",398 ,0)
  3962     S SUBS=$ P(GLOBAL," |",2)
  3963   "RTN","XSA PXPSS",399 ,0)
  3964     S POINTE R=GNAME_"( "
  3965   "RTN","XSA PXPSS",400 ,0)
  3966     F SUBI=1 :1:$L(SUBS ,",") D
  3967   "RTN","XSA PXPSS",401 ,0)
  3968     . S POIN TER=POINTE R_""""_$P( SUBS,",",S UBI)_""","
  3969   "RTN","XSA PXPSS",402 ,0)
  3970     Q POINTE R
  3971   "RTN","XSA PXPSS",403 ,0)
  3972   FILEMAN(GL OBAL) ; Up date filem an details  for cache  global no de
  3973   "RTN","XSA PXPSS",404 ,0)
  3974    ; Bail if  this is n ot a VistA  system
  3975   "RTN","XSA PXPSS",405 ,0)
  3976    Q:'$D(^RO UTINE("DIL F"))
  3977   "RTN","XSA PXPSS",406 ,0)
  3978    N ROOTNOD E,CRDATE,K EEPDATE,IN ITDONE,GNA ME,GSUBS,S UB
  3979   "RTN","XSA PXPSS",407 ,0)
  3980    S ROOTNOD E=$$PARGLO B(GLOBAL)_ ")"
  3981   "RTN","XSA PXPSS",408 ,0)
  3982    S GNAME=$ $GETGNAME( ROOTNODE)
  3983   "RTN","XSA PXPSS",409 ,0)
  3984    S GSUBS=$ $GETSUBS(R OOTNODE)
  3985   "RTN","XSA PXPSS",410 ,0)
  3986    S SUB=$P( GSUBS,"^", 1)
  3987   "RTN","XSA PXPSS",411 ,0)
  3988    S ROOTNOD E=GNAME_"( """_SUB_"" ",0)"
  3989   "RTN","XSA PXPSS",412 ,0)
  3990    S INITDON E=$D(@ROOT NODE)
  3991   "RTN","XSA PXPSS",413 ,0)
  3992    I 'INITDO NE D DT^DI LF("T","N" ,.CRDATE)
  3993   "RTN","XSA PXPSS",414 ,0)
  3994    I INITDON E S CRDATE =$P(@ROOTN ODE,"^",2)
  3995   "RTN","XSA PXPSS",415 ,0)
  3996    D DT^DILF ("T","N+36 5",.KEEPDA TE)
  3997   "RTN","XSA PXPSS",416 ,0)
  3998    S @ROOTNO DE=KEEPDAT E_"^"_CRDA TE_"^VistA  Persisten t State St ore: DO NO T Delete w hile Vists .JS is run ning"
  3999   "RTN","XSA PXPSS",417 ,0)
  4000    Q
  4001   "RTN","XSA PXPUB")
  4002   0^12^B2379 6589
  4003   "RTN","XSA PXPUB",1,0 )
  4004   XSAPXPUB ; DAL/BNT -  VistA Serv ices Assem bler Publi c Function s;1/27/201 6
  4005   "RTN","XSA PXPUB",2,0 )
  4006    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  4007   "RTN","XSA PXPUB",3,0 )
  4008    ;
  4009   "RTN","XSA PXPUB",4,0 )
  4010    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  4011   "RTN","XSA PXPUB",5,0 )
  4012    ;
  4013   "RTN","XSA PXPUB",6,0 )
  4014    ; Externa l Referenc es           DBIA#
  4015   "RTN","XSA PXPUB",7,0 )
  4016    ; ------- ---------- --           -----
  4017   "RTN","XSA PXPUB",8,0 )
  4018    Q
  4019   "RTN","XSA PXPUB",9,0 )
  4020    ;
  4021   "RTN","XSA PXPUB",10, 0)
  4022    ;-------- ---------- ---------- - Publishe d APIs --- ---------- ---------- --------
  4023   "RTN","XSA PXPUB",11, 0)
  4024    ;
  4025   "RTN","XSA PXPUB",12, 0)
  4026    ;          Refer to  ^XSAPXDn f or documen tation of  these Func tions
  4027   "RTN","XSA PXPUB",13, 0)
  4028    ;                    and the ex pected inp ut and out put
  4029   "RTN","XSA PXPUB",14, 0)
  4030    ;
  4031   "RTN","XSA PXPUB",15, 0)
  4032    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4033   "RTN","XSA PXPUB",16, 0)
  4034    ; VistA S ervices As sembler In ternal Fun ctions
  4035   "RTN","XSA PXPUB",17, 0)
  4036    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4037   "RTN","XSA PXPUB",18, 0)
  4038    ;
  4039   "RTN","XSA PXPUB",19, 0)
  4040   UPD1701(SO URCE,TARGE T) ; Add,  Update or  Delete rec ords from  the XSA DE FINITIONS  file #17.0 1
  4041   "RTN","XSA PXPUB",20, 0)
  4042    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4043   "RTN","XSA PXPUB",21, 0)
  4044    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4045   "RTN","XSA PXPUB",22, 0)
  4046    Q $$UPD17 01^XSAPXL1 (.SOURCE,. TARGET)
  4047   "RTN","XSA PXPUB",23, 0)
  4048    ;
  4049   "RTN","XSA PXPUB",24, 0)
  4050   EXISTS(TAR GET) ; Ret urns 1 if  TARGET exi sts, other wise 0
  4051   "RTN","XSA PXPUB",25, 0)
  4052    Q $S($D(@ TARGET):1, 1:0)
  4053   "RTN","XSA PXPUB",26, 0)
  4054    ;
  4055   "RTN","XSA PXPUB",27, 0)
  4056   SITENAME(S OURCE,TARG ET) ; Get  site names  for liste d site ids
  4057   "RTN","XSA PXPUB",28, 0)
  4058    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4059   "RTN","XSA PXPUB",29, 0)
  4060    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4061   "RTN","XSA PXPUB",30, 0)
  4062    Q $$SITEN AME^XSAPXI NS(.SOURCE ,.TARGET)
  4063   "RTN","XSA PXPUB",31, 0)
  4064    ;
  4065   "RTN","XSA PXPUB",32, 0)
  4066    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4067   "RTN","XSA PXPUB",33, 0)
  4068    ; FileMan  DBS Speci fic Functi ons
  4069   "RTN","XSA PXPUB",34, 0)
  4070    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4071   "RTN","XSA PXPUB",35, 0)
  4072    ;
  4073   "RTN","XSA PXPUB",36, 0)
  4074   GETS(SOURC E,TARGET)  ;
  4075   "RTN","XSA PXPUB",37, 0)
  4076    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4077   "RTN","XSA PXPUB",38, 0)
  4078    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4079   "RTN","XSA PXPUB",39, 0)
  4080    Q $$GETS^ XSAPXL1(.S OURCE,.TAR GET)
  4081   "RTN","XSA PXPUB",40, 0)
  4082    ;
  4083   "RTN","XSA PXPUB",41, 0)
  4084   LIST(SOURC E,TARGET)  ;
  4085   "RTN","XSA PXPUB",42, 0)
  4086    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4087   "RTN","XSA PXPUB",43, 0)
  4088    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4089   "RTN","XSA PXPUB",44, 0)
  4090    Q $$LIST^ XSAPXL1(.S OURCE,.TAR GET)
  4091   "RTN","XSA PXPUB",45, 0)
  4092    ;
  4093   "RTN","XSA PXPUB",46, 0)
  4094    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4095   "RTN","XSA PXPUB",47, 0)
  4096    ; Clinica l Reconcil iation Ser vices
  4097   "RTN","XSA PXPUB",48, 0)
  4098    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4099   "RTN","XSA PXPUB",49, 0)
  4100    ;
  4101   "RTN","XSA PXPUB",50, 0)
  4102   GETPTFL(SO URCE,TARGE T) ;
  4103   "RTN","XSA PXPUB",51, 0)
  4104    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4105   "RTN","XSA PXPUB",52, 0)
  4106    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4107   "RTN","XSA PXPUB",53, 0)
  4108    Q $$GETPT FL^XSAPXCR S(.SOURCE, .TARGET)
  4109   "RTN","XSA PXPUB",54, 0)
  4110    ;
  4111   "RTN","XSA PXPUB",55, 0)
  4112    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4113   "RTN","XSA PXPUB",56, 0)
  4114    ; Access  Control an d IAM Serv ices
  4115   "RTN","XSA PXPUB",57, 0)
  4116    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4117   "RTN","XSA PXPUB",58, 0)
  4118    ;
  4119   "RTN","XSA PXPUB",59, 0)
  4120   LOGIN(SOUR CE,TARGET)  ;
  4121   "RTN","XSA PXPUB",60, 0)
  4122    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4123   "RTN","XSA PXPUB",61, 0)
  4124    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4125   "RTN","XSA PXPUB",62, 0)
  4126    Q $$LOGIN ^XSAPXACC( .SOURCE,.T ARGET)
  4127   "RTN","XSA PXPUB",63, 0)
  4128    ;
  4129   "RTN","XSA PXPUB",64, 0)
  4130   IAMAU(SOUR CE,TARGET)  ; IAM Add  User
  4131   "RTN","XSA PXPUB",65, 0)
  4132    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4133   "RTN","XSA PXPUB",66, 0)
  4134    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4135   "RTN","XSA PXPUB",67, 0)
  4136    Q $$IAMAU ^XSAPXIAM( .SOURCE,.T ARGET)
  4137   "RTN","XSA PXPUB",68, 0)
  4138    ;
  4139   "RTN","XSA PXPUB",69, 0)
  4140   IAMEU(SOUR CE,TARGET)  ; IAM Edi t User
  4141   "RTN","XSA PXPUB",70, 0)
  4142    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4143   "RTN","XSA PXPUB",71, 0)
  4144    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4145   "RTN","XSA PXPUB",72, 0)
  4146    Q $$IAMEU ^XSAPXIAM( .SOURCE,.T ARGET)
  4147   "RTN","XSA PXPUB",73, 0)
  4148    ;
  4149   "RTN","XSA PXPUB",74, 0)
  4150   IAMDU(SOUR CE,TARGET)  ; IAM Dis play User
  4151   "RTN","XSA PXPUB",75, 0)
  4152    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4153   "RTN","XSA PXPUB",76, 0)
  4154    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4155   "RTN","XSA PXPUB",77, 0)
  4156    Q $$IAMDU ^XSAPXIAM( .SOURCE,.T ARGET)
  4157   "RTN","XSA PXPUB",78, 0)
  4158    ;
  4159   "RTN","XSA PXPUB",79, 0)
  4160   IAMFU(SOUR CE,TARGET)  ; IAM Fin d User
  4161   "RTN","XSA PXPUB",80, 0)
  4162    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4163   "RTN","XSA PXPUB",81, 0)
  4164    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4165   "RTN","XSA PXPUB",82, 0)
  4166    Q $$IAMFU ^XSAPXIAM( .SOURCE,.T ARGET)
  4167   "RTN","XSA PXPUB",83, 0)
  4168    ;
  4169   "RTN","XSA PXPUB",84, 0)
  4170   IAMRU(SOUR CE,TARGET)  ; IAM Rea ctivate Us er
  4171   "RTN","XSA PXPUB",85, 0)
  4172    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4173   "RTN","XSA PXPUB",86, 0)
  4174    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4175   "RTN","XSA PXPUB",87, 0)
  4176    Q $$IAMRU ^XSAPXIAM( .SOURCE,.T ARGET)
  4177   "RTN","XSA PXPUB",88, 0)
  4178    ;
  4179   "RTN","XSA PXPUB",89, 0)
  4180   IAMTU(SOUR CE,TARGET)  ; IAM Ter minate Use r
  4181   "RTN","XSA PXPUB",90, 0)
  4182    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4183   "RTN","XSA PXPUB",91, 0)
  4184    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4185   "RTN","XSA PXPUB",92, 0)
  4186    Q $$IAMTU ^XSAPXIAM( .SOURCE,.T ARGET)
  4187   "RTN","XSA PXPUB",93, 0)
  4188    ;
  4189   "RTN","XSA PXPUB",94, 0)
  4190    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4191   "RTN","XSA PXPUB",95, 0)
  4192    ; Remote  Procedure  Call (RPC)  Services
  4193   "RTN","XSA PXPUB",96, 0)
  4194    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4195   "RTN","XSA PXPUB",97, 0)
  4196    ;
  4197   "RTN","XSA PXPUB",98, 0)
  4198   RPCMETA(SO URCE,TARGE T) ;
  4199   "RTN","XSA PXPUB",99, 0)
  4200    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4201   "RTN","XSA PXPUB",100 ,0)
  4202    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4203   "RTN","XSA PXPUB",101 ,0)
  4204    Q $$RPCME TA^XSAPXL1 (.SOURCE,. TARGET)
  4205   "RTN","XSA PXPUB",102 ,0)
  4206    ;
  4207   "RTN","XSA PXPUB",103 ,0)
  4208   RPC(SOURCE ,TARGET) ;
  4209   "RTN","XSA PXPUB",104 ,0)
  4210    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4211   "RTN","XSA PXPUB",105 ,0)
  4212    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4213   "RTN","XSA PXPUB",106 ,0)
  4214    Q $$RPC^X SAPXRPC(.S OURCE,.TAR GET)
  4215   "RTN","XSA PXPUB",107 ,0)
  4216    ;
  4217   "RTN","XSA PXPUB",108 ,0)
  4218    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4219   "RTN","XSA PXPUB",109 ,0)
  4220    ; Externa l (Non-VSA ) Function  Call Serv ices
  4221   "RTN","XSA PXPUB",110 ,0)
  4222    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4223   "RTN","XSA PXPUB",111 ,0)
  4224    ;
  4225   "RTN","XSA PXPUB",112 ,0)
  4226   FUNCTION(S OURCE,TARG ET) ;
  4227   "RTN","XSA PXPUB",113 ,0)
  4228    N XSAERR, RESULTS,XS ASYM,XSASY MGR,XSASYM ID
  4229   "RTN","XSA PXPUB",114 ,0)
  4230    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4231   "RTN","XSA PXPUB",115 ,0)
  4232    Q $$FUNCT ION^XSAPXL 1(.SOURCE, TARGET)
  4233   "RTN","XSA PXPUB",116 ,0)
  4234    ;
  4235   "RTN","XSA PXPUB",117 ,0)
  4236    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4237   "RTN","XSA PXPUB",118 ,0)
  4238    ; VISTA S erver Pers istent Sta te (PS) Ca che servic es
  4239   "RTN","XSA PXPUB",119 ,0)
  4240    ; ------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  4241   "RTN","XSA PXPUB",120 ,0)
  4242    ;
  4243   "RTN","XSA PXPUB",121 ,0)
  4244   PSINIT(SOU RCE,TARGET ) ;
  4245   "RTN","XSA PXPUB",122 ,0)
  4246    N XSAERR, RESULTS,XS ASYM
  4247   "RTN","XSA PXPUB",123 ,0)
  4248    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4249   "RTN","XSA PXPUB",124 ,0)
  4250    Q $$INIT^ XSAPXPSS(. SOURCE,.TA RGET)
  4251   "RTN","XSA PXPUB",125 ,0)
  4252    ;
  4253   "RTN","XSA PXPUB",126 ,0)
  4254   PSSAVE(SOU RCE,TARGET ) ;
  4255   "RTN","XSA PXPUB",127 ,0)
  4256    N XSAERR, RESULTS,XS ASYM
  4257   "RTN","XSA PXPUB",128 ,0)
  4258    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4259   "RTN","XSA PXPUB",129 ,0)
  4260    Q $$SAVE^ XSAPXPSS(. SOURCE,.TA RGET)
  4261   "RTN","XSA PXPUB",130 ,0)
  4262    ;
  4263   "RTN","XSA PXPUB",131 ,0)
  4264   PSLOAD(SOU RCE,TARGET ) ;
  4265   "RTN","XSA PXPUB",132 ,0)
  4266    N XSAERR, RESULTS,XS ASYM
  4267   "RTN","XSA PXPUB",133 ,0)
  4268    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4269   "RTN","XSA PXPUB",134 ,0)
  4270    Q $$LOAD^ XSAPXPSS(. SOURCE,.TA RGET)
  4271   "RTN","XSA PXPUB",135 ,0)
  4272    ;
  4273   "RTN","XSA PXPUB",136 ,0)
  4274   PSDELETE(S OURCE,TARG ET) ;
  4275   "RTN","XSA PXPUB",137 ,0)
  4276    N XSAERR, RESULTS,XS ASYM
  4277   "RTN","XSA PXPUB",138 ,0)
  4278    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4279   "RTN","XSA PXPUB",139 ,0)
  4280    Q $$DELET E^XSAPXPSS (.SOURCE,. TARGET)
  4281   "RTN","XSA PXPUB",140 ,0)
  4282    ;
  4283   "RTN","XSA PXPUB",141 ,0)
  4284   PSREAP(SOU RCE,TARGET ) ;
  4285   "RTN","XSA PXPUB",142 ,0)
  4286    N XSAERR, RESULTS,XS ASYM
  4287   "RTN","XSA PXPUB",143 ,0)
  4288    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4289   "RTN","XSA PXPUB",144 ,0)
  4290    Q $$REAP^ XSAPXPSS(. SOURCE,.TA RGET)
  4291   "RTN","XSA PXPUB",145 ,0)
  4292    ;
  4293   "RTN","XSA PXPUB",146 ,0)
  4294   PSTOUCH(SO URCE,TARGE T) ;
  4295   "RTN","XSA PXPUB",147 ,0)
  4296    N XSAERR, RESULTS,XS ASYM
  4297   "RTN","XSA PXPUB",148 ,0)
  4298    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4299   "RTN","XSA PXPUB",149 ,0)
  4300    Q $$TOUCH ^XSAPXPSS( .SOURCE,.T ARGET)
  4301   "RTN","XSA PXPUB",150 ,0)
  4302    ;
  4303   "RTN","XSA PXPUB",151 ,0)
  4304   PSADDSK(SO URCE,TARGE T) ;
  4305   "RTN","XSA PXPUB",152 ,0)
  4306    N XSAERR, RESULTS,XS ASYM
  4307   "RTN","XSA PXPUB",153 ,0)
  4308    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4309   "RTN","XSA PXPUB",154 ,0)
  4310    Q $$ADDSK EY^XSAPXPS S(.SOURCE, .TARGET)
  4311   "RTN","XSA PXPUB",155 ,0)
  4312    ;
  4313   "RTN","XSA PXPUB",156 ,0)
  4314   PSRDIDX(SO URCE,TARGE T) ;
  4315   "RTN","XSA PXPUB",157 ,0)
  4316    N XSAERR, RESULTS,XS ASYM
  4317   "RTN","XSA PXPUB",158 ,0)
  4318    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4319   "RTN","XSA PXPUB",159 ,0)
  4320    Q $$READI DX^XSAPXPS S(.SOURCE, .TARGET)
  4321   "RTN","XSA PXPUB",160 ,0)
  4322    ;
  4323   "RTN","XSA PXPUB",161 ,0)
  4324   PSFILTER(S OURCE,TARG ET) ;
  4325   "RTN","XSA PXPUB",162 ,0)
  4326    N XSAERR, RESULTS,XS ASYM
  4327   "RTN","XSA PXPUB",163 ,0)
  4328    D INIT^XS APXUTL(.SO URCE,.TARG ET)
  4329   "RTN","XSA PXPUB",164 ,0)
  4330    Q $$FILTE R^XSAPXPSS (.SOURCE,. TARGET)
  4331   "RTN","XSA PXPUB",165 ,0)
  4332    ;
  4333   "RTN","XSA PXRPC")
  4334   0^8^B10844 955
  4335   "RTN","XSA PXRPC",1,0 )
  4336   XSAPXRPC ; DAL/BNT -  VistA Serv ices Assem bler RPC W rapping Fu nctions;1/ 27/2016
  4337   "RTN","XSA PXRPC",2,0 )
  4338    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  4339   "RTN","XSA PXRPC",3,0 )
  4340    ;
  4341   "RTN","XSA PXRPC",4,0 )
  4342    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  4343   "RTN","XSA PXRPC",5,0 )
  4344    ;
  4345   "RTN","XSA PXRPC",6,0 )
  4346    ; Externa l Referenc es           DBIA#
  4347   "RTN","XSA PXRPC",7,0 )
  4348    ; ------- ---------- --           -----
  4349   "RTN","XSA PXRPC",8,0 )
  4350    ; CRCONTX T^XWBSEC                4053
  4351   "RTN","XSA PXRPC",9,0 )
  4352    Q
  4353   "RTN","XSA PXRPC",10, 0)
  4354    ;
  4355   "RTN","XSA PXRPC",11, 0)
  4356    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  4357   "RTN","XSA PXRPC",12, 0)
  4358    ;
  4359   "RTN","XSA PXRPC",13, 0)
  4360   RPC(SOURCE ,TARGET) ;
  4361   "RTN","XSA PXRPC",14, 0)
  4362    N DX,DY,R PC0,RPCIEN ,TAG,ROU
  4363   "RTN","XSA PXRPC",15, 0)
  4364    N XSAR,XS ASEC,XSAWR AP,XSAPTYP E,XRTN,XSA RA
  4365   "RTN","XSA PXRPC",16, 0)
  4366    N XSAVER, XSADATA,XS ASYSJ,XSAN AME,XQMES
  4367   "RTN","XSA PXRPC",17, 0)
  4368    ; input v alidation
  4369   "RTN","XSA PXRPC",18, 0)
  4370    S XSANAME =$G(@SOURC E@("RPC NA ME"))
  4371   "RTN","XSA PXRPC",19, 0)
  4372    I XSANAME ="" D  Q $ $RESULT^XS APXUTL()
  4373   "RTN","XSA PXRPC",20, 0)
  4374    . D ERROR ^XSAPXERR( 182001,"[N o RPC]","" ,"")
  4375   "RTN","XSA PXRPC",21, 0)
  4376    ;
  4377   "RTN","XSA PXRPC",22, 0)
  4378    ; This sh ouldn't ha ppen with  session st ate
  4379   "RTN","XSA PXRPC",23, 0)
  4380    I $G(DUZ) ="" S DUZ= $G(@SOURCE @("DUZ"))  I DUZ="" D   Q $$RESU LT^XSAPXUT L()
  4381   "RTN","XSA PXRPC",24, 0)
  4382    . D ERROR ^XSAPXERR( 182301,"[I nvalid Use r ID]","", "")
  4383   "RTN","XSA PXRPC",25, 0)
  4384    ;
  4385   "RTN","XSA PXRPC",26, 0)
  4386    ;
  4387   "RTN","XSA PXRPC",27, 0)
  4388    I $D(^XWB (8994,"B", $G(XSANAME )))=0 D  Q  $$RESULT^ XSAPXUTL()
  4389   "RTN","XSA PXRPC",28, 0)
  4390    . D ERROR ^XSAPXERR( 182002,XSA NAME,XSANA ME,"")
  4391   "RTN","XSA PXRPC",29, 0)
  4392    ;
  4393   "RTN","XSA PXRPC",30, 0)
  4394    I $D(^XWB (8994,"B", XSANAME))= 10 S RPCIE N=+$O(^XWB (8994,"B", XSANAME,"" ))
  4395   "RTN","XSA PXRPC",31, 0)
  4396    ;
  4397   "RTN","XSA PXRPC",32, 0)
  4398    ; -- get  zero node
  4399   "RTN","XSA PXRPC",33, 0)
  4400    S RPC0=$G (^XWB(8994 ,RPCIEN,0) )
  4401   "RTN","XSA PXRPC",34, 0)
  4402    ;
  4403   "RTN","XSA PXRPC",35, 0)
  4404    ; -- make  sure ther e is data  on node
  4405   "RTN","XSA PXRPC",36, 0)
  4406    I RPC0=""  D  Q $$RE SULT^XSAPX UTL()
  4407   "RTN","XSA PXRPC",37, 0)
  4408    . D ERROR ^XSAPXERR( 182003,XSA NAME,XSANA ME,"")
  4409   "RTN","XSA PXRPC",38, 0)
  4410    ;
  4411   "RTN","XSA PXRPC",39, 0)
  4412    ; -- make  sure x-re f is not c orrupt and  found the  wrong ent ry
  4413   "RTN","XSA PXRPC",40, 0)
  4414    I XSANAME '=$P(RPC0, U) D  Q $$ RESULT^XSA PXUTL()
  4415   "RTN","XSA PXRPC",41, 0)
  4416    . N PARAM S S PARAMS (1)=XSANAM E,PARAMS(2 )=$P(RPC0, U)
  4417   "RTN","XSA PXRPC",42, 0)
  4418    . D ERROR ^XSAPXERR( 182008,XSA NAME,.PARA MS,"")
  4419   "RTN","XSA PXRPC",43, 0)
  4420    ;
  4421   "RTN","XSA PXRPC",44, 0)
  4422    ; -- chec k inactive  flag
  4423   "RTN","XSA PXRPC",45, 0)
  4424    I $P(RPC0 ,U,6)=1!($ P(RPC0,U,6 )=2) D  Q  $$RESULT^X SAPXUTL()
  4425   "RTN","XSA PXRPC",46, 0)
  4426    . D ERROR ^XSAPXERR( 182004,XSA NAME,XSANA ME,"")
  4427   "RTN","XSA PXRPC",47, 0)
  4428    ;
  4429   "RTN","XSA PXRPC",48, 0)
  4430    ; -- if n ot already  performed , check ve rsion, env ironment a nd set re- auth check  flag
  4431   "RTN","XSA PXRPC",49, 0)
  4432    ;
  4433   "RTN","XSA PXRPC",50, 0)
  4434    ; -- reau thenticati on checks
  4435   "RTN","XSA PXRPC",51, 0)
  4436    ; -- reau thenticate  user base d on type  (i.e. DUZ, AV,VPID,CC OW,APPPROX Y)
  4437   "RTN","XSA PXRPC",52, 0)
  4438    ; -- if a pplication  proxy use r, check i f allowed  to run RPC
  4439   "RTN","XSA PXRPC",53, 0)
  4440    ;
  4441   "RTN","XSA PXRPC",54, 0)
  4442    ; -- set  context
  4443   "RTN","XSA PXRPC",55, 0)
  4444    D CRCONTX T^XWBSEC(. XSASEC,$G( @SOURCE@(" RPC CONTEX T")))
  4445   "RTN","XSA PXRPC",56, 0)
  4446    I '+XSASE C D  Q $$R ESULT^XSAP XUTL()
  4447   "RTN","XSA PXRPC",57, 0)
  4448    . N PARAM S S PARAMS (1)=$G(XQM ES)
  4449   "RTN","XSA PXRPC",58, 0)
  4450    . D ERROR ^XSAPXERR( 182005,XSA NAME,.PARA MS,"")
  4451   "RTN","XSA PXRPC",59, 0)
  4452    ;
  4453   "RTN","XSA PXRPC",60, 0)
  4454    ; -- chec k if appro priate con text creat ed
  4455   "RTN","XSA PXRPC",61, 0)
  4456    ;
  4457   "RTN","XSA PXRPC",62, 0)
  4458    ;
  4459   "RTN","XSA PXRPC",63, 0)
  4460    ; -- setu p info nee ded for RP C executio n
  4461   "RTN","XSA PXRPC",64, 0)
  4462    S TAG=$P( RPC0,U,2)
  4463   "RTN","XSA PXRPC",65, 0)
  4464    S ROU=$P( RPC0,U,3)
  4465   "RTN","XSA PXRPC",66, 0)
  4466    S XSAPTYP E=$P(RPC0, U,4)
  4467   "RTN","XSA PXRPC",67, 0)
  4468    S XSAWRAP =$P(RPC0,U ,8)
  4469   "RTN","XSA PXRPC",68, 0)
  4470    ;
  4471   "RTN","XSA PXRPC",69, 0)
  4472    ; -- setu p timeout  info
  4473   "RTN","XSA PXRPC",70, 0)
  4474    S XSADATA ("XSA","TI MED OUT")= 0
  4475   "RTN","XSA PXRPC",71, 0)
  4476    S XSADATA ("XSA","ST ART")=$H
  4477   "RTN","XSA PXRPC",72, 0)
  4478    ;
  4479   "RTN","XSA PXRPC",73, 0)
  4480    ; Parse t he PARAMS  global and  build par ams for me thod signa ture
  4481   "RTN","XSA PXRPC",74, 0)
  4482    D GETPARM S^XSAPXUTL (.SOURCE,R OU,.XSADAT A)
  4483   "RTN","XSA PXRPC",75, 0)
  4484    ;
  4485   "RTN","XSA PXRPC",76, 0)
  4486    ; -- Impl ement RPC  Versioning  later
  4487   "RTN","XSA PXRPC",77, 0)
  4488    ;
  4489   "RTN","XSA PXRPC",78, 0)
  4490    ; -- buil d method s ignature
  4491   "RTN","XSA PXRPC",79, 0)
  4492    D ROUTINE ^XSAPXUTL( TAG,ROU,$G (XSADATA(R OU,"PARAMS ")),.XSAR)
  4493   "RTN","XSA PXRPC",80, 0)
  4494    ;
  4495   "RTN","XSA PXRPC",81, 0)
  4496    ; -- chec k for RPC  processing  timeout
  4497   "RTN","XSA PXRPC",82, 0)
  4498    ;
  4499   "RTN","XSA PXRPC",83, 0)
  4500    ; -- Make  sure ther e are no e rrors befo re continu ing
  4501   "RTN","XSA PXRPC",84, 0)
  4502    Q:'$G(XSA ERR) $$RES ULT^XSAPXU TL()
  4503   "RTN","XSA PXRPC",85, 0)
  4504    ;
  4505   "RTN","XSA PXRPC",86, 0)
  4506    ; -- SET  results
  4507   "RTN","XSA PXRPC",87, 0)
  4508    D SETRESG L(.XSAR)
  4509   "RTN","XSA PXRPC",88, 0)
  4510    ;
  4511   "RTN","XSA PXRPC",89, 0)
  4512    Q $$RESUL T^XSAPXUTL ()
  4513   "RTN","XSA PXRPC",90, 0)
  4514    ;
  4515   "RTN","XSA PXRPC",91, 0)
  4516   SETRESGL(X SAR) ; --  Process RP C data and  set in re sults glob al
  4517   "RTN","XSA PXRPC",92, 0)
  4518    ;
  4519   "RTN","XSA PXRPC",93, 0)
  4520    N I,T,D
  4521   "RTN","XSA PXRPC",94, 0)
  4522    ; -- sing le value
  4523   "RTN","XSA PXRPC",95, 0)
  4524    I XSAPTYP E=1 S XSAR =$G(XSAR)  S @TARGET@ ("results" ,"result") =XSAR
  4525   "RTN","XSA PXRPC",96, 0)
  4526    ; -- tabl e delimite d by CR+LF
  4527   "RTN","XSA PXRPC",97, 0)
  4528    I XSAPTYP E=2 D  Q
  4529   "RTN","XSA PXRPC",98, 0)
  4530    . S I=""  F  S I=$O( XSAR(I)) Q :I=""  S @ TARGET@("r esults",I) =XSAR(I)
  4531   "RTN","XSA PXRPC",99, 0)
  4532    ; -- word  processin g
  4533   "RTN","XSA PXRPC",100 ,0)
  4534    I XSAPTYP E=3 D  Q
  4535   "RTN","XSA PXRPC",101 ,0)
  4536    . S I=""  F  S I=$O( XSAR(I)) Q :I=""  S @ TARGET@("r esults",I) =$G(XSAR(I ))
  4537   "RTN","XSA PXRPC",102 ,0)
  4538    ; -- glob al array
  4539   "RTN","XSA PXRPC",103 ,0)
  4540    I XSAPTYP E=4 D  Q
  4541   "RTN","XSA PXRPC",104 ,0)
  4542    . I $E($G (XSAR))'=" ^" Q
  4543   "RTN","XSA PXRPC",105 ,0)
  4544    . M @TARG ET@("resul ts")=@XSAR
  4545   "RTN","XSA PXRPC",106 ,0)
  4546    . I $D(@X SAR) K @XS AR
  4547   "RTN","XSA PXRPC",107 ,0)
  4548    ; -- glob al instanc e
  4549   "RTN","XSA PXRPC",108 ,0)
  4550    I XSAPTYP E=5 D  Q
  4551   "RTN","XSA PXRPC",109 ,0)
  4552    . I $E($G (XSAR))'=" ^" Q
  4553   "RTN","XSA PXRPC",110 ,0)
  4554    . S @TARG ET@("resul ts","resul t")=@XSAR
  4555   "RTN","XSA PXRPC",111 ,0)
  4556    ; -- vari able lengt h records  only good  up to 255  char)
  4557   "RTN","XSA PXRPC",112 ,0)
  4558    I XSAPTYP E=6 D
  4559   "RTN","XSA PXRPC",113 ,0)
  4560    . S I=""  F  S I=$O( XSAR(I)) Q :I=""  S @ TARGET@("r esults",I) =$C($L(XSA R(I))),@TA RGET@("res ults",I)=X SAR(I)
  4561   "RTN","XSA PXRPC",114 ,0)
  4562    Q
  4563   "RTN","XSA PXT")
  4564   0^17^B3586 14
  4565   "RTN","XSA PXT",1,0)
  4566   XSAPXT ;DA L/BNT - Vi stA Servic es Assembl er Tester  Functions; 1/27/2016
  4567   "RTN","XSA PXT",2,0)
  4568    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  4569   "RTN","XSA PXT",3,0)
  4570    ;
  4571   "RTN","XSA PXT",4,0)
  4572    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  4573   "RTN","XSA PXT",5,0)
  4574    ;
  4575   "RTN","XSA PXT",6,0)
  4576    Q
  4577   "RTN","XSA PXT",7,0)
  4578    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  4579   "RTN","XSA PXT",8,0)
  4580    ;
  4581   "RTN","XSA PXT",9,0)
  4582    ;   The f unctions i n this rou tine are f or testing  purposes  only
  4583   "RTN","XSA PXT",10,0)
  4584    ;
  4585   "RTN","XSA PXT",11,0)
  4586   SET(RESULT ,XSAVAL) ;  Test RPC  to set the  XSAVAR va riable to  the value  in XSAVAL
  4587   "RTN","XSA PXT",12,0)
  4588    S XSAVAR= $S(XSAVAL] "":XSAVAL, 1:"VistA S ervices As sembler te st RPC")
  4589   "RTN","XSA PXT",13,0)
  4590    S RESULT= 1
  4591   "RTN","XSA PXT",14,0)
  4592    Q
  4593   "RTN","XSA PXT",15,0)
  4594    ;
  4595   "RTN","XSA PXT",16,0)
  4596   GET(RESULT ) ; Test R PC to set  the RESULT  to XSAVAR  that was  set in pre vious RPC  call
  4597   "RTN","XSA PXT",17,0)
  4598    S RESULT= $G(XSAVAR)
  4599   "RTN","XSA PXT",18,0)
  4600    Q
  4601   "RTN","XSA PXUTL")
  4602   0^3^B83074 855
  4603   "RTN","XSA PXUTL",1,0 )
  4604   XSAPXUTL ; DAL/BNT -  FileMan Wr apper Util ity Functi ons;1/27/2 016
  4605   "RTN","XSA PXUTL",2,0 )
  4606    ;;1.0;VIS TA SERVICE S ASSEMBLE R;****;Oct ober 1, 20 15;Build 6 6
  4607   "RTN","XSA PXUTL",3,0 )
  4608    ;
  4609   "RTN","XSA PXUTL",4,0 )
  4610    ;Per VA D irective 6 402, this  routine sh ould not b e modified .
  4611   "RTN","XSA PXUTL",5,0 )
  4612    ;This rou tine uses  a SACC Exe mption to  section 2. 4.5.2 (use  of exclus ive KILL)
  4613   "RTN","XSA PXUTL",6,0 )
  4614    ; The INI T routine  label cont ains the o nly use of  exclusive  kill.
  4615   "RTN","XSA PXUTL",7,0 )
  4616    ;
  4617   "RTN","XSA PXUTL",8,0 )
  4618    ;
  4619   "RTN","XSA PXUTL",9,0 )
  4620    ; Externa l Referenc es           DBIA#
  4621   "RTN","XSA PXUTL",10, 0)
  4622    ; ------- ---------- --           -----
  4623   "RTN","XSA PXUTL",11, 0)
  4624    ; DOLRO^% ZOSV                    3883
  4625   "RTN","XSA PXUTL",12, 0)
  4626    ; FIELD^D ID                      2052
  4627   "RTN","XSA PXUTL",13, 0)
  4628    ; FILE^DI D                       2052
  4629   "RTN","XSA PXUTL",14, 0)
  4630    ; $$VFIEL D^DILFD                 2055
  4631   "RTN","XSA PXUTL",15, 0)
  4632    ; $$VFILE ^DILFD                  2055
  4633   "RTN","XSA PXUTL",16, 0)
  4634    Q
  4635   "RTN","XSA PXUTL",17, 0)
  4636    ;
  4637   "RTN","XSA PXUTL",18, 0)
  4638    ;-------- - Supporte d Methods  for extern al applica tion use w ith VSA -- --------
  4639   "RTN","XSA PXUTL",19, 0)
  4640    ;
  4641   "RTN","XSA PXUTL",20, 0)
  4642   INIT(SOURC E,TARGET)  ; Initiali ze Common  VSA Variab les
  4643   "RTN","XSA PXUTL",21, 0)
  4644    ;Clear sy mbol table  of all bu t values f rom this c all
  4645   "RTN","XSA PXUTL",22, 0)
  4646    ; The fol lowing cal l is subje ct to a SA CC exempti on for sec tion 2.4.5 .2
  4647   "RTN","XSA PXUTL",23, 0)
  4648    ; This ca ll is nece ssary to e nsure that  later sym bol table  restores
  4649   "RTN","XSA PXUTL",24, 0)
  4650    ;  are no t inhibite d by exist ing local  variables
  4651   "RTN","XSA PXUTL",25, 0)
  4652    ;  This c all also e nsures tha t an exist ing sessio n is not i ncorrectly  used to m ake a call .
  4653   "RTN","XSA PXUTL",26, 0)
  4654    K (XSAERR ,RESULTS,X SASYM,XSAS YMGR,XSASY MID,SOURCE ,TARGET)
  4655   "RTN","XSA PXUTL",27, 0)
  4656    N E,STATE GBL
  4657   "RTN","XSA PXUTL",28, 0)
  4658    ;Load sym bol table  for this s ession
  4659   "RTN","XSA PXUTL",29, 0)
  4660    S XSASYMG R=$G(@SOUR CE@("XSASY MGR"))
  4661   "RTN","XSA PXUTL",30, 0)
  4662    S XSASYMI D=$G(@SOUR CE@("XSASY MID"))
  4663   "RTN","XSA PXUTL",31, 0)
  4664    I $L(XSAS YMGR)&$L(X SASYMID) D
  4665   "RTN","XSA PXUTL",32, 0)
  4666    . S STATE GBL=$$DATA NODE^XSAPX PSS(XSASYM GR,XSASYMI D,"SUBKEYS ","SYMBOL_ TABLE")
  4667   "RTN","XSA PXUTL",33, 0)
  4668    . I $D(@S TATEGBL) D  SYMLOAD(S TATEGBL)
  4669   "RTN","XSA PXUTL",34, 0)
  4670    S $ET="S  E=$$ERR^XS APXERR(.TA RGET)"
  4671   "RTN","XSA PXUTL",35, 0)
  4672    ; All Pub lic functi ons return  XSAERR.
  4673   "RTN","XSA PXUTL",36, 0)
  4674    ; A value  of 1 = Su ccessful c all with r esults in  the TARGET  array
  4675   "RTN","XSA PXUTL",37, 0)
  4676    ; A value  of 0 = Er ror occurr ed somewhe re with de tails in t he ERROR g lobal
  4677   "RTN","XSA PXUTL",38, 0)
  4678    S XSAERR= 1
  4679   "RTN","XSA PXUTL",39, 0)
  4680    ; This sh ould only  be necessa ry if sess ion state  is not mai ntained
  4681   "RTN","XSA PXUTL",40, 0)
  4682    I $G(U)=" " S U="^"
  4683   "RTN","XSA PXUTL",41, 0)
  4684    I TARGET' =SOURCE K  @TARGET
  4685   "RTN","XSA PXUTL",42, 0)
  4686    I $G(@SOU RCE@("XSAS YM"))=1 S  XSASYM=1 D
  4687   "RTN","XSA PXUTL",43, 0)
  4688    . N CNT,D ,I,T S I=$ G(SOURCE)  Q:I=""  S  T=$E(I,1,$ L(I)-1)
  4689   "RTN","XSA PXUTL",44, 0)
  4690    . F  S I= $Q(@I) Q:I =""!(I'[T)   D
  4691   "RTN","XSA PXUTL",45, 0)
  4692    . . S NOD E=$P(I,T,2 ),NODE=$P( NODE,",",2 ,999),NODE =$TR(NODE, ")",""),NO DE=$TR(NOD E,"""","")
  4693   "RTN","XSA PXUTL",46, 0)
  4694    . . Q:$P( NODE,",",1 )["input"
  4695   "RTN","XSA PXUTL",47, 0)
  4696    . . S @TA RGET@("inp ut",NODE)= @I
  4697   "RTN","XSA PXUTL",48, 0)
  4698    S RESULTS =$NA(^TMP( $J,"XSA"," TMP","RESU LTS")) K @ RESULTS
  4699   "RTN","XSA PXUTL",49, 0)
  4700    Q
  4701   "RTN","XSA PXUTL",50, 0)
  4702    ;
  4703   "RTN","XSA PXUTL",51, 0)
  4704   INITPARM(P ARAM) ; In itialize I nput Param eters to e mpty strin g if null
  4705   "RTN","XSA PXUTL",52, 0)
  4706    S @PARAM= $G(@SOURCE @(PARAM))
  4707   "RTN","XSA PXUTL",53, 0)
  4708    I ($G(@PA RAM)="null ")!($G(@PA RAM)="") S  @PARAM=""
  4709   "RTN","XSA PXUTL",54, 0)
  4710    Q
  4711   "RTN","XSA PXUTL",55, 0)
  4712    ;
  4713   "RTN","XSA PXUTL",56, 0)
  4714   RESULT() ;  This is t he primary  function  to call to  complete  a VSA serv ice call
  4715   "RTN","XSA PXUTL",57, 0)
  4716    N STATEGB L
  4717   "RTN","XSA PXUTL",58, 0)
  4718    D CLEANUP
  4719   "RTN","XSA PXUTL",59, 0)
  4720    I +$G(XSA SYM) D SAV ESYM^XSAPX UTL($TR(TA RGET,")"," ,")_"""sym bolTable"" "_",")
  4721   "RTN","XSA PXUTL",60, 0)
  4722    I $L($G(X SASYMGR))& $L($G(XSAS YMID)) D
  4723   "RTN","XSA PXUTL",61, 0)
  4724    . S STATE GBL=$$CRSK NODE^XSAPX PSS(XSASYM GR,XSASYMI D,"SYMBOL_ TABLE")
  4725   "RTN","XSA PXUTL",62, 0)
  4726    . K RESUL TS,XSASYM, XSASYMGR,X SASYMID,SO URCE,TARGE T
  4727   "RTN","XSA PXUTL",63, 0)
  4728    . D SYMSA VE(STATEGB L)
  4729   "RTN","XSA PXUTL",64, 0)
  4730    Q XSAERR
  4731   "RTN","XSA PXUTL",65, 0)
  4732    ;
  4733   "RTN","XSA PXUTL",66, 0)
  4734   CONVERT(IN ) ; Conver t to camel Case
  4735   "RTN","XSA PXUTL",67, 0)
  4736    N I,UP,LO W,OTHIN,OT HOUT,OUT,X
  4737   "RTN","XSA PXUTL",68, 0)
  4738    S UP="ABC DEFGHIJKLM NOPQRSTUVW XYZ"
  4739   "RTN","XSA PXUTL",69, 0)
  4740    S LOW="ab cdefghijkl mnopqrstuv wxyz"
  4741   "RTN","XSA PXUTL",70, 0)
  4742    S OTHIN=" /-&()*.?"
  4743   "RTN","XSA PXUTL",71, 0)
  4744    S OTHOUT= "________"
  4745   "RTN","XSA PXUTL",72, 0)
  4746    S OUT=""
  4747   "RTN","XSA PXUTL",73, 0)
  4748    F I=1:1:$ L(IN," ")  S X=$P(IN, " ",I) D
  4749   "RTN","XSA PXUTL",74, 0)
  4750    . I I=1 S  OUT=OUT_$ TR(X,UP,LO W) Q
  4751   "RTN","XSA PXUTL",75, 0)
  4752    . S OUT=O UT_$TR($E( X,1),"*"," _")_$TR($E (X,2,$L(X) ),UP_OTHIN ,LOW_OTHOU T)
  4753   "RTN","XSA PXUTL",76, 0)
  4754    Q OUT
  4755   "RTN","XSA PXUTL",77, 0)
  4756    ;
  4757   "RTN","XSA PXUTL",78, 0)
  4758   GETFILE(FI LE) ; Retu rn the Fil e Name fro m the file  number
  4759   "RTN","XSA PXUTL",79, 0)
  4760    N RSLT
  4761   "RTN","XSA PXUTL",80, 0)
  4762    S RSLT=""  D FILE^DI D(FILE,"", "NAME","RS LT")
  4763   "RTN","XSA PXUTL",81, 0)
  4764    Q RSLT("N AME")
  4765   "RTN","XSA PXUTL",82, 0)
  4766    ;
  4767   "RTN","XSA PXUTL",83, 0)
  4768   GETFLD(FIL E,FIELD) ;  Return th e Field Na me for a f ile
  4769   "RTN","XSA PXUTL",84, 0)
  4770    N RSLT
  4771   "RTN","XSA PXUTL",85, 0)
  4772    S RSLT=""  D FIELD^D ID(FILE,FI ELD,"","LA BEL","RSLT ")
  4773   "RTN","XSA PXUTL",86, 0)
  4774    Q $G(RSLT ("LABEL"))
  4775   "RTN","XSA PXUTL",87, 0)
  4776    ;
  4777   "RTN","XSA PXUTL",88, 0)
  4778   BLDERROR(C ODE,TEXT,A CTOR) ; Bu ild a gene ric Error  code and t ext into t he TARGET  array
  4779   "RTN","XSA PXUTL",89, 0)
  4780    S @RESULT S@("DIERR" ,1)=CODE
  4781   "RTN","XSA PXUTL",90, 0)
  4782    S @RESULT S@("DIERR" ,1,"TEXT", 1)=TEXT
  4783   "RTN","XSA PXUTL",91, 0)
  4784    D ERROR(R ESULTS,ACT OR)
  4785   "RTN","XSA PXUTL",92, 0)
  4786    Q
  4787   "RTN","XSA PXUTL",93, 0)
  4788    ;
  4789   "RTN","XSA PXUTL",94, 0)
  4790    ;-------- - Private  Methods us ed only by  VISTA SER VICE ASSEM BLER ----- -----
  4791   "RTN","XSA PXUTL",95, 0)
  4792    ;
  4793   "RTN","XSA PXUTL",96, 0)
  4794   GETS(RESUL TS,TARGET)  ;
  4795   "RTN","XSA PXUTL",97, 0)
  4796    ; Parse R ESULTS of  GETS^DIQ a nd convert  to camelC ase output  in the TA RGET array
  4797   "RTN","XSA PXUTL",98, 0)
  4798    N CNT,FIL E,PFILE,RE VIENS,FLDN AME,IENS,F IELD,WPFLD ,FNAME,RSL T
  4799   "RTN","XSA PXUTL",99, 0)
  4800    S CNT=0
  4801   "RTN","XSA PXUTL",100 ,0)
  4802    S FILE=""  F  S FILE =$O(@RESUL TS@(FILE))  Q:FILE=""   D
  4803   "RTN","XSA PXUTL",101 ,0)
  4804    . ; Incre ment File/ Sub-File c ounter
  4805   "RTN","XSA PXUTL",102 ,0)
  4806    . S CNT=C NT+1
  4807   "RTN","XSA PXUTL",103 ,0)
  4808    . ; Get t he Primary  File name
  4809   "RTN","XSA PXUTL",104 ,0)
  4810    . I CNT=1  S FNAME=$ $CONVERT($ $GETFILE(F ILE)) D BL DFILE(FILE ,TARGET)
  4811   "RTN","XSA PXUTL",105 ,0)
  4812    . ; Get t he Sub-Fil e name(s)  from the . 01 field o f the Sub- File and i ndicate th e Primary  file proce ssing is c omplete
  4813   "RTN","XSA PXUTL",106 ,0)
  4814    . I CNT>1  S FNAME=$ $CONVERT($ $GETFLD(FI LE,.01))
  4815   "RTN","XSA PXUTL",107 ,0)
  4816    . Q:FNAME =""
  4817   "RTN","XSA PXUTL",108 ,0)
  4818    . S IENS= "" F  S IE NS=$O(@RES ULTS@(FILE ,IENS)) Q: IENS=""  D
  4819   "RTN","XSA PXUTL",109 ,0)
  4820    . . ; Rev erse the o rder of th e IENS
  4821   "RTN","XSA PXUTL",110 ,0)
  4822    . . S REV IENS=$$REV ERSE(IENS)
  4823   "RTN","XSA PXUTL",111 ,0)
  4824    . . ; Get  the Field  Name
  4825   "RTN","XSA PXUTL",112 ,0)
  4826    . . S FIE LD="" F  S  FIELD=$O( @RESULTS@( FILE,IENS, FIELD)) Q: FIELD=""   D
  4827   "RTN","XSA PXUTL",113 ,0)
  4828    . . . ; C onvert fie ld name to  camelCase
  4829   "RTN","XSA PXUTL",114 ,0)
  4830    . . . S F LDNAME=$$C ONVERT(FIE LD)
  4831   "RTN","XSA PXUTL",115 ,0)
  4832    . . . S W PFLD="" F   S WPFLD=$ O(@RESULTS @(FILE,IEN S,FIELD,WP FLD)) Q:WP FLD=""  D
  4833   "RTN","XSA PXUTL",116 ,0)
  4834    . . . . ;  Don't inc lude the W ord Proces sing Inter nal/Extern al values  from the R ESULTS arr ay
  4835   "RTN","XSA PXUTL",117 ,0)
  4836    . . . . Q :@RESULTS@ (FILE,IENS ,FIELD,WPF LD)[$P(RES ULTS,",")
  4837   "RTN","XSA PXUTL",118 ,0)
  4838    . . . . I  WPFLD'="E " S @TARGE T@("result s",REVIENS ,FNAME,FLD NAME,$S(WP FLD="I":"i nternalVal ue",1:WPFL D))=@RESUL TS@(FILE,I ENS,FIELD, WPFLD) Q
  4839   "RTN","XSA PXUTL",119 ,0)
  4840    . . . . S  @TARGET@( "results", REVIENS,FN AME,FLDNAM E)=@RESULT S@(FILE,IE NS,FIELD,W PFLD)
  4841   "RTN","XSA PXUTL",120 ,0)
  4842    Q
  4843   "RTN","XSA PXUTL",121 ,0)
  4844    ;
  4845   "RTN","XSA PXUTL",122 ,0)
  4846   LIST(FILE, RESULTS,TA RGET) ;
  4847   "RTN","XSA PXUTL",123 ,0)
  4848    ; Parse R ESULTS of  LIST^DIC a nd convert  to camelC ase output  in the TA RGET array
  4849   "RTN","XSA PXUTL",124 ,0)
  4850    N ID,IEN, NODE,VALUE ,MAP,RSLT, FNAME,HDR, I,ELEMENT
  4851   "RTN","XSA PXUTL",125 ,0)
  4852    S FNAME=$ $CONVERT($ $GETFILE(F ILE))
  4853   "RTN","XSA PXUTL",126 ,0)
  4854    ; Set the  File info  in Target  array
  4855   "RTN","XSA PXUTL",127 ,0)
  4856    D BLDFILE (FILE,TARG ET)
  4857   "RTN","XSA PXUTL",128 ,0)
  4858    ; Get the  Header No de data el ement
  4859   "RTN","XSA PXUTL",129 ,0)
  4860    F I=1:1:$ L(@RESULTS @("DILIST" ,0),U) S H DR=$P(@RES ULTS@("DIL IST",0),U, I) Q:HDR=" "  D
  4861   "RTN","XSA PXUTL",130 ,0)
  4862    . S @TARG ET@("resul ts","heade r",$S(I=1: "numberFou nd",I=2:"m axRequeste d",I=3:"mo reFound",1 :"resultsF lags"))=$S (I=3:$S(+H DR:"true", 1:"false") ,1:HDR)
  4863   "RTN","XSA PXUTL",131 ,0)
  4864    ; Get the  MAP for t he data el ements
  4865   "RTN","XSA PXUTL",132 ,0)
  4866    S MAP=@RE SULTS@("DI LIST",0,"M AP")
  4867   "RTN","XSA PXUTL",133 ,0)
  4868    S ID=0 F   S ID=$O(@ RESULTS@(" DILIST",ID )) Q:'ID   D
  4869   "RTN","XSA PXUTL",134 ,0)
  4870    . N I F I =1:1:$L(@R ESULTS@("D ILIST",ID, 0),U) S VA LUE=$P(@RE SULTS@("DI LIST",ID,0 ),U,I) Q:V ALUE=""  D
  4871   "RTN","XSA PXUTL",135 ,0)
  4872    . . ; Set  the subsc ript node  to either  the ID or  the name o f the fiel d
  4873   "RTN","XSA PXUTL",136 ,0)
  4874    . . S NOD E=$S(I=1:" id",1:$$CO NVERT($$GE TFLD(FILE, $P(MAP,U,I ))))
  4875   "RTN","XSA PXUTL",137 ,0)
  4876    . . Q:NOD E=""
  4877   "RTN","XSA PXUTL",138 ,0)
  4878    . . S @TA RGET@("res ults",FNAM E,ID,NODE) =VALUE
  4879   "RTN","XSA PXUTL",139 ,0)
  4880    Q $$RESUL T()
  4881   "RTN","XSA PXUTL",140 ,0)
  4882    ;
  4883   "RTN","XSA PXUTL",141 ,0)
  4884   BLDFILE(FI LE,TARGET)  ; Build t he top lev el File da ta in the  TARGET arr ay
  4885   "RTN","XSA PXUTL",142 ,0)
  4886    S @TARGET @("results ","fileNum ber")=FILE
  4887   "RTN","XSA PXUTL",143 ,0)
  4888    S @TARGET @("results ","fileNam e")=$$GETF ILE(FILE)
  4889   "RTN","XSA PXUTL",144 ,0)
  4890    Q
  4891   "RTN","XSA PXUTL",145 ,0)
  4892    ;
  4893   "RTN","XSA PXUTL",146 ,0)
  4894   REVERSE(IN ) ; Revers e the IENS  so that F ile IEN is  before an y Sub-File  IEN
  4895   "RTN","XSA PXUTL",147 ,0)
  4896    N I,OUT,C
  4897   "RTN","XSA PXUTL",148 ,0)
  4898    S C=","
  4899   "RTN","XSA PXUTL",149 ,0)
  4900    S OUT=""  F I=($L(IN ,C)-1):-1: 1 S OUT=OU T_$P(IN,C, I)_C
  4901   "RTN","XSA PXUTL",150 ,0)
  4902    Q OUT
  4903   "RTN","XSA PXUTL",151 ,0)
  4904    ;
  4905   "RTN","XSA PXUTL",152 ,0)
  4906   ERROR(ERRR ES,ACTOR)  ; Return a  list of E rror Codes  from GETS ^DIQ and r eturn the  Target arr ay
  4907   "RTN","XSA PXUTL",153 ,0)
  4908    D ERROR^X SAPXERR(@E RRRES@("DI ERR",1),AC TOR,"",@ER RRES@("DIE RR",1,"TEX T",1))
  4909   "RTN","XSA PXUTL",154 ,0)
  4910    Q
  4911   "RTN","XSA PXUTL",155 ,0)
  4912    ;
  4913   "RTN","XSA PXUTL",156 ,0)
  4914   ROUTINE(EN TRY,ROUTIN E,PARAMS,R ES) ; Buil d a Method  signature  with para meters and  execute i t
  4915   "RTN","XSA PXUTL",157 ,0)
  4916    N METHSIG ,MSIG
  4917   "RTN","XSA PXUTL",158 ,0)
  4918    S MSIG=$$ MTHDSIG(RO UTINE,ENTR Y)
  4919   "RTN","XSA PXUTL",159 ,0)
  4920    I MSIG=""  D BLDERRO R(1,"Metho d Signatur e "_ENTRY_ "^"_ROUTIN E_" does n ot exist." ,"ROUTINE^ XSAPXUTL")  Q
  4921   "RTN","XSA PXUTL",160 ,0)
  4922    I $G(PARA MS)]"" S M ETHSIG=ENT RY_"^"_ROU TINE_"(.RE S,"_$G(PAR AMS)_")" D  @METHSIG  Q
  4923   "RTN","XSA PXUTL",161 ,0)
  4924    ; Need to  handle th e case for  no input  params
  4925   "RTN","XSA PXUTL",162 ,0)
  4926    S METHSIG =ENTRY_"^" _ROUTINE_" (.RES)" D  @METHSIG
  4927   "RTN","XSA PXUTL",163 ,0)
  4928    Q
  4929   "RTN","XSA PXUTL",164 ,0)
  4930    ;
  4931   "RTN","XSA PXUTL",165 ,0)
  4932   CLEANUP ;  Destroy Co mmon Varia bles on Ex it
  4933   "RTN","XSA PXUTL",166 ,0)
  4934    I $G(RESU LTS)]"" K  @RESULTS
  4935   "RTN","XSA PXUTL",167 ,0)
  4936    Q
  4937   "RTN","XSA PXUTL",168 ,0)
  4938    ;
  4939   "RTN","XSA PXUTL",169 ,0)
  4940   VFILE(FILE ,TARGET) ;  Verify a  file
  4941   "RTN","XSA PXUTL",170 ,0)
  4942    ; Input:  FILE = Fil e number
  4943   "RTN","XSA PXUTL",171 ,0)
  4944    ;         TARGET = T arget arra y to retur n error da ta
  4945   "RTN","XSA PXUTL",172 ,0)
  4946    ; Output:  0 if vali d
  4947   "RTN","XSA PXUTL",173 ,0)
  4948    ;
  4949   "RTN","XSA PXUTL",174 ,0)
  4950    I FILE=""  D BLDERRO R(1,"Missi ng FILE pa rameter"," VFILE^XSAP XUTL") Q X SAERR
  4951   "RTN","XSA PXUTL",175 ,0)
  4952    I '$$VFIL E^DILFD(FI LE) D BLDE RROR(1,"Fi le "_FILE_ " does not  exist","V FILE^XSAPX UTL")
  4953   "RTN","XSA PXUTL",176 ,0)
  4954    Q XSAERR
  4955   "RTN","XSA PXUTL",177 ,0)
  4956    ;
  4957   "RTN","XSA PXUTL",178 ,0)
  4958   VFIELD(FIL E,FIELD,CO DES,TARGET ) ; Verify  that FIEL D is valid
  4959   "RTN","XSA PXUTL",179 ,0)
  4960    ; Input:  FILE  = Fi le number
  4961   "RTN","XSA PXUTL",180 ,0)
  4962    ;         FIELD = Fi eld List
  4963   "RTN","XSA PXUTL",181 ,0)
  4964    ;         CODES = Li st of allo wable Fiel d Codes, i f any
  4965   "RTN","XSA PXUTL",182 ,0)
  4966    ;         TARGET = T arget arra y to retur n error da ta
  4967   "RTN","XSA PXUTL",183 ,0)
  4968    ; Output:  0 if vali d
  4969   "RTN","XSA PXUTL",184 ,0)
  4970    N FLD,ERR ,I S FLD=" ",ERR=0
  4971   "RTN","XSA PXUTL",185 ,0)
  4972    F I=1:1:$ L(FIELD,"; ") S FLD=$ P(FIELD,"; ",I) Q:FLD =""  D  Q: +ERR
  4973   "RTN","XSA PXUTL",186 ,0)
  4974    . ; If th is field i s in the l ist of all owable cod es don't t hrow error
  4975   "RTN","XSA PXUTL",187 ,0)
  4976    . I FLD[C ODES Q
  4977   "RTN","XSA PXUTL",188 ,0)
  4978    . ; Verif y beginnin g and endi ng range o f fields
  4979   "RTN","XSA PXUTL",189 ,0)
  4980    . I FLD[" :" N FLDRN G,X,J S FL DRNG=FLD,X ="" F J=1: 1:$L(FLDRN G,":") S X =$P(FLDRNG ,":",J) Q: (X="")!(+E RR)  D  Q
  4981   "RTN","XSA PXUTL",190 ,0)
  4982    . . I '$$ VFIELD^DIL FD(FILE,X)  S ERR=1
  4983   "RTN","XSA PXUTL",191 ,0)
  4984    . I '$$VF IELD^DILFD (FILE,FLD)  S ERR=1
  4985   "RTN","XSA PXUTL",192 ,0)
  4986    I ERR D B LDERROR(2, "Field "_F LD_" is no t a valid  field in F ile "_FILE _".","VFIE LD^XSAPXUT L")
  4987   "RTN","XSA PXUTL",193 ,0)
  4988    Q XSAERR
  4989   "RTN","XSA PXUTL",194 ,0)
  4990    ;
  4991   "RTN","XSA PXUTL",195 ,0)
  4992   VFLAGS(FLA GS,INPUT,T ARGET) ; V erify that  the Flags  are valid
  4993   "RTN","XSA PXUTL",196 ,0)
  4994    ; Input:  FLAGS = Al lowable fl ags
  4995   "RTN","XSA PXUTL",197 ,0)
  4996    ;         INPUT = Fl ags passed  into API
  4997   "RTN","XSA PXUTL",198 ,0)
  4998    ;         TARGET = T arget arra y to retur n error da ta
  4999   "RTN","XSA PXUTL",199 ,0)
  5000    ; Output:  0 if vali d
  5001   "RTN","XSA PXUTL",200 ,0)
  5002    N I,X
  5003   "RTN","XSA PXUTL",201 ,0)
  5004    F I=1:1:$ L(INPUT) S  X=$E(INPU T,I) I FLA GS'[X D  Q
  5005   "RTN","XSA PXUTL",202 ,0)
  5006    . D BLDER ROR(3,"The  Flag "_X_ " does not  match all owable Fla gs "_FLAGS _".","VFLA GS^XSAPXUT L")
  5007   "RTN","XSA PXUTL",203 ,0)
  5008    Q XSAERR
  5009   "RTN","XSA PXUTL",204 ,0)
  5010    ;
  5011   "RTN","XSA PXUTL",205 ,0)
  5012   GETPARMS(S OURCE,DOMA IN,XSADATA ) ; Get th e paramete rs
  5013   "RTN","XSA PXUTL",206 ,0)
  5014    S:DOMAIN= "" DOMAIN= "XSA"
  5015   "RTN","XSA PXUTL",207 ,0)
  5016    S XSADATA (DOMAIN,"P ARAMS")=""
  5017   "RTN","XSA PXUTL",208 ,0)
  5018    N XAR,TMP XAR,X,TYPE  S (X,TYPE )=""
  5019   "RTN","XSA PXUTL",209 ,0)
  5020    F  S X=$O (@SOURCE@( "PARAMS",X )) Q:X=""   D
  5021   "RTN","XSA PXUTL",210 ,0)
  5022    . S TYPE= $O(@SOURCE @("PARAMS" ,X,0))
  5023   "RTN","XSA PXUTL",211 ,0)
  5024    . I TYPE= "LITERAL"  S $P(XSADA TA(DOMAIN, "PARAMS"), "^",X)=""" "_@SOURCE@ ("PARAMS", X,TYPE)_"" "" Q
  5025   "RTN","XSA PXUTL",212 ,0)
  5026    . ; Must  be a List  type
  5027   "RTN","XSA PXUTL",213 ,0)
  5028    . I TYPE= "LIST" D
  5029   "RTN","XSA PXUTL",214 ,0)
  5030    . . ; Cle ar out the  input var iable arra ys before  setting it  with glob al data
  5031   "RTN","XSA PXUTL",215 ,0)
  5032    . . S XAR ="" F  S X AR=$O(@SOU RCE@("PARA MS",X,TYPE ,XAR)) Q:X AR=""  D
  5033   "RTN","XSA PXUTL",216 ,0)
  5034    . . . S T MPXAR=$P(X AR,"(") K  @TMPXAR
  5035   "RTN","XSA PXUTL",217 ,0)
  5036    . . ; Now  build the  input arr ay variabl es with da ta from th e SOURCE g lobal
  5037   "RTN","XSA PXUTL",218 ,0)
  5038    . . S XAR ="" F  S X AR=$O(@SOU RCE@("PARA MS",X,TYPE ,XAR)) Q:X AR=""  D
  5039   "RTN","XSA PXUTL",219 ,0)
  5040    . . . S @ XAR=@SOURC E@("PARAMS ",X,TYPE,X AR)
  5041   "RTN","XSA PXUTL",220 ,0)
  5042    . . . ; G et Local A rray data
  5043   "RTN","XSA PXUTL",221 ,0)
  5044    . . . S $ P(XSADATA( DOMAIN,"PA RAMS"),"^" ,X)="."_$P (XAR,"(")
  5045   "RTN","XSA PXUTL",222 ,0)
  5046    ; Convert  the "^" t o a comma  to separat e the para meter list .
  5047   "RTN","XSA PXUTL",223 ,0)
  5048    S XSADATA (DOMAIN,"P ARAMS")=$T R(XSADATA( DOMAIN,"PA RAMS"),"^" ,",")
  5049   "RTN","XSA PXUTL",224 ,0)
  5050    Q
  5051   "RTN","XSA PXUTL",225 ,0)
  5052    ;
  5053   "RTN","XSA PXUTL",226 ,0)
  5054   MTHDSIG(RT N,TAG) ; L oad a rout ine and re turn the M ethod Sign ature
  5055   "RTN","XSA PXUTL",227 ,0)
  5056    N X,MSIG, DIF,XCNP S  MSIG=""
  5057   "RTN","XSA PXUTL",228 ,0)
  5058    S X=RTN,X CNP=0,DIF= "^UTILITY( "_$J_",RTN ," K ^UTIL ITY($J,RTN )
  5059   "RTN","XSA PXUTL",229 ,0)
  5060    X ^%ZOSF( "TEST") Q: '$T MSIG
  5061   "RTN","XSA PXUTL",230 ,0)
  5062    X ^%ZOSF( "LOAD") S  ^UTILITY($ J,RTN,0)=X CNP-1
  5063   "RTN","XSA PXUTL",231 ,0)
  5064    I '$D(^UT ILITY($J,R TN,0)) Q M SIG
  5065   "RTN","XSA PXUTL",232 ,0)
  5066    N X S X=1  F  S X=$O (^UTILITY( $J,RTN,X))  Q:X=""  D
  5067   "RTN","XSA PXUTL",233 ,0)
  5068    . Q:$E(^U TILITY($J, RTN,X,0),1 )=""
  5069   "RTN","XSA PXUTL",234 ,0)
  5070    . Q:$E(^U TILITY($J, RTN,X,0),1 ,$L(TAG))' =TAG
  5071   "RTN","XSA PXUTL",235 ,0)
  5072    . ; If TA G matches,  make sure  the next  char is '( ' to allow  for match ing entry  with addit ional text
  5073   "RTN","XSA PXUTL",236 ,0)
  5074    . Q:$E(^U TILITY($J, RTN,X,0),$ L(TAG)+1)' ="("
  5075   "RTN","XSA PXUTL",237 ,0)
  5076    . S MSIG= ^UTILITY($ J,RTN,X,0)
  5077   "RTN","XSA PXUTL",238 ,0)
  5078    Q MSIG
  5079   "RTN","XSA PXUTL",239 ,0)
  5080    ;
  5081   "RTN","XSA PXUTL",240 ,0)
  5082   SAVESYM(X)  ; Save th e Symbol T able to gl obal X
  5083   "RTN","XSA PXUTL",241 ,0)
  5084    D DOLRO^% ZOSV
  5085   "RTN","XSA PXUTL",242 ,0)
  5086    M @TARGET @("input") =SOURCE
  5087   "RTN","XSA PXUTL",243 ,0)
  5088    Q
  5089   "RTN","XSA PXUTL",244 ,0)
  5090    ;
  5091   "RTN","XSA PXUTL",245 ,0)
  5092   AUTH() ;Fu nction. Ch eck if cal ling routi ne is auth orized
  5093   "RTN","XSA PXUTL",246 ,0)
  5094    ; This fu nction doe s not addr ess the se curity iss ue of user  authentic ation, so  a restrict ion is pla ced on the  calling r outine.
  5095   "RTN","XSA PXUTL",247 ,0)
  5096    ; ZEXCEPT : XTMUNIT, XTU ;set f or unit te sting
  5097   "RTN","XSA PXUTL",248 ,0)
  5098    N X,Z
  5099   "RTN","XSA PXUTL",249 ,0)
  5100    S X=$ST($ ST-2,"PLAC E"),Z=$P(X ,"^",2),X= "^"_$P(Z,"  ")
  5101   "RTN","XSA PXUTL",250 ,0)
  5102    I $E(X,1, 4)="^XSA"  Q 1           ;Author ized Kerne l VSA acce ss
  5103   "RTN","XSA PXUTL",251 ,0)
  5104    I $D(XTMU NIT)!$G(XT U) Q 1       ;Kernel  Unit Testi ng
  5105   "RTN","XSA PXUTL",252 ,0)
  5106    Q 0
  5107   "RTN","XSA PXUTL",253 ,0)
  5108   SYMSAVE(BA SE) ; Save  symbol ta ble to tar get global
  5109   "RTN","XSA PXUTL",254 ,0)
  5110    N Y
  5111   "RTN","XSA PXUTL",255 ,0)
  5112    K @BASE
  5113   "RTN","XSA PXUTL",256 ,0)
  5114    S Y="%"
  5115   "RTN","XSA PXUTL",257 ,0)
  5116    F  S Y=$O (@Y) Q:Y=" "  D
  5117   "RTN","XSA PXUTL",258 ,0)
  5118    . I '(Y=" Y"!Y="BASE ") D
  5119   "RTN","XSA PXUTL",259 ,0)
  5120    . . M @BA SE@(Y)=@Y
  5121   "RTN","XSA PXUTL",260 ,0)
  5122    Q
  5123   "RTN","XSA PXUTL",261 ,0)
  5124   SYMLOAD(BA SE) ; Load  Symbol ta ble from t arget glob al
  5125   "RTN","XSA PXUTL",262 ,0)
  5126    N Y
  5127   "RTN","XSA PXUTL",263 ,0)
  5128    S Y=""
  5129   "RTN","XSA PXUTL",264 ,0)
  5130    F  S Y=$O (@BASE@(Y) ) Q:Y=""   D
  5131   "RTN","XSA PXUTL",265 ,0)
  5132    . I '$D(@ Y) D
  5133   "RTN","XSA PXUTL",266 ,0)
  5134    . . M @Y= @BASE@(Y)
  5135   "RTN","XSA PXUTL",267 ,0)
  5136    Q
  5137   "SEC","^DI C",17.01,1 7.01,0,"AU DIT")
  5138   @
  5139   "SEC","^DI C",17.01,1 7.01,0,"DD ")
  5140   @
  5141   "SEC","^DI C",17.01,1 7.01,0,"DE L")
  5142   @
  5143   "SEC","^DI C",17.01,1 7.01,0,"LA YGO")
  5144   @
  5145   "SEC","^DI C",17.01,1 7.01,0,"RD ")
  5146   @
  5147   "SEC","^DI C",17.01,1 7.01,0,"WR ")
  5148   @
  5149   "VER")
  5150   8.0^22.0
  5151   "^DD",17.0 1,17.01,0)
  5152   FIELD^^10^ 2
  5153   "^DD",17.0 1,17.01,0, "DDA")
  5154   N
  5155   "^DD",17.0 1,17.01,0, "DT")
  5156   3160228
  5157   "^DD",17.0 1,17.01,0, "IX","B",1 7.01,.01)
  5158  
  5159   "^DD",17.0 1,17.01,0, "NM","XSA  DEFINITION S")
  5160  
  5161   "^DD",17.0 1,17.01,0, "VRPK")
  5162   XSA
  5163   "^DD",17.0 1,17.01,.0 1,0)
  5164   NAME^RF^^0 ;1^K:$L(X) >40!($L(X) <3)!'(X'?1 P.E) X
  5165   "^DD",17.0 1,17.01,.0 1,1,0)
  5166   ^.1
  5167   "^DD",17.0 1,17.01,.0 1,1,1,0)
  5168   17.01^B
  5169   "^DD",17.0 1,17.01,.0 1,1,1,1)
  5170   S ^XSA(17. 01,"B",$E( X,1,30),DA )=""
  5171   "^DD",17.0 1,17.01,.0 1,1,1,2)
  5172   K ^XSA(17. 01,"B",$E( X,1,30),DA )
  5173   "^DD",17.0 1,17.01,.0 1,3)
  5174   Enter the  name of th e Service  Definition  (3 to 40  characters ).
  5175   "^DD",17.0 1,17.01,.0 1,21,0)
  5176   ^^1^1^3160 307^
  5177   "^DD",17.0 1,17.01,.0 1,21,1,0)
  5178   This is th e name of  the VistA  Service As sembler Se rvice Defi nition.
  5179   "^DD",17.0 1,17.01,.0 1,"DT")
  5180   3160307
  5181   "^DD",17.0 1,17.01,10 ,0)
  5182   DEFINITION ^17.02^^DE F;0
  5183   "^DD",17.0 1,17.01,10 ,21,0)
  5184   ^^5^5^3160 229^
  5185   "^DD",17.0 1,17.01,10 ,21,1,0)
  5186   This word  processing  field con tains the  service de finition u sed by the  
  5187   "^DD",17.0 1,17.01,10 ,21,2,0)
  5188   VistA Serv ices Assem bler to RE STify an e ndpoint.
  5189   "^DD",17.0 1,17.01,10 ,21,3,0)
  5190   The servic e definiti on can con tain diffe rent types  of resour ce 
  5191   "^DD",17.0 1,17.01,10 ,21,4,0)
  5192   definition s. The Vis tA Service s Assemble r 1.0 uses  Swagger 2 .0 but cou ld 
  5193   "^DD",17.0 1,17.01,10 ,21,5,0)
  5194   include ot her standa rds.
  5195   "^DD",17.0 1,17.02,0)
  5196   DEFINITION  SUB-FIELD ^^.01^1
  5197   "^DD",17.0 1,17.02,0, "DT")
  5198   3160228
  5199   "^DD",17.0 1,17.02,0, "NM","DEFI NITION")
  5200  
  5201   "^DD",17.0 1,17.02,0, "UP")
  5202   17.01
  5203   "^DD",17.0 1,17.02,.0 1,0)
  5204   DEFINITION ^Wx^^0;1
  5205   "^DD",17.0 1,17.02,.0 1,"DT")
  5206   3160229
  5207   "^DIC",17. 01,17.01,0 )
  5208   XSA DEFINI TIONS^17.0 1
  5209   "^DIC",17. 01,17.01,0 ,"GL")
  5210   ^XSA(17.01 ,
  5211   "^DIC",17. 01,17.01," %",0)
  5212   ^1.005^^0
  5213   "^DIC",17. 01,17.01," %D",0)
  5214   ^^2^2^3160 228^
  5215   "^DIC",17. 01,17.01," %D",1,0)
  5216   This file  contains t he VistA S ervice Ass embler Def initions u sed to 
  5217   "^DIC",17. 01,17.01," %D",2,0)
  5218   describe V istA servi ces create d with the  RPC Wizar d utility.
  5219   "^DIC",17. 01,"B","XS A DEFINITI ONS",17.01 )
  5220  
  5221   **END**
  5222   **END**