Index: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/kids/bmx_041000.kids
===================================================================
--- BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/kids/bmx_041000.kids	(revision 1150)
+++ BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/kids/bmx_041000.kids	(revision 1183)
@@ -1,4 +1,4 @@
-KIDS Distribution saved on Apr 17, 2011@10:32:29
-BMX 4.1000 for WorldVistA
+KIDS Distribution saved on May 11, 2011@17:02:50
+BMX 4.1000 try 2
 **KIDS**:BMX 4.1000^
 
@@ -6,5 +6,5 @@
 BMX 4.1000
 "BLD",7911,0)
-BMX 4.1000^BMXNET RPMS .NET UTILITIES^0^3110417^y
+BMX 4.1000^BMXNET RPMS .NET UTILITIES^0^3110511^y
 "BLD",7911,1,0)
 ^^3^3^3110417^
@@ -42,5 +42,5 @@
 
 "BLD",7911,6.3)
-1
+2
 "BLD",7911,"INIT")
 POST^BMXUTL6
@@ -124,5 +124,5 @@
 BMXMEVN^^0^B50045062
 "BLD",7911,"KRN",9.8,"NM",31,0)
-BMXMON^^0^B185134800
+BMXMON^^0^B189828327
 "BLD",7911,"KRN",9.8,"NM",32,0)
 BMXMSEC^^0^B14524048
@@ -140,5 +140,5 @@
 BMXRPC2^^0^B11504982
 "BLD",7911,"KRN",9.8,"NM",39,0)
-BMXRPC3^^0^B38590311
+BMXRPC3^^0^B38580443
 "BLD",7911,"KRN",9.8,"NM",40,0)
 BMXRPC4^^0^B27858921
@@ -184,5 +184,5 @@
 BMXUTL6^^0^B1075011
 "BLD",7911,"KRN",9.8,"NM",62,0)
-BMXRPC10^^0^B93587525
+BMXRPC10^^0^B102094048
 "BLD",7911,"KRN",9.8,"NM",63,0)
 BMXADOX1^^0^B84889528
@@ -2606,5 +2606,5 @@
 59512,54859
 "KRN",19,11047,"RPC",0)
-^19.05P^88^88
+^19.05P^89^89
 "KRN",19,11047,"RPC",1,0)
 BMX SQL
@@ -2709,4 +2709,6 @@
 "KRN",19,11047,"RPC",88,0)
 BMX TEST ADO
+"KRN",19,11047,"RPC",89,0)
+BMX UTF-8
 "KRN",19,11047,"U")
 BMX PROCEDURE CALLS
@@ -2866,5 +2868,5 @@
 0^41
 "KRN",8994,2562,0)
-BMXGetFacRS^GETFCRS^BMXRPC10^4
+BMXGetFacRS^GETFCRS^BMXRPC3^1
 "KRN",8994,2563,-1)
 0^46
@@ -2986,5 +2988,5 @@
 BMX UTF-8^UTF8^BMXRPC^1^P
 "KRN",8994,2646,1,0)
-^8994.01^4^4^3110407^^
+^^4^4^3100907^
 "KRN",8994,2646,1,1,0)
 This RPC returns a single value of 1 if database supports UTF-8; 0 if 
@@ -3072,7 +3074,7 @@
 ^9.49I^1^1
 "PKG",212,22,1,0)
-4.1000^3110417
+4.1000^3110511
 "PKG",212,22,1,1,0)
-^^3^3^3110417
+^^3^3^3110511
 "PKG",212,22,1,1,1,0)
 BMX 4.1000; WV version of BMX 4.0 for IHS.
@@ -3164,5 +3166,5 @@
 BMXADE1 ; IHS/OIT/HMW - BMXNet ADO.NET PROVIDER ;
 "RTN","BMXADE1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADE1",3,0)
  ;
@@ -3332,5 +3334,5 @@
 BMXADE2 ; IHS/OIT/HMW - BMXNet ADO.NET PROVIDER ;
 "RTN","BMXADE2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADE2",3,0)
  ;
@@ -3514,5 +3516,5 @@
 BMXADO ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADO",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADO",3,0)
  ; SS^BMXADO: RPC EP FROM WINDOWS/WEB APP TO GENERATE A SCHEMEA STRING (& OPTIONALLY, A DATA SET AS WELL)
@@ -3830,5 +3832,5 @@
 BMXADO2 ; IHS/CIHA/GIS - BMX ADO RECORDSET UTILS ;
 "RTN","BMXADO2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADO2",3,0)
  ;
@@ -3992,5 +3994,5 @@
 BMXADOF ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 4/6/11 12:52pm
 "RTN","BMXADOF",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOF",3,0)
  ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN
@@ -4456,5 +4458,5 @@
 BMXADOF1 ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ;
 "RTN","BMXADOF1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOF1",3,0)
  ; UPDATE FILEMAN WITH AN ADO RECORD SET FROM A WINDOWS/WEB APPLICATION
@@ -4608,5 +4610,5 @@
 BMXADOF2 ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ;
 "RTN","BMXADOF2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOF2",3,0)
  ; THIS ROUTINE CONTAINS SPECIAL ENTRY POINTS FOR UPDATING RPMS
@@ -4724,5 +4726,5 @@
 BMXADOFD ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 31 Jul 2009  12:41 PM
 "RTN","BMXADOFD",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOFD",3,0)
  ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN
@@ -4896,5 +4898,5 @@
 BMXADOFS ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 31 Jul 2009  12:42 PM
 "RTN","BMXADOFS",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOFS",3,0)
  ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN
@@ -5314,5 +5316,5 @@
 BMXADOI ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ;
 "RTN","BMXADOI",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOI",3,0)
  ; CUSTOM IDENTIFIERS
@@ -5480,5 +5482,5 @@
 BMXADOS ; IHS/CIHA/GIS - UPDATE THE BMX ADO SCHEMA FILE ; 4/5/11 1:54pm
 "RTN","BMXADOS",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOS",3,0)
  ; ENABLES NAVIGATION TO SUBFILES PRIOR TO UPDATING THE SCHEMA FILE ENTRY
@@ -6014,5 +6016,5 @@
 BMXADOS1 ; IHS/CIHA/GIS - UPDATE THE BMX ADO SCHEMA FILE GUI VERSION ;
 "RTN","BMXADOS1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOS1",3,0)
  ; RPC CALLS
@@ -6228,5 +6230,5 @@
 BMXADOV ; CIHA/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET 
 "RTN","BMXADOV",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOV",3,0)
  ; 
@@ -6474,5 +6476,5 @@
 BMXADOV1 ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ;
 "RTN","BMXADOV1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOV1",3,0)
  ; CONTINUATION FILE FOR BMXADOV
@@ -6934,5 +6936,5 @@
 BMXADOV2 ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ;
 "RTN","BMXADOV2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOV2",3,0)
  ; CUSTOM ITERATORS FOR RPMS
@@ -7210,5 +7212,5 @@
 BMXADOVJ ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ;
 "RTN","BMXADOVJ",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOVJ",3,0)
  ; THIS ROUTINE MANAGES THE JOINS
@@ -7368,5 +7370,5 @@
 BMXADOX ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADOX",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOX",3,0)
  ; EXMAPLES OF RPMS SCHEMAE GENERATION
@@ -8372,5 +8374,5 @@
 BMXADOX1 ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADOX1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOX1",3,0)
  ; EXMAPLES OF FILEMAN SCHEMA GENERATION
@@ -9024,5 +9026,5 @@
 BMXADOX2 ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADOX2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOX2",3,0)
  ; EXMAPLES OF FILEMAN SCHEMA GENERATION
@@ -9272,5 +9274,5 @@
 BMXADOXX ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADOXX",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOXX",3,0)
  ; EXMAPLES OF RPMS SCHEMAE GENERATION
@@ -10152,5 +10154,5 @@
 BMXADOXY ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ;
 "RTN","BMXADOXY",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXADOXY",3,0)
  ; EXMAPLES OF FILEMAN SCHEMA GENERATION
@@ -10746,5 +10748,5 @@
 BMXE01 ; IHS/OIT/FJE - ENVIRONMENT CHECK FOR BMX 2.0 ; 4/6/11 4:20pm
 "RTN","BMXE01",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXE01",3,0)
  ;
@@ -10852,5 +10854,5 @@
 BMXEHR ; IHS/OIT/GIS - ENCAPSULATE BMX CALLS FOR USE WITHIN THE EHR 14 Jan 2009 4:37 PM ; 04 Jun 2010  3:16 PM
 "RTN","BMXEHR",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXEHR",3,0)
  ;
@@ -11342,5 +11344,5 @@
 BMXFIND ; IHS/OIT/HMW - BMX GENERIC FIND ;
 "RTN","BMXFIND",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXFIND",3,0)
  ;
@@ -11864,5 +11866,5 @@
 BMXG ; IHS/OIT/HMW - UTIL: GET DATA ; 
 "RTN","BMXG",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXG",3,0)
  ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -11974,5 +11976,5 @@
 BMXGETS ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXGETS",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXGETS",3,0)
  ;
@@ -12268,5 +12270,5 @@
 BMXMBRK ; IHS/OIT/HMW - BMXNet MONITOR ;
 "RTN","BMXMBRK",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXMBRK",3,0)
  ;
@@ -12704,5 +12706,5 @@
 BMXMBRK2 ;IHS/OIT/HMW - BMXNet MONITOR ;
 "RTN","BMXMBRK2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXMBRK2",3,0)
  ;
@@ -13046,5 +13048,5 @@
 BMXMEVN ; IHS/OIT/HMW - BMXNet MONITOR ;
 "RTN","BMXMEVN",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXMEVN",3,0)
  ;
@@ -13580,535 +13582,535 @@
  Q
 "RTN","BMXMON")
-0^31^B185134800
+0^31^B189828327
 "RTN","BMXMON",1,0)
-BMXMON ; IHS/OIT/HMW - BMXNet MONITOR ; 4/6/11 12:42pm
+BMXMON ; IHS/OIT/HMW - BMXNet MONITOR ; 5/9/11 10:16am
 "RTN","BMXMON",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXMON",3,0)
  ;
 "RTN","BMXMON",4,0)
- ; IMPORTANT: Logging is on by default. Set XWBDEBUG=0 to turn it off.
+ ; Changes for *1000 by WV/SMH (Feb 2 2011) to support GT.M
 "RTN","BMXMON",5,0)
- ;
+ ; - XINETD entry point for GT.M
 "RTN","BMXMON",6,0)
- ; Changes for *1000 by WV/SMH (Feb 2 2011) to support GT.M
+ ; - Replacement of all W *-3 to W !
 "RTN","BMXMON",7,0)
- ; - XINETD entry point for GT.M
+ ; - Addition of logging capabilities for analysis using XWBDLOG
 "RTN","BMXMON",8,0)
- ; - Replacement of all W *-3 to W !
+ ; - In SESSRES
 "RTN","BMXMON",9,0)
- ; - Addition of logging capabilities for analysis
+ ; -- Broker Timeout set from Kernel System Parameter Broker Timeout Field
 "RTN","BMXMON",10,0)
- ; - In SESSRES
+ ; -- Process Name now gets Set to show in %SS or ZSY
 "RTN","BMXMON",11,0)
- ; -- Broker Timeout set from Kernel System Parameter Broker Timeout Field
+ ; - Error Handling does not log Network Errors to the Error Trap.
 "RTN","BMXMON",12,0)
- ; -- Process Name now changes to show name in %SS or ZSY
+    ; - Major refactoring to Writing to the TCP Network Stream.
 "RTN","BMXMON",13,0)
- ;
+    ; --> All writes are buffered up to 32767 characters (max string on Cache)
 "RTN","BMXMON",14,0)
- ;
+    ; --> Then sent...
 "RTN","BMXMON",15,0)
+    ; --> See EP's WRITE and WBF
+"RTN","BMXMON",16,0)
+    ; --> This avoids the side effects of the Nagle Algorithm on the Linux TCP Stack
+"RTN","BMXMON",17,0)
+    ; - BMXERR renamed to BMXERROR in EP ETRAP so that it can be sent via SNDERR.
+"RTN","BMXMON",18,0)
+    ; --> This reduces the need for custom error trap handling which is very difficult to do
+"RTN","BMXMON",19,0)
+    ; --> in Mumps for new programmers. Mumps errors now are thrown on the client.
+"RTN","BMXMON",20,0)
+ ;
+"RTN","BMXMON",21,0)
  ;IHS/OIT/HMW Patch 1 added validity check for passed-in namespace
-"RTN","BMXMON",16,0)
- ;
-"RTN","BMXMON",17,0)
+"RTN","BMXMON",22,0)
+ ;
+"RTN","BMXMON",23,0)
 STRT(BMXPORT,NS,IS,VB) ;EP
-"RTN","BMXMON",18,0)
+"RTN","BMXMON",24,0)
  ;Interactive monitor start
-"RTN","BMXMON",19,0)
+"RTN","BMXMON",25,0)
  ;Optional NS = namespace.  If undefined, start in current ns
-"RTN","BMXMON",20,0)
+"RTN","BMXMON",26,0)
  ;Optional IS = Integrated Security.  Default is 1
-"RTN","BMXMON",21,0)
+"RTN","BMXMON",27,0)
  ;Optional VB = Verbose. Default is 1
-"RTN","BMXMON",22,0)
- ;
-"RTN","BMXMON",23,0)
+"RTN","BMXMON",28,0)
+ ;
+"RTN","BMXMON",29,0)
  N Y,BMXNS,BMXWIN
-"RTN","BMXMON",24,0)
- ;
-"RTN","BMXMON",25,0)
+"RTN","BMXMON",30,0)
+ ;
+"RTN","BMXMON",31,0)
  ;Verbose
-"RTN","BMXMON",26,0)
+"RTN","BMXMON",32,0)
  S BMXVB=$G(VB,1)
-"RTN","BMXMON",27,0)
- ;
-"RTN","BMXMON",28,0)
+"RTN","BMXMON",33,0)
+ ;
+"RTN","BMXMON",34,0)
  ;Check if port already running
-"RTN","BMXMON",29,0)
+"RTN","BMXMON",35,0)
  I '$$SEMAPHOR(BMXPORT,"LOCK") W:BMXVB "BMXNet Monitor on port "_BMXPORT_" appears to be running already.",! Q
-"RTN","BMXMON",30,0)
+"RTN","BMXMON",36,0)
  S %=$$SEMAPHOR(BMXPORT,"UNLOCK")
-"RTN","BMXMON",31,0)
- ;
-"RTN","BMXMON",32,0)
+"RTN","BMXMON",37,0)
+ ;
+"RTN","BMXMON",38,0)
  D MARKER(BMXPORT,1) ;record problem marker
-"RTN","BMXMON",33,0)
+"RTN","BMXMON",39,0)
  ; -- start the monitor
-"RTN","BMXMON",34,0)
- ;
-"RTN","BMXMON",35,0)
+"RTN","BMXMON",40,0)
+ ;
+"RTN","BMXMON",41,0)
  ;Namespace
-"RTN","BMXMON",36,0)
+"RTN","BMXMON",42,0)
  X ^%ZOSF("UCI")
-"RTN","BMXMON",37,0)
+"RTN","BMXMON",43,0)
  S BMXNS=$G(NS,$P(Y,","))
-"RTN","BMXMON",38,0)
- ;
-"RTN","BMXMON",39,0)
+"RTN","BMXMON",44,0)
+ ;
+"RTN","BMXMON",45,0)
  ;Integrated security
-"RTN","BMXMON",40,0)
+"RTN","BMXMON",46,0)
  S BMXWIN=$G(IS,1)
-"RTN","BMXMON",41,0)
- ;
-"RTN","BMXMON",42,0)
+"RTN","BMXMON",47,0)
+ ;
+"RTN","BMXMON",48,0)
  ;J DEBUG^%Serenji("MON^BMXMON("_BMXPORT_","_BMXNS_","_BMXWIN_")")
