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