source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/IHS BMX Framework/IndianHealthService.BMXNet.Doc/buildhelp/assembler/Comments/BMXNET40.xml@ 1146

Last change on this file since 1146 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

File size: 112.2 KB
Line 
1<?xml version="1.0"?>
2<doc>
3 <assembly>
4 <name>BMXNET40</name>
5 </assembly>
6 <members>
7 <member name="T:IndianHealthService.BMXNet.Net.EncryptionKeyProvider">
8 <summary>
9 A provider of the BMX Ade encryption key
10 </summary>
11 </member>
12 <member name="T:IndianHealthService.BMXNet.Services.BMXNetSessionConnectionOverAnotherSessionConnection">
13 <summary>
14 To test the BMXNetBroker class, we can use one instance of BMXNetBroker
15 to be the authenicated transport and use the receiver to be the
16 encapsulated BMX interaction.
17 </summary>
18 </member>
19 <member name="T:IndianHealthService.BMXNet.BMXNetSessionConnection">
20 <summary>
21 BMXNetSessionConnection implements low-level connectivity to RPMS databases.
22 </summary>
23 </member>
24 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.ADEBLDPadString(System.String)">
25 <summary>
26 Given strInput = "13" builds "013" if nLength = 3. Default for nLength is 3.
27 </summary>
28 <param name="strInput"></param>
29 <returns></returns>
30 </member>
31 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.ADEBLDPadString(System.String,System.Int32)">
32 <summary>
33 Given strInput = "13" builds "013" if nLength = 3 Default for nLength is 3.
34 </summary>
35 <param name="strInput"></param>
36 <param name="nLength">Default = 3</param>
37 <returns></returns>
38 </member>
39 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.ADEBLDB(System.String)">
40 <summary>
41 Concatenates zero-padded length of sInput to sInput
42 Given "Hello" returns "004Hello"
43 If nSize = 5, returns "00004Hello"
44 Default for nSize is 3.
45 </summary>
46 <param name="sInput"></param>
47 <returns></returns>
48 </member>
49 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.ADEBLDB(System.String,System.Int32)">
50 <summary>
51 Concatenates zero-padded length of sInput to sInput
52 Given "Hello" returns "004Hello"
53 If nSize = 5, returns "00004Hello"
54 Default for nSize is 3.
55 </summary>
56 <param name="sInput"></param>
57 <param name="nSize"></param>
58 <returns></returns>
59 </member>
60 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.ADEBHDR(System.String,System.String,System.String,System.String)">
61 <summary>
62 Build protocol header
63 </summary>
64 <param name="sWKID"></param>
65 <param name="sWINH"></param>
66 <param name="sPRCH"></param>
67 <param name="sWISH"></param>
68 <returns></returns>
69 </member>
70 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.FindSubString(System.String,System.String)">
71 <summary>
72 Returns index of first instance of sSubString in sString.
73 If sSubString not found, returns -1.
74 </summary>
75 <param name="sString"></param>
76 <param name="sSubString"></param>
77 <returns></returns>
78 </member>
79 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.Lock(System.String,System.String,System.String)">
80 <summary>
81 Lock a local or global M variable
82 Returns true if lock is obtained during TimeOut seconds
83 Use + to increment, - to decrement lock.
84 </summary>
85 <param name="Variable"></param>
86 <param name="Increment"></param>
87 <param name="TimeOut"></param>
88 <returns></returns>
89 </member>
90 <member name="M:IndianHealthService.BMXNet.BMXNetSessionConnection.TransmitRPC(System.String,System.String)">
91 <remarks>
92 AppContext is managed an client and server with c/s calls to change
93 appContext on the server. There is no use for AppContext on the client
94 so recommend integrated AppContext into BMX Protocol so always passing
95 it and managing switching it on the server.
96 </remarks>
97 </member>
98 <member name="P:IndianHealthService.BMXNet.BMXNetSessionConnection.BMXRWL">
99 <summary>
100 Returns a reference to the internal ReaderWriterLock member.
101 </summary>
102 </member>
103 <member name="P:IndianHealthService.BMXNet.BMXNetSessionConnection.AppContext">
104 <summary>
105 Gets/sets the Kernel Application context
106 Throws an exception if unable to set the context.
107 </summary>
108 </member>
109 <member name="T:IndianHealthService.BMXNet.Net.BMXNetSessionSocketConnection">
110 <summary>
111 BMXNetBroker implements low-level socket connectivity to RPMS databases.
112 The VA RPC Broker must be running on the RPMS server in order for
113 BMXNetBroker to connect.
114 </summary>
115 </member>
116 <member name="M:IndianHealthService.BMXNet.Net.BMXNetSessionSocketConnection.OpenConnectionCommon">
117 <summary>
118 Returns index of first instance of sSubString in sString.
119 If sSubString not found, returns -1.
120 </summary>
121 <returns></returns>
122 </member>
123 <member name="M:IndianHealthService.BMXNet.Net.BMXNetSessionSocketConnection.ImHereServer">
124 <summary>
125 Ping the server, will reset read-timeout
126 </summary>
127 <returns>Answer the #milliseconds to run or -1 if theres an issue</returns>
128 </member>
129 <member name="P:IndianHealthService.BMXNet.Net.BMXNetSessionSocketConnection.ReceiveTimeout">
130 <summary>
131 Set and retrieve the timeout, in milliseconds, to receive a response from the RPMS server.
132 If the retrieve time exceeds the timeout, an exception will be thrown and the connection will be closed.
133 The default is 30 seconds.
134 </summary>
135 </member>
136 <member name="T:IndianHealthService.BMXNet.RemoteEventArgs">
137 <summary>
138 The event args used by the RemoteEventService
139 </summary>
140 </member>
141 <member name="P:IndianHealthService.BMXNet.RemoteEventArgs.EventType">
142 <summary>
143 This string corresponds to well-known/shared EventTypes used to identify
144 different events published and subscribed between BMX implementations using RemoteSessions.
145 </summary>
146 </member>
147 <member name="P:IndianHealthService.BMXNet.RemoteEventArgs.Details">
148 <summary>
149 This is an optional peice of data with some event-specific details.
150 </summary>
151 </member>
152 <member name="P:IndianHealthService.BMXNet.Ado.RPMSDb.ResultSets">
153 <summary>
154 Returns the array of RMPSResultSets retrieved from RPMS
155 </summary>
156 </member>
157 <member name="P:IndianHealthService.BMXNet.Ado.RPMSDb.CurrentRecordSet">
158 <summary>
159 Sets and Returns the current recordset
160 </summary>
161 </member>
162 <member name="T:IndianHealthService.BMXNet.LocalSession">
163 <summary>
164 The LocalSession is scoped to the client, whether EHR/VueCentric or a WinForm application.
165 User management, patient/visit context, and local events are the key services. Components/controls that are programmed
166 against this API will work within both the EhrFramework and WinFramework environments.
167 </summary>
168 </member>
169 <member name="T:IndianHealthService.BMXNet.Log">
170 <summary>
171 Current Logging facility for BMXNet. This facility conforms to the EHR/VueCentric
172 method of logging. Logging is either on or off, there is no scale from Info to Fatal to
173 turn off and on.
174 </summary>
175 <remarks>
176 Logging is not heavily used in BMXNET40. In the EHR/VueCentric, the VIM.exe can be
177 started on the command-line with the /trace option to see RPC calls.
178 </remarks>
179 </member>
180 <member name="M:IndianHealthService.BMXNet.Log.Log(System.String,System.String,System.String[])">
181 <summary>
182 Call to send information to the log.
183 </summary>
184 <param name="aClass">A grouping of log entries</param>
185 <param name="aCategory">A sub-grouping of log entries</param>
186 <param name="lines">Lines of text to write to the log</param>
187 </member>
188 <member name="M:IndianHealthService.BMXNet.Log.Log(System.String,System.String,System.Exception,System.String[])">
189 <summary>
190 Call to send information to the log where an exception occured.
191 </summary>
192 <param name="aClass">A grouping of log entries</param>
193 <param name="aCategory">A sub-grouping of log entries</param>
194 <param name="anException">An exception to write to the log</param>
195 <param name="lines">Lines of text to write to the log</param>
196 </member>
197 <member name="P:IndianHealthService.BMXNet.Log.IsLogging">
198 <summary>
199 True if logging is currently enabled. It's recommend to turn logging off
200 except for diagnositics.
201 </summary>
202 </member>
203 <member name="M:IndianHealthService.BMXNet.LocalSession.NewUser(System.String,System.String,IndianHealthService.BMXNet.Model.Division)">
204 <summary>
205 Create a new user object.
206 </summary>
207 <remarks>
208 Instances of user are used by Frameworks or for configuration/comparisons.
209 </remarks>
210 <param name="aName">Display name of the user</param>
211 <param name="anIen">IEN or DUZ of the User</param>
212 <param name="aDivision">Currently set division of the user</param>
213 <returns></returns>
214 </member>
215 <member name="M:IndianHealthService.BMXNet.LocalSession.Notify(System.String,System.Exception)">
216 <summary>
217 Simple uniform call for local notifications to the user when an exception occurs.
218 </summary>
219 <remarks>
220 API is not commonly used
221 </remarks>
222 <param name="aTitle">Title of the dialog</param>
223 <param name="anException">Exception to be displayed</param>
224 </member>
225 <member name="M:IndianHealthService.BMXNet.LocalSession.Notify(System.String,System.String)">
226 <summary>
227 Simple uniform call for local notifications to the user.
228 </summary>
229 <remarks>
230 API is not commonly used.
231 </remarks>
232 <param name="aTitle">Title of the dialog</param>
233 <param name="aMessage">Message to be displayed</param>
234 </member>
235 <member name="M:IndianHealthService.BMXNet.LocalSession.Close">
236 <summary>
237 Call to close the LocalSession which is the last action to take when
238 shutdown down your application.
239 </summary>
240 <remarks>
241 In the EHR this call does nothing because each instance of BMX EhrFramework manages
242 a single component within the greater EHR/VueCentric framework.
243 In a WinForm application this call shuts down the WinFramework, closes all RemoteSessions,
244 and closes the LocalSession and disconnects from RPMS.
245 </remarks>
246 </member>
247 <member name="P:IndianHealthService.BMXNet.LocalSession.Context">
248 <summary>
249 The current patient and visit context.
250 </summary>
251 <example>
252 The context object is access exclusively through the LocalSession and LocalSession
253 events. The context can be obtained if your control or component is a LocalSessionConsumer and if so then
254 define the Context property as follows:
255 <code>
256 public Context Context
257 {
258 get { return this.LocalSession == null ? null : this.LocalSession.Context; }
259 }
260 </code>
261 </example>
262 </member>
263 <member name="P:IndianHealthService.BMXNet.LocalSession.User">
264 <summary>
265 Authenticated user associated with LocalSession
266 </summary>
267 <remarks>
268 If there are also RemoteSessions, the RemoteSessions will have the same User object
269 </remarks>
270 <example>
271 <code>
272 this.StatusLabel.Text= aLocalSession.User == null ? "No user" : aLocalSession.User.Name;
273 </code>
274 </example>
275 </member>
276 <member name="P:IndianHealthService.BMXNet.LocalSession.EventServices">
277 <summary>
278 Access to the LocalSessions EventServices
279 </summary>
280 </member>
281 <member name="T:IndianHealthService.BMXNet.RemoteSession">
282 <summary>
283 All server-side RPMS RPC calls are performed through this interface. Each instance of RemoteSession corresponds to a single job (e.g. Cache process) on RPMS. There is always one primary RemoteSession and potentially more when using RemoteSessionPool. When the primary RemoteSession is closed all secondary pooled sessions are also closed and the server broker connection is terminated.
284 </summary>
285 </member>
286 <member name="M:IndianHealthService.BMXNet.RemoteSession.TransmitRPC(System.String,System.String)">
287 <summary>
288 Calls a remote procedure on the RPMS server and returns the result as a String.
289 </summary>
290 <remarks>
291 Presumes that the AppContext was set prior to the call.
292 </remarks>
293 <example>
294 <code>
295 ...
296 this.RemoteSession.AppContext="VEN RPC";
297 ...
298 String asqThreadholds= this.RemoteSession.TransmitRPC("VEN ASQ GET DATA", this.Context.Patient.Ien);
299 </code>
300 </example>
301 <param name="rpcCommand">The remote procedure call name </param>
302 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
303 <returns>The result of the RPC call</returns>
304 </member>
305 <!-- Badly formed XML comment ignored for member "M:IndianHealthService.BMXNet.RemoteSession.TransmitRPC(System.String,System.String,System.String)" -->
306 <member name="M:IndianHealthService.BMXNet.RemoteSession.SafelyTransmitRPC(System.String,System.String)">
307 <summary>
308 Calls a remote procedure on the RPMS server and returns the result as a String. If there are any exceptions a
309 colon delimited string in the format Exception:Message is returned.
310 </summary>
311 <remarks>
312 Presumes that the AppContext was set prior to the call.
313 </remarks>
314 <example>
315 <code>
316 ...
317 this.RemoteSession.AppContext="VEN RPC";
318 ...
319 String asqThreadholds= this.RemoteSession.SafelyTransmitRPC("VEN ASQ GET DATA", this.Context.Patient.Ien);
320 </code>
321 </example>
322 <param name="rpcCommand">The remote procedure call name </param>
323 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
324 <returns>The result of the RPC call. If there are any exceptions a colon delimited string in the format Exception:Message is returned.</returns>
325 </member>
326 <member name="M:IndianHealthService.BMXNet.RemoteSession.SafelyTransmitRPC(System.String,System.String,System.String)">
327 <summary>
328 Calls a remote procedure on the RPMS server and returns the result as a String. If there are any exceptions a
329 colon delimited string in the format Exception:Message is returned.
330 </summary>
331 <remarks>
332 Presumes that the AppContext was set prior to the call.
333 </remarks>
334 <example>
335 <code>
336 ...
337 this.RemoteSession.AppContext="VEN RPC";
338 ...
339 String asqThreadholds= this.RemoteSession.SafelyTransmitRPC("VEN ASQ GET DATA", this.Context.Patient.Ien);
340 </code>
341 </example>
342 <param name="rpcCommand">The remote procedure call name </param>
343 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
344 <param name="aContext">The AppContext (OPTION) to be set prior to the call(</param>
345 <returns>The result of the RPC call. If there are any exceptions a colon delimited string in the format Exception:Message is returned.</returns>
346 </member>
347 <member name="M:IndianHealthService.BMXNet.RemoteSession.SaveChanges(System.Data.DataTable)">
348 <summary>
349
350 <example>
351
352 <code>
353
354 this.Context.Visit.Create();
355 if (this.Context.Visit.IsStub)
356 {
357 if (!this.Context.Visit.Create())
358 {
359 return false;
360 }
361 }
362 this.RemoteSession.SaveChanges(this.ScoreTable);
363 </code>
364 </example>
365 </summary>
366 <param name="aDataTable"></param>
367 <returns></returns>
368 </member>
369 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromCommand(System.String)">
370 <summary>
371 Calling a Custom Remote Procedure call (RPC) registered in VA FileMan’s REMOTE PROCEDURE file that results in a DataTable. You must design your remote procedure’s M routine to build its result its data in the specific format described later in this document.
372 </summary>
373 <param name="aCommand">The co /// </param>
374 <remarks>
375 Normally the AppContext is set once, after logging into the BMX, with a
376 single AppContext for the current applications or specified in every RPC call.
377 </remarks>
378 <example>
379 The VEN namespace is for PCC+ and the example below would be used at the beginning
380 of a PCC+ application.
381 <code>
382 aRemoteSession.AppContext = "VEN RPC";
383 </code>
384 The M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
385 <code>
386 Figure 5 2 shows the M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
387 PDEMO(BMXY,BMXPAT,BMXCOUNT) ;EP
388 ;This simple RPC demonstrates how to format data
389 ;for the BMXNet ADO.NET data provider
390 ;
391 ;Returns a maximum of BMXCOUNT records from the
392 ;VA PATIENT file whose names begin with BMXPAT
393 ;
394 N BMXI,BMXD,BMXC,BMXNODE,BMXDOB
395 ;
396 ; BMXY is passed in by reference. Set it to
397 ;the value of the variable in which we will return our data:
398 S BMXY="^TMP(BMX,"_$J_")"
399 ;
400 ;The first subnode of the data global contains the column header information
401 ;in the form "txxxxxCOLUMN1NAME^txxxxxCOLUMN2NAME"_$C(30)
402 ;where t is the column data type:
403 ; T for text
404 ; I for integer
405 ; N for floating point number
406 ; D for date/time.
407 ;xxxxx is the length of the column in characters.
408 ;
409 S BMXI=0,BMXC=0
410 S ^ TMP(BMX,$J,BMXI)="T00030NAME^T00010SEX^D00020DOB"_$C(30)
411 ;
412 ;You MUST set an error trap:
413 S X="PDERR^BMXRPC6",@^%ZOSF("TRAP")
414 ;
415 ;Strip CR, LF, TAB from BMXCOUNT parameter
416 S BMXCOUNT=$TR(BMXCOUNT,$C(13),"")
417 S BMXCOUNT=$TR(BMXCOUNT,$C(10),"")
418 S BMXCOUNT=$TR(BMXCOUNT,$C(9),"")
419 ;
420 ;Iterate through the global and set the data nodes:
421 S:BMXPAT="" BMXPAT="A"
422 S BMXPAT=$O(^DPT("B",BMXPAT),-1)
423 S BMXD=0
424 F S BMXPAT=$O(^DPT("B",BMXPAT)) Q:BMXPAT="" S BMXD=$O(^DPT("B",BMXPAT,0)) I +BMXD S BMXC=BMXC+1 Q:(BMXCOUNT)BMXC BMXCOUNT) D
425 . Q:'$D(^DPT(BMXD,0))
426 . S BMXI=BMXI+1
427 . S BMXNODE=^DPT(BMXD,0)
428 . ;Convert the DOB from FM date to external form
429 . S Y=$P(BMXNODE,U,3)
430 . I +Y X ^DD("DD")
431 . S BMXDOB=Y
432 . ;The data node fields are in the same order as the column header, i.e. NAME^SEX^DOB
433 . ;and terminated with a $C(30)
434 . S ^ TMP(BMX,$J,BMXI)=$P(BMXNODE,U)_U_$P(BMXNODE,U,2)_U_BMXDOB_$C(30)
435 ;
436 ;After all the data nodes have been set, set the final node to $C(31) to indicate
437 ;the end of the recordset
438 S BMXI=BMXI+1
439 S ^ TMP(BMX,$J,BMXI)=$C(31)
440 Q
441 ;
442 PDERR ;Error trap for PDEMO
443 ;
444 S ^ TMP(BMX,$J,BMXI+1)=$C(31)
445 Q
446 </code>
447 Register as an RPC
448 <para>
449 NAME: BMX DEMO TAG: PDEMO
450 ROUTINE: BMXRPC6 RETURN VALUE TYPE: GLOBAL ARRAY
451 </para>
452 Call using a RemoteSession
453 <code>
454 DataTable demoTable=aRemoteSession.TableFromCommand("BMX DEMO^S^10");
455 </code>
456 </example>
457 <param name="aCommand">The name of the RPC </param>
458 <returns>The resulting DataTable</returns>
459 </member>
460 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromCommand(System.String,System.String)">
461 <summary>
462 Calling a Custom Remote Procedure call (RPC) registered in VA FileMan’s REMOTE PROCEDURE file that results in a DataTable. You must design your remote procedure’s M routine to build its result its data in the specific format described later in this document.
463 </summary>
464 <param name="aCommand">The co /// </param>
465 <remarks>
466 Normally the AppContext is set once, after logging into the BMX, with a
467 single AppContext for the current applications or specified in every RPC call.
468 </remarks>
469 <example>
470 The VEN namespace is for PCC+ and the example below would be used at the beginning
471 of a PCC+ application.
472 <code>
473 aRemoteSession.AppContext = "VEN RPC";
474 </code>
475 The M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
476 <code>
477 Figure 5 2 shows the M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
478 PDEMO(BMXY,BMXPAT,BMXCOUNT) ;EP
479 ;This simple RPC demonstrates how to format data
480 ;for the BMXNet ADO.NET data provider
481 ;
482 ;Returns a maximum of BMXCOUNT records from the
483 ;VA PATIENT file whose names begin with BMXPAT
484 ;
485 N BMXI,BMXD,BMXC,BMXNODE,BMXDOB
486 ;
487 ; BMXY is passed in by reference. Set it to
488 ;the value of the variable in which we will return our data:
489 S BMXY="^TMP(BMX,"_$J_")"
490 ;
491 ;The first subnode of the data global contains the column header information
492 ;in the form "txxxxxCOLUMN1NAME^txxxxxCOLUMN2NAME"_$C(30)
493 ;where t is the column data type:
494 ; T for text
495 ; I for integer
496 ; N for floating point number
497 ; D for date/time.
498 ;xxxxx is the length of the column in characters.
499 ;
500 S BMXI=0,BMXC=0
501 S ^ TMP(BMX,$J,BMXI)="T00030NAME^T00010SEX^D00020DOB"_$C(30)
502 ;
503 ;You MUST set an error trap:
504 S X="PDERR^BMXRPC6",@^%ZOSF("TRAP")
505 ;
506 ;Strip CR, LF, TAB from BMXCOUNT parameter
507 S BMXCOUNT=$TR(BMXCOUNT,$C(13),"")
508 S BMXCOUNT=$TR(BMXCOUNT,$C(10),"")
509 S BMXCOUNT=$TR(BMXCOUNT,$C(9),"")
510 ;
511 ;Iterate through the global and set the data nodes:
512 S:BMXPAT="" BMXPAT="A"
513 S BMXPAT=$O(^DPT("B",BMXPAT),-1)
514 S BMXD=0
515 F S BMXPAT=$O(^DPT("B",BMXPAT)) Q:BMXPAT="" S BMXD=$O(^DPT("B",BMXPAT,0)) I +BMXD S BMXC=BMXC+1 Q:(BMXCOUNT)BMXC BMXCOUNT) D
516 . Q:'$D(^DPT(BMXD,0))
517 . S BMXI=BMXI+1
518 . S BMXNODE=^DPT(BMXD,0)
519 . ;Convert the DOB from FM date to external form
520 . S Y=$P(BMXNODE,U,3)
521 . I +Y X ^DD("DD")
522 . S BMXDOB=Y
523 . ;The data node fields are in the same order as the column header, i.e. NAME^SEX^DOB
524 . ;and terminated with a $C(30)
525 . S ^ TMP(BMX,$J,BMXI)=$P(BMXNODE,U)_U_$P(BMXNODE,U,2)_U_BMXDOB_$C(30)
526 ;
527 ;After all the data nodes have been set, set the final node to $C(31) to indicate
528 ;the end of the recordset
529 S BMXI=BMXI+1
530 S ^ TMP(BMX,$J,BMXI)=$C(31)
531 Q
532 ;
533 PDERR ;Error trap for PDEMO
534 ;
535 S ^ TMP(BMX,$J,BMXI+1)=$C(31)
536 Q
537 </code>
538 Register as an RPC
539 <para>
540 NAME: BMX DEMO TAG: PDEMO
541 ROUTINE: BMXRPC6 RETURN VALUE TYPE: GLOBAL ARRAY
542 </para>
543 Call using a RemoteSession
544 <code>
545 DataTable demoTable=aRemoteSession.TableFromCommand("BMX DEMO^S^10");
546 </code>
547 </example>
548 <param name="aCommand">The name of the RPC </param>
549 <param name="aContext">The AppContext to set prior to the call</param>
550 <returns>The resulting DataTable</returns>
551 </member>
552 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromCommand(System.String,System.Data.DataSet,System.String)">
553 <summary>
554 Calling a Custom Remote Procedure call (RPC) registered in VA FileMan’s REMOTE PROCEDURE file that results in a DataTable. You must design your remote procedure’s M routine to build its result its data in the specific format described later in this document.
555 </summary>
556 <param name="aCommand">The co /// </param>
557 <remarks>
558 Normally the AppContext is set once, after logging into the BMX, with a
559 single AppContext for the current applications or specified in every RPC call.
560 </remarks>
561 <example>
562 The VEN namespace is for PCC+ and the example below would be used at the beginning
563 of a PCC+ application.
564 <code>
565 aRemoteSession.AppContext = "VEN RPC";
566 </code>
567 The M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
568 <code>
569 Figure 5 2 shows the M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
570 PDEMO(BMXY,BMXPAT,BMXCOUNT) ;EP
571 ;This simple RPC demonstrates how to format data
572 ;for the BMXNet ADO.NET data provider
573 ;
574 ;Returns a maximum of BMXCOUNT records from the
575 ;VA PATIENT file whose names begin with BMXPAT
576 ;
577 N BMXI,BMXD,BMXC,BMXNODE,BMXDOB
578 ;
579 ; BMXY is passed in by reference. Set it to
580 ;the value of the variable in which we will return our data:
581 S BMXY="^TMP(BMX,"_$J_")"
582 ;
583 ;The first subnode of the data global contains the column header information
584 ;in the form "txxxxxCOLUMN1NAME^txxxxxCOLUMN2NAME"_$C(30)
585 ;where t is the column data type:
586 ; T for text
587 ; I for integer
588 ; N for floating point number
589 ; D for date/time.
590 ;xxxxx is the length of the column in characters.
591 ;
592 S BMXI=0,BMXC=0
593 S ^ TMP(BMX,$J,BMXI)="T00030NAME^T00010SEX^D00020DOB"_$C(30)
594 ;
595 ;You MUST set an error trap:
596 S X="PDERR^BMXRPC6",@^%ZOSF("TRAP")
597 ;
598 ;Strip CR, LF, TAB from BMXCOUNT parameter
599 S BMXCOUNT=$TR(BMXCOUNT,$C(13),"")
600 S BMXCOUNT=$TR(BMXCOUNT,$C(10),"")
601 S BMXCOUNT=$TR(BMXCOUNT,$C(9),"")
602 ;
603 ;Iterate through the global and set the data nodes:
604 S:BMXPAT="" BMXPAT="A"
605 S BMXPAT=$O(^DPT("B",BMXPAT),-1)
606 S BMXD=0
607 F S BMXPAT=$O(^DPT("B",BMXPAT)) Q:BMXPAT="" S BMXD=$O(^DPT("B",BMXPAT,0)) I +BMXD S BMXC=BMXC+1 Q:(BMXCOUNT)BMXC BMXCOUNT) D
608 . Q:'$D(^DPT(BMXD,0))
609 . S BMXI=BMXI+1
610 . S BMXNODE=^DPT(BMXD,0)
611 . ;Convert the DOB from FM date to external form
612 . S Y=$P(BMXNODE,U,3)
613 . I +Y X ^DD("DD")
614 . S BMXDOB=Y
615 . ;The data node fields are in the same order as the column header, i.e. NAME^SEX^DOB
616 . ;and terminated with a $C(30)
617 . S ^ TMP(BMX,$J,BMXI)=$P(BMXNODE,U)_U_$P(BMXNODE,U,2)_U_BMXDOB_$C(30)
618 ;
619 ;After all the data nodes have been set, set the final node to $C(31) to indicate
620 ;the end of the recordset
621 S BMXI=BMXI+1
622 S ^ TMP(BMX,$J,BMXI)=$C(31)
623 Q
624 ;
625 PDERR ;Error trap for PDEMO
626 ;
627 S ^ TMP(BMX,$J,BMXI+1)=$C(31)
628 Q
629 </code>
630 Register as an RPC
631 <para>
632 NAME: BMX DEMO TAG: PDEMO
633 ROUTINE: BMXRPC6 RETURN VALUE TYPE: GLOBAL ARRAY
634 </para>
635 Call using a RemoteSession
636 <code>
637 DataTable demoTable=aRemoteSession.TableFromCommand("BMX DEMO^S^10");
638 </code>
639 </example>
640 <param name="aCommand">The name of the RPC </param>
641 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
642 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
643 <returns>The resulting DataTable</returns>
644 </member>
645 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromCommand(System.String,System.Data.DataSet,System.String,System.String)">
646 <summary>
647 Calling a Custom Remote Procedure call (RPC) registered in VA FileMan’s REMOTE PROCEDURE file that results in a DataTable. You must design your remote procedure’s M routine to build its result its data in the specific format described later in this document.
648 </summary>
649 <param name="aCommand">The co /// </param>
650 <remarks>
651 Normally the AppContext is set once, after logging into the BMX, with a
652 single AppContext for the current applications or specified in every RPC call.
653 </remarks>
654 <example>
655 The VEN namespace is for PCC+ and the example below would be used at the beginning
656 of a PCC+ application.
657 <code>
658 aRemoteSession.AppContext = "VEN RPC";
659 </code>
660 The M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
661 <code>
662 Figure 5 2 shows the M code for a simple remote procedure call (BMX PATIENT DEMO) with two parameters to return a list of patients. See the following example. Note the inclusion of an error trap in the routine; BMXNet RPC routines must contain a functional error trap.
663 PDEMO(BMXY,BMXPAT,BMXCOUNT) ;EP
664 ;This simple RPC demonstrates how to format data
665 ;for the BMXNet ADO.NET data provider
666 ;
667 ;Returns a maximum of BMXCOUNT records from the
668 ;VA PATIENT file whose names begin with BMXPAT
669 ;
670 N BMXI,BMXD,BMXC,BMXNODE,BMXDOB
671 ;
672 ; BMXY is passed in by reference. Set it to
673 ;the value of the variable in which we will return our data:
674 S BMXY="^TMP(BMX,"_$J_")"
675 ;
676 ;The first subnode of the data global contains the column header information
677 ;in the form "txxxxxCOLUMN1NAME^txxxxxCOLUMN2NAME"_$C(30)
678 ;where t is the column data type:
679 ; T for text
680 ; I for integer
681 ; N for floating point number
682 ; D for date/time.
683 ;xxxxx is the length of the column in characters.
684 ;
685 S BMXI=0,BMXC=0
686 S ^ TMP(BMX,$J,BMXI)="T00030NAME^T00010SEX^D00020DOB"_$C(30)
687 ;
688 ;You MUST set an error trap:
689 S X="PDERR^BMXRPC6",@^%ZOSF("TRAP")
690 ;
691 ;Strip CR, LF, TAB from BMXCOUNT parameter
692 S BMXCOUNT=$TR(BMXCOUNT,$C(13),"")
693 S BMXCOUNT=$TR(BMXCOUNT,$C(10),"")
694 S BMXCOUNT=$TR(BMXCOUNT,$C(9),"")
695 ;
696 ;Iterate through the global and set the data nodes:
697 S:BMXPAT="" BMXPAT="A"
698 S BMXPAT=$O(^DPT("B",BMXPAT),-1)
699 S BMXD=0
700 F S BMXPAT=$O(^DPT("B",BMXPAT)) Q:BMXPAT="" S BMXD=$O(^DPT("B",BMXPAT,0)) I +BMXD S BMXC=BMXC+1 Q:(BMXCOUNT)BMXC BMXCOUNT) D
701 . Q:'$D(^DPT(BMXD,0))
702 . S BMXI=BMXI+1
703 . S BMXNODE=^DPT(BMXD,0)
704 . ;Convert the DOB from FM date to external form
705 . S Y=$P(BMXNODE,U,3)
706 . I +Y X ^DD("DD")
707 . S BMXDOB=Y
708 . ;The data node fields are in the same order as the column header, i.e. NAME^SEX^DOB
709 . ;and terminated with a $C(30)
710 . S ^ TMP(BMX,$J,BMXI)=$P(BMXNODE,U)_U_$P(BMXNODE,U,2)_U_BMXDOB_$C(30)
711 ;
712 ;After all the data nodes have been set, set the final node to $C(31) to indicate
713 ;the end of the recordset
714 S BMXI=BMXI+1
715 S ^ TMP(BMX,$J,BMXI)=$C(31)
716 Q
717 ;
718 PDERR ;Error trap for PDEMO
719 ;
720 S ^ TMP(BMX,$J,BMXI+1)=$C(31)
721 Q
722 </code>
723 Register as an RPC
724 <para>
725 NAME: BMX DEMO TAG: PDEMO
726 ROUTINE: BMXRPC6 RETURN VALUE TYPE: GLOBAL ARRAY
727 </para>
728 Call using a RemoteSession
729 <code>
730 DataTable demoTable=aRemoteSession.TableFromCommand("BMX DEMO^S^10");
731 </code>
732 </example>
733 <param name="aCommand">The name of the RPC </param>
734 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
735 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
736 <param name="aContext">The AppContext to set prior to the call</param>
737 <returns>The resulting DataTable</returns>
738 </member>
739 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromSQL(System.String,System.Data.DataSet,System.String,System.String)">
740 <summary>
741 SELECT VA_PATIENT.NAME, VA_PATIENT.SSN, PATIENT.CURRENT_COMMUNITY FROM VA_PATIENT, PATIENT WHERE VA_PATIENT.BMXIEN =* INTERNAL[PATIENT.NAME] AND VA_PATIENT.NAME LIKE 'DEMO%' AND VA_PATIENT.AGE BETWEEN 15 AND 24 SHOWPLAN
742 </summary>
743 <param name="anSqlStatement"></param>
744 <param name="aDataSet"></param>
745 <param name="aTableName"></param>
746 <param name="aContext"></param>
747 <returns></returns>
748 </member>
749 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromRPC(System.String,System.String)">
750 <summary>
751 TabletFromRpc is a double-dispatch method that is used by some developers. Developers create an RPC
752 call the returns a properly format BMX command (custom or BMX SS ADO) that is then transmitted back to RPMS to retrieve the Data Table.
753 </summary>
754 <param name="rpcCommand">The remote procedure call name </param>
755 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
756 <returns>The resulting DataTable</returns>
757 </member>
758 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromRPC(System.String,System.String,System.String)">
759 <summary>
760 TabletFromRpc is a double-dispatch method that is used by some developers. Developers create an RPC
761 call the returns a properly format BMX command (custom or BMX SS ADO) that is then transmitted back to RPMS to retrieve the Data Table.
762 </summary>
763 <param name="rpcCommand">The remote procedure call name </param>
764 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
765 <param name="aContext">The AppContext to set prior to the call</param>
766 <returns>The resulting DataTable</returns>
767 </member>
768 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromRPC(System.String,System.String,System.Data.DataSet,System.String)">
769 <summary>
770 TabletFromRpc is a double-dispatch method that is used by some developers. Developers create an RPC
771 call the returns a properly format BMX command (custom or BMX SS ADO) that is then transmitted back to RPMS to retrieve the Data Table.
772 </summary>
773 <param name="rpcCommand">The remote procedure call name </param>
774 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
775 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
776 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
777 <returns>The resulting DataTable</returns>
778 </member>
779 <member name="M:IndianHealthService.BMXNet.RemoteSession.TableFromRPC(System.String,System.String,System.Data.DataSet,System.String,System.String)">
780 <summary>
781 TabletFromRpc is a double-dispatch method that is used by some developers. Developers create an RPC
782 call the returns a properly format BMX command (custom or BMX SS ADO) that is then transmitted back to RPMS to retrieve the Data Table.
783 </summary>
784 <param name="rpcCommand">The remote procedure call name </param>
785 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
786 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
787 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
788 <param name="aContext">The AppContext to set prior to the call</param>
789 <returns>The resulting DataTable</returns>
790 </member>
791 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromCommand(System.String)">
792 <summary>
793 Same as the corresponding TableFromCommand call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
794 </summary>
795 <param name="aCommand">The name of the RPC </param>
796 <returns>A DataTableFuture</returns>
797 </member>
798 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromCommand(System.String,System.String)">
799 <summary>
800 Same as the corresponding TableFromCommand call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
801 </summary>
802 <param name="aCommand">The name of the RPC </param>
803 <param name="aContext">The AppContext to set prior to the call</param>
804 <returns>A DataTableFuture</returns>
805 </member>
806 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromCommand(System.String,System.Data.DataSet,System.String)">
807 <summary>
808 Same as the corresponding TableFromCommand call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
809 </summary>
810 <param name="aCommand">The name of the RPC </param>
811 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
812 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
813 <returns>A DataTableFuture</returns>
814 </member>
815 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromCommand(System.String,System.Data.DataSet,System.String,System.String)">
816 <summary>
817 Same as the corresponding TableFromCommand call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
818 </summary>
819 <param name="aCommand">The name of the RPC </param>
820 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
821 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
822 <param name="aContext">The AppContext to set prior to the call</param>
823 <returns>A DataTableFuture</returns>
824 </member>
825 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromRPC(System.String,System.String)">
826 <summary>
827 Same as the corresponding TableFromRPC call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
828 </summary>
829 <param name="rpcCommand">The remote procedure call name </param>
830 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
831 <returns>A DataTableFuture</returns>
832 </member>
833 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromRPC(System.String,System.String,System.String)">
834 <summary>
835 Same as the corresponding TableFromRPC call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
836 </summary>
837 <param name="rpcCommand"></param>
838 <param name="rpcParameter"></param>
839 <param name="aContext"></param>
840 <returns>A DataTableFuture</returns>
841 </member>
842 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromRPC(System.String,System.String,System.Data.DataSet,System.String)">
843 <summary>
844 Same as the corresponding TableFromRPC call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
845 </summary>
846 <param name="rpcCommand">The remote procedure call name </param>
847 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
848 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
849 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
850 <returns>A DataTableFuture</returns>
851 </member>
852 <member name="M:IndianHealthService.BMXNet.RemoteSession.AsyncTableFromRPC(System.String,System.String,System.Data.DataSet,System.String,System.String)">
853 <summary>
854 Same as the corresponding TableFromRPC call except a DataTableFuture is returned. See <see cref="T:IndianHealthService.BMXNet.Ado.DataTableFuture" /> on how to use a 'Future
855 </summary>
856 <param name="rpcCommand">The remote procedure call name </param>
857 <param name="rpcParameter">A carrot ^ delimited string of input parameters</param>
858 <param name="aDataSet">The DataSet to be populated with a resulting DataTable named aTableNAme</param>
859 <param name="aTableName">The name of the DataTable in the DataSet to populate or to create</param>
860 <param name="aContext">The AppContext to set prior to the call</param>
861 <returns>A DataTableFuture</returns>
862 </member>
863 <member name="M:IndianHealthService.BMXNet.RemoteSession.IsBmxAdoCommand(System.String)">
864 <summary>
865 Answer True if aString is a standard BMX ADO SS command that uses the BMX ADO SCHEMA files
866 </summary>
867 <remarks>
868 This is mostly used by the framework but exposed for potential use.
869 </remarks>
870 <param name="aString">The command to be examined</param>
871 <returns>True if it complied, otherwise false</returns>
872 </member>
873 <member name="M:IndianHealthService.BMXNet.RemoteSession.Close">
874 <summary>
875 When done with session it should be closed. Once closed it is unusable.
876 </summary>
877 <remarks>Internally the session is a lightweight object and when using multiple sessions internal RPMS connections are pooled . Close sessions when finished</remarks>
878 <remarks>Closing the primary session closes all sessions and shuts down the RPMS connection</remarks>
879 </member>
880 <member name="P:IndianHealthService.BMXNet.RemoteSession.HostAddress">
881 <summary>
882 BMX Broker's host address name or IP Address
883 </summary>
884 </member>
885 <member name="P:IndianHealthService.BMXNet.RemoteSession.User">
886 <summary>
887 Authenticated user associated with this remote session
888 </summary>
889 <example>
890 this.StatusLabel.Text="Logged in: "+ aRemoteSession.User.Name;
891 </example>
892 /// <remarks>
893 If there is a remoteSession user, it will be the same as the localSession User object
894 </remarks>
895 </member>
896 <member name="P:IndianHealthService.BMXNet.RemoteSession.AppContext">
897 <summary>
898 The active AppContext (OPTION) of this remote session.
899 </summary>
900 <remarks>
901 Normally the AppContext is set once, after logging into the BMX, with a
902 single AppContext for the current applications. The AppContext can also be set in every RPC call. If the AppContext
903 is the same as the currently set AppContext, the AppContext will not be re-set.
904 </remarks>
905 <example>
906 The VEN namespace is for PCC+ and the example below would be used at the beginning
907 of a PCC+ application.
908 <code>
909 aRemoteSession.AppContext = "VEN RPC";
910 </code>
911 </example>
912 </member>
913 <member name="P:IndianHealthService.BMXNet.RemoteSession.EventServices">
914 <summary>
915 Access the session's RemoteEventServices service provider to configure receiving
916 remote events and to source new events.
917 </summary>
918 </member>
919 <member name="P:IndianHealthService.BMXNet.RemoteSession.Job">
920 <summary>
921 Job number of server-side Cache/MDB process. Very useful for debugging.
922 </summary>
923 </member>
924 <member name="P:IndianHealthService.BMXNet.RemoteSession.DebugLastRpcSignature">
925 <summary>
926 String describing RPC call and input parameters of last non-DataTable RPC call
927 </summary>
928 </member>
929 <member name="P:IndianHealthService.BMXNet.RemoteSession.RpcResult">
930 <summary>
931 String value of last successful non-DataTable RPC call
932 </summary>
933 </member>
934 <member name="P:IndianHealthService.BMXNet.RemoteSession.DebugLastRpcResult">
935 <summary>
936 String value of last successful non-DataTable RPC call
937 </summary>
938 </member>
939 <member name="P:IndianHealthService.BMXNet.RemoteSession.DebugLastTableResult">
940 <summary>
941 Last DataTable retrieved by non-async calls
942 </summary>
943 </member>
944 <member name="P:IndianHealthService.BMXNet.RemoteSession.ReceiveTimeout">
945 <summary>
946 The networking data receive timeout (in milliseconds). This value can be changed if the developer finds it neccessary
947 to extend the time after login.
948 </summary>
949 <remarks>
950 Only applicable for the WinFramework
951 </remarks>
952 </member>
953 <member name="P:IndianHealthService.BMXNet.RemoteSession.SendTimeout">
954 <summary>
955 The networking data send timeout (in milliseconds). This value can be changed if the developer finds it neccessary
956 to extend the time after login but normally the send timeout should be kept short unless network conditions are poor.
957 </summary>
958 <remarks>
959 Only applicable for the WinFramework
960 </remarks>
961 </member>
962 <member name="P:IndianHealthService.BMXNet.RemoteSession.IsPrimary">
963 <summary>
964 The primary session has the unique in that it holds the authenication privileges for all sessions. If you close the primary session, then all will close.
965 </summary>
966 </member>
967 <member name="T:IndianHealthService.BMXNet.LocalEventService">
968 <summary>
969 Access to local services are access through this interface.
970 </summary>
971 </member>
972 <member name="M:IndianHealthService.BMXNet.LocalEventService.Subscribe(System.String)">
973 <summary>
974 Subscribe to the local event named anEventName.
975 </summary>
976 <remarks>
977 To receive published events, handle the ApplicationEvent. If you explicity subscript
978 to the "REFRESH" event then both RefreshRequested and ApplicationEvent will be triggers.
979 </remarks>
980 <param name="anEventName">The name of the event. This name should be shared and wellknown between many components.</param>
981 </member>
982 <member name="M:IndianHealthService.BMXNet.LocalEventService.HasSubscribers(System.String)">
983 <summary>
984 Checks to see there are any subscriptions for this event.
985 </summary>
986 <remarks>
987 If publishing an event, there is no need to first check if there are subscribers unless there is a
988 performance hit for the application to Trigger the event.
989 </remarks>
990 <param name="anEventName">The name of the event checking to see if it's been subscribed already.</param>
991 <returns></returns>
992 </member>
993 <member name="M:IndianHealthService.BMXNet.LocalEventService.Unsubscribe(System.String)">
994 <summary>
995 Unscribe scribes from the event. It is not mandatory to unsubscribe from this event at the end of
996 your object's lifecycle but you should either subsubscribe or remote the event handler.
997 </summary>
998 <param name="anEventName">The name of the event unsubscribing from.</param>
999 <returns></returns>
1000 </member>
1001 <member name="M:IndianHealthService.BMXNet.LocalEventService.TriggerEvent(System.String,System.String)">
1002 <summary>
1003 To publish an event call TriggerEvent with the event name and optional details. There is no
1004 restriction on what local events that can be triggered. A "REFRESH" event can be broadcast as
1005 well as any other application specific or well-known loal event.
1006 </summary>
1007 <param name="anEventName">The event name. This is normally a well-known event that multiple components used for event-driven communications.</param>
1008 <param name="someDetails">An arbitrary string containing event specific data</param>
1009 </member>
1010 <member name="E:IndianHealthService.BMXNet.LocalEventService.RefreshRequested">
1011 <summary>
1012 This commonly broadcasted event is request to refresh content.
1013 </summary>
1014 <remarks>
1015 In the EHR, this is equivalent to the "REFRESH" event. The WinFramework also uses "REFRESH" as the
1016 event name for triggering a refresh request.
1017 </remarks>
1018 <example>
1019 The following code from Well Child Module's Growth Chart shows registering for the Refresh event
1020 at startup:
1021 <code>
1022 public void Startup()
1023 {
1024 this.LocalSession.EventServices.RefreshRequested += new EventHandler(Session_RefreshRequested);
1025 }
1026
1027 void Session_RefreshRequested(object sender, EventArgs e)
1028 {
1029 this.RefreshAll();
1030 }
1031 </code>
1032
1033 </example>
1034 </member>
1035 <member name="E:IndianHealthService.BMXNet.LocalEventService.ApplicationEvent">
1036 <summary>
1037 Local event subscribers will have this event triggered.
1038 </summary>
1039 <remarks>
1040 The "REFRESH" event is filtered out and is triggered using the RefreshRequested event
1041 </remarks>
1042 <example>
1043 The Well Child Module growth chart displays Height and Weight. When the EHR vitals component adds
1044 new Heights and Weights it publishes a LocalEvent with an EventType PCC*MSR. If the growth chart detects
1045 the Vitals update event it then refreshes the growth chart:
1046 <code>
1047 public void Startup()
1048 {
1049 this.LocalSession.EventServices.ApplicationEvent+= new EventHandler&lt;LocalEventArgs&gt;(Session_ApplicationEvent);
1050 }
1051
1052
1053 void Session_ApplicationEvent(object sender, LocalEventArgs e)
1054 {
1055 if (this.IsVitalsUpdatedEvent(e))
1056 {
1057 this.RefreshAll();
1058 }
1059 }
1060
1061 protected bool IsVitalsUpdatedEvent(LocalEventArgs anEvent)
1062 {
1063 return anEvent.EventType.StartsWith("PCC") &amp;&amp; anEvent.EventType.EndsWith("MSR");
1064 }
1065 </code>
1066 </example>
1067 </member>
1068 <member name="T:IndianHealthService.BMXNet.LocalEventArgs">
1069 <summary>
1070 The event args used by the LocalEventService.
1071 </summary>
1072 </member>
1073 <member name="P:IndianHealthService.BMXNet.LocalEventArgs.EventType">
1074 <summary>
1075 This string corresponds to well-known/shared EventTypes used to identify
1076 different events published and subscribed within a local desktop application (WinFramework)
1077 or in the EHR.
1078 </summary>
1079 <example>
1080 The framewrk implements LocalSession.EventServices.RefreshRequested by sending or receiving
1081 the LocalEvent with the EventType=="REFRESH".
1082 </example>
1083 <example>
1084 The Well Child Module growth chart displays Height and Weight. When the EHR vitals component adds
1085 new Heights and Weights it publishes a LocalEvent with an EventType PCC*MSR. If the growth chart detects
1086 the Vitals update event it then refreshes the growth chart:
1087 <code>
1088 void Session_ApplicationEvent(object sender, LocalEventArgs e)
1089 {
1090 if (this.IsVitalsUpdatedEvent(e))
1091 {
1092 this.RefreshAll();
1093 }
1094 }
1095
1096 protected bool IsVitalsUpdatedEvent(LocalEventArgs anEvent)
1097 {
1098 return anEvent.EventType.StartsWith("PCC") &amp;&amp; anEvent.EventType.EndsWith("MSR");
1099 }
1100 </code>
1101 </example>
1102 </member>
1103 <member name="P:IndianHealthService.BMXNet.LocalEventArgs.Details">
1104 <summary>
1105 This is an optional peice of data with some event-specific details.
1106 </summary>
1107 </member>
1108 <member name="T:IndianHealthService.BMXNet.RemoteSessionPool">
1109 <summary>
1110 <para>
1111 Each BMX connection to RPMS contains a single RemoteSessionPool with at least
1112 one Session, the primary session. Applications that need additional server processes
1113 beyond what can be done with async commands can used the RemoteSessionPool.
1114 </para>
1115 <para>
1116 Access to the RemoteSessionPool is accomplished by implementing the RemoteSessionPoolConsumer
1117 interface on your component/control. Secondary sessions can be opened and closed as they
1118 are needed. If the AvailableSessionCount is zero then a null RemoteSession is returned so it
1119 is recommend to first check the if a pool HasAvailableSessions before an OpenSession() request.
1120 </para>
1121 <para>
1122 RemoteSessionPool high-performance can be achieved by keeping RPMS server jobs alive even after
1123 secondary sessions are closed. The pool will maintain MaxSessions - 1 number of jobs alive on the
1124 server. If the application is finished for awhile needing IdleSessionCount idle jobs, then
1125 TerminateIdleSessions() will release those resources on the server. New jobs will then be created
1126 on demand.
1127 </para>
1128
1129 </summary>
1130 </member>
1131 <member name="M:IndianHealthService.BMXNet.RemoteSessionPool.OpenSession">
1132 <summary>
1133 Open a RemoteSession and answer it. If an idle Session exists, it will be recycled
1134 and answered. Use Close() on the RemoteSession to release this secondary RemoteSession
1135 back to the pool.
1136 </summary>
1137 <returns>A newly created or recycled RemoteSession or null if the number of RemoteSessions has reach the MaxSessions count</returns>
1138 </member>
1139 <member name="M:IndianHealthService.BMXNet.RemoteSessionPool.OpenSession(IndianHealthService.BMXNet.Log)">
1140 <summary>
1141 Open a new RemoteSession and answer it. If an idle Session exists, it will be recycled
1142 and answered. Use Close() on the RemoteSession to release this secondary RemoteSession
1143 back to the pool. An implementation of Log can be included to trace RPC execution.
1144 </summary>
1145 <remarks>
1146 Logging is not heavily used in BMXNET40
1147 </remarks>
1148 <returns>A newly created or recycled RemoteSession or null if the number of RemoteSessions has reach the MaxSessions count</returns>
1149 </member>
1150 <member name="P:IndianHealthService.BMXNet.RemoteSessionPool.HasAvailableSession">
1151 <summary>
1152 True if another secondary session can be opened.
1153 </summary>
1154 <remarks>
1155 For this version of BMX, the EHR does not support secondary RemoteSessions and this
1156 method always returns false. If possible, develop your software using the API so when
1157 secondary RemoteSessions are supported your application will work.
1158 </remarks>
1159 </member>
1160 <member name="P:IndianHealthService.BMXNet.RemoteSessionPool.AvailableSessionCount">
1161 <summary>
1162 The number of additional secondary RemoteSessions that can be opened.
1163 </summary>
1164 </member>
1165 <member name="P:IndianHealthService.BMXNet.RemoteSessionPool.MaxSessions">
1166 <summary>
1167 The maximum number of RemoteSessions than can be opened
1168 </summary>
1169 </member>
1170 <member name="M:IndianHealthService.BMXNet.Services.BMXRemoteSessionPool.TerminateIdleSessions">
1171 <summary>
1172 Note: idle session connections are really being terminated. We
1173 do not re-use BMXNetRemoteSession objects that wrap the session connection
1174 </summary>
1175 </member>
1176 <member name="T:IndianHealthService.BMXNet.Ado.DataTableFutureEventArgs">
1177 <summary>
1178 The event args for all DataTableFuture events.
1179 </summary>
1180 <remarks>
1181 The DataTableFuture events are trigger in the non-UI thread and will break any application that is not managing it's
1182 UI calls properly. If implementing a basic GUI-based application, it's recommended to set the InvokedControl on
1183 every DataTableFuture you created.
1184 This EventArgs provides the future, which is the same instance created when the Async call was made.
1185 </remarks>
1186 </member>
1187 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFutureEventArgs.Future">
1188 <summary>
1189 The future object that can be used to determine the state of the future, cancel the future, and perform
1190 some post future processing.
1191 </summary>
1192 </member>
1193 <member name="T:IndianHealthService.BMXNet.BMXNetException">
1194 <summary>
1195 This simple exception wrapper is used for Exceptions thrown by umknown sources and
1196 by the BMX library. Check the InnerException for details.
1197 </summary>
1198 </member>
1199 <member name="T:IndianHealthService.BMXNet.Ado.BMXNetDataReader">
1200 <summary>
1201 BMXNET implementaiton of IDataReader. This class can be used like
1202 any ADO.NET IDataReader implementation or the suggested RemoteSession API's can
1203 be used.
1204
1205 See ADO.NET documentation for details of this class.
1206 </summary>
1207 </member>
1208 <member name="T:IndianHealthService.BMXNet.RemoteEventService">
1209 <summary>
1210 All async communications with RPMS is performed through the RemoteEventService which
1211 is found by calling aRemoteSession.EventServices.
1212 </summary>
1213 <remarks>
1214 <list>
1215 <para>By default remote events are asynchronous and are not on the UI thread. The development
1216 must handed the events propertly and if interacting with a user interface control must use
1217 Invoke(). As a convinenence, InvokedControl can be set to any non-disposed Control and the
1218 event service is use Invoke() so that the event is triggered on the UI thread</para>
1219 <para>The Event timer, IsEventPollingEnabled and EventPollingInterval, is used by the Async RPC calls
1220 and is automattically turned on with IsEventPollingEnabled. If the developer turns on polling or
1221 changes the EventPollingInterval to be a long period, then the Async RPC calls will not respond in
1222 a timely manner if at all.
1223 </para>
1224 </list>
1225 </remarks>
1226 </member>
1227 <member name="M:IndianHealthService.BMXNet.RemoteEventService.Subscribe(System.String)">
1228 <summary>
1229 Subscribe to an event named anEventType. These events are trigger exclusivley by other BMXNet remote services and
1230 travel from client-to-server-to-client. Once subscribed, the RemoteSession will poll based on the EventPollingInterval to
1231 see if a server-side event is waiting to be triggered on the client.
1232 </summary>
1233 <param name="anEventType">The name of the event to subscribe to</param>
1234 <returns>1 if successful, otherwise it's an error. Refer to KIDS source for error codes.</returns>
1235 </member>
1236 <member name="M:IndianHealthService.BMXNet.RemoteEventService.Unsubscribe(System.String)">
1237 <summary>
1238 Unsubscribe from an event named anEventType. Once unsubscribed, published events named anEventType will no longer
1239 trigger an event for this RemoteSession.
1240 </summary>
1241 <param name="anEventType">The name of the event to unsubscribe from</param>
1242 <returns>1 if successful, otherwise it's an error. Refer to KIDS source for error codes.</returns>
1243 </member>
1244 <member name="M:IndianHealthService.BMXNet.RemoteEventService.TriggerEvent(System.String,System.String,System.Boolean)">
1245 <summary>
1246 Access to a RemoteEventService also allows you to publish your own events. Publishing is done through design and
1247 documentation to notify other developers what events you will trigger. An event is published, or triggered, by using TriggerEvent
1248 with the name of the event, an optional event specific string with data, and whether or not the publisher, if subsubscribed,
1249 wants the event published to them.
1250 </summary>
1251 <param name="anEventType">Name of the event to publish</param>
1252 <param name="aParameter">An optional string with event specific data</param>
1253 <param name="raiseBack">Set to True if the publisher of anEventType, that is also a subscriber to anEventType,
1254 also wants the event to be triggered back to them</param>
1255 <returns></returns>
1256 </member>
1257 <member name="E:IndianHealthService.BMXNet.RemoteEventService.RpmsEvent">
1258 <summary>
1259 This event is triggered when an event named anEventType is published and the
1260 receiver has a subscription. Remember that this event is not on the UI-thread unless InvokedControl is properly set.
1261 </summary>
1262 </member>
1263 <member name="E:IndianHealthService.BMXNet.RemoteEventService.TimerEvent">
1264 <summary>
1265 This event is triggered every time the event timer is triggered, based on the EventPollingInterval.
1266 Remember that this event is not on the UI-thread unless InvokedControl is properly set.
1267 </summary>
1268 <remarks>
1269 Respond quickly to this event.
1270 </remarks>
1271 </member>
1272 <member name="P:IndianHealthService.BMXNet.RemoteEventService.InvokedControl">
1273 <summary>
1274 Set InvokedControl to a form or control of your WinForm application or EHR/VueCentric component that
1275 will live the lifetime of your RemoteSession. The RemoteEventServices will Invoke() on the InvokedControl
1276 to ensure all events are triggered on the UI thread.
1277 </summary>
1278 </member>
1279 <member name="P:IndianHealthService.BMXNet.RemoteEventService.IsEventPollingEnabled">
1280 <summary>
1281 EventPolling is used for RemoteService events and Async RPC calls. IsEventPollingEnabled is used
1282 to turn polling on and off: True for on and False for off. The Async RPC framework and remote event service
1283 needs polling to be turned on.
1284 </summary>
1285 <remarks>
1286 If Async RPC's or remote events are not working debug the RemoteEventService to verify polling is enabled
1287 and configured.
1288 </remarks>
1289 <example>
1290 If using Async RPC or remote service events activate and configure the timer when your applications starts
1291 <code>
1292 ... //Poll every 10000 ms, or 10 seconds
1293 this.RemoteSession.EventServices.EventPollingInterval=10000;
1294 this.RemoteSession.EventServices.IsEventPollingEnabled=True;
1295 ...
1296 ... //Perhaps in another part of your application you have a small active Chat Window
1297 ... //Increase the frequency of polling by decreasing the EventPollingInterval to every 2 seconds
1298 this.RemoteSession.EventServices.EventPollingInterval=2000;
1299 </code>
1300 </example>
1301 </member>
1302 <member name="P:IndianHealthService.BMXNet.RemoteEventService.EventPollingInterval">
1303 <summary>
1304 The number of milliseconds (ms) to wait before polling. If a polling event is currently being processed
1305 when a second event is trigger, the second event is skipped. It's recommended to keep this interval at
1306 5000 (5 seconds) or higher.
1307 </summary>
1308 </member>
1309 <member name="T:IndianHealthService.BMXNet.Model.ContextChangedArgs">
1310 <summary>
1311 The argument to the ContextChanged method. This event has methods that allow you
1312 to detect which aspects of the context have changed and what the new context is.
1313 </summary>
1314 </member>
1315 <member name="P:IndianHealthService.BMXNet.Model.ContextChangedArgs.IsVisitChange">
1316 <summary>
1317 Answer if the visit had changed. When the patient changes and a visit had been selected, the
1318 visit will change to null.
1319 </summary>
1320 <example>
1321 In the following example, the first tab of a notebook is selected whenever the patient changes.
1322 <code>
1323 void Context_Changed(object sender, ContextChangedArgs e)
1324 {
1325 if (e.IsPatientChange)
1326 {
1327 this.SelectedIndex = 1;
1328 this.RefreshAll();
1329 }
1330 }
1331 </code>
1332 </example>
1333 </member>
1334 <member name="P:IndianHealthService.BMXNet.Model.ContextChangedArgs.IsPatientChange">
1335 <summary>
1336 Answer if the patient had changed.
1337 </summary>
1338 </member>
1339 <member name="P:IndianHealthService.BMXNet.Model.ContextChangedArgs.AfterContext">
1340 <summary>
1341 The current state of the context. This context object is that same instance used for the
1342 life of the LocalSession
1343 </summary>
1344 </member>
1345 <member name="T:IndianHealthService.BMXNet.Model.Division">
1346 <summary>
1347 This object represents the RPMS Division.
1348 </summary>
1349 <remarks>
1350 All BMX Broker connections must have an estalibshed Division</remarks>
1351 </member>
1352 <member name="T:IndianHealthService.BMXNet.BMXNetBroker">
1353 <summary>
1354 BMXNetBroker implements low-level socket connectivity to RPMS databases.
1355 The VA RPC Broker must be running on the RPMS server in order for
1356 BMXNetBroker to connect.
1357 </summary>
1358 </member>
1359 <member name="T:IndianHealthService.BMXNet.Net.EncryptionProvider">
1360 <summary>
1361 The crypto used to implement the socket-based BMXNET Broker. Any crypto can be used if a new
1362 .NET EncryptionProvider is written and a corresponding modification to the RPMS-side is done.
1363 </summary>
1364 <remarks>
1365 An quick experiment can be done by implementing the following ClearText EncryptionProvider and
1366 modifying the RPMS-side encryption routines to do nothing.
1367 <code>
1368 public class ClearText : EncryptionProvider
1369 {
1370 public string Encrypt(string aString)
1371 {
1372 return aString;
1373 }
1374
1375 public string Decrypt(string aString)
1376 {
1377 return aString;
1378 }
1379 }
1380 </code>
1381 </remarks>
1382 </member>
1383 <member name="M:IndianHealthService.BMXNet.Net.EncryptionProvider.Encrypt(System.String)">
1384 <summary>
1385 Encrypt aString
1386 </summary>
1387 <param name="aString">The string to be encrypted</param>
1388 <returns>An ASCII encrypted string</returns>
1389 </member>
1390 <member name="M:IndianHealthService.BMXNet.Net.EncryptionProvider.Decrypt(System.String)">
1391 <summary>
1392 Decrypt aString
1393 </summary>
1394 <param name="aString">The ASCII string to be decrypted</param>
1395 <returns>An ASCII decrypted string</returns>
1396 </member>
1397 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.PieceLength(System.String,System.String)">
1398 <summary>
1399 Corresponds to M's $L(STRING,DELIMITER)
1400 </summary>
1401 <param name="sInput"></param>
1402 <param name="sDelim"></param>
1403 <returns></returns>
1404 </member>
1405 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.Piece(System.String,System.String,System.Int32)">
1406 <summary>
1407 Corresponds to M's $$Piece function
1408 </summary>
1409 <param name="sInput"></param>
1410 <param name="sDelim"></param>
1411 <param name="nNumber"></param>
1412 <returns></returns>
1413 </member>
1414 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.ADEBLDPadString(System.String)">
1415 <summary>
1416 Given strInput = "13" builds "013" if nLength = 3. Default for nLength is 3.
1417 </summary>
1418 <param name="strInput"></param>
1419 <returns></returns>
1420 </member>
1421 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.ADEBLDPadString(System.String,System.Int32)">
1422 <summary>
1423 Given strInput = "13" builds "013" if nLength = 3 Default for nLength is 3.
1424 </summary>
1425 <param name="strInput"></param>
1426 <param name="nLength">Default = 3</param>
1427 <returns></returns>
1428 </member>
1429 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.ADEBLDB(System.String)">
1430 <summary>
1431 Concatenates zero-padded length of sInput to sInput
1432 Given "Hello" returns "004Hello"
1433 If nSize = 5, returns "00004Hello"
1434 Default for nSize is 3.
1435 </summary>
1436 <param name="sInput"></param>
1437 <returns></returns>
1438 </member>
1439 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.ADEBLDB(System.String,System.Int32)">
1440 <summary>
1441 Concatenates zero-padded length of sInput to sInput
1442 Given "Hello" returns "004Hello"
1443 If nSize = 5, returns "00004Hello"
1444 Default for nSize is 3.
1445 </summary>
1446 <param name="sInput"></param>
1447 <param name="nSize"></param>
1448 <returns></returns>
1449 </member>
1450 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.ADEBHDR(System.String,System.String,System.String,System.String)">
1451 <summary>
1452 Build protocol header
1453 </summary>
1454 <param name="sWKID"></param>
1455 <param name="sWINH"></param>
1456 <param name="sPRCH"></param>
1457 <param name="sWISH"></param>
1458 <returns></returns>
1459 </member>
1460 <member name="M:IndianHealthService.BMXNet.BMXNetBroker.FindSubString(System.String,System.String)">
1461 <summary>
1462 Returns index of first instance of sSubString in sString.
1463 If sSubString not found, returns -1.
1464 </summary>
1465 <param name="sString"></param>
1466 <param name="sSubString"></param>
1467 <returns></returns>
1468 </member>
1469 <member name="T:IndianHealthService.BMXNet.Model.Patient">
1470 <summary>
1471 The Patient object is a read-only object used for patient context.
1472 </summary>
1473 </member>
1474 <member name="P:IndianHealthService.BMXNet.Model.Patient.Ien">
1475 <summary>
1476 The RPMS intenal entry number for the patient
1477 </summary>
1478 </member>
1479 <member name="P:IndianHealthService.BMXNet.Model.Patient.HealthRecordNumber">
1480 <summary>
1481 The RPMS HRN or chart number
1482 </summary>
1483 </member>
1484 <member name="P:IndianHealthService.BMXNet.Model.Patient.PatientName">
1485 <summary>
1486 The default displayable version of the patient's name
1487 </summary>
1488 </member>
1489 <member name="P:IndianHealthService.BMXNet.Model.Patient.AdmitDate">
1490 <summary>
1491 The current admission date of the user. This is a nullable bool for the cases that
1492 the patient is not currently admitted.
1493 </summary>
1494 </member>
1495 <member name="P:IndianHealthService.BMXNet.Model.Patient.Age">
1496 <summary>
1497 The current age of the patient.
1498 </summary>
1499 </member>
1500 <member name="P:IndianHealthService.BMXNet.Model.Patient.Dob">
1501 <summary>
1502 If knownn, the DOB of the patient
1503 </summary>
1504 </member>
1505 <member name="P:IndianHealthService.BMXNet.Model.Patient.PrimaryProvider">
1506 <summary>
1507 The displayable name (external value) of the patient's primary provider.
1508 </summary>
1509 </member>
1510 <member name="P:IndianHealthService.BMXNet.Model.Patient.Sex">
1511 <summary>
1512 The sex of the patient
1513 </summary>
1514 </member>
1515 <member name="P:IndianHealthService.BMXNet.Model.Patient.Ssn">
1516 <summary>
1517 The patient's SSN or an abbrievation of the SSN
1518 </summary>
1519 </member>
1520 <member name="T:IndianHealthService.BMXNet.Ado.DataTableFuture">
1521 <summary>
1522 DataTableFutures are created synchrounously when Async calls are made on a RemoteSession.
1523 A DataTabelFuture is used to manage each async call and has a variety of methods to support
1524 the relativelty long and dynamic lifecycle and an Async call.
1525 </summary>
1526 <remarks>
1527 Beware that all return communications are not on the UI thread unless an InvokedControl
1528 is specify.
1529 </remarks>
1530 </member>
1531 <member name="M:IndianHealthService.BMXNet.Ado.DataTableFuture.Cancel">
1532 <summary>
1533 Method to cancel the Async call. This does not stop the server-side processing. The Aborted event
1534 will be called immediately.
1535 </summary>
1536 </member>
1537 <member name="M:IndianHealthService.BMXNet.Ado.DataTableFuture.PostFetch">
1538 <summary>
1539 If IsAutoFetchEnabled is false, then the results must be fetched synchrounously useding PostFetch().
1540 Call PostFetch() once and check if HasData is true. If not true, there is was error related to the
1541 async call.
1542 </summary>
1543 </member>
1544 <member name="E:IndianHealthService.BMXNet.Ado.DataTableFuture.Returned">
1545 <summary>
1546 Triggered with the async returns, see DataTableFutureEventArgs to know if there
1547 is a result waiting. It's very common to hook the Returned event after each Async call and
1548 then unhook it when the Returned or Aborted calls return.
1549 </summary>
1550 </member>
1551 <!-- Badly formed XML comment ignored for member "E:IndianHealthService.BMXNet.Ado.DataTableFuture.Aborted" -->
1552 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.InvokedControl">
1553 If the InvokedControl is set to a valid Form or Control object (non-displosed), the
1554 DataTabletFuture will trigger events on the UI thread using Invoke()
1555 </member>
1556 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.IsAutoFetchEnabled">
1557 <summary>
1558 If set to true the result will be fetched before the Returned event is called, otherwise
1559 the Returned event will be triggered and the application code needs to call PostFetch() to retrieve
1560 the result. True by default.
1561 </summary>
1562 </member>
1563 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.ErrorException">
1564 <summary>
1565 Access to any exceptions that occur during Async call.
1566 </summary>
1567 </member>
1568 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.Result">
1569 <summary>
1570 The result table if any, or null.
1571 </summary>
1572 </member>
1573 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.WasCancelled">
1574 <summary>
1575 Answer true if canceled. It's common that a dialog would allow the user to cancel the
1576 Async call and the Dialog that is holding on the the Future will cancel the Future. Cancelling
1577 the Future does not stop the server-side processing but when the server returns nothing will happen.
1578 </summary>
1579 </member>
1580 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.HasTimedOut">
1581 <summary>
1582 Answer true if the Async call has timeed-out (a time-based version of Cancel)
1583 </summary>
1584 </member>
1585 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.HasReturned">
1586 <summary>
1587 Answer true if the Async call has completed on the server and that a result is ready.
1588 </summary>
1589 </member>
1590 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.HasData">
1591 <summary>
1592 Answer true if the data has been fetched from the server and is ready to be used by the application.
1593 </summary>
1594 </member>
1595 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.PresentTime">
1596 <summary>
1597 The time the Future was created.
1598 </summary>
1599 </member>
1600 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.FutureTime">
1601 <summary>
1602 The time the async call returned (the future)
1603 </summary>
1604 </member>
1605 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.WaitTime">
1606 <summary>
1607 How long in milliseconds the Async call took to complete.
1608 </summary>
1609 </member>
1610 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.MaxWaitTime">
1611 <summary>
1612 Number of seconds to wait for an async response before returning without a response.
1613 </summary>
1614 </member>
1615 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.ResultDataSet">
1616 <summary>
1617 The data set the result data table is in.
1618 </summary>
1619 </member>
1620 <member name="P:IndianHealthService.BMXNet.Ado.DataTableFuture.ResultAppContext">
1621 <summary>
1622 The AppContext that the async call was made with
1623 </summary>
1624 </member>
1625 <member name="T:IndianHealthService.BMXNet.Ado.BMXNetTransaction">
1626 <summary>
1627 BMXNET implementaiton of IDbTransaction. This class can be used like
1628 any ADO.NET IDbTransaction implementation or the suggested RemoteSession API's can
1629 be used.
1630
1631 See ADO.NET documentation for details of this class.
1632 </summary>
1633 </member>
1634 <member name="T:IndianHealthService.BMXNet.Services.BMXNetRemoteSession">
1635 <summary>
1636 Extends BMX functionality for easier development and debugging.
1637 Copied from Component Framework project IndianHealthService.Xo.Framework.Rpms
1638 </summary>
1639 </member>
1640 <member name="T:IndianHealthService.BMXNet.RemoteSessionPoolConsumer">
1641 <summary>
1642 This interface is used on an UserControl-based components that are designed to work both inside
1643 the EHR and inside a WinForm application. The "Consumer" interfaces basically tell Frameworks
1644 that "Consumer" implementating objects need an specific service.
1645 </summary>
1646 <remarks>
1647 This interface is rarely used but is essential for application needing multiple server-side
1648 jobs.
1649 </remarks>
1650 </member>
1651 <member name="P:IndianHealthService.BMXNet.RemoteSessionPoolConsumer.RemoteSessionPool">
1652 <summary>
1653 This property will be set with the RemoteSessionPool that is used by the Framework.
1654 </summary>
1655 <remarks>
1656 If you only need one RemoteSession, the most common usage pattern, you do not need the RemoteSessionPoolConsumer
1657 and should use <see cref="T:IndianHealthService.BMXNet.RemoteSessionConsumer" />.
1658 </remarks>
1659 </member>
1660 <member name="T:IndianHealthService.BMXNet.M">
1661 <summary>
1662 Common M[umps] related function libraries implemented with static members.
1663 </summary>
1664 </member>
1665 <member name="M:IndianHealthService.BMXNet.M.PieceLength(System.String,System.String)">
1666 <summary>
1667 M-like utility method to answer the number of pieces limited by aDelimiter. Corresponds to M's $L(STRING,DELIMITER)
1668 </summary>
1669 <param name="thePieces">Delimited input string e.g. one^two^three</param>
1670 <param name="aDelimiter">Delimiter character or string, commonly ~ ^ or |</param>
1671 <returns>Count of pieces in thePieces delimited by aDelimiter</returns>
1672 <example>
1673 <code>
1674 String team="DOE,JOHN^SMITH, PETER^JONES, SALLY";
1675 if (M.PieceLength(team,"~") &gt;=5 ) {
1676 this.PlayBasketBall();
1677 }
1678 else
1679 {
1680 this.PlayTrackAndField();
1681 }
1682 </code>
1683 </example>
1684 </member>
1685 <member name="M:IndianHealthService.BMXNet.M.Piece(System.String,System.String,System.Int32)">
1686 <summary>
1687 M-like utility method to answer the piece at a 1-based offset. Corresponds to M's $$Piece function
1688 </summary>
1689 <param name="thePieces">Delimited input string e.g. one^two^three</param>
1690 <param name="aDelimiter">Delimiter character or string, commonly ~ ^ or |</param>
1691 <param name="nthPiece">The 1-based index of the piece</param>
1692 <returns>The piece at the index, or an empty string if the index is higher than the explicit number of pieces</returns>
1693 <example>
1694 <code>
1695 String demographics="DOE,JOHN~555-55-5555~34~M";
1696 int age=0;
1697 if (int.TryParse(M.Piece(demographics,"~",3), out age)) {
1698 System.Console.Writeln(M.Piece(demographics,"~",1)+" is "+ (age &gt;= 18 ) ? "an adult" : "a child");
1699 }
1700 </code>
1701 </example>
1702 </member>
1703 <member name="M:IndianHealthService.BMXNet.M.Piece(System.String,System.String,System.Int32,System.Int32)">
1704 <summary>
1705 M-like utility method to answer a delimited string of pieces between two 1-based offsets
1706 </summary>
1707 <param name="thePieces">Delimited input string e.g. one^two^three</param>
1708 <param name="aDelimiter">Delimiter character or string, commonly ~ ^ or |</param>
1709 <param name="nthStart">Starting 1-based index of the pieces to copy from</param>
1710 <param name="mthEnd">Ending 1-based index of the pieces to copy to</param>
1711 <returns>The delimited string from start to end, including delimitered blanks for indexes higher than the explicit number of pieces</returns>
1712 </member>
1713 <member name="M:IndianHealthService.BMXNet.M.DateToFileMan(System.DateTime)">
1714 <summary>
1715 M-like utility method to convert from a DateTime to the FileMan data/time format
1716 </summary>
1717 <param name="aDateTime">DateTime to convert</param>
1718 <returns>String representing aDateTime in FileMan format</returns>
1719 <exception cref="T:System.Exception">Exception thrown in conversion fails</exception>
1720 </member>
1721 <member name="M:IndianHealthService.BMXNet.M.DateFromFileMan(System.String)">
1722 <summary>
1723 M-like utility method to convert from a FileMan date/time formatted String to a .NET DateTime
1724 </summary>
1725 <param name="aString">date/time formated FileMan string</param>
1726 <returns>.NET DateTime object from parsing input FileMan string</returns>
1727 <exception cref="T:System.Exception">Exception thrown in conversion fails</exception>
1728 </member>
1729 <member name="T:IndianHealthService.BMXNet.Ado.BMXNetCommand">
1730 <summary>
1731 BMXNET implementaiton of DbCommand. This class can be used like
1732 any ADO.NET DbCommand implementation or the suggested RemoteSession API's can
1733 be used.
1734
1735 See ADO.NET documentation for details of this class.
1736 </summary>
1737 </member>
1738 <member name="T:IndianHealthService.BMXNet.Ado.BMXNetDataAdapter">
1739 <summary>
1740 BMXNET implementaiton of DbDataAdaptor. This class can be used like
1741 any ADO.NET DbDataAdaptor implementation or the suggested RemoteSession API's can
1742 be used.
1743
1744 See ADO.NET documentation for details of this class.
1745 </summary>
1746 </member>
1747 <member name="T:IndianHealthService.BMXNet.Model.Visit">
1748 <summary>
1749 The visit object is used to determine the current context of the application. The key wrinkle in the visit
1750 class relates to create a common interface for EHR/VueCentric and WinForm applications. The EHR/VueCentric supports
1751 visit stubs by default and the WinFramework does not. If the consumer of the visit object is going to use
1752 it to make changes to RPMS then the visit can not be a stub and must the visit must be created.
1753 <example>
1754 In either EHR or WinForm applications, always check for a stub before you call RPC's to update RPMS. If you
1755 do not, the visit may not have been created on RPMS and the visit id will be null.
1756 <code>
1757 if (this.Context.HasVisit)
1758 {
1759 if (this.Context.Visit.IsStub &amp;&amp; !this.Context.Visit.Create())
1760 {
1761 MessageBox.Show("Unable to establish visit.","Editing Disabled");
1762 return;
1763 }
1764
1765 //Call RPC to update RPMS with current visit ien
1766 }
1767 </code>
1768 </example>
1769 </summary>
1770 </member>
1771 <member name="M:IndianHealthService.BMXNet.Model.Visit.Create">
1772 <summary>
1773 If the receiver is a stub, then call Create() to create a visit in RPMS and
1774 then new data can be added in the context of a created visit. In the WinForm
1775 edition, this all Visits are created to the method will do nothing yet you should
1776 call it to be consistent.
1777 </summary>
1778 <returns>True if the visit has been created (always True for WinForm)</returns>
1779 </member>
1780 <member name="M:IndianHealthService.BMXNet.Model.Visit.Create(System.Boolean)">
1781 <summary>
1782 In the EHR some visits need user interaction to change from a stub to a created visit.
1783 </summary>
1784 <param name="showGuiToCreateVisit"></param>
1785 <returns></returns>
1786 </member>
1787 <member name="P:IndianHealthService.BMXNet.Model.Visit.Ien">
1788 <summary>
1789 This will be non-null if the visit has been created in RPMS, otherwise
1790 it is null and the receiver in considered a stub.
1791 </summary>
1792 </member>
1793 <member name="P:IndianHealthService.BMXNet.Model.Visit.ProviderName">
1794 <summary>
1795 Primary provider of the visit
1796 </summary>
1797 </member>
1798 <member name="P:IndianHealthService.BMXNet.Model.Visit.LocationName">
1799 <summary>
1800 Hospital Location of the visit
1801 </summary>
1802 </member>
1803 <member name="P:IndianHealthService.BMXNet.Model.Visit.DateTime">
1804 <summary>
1805 Official timetamp of the visit
1806 </summary>
1807 </member>
1808 <member name="P:IndianHealthService.BMXNet.Model.Visit.IsStub">
1809 <summary>
1810 If a visit is transient in the client memory space, it is a stub.
1811 In the EHR visits are often created as stubs (Create New is not checked)
1812 Once data is entered, the visit is created.
1813 The WinForm only supports full created visits therefore IsStub is always false
1814 </summary>
1815 </member>
1816 <member name="P:IndianHealthService.BMXNet.Model.Visit.IsFutureAppointment">
1817 <summary>
1818 Answer true if a future appointment.
1819 </summary>
1820 </member>
1821 <member name="P:IndianHealthService.BMXNet.Model.Visit.IsLocked">
1822 <summary>
1823 If a visit can not be added to if it is locked. In the WinForm edition, all
1824 visits answered by BMX FIND VISIT are considered unlocked.
1825 </summary>
1826 </member>
1827 <member name="T:IndianHealthService.BMXNet.Model.Context">
1828 <summary>
1829 Context interface provides the current status and related events of the
1830 patient/visit context within an application, or the EHR.
1831 </summary>
1832 <remarks>
1833 Application developers use the WinFramework and ChangableContext to modify the context. Within
1834 the EHR/VueCentric framework, the Context interface is a basic wrapper of some of the EHR facilties.
1835 </remarks>
1836 </member>
1837 <member name="E:IndianHealthService.BMXNet.Model.Context.Changed">
1838 <summary>
1839 The most important aspect of the Context interface is the Changed event that allows
1840 the receiver of the event know when the user is changing patient and visit. Applications
1841 need to change the data displayed to represent the currnet Patient and optional visit. The
1842 Changed event occurs after there is confirmation that the change has not been vetoed or the
1843 veto has been overridden. See Changing event.
1844 </summary>
1845 <example>
1846 Users of the Context object should hook the event ASAP. The
1847 <code>
1848 public void Startup()
1849 {
1850 if (this.Context != null)
1851 {
1852 this.Context.Changed += new EventHandler&lt;ContextChangedArgs&gt;(Context_Changed);
1853 }
1854 </code>
1855 The context can be obtained if your control or component is a LocalSessionConsumer and if so then
1856 define the Context property as follows:
1857 <code>
1858 public Context Context
1859 {
1860 get { return this.LocalSession == null ? null : this.LocalSession.Context; }
1861 }
1862 </code>
1863 </example>
1864 </member>
1865 <member name="E:IndianHealthService.BMXNet.Model.Context.Changing">
1866 <summary>
1867 When the current patient or visit is being changed by the user, every subscriber to the
1868 Changing method has the option to "Veto" the event by Cancelling it:
1869 <code>
1870 public void Startup()
1871 {
1872 if (this.Context != null)
1873 {
1874 this.Context.Changed += new EventHandler&lt;ContextChangedArgs&gt;(Context_Changed);
1875 this.Context.Changing += new EventHandler&lt;ContextChangedArgs&gt;(Context_Changing);
1876 }
1877
1878 void Context_Changing(object sender, ContextChangingArgs e)
1879 {
1880 e.Cancel = needToFinishSomethingElseBeforeChangingContext;
1881 }
1882 </code>
1883 However, a Veto is like a U.S. presential Veto and that it can be overridden. The WinFramework
1884 or EHR can override any Veto so all components (even if they veto changes) must be prepared to
1885 have the context changed at anytime.
1886 </summary>
1887 </member>
1888 <member name="P:IndianHealthService.BMXNet.Model.Context.Patient">
1889 <summary>
1890 The currently selected patient, or null. The value of the current patient is also in <seealso cref="T:IndianHealthService.BMXNet.Model.ContextChangedArgs" />.
1891 The concept is that the context is set by external forces, ususally the user. Therefore there is no
1892 way to set the patient here.
1893 </summary>
1894 <remarks>
1895 Remember to refresh your user interface based on the new selection to the information your application displays
1896 or edits is that same as the current context.
1897 </remarks>
1898 </member>
1899 <member name="P:IndianHealthService.BMXNet.Model.Context.Visit">
1900 <summary>
1901 The currently selected visit, or null. The value of the current visit is also in ContextChangedArgs.
1902 The concept is that the context is set by external forces, ususally the user. Therefore there is no
1903 way to set the visit here.
1904 </summary>
1905 <remarks>
1906 In the EHR, a visit stub can be created. A visit stub does not create a visit in RPMS until some data
1907 is entered. IsVisit will return true for a visit stub but is it your responbilty to use HasUnlockedVisit or IsStub
1908 on the Visit to make sure you have a visit to edit with.
1909 Remember to refresh your user interface based on the new selection to the information your application displays
1910 or edits is that same as the current context.
1911 </remarks>
1912 </member>
1913 <member name="P:IndianHealthService.BMXNet.Model.Context.HasPatient">
1914 <summary>
1915 Answer true/false if there is a patient currently selected. This is a convenience method.
1916 </summary>
1917 </member>
1918 <member name="P:IndianHealthService.BMXNet.Model.Context.HasVisit">
1919 <summary>
1920 Answer true/false if there is a patient currently selected. This is a convenience method.
1921 </summary>
1922 </member>
1923 <member name="P:IndianHealthService.BMXNet.Model.Context.HasUnlockedVisit">
1924 <summary>
1925 Answer true if there is a visit and if it is unlocked. The EHR/VueCentric has a notion of the
1926 locked visit, a visit that can no longer be visited. The EHR/VueCetnric has has a visit stub, a visit that
1927 has been create on the desktop but not in RPMS. If a visit is a visit stub, it is not considered unlocked.
1928 </summary>
1929 </member>
1930 <member name="P:IndianHealthService.BMXNet.Model.Context.User">
1931 <summary>
1932 The user that established the connection to BMX either through the WinFramework dialogs or access/verify codes, or
1933 a user established through attach tho the EHR/VueCentric with the EhrFramework.
1934 </summary>
1935 </member>
1936 <member name="T:IndianHealthService.BMXNet.RemoteSessionConsumer">
1937 <summary>
1938 This interface is used on an UserControl-based components that are designed to work both inside
1939 the EHR and inside a WinForm application. The "Consumer" interfaces basically tell Frameworks
1940 that "Consumer" implementating objects need an specific service.
1941 </summary>
1942 <remarks>
1943 If your component doesn't implement RemoteConsumer you can still user your component. Implementing
1944 RemoteConsumer is very common and is essential for communicating with the RPMS server.
1945 </remarks>
1946 </member>
1947 <member name="P:IndianHealthService.BMXNet.RemoteSessionConsumer.RemoteSession">
1948 <summary>
1949 This property will be set with the primary RemoteSession that the interface implementer can use for communicating
1950 with the RPMS server.
1951 </summary>
1952 <remarks>
1953 If also using a RemoteSessionPool, it's important to realize the if the primary RemoteSession that is set through
1954 this interface is closed then every session in the RemoteSessionPool is also clsoed as well as the broker connection
1955 to RPMS.
1956 </remarks>
1957 </member>
1958 <member name="T:IndianHealthService.BMXNet.Model.ContextChangingArgs">
1959 <summary>
1960 An instance of these args are included with the ContextChanging event and this event
1961 is a CancelEventArgs subclass. The Cancel property being set to True represents the desire
1962 to Veto the change so the patient (and potentially visit) does not change. The Veto can be
1963 overriden by the framework so be prepared for the context to change even if you don't want it
1964 to.
1965 </summary>
1966 </member>
1967 <member name="P:IndianHealthService.BMXNet.Model.ContextChangingArgs.IsVisitChange">
1968 <summary>
1969 Answer True if the visit is about to be changed.
1970 </summary>
1971 </member>
1972 <member name="P:IndianHealthService.BMXNet.Model.ContextChangingArgs.IsPatientChange">
1973 <summary>
1974 Answer True if the visit is about to be changed.
1975 </summary>
1976 </member>
1977 <member name="P:IndianHealthService.BMXNet.Model.ContextChangingArgs.BeforeContext">
1978 <summary>
1979 The current state of the Context.
1980 </summary>
1981 </member>
1982 <member name="T:IndianHealthService.BMXNet.Net.BMXAdeCrypto">
1983 <summary>
1984 This implementation EncryptionProvider is the crypto used for the standard Indian Health Service socket-based BMXNET Broker.
1985 </summary>
1986 </member>
1987 <member name="M:IndianHealthService.BMXNet.Net.BMXAdeCrypto.SetKey(System.String[])">
1988 <summary>
1989 Set a site specific key
1990 </summary>
1991 <param name="aKey">The required key for BMX Ade</param>
1992 </member>
1993 <member name="M:IndianHealthService.BMXNet.Net.BMXAdeCrypto.Encrypt(System.String)">
1994 <summary>
1995 BMXAde Implementation
1996 </summary>
1997 <param name="aString">String to encrypt</param>
1998 <returns>Encrypt string</returns>
1999 </member>
2000 <member name="M:IndianHealthService.BMXNet.Net.BMXAdeCrypto.Decrypt(System.String)">
2001 <summary>
2002 BMXAde Implementation
2003 </summary>
2004 <param name="aString">String to decrypt</param>
2005 <returns>Decrypted string</returns>
2006 </member>
2007 <member name="T:IndianHealthService.BMXNet.Ado.BMXNetConnection">
2008 <summary>
2009 BMXNET implementaiton of DbConnection. This class can be used like
2010 any ADO.NET DbConnection implementation or the suggested RemoteSession API's can
2011 be used.
2012
2013 See ADO.NET documentation for details of this class.
2014 </summary>
2015 </member>
2016 <member name="T:IndianHealthService.BMXNet.Model.User">
2017 <summary>
2018 The user that established the connection to BMX either through the WinFramework dialogs or access/verify codes, or
2019 a user established through attach tho the EHR/VueCentric with the EhrFramework.
2020 <para>The user breaks down into who is it and what can they do with some identify and security key checing.</para>
2021 </summary>
2022 </member>
2023 <member name="M:IndianHealthService.BMXNet.Model.User.HasSecurityKey(System.String)">
2024 <summary>
2025 Check aKey against the active RPMS keys for the user. If the user has the PROGMODE key this
2026 method will always return true.
2027 </summary>
2028 <param name="aKey">The key name that is compared against the keys on the server</param>
2029 <returns>Return true if the user has the key</returns>
2030 </member>
2031 <member name="M:IndianHealthService.BMXNet.Model.User.RequestKeys">
2032 <summary>
2033 Fetch from RPMS the user's current keys. The user's
2034 division must be set before calling this metohd.
2035 </summary>
2036 <returns></returns>
2037 </member>
2038 <member name="M:IndianHealthService.BMXNet.Model.User.HasSecurityKeys(System.String[])">
2039 <summary>
2040 Return a list of keys that the user does NOT have. If the user has all of
2041 the keys then an empty list is returned
2042 </summary>
2043 <example>
2044 List&lt;String&gt; missingKeys=aUser.HasSecurityKeys(new string[] { "Key1","Key2" });
2045 if (missingKeys.Count==0) {
2046 //Take a secured path
2047 } else {
2048 MessageBox.Show(missingKeys);
2049 }
2050 </example>
2051 <remarks>
2052 The HasSecurityKeys appraoch does not give those with PROGMODE a free-pass since it compares
2053 the actual keys. HasSecurityKeys uses RequestKeys
2054 </remarks>
2055 <param name="keys">a list of keys to compare against the user's keys</param>
2056 <returns>A list of keys the user does not have, empty of the user has them all</returns>
2057 </member>
2058 <member name="P:IndianHealthService.BMXNet.Model.User.Duz">
2059 <summary>
2060 The DUZ aka IEN of the NEW Person File of this user
2061 </summary>
2062 </member>
2063 <member name="P:IndianHealthService.BMXNet.Model.User.Name">
2064 <summary>
2065 A displayable name of the user
2066 </summary>
2067 </member>
2068 <member name="P:IndianHealthService.BMXNet.Model.User.Division">
2069 <summary>
2070 The division that this user to currently operating within
2071 </summary>
2072 </member>
2073 <member name="T:IndianHealthService.BMXNet.Util.EntryAssemblyInfo">
2074 <summary>
2075 Convienence class to provide information from the AssembleInfo
2076 <code>
2077 [assembly: AssemblyTitle("IndianHealthService.BMXNet.Test")]
2078 [assembly: AssemblyDescription("A test application")]
2079 [assembly: AssemblyCompany("IHS")]
2080 [assembly: AssemblyProduct("IndianHealthService.BMXNet.Test")]
2081 [assembly: AssemblyCopyright("IHS 2009")]
2082 [assembly: AssemblyVersion("2.0.0.0")]
2083 </code>
2084 </summary>
2085 </member>
2086 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyTitle">
2087 <summary>
2088 Convienence method to provide information from the AssembleInfo
2089 <code>
2090 [assembly: AssemblyTitle("IndianHealthService.BMXNet.Test")]
2091 </code>
2092 </summary>
2093 </member>
2094 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyVersion">
2095 <summary>
2096 Convienence method to provide information from the AssembleInfo
2097 <code>
2098 [assembly: AssemblyVersion("2.0.0.0")]
2099 </code>
2100 </summary>
2101 </member>
2102 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyDescription">
2103 <summary>
2104 Convienence method to provide information from the AssembleInfo
2105 <code>
2106 [assembly: AssemblyDescription("A test application")]
2107 </code>
2108 </summary>
2109 </member>
2110 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyProduct">
2111 <summary>
2112 Convienence method to provide information from the AssembleInfo
2113 <code>
2114 [assembly: AssemblyProduct("IndianHealthService.BMXNet.Test")]
2115 </code>
2116 </summary>
2117 </member>
2118 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyCopyright">
2119 <summary>
2120 Convienence method to provide information from the AssembleInfo
2121 <code>
2122 [assembly: AssemblyCopyright("IHS 2009")]
2123 </code>
2124 </summary>
2125 </member>
2126 <member name="P:IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyCompany">
2127 <summary>
2128 Convienence method to provide information from the AssembleInfo
2129 <code>
2130 [assembly: AssemblyCompany("IHS")]
2131 </code>
2132 </summary>
2133 </member>
2134 <member name="T:IndianHealthService.BMXNet.Net.BMXNetSocketBroker">
2135 <summary>
2136 BMXNetBroker implements low-level socket connectivity to RPMS databases.
2137 The VA RPC Broker must be running on the RPMS server in order for
2138 BMXNetBroker to connect.
2139 </summary>
2140 </member>
2141 <member name="T:IndianHealthService.BMXNet.LocalConsumer">
2142 <summary>
2143 This interface is used on UserControl-based components which are designed to work both inside
2144 the EHR and inside a WinForm application. "Consumer" interfaces basically tell Frameworks
2145 that a "Consumer"-implementating object need a specific service, versus the service being queried.
2146 </summary>
2147 <remarks>
2148 If your component doesn't implement LocalConsumer you can still have a user-control. However, implementing
2149 LocalConsumer is very common because of exclusive access to the patient/visit Context.
2150 </remarks>
2151 </member>
2152 <member name="P:IndianHealthService.BMXNet.LocalConsumer.LocalSession">
2153 <summary>
2154 This property is set with a LocalSession by the framework. The receiver uses it for Context,
2155 local Events, and other services.
2156 </summary>
2157 </member>
2158 </members>
2159</doc>
Note: See TracBrowser for help on using the repository browser.