-"RTN","BMXMON",43,0)
+"RTN","BMXMON",49,0)
  J MON^BMXMON(BMXPORT,BMXNS,BMXWIN)::5 I '$T W:BMXVB "Unable to run BMXNet Monitor in background.",! Q  ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",44,0)
+"RTN","BMXMON",50,0)
  F %=1:1:5 D  Q:%=0
-"RTN","BMXMON",45,0)
+"RTN","BMXMON",51,0)
  . W:BMXVB "Checking if BMXNet Monitor has started...",!
-"RTN","BMXMON",46,0)
+"RTN","BMXMON",52,0)
  . H 1
-"RTN","BMXMON",47,0)
+"RTN","BMXMON",53,0)
  . S:'$$MARKER(BMXPORT,0) %=0
-"RTN","BMXMON",48,0)
+"RTN","BMXMON",54,0)
  I $$MARKER(BMXPORT,0) D
-"RTN","BMXMON",49,0)
+"RTN","BMXMON",55,0)
  . W:BMXVB !,"BMXNet Monitor could not be started!",!
-"RTN","BMXMON",50,0)
+"RTN","BMXMON",56,0)
  . W:BMXVB "Check if port "_BMXPORT_" is busy on this CPU.",!
-"RTN","BMXMON",51,0)
+"RTN","BMXMON",57,0)
  . D MARKER(BMXPORT,-1) ;clear marker
-"RTN","BMXMON",52,0)
+"RTN","BMXMON",58,0)
  E  W:BMXVB "BMXNet Monitor started successfully."
-"RTN","BMXMON",53,0)
- ;
-"RTN","BMXMON",54,0)
- Q
-"RTN","BMXMON",55,0)
- ;
-"RTN","BMXMON",56,0)
+"RTN","BMXMON",59,0)
+ ;
+"RTN","BMXMON",60,0)
+ Q
+"RTN","BMXMON",61,0)
+ ;
+"RTN","BMXMON",62,0)
 RESTART ;EP
-"RTN","BMXMON",57,0)
+"RTN","BMXMON",63,0)
  ;Stop and Start all monitors in BMX MONITOR file
-"RTN","BMXMON",58,0)
+"RTN","BMXMON",64,0)
  ;Called by option BMX MONITOR START
-"RTN","BMXMON",59,0)
- ;
-"RTN","BMXMON",60,0)
+"RTN","BMXMON",65,0)
+ ;
+"RTN","BMXMON",66,0)
  D STOPALL
-"RTN","BMXMON",61,0)
+"RTN","BMXMON",67,0)
  D STRTALL
-"RTN","BMXMON",62,0)
- Q
-"RTN","BMXMON",63,0)
- ;
-"RTN","BMXMON",64,0)
+"RTN","BMXMON",68,0)
+ Q
+"RTN","BMXMON",69,0)
+ ;
+"RTN","BMXMON",70,0)
 STRTALL ;EP
-"RTN","BMXMON",65,0)
+"RTN","BMXMON",71,0)
  ;Start all monitors in BMX MONITOR file
-"RTN","BMXMON",66,0)
- ;
-"RTN","BMXMON",67,0)
+"RTN","BMXMON",72,0)
+ ;
+"RTN","BMXMON",73,0)
  N BMXIEN
-"RTN","BMXMON",68,0)
+"RTN","BMXMON",74,0)
  S BMXIEN=0 F  S BMXIEN=$O(^BMXMON(BMXIEN)) Q:'+BMXIEN  D
-"RTN","BMXMON",69,0)
+"RTN","BMXMON",75,0)
  . S BMXNOD=$G(^BMXMON(BMXIEN,0))
-"RTN","BMXMON",70,0)
+"RTN","BMXMON",76,0)
  . Q:'+BMXNOD
-"RTN","BMXMON",71,0)
+"RTN","BMXMON",77,0)
  . Q:'+$P(BMXNOD,U,2)
-"RTN","BMXMON",72,0)
+"RTN","BMXMON",78,0)
  . S BMXWIN=$P(BMXNOD,U,3)
-"RTN","BMXMON",73,0)
+"RTN","BMXMON",79,0)
  . S BMXNS=$P(BMXNOD,U,4)
-"RTN","BMXMON",74,0)
+"RTN","BMXMON",80,0)
  . D STRT($P(BMXNOD,U),BMXNS,BMXWIN,0)
-"RTN","BMXMON",75,0)
+"RTN","BMXMON",81,0)
  . Q
-"RTN","BMXMON",76,0)
- Q
-"RTN","BMXMON",77,0)
- ;
-"RTN","BMXMON",78,0)
+"RTN","BMXMON",82,0)
+ Q
+"RTN","BMXMON",83,0)
+ ;
+"RTN","BMXMON",84,0)
 STOPALL ;EP
-"RTN","BMXMON",79,0)
+"RTN","BMXMON",85,0)
  ;Stop all monitors in BMXNET MONITOR file
-"RTN","BMXMON",80,0)
- ;
-"RTN","BMXMON",81,0)
+"RTN","BMXMON",86,0)
+ ;
+"RTN","BMXMON",87,0)
  N BMXIEN,BMXPORT
-"RTN","BMXMON",82,0)
+"RTN","BMXMON",88,0)
  S BMXIEN=0 F  S BMXIEN=$O(^BMXMON(BMXIEN)) Q:'+BMXIEN  D
-"RTN","BMXMON",83,0)
+"RTN","BMXMON",89,0)
  . S BMXNOD=$G(^BMXMON(BMXIEN,0))
-"RTN","BMXMON",84,0)
+"RTN","BMXMON",90,0)
  . Q:'+BMXNOD
-"RTN","BMXMON",85,0)
+"RTN","BMXMON",91,0)
  . S BMXPORT=+BMXNOD
-"RTN","BMXMON",86,0)
+"RTN","BMXMON",92,0)
  . D STOP(BMXPORT,0)
-"RTN","BMXMON",87,0)
- Q
-"RTN","BMXMON",88,0)
- ;
-"RTN","BMXMON",89,0)
+"RTN","BMXMON",93,0)
+ Q
+"RTN","BMXMON",94,0)
+ ;
+"RTN","BMXMON",95,0)
 STOP(BMXPORT,VB) ;EP Stop monitor on BMXPORT
-"RTN","BMXMON",90,0)
+"RTN","BMXMON",96,0)
  ;Open a channel to monitor on BMXPORT and send shutdown request
-"RTN","BMXMON",91,0)
+"RTN","BMXMON",97,0)
  ;Optional VB = Verbose. Default is 1
-"RTN","BMXMON",92,0)
- ;
-"RTN","BMXMON",93,0)
+"RTN","BMXMON",98,0)
+ ;
+"RTN","BMXMON",99,0)
  N IP,REF,X,DEV
-"RTN","BMXMON",94,0)
+"RTN","BMXMON",100,0)
  S U="^" D HOME^%ZIS
-"RTN","BMXMON",95,0)
- ;
-"RTN","BMXMON",96,0)
+"RTN","BMXMON",101,0)
+ ;
+"RTN","BMXMON",102,0)
  ;Verbose
-"RTN","BMXMON",97,0)
+"RTN","BMXMON",103,0)
  S BMXVB=$G(VB,1)
-"RTN","BMXMON",98,0)
- ;
-"RTN","BMXMON",99,0)
+"RTN","BMXMON",104,0)
+ ;
+"RTN","BMXMON",105,0)
  D:BMXVB EN^DDIOL("Stop BMXNet Monitor...")
-"RTN","BMXMON",100,0)
+"RTN","BMXMON",106,0)
  X ^%ZOSF("UCI") S REF=Y
-"RTN","BMXMON",101,0)
+"RTN","BMXMON",107,0)
  S IP="0.0.0.0" ;get server IP
-"RTN","BMXMON",102,0)
+"RTN","BMXMON",108,0)
  IF $G(BMXPORT)="" S BMXPORT=9200
-"RTN","BMXMON",103,0)
+"RTN","BMXMON",109,0)
  ; -- make sure the listener is running
-"RTN","BMXMON",104,0)
+"RTN","BMXMON",110,0)
  I $$SEMAPHOR(BMXPORT,"LOCK") D  Q
-"RTN","BMXMON",105,0)
+"RTN","BMXMON",111,0)
  . S %=$$SEMAPHOR(BMXPORT,"UNLOCK")
-"RTN","BMXMON",106,0)
+"RTN","BMXMON",112,0)
  . D:BMXVB EN^DDIOL("BMXNet Monitor does not appear to be running.")
-"RTN","BMXMON",107,0)
+"RTN","BMXMON",113,0)
  ; -- send the shutdown message to the TCP Listener process
-"RTN","BMXMON",108,0)
+"RTN","BMXMON",114,0)
  D CALL^%ZISTCP("127.0.0.1",BMXPORT) I POP D  Q
-"RTN","BMXMON",109,0)
+"RTN","BMXMON",115,0)
  . S %=$$SEMAPHOR(BMXPORT,"UNLOCK")
-"RTN","BMXMON",110,0)
+"RTN","BMXMON",116,0)
  . D:BMXVB EN^DDIOL("BMXNet Monitor does not appear to be running.")
-"RTN","BMXMON",111,0)
+"RTN","BMXMON",117,0)
  U IO
-"RTN","BMXMON",112,0)
+"RTN","BMXMON",118,0)
  S X=$T(+2),X=$P(X,";;",2),X=$P(X,";")
-"RTN","BMXMON",113,0)
+"RTN","BMXMON",119,0)
  IF X="" S X=0
-"RTN","BMXMON",114,0)
+"RTN","BMXMON",120,0)
  S X=$C($L(X))_X
-"RTN","BMXMON",115,0)
+"RTN","BMXMON",121,0)
  W "{BMX}00011TCPshutdown",!
-"RTN","BMXMON",116,0)
+"RTN","BMXMON",122,0)
  R X#3:5 ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",117,0)
+"RTN","BMXMON",123,0)
  D CLOSE^%ZISTCP
-"RTN","BMXMON",118,0)
+"RTN","BMXMON",124,0)
  I X="ack" D:BMXVB EN^DDIOL("BMXNet Monitor has been shutdown.")
-"RTN","BMXMON",119,0)
+"RTN","BMXMON",125,0)
  E  D:BMXVB EN^DDIOL("Shutdown Failed!")
-"RTN","BMXMON",120,0)
+"RTN","BMXMON",126,0)
  ;change process name
-"RTN","BMXMON",121,0)
+"RTN","BMXMON",127,0)
  D CHPRN($J)
-"RTN","BMXMON",122,0)
- Q
-"RTN","BMXMON",123,0)
- ;
-"RTN","BMXMON",124,0)
+"RTN","BMXMON",128,0)
+ Q
+"RTN","BMXMON",129,0)
+ ;
+"RTN","BMXMON",130,0)
 MON(BMXPORT,NS,IS) ;Monitor port for connection & shutdown requests
-"RTN","BMXMON",125,0)
+"RTN","BMXMON",131,0)
  ;NS = Namespace to Start monitor
-"RTN","BMXMON",126,0)
+"RTN","BMXMON",132,0)
  ;IS = 1: Enable integrated security
-"RTN","BMXMON",127,0)
- ;
-"RTN","BMXMON",128,0)
+"RTN","BMXMON",133,0)
+ ;
+"RTN","BMXMON",134,0)
  N BMXDEV,BMXQUIT,BMXDTIME,BMXLEN,BMXACT,BMXWIN,BMXNS
-"RTN","BMXMON",129,0)
+"RTN","BMXMON",135,0)
  S BMXQUIT=0,BMXDTIME=999999
-"RTN","BMXMON",130,0)
- ;
-"RTN","BMXMON",131,0)
+"RTN","BMXMON",136,0)
+ ;
+"RTN","BMXMON",137,0)
  ;Set lock
-"RTN","BMXMON",132,0)
+"RTN","BMXMON",138,0)
  Q:'$$SEMAPHOR(BMXPORT,"LOCK")
-"RTN","BMXMON",133,0)
+"RTN","BMXMON",139,0)
  ;Clear problem marker
-"RTN","BMXMON",134,0)
+"RTN","BMXMON",140,0)
  D MARKER(BMXPORT,-1)
-"RTN","BMXMON",135,0)
+"RTN","BMXMON",141,0)
  ;H 1
-"RTN","BMXMON",136,0)
- ;
-"RTN","BMXMON",137,0)
+"RTN","BMXMON",142,0)
+ ;
+"RTN","BMXMON",143,0)
  ;Namespace
-"RTN","BMXMON",138,0)
+"RTN","BMXMON",144,0)
  X ^%ZOSF("UCI")
-"RTN","BMXMON",139,0)
+"RTN","BMXMON",145,0)
  I $G(NS)="" S BMXNS=$P(Y,",")
-"RTN","BMXMON",140,0)
+"RTN","BMXMON",146,0)
  E  S BMXNS=NS
-"RTN","BMXMON",141,0)
- ;
-"RTN","BMXMON",142,0)
+"RTN","BMXMON",147,0)
+ ;
+"RTN","BMXMON",148,0)
  ;Integrated security
-"RTN","BMXMON",143,0)
+"RTN","BMXMON",149,0)
  S BMXWIN=$G(IS,1)
-"RTN","BMXMON",144,0)
- ;
-"RTN","BMXMON",145,0)
+"RTN","BMXMON",150,0)
+ ;
+"RTN","BMXMON",151,0)
  ;Open server port; 
-"RTN","BMXMON",146,0)
+"RTN","BMXMON",152,0)
  S BMXDEV="|TCP|"_BMXPORT
-"RTN","BMXMON",147,0)
+"RTN","BMXMON",153,0)
  C BMXDEV ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",148,0)
+"RTN","BMXMON",154,0)
  O BMXDEV:(:BMXPORT:"S"):5 I '$T Q  ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",149,0)
- ;
-"RTN","BMXMON",150,0)
+"RTN","BMXMON",155,0)
+ ;
+"RTN","BMXMON",156,0)
  ;S BMXDTIME(1)=BMXDTIME ; TODO: Set timeouts
-"RTN","BMXMON",151,0)
+"RTN","BMXMON",157,0)
  S BMXDTIME(1)=.5 ;HMW 20050120
-"RTN","BMXMON",152,0)
+"RTN","BMXMON",158,0)
  U BMXDEV
-"RTN","BMXMON",153,0)
+"RTN","BMXMON",159,0)
  F  D  Q:BMXQUIT
-"RTN","BMXMON",154,0)
+"RTN","BMXMON",160,0)
  . R BMXACT#5:BMXDTIME ;Read first 5 chars from TCP buffer, timeout=BMXDTIME ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",155,0)
+"RTN","BMXMON",161,0)
  . I BMXACT'="{BMX}" S BMXQUIT=1 Q
-"RTN","BMXMON",156,0)
+"RTN","BMXMON",162,0)
  . R BMXACT#5:BMXDTIME ;Read next 5 chars - message length ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",157,0)
+"RTN","BMXMON",163,0)
  . S BMXLEN=+BMXACT
-"RTN","BMXMON",158,0)
+"RTN","BMXMON",164,0)
  . R BMXACT#BMXLEN:BMXDTIME ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",159,0)
+"RTN","BMXMON",165,0)
  . I $P(BMXACT,"^")="TCPconnect" D  Q
-"RTN","BMXMON",160,0)
+"RTN","BMXMON",166,0)
  . . N BMXNSJ,X,Y,ZCHILD,%
-"RTN","BMXMON",161,0)
+"RTN","BMXMON",167,0)
  . . S BMXNSJ=$P(BMXACT,"^",2) ;Namespace
-"RTN","BMXMON",162,0)
+"RTN","BMXMON",168,0)
  . . S BMXNSJ=$P(BMXNSJ,",")
-"RTN","BMXMON",163,0)
+"RTN","BMXMON",169,0)
  . . I BMXNSJ="" S BMXNSJ=BMXNS
-"RTN","BMXMON",164,0)
+"RTN","BMXMON",170,0)
  . . S X=BMXNSJ
-"RTN","BMXMON",165,0)
+"RTN","BMXMON",171,0)
  . . X ^%ZOSF("UCICHECK") I Y=0 S BMXNSJ=BMXNS
