source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/BMX41000/IHS BMX Framework/IndianHealthService.BMXNet/bmxnet.xml@ 1222

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

RemoteSession.cs Interface: Added:

  • Lock method to lock glvns on M db.
  • Encoding ConnectionEncoding to set the connection encoding on the DB

BMXNetSessionConnection: Added:

  • Abstract ConnectionEncoding property
  • Clarified error message that gets called. It now says that you don't have TransmitRPC writer lock??? When the error could be any BMXNetException.

BMXNetSessionSocketConnection:

  • Added ConnectionEncoding property
  • ReceiveString completely refactored: now we get much better performance
  • Timers and Debug Writes are all over the place now.

BMXNetRemoteSession:

  • Implemented the 2 new 'stuff' in Interface RemoteSesssion: -- Lock glvn -- Encoding Property
  • TableFromSQL with Dataset has an honest to god bug in it: The passed dataset and table name are not used even though they are passed.

BMXNetSessionConnectionOverAnotherSessionConnection:

  • Implemented the Encoding Property in Interface RemoteSession to have the project compile.

Updated dlls. Have fun.

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