1 | Release notes for BMX 2.21 - released December 10th 2010
|
---|
2 |
|
---|
3 | *** IMPORTANT ***
|
---|
4 | DO NOT INSTALL ON RPMS. THIS RELEASE IS FOR VISTA SYSTEMS!
|
---|
5 | *****************
|
---|
6 |
|
---|
7 | BMX.net is a broker and a software library that allows programs in .net to communicate with Vista. BMX.net support regular RPC's, SQL statements, and ADO.net updatable datasets. The user is referred to Indian Health Service's documentation for BMX:
|
---|
8 |
|
---|
9 | - Installation manual for Cache 5.x and above: http://www.ihs.gov/Cio/RPMS/PackageDocs/bmx/bmx_020i.pdf
|
---|
10 | - Programming manual: http://www.ihs.gov/Cio/RPMS/PackageDocs/bmx/bmx_020u.pdf
|
---|
11 | - Technical manual: http://www.ihs.gov/Cio/RPMS/PackageDocs/bmx/bmx_020t.pdf
|
---|
12 |
|
---|
13 | Release 2.1 adds support for GT.M.
|
---|
14 | Release 2.2 fixes several bugs:
|
---|
15 | - Selection of division works properly now with BMXNet22.dll
|
---|
16 | - Timeouts are better now so it won't leave processes hanging
|
---|
17 | - Process name is now set upon connection
|
---|
18 | Release 2.21 screens errors to log in the trap. It also makes a small fix that broke compatibility with Cache.
|
---|
19 |
|
---|
20 | *** IMPORTANT ***
|
---|
21 | BMX support for GT.M uses xinetd listeners; not listeners managed by the Mumps environment. As such, the installation instructions provided by IHS won't work for GT.M.
|
---|
22 | *****************
|
---|
23 |
|
---|
24 | Pre-requisites:
|
---|
25 | Fileman v22
|
---|
26 | Kernel v8
|
---|
27 | XB/ZIB v3 or above
|
---|
28 | XWB 1.1 patch 100001 (optional - to enable a unified listener for all brokers)
|
---|
29 |
|
---|
30 | Pre-requisites are examined by the environment check routine.
|
---|
31 |
|
---|
32 | Installation Instructions
|
---|
33 | =========================
|
---|
34 | Installation of BMX.net 2.2 consists of 6 steps.
|
---|
35 | 1. Install BMX in Vista
|
---|
36 | 2. Install Xinetd
|
---|
37 | 3. Configure listener in Xinetd
|
---|
38 | 4. Configure shell script that that is called by Xinetd
|
---|
39 | 5. Users who don't hold XUPROGMODE will need BMXPRC assigned as an option. If you assign it as part of their primary menu, make sure to rebuild the menu before proceeding.
|
---|
40 | 6. (optional) Install XWB 1.1 patch 100001
|
---|
41 |
|
---|
42 | 1. Install BMX in Vista (example; actual version will differ)
|
---|
43 | =========================
|
---|
44 | GTM>s DUZ=9 D ^XUP
|
---|
45 |
|
---|
46 | Setting up programmer environment
|
---|
47 | This is a TEST account.
|
---|
48 |
|
---|
49 | Terminal Type set to: C-VT100
|
---|
50 |
|
---|
51 | You have 46 new messages.
|
---|
52 | Select OPTION NAME: xpd main Kernel Installation & Distribution System
|
---|
53 |
|
---|
54 |
|
---|
55 | Edits and Distribution ...
|
---|
56 | Utilities ...
|
---|
57 | Installation ...
|
---|
58 | Patch Monitor Main Menu ...
|
---|
59 |
|
---|
60 | Select Kernel Installation & Distribution System Option: INStallation
|
---|
61 |
|
---|
62 |
|
---|
63 | 1 Load a Distribution
|
---|
64 | 2 Verify Checksums in Transport Global
|
---|
65 | 3 Print Transport Global
|
---|
66 | 4 Compare Transport Global to Current System
|
---|
67 | 5 Backup a Transport Global
|
---|
68 | 6 Install Package(s)
|
---|
69 | Restart Install of Package(s)
|
---|
70 | Unload a Distribution
|
---|
71 | Checksum/2nd Line Lists
|
---|
72 | Directory Listing to MailMan
|
---|
73 | Find/Delete File in Download Directory
|
---|
74 |
|
---|
75 |
|
---|
76 | Select Installation Option: 1 Load a Distribution
|
---|
77 | Enter a Host File: /opt/wv/k/bmx0210.k
|
---|
78 |
|
---|
79 | KIDS Distribution saved on Jul 22, 2009@13:07:52
|
---|
80 | Comment: BMX.net 2.1; add support for GT.M
|
---|
81 |
|
---|
82 | This Distribution contains Transport Globals for the following Package(s):
|
---|
83 | BMX 2.1
|
---|
84 | Distribution OK!
|
---|
85 |
|
---|
86 | Want to Continue with Load? YES//
|
---|
87 | Loading Distribution...
|
---|
88 |
|
---|
89 | Build BMX 2.1 has an Enviromental Check Routine
|
---|
90 | Want to RUN the Environment Check Routine? YES//
|
---|
91 | BMX 2.1
|
---|
92 | Will first run the Environment Check Routine, BMXE01
|
---|
93 |
|
---|
94 |
|
---|
95 | Hello, FIVE COORDINATOR
|
---|
96 |
|
---|
97 | Checking Environment for Install of Version 2.0 of BMX.
|
---|
98 |
|
---|
99 | Need at least FileMan 22.....FileMan 22.0 Present
|
---|
100 |
|
---|
101 | Need at least Kernel 8.0.....Kernel 8.0 Present
|
---|
102 |
|
---|
103 | Need at least XB/ZIB 3.....XB/ZIB 4.0 Present
|
---|
104 | Use INSTALL NAME: BMX 2.1 to install this Distribution.
|
---|
105 |
|
---|
106 |
|
---|
107 |
|
---|
108 | 1 Load a Distribution
|
---|
109 | 2 Verify Checksums in Transport Global
|
---|
110 | 3 Print Transport Global
|
---|
111 | 4 Compare Transport Global to Current System
|
---|
112 | 5 Backup a Transport Global
|
---|
113 | 6 Install Package(s)
|
---|
114 | Restart Install of Package(s)
|
---|
115 | Unload a Distribution
|
---|
116 | Checksum/2nd Line Lists
|
---|
117 | Directory Listing to MailMan
|
---|
118 | Find/Delete File in Download Directory
|
---|
119 |
|
---|
120 | Select Installation Option: 6 Install Package(s)
|
---|
121 | Select INSTALL NAME: BMX 2.1 Loaded from Distribution Loaded from Dis
|
---|
122 | tribution 7/22/09@13:22:57
|
---|
123 | => BMX.net 2.1; add support for GT.M ;Created on Jul 22, 2009@13:07:52
|
---|
124 |
|
---|
125 | This Distribution was loaded on Jul 22, 2009@13:22:57 with header of
|
---|
126 | BMX.net 2.1; add support for GT.M ;Created on Jul 22, 2009@13:07:52
|
---|
127 | It consisted of the following Install(s):
|
---|
128 | BMX 2.1
|
---|
129 |
|
---|
130 | Checking BMX 2.1 for overlap with VOE 1.0 ...... OK
|
---|
131 | No overlap found
|
---|
132 |
|
---|
133 |
|
---|
134 | Checking BMX 2.1 for overlap with VOE 1.1 ...... OK
|
---|
135 | No overlap found
|
---|
136 |
|
---|
137 |
|
---|
138 | Checking BMX 2.1 for overlap with NO HOME 1.0 ...... OK
|
---|
139 | No overlap found
|
---|
140 |
|
---|
141 | Checking Install for Package BMX 2.1
|
---|
142 | Will first run the Environment Check Routine, BMXE01
|
---|
143 |
|
---|
144 |
|
---|
145 | Hello, FIVE COORDINATOR
|
---|
146 |
|
---|
147 | Checking Environment for Install of Version 2.0 of BMX.
|
---|
148 |
|
---|
149 | Need at least FileMan 22.....FileMan 22.0 Present
|
---|
150 |
|
---|
151 | Need at least Kernel 8.0.....Kernel 8.0 Present
|
---|
152 |
|
---|
153 | Need at least XB/ZIB 3.....XB/ZIB 4.0 Present
|
---|
154 |
|
---|
155 | Install Questions for BMX 2.1
|
---|
156 |
|
---|
157 | Incoming Files:
|
---|
158 |
|
---|
159 |
|
---|
160 | 90093.1 BMX USER
|
---|
161 |
|
---|
162 |
|
---|
163 | 90093.2 BMX APPLICATION
|
---|
164 |
|
---|
165 |
|
---|
166 | 90093.5 BMXNET MONITOR
|
---|
167 |
|
---|
168 |
|
---|
169 | 90093.9 BMX GUI REPORT
|
---|
170 |
|
---|
171 |
|
---|
172 | 90093.98 BMX ADO LOG
|
---|
173 |
|
---|
174 |
|
---|
175 | 90093.99 BMX ADO SCHEMA (including data)
|
---|
176 |
|
---|
177 | Want KIDS to Rebuild Menu Trees Upon Completion of Install? NO//
|
---|
178 |
|
---|
179 |
|
---|
180 | Want KIDS to INHIBIT LOGONs during the install? NO//
|
---|
181 | Want to DISABLE Scheduled Options, Menu Options, and Protocols? NO//
|
---|
182 |
|
---|
183 | Enter the Device you want to print the Install messages.
|
---|
184 | Enter a '^' to abort the install.
|
---|
185 |
|
---|
186 | DEVICE: HOME// ;80;999999
|
---|
187 |
|
---|
188 | <compilation errors pass by -- that's normal>
|
---|
189 |
|
---|
190 | Install Completed
|
---|
191 |
|
---|
192 | 2. Install Xinetd
|
---|
193 | =================
|
---|
194 | User is referred to their OS's documentation
|
---|
195 |
|
---|
196 | 3. Configure listener in Xinetd
|
---|
197 | ===============================
|
---|
198 | Create a file in /etc/xinetd.d, with whatever name you like. I called mine BMX10502, because that's the port I am going to use. Here are the contents (don't include my comments)
|
---|
199 |
|
---|
200 | service BMX10502
|
---|
201 | {
|
---|
202 | socket_type = stream
|
---|
203 | type = UNLISTED
|
---|
204 | port = 10502 (that can be whatever you want it to be)
|
---|
205 | protocol = tcp
|
---|
206 | user = xxxxxxxx (that's a unix user who has access to run GT.M)
|
---|
207 | wait = no
|
---|
208 | disable = no
|
---|
209 | server = /bin/sh
|
---|
210 | server_args = /opt/wv2/BMX10502 (that's the location of the script that this listener will launch when it gets a TCP call on 10502)
|
---|
211 | }
|
---|
212 |
|
---|
213 | 4. Configure shell script that that is called by Xinetd
|
---|
214 | =======================================================
|
---|
215 | Create a script that looks like this.
|
---|
216 | The essential lines are the ones defining gtm_dist, gtmgbldir, gtmroutines, and $gtm_dist/mumps - run XINETD^BMXMON. XINETD^BMXMON is the entry point responsible for receiving TCP calls from XINETD.
|
---|
217 |
|
---|
218 | #!/bin/bash
|
---|
219 | # BMX Broker started by Xinet.d
|
---|
220 | cd /opt/wv2
|
---|
221 | date >> /opt/wv2/bmx.log
|
---|
222 |
|
---|
223 | # Get GT.M profile
|
---|
224 | export vista_home="/opt/wv2"
|
---|
225 | export gtm_dist="/opt/gtm"
|
---|
226 | export gtmgbldir="$vista_home/g/mumps.gld"
|
---|
227 | export gtmroutines="$vista_home/o($vista_home/p) $vista_home/o($vista_home/r) $gtm_dist"
|
---|
228 |
|
---|
229 | # Run
|
---|
230 | $gtm_dist/mumps -run XINETD^BMXMON 2>>/opt/wv2/bmx.log
|
---|
231 | exit
|
---|
232 |
|
---|
233 | Note: If you install XWB 1.1 patch 100001, you can use the CPRS listener. XWBTCPM will decide which protocol it is and route it accordingly.
|
---|
234 |
|
---|
235 | 5. Add BMXRPC to the user's menu
|
---|
236 | ================================
|
---|
237 | GTM>D P^DI
|
---|
238 |
|
---|
239 |
|
---|
240 | VA FileMan 22.0
|
---|
241 |
|
---|
242 |
|
---|
243 | Select OPTION: ENTER OR EDIT FILE ENTRIES
|
---|
244 |
|
---|
245 |
|
---|
246 |
|
---|
247 | INPUT TO WHAT FILE: PACKAGE// 200 NEW PERSON (77 entries)
|
---|
248 | EDIT WHICH FIELD: ALL// SECONDARY MENU OPTIONS (multiple)
|
---|
249 | EDIT WHICH SECONDARY MENU OPTIONS SUB-FIELD: ALL// .01 SECONDARY MENU OPTION
|
---|
250 | S
|
---|
251 | THEN EDIT SECONDARY MENU OPTIONS SUB-FIELD:
|
---|
252 | THEN EDIT FIELD:
|
---|
253 |
|
---|
254 |
|
---|
255 | Select NEW PERSON NAME: CLERK,EIGHT Medical Clerk
|
---|
256 | Select SECONDARY MENU OPTIONS: OR CPRS GUI CHART//
|
---|
257 | SECONDARY MENU OPTIONS: OR CPRS GUI CHART//
|
---|
258 | Select SECONDARY MENU OPTIONS: BMXRPC BMX Procedure Calls
|
---|
259 | Are you adding 'BMXRPC' as a new SECONDARY MENU OPTIONS (the 2ND for this NEW
|
---|
260 | PERSON)? No// Y (Yes)
|
---|
261 | Select SECONDARY MENU OPTIONS:
|
---|
262 |
|
---|
263 | 6. (optional) Install XWB 1.1 patch 100001
|
---|
264 | ==========================================
|
---|
265 | This patch allows you to use the CPRS listener for BMX.
|
---|
266 |
|
---|
267 | GTM>d ^XPDIL
|
---|
268 |
|
---|
269 | Enter a Host File: /opt/wv/k/xwb0110_100001.k
|
---|
270 |
|
---|
271 | KIDS Distribution saved on Jul 22, 2009@13:55:06
|
---|
272 | Comment: XWB patch to support BMX.net calls
|
---|
273 |
|
---|
274 | This Distribution contains Transport Globals for the following Package(s):
|
---|
275 | XWB*1.1*100001
|
---|
276 | Distribution OK!
|
---|
277 |
|
---|
278 | Want to Continue with Load? YES//
|
---|
279 | Loading Distribution...
|
---|
280 |
|
---|
281 | XWB*1.1*100001
|
---|
282 | Use INSTALL NAME: XWB*1.1*100001 to install this Distribution.
|
---|
283 |
|
---|
284 | GTM>d ^XPDI
|
---|
285 |
|
---|
286 | Select INSTALL NAME: XWB*1.1*100001 Loaded from Distribution Loaded f
|
---|
287 | rom Distribution 7/22/09@13:56:39
|
---|
288 | => XWB patch to support BMX.net calls ;Created on Jul 22, 2009@13:55:06
|
---|
289 |
|
---|
290 | This Distribution was loaded on Jul 22, 2009@13:56:39 with header of
|
---|
291 | XWB patch to support BMX.net calls ;Created on Jul 22, 2009@13:55:06
|
---|
292 | It consisted of the following Install(s):
|
---|
293 | XWB*1.1*100001
|
---|
294 |
|
---|
295 | Checking XWB*1.1*100001 for overlap with VOE 1.0 .. OK
|
---|
296 | No overlap found
|
---|
297 |
|
---|
298 | Install Completed.
|
---|
299 |
|
---|
300 | TESTING BMX.net
|
---|
301 | ===============
|
---|
302 | In the package, there is a C# file called bmxTesterForVista_0200.cs and a .Net dll called BMXNet20.dll.
|
---|
303 | To compile the file on Mono, use the generics Mono C# compiler (gmcs), referencing BMXNet20.dll and System.Data.dll. To compile on Windows, use csc with the same arguments.
|
---|
304 |
|
---|
305 | gmcs /r:BMXNet20.dll,System.Data.dll bmxTesterForVista_0200.cs
|
---|
306 |
|
---|
307 | Then you can execute it:
|
---|
308 |
|
---|
309 | mono bmxTesterForVista_0200.exe
|
---|
310 | Enter IP Address of Server: 127.0.0.1
|
---|
311 | Enter the listener port: 9260
|
---|
312 | Enter your Access Code: vistais#1
|
---|
313 | Enter your Verify Code: catdog.22
|
---|
314 | Connected: True DUZ: 47
|
---|
315 | Simple RPC: User Name: CLERK,EIGHT
|
---|
316 | CPRS RPC with Parameters:
|
---|
317 | 14^Administrator,System
|
---|
318 | 65^Analyst,One^- ANALYST
|
---|
319 | 66^Analyst,Three^- ANALYST
|
---|
320 | 69^Analyst,Two^- ANALYST
|
---|
321 | 47^Clerk,Eight^- Medical Clerk
|
---|
322 | 50^Clerk,Eleven^- Medical Clerk
|
---|
323 | 54^Clerk,Fifteen^- Medical Clerk
|
---|
324 | 44^Clerk,Five^- Medical Clerk
|
---|
325 | 43^Clerk,Four^- Medical Clerk
|
---|
326 | 53^Clerk,Fourteen^- Medical Clerk
|
---|
327 | 48^Clerk,Nine^- Medical Clerk
|
---|
328 | 46^Clerk,Seven^- Medical Clerk
|
---|
329 | 45^Clerk,Six^- Medical Clerk
|
---|
330 | 49^Clerk,Ten^- Medical Clerk
|
---|
331 | 52^Clerk,Thirteen^- Medical Clerk
|
---|
332 | 42^Clerk,Three^- Medical Clerk
|
---|
333 | 51^Clerk,Twelve^- Medical Clerk
|
---|
334 | 41^Clerk,Two^- Medical Clerk
|
---|
335 | 58^Coordinator,Clinical^- CLINICAL COORDINATOR
|
---|
336 | 9^Coordinator,Five^- ANALYST
|
---|
337 | 3^Coordinator,Four
|
---|
338 | 2^Coordinator,Nine
|
---|
339 | 63^Coordinator,One^- ANALYST
|
---|
340 | 64^Coordinator,Seven
|
---|
341 | 60^Coordinator,Six^- CLINICAL COORDINATOR
|
---|
342 | 67^Coordinator,Three^- ANALYST
|
---|
343 | 68^Coordinator,Two^- ANALYST
|
---|
344 | 21^Doctor,Eight^- Physician
|
---|
345 | 24^Doctor,Eleven^- Physician
|
---|
346 | 18^Doctor,Five^- Physician
|
---|
347 | 17^Doctor,Four^- Physician
|
---|
348 | 22^Doctor,Nine^- Physician
|
---|
349 | 11^Doctor,One^- Physician
|
---|
350 | 20^Doctor,Seven^- Physician
|
---|
351 | 19^Doctor,Six^- Physician
|
---|
352 | 23^Doctor,Ten^- Physician
|
---|
353 | 16^Doctor,Three^- Physician
|
---|
354 | 26^Doctor,Twelve^- Physician
|
---|
355 | 15^Doctor,Two^- Physician
|
---|
356 | 62^Lab,Superuser^- ANALYST
|
---|
357 | 8^Manager,System^- System Manager
|
---|
358 | 33^Nurse,Eight^- Nurse
|
---|
359 | 36^Nurse,Eleven^- Nurse
|
---|
360 | 40^Nurse,Fifteen^- Nurse
|
---|
361 |
|
---|
362 |
|
---|
363 | SQL Statement
|
---|
364 | ZZ PATIENT,TEST ONE
|
---|
365 | FEMALE
|
---|
366 | 1/24/1945 12:00:00 AM
|
---|
367 | ZZ PATIENT,TEST THREE
|
---|
368 | MALE
|
---|
369 | 1/15/1968 12:00:00 AM
|
---|
370 | ZZ PATIENT,TEST TWO
|
---|
371 | MALE
|
---|
372 | 12/25/1957 12:00:00 AM
|
---|
373 |
|
---|
374 | BMX Schema RPC
|
---|
375 |
|
---|
376 | ZZ PATIENT,TEST ONEF1/24/1945 12:00:00 AM
|
---|
377 | ZZ PATIENT,TEST THREEM1/15/1968 12:00:00 AM
|
---|
378 | ZZ PATIENT,TEST TWOM12/25/1957 12:00:00 AM
|
---|
379 |
|
---|
380 | More complicated SQL
|
---|
381 |
|
---|
382 | NAMESTATEABBRAGE
|
---|
383 | ZZ PATIENT,TEST ONENEW YORKNY64
|
---|
384 | ZZ PATIENT,TEST THREEINDIANAIN41
|
---|
385 | ZZ PATIENT,TEST TWOKANSASKS51
|
---|
386 |
|
---|
387 | If this doesn't work, you will get error messages like this:
|
---|
388 | Unhandled Exception: IndianHealthService.BMXNet.BMXNetException: Connection refused at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remote_end) [0x00000]
|
---|
389 | at System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000]
|
---|
390 | at System.Net.Sockets.TcpClient.Connect (System.Net.IPAddress[] ipAddresses, Int32 port) [0x00000]
|
---|
391 | at IndianHealthService.BMXNet.BMXNetLib.a (System.String A_0) [0x00000]
|
---|
392 |
|
---|
393 | You may get Connection refused; connection timed out, not a valid access/verify code, verify code must be changed now, and User doesn't have access to Context BMXRPC, etc.
|
---|
394 |
|
---|