-"RTN","BMXMON",166,0)
+"RTN","BMXMON",172,0)
  . . S STATUS=$S(Y'=0:"CONNECTION OK",1:"CONNECTION FAILED, INVALID NAMESPACE") ; SET CONNECTION STATUS BASED ON NAMESPACE VALIDITY
-"RTN","BMXMON",167,0)
+"RTN","BMXMON",173,0)
  . . J SESSION^BMXMON(BMXWIN)[BMXNSJ]:(:5:BMXDEV:BMXDEV):5 ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",168,0)
+"RTN","BMXMON",174,0)
  . . X ("S ZCHILD="_$C(36,90)_"CHILD")
-"RTN","BMXMON",169,0)
+"RTN","BMXMON",175,0)
  . . I ZCHILD S ^BMXTMP("CONNECT STATUS",ZCHILD)=STATUS
-"RTN","BMXMON",170,0)
+"RTN","BMXMON",176,0)
  . . Q
-"RTN","BMXMON",171,0)
+"RTN","BMXMON",177,0)
  . I $P(BMXACT,"^")="TCPshutdown" S BMXQUIT=1 W "ack",!
-"RTN","BMXMON",172,0)
+"RTN","BMXMON",178,0)
  S %=$$SEMAPHOR(BMXPORT,"UNLOCK") ; destroy 'running flag'
-"RTN","BMXMON",173,0)
- Q
-"RTN","BMXMON",174,0)
- ;
-"RTN","BMXMON",175,0)
+"RTN","BMXMON",179,0)
+ Q
+"RTN","BMXMON",180,0)
+ ;
+"RTN","BMXMON",181,0)
 XINETD    ;PEP Directly from xinetd or inetd for GT.M
-"RTN","BMXMON",176,0)
+"RTN","BMXMON",182,0)
   ;
-"RTN","BMXMON",177,0)
+"RTN","BMXMON",183,0)
   N XWBDEBUG S XWBDEBUG=$$GET^XPAR("SYS","XWBDEBUG")  ; 0 1 2 or 3; depending on the level of verbosity desired.
-"RTN","BMXMON",178,0)
+"RTN","BMXMON",184,0)
   D:XWBDEBUG LOGSTART^XWBDLOG("XINETD^BMXMON")  ; Start Log only if logging
-"RTN","BMXMON",179,0)
+"RTN","BMXMON",185,0)
   ;
-"RTN","BMXMON",180,0)
+"RTN","BMXMON",186,0)
   N BMXDEV
-"RTN","BMXMON",181,0)
+"RTN","BMXMON",187,0)
   S U="^",$ETRAP="D ^%ZTER H" ;Set up the error trap
-"RTN","BMXMON",182,0)
+"RTN","BMXMON",188,0)
   S $ZT="" ;Clear old trap
-"RTN","BMXMON",183,0)
+"RTN","BMXMON",189,0)
   ;
-"RTN","BMXMON",184,0)
+"RTN","BMXMON",190,0)
   ; GT.M specific error and device code; get remove ip address
-"RTN","BMXMON",185,0)
+"RTN","BMXMON",191,0)
   S @("$ZINTERRUPT=""I $$JOBEXAM^ZU($ZPOSITION)""")
-"RTN","BMXMON",186,0)
+"RTN","BMXMON",192,0)
   S BMXDEV=$P X "U BMXDEV:(nowrap:nodelimiter:ioerror=""^%ZTER H"")"
-"RTN","BMXMON",187,0)
+"RTN","BMXMON",193,0)
   S %="",@("%=$ZTRNLNM(""REMOTE_HOST"")") S:$L(%) IO("GTM-IP")=%
-"RTN","BMXMON",188,0)
+"RTN","BMXMON",194,0)
   ;
-"RTN","BMXMON",189,0)
+"RTN","BMXMON",195,0)
   ; Read message type
-"RTN","BMXMON",190,0)
+"RTN","BMXMON",196,0)
   N BMXACT,BMXDTIME
-"RTN","BMXMON",191,0)
+"RTN","BMXMON",197,0)
   S BMXDTIME=10  ; change in 2.2 instead of 9999999 - initial conn timout
-"RTN","BMXMON",192,0)
+"RTN","BMXMON",198,0)
   R BMXACT#5:BMXDTIME
-"RTN","BMXMON",193,0)
+"RTN","BMXMON",199,0)
   ;
-"RTN","BMXMON",194,0)
+"RTN","BMXMON",200,0)
   D LOG("Read: "_BMXACT)
-"RTN","BMXMON",195,0)
+"RTN","BMXMON",201,0)
   ;
-"RTN","BMXMON",196,0)
+"RTN","BMXMON",202,0)
   Q:BMXACT'="{BMX}"  ; Not a BMX message - quit.
-"RTN","BMXMON",197,0)
+"RTN","BMXMON",203,0)
   ; Fall through to below...
-"RTN","BMXMON",198,0)
+"RTN","BMXMON",204,0)
 GTMLNX    ;EP from XWBTCPM for GT.M
-"RTN","BMXMON",199,0)
+"RTN","BMXMON",205,0)
   ; not implementing NS and integrated authentication
-"RTN","BMXMON",200,0)
+"RTN","BMXMON",206,0)
   ; Vars: Read timeout, msg len, msg, windows auth, Namespace
-"RTN","BMXMON",201,0)
+"RTN","BMXMON",207,0)
   N BMXDTIME,BMXLEN,BMXACT,BMXWIN,BMXNS
-"RTN","BMXMON",202,0)
+"RTN","BMXMON",208,0)
   S BMXNSJ="",BMXWIN=0  ; No NS on GT.M, no Windows Authentication
-"RTN","BMXMON",203,0)
+"RTN","BMXMON",209,0)
   S BMXDTIME(1)=.5,BMXDTIME=180  ; sign on timeout
-"RTN","BMXMON",204,0)
+"RTN","BMXMON",210,0)
   R BMXACT#5:BMXDTIME ;Read next 5 chars - message length
-"RTN","BMXMON",205,0)
+"RTN","BMXMON",211,0)
   ;
-"RTN","BMXMON",206,0)
+"RTN","BMXMON",212,0)
   D LOG("Read: "_BMXACT)
-"RTN","BMXMON",207,0)
+"RTN","BMXMON",213,0)
   ;
-"RTN","BMXMON",208,0)
+"RTN","BMXMON",214,0)
   S BMXLEN=+BMXACT
-"RTN","BMXMON",209,0)
+"RTN","BMXMON",215,0)
   R BMXACT#BMXLEN:BMXDTIME
-"RTN","BMXMON",210,0)
-  ;
-"RTN","BMXMON",211,0)
-  D LOG("Read: "_BMXACT)
-"RTN","BMXMON",212,0)
-  ;
-"RTN","BMXMON",213,0)
-  I $P(BMXACT,"^")="TCPconnect" S ^BMXTMP("CONNECT STATUS",$JOB)="CONNECTION OK" G SESSRES  ; <--WARNING: A GOTO
-"RTN","BMXMON",214,0)
-  I $P(BMXACT,"^")="TCPshutdown" W "ack",! Q
-"RTN","BMXMON",215,0)
-  QUIT  ; Should't hit this quit, but just in case
 "RTN","BMXMON",216,0)
   ;
 "RTN","BMXMON",217,0)
+  D LOG("Read: "_BMXACT)
+"RTN","BMXMON",218,0)
+  ;
+"RTN","BMXMON",219,0)
+  I $P(BMXACT,"^")="TCPconnect" S ^BMXTMP("CONNECT STATUS",$JOB)="CONNECTION OK" G SESSRES  ; <--WARNING: A GOTO
+"RTN","BMXMON",220,0)
+  I $P(BMXACT,"^")="TCPshutdown" W "ack",! Q
+"RTN","BMXMON",221,0)
+  QUIT  ; Should't hit this quit, but just in case
+"RTN","BMXMON",222,0)
+  ;
+"RTN","BMXMON",223,0)
 SESSION(BMXWIN) ;EP
-"RTN","BMXMON",218,0)
+"RTN","BMXMON",224,0)
  ;Start session monitor
-"RTN","BMXMON",219,0)
+"RTN","BMXMON",225,0)
  ;BMXWIN = 1: Enable integrated security
-"RTN","BMXMON",220,0)
+"RTN","BMXMON",226,0)
 SESSRES ;EP - reentry point from trap
-"RTN","BMXMON",221,0)
+"RTN","BMXMON",227,0)
  ; new in 2.2: Use kernel rpc timeout instead of 9999999 
-"RTN","BMXMON",222,0)
+"RTN","BMXMON",228,0)
  S BMXDTIME(1)=.5,BMXDTIME=$$BAT^XUPARAM  
-"RTN","BMXMON",223,0)
- ;
-"RTN","BMXMON",224,0)
+"RTN","BMXMON",229,0)
+ ;
+"RTN","BMXMON",230,0)
  ; Change Process Name (new in 2.2 and 2.3)
-"RTN","BMXMON",225,0)
+"RTN","BMXMON",231,0)
  ; (GT.M doesn't store the IP in $P, but Cache does. We get GT.M
-"RTN","BMXMON",226,0)
+"RTN","BMXMON",232,0)
  ;   remote process IP from linux env var $REMOTE_HOST)
-"RTN","BMXMON",227,0)
+"RTN","BMXMON",233,0)
  D:+$G(IO("GTM-IP")) CHPRN("BMX:ip"_$P(IO("GTM-IP"),".",3,4)) ; GT.M
-"RTN","BMXMON",228,0)
+"RTN","BMXMON",234,0)
  D:+$P CHPRN("BMX:ip_"_$P($P,".",3,4)) ; Cache
-"RTN","BMXMON",229,0)
- ;
-"RTN","BMXMON",230,0)
+"RTN","BMXMON",235,0)
+ ;
+"RTN","BMXMON",236,0)
  ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",231,0)
+"RTN","BMXMON",237,0)
  N $ESTACK S $ETRAP="D ETRAP^BMXMON"
-"RTN","BMXMON",232,0)
+"RTN","BMXMON",238,0)
  S DIQUIET=1,U="^" D DT^DICRW
-"RTN","BMXMON",233,0)
+"RTN","BMXMON",239,0)
  D UNREGALL^BMXMEVN ;Unregister all events for this session
-"RTN","BMXMON",234,0)
+"RTN","BMXMON",240,0)
  U $P D SESSMAIN
-"RTN","BMXMON",235,0)
+"RTN","BMXMON",241,0)
  ;Turn off the error trap for the exit
-"RTN","BMXMON",236,0)
+"RTN","BMXMON",242,0)
  S $ETRAP=""
-"RTN","BMXMON",237,0)
+"RTN","BMXMON",243,0)
  I $G(DUZ) D LOGOUT^XUSRB
-"RTN","BMXMON",238,0)
+"RTN","BMXMON",244,0)
  K BMXR,BMXARY
-"RTN","BMXMON",239,0)
+"RTN","BMXMON",245,0)
  C $P ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",240,0)
- Q
-"RTN","BMXMON",241,0)
- ;
-"RTN","BMXMON",242,0)
+"RTN","BMXMON",246,0)
+ Q
+"RTN","BMXMON",247,0)
+ ;
+"RTN","BMXMON",248,0)
 SESSMAIN ; MAIN LOOP!!!!!!
-"RTN","BMXMON",243,0)
- N BMXTBUF
-"RTN","BMXMON",244,0)
+"RTN","BMXMON",249,0)
+ N BMXTBUF ; BMX Read Buffer
+"RTN","BMXMON",250,0)
+    N BMXWBUF S BMXWBUF="" ; BMX Write Buffer
+"RTN","BMXMON",251,0)
  D SETUP^BMXMSEC(.RET) ;Setup required system vars
-"RTN","BMXMON",245,0)
+"RTN","BMXMON",252,0)
  S U="^"
-"RTN","BMXMON",246,0)
+"RTN","BMXMON",253,0)
  U $P
-"RTN","BMXMON",247,0)
+"RTN","BMXMON",254,0)
  F  D  Q:BMXTBUF="#BYE#"
-"RTN","BMXMON",248,0)
+"RTN","BMXMON",255,0)
  . R BMXTBUF#11:BMXDTIME IF '$T D TIMEOUT S BMXTBUF="#BYE#" Q  ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",249,0)
+"RTN","BMXMON",256,0)
  . ;
-"RTN","BMXMON",250,0)
+"RTN","BMXMON",257,0)
  . D LOG("Read: "_BMXTBUF)
-"RTN","BMXMON",251,0)
+"RTN","BMXMON",258,0)
  . ;
-"RTN","BMXMON",252,0)
+"RTN","BMXMON",259,0)
  . I BMXTBUF="#BYE#" QUIT  ;**QUITTING HERE**
-"RTN","BMXMON",253,0)
+"RTN","BMXMON",260,0)
  . S BMXHTYPE=$S($E(BMXTBUF,1,5)="{BMX}":1,1:0)  ;check HDR
-"RTN","BMXMON",254,0)
+"RTN","BMXMON",261,0)
  . I 'BMXHTYPE S BMXTBUF="#BYE#" D  QUIT  ;;***QUITTING HERE***
-"RTN","BMXMON",255,0)
+"RTN","BMXMON",262,0)
  . . D SNDERR 
-"RTN","BMXMON",256,0)
- . . W BMXTBUF,$C(4),! 
-"RTN","BMXMON",257,0)
- . . D LOG("Write: "_BMXTBUF_$C(4)_"(flush)")
-"RTN","BMXMON",258,0)
+"RTN","BMXMON",263,0)
+ . . D WRITE(BMXTBUF_$C(4)),WBF
+"RTN","BMXMON",264,0)
  . S BMXTLEN=$E(BMXTBUF,6,10),L=$E(BMXTBUF,11,11)
-"RTN","BMXMON",259,0)
+"RTN","BMXMON",265,0)
  . R BMXTBUF#4:BMXDTIME(1) 
-"RTN","BMXMON",260,0)
- . ;
-"RTN","BMXMON",261,0)
- . D LOG("Read: "_BMXTBUF)
-"RTN","BMXMON",262,0)
- . ;
-"RTN","BMXMON",263,0)
- . S BMXTBUF=L_BMXTBUF ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",264,0)
- . S BMXPLEN=BMXTBUF
-"RTN","BMXMON",265,0)
- . R BMXTBUF#BMXPLEN:BMXDTIME(1) ;IHS/OIT/HMW SAC Exemption Applied For
 "RTN","BMXMON",266,0)
  . ;
@@ -14118,354 +14120,368 @@
  . ;
 "RTN","BMXMON",269,0)
+ . S BMXTBUF=L_BMXTBUF ;IHS/OIT/HMW SAC Exemption Applied For
+"RTN","BMXMON",270,0)
+ . S BMXPLEN=BMXTBUF
+"RTN","BMXMON",271,0)
+ . R BMXTBUF#BMXPLEN:BMXDTIME(1) ;IHS/OIT/HMW SAC Exemption Applied For
+"RTN","BMXMON",272,0)
+ . ;
+"RTN","BMXMON",273,0)
+ . D LOG("Read: "_BMXTBUF)
+"RTN","BMXMON",274,0)
+ . ;
+"RTN","BMXMON",275,0)
  . I $P(BMXTBUF,U)="TCPconnect" D  QUIT  ;;***QUIT HERE***
-"RTN","BMXMON",270,0)
+"RTN","BMXMON",276,0)
  . . D SNDERR 
-"RTN","BMXMON",271,0)
- . . W "accept",$C(4),!  ;Ack
-"RTN","BMXMON",272,0)
- . . ;
-"RTN","BMXMON",273,0)
- . . D LOG("Write: accept"_$C(4)_"(flush)")
-"RTN","BMXMON",274,0)
- . . ;
-"RTN","BMXMON",275,0)
+"RTN","BMXMON",277,0)
+ . . D WRITE("accept"_$C(4)),WBF  ;Ack
+"RTN","BMXMON",278,0)
  . IF BMXHTYPE D
