Changeset 1183
- Timestamp:
- May 11, 2011, 10:00:58 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/kids/bmx_041000.kids
r1150 r1183 1 KIDS Distribution saved on Apr 17, 2011@10:32:292 BMX 4.1000 for WorldVistA1 KIDS Distribution saved on May 11, 2011@17:02:50 2 BMX 4.1000 try 2 3 3 **KIDS**:BMX 4.1000^ 4 4 … … 6 6 BMX 4.1000 7 7 "BLD",7911,0) 8 BMX 4.1000^BMXNET RPMS .NET UTILITIES^0^3110 417^y8 BMX 4.1000^BMXNET RPMS .NET UTILITIES^0^3110511^y 9 9 "BLD",7911,1,0) 10 10 ^^3^3^3110417^ … … 42 42 43 43 "BLD",7911,6.3) 44 1 44 2 45 45 "BLD",7911,"INIT") 46 46 POST^BMXUTL6 … … 124 124 BMXMEVN^^0^B50045062 125 125 "BLD",7911,"KRN",9.8,"NM",31,0) 126 BMXMON^^0^B18 5134800126 BMXMON^^0^B189828327 127 127 "BLD",7911,"KRN",9.8,"NM",32,0) 128 128 BMXMSEC^^0^B14524048 … … 140 140 BMXRPC2^^0^B11504982 141 141 "BLD",7911,"KRN",9.8,"NM",39,0) 142 BMXRPC3^^0^B385 90311142 BMXRPC3^^0^B38580443 143 143 "BLD",7911,"KRN",9.8,"NM",40,0) 144 144 BMXRPC4^^0^B27858921 … … 184 184 BMXUTL6^^0^B1075011 185 185 "BLD",7911,"KRN",9.8,"NM",62,0) 186 BMXRPC10^^0^B 93587525186 BMXRPC10^^0^B102094048 187 187 "BLD",7911,"KRN",9.8,"NM",63,0) 188 188 BMXADOX1^^0^B84889528 … … 2606 2606 59512,54859 2607 2607 "KRN",19,11047,"RPC",0) 2608 ^19.05P^8 8^882608 ^19.05P^89^89 2609 2609 "KRN",19,11047,"RPC",1,0) 2610 2610 BMX SQL … … 2709 2709 "KRN",19,11047,"RPC",88,0) 2710 2710 BMX TEST ADO 2711 "KRN",19,11047,"RPC",89,0) 2712 BMX UTF-8 2711 2713 "KRN",19,11047,"U") 2712 2714 BMX PROCEDURE CALLS … … 2866 2868 0^41 2867 2869 "KRN",8994,2562,0) 2868 BMXGetFacRS^GETFCRS^BMXRPC 10^42870 BMXGetFacRS^GETFCRS^BMXRPC3^1 2869 2871 "KRN",8994,2563,-1) 2870 2872 0^46 … … 2986 2988 BMX UTF-8^UTF8^BMXRPC^1^P 2987 2989 "KRN",8994,2646,1,0) 2988 ^ 8994.01^4^4^3110407^^2990 ^^4^4^3100907^ 2989 2991 "KRN",8994,2646,1,1,0) 2990 2992 This RPC returns a single value of 1 if database supports UTF-8; 0 if … … 3072 3074 ^9.49I^1^1 3073 3075 "PKG",212,22,1,0) 3074 4.1000^3110 4173076 4.1000^3110511 3075 3077 "PKG",212,22,1,1,0) 3076 ^^3^3^3110 4173078 ^^3^3^3110511 3077 3079 "PKG",212,22,1,1,1,0) 3078 3080 BMX 4.1000; WV version of BMX 4.0 for IHS. … … 3164 3166 BMXADE1 ; IHS/OIT/HMW - BMXNet ADO.NET PROVIDER ; 3165 3167 "RTN","BMXADE1",2,0) 3166 ;;4.1000;BMX;;Apr 17, 2011;Build 13168 ;;4.1000;BMX;;Apr 17, 2011;Build 2 3167 3169 "RTN","BMXADE1",3,0) 3168 3170 ; … … 3332 3334 BMXADE2 ; IHS/OIT/HMW - BMXNet ADO.NET PROVIDER ; 3333 3335 "RTN","BMXADE2",2,0) 3334 ;;4.1000;BMX;;Apr 17, 2011;Build 13336 ;;4.1000;BMX;;Apr 17, 2011;Build 2 3335 3337 "RTN","BMXADE2",3,0) 3336 3338 ; … … 3514 3516 BMXADO ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 3515 3517 "RTN","BMXADO",2,0) 3516 ;;4.1000;BMX;;Apr 17, 2011;Build 13518 ;;4.1000;BMX;;Apr 17, 2011;Build 2 3517 3519 "RTN","BMXADO",3,0) 3518 3520 ; SS^BMXADO: RPC EP FROM WINDOWS/WEB APP TO GENERATE A SCHEMEA STRING (& OPTIONALLY, A DATA SET AS WELL) … … 3830 3832 BMXADO2 ; IHS/CIHA/GIS - BMX ADO RECORDSET UTILS ; 3831 3833 "RTN","BMXADO2",2,0) 3832 ;;4.1000;BMX;;Apr 17, 2011;Build 13834 ;;4.1000;BMX;;Apr 17, 2011;Build 2 3833 3835 "RTN","BMXADO2",3,0) 3834 3836 ; … … 3992 3994 BMXADOF ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 4/6/11 12:52pm 3993 3995 "RTN","BMXADOF",2,0) 3994 ;;4.1000;BMX;;Apr 17, 2011;Build 13996 ;;4.1000;BMX;;Apr 17, 2011;Build 2 3995 3997 "RTN","BMXADOF",3,0) 3996 3998 ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN … … 4456 4458 BMXADOF1 ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 4457 4459 "RTN","BMXADOF1",2,0) 4458 ;;4.1000;BMX;;Apr 17, 2011;Build 14460 ;;4.1000;BMX;;Apr 17, 2011;Build 2 4459 4461 "RTN","BMXADOF1",3,0) 4460 4462 ; UPDATE FILEMAN WITH AN ADO RECORD SET FROM A WINDOWS/WEB APPLICATION … … 4608 4610 BMXADOF2 ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 4609 4611 "RTN","BMXADOF2",2,0) 4610 ;;4.1000;BMX;;Apr 17, 2011;Build 14612 ;;4.1000;BMX;;Apr 17, 2011;Build 2 4611 4613 "RTN","BMXADOF2",3,0) 4612 4614 ; THIS ROUTINE CONTAINS SPECIAL ENTRY POINTS FOR UPDATING RPMS … … 4724 4726 BMXADOFD ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 31 Jul 2009 12:41 PM 4725 4727 "RTN","BMXADOFD",2,0) 4726 ;;4.1000;BMX;;Apr 17, 2011;Build 14728 ;;4.1000;BMX;;Apr 17, 2011;Build 2 4727 4729 "RTN","BMXADOFD",3,0) 4728 4730 ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN … … 4896 4898 BMXADOFS ; IHS/CIHA/GIS - RPC CALL FOR EXTENDED FUNCTIONALITY OF BMXNet UTILITIES ; 31 Jul 2009 12:42 PM 4897 4899 "RTN","BMXADOFS",2,0) 4898 ;;4.1000;BMX;;Apr 17, 2011;Build 14900 ;;4.1000;BMX;;Apr 17, 2011;Build 2 4899 4901 "RTN","BMXADOFS",3,0) 4900 4902 ; THIS IS THE ADO RECORDSET FILER: ADO -> FILEMAN … … 5314 5316 BMXADOI ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ; 5315 5317 "RTN","BMXADOI",2,0) 5316 ;;4.1000;BMX;;Apr 17, 2011;Build 15318 ;;4.1000;BMX;;Apr 17, 2011;Build 2 5317 5319 "RTN","BMXADOI",3,0) 5318 5320 ; CUSTOM IDENTIFIERS … … 5480 5482 BMXADOS ; IHS/CIHA/GIS - UPDATE THE BMX ADO SCHEMA FILE ; 4/5/11 1:54pm 5481 5483 "RTN","BMXADOS",2,0) 5482 ;;4.1000;BMX;;Apr 17, 2011;Build 15484 ;;4.1000;BMX;;Apr 17, 2011;Build 2 5483 5485 "RTN","BMXADOS",3,0) 5484 5486 ; ENABLES NAVIGATION TO SUBFILES PRIOR TO UPDATING THE SCHEMA FILE ENTRY … … 6014 6016 BMXADOS1 ; IHS/CIHA/GIS - UPDATE THE BMX ADO SCHEMA FILE GUI VERSION ; 6015 6017 "RTN","BMXADOS1",2,0) 6016 ;;4.1000;BMX;;Apr 17, 2011;Build 16018 ;;4.1000;BMX;;Apr 17, 2011;Build 2 6017 6019 "RTN","BMXADOS1",3,0) 6018 6020 ; RPC CALLS … … 6228 6230 BMXADOV ; CIHA/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET 6229 6231 "RTN","BMXADOV",2,0) 6230 ;;4.1000;BMX;;Apr 17, 2011;Build 16232 ;;4.1000;BMX;;Apr 17, 2011;Build 2 6231 6233 "RTN","BMXADOV",3,0) 6232 6234 ; … … 6474 6476 BMXADOV1 ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ; 6475 6477 "RTN","BMXADOV1",2,0) 6476 ;;4.1000;BMX;;Apr 17, 2011;Build 16478 ;;4.1000;BMX;;Apr 17, 2011;Build 2 6477 6479 "RTN","BMXADOV1",3,0) 6478 6480 ; CONTINUATION FILE FOR BMXADOV … … 6934 6936 BMXADOV2 ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ; 6935 6937 "RTN","BMXADOV2",2,0) 6936 ;;4.1000;BMX;;Apr 17, 2011;Build 16938 ;;4.1000;BMX;;Apr 17, 2011;Build 2 6937 6939 "RTN","BMXADOV2",3,0) 6938 6940 ; CUSTOM ITERATORS FOR RPMS … … 7210 7212 BMXADOVJ ; IHS/CIHA/GIS - RPC CALL: GENERATE DATA FOR AN ADO DATASET ; 7211 7213 "RTN","BMXADOVJ",2,0) 7212 ;;4.1000;BMX;;Apr 17, 2011;Build 17214 ;;4.1000;BMX;;Apr 17, 2011;Build 2 7213 7215 "RTN","BMXADOVJ",3,0) 7214 7216 ; THIS ROUTINE MANAGES THE JOINS … … 7368 7370 BMXADOX ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 7369 7371 "RTN","BMXADOX",2,0) 7370 ;;4.1000;BMX;;Apr 17, 2011;Build 17372 ;;4.1000;BMX;;Apr 17, 2011;Build 2 7371 7373 "RTN","BMXADOX",3,0) 7372 7374 ; EXMAPLES OF RPMS SCHEMAE GENERATION … … 8372 8374 BMXADOX1 ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 8373 8375 "RTN","BMXADOX1",2,0) 8374 ;;4.1000;BMX;;Apr 17, 2011;Build 18376 ;;4.1000;BMX;;Apr 17, 2011;Build 2 8375 8377 "RTN","BMXADOX1",3,0) 8376 8378 ; EXMAPLES OF FILEMAN SCHEMA GENERATION … … 9024 9026 BMXADOX2 ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 9025 9027 "RTN","BMXADOX2",2,0) 9026 ;;4.1000;BMX;;Apr 17, 2011;Build 19028 ;;4.1000;BMX;;Apr 17, 2011;Build 2 9027 9029 "RTN","BMXADOX2",3,0) 9028 9030 ; EXMAPLES OF FILEMAN SCHEMA GENERATION … … 9272 9274 BMXADOXX ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 9273 9275 "RTN","BMXADOXX",2,0) 9274 ;;4.1000;BMX;;Apr 17, 2011;Build 19276 ;;4.1000;BMX;;Apr 17, 2011;Build 2 9275 9277 "RTN","BMXADOXX",3,0) 9276 9278 ; EXMAPLES OF RPMS SCHEMAE GENERATION … … 10152 10154 BMXADOXY ; IHS/CIHA/GIS - RPC CALL: GENERATE AN ADO SCHEMA STRING AND DATA SET ; 10153 10155 "RTN","BMXADOXY",2,0) 10154 ;;4.1000;BMX;;Apr 17, 2011;Build 110156 ;;4.1000;BMX;;Apr 17, 2011;Build 2 10155 10157 "RTN","BMXADOXY",3,0) 10156 10158 ; EXMAPLES OF FILEMAN SCHEMA GENERATION … … 10746 10748 BMXE01 ; IHS/OIT/FJE - ENVIRONMENT CHECK FOR BMX 2.0 ; 4/6/11 4:20pm 10747 10749 "RTN","BMXE01",2,0) 10748 ;;4.1000;BMX;;Apr 17, 2011;Build 110750 ;;4.1000;BMX;;Apr 17, 2011;Build 2 10749 10751 "RTN","BMXE01",3,0) 10750 10752 ; … … 10852 10854 BMXEHR ; IHS/OIT/GIS - ENCAPSULATE BMX CALLS FOR USE WITHIN THE EHR 14 Jan 2009 4:37 PM ; 04 Jun 2010 3:16 PM 10853 10855 "RTN","BMXEHR",2,0) 10854 ;;4.1000;BMX;;Apr 17, 2011;Build 110856 ;;4.1000;BMX;;Apr 17, 2011;Build 2 10855 10857 "RTN","BMXEHR",3,0) 10856 10858 ; … … 11342 11344 BMXFIND ; IHS/OIT/HMW - BMX GENERIC FIND ; 11343 11345 "RTN","BMXFIND",2,0) 11344 ;;4.1000;BMX;;Apr 17, 2011;Build 111346 ;;4.1000;BMX;;Apr 17, 2011;Build 2 11345 11347 "RTN","BMXFIND",3,0) 11346 11348 ; … … 11864 11866 BMXG ; IHS/OIT/HMW - UTIL: GET DATA ; 11865 11867 "RTN","BMXG",2,0) 11866 ;;4.1000;BMX;;Apr 17, 2011;Build 111868 ;;4.1000;BMX;;Apr 17, 2011;Build 2 11867 11869 "RTN","BMXG",3,0) 11868 11870 ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 11974 11976 BMXGETS ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 11975 11977 "RTN","BMXGETS",2,0) 11976 ;;4.1000;BMX;;Apr 17, 2011;Build 111978 ;;4.1000;BMX;;Apr 17, 2011;Build 2 11977 11979 "RTN","BMXGETS",3,0) 11978 11980 ; … … 12268 12270 BMXMBRK ; IHS/OIT/HMW - BMXNet MONITOR ; 12269 12271 "RTN","BMXMBRK",2,0) 12270 ;;4.1000;BMX;;Apr 17, 2011;Build 112272 ;;4.1000;BMX;;Apr 17, 2011;Build 2 12271 12273 "RTN","BMXMBRK",3,0) 12272 12274 ; … … 12704 12706 BMXMBRK2 ;IHS/OIT/HMW - BMXNet MONITOR ; 12705 12707 "RTN","BMXMBRK2",2,0) 12706 ;;4.1000;BMX;;Apr 17, 2011;Build 112708 ;;4.1000;BMX;;Apr 17, 2011;Build 2 12707 12709 "RTN","BMXMBRK2",3,0) 12708 12710 ; … … 13046 13048 BMXMEVN ; IHS/OIT/HMW - BMXNet MONITOR ; 13047 13049 "RTN","BMXMEVN",2,0) 13048 ;;4.1000;BMX;;Apr 17, 2011;Build 113050 ;;4.1000;BMX;;Apr 17, 2011;Build 2 13049 13051 "RTN","BMXMEVN",3,0) 13050 13052 ; … … 13580 13582 Q 13581 13583 "RTN","BMXMON") 13582 0^31^B18 513480013584 0^31^B189828327 13583 13585 "RTN","BMXMON",1,0) 13584 BMXMON ; IHS/OIT/HMW - BMXNet MONITOR ; 4/6/11 12:42pm13586 BMXMON ; IHS/OIT/HMW - BMXNet MONITOR ; 5/9/11 10:16am 13585 13587 "RTN","BMXMON",2,0) 13586 ;;4.1000;BMX;;Apr 17, 2011;Build 113588 ;;4.1000;BMX;;Apr 17, 2011;Build 2 13587 13589 "RTN","BMXMON",3,0) 13588 13590 ; 13589 13591 "RTN","BMXMON",4,0) 13590 ; IMPORTANT: Logging is on by default. Set XWBDEBUG=0 to turn it off.13592 ; Changes for *1000 by WV/SMH (Feb 2 2011) to support GT.M 13591 13593 "RTN","BMXMON",5,0) 13592 ; 13594 ; - XINETD entry point for GT.M 13593 13595 "RTN","BMXMON",6,0) 13594 ; Changes for *1000 by WV/SMH (Feb 2 2011) to support GT.M13596 ; - Replacement of all W *-3 to W ! 13595 13597 "RTN","BMXMON",7,0) 13596 ; - XINETD entry point for GT.M13598 ; - Addition of logging capabilities for analysis using XWBDLOG 13597 13599 "RTN","BMXMON",8,0) 13598 ; - Replacement of all W *-3 to W !13600 ; - In SESSRES 13599 13601 "RTN","BMXMON",9,0) 13600 ; - Addition of logging capabilities for analysis13602 ; -- Broker Timeout set from Kernel System Parameter Broker Timeout Field 13601 13603 "RTN","BMXMON",10,0) 13602 ; - In SESSRES13604 ; -- Process Name now gets Set to show in %SS or ZSY 13603 13605 "RTN","BMXMON",11,0) 13604 ; - - Broker Timeout set from Kernel System Parameter Broker Timeout Field13606 ; - Error Handling does not log Network Errors to the Error Trap. 13605 13607 "RTN","BMXMON",12,0) 13606 ; -- Process Name now changes to show name in %SS or ZSY13608 ; - Major refactoring to Writing to the TCP Network Stream. 13607 13609 "RTN","BMXMON",13,0) 13608 ;13610 ; --> All writes are buffered up to 32767 characters (max string on Cache) 13609 13611 "RTN","BMXMON",14,0) 13610 ;13612 ; --> Then sent... 13611 13613 "RTN","BMXMON",15,0) 13614 ; --> See EP's WRITE and WBF 13615 "RTN","BMXMON",16,0) 13616 ; --> This avoids the side effects of the Nagle Algorithm on the Linux TCP Stack 13617 "RTN","BMXMON",17,0) 13618 ; - BMXERR renamed to BMXERROR in EP ETRAP so that it can be sent via SNDERR. 13619 "RTN","BMXMON",18,0) 13620 ; --> This reduces the need for custom error trap handling which is very difficult to do 13621 "RTN","BMXMON",19,0) 13622 ; --> in Mumps for new programmers. Mumps errors now are thrown on the client. 13623 "RTN","BMXMON",20,0) 13624 ; 13625 "RTN","BMXMON",21,0) 13612 13626 ;IHS/OIT/HMW Patch 1 added validity check for passed-in namespace 13613 "RTN","BMXMON", 16,0)13614 ; 13615 "RTN","BMXMON", 17,0)13627 "RTN","BMXMON",22,0) 13628 ; 13629 "RTN","BMXMON",23,0) 13616 13630 STRT(BMXPORT,NS,IS,VB) ;EP 13617 "RTN","BMXMON", 18,0)13631 "RTN","BMXMON",24,0) 13618 13632 ;Interactive monitor start 13619 "RTN","BMXMON", 19,0)13633 "RTN","BMXMON",25,0) 13620 13634 ;Optional NS = namespace. If undefined, start in current ns 13621 "RTN","BMXMON",2 0,0)13635 "RTN","BMXMON",26,0) 13622 13636 ;Optional IS = Integrated Security. Default is 1 13623 "RTN","BMXMON",2 1,0)13637 "RTN","BMXMON",27,0) 13624 13638 ;Optional VB = Verbose. Default is 1 13625 "RTN","BMXMON",2 2,0)13626 ; 13627 "RTN","BMXMON",2 3,0)13639 "RTN","BMXMON",28,0) 13640 ; 13641 "RTN","BMXMON",29,0) 13628 13642 N Y,BMXNS,BMXWIN 13629 "RTN","BMXMON", 24,0)13630 ; 13631 "RTN","BMXMON", 25,0)13643 "RTN","BMXMON",30,0) 13644 ; 13645 "RTN","BMXMON",31,0) 13632 13646 ;Verbose 13633 "RTN","BMXMON", 26,0)13647 "RTN","BMXMON",32,0) 13634 13648 S BMXVB=$G(VB,1) 13635 "RTN","BMXMON", 27,0)13636 ; 13637 "RTN","BMXMON", 28,0)13649 "RTN","BMXMON",33,0) 13650 ; 13651 "RTN","BMXMON",34,0) 13638 13652 ;Check if port already running 13639 "RTN","BMXMON", 29,0)13653 "RTN","BMXMON",35,0) 13640 13654 I '$$SEMAPHOR(BMXPORT,"LOCK") W:BMXVB "BMXNet Monitor on port "_BMXPORT_" appears to be running already.",! Q 13641 "RTN","BMXMON",3 0,0)13655 "RTN","BMXMON",36,0) 13642 13656 S %=$$SEMAPHOR(BMXPORT,"UNLOCK") 13643 "RTN","BMXMON",3 1,0)13644 ; 13645 "RTN","BMXMON",3 2,0)13657 "RTN","BMXMON",37,0) 13658 ; 13659 "RTN","BMXMON",38,0) 13646 13660 D MARKER(BMXPORT,1) ;record problem marker 13647 "RTN","BMXMON",3 3,0)13661 "RTN","BMXMON",39,0) 13648 13662 ; -- start the monitor 13649 "RTN","BMXMON", 34,0)13650 ; 13651 "RTN","BMXMON", 35,0)13663 "RTN","BMXMON",40,0) 13664 ; 13665 "RTN","BMXMON",41,0) 13652 13666 ;Namespace 13653 "RTN","BMXMON", 36,0)13667 "RTN","BMXMON",42,0) 13654 13668 X ^%ZOSF("UCI") 13655 "RTN","BMXMON", 37,0)13669 "RTN","BMXMON",43,0) 13656 13670 S BMXNS=$G(NS,$P(Y,",")) 13657 "RTN","BMXMON", 38,0)13658 ; 13659 "RTN","BMXMON", 39,0)13671 "RTN","BMXMON",44,0) 13672 ; 13673 "RTN","BMXMON",45,0) 13660 13674 ;Integrated security 13661 "RTN","BMXMON",4 0,0)13675 "RTN","BMXMON",46,0) 13662 13676 S BMXWIN=$G(IS,1) 13663 "RTN","BMXMON",4 1,0)13664 ; 13665 "RTN","BMXMON",4 2,0)13677 "RTN","BMXMON",47,0) 13678 ; 13679 "RTN","BMXMON",48,0) 13666 13680 ;J DEBUG^%Serenji("MON^BMXMON("_BMXPORT_","_BMXNS_","_BMXWIN_")") 13667 "RTN","BMXMON",4 3,0)13681 "RTN","BMXMON",49,0) 13668 13682 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 13669 "RTN","BMXMON", 44,0)13683 "RTN","BMXMON",50,0) 13670 13684 F %=1:1:5 D Q:%=0 13671 "RTN","BMXMON", 45,0)13685 "RTN","BMXMON",51,0) 13672 13686 . W:BMXVB "Checking if BMXNet Monitor has started...",! 13673 "RTN","BMXMON", 46,0)13687 "RTN","BMXMON",52,0) 13674 13688 . H 1 13675 "RTN","BMXMON", 47,0)13689 "RTN","BMXMON",53,0) 13676 13690 . S:'$$MARKER(BMXPORT,0) %=0 13677 "RTN","BMXMON", 48,0)13691 "RTN","BMXMON",54,0) 13678 13692 I $$MARKER(BMXPORT,0) D 13679 "RTN","BMXMON", 49,0)13693 "RTN","BMXMON",55,0) 13680 13694 . W:BMXVB !,"BMXNet Monitor could not be started!",! 13681 "RTN","BMXMON",5 0,0)13695 "RTN","BMXMON",56,0) 13682 13696 . W:BMXVB "Check if port "_BMXPORT_" is busy on this CPU.",! 13683 "RTN","BMXMON",5 1,0)13697 "RTN","BMXMON",57,0) 13684 13698 . D MARKER(BMXPORT,-1) ;clear marker 13685 "RTN","BMXMON",5 2,0)13699 "RTN","BMXMON",58,0) 13686 13700 E W:BMXVB "BMXNet Monitor started successfully." 13687 "RTN","BMXMON",5 3,0)13688 ; 13689 "RTN","BMXMON", 54,0)13690 Q 13691 "RTN","BMXMON", 55,0)13692 ; 13693 "RTN","BMXMON", 56,0)13701 "RTN","BMXMON",59,0) 13702 ; 13703 "RTN","BMXMON",60,0) 13704 Q 13705 "RTN","BMXMON",61,0) 13706 ; 13707 "RTN","BMXMON",62,0) 13694 13708 RESTART ;EP 13695 "RTN","BMXMON", 57,0)13709 "RTN","BMXMON",63,0) 13696 13710 ;Stop and Start all monitors in BMX MONITOR file 13697 "RTN","BMXMON", 58,0)13711 "RTN","BMXMON",64,0) 13698 13712 ;Called by option BMX MONITOR START 13699 "RTN","BMXMON", 59,0)13700 ; 13701 "RTN","BMXMON",6 0,0)13713 "RTN","BMXMON",65,0) 13714 ; 13715 "RTN","BMXMON",66,0) 13702 13716 D STOPALL 13703 "RTN","BMXMON",6 1,0)13717 "RTN","BMXMON",67,0) 13704 13718 D STRTALL 13705 "RTN","BMXMON",6 2,0)13706 Q 13707 "RTN","BMXMON",6 3,0)13708 ; 13709 "RTN","BMXMON", 64,0)13719 "RTN","BMXMON",68,0) 13720 Q 13721 "RTN","BMXMON",69,0) 13722 ; 13723 "RTN","BMXMON",70,0) 13710 13724 STRTALL ;EP 13711 "RTN","BMXMON", 65,0)13725 "RTN","BMXMON",71,0) 13712 13726 ;Start all monitors in BMX MONITOR file 13713 "RTN","BMXMON", 66,0)13714 ; 13715 "RTN","BMXMON", 67,0)13727 "RTN","BMXMON",72,0) 13728 ; 13729 "RTN","BMXMON",73,0) 13716 13730 N BMXIEN 13717 "RTN","BMXMON", 68,0)13731 "RTN","BMXMON",74,0) 13718 13732 S BMXIEN=0 F S BMXIEN=$O(^BMXMON(BMXIEN)) Q:'+BMXIEN D 13719 "RTN","BMXMON", 69,0)13733 "RTN","BMXMON",75,0) 13720 13734 . S BMXNOD=$G(^BMXMON(BMXIEN,0)) 13721 "RTN","BMXMON",7 0,0)13735 "RTN","BMXMON",76,0) 13722 13736 . Q:'+BMXNOD 13723 "RTN","BMXMON",7 1,0)13737 "RTN","BMXMON",77,0) 13724 13738 . Q:'+$P(BMXNOD,U,2) 13725 "RTN","BMXMON",7 2,0)13739 "RTN","BMXMON",78,0) 13726 13740 . S BMXWIN=$P(BMXNOD,U,3) 13727 "RTN","BMXMON",7 3,0)13741 "RTN","BMXMON",79,0) 13728 13742 . S BMXNS=$P(BMXNOD,U,4) 13729 "RTN","BMXMON", 74,0)13743 "RTN","BMXMON",80,0) 13730 13744 . D STRT($P(BMXNOD,U),BMXNS,BMXWIN,0) 13731 "RTN","BMXMON", 75,0)13745 "RTN","BMXMON",81,0) 13732 13746 . Q 13733 "RTN","BMXMON", 76,0)13734 Q 13735 "RTN","BMXMON", 77,0)13736 ; 13737 "RTN","BMXMON", 78,0)13747 "RTN","BMXMON",82,0) 13748 Q 13749 "RTN","BMXMON",83,0) 13750 ; 13751 "RTN","BMXMON",84,0) 13738 13752 STOPALL ;EP 13739 "RTN","BMXMON", 79,0)13753 "RTN","BMXMON",85,0) 13740 13754 ;Stop all monitors in BMXNET MONITOR file 13741 "RTN","BMXMON",8 0,0)13742 ; 13743 "RTN","BMXMON",8 1,0)13755 "RTN","BMXMON",86,0) 13756 ; 13757 "RTN","BMXMON",87,0) 13744 13758 N BMXIEN,BMXPORT 13745 "RTN","BMXMON",8 2,0)13759 "RTN","BMXMON",88,0) 13746 13760 S BMXIEN=0 F S BMXIEN=$O(^BMXMON(BMXIEN)) Q:'+BMXIEN D 13747 "RTN","BMXMON",8 3,0)13761 "RTN","BMXMON",89,0) 13748 13762 . S BMXNOD=$G(^BMXMON(BMXIEN,0)) 13749 "RTN","BMXMON", 84,0)13763 "RTN","BMXMON",90,0) 13750 13764 . Q:'+BMXNOD 13751 "RTN","BMXMON", 85,0)13765 "RTN","BMXMON",91,0) 13752 13766 . S BMXPORT=+BMXNOD 13753 "RTN","BMXMON", 86,0)13767 "RTN","BMXMON",92,0) 13754 13768 . D STOP(BMXPORT,0) 13755 "RTN","BMXMON", 87,0)13756 Q 13757 "RTN","BMXMON", 88,0)13758 ; 13759 "RTN","BMXMON", 89,0)13769 "RTN","BMXMON",93,0) 13770 Q 13771 "RTN","BMXMON",94,0) 13772 ; 13773 "RTN","BMXMON",95,0) 13760 13774 STOP(BMXPORT,VB) ;EP Stop monitor on BMXPORT 13761 "RTN","BMXMON",9 0,0)13775 "RTN","BMXMON",96,0) 13762 13776 ;Open a channel to monitor on BMXPORT and send shutdown request 13763 "RTN","BMXMON",9 1,0)13777 "RTN","BMXMON",97,0) 13764 13778 ;Optional VB = Verbose. Default is 1 13765 "RTN","BMXMON",9 2,0)13766 ; 13767 "RTN","BMXMON",9 3,0)13779 "RTN","BMXMON",98,0) 13780 ; 13781 "RTN","BMXMON",99,0) 13768 13782 N IP,REF,X,DEV 13769 "RTN","BMXMON", 94,0)13783 "RTN","BMXMON",100,0) 13770 13784 S U="^" D HOME^%ZIS 13771 "RTN","BMXMON", 95,0)13772 ; 13773 "RTN","BMXMON", 96,0)13785 "RTN","BMXMON",101,0) 13786 ; 13787 "RTN","BMXMON",102,0) 13774 13788 ;Verbose 13775 "RTN","BMXMON", 97,0)13789 "RTN","BMXMON",103,0) 13776 13790 S BMXVB=$G(VB,1) 13777 "RTN","BMXMON", 98,0)13778 ; 13779 "RTN","BMXMON", 99,0)13791 "RTN","BMXMON",104,0) 13792 ; 13793 "RTN","BMXMON",105,0) 13780 13794 D:BMXVB EN^DDIOL("Stop BMXNet Monitor...") 13781 "RTN","BMXMON",10 0,0)13795 "RTN","BMXMON",106,0) 13782 13796 X ^%ZOSF("UCI") S REF=Y 13783 "RTN","BMXMON",10 1,0)13797 "RTN","BMXMON",107,0) 13784 13798 S IP="0.0.0.0" ;get server IP 13785 "RTN","BMXMON",10 2,0)13799 "RTN","BMXMON",108,0) 13786 13800 IF $G(BMXPORT)="" S BMXPORT=9200 13787 "RTN","BMXMON",10 3,0)13801 "RTN","BMXMON",109,0) 13788 13802 ; -- make sure the listener is running 13789 "RTN","BMXMON",1 04,0)13803 "RTN","BMXMON",110,0) 13790 13804 I $$SEMAPHOR(BMXPORT,"LOCK") D Q 13791 "RTN","BMXMON",1 05,0)13805 "RTN","BMXMON",111,0) 13792 13806 . S %=$$SEMAPHOR(BMXPORT,"UNLOCK") 13793 "RTN","BMXMON",1 06,0)13807 "RTN","BMXMON",112,0) 13794 13808 . D:BMXVB EN^DDIOL("BMXNet Monitor does not appear to be running.") 13795 "RTN","BMXMON",1 07,0)13809 "RTN","BMXMON",113,0) 13796 13810 ; -- send the shutdown message to the TCP Listener process 13797 "RTN","BMXMON",1 08,0)13811 "RTN","BMXMON",114,0) 13798 13812 D CALL^%ZISTCP("127.0.0.1",BMXPORT) I POP D Q 13799 "RTN","BMXMON",1 09,0)13813 "RTN","BMXMON",115,0) 13800 13814 . S %=$$SEMAPHOR(BMXPORT,"UNLOCK") 13801 "RTN","BMXMON",11 0,0)13815 "RTN","BMXMON",116,0) 13802 13816 . D:BMXVB EN^DDIOL("BMXNet Monitor does not appear to be running.") 13803 "RTN","BMXMON",11 1,0)13817 "RTN","BMXMON",117,0) 13804 13818 U IO 13805 "RTN","BMXMON",11 2,0)13819 "RTN","BMXMON",118,0) 13806 13820 S X=$T(+2),X=$P(X,";;",2),X=$P(X,";") 13807 "RTN","BMXMON",11 3,0)13821 "RTN","BMXMON",119,0) 13808 13822 IF X="" S X=0 13809 "RTN","BMXMON",1 14,0)13823 "RTN","BMXMON",120,0) 13810 13824 S X=$C($L(X))_X 13811 "RTN","BMXMON",1 15,0)13825 "RTN","BMXMON",121,0) 13812 13826 W "{BMX}00011TCPshutdown",! 13813 "RTN","BMXMON",1 16,0)13827 "RTN","BMXMON",122,0) 13814 13828 R X#3:5 ;IHS/OIT/HMW SAC Exemption Applied For 13815 "RTN","BMXMON",1 17,0)13829 "RTN","BMXMON",123,0) 13816 13830 D CLOSE^%ZISTCP 13817 "RTN","BMXMON",1 18,0)13831 "RTN","BMXMON",124,0) 13818 13832 I X="ack" D:BMXVB EN^DDIOL("BMXNet Monitor has been shutdown.") 13819 "RTN","BMXMON",1 19,0)13833 "RTN","BMXMON",125,0) 13820 13834 E D:BMXVB EN^DDIOL("Shutdown Failed!") 13821 "RTN","BMXMON",12 0,0)13835 "RTN","BMXMON",126,0) 13822 13836 ;change process name 13823 "RTN","BMXMON",12 1,0)13837 "RTN","BMXMON",127,0) 13824 13838 D CHPRN($J) 13825 "RTN","BMXMON",12 2,0)13826 Q 13827 "RTN","BMXMON",12 3,0)13828 ; 13829 "RTN","BMXMON",1 24,0)13839 "RTN","BMXMON",128,0) 13840 Q 13841 "RTN","BMXMON",129,0) 13842 ; 13843 "RTN","BMXMON",130,0) 13830 13844 MON(BMXPORT,NS,IS) ;Monitor port for connection & shutdown requests 13831 "RTN","BMXMON",1 25,0)13845 "RTN","BMXMON",131,0) 13832 13846 ;NS = Namespace to Start monitor 13833 "RTN","BMXMON",1 26,0)13847 "RTN","BMXMON",132,0) 13834 13848 ;IS = 1: Enable integrated security 13835 "RTN","BMXMON",1 27,0)13836 ; 13837 "RTN","BMXMON",1 28,0)13849 "RTN","BMXMON",133,0) 13850 ; 13851 "RTN","BMXMON",134,0) 13838 13852 N BMXDEV,BMXQUIT,BMXDTIME,BMXLEN,BMXACT,BMXWIN,BMXNS 13839 "RTN","BMXMON",1 29,0)13853 "RTN","BMXMON",135,0) 13840 13854 S BMXQUIT=0,BMXDTIME=999999 13841 "RTN","BMXMON",13 0,0)13842 ; 13843 "RTN","BMXMON",13 1,0)13855 "RTN","BMXMON",136,0) 13856 ; 13857 "RTN","BMXMON",137,0) 13844 13858 ;Set lock 13845 "RTN","BMXMON",13 2,0)13859 "RTN","BMXMON",138,0) 13846 13860 Q:'$$SEMAPHOR(BMXPORT,"LOCK") 13847 "RTN","BMXMON",13 3,0)13861 "RTN","BMXMON",139,0) 13848 13862 ;Clear problem marker 13849 "RTN","BMXMON",1 34,0)13863 "RTN","BMXMON",140,0) 13850 13864 D MARKER(BMXPORT,-1) 13851 "RTN","BMXMON",1 35,0)13865 "RTN","BMXMON",141,0) 13852 13866 ;H 1 13853 "RTN","BMXMON",1 36,0)13854 ; 13855 "RTN","BMXMON",1 37,0)13867 "RTN","BMXMON",142,0) 13868 ; 13869 "RTN","BMXMON",143,0) 13856 13870 ;Namespace 13857 "RTN","BMXMON",1 38,0)13871 "RTN","BMXMON",144,0) 13858 13872 X ^%ZOSF("UCI") 13859 "RTN","BMXMON",1 39,0)13873 "RTN","BMXMON",145,0) 13860 13874 I $G(NS)="" S BMXNS=$P(Y,",") 13861 "RTN","BMXMON",14 0,0)13875 "RTN","BMXMON",146,0) 13862 13876 E S BMXNS=NS 13863 "RTN","BMXMON",14 1,0)13864 ; 13865 "RTN","BMXMON",14 2,0)13877 "RTN","BMXMON",147,0) 13878 ; 13879 "RTN","BMXMON",148,0) 13866 13880 ;Integrated security 13867 "RTN","BMXMON",14 3,0)13881 "RTN","BMXMON",149,0) 13868 13882 S BMXWIN=$G(IS,1) 13869 "RTN","BMXMON",1 44,0)13870 ; 13871 "RTN","BMXMON",1 45,0)13883 "RTN","BMXMON",150,0) 13884 ; 13885 "RTN","BMXMON",151,0) 13872 13886 ;Open server port; 13873 "RTN","BMXMON",1 46,0)13887 "RTN","BMXMON",152,0) 13874 13888 S BMXDEV="|TCP|"_BMXPORT 13875 "RTN","BMXMON",1 47,0)13889 "RTN","BMXMON",153,0) 13876 13890 C BMXDEV ;IHS/OIT/HMW SAC Exemption Applied For 13877 "RTN","BMXMON",1 48,0)13891 "RTN","BMXMON",154,0) 13878 13892 O BMXDEV:(:BMXPORT:"S"):5 I '$T Q ;IHS/OIT/HMW SAC Exemption Applied For 13879 "RTN","BMXMON",1 49,0)13880 ; 13881 "RTN","BMXMON",15 0,0)13893 "RTN","BMXMON",155,0) 13894 ; 13895 "RTN","BMXMON",156,0) 13882 13896 ;S BMXDTIME(1)=BMXDTIME ; TODO: Set timeouts 13883 "RTN","BMXMON",15 1,0)13897 "RTN","BMXMON",157,0) 13884 13898 S BMXDTIME(1)=.5 ;HMW 20050120 13885 "RTN","BMXMON",15 2,0)13899 "RTN","BMXMON",158,0) 13886 13900 U BMXDEV 13887 "RTN","BMXMON",15 3,0)13901 "RTN","BMXMON",159,0) 13888 13902 F D Q:BMXQUIT 13889 "RTN","BMXMON",1 54,0)13903 "RTN","BMXMON",160,0) 13890 13904 . R BMXACT#5:BMXDTIME ;Read first 5 chars from TCP buffer, timeout=BMXDTIME ;IHS/OIT/HMW SAC Exemption Applied For 13891 "RTN","BMXMON",1 55,0)13905 "RTN","BMXMON",161,0) 13892 13906 . I BMXACT'="{BMX}" S BMXQUIT=1 Q 13893 "RTN","BMXMON",1 56,0)13907 "RTN","BMXMON",162,0) 13894 13908 . R BMXACT#5:BMXDTIME ;Read next 5 chars - message length ;IHS/OIT/HMW SAC Exemption Applied For 13895 "RTN","BMXMON",1 57,0)13909 "RTN","BMXMON",163,0) 13896 13910 . S BMXLEN=+BMXACT 13897 "RTN","BMXMON",1 58,0)13911 "RTN","BMXMON",164,0) 13898 13912 . R BMXACT#BMXLEN:BMXDTIME ;IHS/OIT/HMW SAC Exemption Applied For 13899 "RTN","BMXMON",1 59,0)13913 "RTN","BMXMON",165,0) 13900 13914 . I $P(BMXACT,"^")="TCPconnect" D Q 13901 "RTN","BMXMON",16 0,0)13915 "RTN","BMXMON",166,0) 13902 13916 . . N BMXNSJ,X,Y,ZCHILD,% 13903 "RTN","BMXMON",16 1,0)13917 "RTN","BMXMON",167,0) 13904 13918 . . S BMXNSJ=$P(BMXACT,"^",2) ;Namespace 13905 "RTN","BMXMON",16 2,0)13919 "RTN","BMXMON",168,0) 13906 13920 . . S BMXNSJ=$P(BMXNSJ,",") 13907 "RTN","BMXMON",16 3,0)13921 "RTN","BMXMON",169,0) 13908 13922 . . I BMXNSJ="" S BMXNSJ=BMXNS 13909 "RTN","BMXMON",1 64,0)13923 "RTN","BMXMON",170,0) 13910 13924 . . S X=BMXNSJ 13911 "RTN","BMXMON",1 65,0)13925 "RTN","BMXMON",171,0) 13912 13926 . . X ^%ZOSF("UCICHECK") I Y=0 S BMXNSJ=BMXNS 13913 "RTN","BMXMON",1 66,0)13927 "RTN","BMXMON",172,0) 13914 13928 . . S STATUS=$S(Y'=0:"CONNECTION OK",1:"CONNECTION FAILED, INVALID NAMESPACE") ; SET CONNECTION STATUS BASED ON NAMESPACE VALIDITY 13915 "RTN","BMXMON",1 67,0)13929 "RTN","BMXMON",173,0) 13916 13930 . . J SESSION^BMXMON(BMXWIN)[BMXNSJ]:(:5:BMXDEV:BMXDEV):5 ;IHS/OIT/HMW SAC Exemption Applied For 13917 "RTN","BMXMON",1 68,0)13931 "RTN","BMXMON",174,0) 13918 13932 . . X ("S ZCHILD="_$C(36,90)_"CHILD") 13919 "RTN","BMXMON",1 69,0)13933 "RTN","BMXMON",175,0) 13920 13934 . . I ZCHILD S ^BMXTMP("CONNECT STATUS",ZCHILD)=STATUS 13921 "RTN","BMXMON",17 0,0)13935 "RTN","BMXMON",176,0) 13922 13936 . . Q 13923 "RTN","BMXMON",17 1,0)13937 "RTN","BMXMON",177,0) 13924 13938 . I $P(BMXACT,"^")="TCPshutdown" S BMXQUIT=1 W "ack",! 13925 "RTN","BMXMON",17 2,0)13939 "RTN","BMXMON",178,0) 13926 13940 S %=$$SEMAPHOR(BMXPORT,"UNLOCK") ; destroy 'running flag' 13927 "RTN","BMXMON",17 3,0)13928 Q 13929 "RTN","BMXMON",1 74,0)13930 ; 13931 "RTN","BMXMON",1 75,0)13941 "RTN","BMXMON",179,0) 13942 Q 13943 "RTN","BMXMON",180,0) 13944 ; 13945 "RTN","BMXMON",181,0) 13932 13946 XINETD ;PEP Directly from xinetd or inetd for GT.M 13933 "RTN","BMXMON",1 76,0)13947 "RTN","BMXMON",182,0) 13934 13948 ; 13935 "RTN","BMXMON",1 77,0)13949 "RTN","BMXMON",183,0) 13936 13950 N XWBDEBUG S XWBDEBUG=$$GET^XPAR("SYS","XWBDEBUG") ; 0 1 2 or 3; depending on the level of verbosity desired. 13937 "RTN","BMXMON",1 78,0)13951 "RTN","BMXMON",184,0) 13938 13952 D:XWBDEBUG LOGSTART^XWBDLOG("XINETD^BMXMON") ; Start Log only if logging 13939 "RTN","BMXMON",1 79,0)13953 "RTN","BMXMON",185,0) 13940 13954 ; 13941 "RTN","BMXMON",18 0,0)13955 "RTN","BMXMON",186,0) 13942 13956 N BMXDEV 13943 "RTN","BMXMON",18 1,0)13957 "RTN","BMXMON",187,0) 13944 13958 S U="^",$ETRAP="D ^%ZTER H" ;Set up the error trap 13945 "RTN","BMXMON",18 2,0)13959 "RTN","BMXMON",188,0) 13946 13960 S $ZT="" ;Clear old trap 13947 "RTN","BMXMON",18 3,0)13961 "RTN","BMXMON",189,0) 13948 13962 ; 13949 "RTN","BMXMON",1 84,0)13963 "RTN","BMXMON",190,0) 13950 13964 ; GT.M specific error and device code; get remove ip address 13951 "RTN","BMXMON",1 85,0)13965 "RTN","BMXMON",191,0) 13952 13966 S @("$ZINTERRUPT=""I $$JOBEXAM^ZU($ZPOSITION)""") 13953 "RTN","BMXMON",1 86,0)13967 "RTN","BMXMON",192,0) 13954 13968 S BMXDEV=$P X "U BMXDEV:(nowrap:nodelimiter:ioerror=""^%ZTER H"")" 13955 "RTN","BMXMON",1 87,0)13969 "RTN","BMXMON",193,0) 13956 13970 S %="",@("%=$ZTRNLNM(""REMOTE_HOST"")") S:$L(%) IO("GTM-IP")=% 13957 "RTN","BMXMON",1 88,0)13971 "RTN","BMXMON",194,0) 13958 13972 ; 13959 "RTN","BMXMON",1 89,0)13973 "RTN","BMXMON",195,0) 13960 13974 ; Read message type 13961 "RTN","BMXMON",19 0,0)13975 "RTN","BMXMON",196,0) 13962 13976 N BMXACT,BMXDTIME 13963 "RTN","BMXMON",19 1,0)13977 "RTN","BMXMON",197,0) 13964 13978 S BMXDTIME=10 ; change in 2.2 instead of 9999999 - initial conn timout 13965 "RTN","BMXMON",19 2,0)13979 "RTN","BMXMON",198,0) 13966 13980 R BMXACT#5:BMXDTIME 13967 "RTN","BMXMON",19 3,0)13981 "RTN","BMXMON",199,0) 13968 13982 ; 13969 "RTN","BMXMON", 194,0)13983 "RTN","BMXMON",200,0) 13970 13984 D LOG("Read: "_BMXACT) 13971 "RTN","BMXMON", 195,0)13985 "RTN","BMXMON",201,0) 13972 13986 ; 13973 "RTN","BMXMON", 196,0)13987 "RTN","BMXMON",202,0) 13974 13988 Q:BMXACT'="{BMX}" ; Not a BMX message - quit. 13975 "RTN","BMXMON", 197,0)13989 "RTN","BMXMON",203,0) 13976 13990 ; Fall through to below... 13977 "RTN","BMXMON", 198,0)13991 "RTN","BMXMON",204,0) 13978 13992 GTMLNX ;EP from XWBTCPM for GT.M 13979 "RTN","BMXMON", 199,0)13993 "RTN","BMXMON",205,0) 13980 13994 ; not implementing NS and integrated authentication 13981 "RTN","BMXMON",20 0,0)13995 "RTN","BMXMON",206,0) 13982 13996 ; Vars: Read timeout, msg len, msg, windows auth, Namespace 13983 "RTN","BMXMON",20 1,0)13997 "RTN","BMXMON",207,0) 13984 13998 N BMXDTIME,BMXLEN,BMXACT,BMXWIN,BMXNS 13985 "RTN","BMXMON",20 2,0)13999 "RTN","BMXMON",208,0) 13986 14000 S BMXNSJ="",BMXWIN=0 ; No NS on GT.M, no Windows Authentication 13987 "RTN","BMXMON",20 3,0)14001 "RTN","BMXMON",209,0) 13988 14002 S BMXDTIME(1)=.5,BMXDTIME=180 ; sign on timeout 13989 "RTN","BMXMON",2 04,0)14003 "RTN","BMXMON",210,0) 13990 14004 R BMXACT#5:BMXDTIME ;Read next 5 chars - message length 13991 "RTN","BMXMON",2 05,0)14005 "RTN","BMXMON",211,0) 13992 14006 ; 13993 "RTN","BMXMON",2 06,0)14007 "RTN","BMXMON",212,0) 13994 14008 D LOG("Read: "_BMXACT) 13995 "RTN","BMXMON",2 07,0)14009 "RTN","BMXMON",213,0) 13996 14010 ; 13997 "RTN","BMXMON",2 08,0)14011 "RTN","BMXMON",214,0) 13998 14012 S BMXLEN=+BMXACT 13999 "RTN","BMXMON",2 09,0)14013 "RTN","BMXMON",215,0) 14000 14014 R BMXACT#BMXLEN:BMXDTIME 14001 "RTN","BMXMON",210,0)14002 ;14003 "RTN","BMXMON",211,0)14004 D LOG("Read: "_BMXACT)14005 "RTN","BMXMON",212,0)14006 ;14007 "RTN","BMXMON",213,0)14008 I $P(BMXACT,"^")="TCPconnect" S ^BMXTMP("CONNECT STATUS",$JOB)="CONNECTION OK" G SESSRES ; <--WARNING: A GOTO14009 "RTN","BMXMON",214,0)14010 I $P(BMXACT,"^")="TCPshutdown" W "ack",! Q14011 "RTN","BMXMON",215,0)14012 QUIT ; Should't hit this quit, but just in case14013 14015 "RTN","BMXMON",216,0) 14014 14016 ; 14015 14017 "RTN","BMXMON",217,0) 14018 D LOG("Read: "_BMXACT) 14019 "RTN","BMXMON",218,0) 14020 ; 14021 "RTN","BMXMON",219,0) 14022 I $P(BMXACT,"^")="TCPconnect" S ^BMXTMP("CONNECT STATUS",$JOB)="CONNECTION OK" G SESSRES ; <--WARNING: A GOTO 14023 "RTN","BMXMON",220,0) 14024 I $P(BMXACT,"^")="TCPshutdown" W "ack",! Q 14025 "RTN","BMXMON",221,0) 14026 QUIT ; Should't hit this quit, but just in case 14027 "RTN","BMXMON",222,0) 14028 ; 14029 "RTN","BMXMON",223,0) 14016 14030 SESSION(BMXWIN) ;EP 14017 "RTN","BMXMON",2 18,0)14031 "RTN","BMXMON",224,0) 14018 14032 ;Start session monitor 14019 "RTN","BMXMON",2 19,0)14033 "RTN","BMXMON",225,0) 14020 14034 ;BMXWIN = 1: Enable integrated security 14021 "RTN","BMXMON",22 0,0)14035 "RTN","BMXMON",226,0) 14022 14036 SESSRES ;EP - reentry point from trap 14023 "RTN","BMXMON",22 1,0)14037 "RTN","BMXMON",227,0) 14024 14038 ; new in 2.2: Use kernel rpc timeout instead of 9999999 14025 "RTN","BMXMON",22 2,0)14039 "RTN","BMXMON",228,0) 14026 14040 S BMXDTIME(1)=.5,BMXDTIME=$$BAT^XUPARAM 14027 "RTN","BMXMON",22 3,0)14028 ; 14029 "RTN","BMXMON",2 24,0)14041 "RTN","BMXMON",229,0) 14042 ; 14043 "RTN","BMXMON",230,0) 14030 14044 ; Change Process Name (new in 2.2 and 2.3) 14031 "RTN","BMXMON",2 25,0)14045 "RTN","BMXMON",231,0) 14032 14046 ; (GT.M doesn't store the IP in $P, but Cache does. We get GT.M 14033 "RTN","BMXMON",2 26,0)14047 "RTN","BMXMON",232,0) 14034 14048 ; remote process IP from linux env var $REMOTE_HOST) 14035 "RTN","BMXMON",2 27,0)14049 "RTN","BMXMON",233,0) 14036 14050 D:+$G(IO("GTM-IP")) CHPRN("BMX:ip"_$P(IO("GTM-IP"),".",3,4)) ; GT.M 14037 "RTN","BMXMON",2 28,0)14051 "RTN","BMXMON",234,0) 14038 14052 D:+$P CHPRN("BMX:ip_"_$P($P,".",3,4)) ; Cache 14039 "RTN","BMXMON",2 29,0)14040 ; 14041 "RTN","BMXMON",23 0,0)14053 "RTN","BMXMON",235,0) 14054 ; 14055 "RTN","BMXMON",236,0) 14042 14056 ;IHS/OIT/HMW SAC Exemption Applied For 14043 "RTN","BMXMON",23 1,0)14057 "RTN","BMXMON",237,0) 14044 14058 N $ESTACK S $ETRAP="D ETRAP^BMXMON" 14045 "RTN","BMXMON",23 2,0)14059 "RTN","BMXMON",238,0) 14046 14060 S DIQUIET=1,U="^" D DT^DICRW 14047 "RTN","BMXMON",23 3,0)14061 "RTN","BMXMON",239,0) 14048 14062 D UNREGALL^BMXMEVN ;Unregister all events for this session 14049 "RTN","BMXMON",2 34,0)14063 "RTN","BMXMON",240,0) 14050 14064 U $P D SESSMAIN 14051 "RTN","BMXMON",2 35,0)14065 "RTN","BMXMON",241,0) 14052 14066 ;Turn off the error trap for the exit 14053 "RTN","BMXMON",2 36,0)14067 "RTN","BMXMON",242,0) 14054 14068 S $ETRAP="" 14055 "RTN","BMXMON",2 37,0)14069 "RTN","BMXMON",243,0) 14056 14070 I $G(DUZ) D LOGOUT^XUSRB 14057 "RTN","BMXMON",2 38,0)14071 "RTN","BMXMON",244,0) 14058 14072 K BMXR,BMXARY 14059 "RTN","BMXMON",2 39,0)14073 "RTN","BMXMON",245,0) 14060 14074 C $P ;IHS/OIT/HMW SAC Exemption Applied For 14061 "RTN","BMXMON",24 0,0)14062 Q 14063 "RTN","BMXMON",24 1,0)14064 ; 14065 "RTN","BMXMON",24 2,0)14075 "RTN","BMXMON",246,0) 14076 Q 14077 "RTN","BMXMON",247,0) 14078 ; 14079 "RTN","BMXMON",248,0) 14066 14080 SESSMAIN ; MAIN LOOP!!!!!! 14067 "RTN","BMXMON",243,0) 14068 N BMXTBUF 14069 "RTN","BMXMON",244,0) 14081 "RTN","BMXMON",249,0) 14082 N BMXTBUF ; BMX Read Buffer 14083 "RTN","BMXMON",250,0) 14084 N BMXWBUF S BMXWBUF="" ; BMX Write Buffer 14085 "RTN","BMXMON",251,0) 14070 14086 D SETUP^BMXMSEC(.RET) ;Setup required system vars 14071 "RTN","BMXMON",2 45,0)14087 "RTN","BMXMON",252,0) 14072 14088 S U="^" 14073 "RTN","BMXMON",2 46,0)14089 "RTN","BMXMON",253,0) 14074 14090 U $P 14075 "RTN","BMXMON",2 47,0)14091 "RTN","BMXMON",254,0) 14076 14092 F D Q:BMXTBUF="#BYE#" 14077 "RTN","BMXMON",2 48,0)14093 "RTN","BMXMON",255,0) 14078 14094 . R BMXTBUF#11:BMXDTIME IF '$T D TIMEOUT S BMXTBUF="#BYE#" Q ;IHS/OIT/HMW SAC Exemption Applied For 14079 "RTN","BMXMON",2 49,0)14095 "RTN","BMXMON",256,0) 14080 14096 . ; 14081 "RTN","BMXMON",25 0,0)14097 "RTN","BMXMON",257,0) 14082 14098 . D LOG("Read: "_BMXTBUF) 14083 "RTN","BMXMON",25 1,0)14099 "RTN","BMXMON",258,0) 14084 14100 . ; 14085 "RTN","BMXMON",25 2,0)14101 "RTN","BMXMON",259,0) 14086 14102 . I BMXTBUF="#BYE#" QUIT ;**QUITTING HERE** 14087 "RTN","BMXMON",2 53,0)14103 "RTN","BMXMON",260,0) 14088 14104 . S BMXHTYPE=$S($E(BMXTBUF,1,5)="{BMX}":1,1:0) ;check HDR 14089 "RTN","BMXMON",2 54,0)14105 "RTN","BMXMON",261,0) 14090 14106 . I 'BMXHTYPE S BMXTBUF="#BYE#" D QUIT ;;***QUITTING HERE*** 14091 "RTN","BMXMON",2 55,0)14107 "RTN","BMXMON",262,0) 14092 14108 . . D SNDERR 14093 "RTN","BMXMON",256,0) 14094 . . W BMXTBUF,$C(4),! 14095 "RTN","BMXMON",257,0) 14096 . . D LOG("Write: "_BMXTBUF_$C(4)_"(flush)") 14097 "RTN","BMXMON",258,0) 14109 "RTN","BMXMON",263,0) 14110 . . D WRITE(BMXTBUF_$C(4)),WBF 14111 "RTN","BMXMON",264,0) 14098 14112 . S BMXTLEN=$E(BMXTBUF,6,10),L=$E(BMXTBUF,11,11) 14099 "RTN","BMXMON",2 59,0)14113 "RTN","BMXMON",265,0) 14100 14114 . R BMXTBUF#4:BMXDTIME(1) 14101 "RTN","BMXMON",260,0)14102 . ;14103 "RTN","BMXMON",261,0)14104 . D LOG("Read: "_BMXTBUF)14105 "RTN","BMXMON",262,0)14106 . ;14107 "RTN","BMXMON",263,0)14108 . S BMXTBUF=L_BMXTBUF ;IHS/OIT/HMW SAC Exemption Applied For14109 "RTN","BMXMON",264,0)14110 . S BMXPLEN=BMXTBUF14111 "RTN","BMXMON",265,0)14112 . R BMXTBUF#BMXPLEN:BMXDTIME(1) ;IHS/OIT/HMW SAC Exemption Applied For14113 14115 "RTN","BMXMON",266,0) 14114 14116 . ; … … 14118 14120 . ; 14119 14121 "RTN","BMXMON",269,0) 14122 . S BMXTBUF=L_BMXTBUF ;IHS/OIT/HMW SAC Exemption Applied For 14123 "RTN","BMXMON",270,0) 14124 . S BMXPLEN=BMXTBUF 14125 "RTN","BMXMON",271,0) 14126 . R BMXTBUF#BMXPLEN:BMXDTIME(1) ;IHS/OIT/HMW SAC Exemption Applied For 14127 "RTN","BMXMON",272,0) 14128 . ; 14129 "RTN","BMXMON",273,0) 14130 . D LOG("Read: "_BMXTBUF) 14131 "RTN","BMXMON",274,0) 14132 . ; 14133 "RTN","BMXMON",275,0) 14120 14134 . I $P(BMXTBUF,U)="TCPconnect" D QUIT ;;***QUIT HERE*** 14121 "RTN","BMXMON",27 0,0)14135 "RTN","BMXMON",276,0) 14122 14136 . . D SNDERR 14123 "RTN","BMXMON",271,0) 14124 . . W "accept",$C(4),! ;Ack 14125 "RTN","BMXMON",272,0) 14126 . . ; 14127 "RTN","BMXMON",273,0) 14128 . . D LOG("Write: accept"_$C(4)_"(flush)") 14129 "RTN","BMXMON",274,0) 14130 . . ; 14131 "RTN","BMXMON",275,0) 14137 "RTN","BMXMON",277,0) 14138 . . D WRITE("accept"_$C(4)),WBF ;Ack 14139 "RTN","BMXMON",278,0) 14132 14140 . IF BMXHTYPE D 14133 "RTN","BMXMON",27 6,0)14141 "RTN","BMXMON",279,0) 14134 14142 . . K BMXR,BMXARY 14135 "RTN","BMXMON",2 77,0)14143 "RTN","BMXMON",280,0) 14136 14144 . . IF BMXTBUF="#BYE#" D QUIT 14137 "RTN","BMXMON",2 78,0)14145 "RTN","BMXMON",281,0) 14138 14146 . . . D SNDERR 14139 "RTN","BMXMON",279,0)14140 . . . W "#BYE#",$C(4),!14141 "RTN","BMXMON",280,0)14142 . . . ;14143 "RTN","BMXMON",281,0)14144 . . . D LOG("Write: #BYE#\4")14145 14147 "RTN","BMXMON",282,0) 14146 . . . ;14148 . . . D WRITE("#BYE#"_$C(4)) 14147 14149 "RTN","BMXMON",283,0) 14150 . . . D WBF 14151 "RTN","BMXMON",284,0) 14148 14152 . . S BMXTLEN=BMXTLEN-15 14149 "RTN","BMXMON",28 4,0)14153 "RTN","BMXMON",285,0) 14150 14154 . . D CALLP^BMXMBRK(.BMXR,BMXTBUF) 14151 "RTN","BMXMON",28 5,0)14155 "RTN","BMXMON",286,0) 14152 14156 . . S BMXPTYPE=$S('$D(BMXPTYPE):1,BMXPTYPE<1:1,BMXPTYPE>6:1,1:BMXPTYPE) 14153 "RTN","BMXMON",28 6,0)14157 "RTN","BMXMON",287,0) 14154 14158 . IF BMXTBUF="#BYE#" Q 14155 "RTN","BMXMON",28 7,0)14159 "RTN","BMXMON",288,0) 14156 14160 . U $P 14157 "RTN","BMXMON",28 8,0)14161 "RTN","BMXMON",289,0) 14158 14162 . D SNDERR ;Clears SNDERR parameters 14159 "RTN","BMXMON",2 89,0)14163 "RTN","BMXMON",290,0) 14160 14164 . D SND 14161 "RTN","BMXMON",290,0)14162 . D WRITE($C(4)) W ! ;send eot and flush buffer14163 14165 "RTN","BMXMON",291,0) 14164 . ;14166 . D WRITE($C(4)) ;send eot 14165 14167 "RTN","BMXMON",292,0) 14166 . D LOG("Write: "_$C(4))14168 . D WBF ; Flush Buffer 14167 14169 "RTN","BMXMON",293,0) 14168 . ;14170 D UNREGALL^BMXMEVN ;Unregister all events for this session 14169 14171 "RTN","BMXMON",294,0) 14170 D UNREGALL^BMXMEVN ;Unregister all events for this session14172 Q ;End Of Main 14171 14173 "RTN","BMXMON",295,0) 14172 Q ;End Of Main14174 ; 14173 14175 "RTN","BMXMON",296,0) 14174 ; 14176 SNDERR ;send error information 14175 14177 "RTN","BMXMON",297,0) 14176 ; 14178 ;BMXSEC is the security packet, BMXERROR is application packet 14177 14179 "RTN","BMXMON",298,0) 14178 SNDERR ;send error information 14180 N X 14179 14181 "RTN","BMXMON",299,0) 14180 ;BMXSEC is the security packet, BMXERROR is application packet14182 S X=$E($G(BMXSEC),1,255) 14181 14183 "RTN","BMXMON",300,0) 14182 N X14184 D WRITE($C($L(X))_X) 14183 14185 "RTN","BMXMON",301,0) 14184 S X=$E($G(BMX SEC),1,255)14186 S X=$E($G(BMXERROR),1,255) 14185 14187 "RTN","BMXMON",302,0) 14186 W $C($L(X))_X W !14188 D WRITE($C($L(X))_X) 14187 14189 "RTN","BMXMON",303,0) 14188 D LOG("Write: "_$C($L(X))_X_"(flush)")14190 S BMXERROR="",BMXSEC="" ;clears parameters 14189 14191 "RTN","BMXMON",304,0) 14190 S X=$E($G(BMXERROR),1,255)14192 Q 14191 14193 "RTN","BMXMON",305,0) 14192 W $C($L(X))_X W !14194 ; 14193 14195 "RTN","BMXMON",306,0) 14194 D LOG("Write: "_$C($L(X))_X_"(flush)") 14196 WRITE(BMXSTR) ;Write a data string to the output buffer 14195 14197 "RTN","BMXMON",307,0) 14196 S BMXERROR="",BMXSEC="" ;clears parameters14198 F Q:'$L(BMXSTR) D 14197 14199 "RTN","BMXMON",308,0) 14198 Q14200 . I $L(BMXWBUF)+$L(BMXSTR)>32767 D WBF ; Maximum String Length on Cache 14199 14201 "RTN","BMXMON",309,0) 14200 ;14202 . S BMXWBUF=BMXWBUF_$E(BMXSTR,1,255),BMXSTR=$E(BMXSTR,256,999999) 14201 14203 "RTN","BMXMON",310,0) 14202 WRITE(BMXSTR) ;Write a data string 14204 QUIT 14203 14205 "RTN","BMXMON",311,0) 14204 ;14206 ; 14205 14207 "RTN","BMXMON",312,0) 14206 I $L(BMXSTR)<511 W ! W BMXSTR Q 14208 WBF ;Write Buffer to Network Stream then flush 14207 14209 "RTN","BMXMON",313,0) 14208 ;Handle a long string14210 Q:'$L(BMXWBUF) 14209 14211 "RTN","BMXMON",314,0) 14210 W ! ;Flush the buffer14212 I $G(XWBDEBUG)>2,$L(BMXWBUF) D LOG^XWBDLOG("wrt ("_$L(BMXWBUF)_"): "_BMXWBUF) 14211 14213 "RTN","BMXMON",315,0) 14212 F Q:'$L(BMXSTR) W $E(BMXSTR,1,510),! S BMXSTR=$E(BMXSTR,511,99999)14214 W BMXWBUF,! 14213 14215 "RTN","BMXMON",316,0) 14214 Q14216 S BMXWBUF="" 14215 14217 "RTN","BMXMON",317,0) 14218 QUIT 14219 "RTN","BMXMON",318,0) 14220 14221 "RTN","BMXMON",319,0) 14216 14222 SND ; -- send data for all, Let WRITE sort it out 14217 "RTN","BMXMON",3 18,0)14223 "RTN","BMXMON",320,0) 14218 14224 N I,T 14219 "RTN","BMXMON",3 19,0)14220 ; 14221 "RTN","BMXMON",32 0,0)14225 "RTN","BMXMON",321,0) 14226 ; 14227 "RTN","BMXMON",322,0) 14222 14228 ; -- error or abort occurred, send null 14223 "RTN","BMXMON",321,0) 14224 IF $L(BMXSEC)>0 D WRITE(""),LOG("Write Sting.Empty") Q 14225 "RTN","BMXMON",322,0) 14229 "RTN","BMXMON",323,0) 14230 IF $L(BMXSEC)>0 D WRITE("") QUIT 14231 "RTN","BMXMON",324,0) 14232 ; 14233 "RTN","BMXMON",325,0) 14226 14234 ; -- single value 14227 "RTN","BMXMON",323,0)14228 IF BMXPTYPE=1 S BMXR=$G(BMXR) D WRITE(BMXR),LOG("Write: "_BMXR) Q14229 "RTN","BMXMON",324,0)14230 ; -- table delimited by CR+LF14231 "RTN","BMXMON",325,0)14232 IF BMXPTYPE=2 D Q14233 14235 "RTN","BMXMON",326,0) 14234 . S I="" F S I=$O(BMXR(I)) Q:I="" D WRITE(BMXR(I)),WRITE($C(13,10)),LOG("Write: "_BMXR(I))14236 IF BMXPTYPE=1 S BMXR=$G(BMXR) D WRITE(BMXR) QUIT 14235 14237 "RTN","BMXMON",327,0) 14238 ; 14239 "RTN","BMXMON",328,0) 14240 ; -- table delimited by CR+LF 14241 "RTN","BMXMON",329,0) 14242 IF BMXPTYPE=2 D QUIT 14243 "RTN","BMXMON",330,0) 14244 . S I="" F S I=$O(BMXR(I)) Q:I="" D WRITE(BMXR(I)),WRITE($C(13,10)) 14245 "RTN","BMXMON",331,0) 14246 ; 14247 "RTN","BMXMON",332,0) 14236 14248 ; -- word processing 14237 "RTN","BMXMON",328,0) 14238 IF BMXPTYPE=3 D Q 14239 "RTN","BMXMON",329,0) 14240 . 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)) 14241 "RTN","BMXMON",330,0) 14249 "RTN","BMXMON",333,0) 14250 IF BMXPTYPE=3 D QUIT 14251 "RTN","BMXMON",334,0) 14252 . S I="" F S I=$O(BMXR(I)) Q:I="" D WRITE(BMXR(I)),WRITE($C(13,10)):BMXWRAP 14253 "RTN","BMXMON",335,0) 14254 ; 14255 "RTN","BMXMON",336,0) 14242 14256 ; -- global array 14243 "RTN","BMXMON",33 1,0)14244 IF BMXPTYPE=4 D Q 14245 "RTN","BMXMON",33 2,0)14246 . S I=$G(BMXR) Q:I="" S T=$E(I,1,$L(I)-1) D:$D(@I)>10 WRITE(@I) ,LOG("Write: "_@I)14247 "RTN","BMXMON",33 3,0)14248 . 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)14249 "RTN","BMXMON",3 34,0)14257 "RTN","BMXMON",337,0) 14258 IF BMXPTYPE=4 D QUIT 14259 "RTN","BMXMON",338,0) 14260 . S I=$G(BMXR) Q:I="" S T=$E(I,1,$L(I)-1) D:$D(@I)>10 WRITE(@I) 14261 "RTN","BMXMON",339,0) 14262 . F S I=$Q(@I) Q:I=""!(I'[T) D WRITE(@I),WRITE($C(13,10)):(BMXWRAP&(@I'=$C(13,10))) 14263 "RTN","BMXMON",340,0) 14250 14264 . IF $D(@BMXR) K @BMXR 14251 "RTN","BMXMON",335,0) 14265 "RTN","BMXMON",341,0) 14266 ; 14267 "RTN","BMXMON",342,0) 14252 14268 ; -- global instance 14253 "RTN","BMXMON",336,0) 14254 IF BMXPTYPE=5 S BMXR=$G(@BMXR) D WRITE(BMXR),LOG("Write: "_BMXR) Q 14255 "RTN","BMXMON",337,0) 14269 "RTN","BMXMON",343,0) 14270 IF BMXPTYPE=5 S BMXR=$G(@BMXR) D WRITE(BMXR) QUIT 14271 "RTN","BMXMON",344,0) 14272 ; 14273 "RTN","BMXMON",345,0) 14256 14274 ; -- variable length records only good upto 255 char) 14257 "RTN","BMXMON",3 38,0)14258 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))14259 "RTN","BMXMON",3 39,0)14260 Q 14261 "RTN","BMXMON",34 0,0)14262 ; 14263 "RTN","BMXMON",34 1,0)14275 "RTN","BMXMON",346,0) 14276 IF BMXPTYPE=6 S I="" F S I=$O(BMXR(I)) Q:I="" D WRITE($C($L(BMXR(I)))),WRITE(BMXR(I)) 14277 "RTN","BMXMON",347,0) 14278 QUIT 14279 "RTN","BMXMON",348,0) 14280 ; 14281 "RTN","BMXMON",349,0) 14264 14282 TIMEOUT ;Do this on MAIN loop timeout 14265 "RTN","BMXMON",3 42,0)14266 I $G(DUZ)>0 D SNDERR,WRITE("#BYE#"_$C(4)) Q14267 "RTN","BMXMON",3 43,0)14283 "RTN","BMXMON",350,0) 14284 I $G(DUZ)>0 D SNDERR,WRITE("#BYE#"_$C(4)),WBF QUIT 14285 "RTN","BMXMON",351,0) 14268 14286 ;Sign-on timeout 14269 "RTN","BMXMON",3 44,0)14287 "RTN","BMXMON",352,0) 14270 14288 S BMXR(0)=0,BMXR(1)=1,BMXR(2)="",BMXR(3)="TIME-OUT",BMXPTYPE=2 14271 "RTN","BMXMON",345,0) 14272 D SNDERR,SND,WRITE($C(4)) 14273 "RTN","BMXMON",346,0) 14274 Q 14275 "RTN","BMXMON",347,0) 14276 ; 14277 "RTN","BMXMON",348,0) 14289 "RTN","BMXMON",353,0) 14290 D SNDERR,SND,WRITE($C(4)),WBF QUIT 14291 "RTN","BMXMON",354,0) 14292 ; 14293 "RTN","BMXMON",355,0) 14278 14294 SEMAPHOR(BMXTSKT,BMXACT) ;Lock/Unlock BMXMON semaphore 14279 "RTN","BMXMON",3 49,0)14295 "RTN","BMXMON",356,0) 14280 14296 N RESULT 14281 "RTN","BMXMON",35 0,0)14297 "RTN","BMXMON",357,0) 14282 14298 S U="^",RESULT=1 14283 "RTN","BMXMON",35 1,0)14299 "RTN","BMXMON",358,0) 14284 14300 D GETENV^%ZOSV ;get Y=UCI^VOL^NODE^BOXLOOKUP of current system 14285 "RTN","BMXMON",35 2,0)14301 "RTN","BMXMON",359,0) 14286 14302 I BMXACT="LOCK" D 14287 "RTN","BMXMON",3 53,0)14303 "RTN","BMXMON",360,0) 14288 14304 . L +^BMXMON("BMXMON",$P(Y,U,2),$P(Y,U),$P(Y,U,4),BMXTSKT):1 14289 "RTN","BMXMON",3 54,0)14305 "RTN","BMXMON",361,0) 14290 14306 . S RESULT=$T 14291 "RTN","BMXMON",3 55,0)14307 "RTN","BMXMON",362,0) 14292 14308 E L -^BMXMON("BMXMON",$P(Y,U,2),$P(Y,U),$P(Y,U,4),BMXTSKT) 14293 "RTN","BMXMON",3 56,0)14309 "RTN","BMXMON",363,0) 14294 14310 Q RESULT 14295 "RTN","BMXMON",3 57,0)14296 ; 14297 "RTN","BMXMON",3 58,0)14311 "RTN","BMXMON",364,0) 14312 ; 14313 "RTN","BMXMON",365,0) 14298 14314 CHPRN(N) ;Change process name to N. 14299 "RTN","BMXMON",3 59,0)14315 "RTN","BMXMON",366,0) 14300 14316 D SETNM^%ZOSV($E(N,1,15)) 14301 "RTN","BMXMON",36 0,0)14302 Q 14303 "RTN","BMXMON",36 1,0)14317 "RTN","BMXMON",367,0) 14318 Q 14319 "RTN","BMXMON",368,0) 14304 14320 ; 14305 "RTN","BMXMON",36 2,0)14321 "RTN","BMXMON",369,0) 14306 14322 CKSTAT(OUT,IN) ; EP - RPC: BMX CONNECT STATUS ; CONFIRMS THAT THAT A VALID PROCESS HAS BEEN SPAWNED BY BMXMON 14307 "RTN","BMXMON",3 63,0)14323 "RTN","BMXMON",370,0) 14308 14324 N PORT,STATUS,JOBID 14309 "RTN","BMXMON",3 64,0)14325 "RTN","BMXMON",371,0) 14310 14326 S PORT=+$P($P,"|",3) 14311 "RTN","BMXMON",3 65,0)14327 "RTN","BMXMON",372,0) 14312 14328 S JOBID=$P($J,":",1) 14313 "RTN","BMXMON",3 66,0)14329 "RTN","BMXMON",373,0) 14314 14330 I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1 ;Wait for job to spawn ZCHILD to be set in MON^ 14315 "RTN","BMXMON",3 67,0)14331 "RTN","BMXMON",374,0) 14316 14332 I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1 14317 "RTN","BMXMON",3 68,0)14333 "RTN","BMXMON",375,0) 14318 14334 I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1 14319 "RTN","BMXMON",3 69,0)14335 "RTN","BMXMON",376,0) 14320 14336 S STATUS=$G(^BMXTMP("CONNECT STATUS",JOBID)) 14321 "RTN","BMXMON",37 0,0)14337 "RTN","BMXMON",377,0) 14322 14338 K ^BMXTMP("CONNECT STATUS",JOBID) 14323 "RTN","BMXMON",37 1,0)14339 "RTN","BMXMON",378,0) 14324 14340 I STATUS="" S STATUS="CONNECTION STATUS UNKNOWN" 14325 "RTN","BMXMON",37 2,0)14341 "RTN","BMXMON",379,0) 14326 14342 S OUT=PORT_"|"_STATUS_"|"_JOBID 14327 "RTN","BMXMON",3 73,0)14328 Q 14329 "RTN","BMXMON",3 74,0)14330 ; 14331 "RTN","BMXMON",3 75,0)14343 "RTN","BMXMON",380,0) 14344 Q 14345 "RTN","BMXMON",381,0) 14346 ; 14347 "RTN","BMXMON",382,0) 14332 14348 MARKER(BMXPORT,BMXMODE) ;Set/Test/Clear Problem Marker, BMXMODE=0 is a function 14333 "RTN","BMXMON",3 76,0)14349 "RTN","BMXMON",383,0) 14334 14350 N IP,Y,%,REF X ^%ZOSF("UCI") S REF=Y,IP="0.0.0.0",%=0 14335 "RTN","BMXMON",3 77,0)14351 "RTN","BMXMON",384,0) 14336 14352 L +^BMX(IP,REF,BMXPORT,"PROBLEM MARKER"):1 14337 "RTN","BMXMON",3 78,0)14353 "RTN","BMXMON",385,0) 14338 14354 I BMXMODE=1 S ^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")=1 14339 "RTN","BMXMON",3 79,0)14355 "RTN","BMXMON",386,0) 14340 14356 I BMXMODE=0 S:$D(^BMX(IP,REF,BMXPORT,"PROBLEM MARKER")) %=1 14341 "RTN","BMXMON",38 0,0)14357 "RTN","BMXMON",387,0) 14342 14358 I BMXMODE=-1 K ^BMX(IP,REF,BMXPORT,"PROBLEM MARKER") 14343 "RTN","BMXMON",38 1,0)14359 "RTN","BMXMON",388,0) 14344 14360 L -^BMX(IP,REF,BMXPORT,"PROBLEM MARKER") 14345 "RTN","BMXMON",38 2,0)14361 "RTN","BMXMON",389,0) 14346 14362 Q:BMXMODE=0 % Q 14347 "RTN","BMXMON",3 83,0)14348 ; 14349 "RTN","BMXMON",3 84,0)14363 "RTN","BMXMON",390,0) 14364 ; 14365 "RTN","BMXMON",391,0) 14350 14366 ETRAP ; -- on trapped error, send error info to client 14351 "RTN","BMXMON",3 85,0)14367 "RTN","BMXMON",392,0) 14352 14368 ; Error Trap Vars: Code, Error, Last Global Reference 14353 "RTN","BMXMON",3 86,0)14354 N BMXERC,BMXERR ,BMXLGR14355 "RTN","BMXMON",3 87,0)14356 ; 14357 "RTN","BMXMON",3 88,0)14369 "RTN","BMXMON",393,0) 14370 N BMXERC,BMXERROR,BMXLGR 14371 "RTN","BMXMON",394,0) 14372 ; 14373 "RTN","BMXMON",395,0) 14358 14374 ;Change trapping during trap. 14359 "RTN","BMXMON",3 89,0)14375 "RTN","BMXMON",396,0) 14360 14376 S $ETRAP="D ^%ZTER HALT" ;IHS/OIT/HMW SAC Exemption Applied For 14361 "RTN","BMXMON",39 0,0)14362 ; 14363 "RTN","BMXMON",39 1,0)14377 "RTN","BMXMON",397,0) 14378 ; 14379 "RTN","BMXMON",398,0) 14364 14380 ; If the error is simply that we can't write to the TCP device 14365 "RTN","BMXMON",39 2,0)14381 "RTN","BMXMON",399,0) 14366 14382 ; clear and log out 14367 "RTN","BMXMON", 393,0)14383 "RTN","BMXMON",400,0) 14368 14384 ; GT.M Error Code. 14369 "RTN","BMXMON", 394,0)14385 "RTN","BMXMON",401,0) 14370 14386 I $ECODE=",Z150376602," S $ECODE="" D:$G(DUZ) LOGOUT^XUSRB HALT 14371 "RTN","BMXMON", 395,0)14387 "RTN","BMXMON",402,0) 14372 14388 ; Cache Error Codes: 14373 "RTN","BMXMON", 396,0)14389 "RTN","BMXMON",403,0) 14374 14390 I ($EC["READ")!($EC["WRITE")!($EC["SYSTEM-F") S $ECODE="" D:$G(DUZ) LOGOUT^XUSRB HALT 14375 "RTN","BMXMON", 397,0)14376 ; 14377 "RTN","BMXMON", 398,0)14391 "RTN","BMXMON",404,0) 14392 ; 14393 "RTN","BMXMON",405,0) 14378 14394 ; Otherwise, log error and send to client 14379 "RTN","BMXMON", 399,0)14395 "RTN","BMXMON",406,0) 14380 14396 S BMXERC=$$EC^%ZOSV 14381 "RTN","BMXMON",40 0,0)14382 S BMXERR ="M ERROR="_BMXERC_$C(13,10)_"LAST REF="14383 "RTN","BMXMON",40 1,0)14397 "RTN","BMXMON",407,0) 14398 S BMXERROR="M ERROR="_BMXERC_$C(13,10)_"LAST REF=" 14399 "RTN","BMXMON",408,0) 14384 14400 S BMXLGR=$$LGR^%ZOSV_$C(4) 14385 "RTN","BMXMON",40 2,0)14386 S BMXERR =BMXERR_BMXLGR14387 "RTN","BMXMON",4 03,0)14388 ; 14389 "RTN","BMXMON",4 04,0)14401 "RTN","BMXMON",409,0) 14402 S BMXERROR=BMXERROR_BMXLGR 14403 "RTN","BMXMON",410,0) 14404 ; 14405 "RTN","BMXMON",411,0) 14390 14406 D ^%ZTER ;%ZTER clears $ZE and $ECODE 14391 "RTN","BMXMON",4 05,0)14392 ; 14393 "RTN","BMXMON",4 06,0)14407 "RTN","BMXMON",412,0) 14408 ; 14409 "RTN","BMXMON",413,0) 14394 14410 U $P 14395 "RTN","BMXMON",4 07,0)14396 ; 14397 "RTN","BMXMON",4 08,0)14398 D SNDERR,WRITE(BMXERR ) W !14399 "RTN","BMXMON",4 09,0)14400 ; 14401 "RTN","BMXMON",41 0,0)14411 "RTN","BMXMON",414,0) 14412 ; 14413 "RTN","BMXMON",415,0) 14414 D SNDERR,WRITE(BMXERROR),WBF 14415 "RTN","BMXMON",416,0) 14416 ; 14417 "RTN","BMXMON",417,0) 14402 14418 S $ETRAP="Q:($ESTACK&'$QUIT) Q:$ESTACK -9 S $ECODE="""" G SESSRES^BMXMON",$ECODE=",U99," ;IHS/OIT/HMW SAC Exemption Applied For 14403 "RTN","BMXMON",41 1,0)14419 "RTN","BMXMON",418,0) 14404 14420 QUIT 14405 "RTN","BMXMON",41 2,0)14406 ; 14407 "RTN","BMXMON",4 13,0)14421 "RTN","BMXMON",419,0) 14422 ; 14423 "RTN","BMXMON",420,0) 14408 14424 LOG(STR) ; EP - Log stuff in Broker log only if XWBDLOG is defined 14409 "RTN","BMXMON",4 14,0)14425 "RTN","BMXMON",421,0) 14410 14426 D:XWBDEBUG LOG^XWBDLOG(STR) 14411 "RTN","BMXMON",4 15,0)14427 "RTN","BMXMON",422,0) 14412 14428 QUIT 14413 "RTN","BMXMON",4 16,0)14414 ; 14415 "RTN","BMXMON",4 17,0)14429 "RTN","BMXMON",423,0) 14430 ; 14431 "RTN","BMXMON",424,0) 14416 14432 MENU ;EP - ENTRY ACTION FROM BMXMENU OPTION 14417 "RTN","BMXMON",4 18,0)14418 ; 14419 "RTN","BMXMON",4 19,0)14433 "RTN","BMXMON",425,0) 14434 ; 14435 "RTN","BMXMON",426,0) 14420 14436 N BMX,BMXVER 14421 "RTN","BMXMON",42 0,0)14437 "RTN","BMXMON",427,0) 14422 14438 ;VERSION 14423 "RTN","BMXMON",42 1,0)14439 "RTN","BMXMON",428,0) 14424 14440 D 14425 "RTN","BMXMON",42 2,0)14441 "RTN","BMXMON",429,0) 14426 14442 . S BMXN="BMXNET ADO.NET DATA PROVIDER" I $D(^DIC(9.4,"B",BMXN)) Q 14427 "RTN","BMXMON",4 23,0)14443 "RTN","BMXMON",430,0) 14428 14444 . S BMXN="BMXNET RPMS .NET UTILITIES" I $D(^DIC(9.4,"B",BMXN)) Q 14429 "RTN","BMXMON",4 24,0)14445 "RTN","BMXMON",431,0) 14430 14446 . S BMXN="" 14431 "RTN","BMXMON",4 25,0)14447 "RTN","BMXMON",432,0) 14432 14448 . Q 14433 "RTN","BMXMON",4 26,0)14434 ; 14435 "RTN","BMXMON",4 27,0)14449 "RTN","BMXMON",433,0) 14450 ; 14451 "RTN","BMXMON",434,0) 14436 14452 S BMXVER="" 14437 "RTN","BMXMON",4 28,0)14453 "RTN","BMXMON",435,0) 14438 14454 I BMXN]"",$D(^DIC(9.4,"B",BMXN)) D 14439 "RTN","BMXMON",4 29,0)14455 "RTN","BMXMON",436,0) 14440 14456 . S BMX=$O(^DIC(9.4,"B",BMXN,0)) 14441 "RTN","BMXMON",43 0,0)14457 "RTN","BMXMON",437,0) 14442 14458 . I $D(^DIC(9.4,BMX,"VERSION")) S BMXVER=$P(^DIC(9.4,BMX,"VERSION"),"^") 14443 "RTN","BMXMON",43 1,0)14459 "RTN","BMXMON",438,0) 14444 14460 . E S BMXVER="VERSION NOT FOUND" 14445 "RTN","BMXMON",43 2,0)14461 "RTN","BMXMON",439,0) 14446 14462 S:BMXVER="" BMXVER="VERSION NOT FOUND" 14447 "RTN","BMXMON",4 33,0)14448 ; 14449 "RTN","BMXMON",4 34,0)14463 "RTN","BMXMON",440,0) 14464 ; 14465 "RTN","BMXMON",441,0) 14450 14466 ;LOCATION 14451 "RTN","BMXMON",4 35,0)14467 "RTN","BMXMON",442,0) 14452 14468 N BMXLOC 14453 "RTN","BMXMON",4 36,0)14469 "RTN","BMXMON",443,0) 14454 14470 S BMXLOC="" 14455 "RTN","BMXMON",4 37,0)14471 "RTN","BMXMON",444,0) 14456 14472 I $G(DUZ(2)),$D(^DIC(4,DUZ(2),0)) S BMXLOC=$P(^DIC(4,DUZ(2),0),"^") 14457 "RTN","BMXMON",4 38,0)14473 "RTN","BMXMON",445,0) 14458 14474 S:BMXLOC="" BMXLOC="LOCATION NOT FOUND" 14459 "RTN","BMXMON",4 39,0)14460 ; 14461 "RTN","BMXMON",44 0,0)14475 "RTN","BMXMON",446,0) 14476 ; 14477 "RTN","BMXMON",447,0) 14462 14478 ;WRITE 14463 "RTN","BMXMON",44 1,0)14479 "RTN","BMXMON",448,0) 14464 14480 W ! 14465 "RTN","BMXMON",44 2,0)14481 "RTN","BMXMON",449,0) 14466 14482 W !,"BMXNet Version: ",BMXVER 14467 "RTN","BMXMON",4 43,0)14483 "RTN","BMXMON",450,0) 14468 14484 W !,"Location: ",BMXLOC 14469 "RTN","BMXMON",4 44,0)14485 "RTN","BMXMON",451,0) 14470 14486 Q 14471 14487 "RTN","BMXMSEC") … … 14474 14490 BMXMSEC ; IHS/OIT/HMW - BMXNet MONITOR ; 4/6/11 4:41pm 14475 14491 "RTN","BMXMSEC",2,0) 14476 ;;4.1000;BMX;;Apr 17, 2011;Build 114492 ;;4.1000;BMX;;Apr 17, 2011;Build 2 14477 14493 "RTN","BMXMSEC",3,0) 14478 14494 ;; … … 14670 14686 BMXNTEG ;INTEGRITY CHECKER;JUN 28, 2010 14671 14687 "RTN","BMXNTEG",2,0) 14672 ;;4.1000;BMX;;Apr 17, 2011;Build 114688 ;;4.1000;BMX;;Apr 17, 2011;Build 2 14673 14689 "RTN","BMXNTEG",3,0) 14674 14690 ; … … 14832 14848 BMXPO ; IHS/CMI/MAW - Populate appcontext with all namespaced RPC's ; 14833 14849 "RTN","BMXPO",2,0) 14834 ;;4.1000;BMX;;Apr 17, 2011;Build 114850 ;;4.1000;BMX;;Apr 17, 2011;Build 2 14835 14851 "RTN","BMXPO",3,0) 14836 14852 ; … … 14976 14992 BMXPRS ; IHS/OIT/HMW - BMX WINDOWS UTILS ; 14977 14993 "RTN","BMXPRS",2,0) 14978 ;;4.1000;BMX;;Apr 17, 2011;Build 114994 ;;4.1000;BMX;;Apr 17, 2011;Build 2 14979 14995 "RTN","BMXPRS",3,0) 14980 14996 ; … … 15186 15202 BMXRPC ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 4/7/11 2:06pm 15187 15203 "RTN","BMXRPC",2,0) 15188 ;;4.1000;BMX;;Apr 17, 2011;Build 115204 ;;4.1000;BMX;;Apr 17, 2011;Build 2 15189 15205 "RTN","BMXRPC",3,0) 15190 15206 ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 15544 15560 BMXRPC1 ; IHS/OIT/HMW - UTIL: REMOTE PROCEDURE CALLS ; 15545 15561 "RTN","BMXRPC1",2,0) 15546 ;;4.1000;BMX;;Apr 17, 2011;Build 115562 ;;4.1000;BMX;;Apr 17, 2011;Build 2 15547 15563 "RTN","BMXRPC1",3,0) 15548 15564 ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 16018 16034 Q 16019 16035 "RTN","BMXRPC10") 16020 0^62^B 9358752516036 0^62^B102094048 16021 16037 "RTN","BMXRPC10",1,0) 16022 BMXRPC10 ; IHS/OIT/GIS - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ; 08 Jun 2010 8:47 AM16038 BMXRPC10 ; IHS/OIT/GIS - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ; 5/11/11 4:35pm 16023 16039 "RTN","BMXRPC10",2,0) 16024 ;;4.1000;BMX;;Apr 17, 2011;Build 116040 ;;4.1000;BMX;;Apr 17, 2011;Build 2 16025 16041 "RTN","BMXRPC10",3,0) 16026 16042 ;; LOGIN RPCS TO RETURN PATIENTS, VISITS AND FACILITIES. SUPPORTS MULTI-INDEX PATIENT LOOKUP (DOB, NAME, CHART#, ETC) 16027 16043 "RTN","BMXRPC10",4,0) 16028 ;16044 ; 16029 16045 "RTN","BMXRPC10",5,0) 16046 ; Changes in v 4.1000 to support GT.M 16047 "RTN","BMXRPC10",6,0) 16048 ; - In BMXCCXT, there are several lines that rely on the 16049 "RTN","BMXRPC10",7,0) 16050 ; settings in BMX MONITOR file. We don't use that on GT.M 16051 "RTN","BMXRPC10",8,0) 16052 ; as xinetd handles all connection issues. 16053 "RTN","BMXRPC10",9,0) 16054 ; Also, at this point, we don't have integrated windows authentication 16055 "RTN","BMXRPC10",10,0) 16056 ; See below for the specific details. 16057 "RTN","BMXRPC10",11,0) 16058 ; 16059 "RTN","BMXRPC10",12,0) 16030 16060 GETFCRS(BMXFACS,BMXDUZ) ; EP - Gets all facilities for a user - returns RECORDSET 16031 "RTN","BMXRPC10", 6,0)16032 ; 16033 "RTN","BMXRPC10", 7,0)16061 "RTN","BMXRPC10",13,0) 16062 ; 16063 "RTN","BMXRPC10",14,0) 16034 16064 ;S BMXFACS="T00030FACILITY_NAME^T00030FACILITY_IEN^T00002MOST_RECENT_LOOKUP"_$C(30) 16035 "RTN","BMXRPC10", 8,0)16065 "RTN","BMXRPC10",15,0) 16036 16066 N BMXI 16037 "RTN","BMXRPC10", 9,0)16067 "RTN","BMXRPC10",16,0) 16038 16068 S BMXI=0,BMXFACS=$NA(^TMP("BMX FIND",$J)) K @BMXFACS 16039 "RTN","BMXRPC10",1 0,0)16069 "RTN","BMXRPC10",17,0) 16040 16070 S ^TMP("BMX FIND",$J,0)="T00030FACILITY_NAME^T00030FACILITY_IEN^T00002MOST_RECENT_LOOKUP"_$C(30) 16041 "RTN","BMXRPC10",1 1,0)16071 "RTN","BMXRPC10",18,0) 16042 16072 I $G(BMXDUZ)="" G XFRCS 16043 "RTN","BMXRPC10",1 2,0)16073 "RTN","BMXRPC10",19,0) 16044 16074 N BMXFN,BMXN,BMXSUB,BMXRCNT,CREF,OREF,SITE,LAST,DFLT 16045 "RTN","BMXRPC10", 13,0)16075 "RTN","BMXRPC10",20,0) 16046 16076 S BMXDUZ=$TR(BMXDUZ,$C(13),"") 16047 "RTN","BMXRPC10", 14,0)16077 "RTN","BMXRPC10",21,0) 16048 16078 S BMXDUZ=$TR(BMXDUZ,$C(10),"") 16049 "RTN","BMXRPC10", 15,0)16079 "RTN","BMXRPC10",22,0) 16050 16080 S BMXDUZ=$TR(BMXDUZ,$C(9),"") 16051 "RTN","BMXRPC10", 16,0)16081 "RTN","BMXRPC10",23,0) 16052 16082 S BMXFN=0 16053 "RTN","BMXRPC10", 17,0)16083 "RTN","BMXRPC10",24,0) 16054 16084 S CREF=$NA(^VA(200,BMXDUZ,2)) 16055 "RTN","BMXRPC10", 18,0)16085 "RTN","BMXRPC10",25,0) 16056 16086 I '$O(@CREF@(0)) D G XFRCS ; GIS/OIT JAN 22, 2010 ; Ensure at least one site returned 16057 "RTN","BMXRPC10", 19,0)16087 "RTN","BMXRPC10",26,0) 16058 16088 . S BMXFN=$P(^AUTTSITE(1,0),U,1) 16059 "RTN","BMXRPC10",2 0,0)16089 "RTN","BMXRPC10",27,0) 16060 16090 . S SITE=$P($G(^DIC(4,BMXFN,0)),U,1) 16061 "RTN","BMXRPC10",2 1,0)16091 "RTN","BMXRPC10",28,0) 16062 16092 . S DFLT=0 16063 "RTN","BMXRPC10",2 2,0)16093 "RTN","BMXRPC10",29,0) 16064 16094 . S BMXI=BMXI+1 16065 "RTN","BMXRPC10", 23,0)16095 "RTN","BMXRPC10",30,0) 16066 16096 . S ^TMP("BMX FIND",$J,BMXI)=SITE_U_BMXFN_U_DFLT_$C(30) 16067 "RTN","BMXRPC10", 24,0)16097 "RTN","BMXRPC10",31,0) 16068 16098 . Q 16069 "RTN","BMXRPC10", 25,0)16099 "RTN","BMXRPC10",32,0) 16070 16100 S OREF="^VA(200,"_BMXDUZ_",2," 16071 "RTN","BMXRPC10", 26,0)16101 "RTN","BMXRPC10",33,0) 16072 16102 S LAST=$G(^DISV(BMXDUZ,OREF)) 16073 "RTN","BMXRPC10", 27,0)16103 "RTN","BMXRPC10",34,0) 16074 16104 I LAST="" D 16075 "RTN","BMXRPC10", 28,0)16105 "RTN","BMXRPC10",35,0) 16076 16106 . S BMXFN=0 16077 "RTN","BMXRPC10", 29,0)16107 "RTN","BMXRPC10",36,0) 16078 16108 . F Q:LAST S BMXFN=$O(VA(200,BMXDUZ,2,BMXFN)) Q:'BMXFN D I LAST Q 16079 "RTN","BMXRPC10",3 0,0)16109 "RTN","BMXRPC10",37,0) 16080 16110 .. I $P($G(^VA(200,BMXDUZ,2,BMXFN,0)),U,2) S LAST=BMXFN 16081 "RTN","BMXRPC10",3 1,0)16111 "RTN","BMXRPC10",38,0) 16082 16112 .. Q 16083 "RTN","BMXRPC10",3 2,0)16113 "RTN","BMXRPC10",39,0) 16084 16114 . Q 16085 "RTN","BMXRPC10", 33,0)16115 "RTN","BMXRPC10",40,0) 16086 16116 I LAST="" S LAST=$O(^VA(200,BMXDUZ,2,0)) ; IF LAST UNDEFINED, DEFAULT TO 1 ENTRY FOR THAT USER IN THE DIVISION SUBFILE 16087 "RTN","BMXRPC10", 34,0)16117 "RTN","BMXRPC10",41,0) 16088 16118 I LAST="" S LAST=$P($G(^XTV(8989.3,1,"XUS")),U,17) ; IF LAST UNDEFINED, GET VALUE FROM KERNEL SYSTEM PARAMETERS FILE 16089 "RTN","BMXRPC10", 35,0)16119 "RTN","BMXRPC10",42,0) 16090 16120 S BMXFN=0,STG="" 16091 "RTN","BMXRPC10", 36,0)16121 "RTN","BMXRPC10",43,0) 16092 16122 F S BMXFN=$O(@CREF@(BMXFN)) Q:'BMXFN D 16093 "RTN","BMXRPC10", 37,0)16123 "RTN","BMXRPC10",44,0) 16094 16124 . S SITE=$P($G(^DIC(4,BMXFN,0)),U,1) I SITE="" Q 16095 "RTN","BMXRPC10", 38,0)16125 "RTN","BMXRPC10",45,0) 16096 16126 . S DFLT=(LAST=BMXFN) 16097 "RTN","BMXRPC10", 39,0)16127 "RTN","BMXRPC10",46,0) 16098 16128 . S BMXI=BMXI+1 16099 "RTN","BMXRPC10",4 0,0)16129 "RTN","BMXRPC10",47,0) 16100 16130 . S ^TMP("BMX FIND",$J,BMXI)=SITE_U_BMXFN_U_DFLT_$C(30) 16101 "RTN","BMXRPC10",4 1,0)16131 "RTN","BMXRPC10",48,0) 16102 16132 . Q 16103 "RTN","BMXRPC10",4 2,0)16133 "RTN","BMXRPC10",49,0) 16104 16134 XFRCS S BMXI=BMXI+1 16105 "RTN","BMXRPC10", 43,0)16135 "RTN","BMXRPC10",50,0) 16106 16136 S ^TMP("BMX FIND",$J,BMXI)=$C(31) 16107 "RTN","BMXRPC10", 44,0)16108 Q 16109 "RTN","BMXRPC10", 45,0)16110 ; 16111 "RTN","BMXRPC10", 46,0)16137 "RTN","BMXRPC10",51,0) 16138 Q 16139 "RTN","BMXRPC10",52,0) 16140 ; 16141 "RTN","BMXRPC10",53,0) 16112 16142 GETVIS(OUT,STG) ; EP - RETURN SPECIFIED # OF VALID VISITS FOR THE PATIENT 16113 "RTN","BMXRPC10", 47,0)16143 "RTN","BMXRPC10",54,0) 16114 16144 S OUT="T00010VISIT_IEN^T00030PATIENT_IEN^T00021TIMESTAMP^T00030VISIT_TYPE^T00030LOCATION^T00010SERVICE CATEGORY^T00030CLINIC^T00030PRIMARY_PROVIDER^T00030PRIMARY_POV"_$C(30) 16115 "RTN","BMXRPC10", 48,0)16145 "RTN","BMXRPC10",55,0) 16116 16146 I $L($G(STG)) 16117 "RTN","BMXRPC10", 49,0)16147 "RTN","BMXRPC10",56,0) 16118 16148 E G VOUT 16119 "RTN","BMXRPC10",5 0,0)16149 "RTN","BMXRPC10",57,0) 16120 16150 N X,Y,Z,%,HDR,LINE,DFN,MAX,IDT,VIEN,CNT,STOP,TS,VIEN,TYPE,LOC,SCAT,CLIN,PPRV,PPOV,BDT,VDT,DATA 16121 "RTN","BMXRPC10",5 1,0)16151 "RTN","BMXRPC10",58,0) 16122 16152 S DFN=+STG I '$D(^DPT(DFN,0)) G VOUT 16123 "RTN","BMXRPC10",5 2,0)16153 "RTN","BMXRPC10",59,0) 16124 16154 S MAX=$P(STG,"|",2) I 'MAX S MAX=9 16125 "RTN","BMXRPC10", 53,0)16155 "RTN","BMXRPC10",60,0) 16126 16156 I '$O(^AUPNVSIT("AA",+$G(DFN),0)) G VOUT 16127 "RTN","BMXRPC10", 54,0)16157 "RTN","BMXRPC10",61,0) 16128 16158 S IDT=0,CNT=0,STOP=0,DATA="" 16129 "RTN","BMXRPC10", 55,0)16159 "RTN","BMXRPC10",62,0) 16130 16160 S BDT=$$FMADD^XLFDT(DT,-2) 16131 "RTN","BMXRPC10", 56,0)16161 "RTN","BMXRPC10",63,0) 16132 16162 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 16133 "RTN","BMXRPC10", 57,0)16163 "RTN","BMXRPC10",64,0) 16134 16164 . S X=$G(^AUPNVSIT(VIEN,0)) I '$L(X) Q ; VISIT DATA MUST EXIST 16135 "RTN","BMXRPC10", 58,0)16165 "RTN","BMXRPC10",65,0) 16136 16166 . S VDT=+X I 'VDT Q 16137 "RTN","BMXRPC10", 59,0)16167 "RTN","BMXRPC10",66,0) 16138 16168 . I $P(X,U,11) Q ; MUST BE AN 'ACTIVE' VISIT - NOT 'DELETED' 16139 "RTN","BMXRPC10",6 0,0)16169 "RTN","BMXRPC10",67,0) 16140 16170 . I $P(X,U,5)'=DFN Q ; INVALID PATIENT IEN 16141 "RTN","BMXRPC10",6 1,0)16171 "RTN","BMXRPC10",68,0) 16142 16172 . I $P(X,U,3)="" Q ; VISIT MUST HAVE A TYPE 16143 "RTN","BMXRPC10",6 2,0)16173 "RTN","BMXRPC10",69,0) 16144 16174 . I '$P(X,U,6) Q ; MUST HAVE A VALID ENCOUNTER LOCATION 16145 "RTN","BMXRPC10", 63,0)16175 "RTN","BMXRPC10",70,0) 16146 16176 . I $P(X,U,7)="" Q ; VISIT MUST HAVE A CATEGORY 16147 "RTN","BMXRPC10", 64,0)16177 "RTN","BMXRPC10",71,0) 16148 16178 . I $P(X,U,8)="" Q ; VISIT MUST HAVE A VALID CLINIC STOP 16149 "RTN","BMXRPC10", 65,0)16179 "RTN","BMXRPC10",72,0) 16150 16180 . I VDT<BDT,'$D(^AUPNVPOV("AD",VIEN)) Q ; MUST HAVE A POV ; PATCHED BY GIS 4/27/2009 16151 "RTN","BMXRPC10", 66,0)16181 "RTN","BMXRPC10",73,0) 16152 16182 . I VDT<BDT,'$D(^AUPNVPRV("AD",VIEN)) Q ; MUST HAVE A PROVIDER 16153 "RTN","BMXRPC10", 67,0)16183 "RTN","BMXRPC10",74,0) 16154 16184 . D VIS(VIEN,DFN,.DATA) 16155 "RTN","BMXRPC10", 68,0)16185 "RTN","BMXRPC10",75,0) 16156 16186 . S CNT=CNT+1 16157 "RTN","BMXRPC10", 69,0)16187 "RTN","BMXRPC10",76,0) 16158 16188 . I CNT=MAX S STOP=1 16159 "RTN","BMXRPC10",7 0,0)16189 "RTN","BMXRPC10",77,0) 16160 16190 . Q 16161 "RTN","BMXRPC10",7 1,0)16191 "RTN","BMXRPC10",78,0) 16162 16192 VOUT S OUT=OUT_$G(DATA)_$C(31) 16163 "RTN","BMXRPC10",7 2,0)16164 Q 16165 "RTN","BMXRPC10", 73,0)16166 ; 16167 "RTN","BMXRPC10", 74,0)16193 "RTN","BMXRPC10",79,0) 16194 Q 16195 "RTN","BMXRPC10",80,0) 16196 ; 16197 "RTN","BMXRPC10",81,0) 16168 16198 VIS(VIEN,DFN,DATA) ; EP - APPEND VISIT DATA STRING 16169 "RTN","BMXRPC10", 75,0)16199 "RTN","BMXRPC10",82,0) 16170 16200 I $G(VIEN),$G(DFN) 16171 "RTN","BMXRPC10", 76,0)16201 "RTN","BMXRPC10",83,0) 16172 16202 E Q 16173 "RTN","BMXRPC10", 77,0)16203 "RTN","BMXRPC10",84,0) 16174 16204 N TYPE,LOC,SCAT,CLIN,PPRV,PPOV,VDT,FIEN,IENS,FLD,TYPE 16175 "RTN","BMXRPC10", 78,0)16205 "RTN","BMXRPC10",85,0) 16176 16206 S FIEN=9000010,IENS=VIEN_"," 16177 "RTN","BMXRPC10", 79,0)16207 "RTN","BMXRPC10",86,0) 16178 16208 S TS=$$GET1^DIQ(FIEN,IENS,.01) I TS="" Q 16179 "RTN","BMXRPC10",8 0,0)16209 "RTN","BMXRPC10",87,0) 16180 16210 S TYPE=$$GET1^DIQ(FIEN,IENS,.03) 16181 "RTN","BMXRPC10",8 1,0)16211 "RTN","BMXRPC10",88,0) 16182 16212 S LOC=$$GET1^DIQ(FIEN,IENS,.06) 16183 "RTN","BMXRPC10",8 2,0)16213 "RTN","BMXRPC10",89,0) 16184 16214 S SCAT=$$GET1^DIQ(FIEN,IENS,.07) 16185 "RTN","BMXRPC10", 83,0)16215 "RTN","BMXRPC10",90,0) 16186 16216 S CLIN=$$GET1^DIQ(FIEN,IENS,.08) 16187 "RTN","BMXRPC10", 84,0)16217 "RTN","BMXRPC10",91,0) 16188 16218 S PPRV=$$PPRV(VIEN) 16189 "RTN","BMXRPC10", 85,0)16219 "RTN","BMXRPC10",92,0) 16190 16220 S PPOV=$$PPOV(VIEN) 16191 "RTN","BMXRPC10", 86,0)16221 "RTN","BMXRPC10",93,0) 16192 16222 S DATA=DATA_VIEN_U_DFN_U_TS_U_LOC_U_SCAT_U_CLIN_U_PPRV_U_PPOV_$C(30) 16193 "RTN","BMXRPC10", 87,0)16194 Q 16195 "RTN","BMXRPC10", 88,0)16223 "RTN","BMXRPC10",94,0) 16224 Q 16225 "RTN","BMXRPC10",95,0) 16196 16226 ; 16197 "RTN","BMXRPC10", 89,0)16227 "RTN","BMXRPC10",96,0) 16198 16228 PPRV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PROVIDER NAME 16199 "RTN","BMXRPC10",9 0,0)16229 "RTN","BMXRPC10",97,0) 16200 16230 ; CALLED BY THE BMX SCHEMA 16201 "RTN","BMXRPC10",9 1,0)16231 "RTN","BMXRPC10",98,0) 16202 16232 I '$D(^AUPNVPRV("AD",+$G(VIEN))) Q "" 16203 "RTN","BMXRPC10",9 2,0)16233 "RTN","BMXRPC10",99,0) 16204 16234 N NAME,PIEN,VPIEN,X,Y,Z,% 16205 "RTN","BMXRPC10", 93,0)16235 "RTN","BMXRPC10",100,0) 16206 16236 S VPIEN=0,PIEN="" 16207 "RTN","BMXRPC10", 94,0)16237 "RTN","BMXRPC10",101,0) 16208 16238 F S VPIEN=$O(^AUPNVPRV("AD",VIEN,VPIEN)) Q:'VPIEN D I PIEN Q 16209 "RTN","BMXRPC10", 95,0)16239 "RTN","BMXRPC10",102,0) 16210 16240 . S X=$G(^AUPNVPRV(VPIEN,0)) I X="" Q 16211 "RTN","BMXRPC10", 96,0)16241 "RTN","BMXRPC10",103,0) 16212 16242 . S TYPE=$P(X,U,4) 16213 "RTN","BMXRPC10", 97,0)16243 "RTN","BMXRPC10",104,0) 16214 16244 . I TYPE="P" S PIEN=+X 16215 "RTN","BMXRPC10", 98,0)16245 "RTN","BMXRPC10",105,0) 16216 16246 . Q 16217 "RTN","BMXRPC10", 99,0)16247 "RTN","BMXRPC10",106,0) 16218 16248 I 'PIEN S VPIEN=$O(^AUPNVPRV("AD",VIEN,0)) I VPIEN S PIEN=+$G(^AUPNVPRV(VPIEN,0)) 16219 "RTN","BMXRPC10",10 0,0)16249 "RTN","BMXRPC10",107,0) 16220 16250 I 'PIEN Q "" 16221 "RTN","BMXRPC10",10 1,0)16251 "RTN","BMXRPC10",108,0) 16222 16252 S PIEN=$$PRV^VENPCCU(PIEN) 16223 "RTN","BMXRPC10",10 2,0)16253 "RTN","BMXRPC10",109,0) 16224 16254 S NAME=$P($G(^VA(200,PIEN,0)),U) 16225 "RTN","BMXRPC10",1 03,0)16255 "RTN","BMXRPC10",110,0) 16226 16256 Q NAME 16227 "RTN","BMXRPC10",1 04,0)16228 ; 16229 "RTN","BMXRPC10",1 05,0)16257 "RTN","BMXRPC10",111,0) 16258 ; 16259 "RTN","BMXRPC10",112,0) 16230 16260 PPOV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PURPOSE OF VISIT ICD CODE (NARRATIVE) 16231 "RTN","BMXRPC10",1 06,0)16261 "RTN","BMXRPC10",113,0) 16232 16262 ; CALLED BY BMX SCHEMA 16233 "RTN","BMXRPC10",1 07,0)16263 "RTN","BMXRPC10",114,0) 16234 16264 I '$D(^AUPNVPOV("AD",+$G(VIEN))) Q "" 16235 "RTN","BMXRPC10",1 08,0)16265 "RTN","BMXRPC10",115,0) 16236 16266 N TXT,IIEN,VPIEN,X,Y,Z,%,ICD,NIEN,DX 16237 "RTN","BMXRPC10",1 09,0)16267 "RTN","BMXRPC10",116,0) 16238 16268 S VPIEN=0,IIEN="" 16239 "RTN","BMXRPC10",11 0,0)16269 "RTN","BMXRPC10",117,0) 16240 16270 F S VPIEN=$O(^AUPNVPOV("AD",VIEN,VPIEN)) Q:'VPIEN D I IIEN Q 16241 "RTN","BMXRPC10",11 1,0)16271 "RTN","BMXRPC10",118,0) 16242 16272 . S X=$G(^AUPNVPOV(VPIEN,0)) I X="" Q 16243 "RTN","BMXRPC10",11 2,0)16273 "RTN","BMXRPC10",119,0) 16244 16274 . S TYPE=$P(X,U,12) 16245 "RTN","BMXRPC10",1 13,0)16275 "RTN","BMXRPC10",120,0) 16246 16276 . I TYPE="P" S IIEN=+X 16247 "RTN","BMXRPC10",1 14,0)16277 "RTN","BMXRPC10",121,0) 16248 16278 . Q 16249 "RTN","BMXRPC10",1 15,0)16279 "RTN","BMXRPC10",122,0) 16250 16280 I 'IIEN S VPIEN=$O(^AUPNVPOV("AD",VIEN,0)) I VPIEN S IIEN=+$G(^AUPNVPOV(VPIEN,0)) 16251 "RTN","BMXRPC10",1 16,0)16281 "RTN","BMXRPC10",123,0) 16252 16282 I IIEN,VPIEN 16253 "RTN","BMXRPC10",1 17,0)16283 "RTN","BMXRPC10",124,0) 16254 16284 E Q "" 16255 "RTN","BMXRPC10",1 18,0)16285 "RTN","BMXRPC10",125,0) 16256 16286 I $L($T(ICDDX^ICDCODE)) S ICD=$P($$ICDDX^ICDCODE(IIEN),U,2) I 1 16257 "RTN","BMXRPC10",1 19,0)16287 "RTN","BMXRPC10",126,0) 16258 16288 E S ICD=$P($G(^ICD9(IIEN,0)),U) 16259 "RTN","BMXRPC10",12 0,0)16289 "RTN","BMXRPC10",127,0) 16260 16290 I '$L(ICD) Q "" 16261 "RTN","BMXRPC10",12 1,0)16291 "RTN","BMXRPC10",128,0) 16262 16292 S NIEN=$P($G(^AUPNVPOV(VPIEN,0)),U,4) I 'NIEN Q "" 16263 "RTN","BMXRPC10",12 2,0)16293 "RTN","BMXRPC10",129,0) 16264 16294 S TXT=$P($G(^AUTNPOV(NIEN,0)),U) I TXT="" Q "" 16265 "RTN","BMXRPC10",1 23,0)16295 "RTN","BMXRPC10",130,0) 16266 16296 I $L(TXT)>20 S TXT=$E(TXT,1,17)_"..." 16267 "RTN","BMXRPC10",1 24,0)16297 "RTN","BMXRPC10",131,0) 16268 16298 S DX=ICD_" ("_TXT_")" 16269 "RTN","BMXRPC10",1 25,0)16299 "RTN","BMXRPC10",132,0) 16270 16300 Q DX 16271 "RTN","BMXRPC10",1 26,0)16301 "RTN","BMXRPC10",133,0) 16272 16302 ; 16273 "RTN","BMXRPC10",1 27,0)16303 "RTN","BMXRPC10",134,0) 16274 16304 GETPAT(BMXRET,BMXSTR) ; EP - -- return patient in ADO table 16275 "RTN","BMXRPC10",1 28,0)16305 "RTN","BMXRPC10",135,0) 16276 16306 ; S X="MERR^BMXGU",@^%ZOSF("TRAP") ; m error trap 16277 "RTN","BMXRPC10",1 29,0)16307 "RTN","BMXRPC10",136,0) 16278 16308 N BMXI,BMXERR,BMXUIEN,P,X,Y,Z,%,%DT 16279 "RTN","BMXRPC10",13 0,0)16309 "RTN","BMXRPC10",137,0) 16280 16310 S P="|" 16281 "RTN","BMXRPC10",13 1,0)16311 "RTN","BMXRPC10",138,0) 16282 16312 K ^BMXTMP($J) 16283 "RTN","BMXRPC10",13 2,0)16313 "RTN","BMXRPC10",139,0) 16284 16314 S BMXI=0 16285 "RTN","BMXRPC10",1 33,0)16315 "RTN","BMXRPC10",140,0) 16286 16316 S BMXERR="" 16287 "RTN","BMXRPC10",1 34,0)16317 "RTN","BMXRPC10",141,0) 16288 16318 S BMXRET="T00010IEN^T00030PATIENTNAME^T00015DOB^T00001SEX^T00007CHART^T00009SSN^T00010REG^T00030LASTUPDATE^T00030CLASSBEN^T00010AGE"_$C(30) 16289 "RTN","BMXRPC10",1 35,0)16319 "RTN","BMXRPC10",142,0) 16290 16320 S BMXPAT=$P(BMXSTR,P,1) 16291 "RTN","BMXRPC10",1 36,0)16321 "RTN","BMXRPC10",143,0) 16292 16322 S BMXMT=$P(BMXSTR,P,2) 16293 "RTN","BMXRPC10",1 37,0)16323 "RTN","BMXRPC10",144,0) 16294 16324 ; S BMXNPAT=$P(BMXSTR,P,4) 16295 "RTN","BMXRPC10",1 38,0)16325 "RTN","BMXRPC10",145,0) 16296 16326 I BMXMT="ALL"!(BMXMT="") S BMXMT=9999999 16297 "RTN","BMXRPC10",1 39,0)16327 "RTN","BMXRPC10",146,0) 16298 16328 S BMXMT=(BMXMT-1) 16299 "RTN","BMXRPC10",14 0,0)16329 "RTN","BMXRPC10",147,0) 16300 16330 S BMXPIEN="" 16301 "RTN","BMXRPC10",14 1,0)16331 "RTN","BMXRPC10",148,0) 16302 16332 S X=BMXPAT D ^%DT 16303 "RTN","BMXRPC10",14 2,0)16333 "RTN","BMXRPC10",149,0) 16304 16334 S Y=Y\1 16305 "RTN","BMXRPC10",1 43,0)16335 "RTN","BMXRPC10",150,0) 16306 16336 I $E(Y,4,5)="00" G GETADO 16307 "RTN","BMXRPC10",1 44,0)16337 "RTN","BMXRPC10",151,0) 16308 16338 I $E(Y,6,7)="00" G GETADO 16309 "RTN","BMXRPC10",1 45,0)16339 "RTN","BMXRPC10",152,0) 16310 16340 I Y?7N D G GETADO 16311 "RTN","BMXRPC10",1 46,0)16341 "RTN","BMXRPC10",153,0) 16312 16342 . S BMXPAT=Y 16313 "RTN","BMXRPC10",1 47,0)16343 "RTN","BMXRPC10",154,0) 16314 16344 . S BMXPATE=$$PATDOB(.BMXPIEN,BMXPAT) 16315 "RTN","BMXRPC10",1 48,0)16345 "RTN","BMXRPC10",155,0) 16316 16346 S X=$TR($P(BMXPAT," "),",","") 16317 "RTN","BMXRPC10",1 49,0)16347 "RTN","BMXRPC10",156,0) 16318 16348 I X?1.30U S BMXPATE=$$PATNAM(.BMXPIEN,BMXPAT,"") G GETADO 16319 "RTN","BMXRPC10",15 0,0)16349 "RTN","BMXRPC10",157,0) 16320 16350 I BMXPAT?9N D G GETADO 16321 "RTN","BMXRPC10",15 1,0)16351 "RTN","BMXRPC10",158,0) 16322 16352 . S BMXPIEN=$$PATSSN(BMXPAT) 16323 "RTN","BMXRPC10",15 2,0)16353 "RTN","BMXRPC10",159,0) 16324 16354 I BMXPAT?1.6N D G GETADO 16325 "RTN","BMXRPC10",1 53,0)16355 "RTN","BMXRPC10",160,0) 16326 16356 . S BMXPIEN=$$PATCHT(.BMXPIEN,BMXPAT) 16327 "RTN","BMXRPC10",1 54,0)16357 "RTN","BMXRPC10",161,0) 16328 16358 GETADO I $G(BMXPIEN),'$G(BMXPATS) D PATADO(.BMXPIEN) 16329 "RTN","BMXRPC10",1 55,0)16359 "RTN","BMXRPC10",162,0) 16330 16360 S BMXRET=BMXRET_$C(31)_$G(BMXERR) 16331 "RTN","BMXRPC10",1 56,0)16361 "RTN","BMXRPC10",163,0) 16332 16362 K BMXPAT,BMXPIEN,BMXCNT,BMXDA,BMXIEN,BMXPATE,BMXNM,BMXDB,BMXSX,BMXCT,BMXSSN 16333 "RTN","BMXRPC10",1 57,0)16363 "RTN","BMXRPC10",164,0) 16334 16364 K BMXPATS 16335 "RTN","BMXRPC10",1 58,0)16336 Q 16337 "RTN","BMXRPC10",1 59,0)16338 ; 16339 "RTN","BMXRPC10",16 0,0)16365 "RTN","BMXRPC10",165,0) 16366 Q 16367 "RTN","BMXRPC10",166,0) 16368 ; 16369 "RTN","BMXRPC10",167,0) 16340 16370 PATSSN(PAT) ;-- look up by ssn 16341 "RTN","BMXRPC10",16 1,0)16371 "RTN","BMXRPC10",168,0) 16342 16372 S BMXPIEN=$O(^DPT("SSN",PAT,0)) 16343 "RTN","BMXRPC10",16 2,0)16373 "RTN","BMXRPC10",169,0) 16344 16374 S BMXPIEN(1)=BMXPIEN 16345 "RTN","BMXRPC10",1 63,0)16375 "RTN","BMXRPC10",170,0) 16346 16376 Q $G(BMXPIEN) 16347 "RTN","BMXRPC10",1 64,0)16348 ; 16349 "RTN","BMXRPC10",1 65,0)16377 "RTN","BMXRPC10",171,0) 16378 ; 16379 "RTN","BMXRPC10",172,0) 16350 16380 PATCHT(BMXPIEN,HRN) ;-- lookup by chart 16351 "RTN","BMXRPC10",1 66,0)16381 "RTN","BMXRPC10",173,0) 16352 16382 N BMXCNT 16353 "RTN","BMXRPC10",1 67,0)16383 "RTN","BMXRPC10",174,0) 16354 16384 S BMXCNT=0,BMXPATE=0,BMXMCNT=0,BMXPIEN="" 16355 "RTN","BMXRPC10",1 68,0)16385 "RTN","BMXRPC10",175,0) 16356 16386 S BMXIEN=0 F S BMXIEN=$O(^AUPNPAT("D",HRN,BMXIEN)) Q:'BMXIEN D I BMXPIEN Q 16357 "RTN","BMXRPC10",1 69,0)16387 "RTN","BMXRPC10",176,0) 16358 16388 . I '$D(^AUPNPAT("D",HRN,BMXIEN,DUZ(2))) Q 16359 "RTN","BMXRPC10",17 0,0)16389 "RTN","BMXRPC10",177,0) 16360 16390 . 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! 16361 "RTN","BMXRPC10",17 1,0)16391 "RTN","BMXRPC10",178,0) 16362 16392 . S BMXPIEN=BMXIEN 16363 "RTN","BMXRPC10",17 2,0)16393 "RTN","BMXRPC10",179,0) 16364 16394 . S BMXCNT=BMXCNT+1 16365 "RTN","BMXRPC10",1 73,0)16395 "RTN","BMXRPC10",180,0) 16366 16396 . S:'$D(BMXPIEN(BMXCNT)) BMXPIEN(BMXCNT)=0 16367 "RTN","BMXRPC10",1 74,0)16397 "RTN","BMXRPC10",181,0) 16368 16398 . S BMXPIEN(BMXCNT)=BMXPIEN 16369 "RTN","BMXRPC10",1 75,0)16399 "RTN","BMXRPC10",182,0) 16370 16400 . Q 16371 "RTN","BMXRPC10",1 76,0)16401 "RTN","BMXRPC10",183,0) 16372 16402 Q BMXPIEN 16373 "RTN","BMXRPC10",1 77,0)16374 ; 16375 "RTN","BMXRPC10",1 78,0)16403 "RTN","BMXRPC10",184,0) 16404 ; 16405 "RTN","BMXRPC10",185,0) 16376 16406 PATDOB(BMXPATE,PAT) ;-- lookup by DOB 16377 "RTN","BMXRPC10",1 79,0)16407 "RTN","BMXRPC10",186,0) 16378 16408 N BMXCNT 16379 "RTN","BMXRPC10",18 0,0)16409 "RTN","BMXRPC10",187,0) 16380 16410 S BMXCNT=0,BMXPATE=0 16381 "RTN","BMXRPC10",18 1,0)16411 "RTN","BMXRPC10",188,0) 16382 16412 S BMXIEN=0 16383 "RTN","BMXRPC10",18 2,0)16413 "RTN","BMXRPC10",189,0) 16384 16414 F S BMXIEN=$O(^DPT("ADOB",PAT,BMXIEN)) Q:'BMXIEN D 16385 "RTN","BMXRPC10",1 83,0)16415 "RTN","BMXRPC10",190,0) 16386 16416 . S:'$D(BMXPATE(BMXCNT)) BMXPATE(BMXCNT)=0 16387 "RTN","BMXRPC10",1 84,0)16417 "RTN","BMXRPC10",191,0) 16388 16418 . S BMXCNT=BMXCNT+1,BMXPATE=1 16389 "RTN","BMXRPC10",1 85,0)16419 "RTN","BMXRPC10",192,0) 16390 16420 . S BMXPATE(BMXCNT)=BMXIEN 16391 "RTN","BMXRPC10",1 86,0)16421 "RTN","BMXRPC10",193,0) 16392 16422 . Q 16393 "RTN","BMXRPC10",1 87,0)16423 "RTN","BMXRPC10",194,0) 16394 16424 S BMXPATE=BMXCNT 16395 "RTN","BMXRPC10",1 88,0)16425 "RTN","BMXRPC10",195,0) 16396 16426 Q $G(BMXPATE) 16397 "RTN","BMXRPC10",1 89,0)16398 ; 16399 "RTN","BMXRPC10",19 0,0)16427 "RTN","BMXRPC10",196,0) 16428 ; 16429 "RTN","BMXRPC10",197,0) 16400 16430 PATNAM(BMXPATE,PAT,NPAT) ;lookup by name 16401 "RTN","BMXRPC10",19 1,0)16431 "RTN","BMXRPC10",198,0) 16402 16432 S BMXCNT=0,BMXPATE=0 16403 "RTN","BMXRPC10",19 2,0)16433 "RTN","BMXRPC10",199,0) 16404 16434 N BMXLEN 16405 "RTN","BMXRPC10", 193,0)16435 "RTN","BMXRPC10",200,0) 16406 16436 S BMXLEN=$L(PAT) 16407 "RTN","BMXRPC10", 194,0)16437 "RTN","BMXRPC10",201,0) 16408 16438 S BMXNAM=PAT 16409 "RTN","BMXRPC10", 195,0)16439 "RTN","BMXRPC10",202,0) 16410 16440 S BMXNAM=$$BEGIN(PAT) 16411 "RTN","BMXRPC10", 196,0)16441 "RTN","BMXRPC10",203,0) 16412 16442 I $G(NPAT)]"" S BMXNAM=NPAT 16413 "RTN","BMXRPC10", 197,0)16443 "RTN","BMXRPC10",204,0) 16414 16444 F S BMXNAM=$O(^DPT("B",BMXNAM)) Q:BMXNAM=""!($E(BMXNAM,1,BMXLEN)'=PAT)!(BMXCNT>BMXMT) D 16415 "RTN","BMXRPC10", 198,0)16445 "RTN","BMXRPC10",205,0) 16416 16446 . S BMXIEN=0 F S BMXIEN=$O(^DPT("B",BMXNAM,BMXIEN)) Q:'BMXIEN D 16417 "RTN","BMXRPC10", 199,0)16447 "RTN","BMXRPC10",206,0) 16418 16448 .. Q:$O(^DPT("B",BMXNAM,BMXIEN,0)) ;cmi/maw 4/25/2005 don't get aliases 16419 "RTN","BMXRPC10",20 0,0)16449 "RTN","BMXRPC10",207,0) 16420 16450 .. S BMXCNT=BMXCNT+1 16421 "RTN","BMXRPC10",20 1,0)16451 "RTN","BMXRPC10",208,0) 16422 16452 .. S:'$D(BMXPATE(BMXCNT)) BMXPATE(BMXCNT)=0 16423 "RTN","BMXRPC10",20 2,0)16453 "RTN","BMXRPC10",209,0) 16424 16454 .. S BMXPATE(BMXCNT)=BMXIEN 16425 "RTN","BMXRPC10",2 03,0)16455 "RTN","BMXRPC10",210,0) 16426 16456 S BMXPATE=BMXCNT 16427 "RTN","BMXRPC10",2 04,0)16457 "RTN","BMXRPC10",211,0) 16428 16458 Q $G(BMXPATE) 16429 "RTN","BMXRPC10",2 05,0)16430 ; 16431 "RTN","BMXRPC10",2 06,0)16459 "RTN","BMXRPC10",212,0) 16460 ; 16461 "RTN","BMXRPC10",213,0) 16432 16462 BEGIN(PT) ;-- get begin point 16433 "RTN","BMXRPC10",2 07,0)16463 "RTN","BMXRPC10",214,0) 16434 16464 N BMXPDA,BMXPIEN,BMXPCNT 16435 "RTN","BMXRPC10",2 08,0)16465 "RTN","BMXRPC10",215,0) 16436 16466 S BMXPCNT=0 16437 "RTN","BMXRPC10",2 09,0)16467 "RTN","BMXRPC10",216,0) 16438 16468 S BMXPDA=PT 16439 "RTN","BMXRPC10",21 0,0)16469 "RTN","BMXRPC10",217,0) 16440 16470 I $O(^DPT("B",BMXPDA,0)) D 16441 "RTN","BMXRPC10",21 1,0)16471 "RTN","BMXRPC10",218,0) 16442 16472 . S BMXPDA=$O(^DPT("B",BMXPDA),-1) 16443 "RTN","BMXRPC10",21 2,0)16473 "RTN","BMXRPC10",219,0) 16444 16474 F S BMXPDA=$O(^DPT("B",BMXPDA)) Q 16445 "RTN","BMXRPC10",2 13,0)16475 "RTN","BMXRPC10",220,0) 16446 16476 I $G(BMXPDA)="" Q "" 16447 "RTN","BMXRPC10",2 14,0)16477 "RTN","BMXRPC10",221,0) 16448 16478 Q $O(^DPT("B",BMXPDA),-1) 16449 "RTN","BMXRPC10",2 15,0)16450 ; 16451 "RTN","BMXRPC10",2 16,0)16479 "RTN","BMXRPC10",222,0) 16480 ; 16481 "RTN","BMXRPC10",223,0) 16452 16482 PATADO(PIEN) ;-- ado return 16453 "RTN","BMXRPC10",2 17,0)16483 "RTN","BMXRPC10",224,0) 16454 16484 I '$G(DUZ(2)) Q ; DIVISION 16455 "RTN","BMXRPC10",2 18,0)16485 "RTN","BMXRPC10",225,0) 16456 16486 S BMXCNTR=0 16457 "RTN","BMXRPC10",2 19,0)16487 "RTN","BMXRPC10",226,0) 16458 16488 S BMXDA=0 F S BMXDA=$O(PIEN(BMXDA)) Q:'BMXDA D 16459 "RTN","BMXRPC10",22 0,0)16489 "RTN","BMXRPC10",227,0) 16460 16490 . S BMXCNTR=BMXCNTR+1 16461 "RTN","BMXRPC10",22 1,0)16491 "RTN","BMXRPC10",228,0) 16462 16492 . S BMXPI=$G(PIEN(BMXDA)) 16463 "RTN","BMXRPC10",22 2,0)16493 "RTN","BMXRPC10",229,0) 16464 16494 . I '$D(^AUPNPAT(BMXPI,41,DUZ(2),0)) Q ; PATIENT NOT REGISTERED IN THE CURRENT DIVISION 16465 "RTN","BMXRPC10",2 23,0)16495 "RTN","BMXRPC10",230,0) 16466 16496 . S BMXNM=$P($G(^DPT(BMXPI,0)),U) 16467 "RTN","BMXRPC10",2 24,0)16497 "RTN","BMXRPC10",231,0) 16468 16498 . S BMXDB=$$FMTE^XLFDT($P($G(^DPT(BMXPI,0)),U,3)) 16469 "RTN","BMXRPC10",2 25,0)16499 "RTN","BMXRPC10",232,0) 16470 16500 . S BMXSX=$P($G(^DPT(BMXPI,0)),U,2) 16471 "RTN","BMXRPC10",2 26,0)16501 "RTN","BMXRPC10",233,0) 16472 16502 . S BMXCT=$$HRN^AUPNPAT(BMXPI,DUZ(2)) 16473 "RTN","BMXRPC10",2 27,0)16503 "RTN","BMXRPC10",234,0) 16474 16504 . S BMXSSN=$P($G(^DPT(BMXPI,0)),U,9) 16475 "RTN","BMXRPC10",2 28,0)16505 "RTN","BMXRPC10",235,0) 16476 16506 . S BMXUPD=$P($G(^AUPNPAT(BMXPI,0)),U,3) 16477 "RTN","BMXRPC10",2 29,0)16507 "RTN","BMXRPC10",236,0) 16478 16508 . S BMXELG=$$GET1^DIQ(9000001,BMXPI,1111) ;cmi/maw 5/17/2007 added class/ben for status bar 16479 "RTN","BMXRPC10",23 0,0)16509 "RTN","BMXRPC10",237,0) 16480 16510 . S BMXAGE=$$AGE^AUPNPAT(BMXPI,DT) 16481 "RTN","BMXRPC10",23 1,0)16511 "RTN","BMXRPC10",238,0) 16482 16512 . S BMXI=BMXI+1 16483 "RTN","BMXRPC10",23 2,0)16513 "RTN","BMXRPC10",239,0) 16484 16514 . 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) 16485 "RTN","BMXRPC10",2 33,0)16486 Q 16487 "RTN","BMXRPC10",2 34,0)16488 ; 16489 "RTN","BMXRPC10",2 35,0)16515 "RTN","BMXRPC10",240,0) 16516 Q 16517 "RTN","BMXRPC10",241,0) 16518 ; 16519 "RTN","BMXRPC10",242,0) 16490 16520 BMXCCXT(RESULT,XOPTION) ;creates context for the passed in option 16491 "RTN","BMXRPC10",2 36,0)16521 "RTN","BMXRPC10",243,0) 16492 16522 N XWB1,%,IEN,SIEN,OK,OPTION 16493 "RTN","BMXRPC10",2 37,0)16523 "RTN","BMXRPC10",244,0) 16494 16524 S RESULT=0 16495 "RTN","BMXRPC10",2 38,0)16525 "RTN","BMXRPC10",245,0) 16496 16526 S OPTION=$$DECRYP^XUSRB1(XOPTION) ;S:OPTION="" OPTION="\" 16497 "RTN","BMXRPC10",2 39,0)16527 "RTN","BMXRPC10",246,0) 16498 16528 I $E(OPTION,1,3)="BMX" S RESULT=1 Q ; NO RESTRICTIONS FOR BMX CONTEXT FOR THIS PORT 16499 "RTN","BMXRPC10",24 0,0)16529 "RTN","BMXRPC10",247,0) 16500 16530 K XQY0,XQY 16501 "RTN","BMXRPC10",241,0)16502 I OPTION="" S XQY=0,XQY0="" Q ;delete context if "" passed in N PORT16503 "RTN","BMXRPC10",242,0)16504 S PORT=+$P($P,"|",3) I 'PORT Q16505 "RTN","BMXRPC10",243,0)16506 S IEN=$O(^BMXMON("B",PORT,0)) I 'IEN Q16507 "RTN","BMXRPC10",244,0)16508 I '$O(^BMXMON(IEN,1,0)) G BC1 ; NO RESTRICTIONS ON CONTEXT FOR THIS PORT16509 "RTN","BMXRPC10",245,0)16510 S OK=0,CIEN=016511 "RTN","BMXRPC10",246,0)16512 F S CIEN=$O(^BMXMON(IEN,1,CIEN)) Q:'CIEN D I OK Q16513 "RTN","BMXRPC10",247,0)16514 . S %=$P($G(^BMXMON(IEN,1,CIEN,0)),U) I '% Q16515 16531 "RTN","BMXRPC10",248,0) 16516 . S %=$P($G(^DIC(19,%,0)),U) I %="" Q16532 I OPTION="" S XQY=0,XQY0="" Q ;delete context if "" passed in N PORT 16517 16533 "RTN","BMXRPC10",249,0) 16518 . I %=OPTION S OK=116534 ; 16519 16535 "RTN","BMXRPC10",250,0) 16520 . Q16536 ; Following lines are addition for 4.1000; GT.M does not use BMXMON 16521 16537 "RTN","BMXRPC10",251,0) 16522 I 'OK S (XWBSEC,RESULT)="The context '"_OPTION_"' is not registered with port "_PORT_"." Q16538 D:^%ZOSF("OS")["OpenM" ; Doesn't apply to GT.M; Only Cache 16523 16539 "RTN","BMXRPC10",252,0) 16540 . S PORT=+$P($P,"|",3) I 'PORT Q 16541 "RTN","BMXRPC10",253,0) 16542 . S IEN=$O(^BMXMON("B",PORT,0)) I 'IEN Q 16543 "RTN","BMXRPC10",254,0) 16544 . I '$O(^BMXMON(IEN,1,0)) G BC1 ; NO RESTRICTIONS ON CONTEXT FOR THIS PORT 16545 "RTN","BMXRPC10",255,0) 16546 . S OK=0,CIEN=0 16547 "RTN","BMXRPC10",256,0) 16548 . F S CIEN=$O(^BMXMON(IEN,1,CIEN)) Q:'CIEN D I OK Q 16549 "RTN","BMXRPC10",257,0) 16550 . . S %=$P($G(^BMXMON(IEN,1,CIEN,0)),U) I '% Q 16551 "RTN","BMXRPC10",258,0) 16552 . . S %=$P($G(^DIC(19,%,0)),U) I %="" Q 16553 "RTN","BMXRPC10",259,0) 16554 . . I %=OPTION S OK=1 16555 "RTN","BMXRPC10",260,0) 16556 . . Q 16557 "RTN","BMXRPC10",261,0) 16558 . I 'OK S (XWBSEC,RESULT)="The context '"_OPTION_"' is not registered with port "_PORT_"." Q 16559 "RTN","BMXRPC10",262,0) 16524 16560 BC1 S XWB1=$$OPTLK^XQCS(OPTION) 16525 "RTN","BMXRPC10",2 53,0)16561 "RTN","BMXRPC10",263,0) 16526 16562 I XWB1="" S (XWBSEC,RESULT)="The context '"_OPTION_"' does not exist on server." Q ;P10 16527 "RTN","BMXRPC10",2 54,0)16563 "RTN","BMXRPC10",264,0) 16528 16564 S RESULT=$$CHK^XQCS(DUZ,XWB1) 16529 "RTN","BMXRPC10",2 55,0)16565 "RTN","BMXRPC10",265,0) 16530 16566 ;Access or programmer 16531 "RTN","BMXRPC10",2 56,0)16567 "RTN","BMXRPC10",266,0) 16532 16568 BC2 I RESULT!$$KCHK^XUSRB("XUPROGMODE") S XQY0=OPTION,XQY=XWB1,RESULT=1 Q 16533 "RTN","BMXRPC10",2 57,0)16569 "RTN","BMXRPC10",267,0) 16534 16570 S XWBSEC=RESULT 16535 "RTN","BMXRPC10",2 58,0)16536 Q 16537 "RTN","BMXRPC10",2 59,0)16571 "RTN","BMXRPC10",268,0) 16572 Q 16573 "RTN","BMXRPC10",269,0) 16538 16574 ; 16539 "RTN","BMXRPC10",2 60,0)16575 "RTN","BMXRPC10",270,0) 16540 16576 CVC(OUT,IN) ; EP - RPC: BMX CVC ; CHECK VERIFY CODE (SEE CVC^XUSRB) 16541 "RTN","BMXRPC10",2 61,0)16577 "RTN","BMXRPC10",271,0) 16542 16578 S OUT(0)=99,OUT(1)="INVALID PARAMETERS" 16543 "RTN","BMXRPC10",2 62,0)16579 "RTN","BMXRPC10",272,0) 16544 16580 I $L(IN) 16545 "RTN","BMXRPC10",2 63,0)16581 "RTN","BMXRPC10",273,0) 16546 16582 E Q 16547 "RTN","BMXRPC10",2 64,0)16583 "RTN","BMXRPC10",274,0) 16548 16584 N AV,EAC,EOVC,ENVC,USER,AC,OVC,NVC,EVC,NVC,X,Y,Z,%,RET,U 16549 "RTN","BMXRPC10",2 65,0)16585 "RTN","BMXRPC10",275,0) 16550 16586 S U="^",RET(0)="",RET(1)="" 16551 "RTN","BMXRPC10",2 66,0)16587 "RTN","BMXRPC10",276,0) 16552 16588 S AV=$$DECRYP^XUSRB1(IN) I AV="" Q 16553 "RTN","BMXRPC10",2 67,0)16589 "RTN","BMXRPC10",277,0) 16554 16590 S AC=$P(AV,";") 16555 "RTN","BMXRPC10",2 68,0)16591 "RTN","BMXRPC10",278,0) 16556 16592 S X=$$EN^XUSHSH(AC) 16557 "RTN","BMXRPC10",2 69,0)16593 "RTN","BMXRPC10",279,0) 16558 16594 S USER=$O(^VA(200,"A",X,0)) I 'USER Q 16559 "RTN","BMXRPC10",2 70,0)16595 "RTN","BMXRPC10",280,0) 16560 16596 S @$C(68,85,90)=USER 16561 "RTN","BMXRPC10",2 71,0)16597 "RTN","BMXRPC10",281,0) 16562 16598 S OVC=$P(AV,";",2) I OVC="" Q 16563 "RTN","BMXRPC10",2 72,0)16599 "RTN","BMXRPC10",282,0) 16564 16600 S NVC=$P(AV,";",3) I NVC="" Q 16565 "RTN","BMXRPC10",2 73,0)16601 "RTN","BMXRPC10",283,0) 16566 16602 S EOVC=$$ENCRYP^XUSRB1(OVC) 16567 "RTN","BMXRPC10",2 74,0)16603 "RTN","BMXRPC10",284,0) 16568 16604 S ENVC=$$ENCRYP^XUSRB1(NVC) 16569 "RTN","BMXRPC10",2 75,0)16605 "RTN","BMXRPC10",285,0) 16570 16606 D CVC^XUSRB(.RET,(ENVC_U_EOVC)) 16571 "RTN","BMXRPC10",2 76,0)16607 "RTN","BMXRPC10",286,0) 16572 16608 M OUT=RET 16573 "RTN","BMXRPC10",2 77,0)16574 Q 16575 "RTN","BMXRPC10",2 78,0)16576 ; 16577 "RTN","BMXRPC10",2 79,0)16609 "RTN","BMXRPC10",287,0) 16610 Q 16611 "RTN","BMXRPC10",288,0) 16612 ; 16613 "RTN","BMXRPC10",289,0) 16578 16614 TEST ; TEST CVC 16579 "RTN","BMXRPC10",2 80,0)16615 "RTN","BMXRPC10",290,0) 16580 16616 N DUZ,IN 16581 "RTN","BMXRPC10",2 81,0)16617 "RTN","BMXRPC10",291,0) 16582 16618 S IN=$$ENCRYP^XUSRB1("GREG4330;IRA-1727;IRA-1727") 16583 "RTN","BMXRPC10",2 82,0)16619 "RTN","BMXRPC10",292,0) 16584 16620 D CVC^BMXRPC10(.OUT,IN) W !,$G(OUT(0))," - ",$G(OUT(1)) 16585 "RTN","BMXRPC10",2 83,0)16586 Q 16587 "RTN","BMXRPC10",2 84,0)16621 "RTN","BMXRPC10",293,0) 16622 Q 16623 "RTN","BMXRPC10",294,0) 16588 16624 ; 16589 16625 "RTN","BMXRPC2") … … 16592 16628 BMXRPC2 ; IHS/OIT/HMW - FIELD LIST ; 16593 16629 "RTN","BMXRPC2",2,0) 16594 ;;4.1000;BMX;;Apr 17, 2011;Build 116630 ;;4.1000;BMX;;Apr 17, 2011;Build 2 16595 16631 "RTN","BMXRPC2",3,0) 16596 16632 ; … … 16814 16850 Q 16815 16851 "RTN","BMXRPC3") 16816 0^39^B385 9031116852 0^39^B38580443 16817 16853 "RTN","BMXRPC3",1,0) 16818 BMXRPC3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 4/6/11 4:56pm16854 BMXRPC3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 5/11/11 4:33pm 16819 16855 "RTN","BMXRPC3",2,0) 16820 ;;4.1000;BMX;;Apr 17, 2011;Build 116856 ;;4.1000;BMX;;Apr 17, 2011;Build 2 16821 16857 "RTN","BMXRPC3",3,0) 16858 ; 16859 "RTN","BMXRPC3",4,0) 16860 ; Changed for .1000 by WV/SMH on April 6 2011 16861 "RTN","BMXRPC3",5,0) 16862 ; - References to ^AUTTSITE in GETFC & GETFCRS removed, as VISTA doesn't use this file 16863 "RTN","BMXRPC3",6,0) 16864 ; - 16865 "RTN","BMXRPC3",7,0) 16866 ; 16867 "RTN","BMXRPC3",8,0) 16822 16868 ; 16823 "RTN","BMXRPC3",4,0)16824 ; Changed for .1000 by WV/SMH on April 6 201116825 "RTN","BMXRPC3",5,0)16826 ; - References to ^AUTTSITE in GETFC & GETFCRS removed, as VISTA doesn't use this file16827 "RTN","BMXRPC3",6,0)16828 ; -16829 "RTN","BMXRPC3",7,0)16830 ;16831 "RTN","BMXRPC3",8,0)16832 ;16833 16869 "RTN","BMXRPC3",9,0) 16834 16870 ; … … 17294 17330 BMXRPC4 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 17295 17331 "RTN","BMXRPC4",2,0) 17296 ;;4.1000;BMX;;Apr 17, 2011;Build 117332 ;;4.1000;BMX;;Apr 17, 2011;Build 2 17297 17333 "RTN","BMXRPC4",3,0) 17298 17334 ; … … 17592 17628 BMXRPC5 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 17593 17629 "RTN","BMXRPC5",2,0) 17594 ;;4.1000;BMX;;Apr 17, 2011;Build 117630 ;;4.1000;BMX;;Apr 17, 2011;Build 2 17595 17631 "RTN","BMXRPC5",3,0) 17596 17632 ; … … 17842 17878 BMXRPC6 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 17843 17879 "RTN","BMXRPC6",2,0) 17844 ;;4.1000;BMX;;Apr 17, 2011;Build 117880 ;;4.1000;BMX;;Apr 17, 2011;Build 2 17845 17881 "RTN","BMXRPC6",3,0) 17846 17882 ; … … 18068 18104 BMXRPC7 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 18069 18105 "RTN","BMXRPC7",2,0) 18070 ;;4.1000;BMX;;Apr 17, 2011;Build 118106 ;;4.1000;BMX;;Apr 17, 2011;Build 2 18071 18107 "RTN","BMXRPC7",3,0) 18072 18108 ; … … 18340 18376 BMXRPC8 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 18341 18377 "RTN","BMXRPC8",2,0) 18342 ;;4.1000;BMX;;Apr 17, 2011;Build 118378 ;;4.1000;BMX;;Apr 17, 2011;Build 2 18343 18379 "RTN","BMXRPC8",3,0) 18344 18380 ; … … 18520 18556 BMXRPC9 ; IHS/OIT/HMW - RPC CALL FOR EXTENDED BROKER FUNCTIONALITY ; 18521 18557 "RTN","BMXRPC9",2,0) 18522 ;;4.1000;BMX;;Apr 17, 2011;Build 118558 ;;4.1000;BMX;;Apr 17, 2011;Build 2 18523 18559 "RTN","BMXRPC9",3,0) 18524 18560 ; UPDATE FILEMAN WITH AN ADO RECORD SET FROM A WINDOWS APPLICATION … … 18916 18952 BMXSQL ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 18917 18953 "RTN","BMXSQL",2,0) 18918 ;;4.1000;BMX;;Apr 17, 2011;Build 118954 ;;4.1000;BMX;;Apr 17, 2011;Build 2 18919 18955 "RTN","BMXSQL",3,0) 18920 18956 ; … … 19730 19766 BMXSQL1 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 19731 19767 "RTN","BMXSQL1",2,0) 19732 ;;4.1000;BMX;;Apr 17, 2011;Build 119768 ;;4.1000;BMX;;Apr 17, 2011;Build 2 19733 19769 "RTN","BMXSQL1",3,0) 19734 19770 ; … … 20404 20440 BMXSQL2 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 20405 20441 "RTN","BMXSQL2",2,0) 20406 ;;4.1000;BMX;;Apr 17, 2011;Build 120442 ;;4.1000;BMX;;Apr 17, 2011;Build 2 20407 20443 "RTN","BMXSQL2",3,0) 20408 20444 ; … … 20600 20636 BMXSQL3 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 20601 20637 "RTN","BMXSQL3",2,0) 20602 ;;4.1000;BMX;;Apr 17, 2011;Build 120638 ;;4.1000;BMX;;Apr 17, 2011;Build 2 20603 20639 "RTN","BMXSQL3",3,0) 20604 20640 ; … … 21262 21298 BMXSQL4 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 21263 21299 "RTN","BMXSQL4",2,0) 21264 ;;4.1000;BMX;;Apr 17, 2011;Build 121300 ;;4.1000;BMX;;Apr 17, 2011;Build 2 21265 21301 "RTN","BMXSQL4",3,0) 21266 21302 ; … … 21330 21366 BMXSQL5 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 21331 21367 "RTN","BMXSQL5",2,0) 21332 ;;4.1000;BMX;;Apr 17, 2011;Build 121368 ;;4.1000;BMX;;Apr 17, 2011;Build 2 21333 21369 "RTN","BMXSQL5",3,0) 21334 21370 ; … … 21694 21730 BMXSQL6 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 2/5/11 10:03pm 21695 21731 "RTN","BMXSQL6",2,0) 21696 ;;4.1000;BMX;;Apr 17, 2011;Build 121732 ;;4.1000;BMX;;Apr 17, 2011;Build 2 21697 21733 "RTN","BMXSQL6",3,0) 21698 21734 ; … … 22388 22424 BMXSQL7 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 22389 22425 "RTN","BMXSQL7",2,0) 22390 ;;4.1000;BMX;;Apr 17, 2011;Build 122426 ;;4.1000;BMX;;Apr 17, 2011;Build 2 22391 22427 "RTN","BMXSQL7",3,0) 22392 22428 ; … … 22854 22890 BMXSQL91 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 22855 22891 "RTN","BMXSQL91",2,0) 22856 ;;4.1000;BMX;;Apr 17, 2011;Build 122892 ;;4.1000;BMX;;Apr 17, 2011;Build 2 22857 22893 "RTN","BMXSQL91",3,0) 22858 22894 ; … … 23138 23174 BMXTABLE ; IHS/OIT/HMW - BMX RETURN ENTIRE TABLE ; 23139 23175 "RTN","BMXTABLE",2,0) 23140 ;;4.1000;BMX;;Apr 17, 2011;Build 123176 ;;4.1000;BMX;;Apr 17, 2011;Build 2 23141 23177 "RTN","BMXTABLE",3,0) 23142 23178 ; … … 23154 23190 BMXTRS ; IHS/OIT/HMW - UPPERCASE-LOWERCASE ; 23155 23191 "RTN","BMXTRS",2,0) 23156 ;;4.1000;BMX;;Apr 17, 2011;Build 123192 ;;4.1000;BMX;;Apr 17, 2011;Build 2 23157 23193 "RTN","BMXTRS",3,0) 23158 23194 ; … … 23240 23276 BMXUTL1 ; IHS/OIT/HMW - UTIL: PATIENT DEMOGRAPHICS ; 23241 23277 "RTN","BMXUTL1",2,0) 23242 ;;4.1000;BMX;;Apr 17, 2011;Build 123278 ;;4.1000;BMX;;Apr 17, 2011;Build 2 23243 23279 "RTN","BMXUTL1",3,0) 23244 23280 ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 23902 23938 BMXUTL2 ; IHS/OIT/HMW - UTIL: PATIENT INFO ; 23903 23939 "RTN","BMXUTL2",2,0) 23904 ;;4.1000;BMX;;Apr 17, 2011;Build 123940 ;;4.1000;BMX;;Apr 17, 2011;Build 2 23905 23941 "RTN","BMXUTL2",3,0) 23906 23942 ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 23968 24004 BMXUTL5 ; IHS/OIT/HMW - DATE FORMAT ; 23969 24005 "RTN","BMXUTL5",2,0) 23970 ;;4.1000;BMX;;Apr 17, 2011;Build 124006 ;;4.1000;BMX;;Apr 17, 2011;Build 2 23971 24007 "RTN","BMXUTL5",3,0) 23972 24008 ;;Stolen from:* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER * … … 24404 24440 BMXUTL6 ; IHS/OIT/HMW - BMXNET INSTALLATION CALLS ; 24405 24441 "RTN","BMXUTL6",2,0) 24406 ;;4.1000;BMX;;Apr 17, 2011;Build 124442 ;;4.1000;BMX;;Apr 17, 2011;Build 2 24407 24443 "RTN","BMXUTL6",3,0) 24408 24444 ;
Note:
See TracChangeset
for help on using the changeset viewer.