-"RTN","BMXMON",276,0)
+"RTN","BMXMON",279,0)
  . . K BMXR,BMXARY
-"RTN","BMXMON",277,0)
+"RTN","BMXMON",280,0)
  . . IF BMXTBUF="#BYE#" D  QUIT
-"RTN","BMXMON",278,0)
+"RTN","BMXMON",281,0)
  . . . D SNDERR 
-"RTN","BMXMON",279,0)
- . . . W "#BYE#",$C(4),!
-"RTN","BMXMON",280,0)
- . . . ;
-"RTN","BMXMON",281,0)
- . . . D LOG("Write: #BYE#\4")
 "RTN","BMXMON",282,0)
- . . . ;
+ . . . D WRITE("#BYE#"_$C(4))
 "RTN","BMXMON",283,0)
+    . . . D WBF
+"RTN","BMXMON",284,0)
  . . S BMXTLEN=BMXTLEN-15
-"RTN","BMXMON",284,0)
+"RTN","BMXMON",285,0)
  . . D CALLP^BMXMBRK(.BMXR,BMXTBUF)
-"RTN","BMXMON",285,0)
+"RTN","BMXMON",286,0)
  . . S BMXPTYPE=$S('$D(BMXPTYPE):1,BMXPTYPE<1:1,BMXPTYPE>6:1,1:BMXPTYPE)
-"RTN","BMXMON",286,0)
+"RTN","BMXMON",287,0)
  . IF BMXTBUF="#BYE#" Q
-"RTN","BMXMON",287,0)
+"RTN","BMXMON",288,0)
  . U $P
-"RTN","BMXMON",288,0)
+"RTN","BMXMON",289,0)
  . D SNDERR ;Clears SNDERR parameters
-"RTN","BMXMON",289,0)
+"RTN","BMXMON",290,0)
  . D SND
-"RTN","BMXMON",290,0)
- . D WRITE($C(4)) W ! ;send eot and flush buffer
 "RTN","BMXMON",291,0)
- . ;
+ . D WRITE($C(4)) ;send eot
 "RTN","BMXMON",292,0)
- . D LOG("Write: "_$C(4))
+    . D WBF ; Flush Buffer
 "RTN","BMXMON",293,0)
- . ;
+ D UNREGALL^BMXMEVN ;Unregister all events for this session
 "RTN","BMXMON",294,0)
- D UNREGALL^BMXMEVN ;Unregister all events for this session
+ Q  ;End Of Main
 "RTN","BMXMON",295,0)
- Q  ;End Of Main
+ ;
 "RTN","BMXMON",296,0)
- ;
+SNDERR ;send error information
 "RTN","BMXMON",297,0)
- ;
+ ;BMXSEC is the security packet, BMXERROR is application packet
 "RTN","BMXMON",298,0)
-SNDERR ;send error information
+ N X
 "RTN","BMXMON",299,0)
- ;BMXSEC is the security packet, BMXERROR is application packet
+ S X=$E($G(BMXSEC),1,255)
 "RTN","BMXMON",300,0)
- N X
+ D WRITE($C($L(X))_X)
 "RTN","BMXMON",301,0)
- S X=$E($G(BMXSEC),1,255)
+ S X=$E($G(BMXERROR),1,255)
 "RTN","BMXMON",302,0)
- W $C($L(X))_X W !
+ D WRITE($C($L(X))_X)
 "RTN","BMXMON",303,0)
- D LOG("Write: "_$C($L(X))_X_"(flush)")
+ S BMXERROR="",BMXSEC="" ;clears parameters
 "RTN","BMXMON",304,0)
- S X=$E($G(BMXERROR),1,255)
+ Q
 "RTN","BMXMON",305,0)
- W $C($L(X))_X W !
+ ;
 "RTN","BMXMON",306,0)
- D LOG("Write: "_$C($L(X))_X_"(flush)")
+WRITE(BMXSTR) ;Write a data string to the output buffer
 "RTN","BMXMON",307,0)
- S BMXERROR="",BMXSEC="" ;clears parameters
+    F  Q:'$L(BMXSTR)  D
 "RTN","BMXMON",308,0)
- Q
+    . I $L(BMXWBUF)+$L(BMXSTR)>32767 D WBF  ; Maximum String Length on Cache
 "RTN","BMXMON",309,0)
- ;
+    . S BMXWBUF=BMXWBUF_$E(BMXSTR,1,255),BMXSTR=$E(BMXSTR,256,999999)
 "RTN","BMXMON",310,0)
-WRITE(BMXSTR) ;Write a data string
+    QUIT
 "RTN","BMXMON",311,0)
- ;
+    ;
 "RTN","BMXMON",312,0)
- I $L(BMXSTR)<511 W ! W BMXSTR Q
+WBF ;Write Buffer to Network Stream then flush
 "RTN","BMXMON",313,0)
- ;Handle a long string
+    Q:'$L(BMXWBUF)
 "RTN","BMXMON",314,0)
- W ! ;Flush the buffer
+    I $G(XWBDEBUG)>2,$L(BMXWBUF) D LOG^XWBDLOG("wrt ("_$L(BMXWBUF)_"): "_BMXWBUF)
 "RTN","BMXMON",315,0)
- F  Q:'$L(BMXSTR)  W $E(BMXSTR,1,510),! S BMXSTR=$E(BMXSTR,511,99999)
+    W BMXWBUF,!
 "RTN","BMXMON",316,0)
- Q
+    S BMXWBUF=""
 "RTN","BMXMON",317,0)
+    QUIT
+"RTN","BMXMON",318,0)
+ 
+"RTN","BMXMON",319,0)
 SND ; -- send data for all, Let WRITE sort it out
-"RTN","BMXMON",318,0)
+"RTN","BMXMON",320,0)
  N I,T
-"RTN","BMXMON",319,0)
- ;
-"RTN","BMXMON",320,0)
+"RTN","BMXMON",321,0)
+ ;
+"RTN","BMXMON",322,0)
  ; -- error or abort occurred, send null
-"RTN","BMXMON",321,0)
- IF $L(BMXSEC)>0 D WRITE(""),LOG("Write Sting.Empty") Q
-"RTN","BMXMON",322,0)
+"RTN","BMXMON",323,0)
+ IF $L(BMXSEC)>0 D WRITE("") QUIT
+"RTN","BMXMON",324,0)
+    ;
+"RTN","BMXMON",325,0)
  ; -- single value
-"RTN","BMXMON",323,0)
- IF BMXPTYPE=1 S BMXR=$G(BMXR) D WRITE(BMXR),LOG("Write: "_BMXR) Q
-"RTN","BMXMON",324,0)
- ; -- table delimited by CR+LF
-"RTN","BMXMON",325,0)
- IF BMXPTYPE=2 D  Q
 "RTN","BMXMON",326,0)
- . S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE(BMXR(I)),WRITE($C(13,10)),LOG("Write: "_BMXR(I))
+ IF BMXPTYPE=1 S BMXR=$G(BMXR) D WRITE(BMXR) QUIT
 "RTN","BMXMON",327,0)
+ ;
+"RTN","BMXMON",328,0)
+    ; -- table delimited by CR+LF
+"RTN","BMXMON",329,0)
+ IF BMXPTYPE=2 D  QUIT
+"RTN","BMXMON",330,0)
+ . S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE(BMXR(I)),WRITE($C(13,10))
+"RTN","BMXMON",331,0)
+    ;
+"RTN","BMXMON",332,0)
  ; -- word processing
-"RTN","BMXMON",328,0)
- IF BMXPTYPE=3 D  Q
-"RTN","BMXMON",329,0)
- . S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE(BMXR(I)),LOG("Write: "_BMXR(I)) D:BMXWRAP WRITE($C(13,10)),LOG("Write: "_$C(13,10))
-"RTN","BMXMON",330,0)
+"RTN","BMXMON",333,0)
+ IF BMXPTYPE=3 D  QUIT
+"RTN","BMXMON",334,0)
+ . S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE(BMXR(I)),WRITE($C(13,10)):BMXWRAP
+"RTN","BMXMON",335,0)
+    ;
+"RTN","BMXMON",336,0)
  ; -- global array
-"RTN","BMXMON",331,0)
- IF BMXPTYPE=4 D  Q
-"RTN","BMXMON",332,0)
- . S I=$G(BMXR) Q:I=""  S T=$E(I,1,$L(I)-1) D:$D(@I)>10 WRITE(@I),LOG("Write: "_@I)
-"RTN","BMXMON",333,0)
- . F  S I=$Q(@I) Q:I=""!(I'[T)  W ! W @I W:BMXWRAP&(@I'=$C(13,10)) $C(13,10) D LOG("Write: "_@I)
-"RTN","BMXMON",334,0)
+"RTN","BMXMON",337,0)
+ IF BMXPTYPE=4 D  QUIT
+"RTN","BMXMON",338,0)
+ . S I=$G(BMXR) Q:I=""  S T=$E(I,1,$L(I)-1) D:$D(@I)>10 WRITE(@I)
+"RTN","BMXMON",339,0)
+ . F  S I=$Q(@I) Q:I=""!(I'[T)  D WRITE(@I),WRITE($C(13,10)):(BMXWRAP&(@I'=$C(13,10)))
+"RTN","BMXMON",340,0)
  . IF $D(@BMXR) K @BMXR
-"RTN","BMXMON",335,0)
+"RTN","BMXMON",341,0)
+    ;
+"RTN","BMXMON",342,0)
  ; -- global instance
-"RTN","BMXMON",336,0)
- IF BMXPTYPE=5 S BMXR=$G(@BMXR) D WRITE(BMXR),LOG("Write: "_BMXR) Q
-"RTN","BMXMON",337,0)
+"RTN","BMXMON",343,0)
+ IF BMXPTYPE=5 S BMXR=$G(@BMXR) D WRITE(BMXR) QUIT
+"RTN","BMXMON",344,0)
+    ;
+"RTN","BMXMON",345,0)
  ; -- variable length records only good upto 255 char)
-"RTN","BMXMON",338,0)
- IF BMXPTYPE=6 S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE($C($L(BMXR(I)))),WRITE(BMXR(I)),LOG("Write: "_$C($L(BMXR(I)))_BMXR(I))
-"RTN","BMXMON",339,0)
- Q
-"RTN","BMXMON",340,0)
- ;
-"RTN","BMXMON",341,0)
+"RTN","BMXMON",346,0)
+ IF BMXPTYPE=6 S I="" F  S I=$O(BMXR(I)) Q:I=""  D WRITE($C($L(BMXR(I)))),WRITE(BMXR(I))
+"RTN","BMXMON",347,0)
+ QUIT
+"RTN","BMXMON",348,0)
+ ;
+"RTN","BMXMON",349,0)
 TIMEOUT ;Do this on MAIN  loop timeout
-"RTN","BMXMON",342,0)
- I $G(DUZ)>0 D SNDERR,WRITE("#BYE#"_$C(4)) Q
-"RTN","BMXMON",343,0)
+"RTN","BMXMON",350,0)
+ I $G(DUZ)>0 D SNDERR,WRITE("#BYE#"_$C(4)),WBF QUIT
+"RTN","BMXMON",351,0)
  ;Sign-on timeout
-"RTN","BMXMON",344,0)
+"RTN","BMXMON",352,0)
  S BMXR(0)=0,BMXR(1)=1,BMXR(2)="",BMXR(3)="TIME-OUT",BMXPTYPE=2
-"RTN","BMXMON",345,0)
- D SNDERR,SND,WRITE($C(4))
-"RTN","BMXMON",346,0)
- Q
-"RTN","BMXMON",347,0)
- ;
-"RTN","BMXMON",348,0)
+"RTN","BMXMON",353,0)
+ D SNDERR,SND,WRITE($C(4)),WBF QUIT
+"RTN","BMXMON",354,0)
+ ;
+"RTN","BMXMON",355,0)
 SEMAPHOR(BMXTSKT,BMXACT) ;Lock/Unlock BMXMON semaphore
-"RTN","BMXMON",349,0)
+"RTN","BMXMON",356,0)
  N RESULT
-"RTN","BMXMON",350,0)
+"RTN","BMXMON",357,0)
  S U="^",RESULT=1
-"RTN","BMXMON",351,0)
+"RTN","BMXMON",358,0)
  D GETENV^%ZOSV ;get Y=UCI^VOL^NODE^BOXLOOKUP of current system
-"RTN","BMXMON",352,0)
+"RTN","BMXMON",359,0)
  I BMXACT="LOCK" D
-"RTN","BMXMON",353,0)
+"RTN","BMXMON",360,0)
  . L +^BMXMON("BMXMON",$P(Y,U,2),$P(Y,U),$P(Y,U,4),BMXTSKT):1
-"RTN","BMXMON",354,0)
+"RTN","BMXMON",361,0)
  . S RESULT=$T
-"RTN","BMXMON",355,0)
+"RTN","BMXMON",362,0)
  E  L -^BMXMON("BMXMON",$P(Y,U,2),$P(Y,U),$P(Y,U,4),BMXTSKT)
-"RTN","BMXMON",356,0)
+"RTN","BMXMON",363,0)
  Q RESULT
-"RTN","BMXMON",357,0)
- ;
-"RTN","BMXMON",358,0)
+"RTN","BMXMON",364,0)
+ ;
+"RTN","BMXMON",365,0)
 CHPRN(N) ;Change process name to N.
-"RTN","BMXMON",359,0)
+"RTN","BMXMON",366,0)
  D SETNM^%ZOSV($E(N,1,15))
-"RTN","BMXMON",360,0)
- Q
-"RTN","BMXMON",361,0)
+"RTN","BMXMON",367,0)
+ Q
+"RTN","BMXMON",368,0)
  ; 
-"RTN","BMXMON",362,0)
+"RTN","BMXMON",369,0)
 CKSTAT(OUT,IN) ; EP - RPC: BMX CONNECT STATUS ; CONFIRMS THAT THAT A VALID PROCESS HAS BEEN SPAWNED BY BMXMON
-"RTN","BMXMON",363,0)
+"RTN","BMXMON",370,0)
  N PORT,STATUS,JOBID
-"RTN","BMXMON",364,0)
+"RTN","BMXMON",371,0)
  S PORT=+$P($P,"|",3)
-"RTN","BMXMON",365,0)
+"RTN","BMXMON",372,0)
  S JOBID=$P($J,":",1)
-"RTN","BMXMON",366,0)
+"RTN","BMXMON",373,0)
  I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1  ;Wait for job to spawn ZCHILD to be set in MON^
-"RTN","BMXMON",367,0)
+"RTN","BMXMON",374,0)
  I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1
-"RTN","BMXMON",368,0)
+"RTN","BMXMON",375,0)
  I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1
-"RTN","BMXMON",369,0)
+"RTN","BMXMON",376,0)
  S STATUS=$G(^BMXTMP("CONNECT STATUS",JOBID))
-"RTN","BMXMON",370,0)
+"RTN","BMXMON",377,0)
  K ^BMXTMP("CONNECT STATUS",JOBID)
-"RTN","BMXMON",371,0)
+"RTN","BMXMON",378,0)
  I STATUS="" S STATUS="CONNECTION STATUS UNKNOWN"
-"RTN","BMXMON",372,0)
+"RTN","BMXMON",379,0)
  S OUT=PORT_"|"_STATUS_"|"_JOBID
-"RTN","BMXMON",373,0)
- Q
-"RTN","BMXMON",374,0)
- ;
-"RTN","BMXMON",375,0)
+"RTN","BMXMON",380,0)
+ Q
+"RTN","BMXMON",381,0)
+ ;
+"RTN","BMXMON",382,0)
 MARKER(BMXPORT,BMXMODE) ;Set/Test/Clear Problem Marker, BMXMODE=0 is a function
-"RTN","BMXMON",376,0)
+"RTN","BMXMON",383,0)
  N IP,Y,%,REF X ^%ZOSF("UCI") S REF=Y,IP="0.0.0.0",%=0
-"RTN","BMXMON",377,0)
+"RTN","BMXMON",384,0)
  L +^BMX(IP,REF,BMXPORT,"PROBLEM MARKER"):1
-"RTN","BMXMON",378,0)
+"RTN","BMXMON",385,0)
  I BMXMODE=1 S ^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")=1
-"RTN","BMXMON",379,0)
+"RTN","BMXMON",386,0)
  I BMXMODE=0 S:$D(^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")) %=1
-"RTN","BMXMON",380,0)
+"RTN","BMXMON",387,0)
  I BMXMODE=-1 K ^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")
-"RTN","BMXMON",381,0)
+"RTN","BMXMON",388,0)
  L -^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")
-"RTN","BMXMON",382,0)
+"RTN","BMXMON",389,0)
  Q:BMXMODE=0 % Q
-"RTN","BMXMON",383,0)
- ;
-"RTN","BMXMON",384,0)
+"RTN","BMXMON",390,0)
+ ;
+"RTN","BMXMON",391,0)
 ETRAP ; -- on trapped error, send error info to client
-"RTN","BMXMON",385,0)
+"RTN","BMXMON",392,0)
  ; Error Trap Vars: Code, Error, Last Global Reference
-"RTN","BMXMON",386,0)
- N BMXERC,BMXERR,BMXLGR
-"RTN","BMXMON",387,0)
- ;
-"RTN","BMXMON",388,0)
+"RTN","BMXMON",393,0)
+ N BMXERC,BMXERROR,BMXLGR
+"RTN","BMXMON",394,0)
+ ;
+"RTN","BMXMON",395,0)
  ;Change trapping during trap.
-"RTN","BMXMON",389,0)
+"RTN","BMXMON",396,0)
  S $ETRAP="D ^%ZTER HALT" ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",390,0)
- ;
-"RTN","BMXMON",391,0)
+"RTN","BMXMON",397,0)
+ ;
+"RTN","BMXMON",398,0)
  ; If the error is simply that we can't write to the TCP device
-"RTN","BMXMON",392,0)
+"RTN","BMXMON",399,0)
  ; clear and log out
-"RTN","BMXMON",393,0)
+"RTN","BMXMON",400,0)
  ; GT.M Error Code.
-"RTN","BMXMON",394,0)
+"RTN","BMXMON",401,0)
  I $ECODE=",Z150376602," S $ECODE="" D:$G(DUZ) LOGOUT^XUSRB HALT
-"RTN","BMXMON",395,0)
+"RTN","BMXMON",402,0)
  ; Cache Error Codes:
-"RTN","BMXMON",396,0)
+"RTN","BMXMON",403,0)
  I ($EC["READ")!($EC["WRITE")!($EC["SYSTEM-F") S $ECODE="" D:$G(DUZ) LOGOUT^XUSRB HALT
-"RTN","BMXMON",397,0)
- ;
-"RTN","BMXMON",398,0)
+"RTN","BMXMON",404,0)
+ ;
+"RTN","BMXMON",405,0)
  ; Otherwise, log error and send to client
-"RTN","BMXMON",399,0)
+"RTN","BMXMON",406,0)
  S BMXERC=$$EC^%ZOSV
-"RTN","BMXMON",400,0)
- S BMXERR="M ERROR="_BMXERC_$C(13,10)_"LAST REF="
-"RTN","BMXMON",401,0)
+"RTN","BMXMON",407,0)
+ S BMXERROR="M ERROR="_BMXERC_$C(13,10)_"LAST REF="
+"RTN","BMXMON",408,0)
  S BMXLGR=$$LGR^%ZOSV_$C(4)
-"RTN","BMXMON",402,0)
- S BMXERR=BMXERR_BMXLGR
-"RTN","BMXMON",403,0)
- ;
-"RTN","BMXMON",404,0)
+"RTN","BMXMON",409,0)
+ S BMXERROR=BMXERROR_BMXLGR
+"RTN","BMXMON",410,0)
+ ;
+"RTN","BMXMON",411,0)
  D ^%ZTER ;%ZTER clears $ZE and $ECODE
-"RTN","BMXMON",405,0)
- ;
-"RTN","BMXMON",406,0)
+"RTN","BMXMON",412,0)
+ ;
+"RTN","BMXMON",413,0)
  U $P
-"RTN","BMXMON",407,0)
- ;
-"RTN","BMXMON",408,0)
- D SNDERR,WRITE(BMXERR) W !
-"RTN","BMXMON",409,0)
- ;
-"RTN","BMXMON",410,0)
+"RTN","BMXMON",414,0)
+ ;
+"RTN","BMXMON",415,0)
+ D SNDERR,WRITE(BMXERROR),WBF
+"RTN","BMXMON",416,0)
+ ;
+"RTN","BMXMON",417,0)
  S $ETRAP="Q:($ESTACK&'$QUIT)  Q:$ESTACK -9 S $ECODE="""" G SESSRES^BMXMON",$ECODE=",U99," ;IHS/OIT/HMW SAC Exemption Applied For
-"RTN","BMXMON",411,0)
+"RTN","BMXMON",418,0)
  QUIT
-"RTN","BMXMON",412,0)
- ;
-"RTN","BMXMON",413,0)
+"RTN","BMXMON",419,0)
+ ;
+"RTN","BMXMON",420,0)
 LOG(STR) ; EP - Log stuff in Broker log only if XWBDLOG is defined
-"RTN","BMXMON",414,0)
+"RTN","BMXMON",421,0)
  D:XWBDEBUG LOG^XWBDLOG(STR)
-"RTN","BMXMON",415,0)
+"RTN","BMXMON",422,0)
  QUIT
-"RTN","BMXMON",416,0)
- ;
-"RTN","BMXMON",417,0)
+"RTN","BMXMON",423,0)
+ ;
+"RTN","BMXMON",424,0)
 MENU ;EP - ENTRY ACTION FROM BMXMENU OPTION
-"RTN","BMXMON",418,0)
- ;
-"RTN","BMXMON",419,0)
+"RTN","BMXMON",425,0)
+ ;
+"RTN","BMXMON",426,0)
  N BMX,BMXVER
-"RTN","BMXMON",420,0)
+"RTN","BMXMON",427,0)
  ;VERSION
-"RTN","BMXMON",421,0)
+"RTN","BMXMON",428,0)
  D
-"RTN","BMXMON",422,0)
+"RTN","BMXMON",429,0)
  . S BMXN="BMXNET ADO.NET DATA PROVIDER" I $D(^DIC(9.4,"B",BMXN)) Q
-"RTN","BMXMON",423,0)
+"RTN","BMXMON",430,0)
  . S BMXN="BMXNET RPMS .NET UTILITIES" I $D(^DIC(9.4,"B",BMXN)) Q
-"RTN","BMXMON",424,0)
+"RTN","BMXMON",431,0)
  . S BMXN=""
-"RTN","BMXMON",425,0)
+"RTN","BMXMON",432,0)
  . Q
-"RTN","BMXMON",426,0)
- ;
-"RTN","BMXMON",427,0)
+"RTN","BMXMON",433,0)
+ ;
+"RTN","BMXMON",434,0)
  S BMXVER=""
-"RTN","BMXMON",428,0)
+"RTN","BMXMON",435,0)
  I BMXN]"",$D(^DIC(9.4,"B",BMXN)) D
-"RTN","BMXMON",429,0)
+"RTN","BMXMON",436,0)
  . S BMX=$O(^DIC(9.4,"B",BMXN,0))
-"RTN","BMXMON",430,0)
+"RTN","BMXMON",437,0)
  . I $D(^DIC(9.4,BMX,"VERSION")) S BMXVER=$P(^DIC(9.4,BMX,"VERSION"),"^")
-"RTN","BMXMON",431,0)
+"RTN","BMXMON",438,0)
  . E  S BMXVER="VERSION NOT FOUND"
-"RTN","BMXMON",432,0)
+"RTN","BMXMON",439,0)
  S:BMXVER="" BMXVER="VERSION NOT FOUND"
-"RTN","BMXMON",433,0)
- ;
-"RTN","BMXMON",434,0)
+"RTN","BMXMON",440,0)
+ ;
+"RTN","BMXMON",441,0)
  ;LOCATION
-"RTN","BMXMON",435,0)
+"RTN","BMXMON",442,0)
  N BMXLOC
-"RTN","BMXMON",436,0)
+"RTN","BMXMON",443,0)
  S BMXLOC=""
-"RTN","BMXMON",437,0)
+"RTN","BMXMON",444,0)
  I $G(DUZ(2)),$D(^DIC(4,DUZ(2),0)) S BMXLOC=$P(^DIC(4,DUZ(2),0),"^")
-"RTN","BMXMON",438,0)
+"RTN","BMXMON",445,0)
  S:BMXLOC="" BMXLOC="LOCATION NOT FOUND"
-"RTN","BMXMON",439,0)
- ;
-"RTN","BMXMON",440,0)
+"RTN","BMXMON",446,0)
+ ;
+"RTN","BMXMON",447,0)
  ;WRITE
-"RTN","BMXMON",441,0)
+"RTN","BMXMON",448,0)
  W !
-"RTN","BMXMON",442,0)
+"RTN","BMXMON",449,0)
  W !,"BMXNet Version: ",BMXVER
-"RTN","BMXMON",443,0)
+"RTN","BMXMON",450,0)
  W !,"Location: ",BMXLOC
-"RTN","BMXMON",444,0)
+"RTN","BMXMON",451,0)
  Q
 "RTN","BMXMSEC")
@@ -14474,5 +14490,5 @@
 BMXMSEC ; IHS/OIT/HMW - BMXNet MONITOR ; 4/6/11 4:41pm
 "RTN","BMXMSEC",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXMSEC",3,0)
  ;;
@@ -14670,5 +14686,5 @@
 BMXNTEG ;INTEGRITY CHECKER;JUN 28, 2010
 "RTN","BMXNTEG",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXNTEG",3,0)
  ;
@@ -14832,5 +14848,5 @@
 BMXPO ; IHS/CMI/MAW - Populate appcontext with all namespaced RPC's ;
 "RTN","BMXPO",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXPO",3,0)
  ;
@@ -14976,5 +14992,5 @@
 BMXPRS ; IHS/OIT/HMW - BMX WINDOWS UTILS ;
 "RTN","BMXPRS",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXPRS",3,0)
  ;
@@ -15186,5 +15202,5 @@
 BMXRPC ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 4/7/11 2:06pm
 "RTN","BMXRPC",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC",3,0)
  ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -15544,5 +15560,5 @@
 BMXRPC1 ; IHS/OIT/HMW - UTIL: REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC1",3,0)
  ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -16018,572 +16034,592 @@
  Q
 "RTN","BMXRPC10")
-0^62^B93587525
+0^62^B102094048
 "RTN","BMXRPC10",1,0)
-BMXRPC10 ; IHS/OIT/GIS - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ; 08 Jun 2010  8:47 AM
+BMXRPC10 ; IHS/OIT/GIS - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ; 5/11/11 4:35pm
 "RTN","BMXRPC10",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC10",3,0)
  ;; LOGIN RPCS TO RETURN PATIENTS, VISITS AND FACILITIES.  SUPPORTS MULTI-INDEX PATIENT LOOKUP (DOB, NAME, CHART#, ETC)
 "RTN","BMXRPC10",4,0)
- ;
+    ; 
 "RTN","BMXRPC10",5,0)
+    ; Changes in v 4.1000 to support GT.M
+"RTN","BMXRPC10",6,0)
+    ; - In BMXCCXT, there are several lines that rely on the
+"RTN","BMXRPC10",7,0)
+    ;   settings in BMX MONITOR file. We don't use that on GT.M
+"RTN","BMXRPC10",8,0)
+    ;   as xinetd handles all connection issues.
+"RTN","BMXRPC10",9,0)
+    ;   Also, at this point, we don't have integrated windows authentication
+"RTN","BMXRPC10",10,0)
+    ;   See below for the specific details.
+"RTN","BMXRPC10",11,0)
+ ;
+"RTN","BMXRPC10",12,0)
 GETFCRS(BMXFACS,BMXDUZ) ; EP - Gets all facilities for a user - returns RECORDSET
-"RTN","BMXRPC10",6,0)
- ;
-"RTN","BMXRPC10",7,0)
+"RTN","BMXRPC10",13,0)
+ ;
+"RTN","BMXRPC10",14,0)
  ;S BMXFACS="T00030FACILITY_NAME^T00030FACILITY_IEN^T00002MOST_RECENT_LOOKUP"_$C(30)
-"RTN","BMXRPC10",8,0)
+"RTN","BMXRPC10",15,0)
  N BMXI
-"RTN","BMXRPC10",9,0)
+"RTN","BMXRPC10",16,0)
  S BMXI=0,BMXFACS=$NA(^TMP("BMX FIND",$J)) K @BMXFACS
-"RTN","BMXRPC10",10,0)
+"RTN","BMXRPC10",17,0)
  S ^TMP("BMX FIND",$J,0)="T00030FACILITY_NAME^T00030FACILITY_IEN^T00002MOST_RECENT_LOOKUP"_$C(30)
-"RTN","BMXRPC10",11,0)
+"RTN","BMXRPC10",18,0)
  I $G(BMXDUZ)="" G XFRCS
-"RTN","BMXRPC10",12,0)
+"RTN","BMXRPC10",19,0)
  N BMXFN,BMXN,BMXSUB,BMXRCNT,CREF,OREF,SITE,LAST,DFLT
-"RTN","BMXRPC10",13,0)
+"RTN","BMXRPC10",20,0)
  S BMXDUZ=$TR(BMXDUZ,$C(13),"")
-"RTN","BMXRPC10",14,0)
+"RTN","BMXRPC10",21,0)
  S BMXDUZ=$TR(BMXDUZ,$C(10),"")
-"RTN","BMXRPC10",15,0)
+"RTN","BMXRPC10",22,0)
  S BMXDUZ=$TR(BMXDUZ,$C(9),"")
-"RTN","BMXRPC10",16,0)
+"RTN","BMXRPC10",23,0)
  S BMXFN=0
-"RTN","BMXRPC10",17,0)
+"RTN","BMXRPC10",24,0)
  S CREF=$NA(^VA(200,BMXDUZ,2))
-"RTN","BMXRPC10",18,0)
+"RTN","BMXRPC10",25,0)
  I '$O(@CREF@(0)) D  G XFRCS ; GIS/OIT JAN 22, 2010 ; Ensure at least one site returned
-"RTN","BMXRPC10",19,0)
+"RTN","BMXRPC10",26,0)
  . S BMXFN=$P(^AUTTSITE(1,0),U,1)
-"RTN","BMXRPC10",20,0)
+"RTN","BMXRPC10",27,0)
  . S SITE=$P($G(^DIC(4,BMXFN,0)),U,1)
-"RTN","BMXRPC10",21,0)
+"RTN","BMXRPC10",28,0)
  . S DFLT=0
-"RTN","BMXRPC10",22,0)
+"RTN","BMXRPC10",29,0)
  . S BMXI=BMXI+1
-"RTN","BMXRPC10",23,0)
+"RTN","BMXRPC10",30,0)
  . S ^TMP("BMX FIND",$J,BMXI)=SITE_U_BMXFN_U_DFLT_$C(30)
-"RTN","BMXRPC10",24,0)
+"RTN","BMXRPC10",31,0)
  . Q
-"RTN","BMXRPC10",25,0)
+"RTN","BMXRPC10",32,0)
  S OREF="^VA(200,"_BMXDUZ_",2,"
-"RTN","BMXRPC10",26,0)
+"RTN","BMXRPC10",33,0)
  S LAST=$G(^DISV(BMXDUZ,OREF))
-"RTN","BMXRPC10",27,0)
+"RTN","BMXRPC10",34,0)
  I LAST="" D
-"RTN","BMXRPC10",28,0)
+"RTN","BMXRPC10",35,0)
  . S BMXFN=0
-"RTN","BMXRPC10",29,0)
+"RTN","BMXRPC10",36,0)
  . F  Q:LAST  S BMXFN=$O(VA(200,BMXDUZ,2,BMXFN)) Q:'BMXFN  D  I LAST Q
-"RTN","BMXRPC10",30,0)
+"RTN","BMXRPC10",37,0)
  .. I $P($G(^VA(200,BMXDUZ,2,BMXFN,0)),U,2) S LAST=BMXFN
-"RTN","BMXRPC10",31,0)
+"RTN","BMXRPC10",38,0)
  .. Q
-"RTN","BMXRPC10",32,0)
+"RTN","BMXRPC10",39,0)
  . Q
-"RTN","BMXRPC10",33,0)
+"RTN","BMXRPC10",40,0)
  I LAST="" S LAST=$O(^VA(200,BMXDUZ,2,0)) ; IF LAST UNDEFINED, DEFAULT TO 1 ENTRY FOR THAT USER IN THE DIVISION SUBFILE
-"RTN","BMXRPC10",34,0)
+"RTN","BMXRPC10",41,0)
  I LAST="" S LAST=$P($G(^XTV(8989.3,1,"XUS")),U,17) ; IF LAST UNDEFINED, GET VALUE FROM KERNEL SYSTEM PARAMETERS FILE
-"RTN","BMXRPC10",35,0)
+"RTN","BMXRPC10",42,0)
  S BMXFN=0,STG=""
-"RTN","BMXRPC10",36,0)
+"RTN","BMXRPC10",43,0)
  F  S BMXFN=$O(@CREF@(BMXFN)) Q:'BMXFN  D
-"RTN","BMXRPC10",37,0)
+"RTN","BMXRPC10",44,0)
  . S SITE=$P($G(^DIC(4,BMXFN,0)),U,1) I SITE="" Q
-"RTN","BMXRPC10",38,0)
+"RTN","BMXRPC10",45,0)
  . S DFLT=(LAST=BMXFN)
-"RTN","BMXRPC10",39,0)
+"RTN","BMXRPC10",46,0)
  . S BMXI=BMXI+1
-"RTN","BMXRPC10",40,0)
+"RTN","BMXRPC10",47,0)
  . S ^TMP("BMX FIND",$J,BMXI)=SITE_U_BMXFN_U_DFLT_$C(30)
-"RTN","BMXRPC10",41,0)
+"RTN","BMXRPC10",48,0)
  . Q
-"RTN","BMXRPC10",42,0)
+"RTN","BMXRPC10",49,0)
 XFRCS S BMXI=BMXI+1
-"RTN","BMXRPC10",43,0)
+"RTN","BMXRPC10",50,0)
  S ^TMP("BMX FIND",$J,BMXI)=$C(31)
-"RTN","BMXRPC10",44,0)
- Q
-"RTN","BMXRPC10",45,0)
- ;
-"RTN","BMXRPC10",46,0)
+"RTN","BMXRPC10",51,0)
+ Q
+"RTN","BMXRPC10",52,0)
+ ;
+"RTN","BMXRPC10",53,0)
 GETVIS(OUT,STG) ; EP - RETURN SPECIFIED # OF VALID VISITS FOR THE PATIENT
-"RTN","BMXRPC10",47,0)
+"RTN","BMXRPC10",54,0)
  S OUT="T00010VISIT_IEN^T00030PATIENT_IEN^T00021TIMESTAMP^T00030VISIT_TYPE^T00030LOCATION^T00010SERVICE CATEGORY^T00030CLINIC^T00030PRIMARY_PROVIDER^T00030PRIMARY_POV"_$C(30)
-"RTN","BMXRPC10",48,0)
+"RTN","BMXRPC10",55,0)
  I $L($G(STG))
-"RTN","BMXRPC10",49,0)
+"RTN","BMXRPC10",56,0)
  E  G VOUT
-"RTN","BMXRPC10",50,0)
+"RTN","BMXRPC10",57,0)
  N X,Y,Z,%,HDR,LINE,DFN,MAX,IDT,VIEN,CNT,STOP,TS,VIEN,TYPE,LOC,SCAT,CLIN,PPRV,PPOV,BDT,VDT,DATA
-"RTN","BMXRPC10",51,0)
+"RTN","BMXRPC10",58,0)
  S DFN=+STG I '$D(^DPT(DFN,0)) G VOUT
-"RTN","BMXRPC10",52,0)
+"RTN","BMXRPC10",59,0)
  S MAX=$P(STG,"|",2) I 'MAX S MAX=9
-"RTN","BMXRPC10",53,0)
+"RTN","BMXRPC10",60,0)
  I '$O(^AUPNVSIT("AA",+$G(DFN),0)) G VOUT
-"RTN","BMXRPC10",54,0)
+"RTN","BMXRPC10",61,0)
  S IDT=0,CNT=0,STOP=0,DATA=""
-"RTN","BMXRPC10",55,0)
+"RTN","BMXRPC10",62,0)
  S BDT=$$FMADD^XLFDT(DT,-2)
-"RTN","BMXRPC10",56,0)
+"RTN","BMXRPC10",63,0)
  F  Q:STOP  S IDT=$O(^AUPNVSIT("AA",DFN,IDT)) Q:'IDT  S VIEN=999999999999 F  Q:STOP  S VIEN=$O(^AUPNVSIT("AA",DFN,IDT,VIEN),-1) Q:'VIEN  D  Q
-"RTN","BMXRPC10",57,0)
+"RTN","BMXRPC10",64,0)
  . S X=$G(^AUPNVSIT(VIEN,0)) I '$L(X) Q  ; VISIT DATA MUST EXIST
-"RTN","BMXRPC10",58,0)
+"RTN","BMXRPC10",65,0)
  . S VDT=+X I 'VDT Q
-"RTN","BMXRPC10",59,0)
+"RTN","BMXRPC10",66,0)
  . I $P(X,U,11) Q  ; MUST BE AN 'ACTIVE' VISIT - NOT 'DELETED'
-"RTN","BMXRPC10",60,0)
+"RTN","BMXRPC10",67,0)
  . I $P(X,U,5)'=DFN Q  ; INVALID PATIENT IEN
-"RTN","BMXRPC10",61,0)
+"RTN","BMXRPC10",68,0)
  . I $P(X,U,3)="" Q  ; VISIT MUST HAVE A TYPE
-"RTN","BMXRPC10",62,0)
+"RTN","BMXRPC10",69,0)
  . I '$P(X,U,6) Q  ; MUST HAVE A VALID ENCOUNTER LOCATION
-"RTN","BMXRPC10",63,0)
+"RTN","BMXRPC10",70,0)
  . I $P(X,U,7)="" Q  ; VISIT MUST HAVE A CATEGORY
-"RTN","BMXRPC10",64,0)
+"RTN","BMXRPC10",71,0)
  . I $P(X,U,8)="" Q  ; VISIT MUST HAVE A VALID CLINIC STOP
-"RTN","BMXRPC10",65,0)
+"RTN","BMXRPC10",72,0)
  . I VDT<BDT,'$D(^AUPNVPOV("AD",VIEN)) Q  ; MUST HAVE A POV ; PATCHED BY GIS 4/27/2009
-"RTN","BMXRPC10",66,0)
+"RTN","BMXRPC10",73,0)
  . I VDT<BDT,'$D(^AUPNVPRV("AD",VIEN)) Q  ; MUST HAVE A PROVIDER
-"RTN","BMXRPC10",67,0)
+"RTN","BMXRPC10",74,0)
  . D VIS(VIEN,DFN,.DATA)
-"RTN","BMXRPC10",68,0)
+"RTN","BMXRPC10",75,0)
  . S CNT=CNT+1
-"RTN","BMXRPC10",69,0)
+"RTN","BMXRPC10",76,0)
  . I CNT=MAX S STOP=1
-"RTN","BMXRPC10",70,0)
+"RTN","BMXRPC10",77,0)
  . Q
-"RTN","BMXRPC10",71,0)
+"RTN","BMXRPC10",78,0)
 VOUT S OUT=OUT_$G(DATA)_$C(31)
-"RTN","BMXRPC10",72,0)
- Q
-"RTN","BMXRPC10",73,0)
- ;
-"RTN","BMXRPC10",74,0)
+"RTN","BMXRPC10",79,0)
+ Q
+"RTN","BMXRPC10",80,0)
+ ;
+"RTN","BMXRPC10",81,0)
 VIS(VIEN,DFN,DATA) ; EP - APPEND VISIT DATA STRING
-"RTN","BMXRPC10",75,0)
+"RTN","BMXRPC10",82,0)
  I $G(VIEN),$G(DFN)
-"RTN","BMXRPC10",76,0)
+"RTN","BMXRPC10",83,0)
  E  Q
-"RTN","BMXRPC10",77,0)
+"RTN","BMXRPC10",84,0)
  N TYPE,LOC,SCAT,CLIN,PPRV,PPOV,VDT,FIEN,IENS,FLD,TYPE
-"RTN","BMXRPC10",78,0)
+"RTN","BMXRPC10",85,0)
  S FIEN=9000010,IENS=VIEN_","
-"RTN","BMXRPC10",79,0)
+"RTN","BMXRPC10",86,0)
  S TS=$$GET1^DIQ(FIEN,IENS,.01) I TS="" Q
-"RTN","BMXRPC10",80,0)
+"RTN","BMXRPC10",87,0)
  S TYPE=$$GET1^DIQ(FIEN,IENS,.03)
-"RTN","BMXRPC10",81,0)
+"RTN","BMXRPC10",88,0)
  S LOC=$$GET1^DIQ(FIEN,IENS,.06)
-"RTN","BMXRPC10",82,0)
+"RTN","BMXRPC10",89,0)
  S SCAT=$$GET1^DIQ(FIEN,IENS,.07)
-"RTN","BMXRPC10",83,0)
+"RTN","BMXRPC10",90,0)
  S CLIN=$$GET1^DIQ(FIEN,IENS,.08)
-"RTN","BMXRPC10",84,0)
+"RTN","BMXRPC10",91,0)
  S PPRV=$$PPRV(VIEN)
-"RTN","BMXRPC10",85,0)
+"RTN","BMXRPC10",92,0)
  S PPOV=$$PPOV(VIEN)
-"RTN","BMXRPC10",86,0)
+"RTN","BMXRPC10",93,0)
  S DATA=DATA_VIEN_U_DFN_U_TS_U_LOC_U_SCAT_U_CLIN_U_PPRV_U_PPOV_$C(30)
-"RTN","BMXRPC10",87,0)
- Q
-"RTN","BMXRPC10",88,0)
+"RTN","BMXRPC10",94,0)
+ Q
+"RTN","BMXRPC10",95,0)
  ; 
-"RTN","BMXRPC10",89,0)
+"RTN","BMXRPC10",96,0)
 PPRV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PROVIDER NAME
-"RTN","BMXRPC10",90,0)
+"RTN","BMXRPC10",97,0)
  ; CALLED BY THE BMX SCHEMA
-"RTN","BMXRPC10",91,0)
+"RTN","BMXRPC10",98,0)
  I '$D(^AUPNVPRV("AD",+$G(VIEN))) Q ""
-"RTN","BMXRPC10",92,0)
+"RTN","BMXRPC10",99,0)
  N NAME,PIEN,VPIEN,X,Y,Z,%
-"RTN","BMXRPC10",93,0)
+"RTN","BMXRPC10",100,0)
  S VPIEN=0,PIEN=""
-"RTN","BMXRPC10",94,0)
+"RTN","BMXRPC10",101,0)
  F  S VPIEN=$O(^AUPNVPRV("AD",VIEN,VPIEN)) Q:'VPIEN  D  I PIEN Q
-"RTN","BMXRPC10",95,0)
+"RTN","BMXRPC10",102,0)
  . S X=$G(^AUPNVPRV(VPIEN,0)) I X="" Q
-"RTN","BMXRPC10",96,0)
+"RTN","BMXRPC10",103,0)
  . S TYPE=$P(X,U,4)
-"RTN","BMXRPC10",97,0)
+"RTN","BMXRPC10",104,0)
  . I TYPE="P" S PIEN=+X
-"RTN","BMXRPC10",98,0)
+"RTN","BMXRPC10",105,0)
  . Q
-"RTN","BMXRPC10",99,0)
+"RTN","BMXRPC10",106,0)
  I 'PIEN S VPIEN=$O(^AUPNVPRV("AD",VIEN,0)) I VPIEN S PIEN=+$G(^AUPNVPRV(VPIEN,0))
-"RTN","BMXRPC10",100,0)
+"RTN","BMXRPC10",107,0)
  I 'PIEN Q ""
-"RTN","BMXRPC10",101,0)
+"RTN","BMXRPC10",108,0)
  S PIEN=$$PRV^VENPCCU(PIEN)
-"RTN","BMXRPC10",102,0)
+"RTN","BMXRPC10",109,0)
  S NAME=$P($G(^VA(200,PIEN,0)),U)
-"RTN","BMXRPC10",103,0)
+"RTN","BMXRPC10",110,0)
  Q NAME
-"RTN","BMXRPC10",104,0)
- ;
-"RTN","BMXRPC10",105,0)
+"RTN","BMXRPC10",111,0)
+ ;
+"RTN","BMXRPC10",112,0)
 PPOV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PURPOSE OF VISIT ICD CODE (NARRATIVE)
-"RTN","BMXRPC10",106,0)
+"RTN","BMXRPC10",113,0)
  ; CALLED BY BMX SCHEMA
-"RTN","BMXRPC10",107,0)
+"RTN","BMXRPC10",114,0)
  I '$D(^AUPNVPOV("AD",+$G(VIEN))) Q ""
-"RTN","BMXRPC10",108,0)
+"RTN","BMXRPC10",115,0)
  N TXT,IIEN,VPIEN,X,Y,Z,%,ICD,NIEN,DX
-"RTN","BMXRPC10",109,0)
+"RTN","BMXRPC10",116,0)
  S VPIEN=0,IIEN=""
-"RTN","BMXRPC10",110,0)
+"RTN","BMXRPC10",117,0)
  F  S VPIEN=$O(^AUPNVPOV("AD",VIEN,VPIEN)) Q:'VPIEN  D  I IIEN Q
-"RTN","BMXRPC10",111,0)
+"RTN","BMXRPC10",118,0)
  . S X=$G(^AUPNVPOV(VPIEN,0)) I X="" Q
-"RTN","BMXRPC10",112,0)
+"RTN","BMXRPC10",119,0)
  . S TYPE=$P(X,U,12)
-"RTN","BMXRPC10",113,0)
+"RTN","BMXRPC10",120,0)
  . I TYPE="P" S IIEN=+X
-"RTN","BMXRPC10",114,0)
+"RTN","BMXRPC10",121,0)
  . Q
-"RTN","BMXRPC10",115,0)
+"RTN","BMXRPC10",122,0)
  I 'IIEN S VPIEN=$O(^AUPNVPOV("AD",VIEN,0)) I VPIEN S IIEN=+$G(^AUPNVPOV(VPIEN,0))
-"RTN","BMXRPC10",116,0)
+"RTN","BMXRPC10",123,0)
  I IIEN,VPIEN
-"RTN","BMXRPC10",117,0)
+"RTN","BMXRPC10",124,0)
  E  Q ""
-"RTN","BMXRPC10",118,0)
+"RTN","BMXRPC10",125,0)
  I $L($T(ICDDX^ICDCODE)) S ICD=$P($$ICDDX^ICDCODE(IIEN),U,2) I 1
-"RTN","BMXRPC10",119,0)
+"RTN","BMXRPC10",126,0)
  E  S ICD=$P($G(^ICD9(IIEN,0)),U)
-"RTN","BMXRPC10",120,0)
+"RTN","BMXRPC10",127,0)
  I '$L(ICD) Q ""
-"RTN","BMXRPC10",121,0)
+"RTN","BMXRPC10",128,0)
  S NIEN=$P($G(^AUPNVPOV(VPIEN,0)),U,4) I 'NIEN Q ""
-"RTN","BMXRPC10",122,0)
+"RTN","BMXRPC10",129,0)
  S TXT=$P($G(^AUTNPOV(NIEN,0)),U) I TXT="" Q ""
-"RTN","BMXRPC10",123,0)
+"RTN","BMXRPC10",130,0)
  I $L(TXT)>20 S TXT=$E(TXT,1,17)_"..."
-"RTN","BMXRPC10",124,0)
+"RTN","BMXRPC10",131,0)
  S DX=ICD_" ("_TXT_")"
-"RTN","BMXRPC10",125,0)
+"RTN","BMXRPC10",132,0)
  Q DX
-"RTN","BMXRPC10",126,0)
+"RTN","BMXRPC10",133,0)
  ; 
-"RTN","BMXRPC10",127,0)
+"RTN","BMXRPC10",134,0)
 GETPAT(BMXRET,BMXSTR) ; EP - -- return patient in ADO table
-"RTN","BMXRPC10",128,0)
+"RTN","BMXRPC10",135,0)
  ; S X="MERR^BMXGU",@^%ZOSF("TRAP") ; m error trap
-"RTN","BMXRPC10",129,0)
+"RTN","BMXRPC10",136,0)
  N BMXI,BMXERR,BMXUIEN,P,X,Y,Z,%,%DT
-"RTN","BMXRPC10",130,0)
+"RTN","BMXRPC10",137,0)
  S P="|"
-"RTN","BMXRPC10",131,0)
+"RTN","BMXRPC10",138,0)
  K ^BMXTMP($J)
-"RTN","BMXRPC10",132,0)
+"RTN","BMXRPC10",139,0)
  S BMXI=0
-"RTN","BMXRPC10",133,0)
+"RTN","BMXRPC10",140,0)
  S BMXERR=""
-"RTN","BMXRPC10",134,0)
+"RTN","BMXRPC10",141,0)
  S BMXRET="T00010IEN^T00030PATIENTNAME^T00015DOB^T00001SEX^T00007CHART^T00009SSN^T00010REG^T00030LASTUPDATE^T00030CLASSBEN^T00010AGE"_$C(30)
-"RTN","BMXRPC10",135,0)
+"RTN","BMXRPC10",142,0)
  S BMXPAT=$P(BMXSTR,P,1)
-"RTN","BMXRPC10",136,0)
+"RTN","BMXRPC10",143,0)
  S BMXMT=$P(BMXSTR,P,2)
-"RTN","BMXRPC10",137,0)
+"RTN","BMXRPC10",144,0)
  ; S BMXNPAT=$P(BMXSTR,P,4)
-"RTN","BMXRPC10",138,0)
+"RTN","BMXRPC10",145,0)
  I BMXMT="ALL"!(BMXMT="") S BMXMT=9999999
-"RTN","BMXRPC10",139,0)
+"RTN","BMXRPC10",146,0)
  S BMXMT=(BMXMT-1)
-"RTN","BMXRPC10",140,0)
+"RTN","BMXRPC10",147,0)
  S BMXPIEN=""
-"RTN","BMXRPC10",141,0)
+"RTN","BMXRPC10",148,0)
  S X=BMXPAT D ^%DT
-"RTN","BMXRPC10",142,0)
+"RTN","BMXRPC10",149,0)
  S Y=Y\1
-"RTN","BMXRPC10",143,0)
+"RTN","BMXRPC10",150,0)
  I $E(Y,4,5)="00" G GETADO
-"RTN","BMXRPC10",144,0)
+"RTN","BMXRPC10",151,0)
  I $E(Y,6,7)="00" G GETADO
-"RTN","BMXRPC10",145,0)
+"RTN","BMXRPC10",152,0)
  I Y?7N D  G GETADO
-"RTN","BMXRPC10",146,0)
+"RTN","BMXRPC10",153,0)
  . S BMXPAT=Y
-"RTN","BMXRPC10",147,0)
+"RTN","BMXRPC10",154,0)
  . S BMXPATE=$$PATDOB(.BMXPIEN,BMXPAT)
-"RTN","BMXRPC10",148,0)
+"RTN","BMXRPC10",155,0)
  S X=$TR($P(BMXPAT," "),",","")
-"RTN","BMXRPC10",149,0)
+"RTN","BMXRPC10",156,0)
  I X?1.30U S BMXPATE=$$PATNAM(.BMXPIEN,BMXPAT,"") G GETADO
-"RTN","BMXRPC10",150,0)
+"RTN","BMXRPC10",157,0)
  I BMXPAT?9N D  G GETADO
-"RTN","BMXRPC10",151,0)
+"RTN","BMXRPC10",158,0)
  . S BMXPIEN=$$PATSSN(BMXPAT)
-"RTN","BMXRPC10",152,0)
+"RTN","BMXRPC10",159,0)
  I BMXPAT?1.6N D  G GETADO
-"RTN","BMXRPC10",153,0)
+"RTN","BMXRPC10",160,0)
  . S BMXPIEN=$$PATCHT(.BMXPIEN,BMXPAT)
-"RTN","BMXRPC10",154,0)
+"RTN","BMXRPC10",161,0)
 GETADO I $G(BMXPIEN),'$G(BMXPATS) D PATADO(.BMXPIEN)
-"RTN","BMXRPC10",155,0)
+"RTN","BMXRPC10",162,0)
  S BMXRET=BMXRET_$C(31)_$G(BMXERR)
-"RTN","BMXRPC10",156,0)
+"RTN","BMXRPC10",163,0)
  K BMXPAT,BMXPIEN,BMXCNT,BMXDA,BMXIEN,BMXPATE,BMXNM,BMXDB,BMXSX,BMXCT,BMXSSN
-"RTN","BMXRPC10",157,0)
+"RTN","BMXRPC10",164,0)
  K BMXPATS
-"RTN","BMXRPC10",158,0)
- Q
-"RTN","BMXRPC10",159,0)
- ;
-"RTN","BMXRPC10",160,0)
+"RTN","BMXRPC10",165,0)
+ Q
+"RTN","BMXRPC10",166,0)
+ ;
+"RTN","BMXRPC10",167,0)
 PATSSN(PAT) ;-- look up by ssn
-"RTN","BMXRPC10",161,0)
+"RTN","BMXRPC10",168,0)
  S BMXPIEN=$O(^DPT("SSN",PAT,0))
-"RTN","BMXRPC10",162,0)
+"RTN","BMXRPC10",169,0)
  S BMXPIEN(1)=BMXPIEN
-"RTN","BMXRPC10",163,0)
+"RTN","BMXRPC10",170,0)
  Q $G(BMXPIEN)
-"RTN","BMXRPC10",164,0)
- ;
-"RTN","BMXRPC10",165,0)
+"RTN","BMXRPC10",171,0)
+ ;
+"RTN","BMXRPC10",172,0)
 PATCHT(BMXPIEN,HRN) ;-- lookup by chart
-"RTN","BMXRPC10",166,0)
+"RTN","BMXRPC10",173,0)
  N BMXCNT
-"RTN","BMXRPC10",167,0)
+"RTN","BMXRPC10",174,0)
  S BMXCNT=0,BMXPATE=0,BMXMCNT=0,BMXPIEN=""
-"RTN","BMXRPC10",168,0)
+"RTN","BMXRPC10",175,0)
  S BMXIEN=0 F  S BMXIEN=$O(^AUPNPAT("D",HRN,BMXIEN)) Q:'BMXIEN  D  I BMXPIEN Q
-"RTN","BMXRPC10",169,0)
+"RTN","BMXRPC10",176,0)
  . I '$D(^AUPNPAT("D",HRN,BMXIEN,DUZ(2))) Q
-"RTN","BMXRPC10",170,0)
+"RTN","BMXRPC10",177,0)
  . S %=$O(^AUPNPAT("D",HRN,BMXIEN)) I %,$D(^AUPNPAT("D",HRN,%,DUZ(2))) S BMXIEN=999999999 Q  ; MORE THAN ONE PAT WITH THIS CHART NUMBER!
-"RTN","BMXRPC10",171,0)
+"RTN","BMXRPC10",178,0)
  . S BMXPIEN=BMXIEN
-"RTN","BMXRPC10",172,0)
+"RTN","BMXRPC10",179,0)
  . S BMXCNT=BMXCNT+1
-"RTN","BMXRPC10",173,0)
+"RTN","BMXRPC10",180,0)
  . S:'$D(BMXPIEN(BMXCNT)) BMXPIEN(BMXCNT)=0
-"RTN","BMXRPC10",174,0)
+"RTN","BMXRPC10",181,0)
  . S BMXPIEN(BMXCNT)=BMXPIEN
-"RTN","BMXRPC10",175,0)
+"RTN","BMXRPC10",182,0)
  . Q
-"RTN","BMXRPC10",176,0)
+"RTN","BMXRPC10",183,0)
  Q BMXPIEN
-"RTN","BMXRPC10",177,0)
- ;
-"RTN","BMXRPC10",178,0)
+"RTN","BMXRPC10",184,0)
+ ;
+"RTN","BMXRPC10",185,0)
 PATDOB(BMXPATE,PAT) ;-- lookup by DOB
-"RTN","BMXRPC10",179,0)
+"RTN","BMXRPC10",186,0)
  N BMXCNT
-"RTN","BMXRPC10",180,0)
+"RTN","BMXRPC10",187,0)
  S BMXCNT=0,BMXPATE=0
-"RTN","BMXRPC10",181,0)
+"RTN","BMXRPC10",188,0)
  S BMXIEN=0
-"RTN","BMXRPC10",182,0)
+"RTN","BMXRPC10",189,0)
  F  S BMXIEN=$O(^DPT("ADOB",PAT,BMXIEN)) Q:'BMXIEN  D
-"RTN","BMXRPC10",183,0)
+"RTN","BMXRPC10",190,0)
  . S:'$D(BMXPATE(BMXCNT)) BMXPATE(BMXCNT)=0
-"RTN","BMXRPC10",184,0)
+"RTN","BMXRPC10",191,0)
  . S BMXCNT=BMXCNT+1,BMXPATE=1
-"RTN","BMXRPC10",185,0)
+"RTN","BMXRPC10",192,0)
  . S BMXPATE(BMXCNT)=BMXIEN
-"RTN","BMXRPC10",186,0)
+"RTN","BMXRPC10",193,0)
  . Q
-"RTN","BMXRPC10",187,0)
+"RTN","BMXRPC10",194,0)
  S BMXPATE=BMXCNT
-"RTN","BMXRPC10",188,0)
+"RTN","BMXRPC10",195,0)
  Q $G(BMXPATE)
-"RTN","BMXRPC10",189,0)
- ;
-"RTN","BMXRPC10",190,0)
+"RTN","BMXRPC10",196,0)
+ ;
+"RTN","BMXRPC10",197,0)
 PATNAM(BMXPATE,PAT,NPAT) ;lookup by name
-"RTN","BMXRPC10",191,0)
+"RTN","BMXRPC10",198,0)
  S BMXCNT=0,BMXPATE=0
-"RTN","BMXRPC10",192,0)
+"RTN","BMXRPC10",199,0)
  N BMXLEN
-"RTN","BMXRPC10",193,0)
+"RTN","BMXRPC10",200,0)
  S BMXLEN=$L(PAT)
-"RTN","BMXRPC10",194,0)
+"RTN","BMXRPC10",201,0)
  S BMXNAM=PAT
-"RTN","BMXRPC10",195,0)
+"RTN","BMXRPC10",202,0)
  S BMXNAM=$$BEGIN(PAT)
-"RTN","BMXRPC10",196,0)
+"RTN","BMXRPC10",203,0)
  I $G(NPAT)]"" S BMXNAM=NPAT
-"RTN","BMXRPC10",197,0)
+"RTN","BMXRPC10",204,0)
  F  S BMXNAM=$O(^DPT("B",BMXNAM)) Q:BMXNAM=""!($E(BMXNAM,1,BMXLEN)'=PAT)!(BMXCNT>BMXMT)  D
-"RTN","BMXRPC10",198,0)
+"RTN","BMXRPC10",205,0)
  . S BMXIEN=0 F  S BMXIEN=$O(^DPT("B",BMXNAM,BMXIEN)) Q:'BMXIEN  D
-"RTN","BMXRPC10",199,0)
+"RTN","BMXRPC10",206,0)
  .. Q:$O(^DPT("B",BMXNAM,BMXIEN,0))  ;cmi/maw 4/25/2005 don't get aliases
-"RTN","BMXRPC10",200,0)
+"RTN","BMXRPC10",207,0)
  .. S BMXCNT=BMXCNT+1
-"RTN","BMXRPC10",201,0)
+"RTN","BMXRPC10",208,0)
  .. S:'$D(BMXPATE(BMXCNT)) BMXPATE(BMXCNT)=0
-"RTN","BMXRPC10",202,0)
+"RTN","BMXRPC10",209,0)
  .. S BMXPATE(BMXCNT)=BMXIEN
-"RTN","BMXRPC10",203,0)
+"RTN","BMXRPC10",210,0)
  S BMXPATE=BMXCNT
-"RTN","BMXRPC10",204,0)
+"RTN","BMXRPC10",211,0)
  Q $G(BMXPATE)
-"RTN","BMXRPC10",205,0)
- ;
-"RTN","BMXRPC10",206,0)
+"RTN","BMXRPC10",212,0)
+ ;
+"RTN","BMXRPC10",213,0)
 BEGIN(PT) ;-- get begin point
-"RTN","BMXRPC10",207,0)
+"RTN","BMXRPC10",214,0)
  N BMXPDA,BMXPIEN,BMXPCNT
-"RTN","BMXRPC10",208,0)
+"RTN","BMXRPC10",215,0)
  S BMXPCNT=0
-"RTN","BMXRPC10",209,0)
+"RTN","BMXRPC10",216,0)
  S BMXPDA=PT
-"RTN","BMXRPC10",210,0)
+"RTN","BMXRPC10",217,0)
  I $O(^DPT("B",BMXPDA,0)) D
-"RTN","BMXRPC10",211,0)
+"RTN","BMXRPC10",218,0)
  . S BMXPDA=$O(^DPT("B",BMXPDA),-1)
-"RTN","BMXRPC10",212,0)
+"RTN","BMXRPC10",219,0)
  F  S BMXPDA=$O(^DPT("B",BMXPDA)) Q
-"RTN","BMXRPC10",213,0)
+"RTN","BMXRPC10",220,0)
  I $G(BMXPDA)="" Q ""
-"RTN","BMXRPC10",214,0)
+"RTN","BMXRPC10",221,0)
  Q $O(^DPT("B",BMXPDA),-1)
-"RTN","BMXRPC10",215,0)
- ;
-"RTN","BMXRPC10",216,0)
+"RTN","BMXRPC10",222,0)
+ ;
+"RTN","BMXRPC10",223,0)
 PATADO(PIEN) ;-- ado return
-"RTN","BMXRPC10",217,0)
+"RTN","BMXRPC10",224,0)
  I '$G(DUZ(2)) Q  ; DIVISION
-"RTN","BMXRPC10",218,0)
+"RTN","BMXRPC10",225,0)
  S BMXCNTR=0
-"RTN","BMXRPC10",219,0)
+"RTN","BMXRPC10",226,0)
  S BMXDA=0 F  S BMXDA=$O(PIEN(BMXDA)) Q:'BMXDA  D
-"RTN","BMXRPC10",220,0)
+"RTN","BMXRPC10",227,0)
  . S BMXCNTR=BMXCNTR+1
-"RTN","BMXRPC10",221,0)
+"RTN","BMXRPC10",228,0)
  . S BMXPI=$G(PIEN(BMXDA))
-"RTN","BMXRPC10",222,0)
+"RTN","BMXRPC10",229,0)
  . I '$D(^AUPNPAT(BMXPI,41,DUZ(2),0)) Q  ; PATIENT NOT REGISTERED IN THE CURRENT DIVISION
-"RTN","BMXRPC10",223,0)
+"RTN","BMXRPC10",230,0)
  . S BMXNM=$P($G(^DPT(BMXPI,0)),U)
-"RTN","BMXRPC10",224,0)
+"RTN","BMXRPC10",231,0)
  . S BMXDB=$$FMTE^XLFDT($P($G(^DPT(BMXPI,0)),U,3))
-"RTN","BMXRPC10",225,0)
+"RTN","BMXRPC10",232,0)
  . S BMXSX=$P($G(^DPT(BMXPI,0)),U,2)
-"RTN","BMXRPC10",226,0)
+"RTN","BMXRPC10",233,0)
  . S BMXCT=$$HRN^AUPNPAT(BMXPI,DUZ(2))
-"RTN","BMXRPC10",227,0)
+"RTN","BMXRPC10",234,0)
  . S BMXSSN=$P($G(^DPT(BMXPI,0)),U,9)
-"RTN","BMXRPC10",228,0)
+"RTN","BMXRPC10",235,0)
  . S BMXUPD=$P($G(^AUPNPAT(BMXPI,0)),U,3)
-"RTN","BMXRPC10",229,0)
+"RTN","BMXRPC10",236,0)
  . S BMXELG=$$GET1^DIQ(9000001,BMXPI,1111) ;cmi/maw 5/17/2007 added class/ben for status bar
-"RTN","BMXRPC10",230,0)
+"RTN","BMXRPC10",237,0)
  . S BMXAGE=$$AGE^AUPNPAT(BMXPI,DT)
-"RTN","BMXRPC10",231,0)
+"RTN","BMXRPC10",238,0)
  . S BMXI=BMXI+1
-"RTN","BMXRPC10",232,0)
+"RTN","BMXRPC10",239,0)
  . S BMXRET=BMXRET_BMXPI_U_BMXNM_U_BMXDB_U_BMXSX_U_BMXCT_U_BMXSSN_U_$G(BMXHD)_U_BMXUPD_U_BMXELG_U_BMXAGE_$C(30)
-"RTN","BMXRPC10",233,0)
- Q
-"RTN","BMXRPC10",234,0)
- ;
-"RTN","BMXRPC10",235,0)
+"RTN","BMXRPC10",240,0)
+ Q
+"RTN","BMXRPC10",241,0)
+ ;
+"RTN","BMXRPC10",242,0)
 BMXCCXT(RESULT,XOPTION) ;creates context for the passed in option
-"RTN","BMXRPC10",236,0)
+"RTN","BMXRPC10",243,0)
  N XWB1,%,IEN,SIEN,OK,OPTION
-"RTN","BMXRPC10",237,0)
+"RTN","BMXRPC10",244,0)
  S RESULT=0
-"RTN","BMXRPC10",238,0)
+"RTN","BMXRPC10",245,0)
  S OPTION=$$DECRYP^XUSRB1(XOPTION) ;S:OPTION="" OPTION="\"
-"RTN","BMXRPC10",239,0)
+"RTN","BMXRPC10",246,0)
  I $E(OPTION,1,3)="BMX" S RESULT=1 Q  ; NO RESTRICTIONS FOR BMX CONTEXT FOR THIS PORT
-"RTN","BMXRPC10",240,0)
+"RTN","BMXRPC10",247,0)
  K XQY0,XQY
-"RTN","BMXRPC10",241,0)
- I OPTION="" S XQY=0,XQY0="" Q  ;delete context if "" passed in N PORT
-"RTN","BMXRPC10",242,0)
- S PORT=+$P($P,"|",3) I 'PORT Q
-"RTN","BMXRPC10",243,0)
- S IEN=$O(^BMXMON("B",PORT,0)) I 'IEN Q
-"RTN","BMXRPC10",244,0)
- I '$O(^BMXMON(IEN,1,0)) G BC1  ; NO RESTRICTIONS ON CONTEXT FOR THIS PORT
-"RTN","BMXRPC10",245,0)
- S OK=0,CIEN=0
-"RTN","BMXRPC10",246,0)
- F  S CIEN=$O(^BMXMON(IEN,1,CIEN)) Q:'CIEN  D  I OK Q
-"RTN","BMXRPC10",247,0)
- . S %=$P($G(^BMXMON(IEN,1,CIEN,0)),U) I '% Q
 "RTN","BMXRPC10",248,0)
- . S %=$P($G(^DIC(19,%,0)),U) I %="" Q
+    I OPTION="" S XQY=0,XQY0="" Q  ;delete context if "" passed in N PORT
 "RTN","BMXRPC10",249,0)
- . I %=OPTION S OK=1
+    ; 
 "RTN","BMXRPC10",250,0)
- . Q
+    ; Following lines are addition for 4.1000; GT.M does not use BMXMON
 "RTN","BMXRPC10",251,0)
- I 'OK S (XWBSEC,RESULT)="The context '"_OPTION_"' is not registered with port "_PORT_"." Q
+    D:^%ZOSF("OS")["OpenM"  ; Doesn't apply to GT.M; Only Cache
 "RTN","BMXRPC10",252,0)
+    . S PORT=+$P($P,"|",3) I 'PORT Q
+"RTN","BMXRPC10",253,0)
+ . S IEN=$O(^BMXMON("B",PORT,0)) I 'IEN Q
+"RTN","BMXRPC10",254,0)
+ . I '$O(^BMXMON(IEN,1,0)) G BC1  ; NO RESTRICTIONS ON CONTEXT FOR THIS PORT
+"RTN","BMXRPC10",255,0)
+ . S OK=0,CIEN=0
+"RTN","BMXRPC10",256,0)
+ . F  S CIEN=$O(^BMXMON(IEN,1,CIEN)) Q:'CIEN  D  I OK Q
+"RTN","BMXRPC10",257,0)
+ . . S %=$P($G(^BMXMON(IEN,1,CIEN,0)),U) I '% Q
+"RTN","BMXRPC10",258,0)
+ . . S %=$P($G(^DIC(19,%,0)),U) I %="" Q
+"RTN","BMXRPC10",259,0)
+ . . I %=OPTION S OK=1
+"RTN","BMXRPC10",260,0)
+ . . Q
+"RTN","BMXRPC10",261,0)
+ . I 'OK S (XWBSEC,RESULT)="The context '"_OPTION_"' is not registered with port "_PORT_"." Q
+"RTN","BMXRPC10",262,0)
 BC1 S XWB1=$$OPTLK^XQCS(OPTION)
-"RTN","BMXRPC10",253,0)
+"RTN","BMXRPC10",263,0)
  I XWB1="" S (XWBSEC,RESULT)="The context '"_OPTION_"' does not exist on server." Q  ;P10
-"RTN","BMXRPC10",254,0)
+"RTN","BMXRPC10",264,0)
  S RESULT=$$CHK^XQCS(DUZ,XWB1)
-"RTN","BMXRPC10",255,0)
+"RTN","BMXRPC10",265,0)
  ;Access or programmer
-"RTN","BMXRPC10",256,0)
+"RTN","BMXRPC10",266,0)
 BC2 I RESULT!$$KCHK^XUSRB("XUPROGMODE") S XQY0=OPTION,XQY=XWB1,RESULT=1 Q
-"RTN","BMXRPC10",257,0)
+"RTN","BMXRPC10",267,0)
  S XWBSEC=RESULT
-"RTN","BMXRPC10",258,0)
- Q
-"RTN","BMXRPC10",259,0)
+"RTN","BMXRPC10",268,0)
+ Q
+"RTN","BMXRPC10",269,0)
  ; 
-"RTN","BMXRPC10",260,0)
+"RTN","BMXRPC10",270,0)
 CVC(OUT,IN) ; EP - RPC: BMX CVC ; CHECK VERIFY CODE (SEE CVC^XUSRB)
-"RTN","BMXRPC10",261,0)
+"RTN","BMXRPC10",271,0)
  S OUT(0)=99,OUT(1)="INVALID PARAMETERS"
-"RTN","BMXRPC10",262,0)
+"RTN","BMXRPC10",272,0)
  I $L(IN)
-"RTN","BMXRPC10",263,0)
+"RTN","BMXRPC10",273,0)
  E  Q
-"RTN","BMXRPC10",264,0)
+"RTN","BMXRPC10",274,0)
  N AV,EAC,EOVC,ENVC,USER,AC,OVC,NVC,EVC,NVC,X,Y,Z,%,RET,U
-"RTN","BMXRPC10",265,0)
+"RTN","BMXRPC10",275,0)
  S U="^",RET(0)="",RET(1)=""
-"RTN","BMXRPC10",266,0)
+"RTN","BMXRPC10",276,0)
  S AV=$$DECRYP^XUSRB1(IN) I AV="" Q
-"RTN","BMXRPC10",267,0)
+"RTN","BMXRPC10",277,0)
  S AC=$P(AV,";")
-"RTN","BMXRPC10",268,0)
+"RTN","BMXRPC10",278,0)
  S X=$$EN^XUSHSH(AC)
-"RTN","BMXRPC10",269,0)
+"RTN","BMXRPC10",279,0)
  S USER=$O(^VA(200,"A",X,0)) I 'USER Q
-"RTN","BMXRPC10",270,0)
+"RTN","BMXRPC10",280,0)
  S @$C(68,85,90)=USER
-"RTN","BMXRPC10",271,0)
+"RTN","BMXRPC10",281,0)
  S OVC=$P(AV,";",2) I OVC="" Q
-"RTN","BMXRPC10",272,0)
+"RTN","BMXRPC10",282,0)
  S NVC=$P(AV,";",3) I NVC="" Q
-"RTN","BMXRPC10",273,0)
+"RTN","BMXRPC10",283,0)
  S EOVC=$$ENCRYP^XUSRB1(OVC)
-"RTN","BMXRPC10",274,0)
+"RTN","BMXRPC10",284,0)
  S ENVC=$$ENCRYP^XUSRB1(NVC)
-"RTN","BMXRPC10",275,0)
+"RTN","BMXRPC10",285,0)
  D CVC^XUSRB(.RET,(ENVC_U_EOVC))
-"RTN","BMXRPC10",276,0)
+"RTN","BMXRPC10",286,0)
  M OUT=RET
-"RTN","BMXRPC10",277,0)
- Q
-"RTN","BMXRPC10",278,0)
- ;
-"RTN","BMXRPC10",279,0)
+"RTN","BMXRPC10",287,0)
+ Q
+"RTN","BMXRPC10",288,0)
+ ;
+"RTN","BMXRPC10",289,0)
 TEST ; TEST CVC
-"RTN","BMXRPC10",280,0)
+"RTN","BMXRPC10",290,0)
  N DUZ,IN
-"RTN","BMXRPC10",281,0)
+"RTN","BMXRPC10",291,0)
  S IN=$$ENCRYP^XUSRB1("GREG4330;IRA-1727;IRA-1727")
-"RTN","BMXRPC10",282,0)
+"RTN","BMXRPC10",292,0)
  D CVC^BMXRPC10(.OUT,IN) W !,$G(OUT(0))," - ",$G(OUT(1))
-"RTN","BMXRPC10",283,0)
- Q
-"RTN","BMXRPC10",284,0)
+"RTN","BMXRPC10",293,0)
+ Q
+"RTN","BMXRPC10",294,0)
  ; 
 "RTN","BMXRPC2")
@@ -16592,5 +16628,5 @@
 BMXRPC2 ; IHS/OIT/HMW - FIELD LIST ;
 "RTN","BMXRPC2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC2",3,0)
  ;
@@ -16814,21 +16850,21 @@
  Q
 "RTN","BMXRPC3")
-0^39^B38590311
+0^39^B38580443
 "RTN","BMXRPC3",1,0)
-BMXRPC3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 4/6/11 4:56pm
+BMXRPC3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 5/11/11 4:33pm
 "RTN","BMXRPC3",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC3",3,0)
+   ;
+"RTN","BMXRPC3",4,0)
+   ; Changed for .1000 by WV/SMH on April 6 2011
+"RTN","BMXRPC3",5,0)
+   ; - References to ^AUTTSITE in GETFC & GETFCRS removed, as VISTA doesn't use this file
+"RTN","BMXRPC3",6,0)
+   ; - 
+"RTN","BMXRPC3",7,0)
+   ; 
+"RTN","BMXRPC3",8,0)
     ;
-"RTN","BMXRPC3",4,0)
-    ; Changed for .1000 by WV/SMH on April 6 2011
-"RTN","BMXRPC3",5,0)
-    ; - References to ^AUTTSITE in GETFC & GETFCRS removed, as VISTA doesn't use this file
-"RTN","BMXRPC3",6,0)
-    ; - 
-"RTN","BMXRPC3",7,0)
-    ; 
-"RTN","BMXRPC3",8,0)
- ;
 "RTN","BMXRPC3",9,0)
  ;
@@ -17294,5 +17330,5 @@
 BMXRPC4 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC4",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC4",3,0)
  ;
@@ -17592,5 +17628,5 @@
 BMXRPC5 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC5",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC5",3,0)
  ;
@@ -17842,5 +17878,5 @@
 BMXRPC6 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC6",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC6",3,0)
  ;
@@ -18068,5 +18104,5 @@
 BMXRPC7 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC7",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC7",3,0)
  ;
@@ -18340,5 +18376,5 @@
 BMXRPC8 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXRPC8",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC8",3,0)
  ;
@@ -18520,5 +18556,5 @@
 BMXRPC9 ; IHS/OIT/HMW - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ;
 "RTN","BMXRPC9",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXRPC9",3,0)
  ; UPDATE FILEMAN WITH AN ADO RECORD SET FROM A WINDOWS APPLICATION
@@ -18916,5 +18952,5 @@
 BMXSQL ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 
 "RTN","BMXSQL",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL",3,0)
  ;
@@ -19730,5 +19766,5 @@
 BMXSQL1 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 
 "RTN","BMXSQL1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL1",3,0)
  ;
@@ -20404,5 +20440,5 @@
 BMXSQL2 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXSQL2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL2",3,0)
  ;
@@ -20600,5 +20636,5 @@
 BMXSQL3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 
 "RTN","BMXSQL3",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL3",3,0)
  ;
@@ -21262,5 +21298,5 @@
 BMXSQL4 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXSQL4",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL4",3,0)
  ;
@@ -21330,5 +21366,5 @@
 BMXSQL5 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXSQL5",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL5",3,0)
  ;
@@ -21694,5 +21730,5 @@
 BMXSQL6 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 2/5/11 10:03pm
 "RTN","BMXSQL6",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL6",3,0)
  ;
@@ -22388,5 +22424,5 @@
 BMXSQL7 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXSQL7",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL7",3,0)
  ;
@@ -22854,5 +22890,5 @@
 BMXSQL91 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
 "RTN","BMXSQL91",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXSQL91",3,0)
  ;
@@ -23138,5 +23174,5 @@
 BMXTABLE ; IHS/OIT/HMW - BMX RETURN ENTIRE TABLE ;
 "RTN","BMXTABLE",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXTABLE",3,0)
  ;
@@ -23154,5 +23190,5 @@
 BMXTRS ; IHS/OIT/HMW - UPPERCASE-LOWERCASE ;
 "RTN","BMXTRS",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXTRS",3,0)
  ;
@@ -23240,5 +23276,5 @@
 BMXUTL1 ; IHS/OIT/HMW - UTIL: PATIENT DEMOGRAPHICS ;
 "RTN","BMXUTL1",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXUTL1",3,0)
  ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -23902,5 +23938,5 @@
 BMXUTL2 ; IHS/OIT/HMW - UTIL: PATIENT INFO ;
 "RTN","BMXUTL2",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXUTL2",3,0)
  ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -23968,5 +24004,5 @@
 BMXUTL5 ; IHS/OIT/HMW - DATE FORMAT ;
 "RTN","BMXUTL5",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXUTL5",3,0)
  ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
@@ -24404,5 +24440,5 @@
 BMXUTL6 ; IHS/OIT/HMW - BMXNET INSTALLATION CALLS ;
 "RTN","BMXUTL6",2,0)
- ;;4.1000;BMX;;Apr 17, 2011;Build 1
+ ;;4.1000;BMX;;Apr 17, 2011;Build 2
 "RTN","BMXUTL6",3,0)
  ;
