Changeset 1194 for Scheduling/branches/BMX4Support
- Timestamp:
- May 29, 2011, 2:13:37 AM (14 years ago)
- Location:
- Scheduling/branches/BMX4Support
- Files:
-
- 2 added
- 1 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
Scheduling/branches/BMX4Support/AssemblyInfo.cs
r1174 r1194 28 28 // by using the '*' as shown below: 29 29 30 [assembly: AssemblyVersion("1. 5.1.*")]30 [assembly: AssemblyVersion("1.6.0.*")] 31 31 32 32 // … … 58 58 [assembly: AssemblyKeyFile("")] 59 59 [assembly: AssemblyKeyName("")] 60 [assembly: AssemblyFileVersionAttribute("1. 5.1.0")]60 [assembly: AssemblyFileVersionAttribute("1.6.0.0")] 61 61 [assembly: ComVisibleAttribute(false)] -
Scheduling/branches/BMX4Support/CGAVView.cs
r1117 r1194 654 654 // sSql = "BSDX RAISE EVENT^" + sEvent + "^" + sParams + "^^"; 655 655 // DataTable dtAppt =m_DocManager.RPMSDataTable(sSql, "RaiseEvent"); 656 this.m_DocManager.ConnectInfo.RaiseEvent(sEvent, sParams, true);656 CGDocumentManager.Current.RemoteSession.EventServices.TriggerEvent(sEvent, sParams, true); 657 657 } 658 658 catch (Exception ex) … … 809 809 { 810 810 calendarGrid1.CGToolTip.Active = false; 811 string sMsg = " this access block?";811 string sMsg; 812 812 if (calendarGrid1.SelectedAppointments.AppointmentTable.Count > 1) 813 813 sMsg = " these access blocks?"; … … 859 859 try 860 860 { 861 bool bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXMGR", "+");861 bool bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "+"); 862 862 if (bLock == false) 863 863 { … … 872 872 return; 873 873 } 874 bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXMGR", "-");874 bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "-"); 875 875 } 876 876 catch (Exception ex) … … 947 947 { 948 948 this.calendarGrid1.CloseGrid(); 949 DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXRES(" + Document.ResourceID.ToString() + ")", "-");949 CGDocumentManager.Current.RemoteSession.Lock("^BSDXRES(" + Document.ResourceID.ToString() + ")", "-"); 950 950 } 951 951 -
Scheduling/branches/BMX4Support/CGDocumentManager.cs
r1143 r1194 1 /* Main Class...: 2 * Original Author: Horace Whitt 3 * Current Author and Maintainer: Sam Habiel 4 * License: LGPL. http://www.gnu.org/licenses/lgpl-2.1.html 5 */ 6 1 7 using System; 2 8 using System.Windows.Forms; … … 6 12 using System.Threading; 7 13 using IndianHealthService.BMXNet; 14 using IndianHealthService.BMXNet.WinForm; 15 using IndianHealthService.BMXNet.WinForm.Configuration; //grrrr... too many namespaces here... 8 16 using Mono.Options; 9 17 using System.Runtime.InteropServices; … … 42 50 //M Connection member variables 43 51 private DataSet m_dsGlobal = null; // Holds all user data 44 private BMXNetConnectInfo m_ConnectInfo = null; // Connection to VISTA object45 private BMXNetConnectInfo.BMXNetEventDelegate CDocMgrEventDelegate; // Delegate to respond to messages from VISTA. Responds to event: BMXNetConnectInfo.BMXNetEvent46 52 47 53 //Custom Printing … … 51 57 #region Properties 52 58 53 /// <summary> 54 /// Returns the document manager's BMXNetConnectInfo member 55 /// </summary> 56 public BMXNetConnectInfo ConnectInfo 57 { 58 get 59 { 60 return m_ConnectInfo; 61 } 62 } 59 public WinFramework WinFramework { get; private set; } // Login Manager 60 public RemoteSession RemoteSession { get; private set; } // Data Sesssion against the RPMS/VISTA server 61 public RPCLogger RPCLogger { get; private set; } // Logger for RPCs 63 62 64 63 /// <summary> … … 153 152 154 153 /// <summary> 155 /// Constructor. Does absolutely nothing at this point.154 /// Private constructor for singleton instance. 156 155 /// </summary> 157 p ublicCGDocumentManager()156 private CGDocumentManager() 158 157 { 159 158 } … … 295 294 296 295 #region BMXNet Event Handler 297 private void CDocMgrEventHandler(Object obj, BMXNet.BMXNetEventArgs e)298 { 299 if (e. BMXEvent== "BSDX CALL WORKSTATIONS")296 private void CDocMgrEventHandler(Object obj, RemoteEventArgs e) 297 { 298 if (e.EventType == "BSDX CALL WORKSTATIONS") 300 299 { 301 300 string sParam = ""; 302 301 string sDelim="~"; 303 sParam += this. m_ConnectInfo.UserName + sDelim;302 sParam += this.RemoteSession.User.Name + sDelim; 304 303 sParam += this.m_sHandle + sDelim; 305 304 sParam += Application.ProductVersion + sDelim; 306 305 sParam += this._views.Count.ToString(); 307 _current. m_ConnectInfo.RaiseEvent("BSDX WORKSTATION REPORT", sParam, true);308 } 309 if (e. BMXEvent== "BSDX ADMIN MESSAGE")310 { 311 string sMsg = e. BMXParam;306 _current.RemoteSession.EventServices.TriggerEvent("BSDX WORKSTATION REPORT", sParam, true); 307 } 308 if (e.EventType == "BSDX ADMIN MESSAGE") 309 { 310 string sMsg = e.EventType; 312 311 ShowAdminMsgDelegate samd = new ShowAdminMsgDelegate(ShowAdminMsg); 313 //this.Invoke(samd, new object [] {sMsg});314 312 samd.Invoke(sMsg); 315 313 } 316 if (e. BMXEvent== "BSDX ADMIN SHUTDOWN")317 { 318 string sMsg = e. BMXParam;314 if (e.EventType == "BSDX ADMIN SHUTDOWN") 315 { 316 string sMsg = e.Details; 319 317 CloseAllDelegate cad = new CloseAllDelegate(CloseAll); 320 //this.Invoke(cad, new object [] {sMsg});321 318 cad.Invoke(sMsg); 322 319 } … … 353 350 private bool InitializeApp(bool bReLogin) 354 351 { 355 //Set M connection info 356 m_ConnectInfo = new BMXNetConnectInfo(m_Encoding); // Encoding is "" unless passed in command line 357 _dal = new DAL(m_ConnectInfo); // Data access layer 358 //m_ConnectInfo.bmxNetLib.StartLog(); //This line turns on logging of messages 352 //Note: There are 2 splashes -- one for being the parent of the log in forms 353 // the next is invoked async and updated async while the GUI is loading 354 // The reason is b/c an async form cannot be the parent of another that lies on the main thread 355 356 RPCLogger = new RPCLogger(); 357 358 DSplash firstSplash = new DSplash(); 359 360 firstSplash.Show(); 359 361 360 //Create a delegate to process events raised by BMX. 361 CDocMgrEventDelegate = new BMXNetConnectInfo.BMXNetEventDelegate(CDocMgrEventHandler); 362 /* IMPORTANT NOTE 363 * LOGIN CODE IS COPIED ALMOST VERBATIM FROM THE SCHEMABUILDER APPLICAITON; 364 * THE ONLY ONE I CAN FIND WHICH RELIES ON BMX 4 NEW WAYS WHICH I CAN'T FIGURE OUT 365 */ 366 LoginProcess login; 367 this.WinFramework = WinFramework.CreateWithNetworkBroker(true, RPCLogger); 368 369 if (bReLogin) // if logging in again... 370 { 371 this.WinFramework.LoadConnectionSpecs(LocalPersistentStore.CreateDefaultStorage(true), "BSDX"); 372 login = this.WinFramework.CreateLoginProcess(); 373 login.AttemptUserInputLogin("Clincal Scheduling Log-in", 3, true, firstSplash); 374 goto DoneTrying; 375 } 376 377 // If server,port,ac,vc are supplied on command line, then try to connect... 378 else if (!String.IsNullOrEmpty(m_Server) && m_Port != 0 && !String.IsNullOrEmpty(m_AccessCode) && !String.IsNullOrEmpty(m_VerifyCode)) 379 { 380 RpmsConnectionSpec spec = new RpmsConnectionSpec(); 381 spec.IsDefault = true; 382 spec.Name = "Command Line Server"; 383 spec.Port = m_Port; 384 spec.Server = m_Server; 385 spec.UseWindowsAuthentication = false; //for now 386 spec.UseDefaultNamespace = true; //for now 387 login = this.WinFramework.CreateLoginProcess(); 388 login.AutoSetDivisionToLastLookup = false; 389 login.AttemptAccessVerifyLogin(spec, m_AccessCode, m_VerifyCode); 390 goto DoneTrying; 391 } 392 393 // if only server, port is supplied, then use these instead 394 else if (!String.IsNullOrEmpty(m_Server) && m_Port != 0) 395 { 396 RpmsConnectionSpec spec = new RpmsConnectionSpec(); 397 spec.IsDefault = true; 398 spec.Name = "Command Line Server"; 399 spec.Port = m_Port; 400 spec.Server = m_Server; 401 spec.UseWindowsAuthentication = false; //for now 402 spec.UseDefaultNamespace = true; //for now 403 404 RpmsConnectionSettings cxnSettings = new RpmsConnectionSettings 405 { 406 CommandLineConnectionSpec = spec 407 }; 408 409 this.WinFramework.ConnectionSettings = cxnSettings; 410 411 login = this.WinFramework.CreateLoginProcess(); 412 login.AutoSetDivisionToLastLookup = false; 413 login.AttemptUserInputLogin("Clinical Scheduling Log-in", 3, false, firstSplash); 414 goto DoneTrying; 415 } 416 417 // if nothing is supplied, fall back on the original dialog 418 else 419 { 420 this.WinFramework.LoadConnectionSpecs(LocalPersistentStore.CreateDefaultStorage(true), "BSDX"); 421 login = this.WinFramework.CreateLoginProcess(); 422 login.AutoSetDivisionToLastLookup = false; 423 login.AttemptUserInputLogin("Clincal Scheduling Log-in", 3, true, firstSplash); 424 425 goto DoneTrying; 426 } 427 428 DoneTrying: 429 if (!login.WasSuccessful) 430 { 431 return false; 432 } 433 434 LocalSession local = this.WinFramework.LocalSession; 435 436 if ((this.WinFramework.Context.User.Division == null) && !this.WinFramework.AttemptUserInputSetDivision("Set Initial Division", firstSplash)) 437 { 438 return false; 439 } 440 441 442 443 this.RemoteSession = this.WinFramework.PrimaryRemoteSession; 444 362 445 //Tie delegate to Events generated by BMX. 363 m_ConnectInfo.BMXNetEvent += CDocMgrEventDelegate; 364 //Disable polling (But does this really work???? I don't see how it gets disabled) 365 m_ConnectInfo.EventPollingEnabled = false; 366 446 this.RemoteSession.EventServices.RpmsEvent += this.CDocMgrEventHandler; 447 //Disable polling 448 this.RemoteSession.EventServices.IsEventPollingEnabled = false; 449 450 //Second splash screens 367 451 //Show a splash screen while initializing; define delegates to remote thread 368 DSplash m_ds= new DSplash();369 DSplash.dSetStatus setStatusDelegate = new DSplash.dSetStatus( m_ds.SetStatus);370 DSplash.dAny closeSplashDelegate = new DSplash.dAny( m_ds.RemoteClose);371 DSplash.dProgressBarSet setMaxProgressDelegate = new DSplash.dProgressBarSet( m_ds.RemoteProgressBarMaxSet);372 DSplash.dProgressBarSet setProgressDelegate = new DSplash.dProgressBarSet( m_ds.RemoteProgressBarValueSet);452 DSplash secondSplash = new DSplash(); 453 DSplash.dSetStatus setStatusDelegate = new DSplash.dSetStatus(secondSplash.SetStatus); 454 DSplash.dAny closeSplashDelegate = new DSplash.dAny(secondSplash.RemoteClose); 455 DSplash.dProgressBarSet setMaxProgressDelegate = new DSplash.dProgressBarSet(secondSplash.RemoteProgressBarMaxSet); 456 DSplash.dProgressBarSet setProgressDelegate = new DSplash.dProgressBarSet(secondSplash.RemoteProgressBarValueSet); 373 457 374 458 //Start new thread for the Splash screen. … … 376 460 threadSplash.IsBackground = true; //expendable thread -- exit even if still running. 377 461 threadSplash.Name = "Splash Thread"; 378 threadSplash.Start(m_ds); // pass form as parameter. 462 threadSplash.Start(secondSplash); 463 464 firstSplash.Close(); // close temporary splash now that the new one is up and running 379 465 380 466 //There are 21 steps to load the application. That's max for the progress bar. 381 467 setMaxProgressDelegate(21); 468 469 // smh--not used: System.Configuration.ConfigurationManager.GetSection("appSettings"); 470 setStatusDelegate("Connecting to VISTA"); 471 382 472 383 // smh--not used: System.Configuration.ConfigurationManager.GetSection("appSettings"); 384 385 setStatusDelegate("Connecting to VISTA"); 386 473 /* 387 474 //Try to connect using supplied values for Server and Port 388 475 //Why am I doing this? The library BMX net uses prompts for access and verify code … … 462 549 } 463 550 }while (bRetry == true); 464 465 //Printing 466 551 */ 552 553 //Printing Custom DLL. Perfect place for code injection!!! 554 //************************************************* 467 555 string DllLocation = string.Empty; 468 556 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Application.StartupPath + @"\Printing\"); … … 495 583 this.m_PrintingObject = Creator.PrintFactory(); 496 584 } 497 585 //************************************************ 498 586 499 587 //User Interface Culture (m_CultureName is set from the command line flag /culture) … … 512 600 } 513 601 602 _dal = new DAL(RemoteSession); // Data access layer 603 514 604 //Create global dataset 515 605 _current.m_dsGlobal = new DataSet("GlobalDataSet"); … … 553 643 setProgressDelegate(2); 554 644 setStatusDelegate("Setting encoding..."); 555 645 //PORT TODO: Set encoding 556 646 if (m_Encoding == String.Empty) 557 647 { 558 string utf8_server_support = m_ConnectInfo.bmxNetLib.TransmitRPC("BMX UTF-8", ""); 648 string utf8_server_support = RemoteSession.TransmitRPC("BMX UTF-8", ""); 649 559 650 if (utf8_server_support == "1") 560 m_ConnectInfo.bmxNetLib.Encoder = System.Text.UTF8Encoding.UTF8; 651 RemoteSession.ConnectionEncoding = System.Text.UTF8Encoding.UTF8; 652 561 653 } 562 654 … … 565 657 setProgressDelegate(3); 566 658 setStatusDelegate("Setting Application Context to BSDXRPC..."); 567 m_ConnectInfo.AppContext = "BSDXRPC";659 RemoteSession.AppContext = "BSDXRPC"; 568 660 569 661 //User Preferences Object … … 571 663 setStatusDelegate("Getting User Preferences from the Server..."); 572 664 573 _current.UserPreferences = new UserPreferences(); // Does the calling to do that...665 _current.UserPreferences = new UserPreferences(); // Constructor Does the calling to do that... 574 666 575 667 //Load global recordsets … … 583 675 setProgressDelegate(6); 584 676 setStatusDelegate(statusConst + " Schedule User"); 585 DataTable dtUser = _dal.GetUserInfo( m_ConnectInfo.DUZ);677 DataTable dtUser = _dal.GetUserInfo(RemoteSession.User.Duz); 586 678 dtUser.TableName = "SchedulingUser"; 587 679 m_dsGlobal.Tables.Add(dtUser); … … 598 690 setProgressDelegate(7); 599 691 setStatusDelegate(statusConst + " Access Types"); 600 DataTable dtAccessTypes = _dal.GetAccessTypes(); 601 dtAccessTypes.TableName = "AccessTypes"; 602 m_dsGlobal.Tables.Add(dtAccessTypes); 692 DataTable dtAccessTypes = _dal.GetAccessTypes(m_dsGlobal, "AccessTypes"); 603 693 604 694 //Get Access Groups … … 680 770 //cmd.CommandText = "SELECT BMXIEN 'HOSPITAL_LOCATION_ID', NAME 'HOSPITAL_LOCATION', DEFAULT_PROVIDER, STOP_CODE_NUMBER, INACTIVATE_DATE, REACTIVATE_DATE FROM HOSPITAL_LOCATION"; 681 771 sCommandText = "BSDX HOSPITAL LOCATION"; 682 ConnectInfo.RPMSDataTable(sCommandText, "HospitalLocation", m_dsGlobal);772 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "HospitalLocation"); 683 773 Debug.Write("LoadGlobalRecordsets -- HospitalLocation loaded\n"); 684 774 … … 732 822 setStatusDelegate(statusConst + " Providers"); 733 823 sCommandText = "SELECT BMXIEN, NAME FROM NEW_PERSON WHERE INACTIVE_DATE = '' AND BMXIEN > 1"; 734 ConnectInfo.RPMSDataTable(sCommandText, "Provider", m_dsGlobal);824 RemoteSession.TableFromSQL(sCommandText, m_dsGlobal, "Provider"); 735 825 Debug.Write("LoadGlobalRecordsets -- Provider loaded\n"); 736 826 … … 740 830 setStatusDelegate(statusConst + " Holiday"); 741 831 sCommandText = "SELECT NAME, DATE FROM HOLIDAY WHERE INTERNAL[DATE] > '" + FMDateTime.Create(DateTime.Today).DateOnly.FMDateString + "'"; 742 ConnectInfo.RPMSDataTable(sCommandText, "HOLIDAY", m_dsGlobal);832 RemoteSession.TableFromSQL(sCommandText, m_dsGlobal, "HOLIDAY"); 743 833 Debug.Write("LoadingGlobalRecordsets -- Holidays loaded\n"); 744 834 … … 749 839 750 840 setStatusDelegate("Setting Receive Timeout"); 751 _current. m_ConnectInfo.ReceiveTimeout = 30000; //30-second timeout841 _current.RemoteSession.ReceiveTimeout = 30000; //30-second timeout 752 842 753 843 #if DEBUG 754 _current. m_ConnectInfo.ReceiveTimeout = 600000; //longer timeout for debugging844 _current.RemoteSession.ReceiveTimeout = 600000; //longer timeout for debugging 755 845 #endif 756 846 // Event Subsriptions … … 758 848 //Table #16 759 849 setProgressDelegate(18); 760 _current. m_ConnectInfo.SubscribeEvent("BSDX SCHEDULE");850 _current.RemoteSession.EventServices.Subscribe("BSDX SCHEDULE"); 761 851 //Table #17 762 852 setProgressDelegate(19); 763 _current. m_ConnectInfo.SubscribeEvent("BSDX CALL WORKSTATIONS");853 _current.RemoteSession.EventServices.Subscribe("BSDX CALL WORKSTATIONS"); 764 854 //Table #18 765 855 setProgressDelegate(20); 766 _current. m_ConnectInfo.SubscribeEvent("BSDX ADMIN MESSAGE");856 _current.RemoteSession.EventServices.Subscribe("BSDX ADMIN MESSAGE"); 767 857 //Table #19 768 858 setProgressDelegate(21); 769 _current.m_ConnectInfo.SubscribeEvent("BSDX ADMIN SHUTDOWN"); 770 771 _current.m_ConnectInfo.EventPollingInterval = 5000; //in milliseconds 772 _current.m_ConnectInfo.EventPollingEnabled = true; 773 _current.m_ConnectInfo.AutoFire = 12; //AutoFire every 12*5 seconds 859 _current.RemoteSession.EventServices.Subscribe("BSDX ADMIN SHUTDOWN"); 860 861 _current.RemoteSession.EventServices.EventPollingInterval = 5000; //in milliseconds 862 _current.RemoteSession.EventServices.IsEventPollingEnabled = true; 863 864 //PORT TODO: No Autofire in BMX 4.0 865 //_current.RemoteSession.EventServices. = 12; //AutoFire every 12*5 seconds 774 866 775 867 //Close Splash Screen … … 785 877 { 786 878 string sCommandText = "SELECT * FROM BSDX_ACCESS_GROUP"; 787 ConnectInfo.RPMSDataTable(sCommandText, "AccessGroup", m_dsGlobal);879 RemoteSession.TableFromSQL(sCommandText, m_dsGlobal, "AccessGroup"); 788 880 Debug.Write("LoadGlobalRecordsets -- AccessGroups loaded\n"); 789 881 } … … 792 884 { 793 885 string sCommandText = "BSDX GET ACCESS GROUP TYPES"; 794 ConnectInfo.RPMSDataTable(sCommandText, "AccessGroupType", m_dsGlobal);886 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "AccessGroupType"); 795 887 Debug.Write("LoadGlobalRecordsets -- AccessGroupTypes loaded\n"); 796 888 } … … 798 890 public void LoadBSDXResourcesTable() 799 891 { 800 string sCommandText = "BSDX RESOURCES^" + m_ConnectInfo.DUZ;801 ConnectInfo.RPMSDataTable(sCommandText, "Resources", m_dsGlobal);892 string sCommandText = "BSDX RESOURCES^" + RemoteSession.User.Duz; 893 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "Resources"); 802 894 Debug.Write("LoadGlobalRecordsets -- Resources loaded\n"); 803 895 } … … 809 901 //to which user has access 810 902 //Fields are: RESOURCE_GROUPID, RESOURCE_GROUP 811 string sCommandText = "BSDX RESOURCE GROUPS BY USER^" + m_ConnectInfo.DUZ;812 ConnectInfo.RPMSDataTable(sCommandText, "ResourceGroup", m_dsGlobal);903 string sCommandText = "BSDX RESOURCE GROUPS BY USER^" + RemoteSession.User.Duz; 904 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "ResourceGroup"); 813 905 Debug.Write("LoadGlobalRecordsets -- ResourceGroup loaded\n"); 814 906 } … … 821 913 //are returned. 822 914 //Fields are: RESOURCE_GROUPID, RESOURCE_GROUP, RESOURCE_GROUP_ITEMID, RESOURCE_NAME, RESOURCE_ID 823 string sCommandText = "BSDX GROUP RESOURCE^" + m_ConnectInfo.DUZ;824 ConnectInfo.RPMSDataTable(sCommandText, "GroupResources", m_dsGlobal);915 string sCommandText = "BSDX GROUP RESOURCE^" + RemoteSession.User.Duz; 916 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "GroupResources"); 825 917 Debug.Write("LoadGlobalRecordsets -- GroupResources loaded\n"); 826 918 } … … 831 923 //who possesses the BSDXZMENU security key. 832 924 string sCommandText = "BSDX SCHEDULE USER"; 833 ConnectInfo.RPMSDataTable(sCommandText, "ScheduleUser", m_dsGlobal);925 RemoteSession.TableFromCommand(sCommandText, m_dsGlobal, "ScheduleUser"); 834 926 Debug.Write("LoadGlobalRecordsets -- ScheduleUser loaded\n"); 835 927 } … … 850 942 if (!bAllUsers) 851 943 { 852 sCommandText += String.Format(" WHERE INTERNAL[USERNAME] = {0}", m_ConnectInfo.DUZ);853 } 854 855 ConnectInfo.RPMSDataTable(sCommandText, "ResourceUser", m_dsGlobal);944 sCommandText += String.Format(" WHERE INTERNAL[USERNAME] = {0}", RemoteSession.User.Duz); 945 } 946 947 RemoteSession.TableFromSQL(sCommandText, m_dsGlobal, "ResourceUser"); 856 948 Debug.Write("LoadGlobalRecordsets -- ResourceUser loaded\n"); 857 949 } … … 968 1060 if ((Views.Count == 0)&&(this.AvailabilityViews.Count == 0)&&(m_bExitOK == true)) 969 1061 { 970 m_ConnectInfo.EventPollingEnabled = false;971 m_ConnectInfo.UnSubscribeEvent("BSDX SCHEDULE");972 m_ConnectInfo.CloseConnection();1062 RemoteSession.EventServices.IsEventPollingEnabled = false; 1063 RemoteSession.EventServices.Unsubscribe("BSDX SCHEDULE"); 1064 RemoteSession.Close(); 973 1065 Application.Exit(); 974 1066 } … … 983 1075 if ((Views.Count == 0)&&(this.AvailabilityViews.Count == 0)&&(m_bExitOK == true)) 984 1076 { 985 m_ConnectInfo.bmxNetLib.CloseConnection();1077 RemoteSession.Close(); 986 1078 Application.Exit(); 987 1079 } … … 1123 1215 1124 1216 //Used in Do loop 1125 bool bRetry = true;1217 //bool bRetry = true; 1126 1218 1127 / / Do Loop to deal with changing the server and the vagaries of user choices.1219 /*// Do Loop to deal with changing the server and the vagaries of user choices. 1128 1220 do 1129 1221 { … … 1134 1226 //so it can be re-used when BMX tries to log in again. 1135 1227 //Access and Verify code are prompted for in InitializeApp 1136 m_ConnectInfo.ChangeServerInfo(); 1228 LoginProcess login = this.WinFramework.CreateLoginProcess(); 1229 login.AttemptUserInputLogin("ReLog-in", 3, true, null); 1137 1230 bRetry = false; 1138 1231 } … … 1157 1250 } 1158 1251 } while (bRetry == true); 1159 1252 */ 1253 1160 1254 //Parameter for initialize app tells it that this is a re-login and forces a new access and verify code. 1161 1255 bool isEverythingOkay = this.InitializeApp(true); … … 1194 1288 private void mnuRPMSLogin_Click(object sender, EventArgs e) 1195 1289 { 1196 //Warn that changing login will close all schedules 1290 mnuRPMSServer_Click(sender, e); 1291 1292 /* v 1.7 to support BMX 4 -- commented out -- smh 1293 //Warn that changing login will close all schedules 1197 1294 if (MessageBox.Show("Are you sure you want to close all schedules and login to VistA?", "Clinical Scheduling", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) 1198 1295 return; … … 1206 1303 CloseAll(); 1207 1304 m_bExitOK = true; 1305 1306 LoginProcess login = this.WinFramework.CreateLoginProcess(); 1307 login.AttemptUserInputLogin("Clincal Scheduling", 3, true, null); 1308 //m_ConnectInfo.bmxNetLib.StartLog(); //This line turns on logging of messages 1309 1310 if (!login.WasSuccessful) 1311 { 1312 return; 1313 } 1314 1315 LocalSession local = this.WinFramework.LocalSession; 1316 1317 if ((this.WinFramework.Context.User.Division == null) && !this.WinFramework.AttemptUserInputSetDivision("Set Initial Division", null)) 1318 { 1319 return; 1320 } 1321 1322 this.RemoteSession = this.WinFramework.PrimaryRemoteSession; 1208 1323 1209 1324 //Parameter for initialize app tells it that this is a re-login and forces a new access and verify code. … … 1233 1348 throw ex; 1234 1349 } 1235 1350 */ 1236 1351 } 1237 1352 … … 1290 1405 { 1291 1406 //System.IntPtr pHandle = this.Handle; 1292 RPMSDataTableDelegate rdtd = new RPMSDataTableDelegate( ConnectInfo.RPMSDataTable);1407 RPMSDataTableDelegate rdtd = new RPMSDataTableDelegate(RemoteSession.TableFromCommand); 1293 1408 //dtOut = (DataTable) this.Invoke(rdtd, new object[] {sSQL, sTableName}); 1294 dtOut = rdtd.Invoke(sSQL, sTableName); 1409 dtOut = RemoteSession.TableFromCommand(sSQL); 1410 dtOut.TableName = sTableName; 1411 1295 1412 } 1296 1413 … … 1307 1424 public void ChangeDivision(System.Windows.Forms.Form frmCaller) 1308 1425 { 1309 this.ConnectInfo.ChangeDivision(frmCaller); 1426 WinFramework.AttemptUserInputSetDivision("Change Division", frmCaller); 1427 1428 RemoteSession = WinFramework.PrimaryRemoteSession; 1429 1310 1430 foreach (CGView v in _views.Keys) 1311 1431 { -
Scheduling/branches/BMX4Support/CGView.cs
r1174 r1194 114 114 private MenuItem sepApptMenu3; 115 115 private MenuItem mnuReprintApptSlip; 116 private MenuItem mnuViewBrokerLog; 116 117 private IContainer components; 117 118 … … 132 133 public void InitializeDocView(string sText) 133 134 { 134 this.Text = this.DocManager.ConnectInfo.UserName;135 this.Text = CGDocumentManager.Current.RemoteSession.User.Name; 135 136 if (sText != null) 136 137 this.Text += " - " + sText; 137 if (DocManager.ConnectInfo.DivisionName != null)138 this.Text += " - " + DocManager.ConnectInfo.DivisionName;138 if (CGDocumentManager.Current.RemoteSession.User.Division.Name != null) 139 this.Text += " - " + CGDocumentManager.Current.RemoteSession.User.Division.Name; 139 140 } 140 141 … … 157 158 158 159 // Set username and division up top 159 this.Text = this.DocManager.ConnectInfo.UserName;160 this.Text = CGDocumentManager.Current.RemoteSession.User.Name; 160 161 if (sText != null) 161 162 this.Text += " - " + sText; 162 if (DocManager.ConnectInfo.DivisionName != null) 163 this.Text += " - " + DocManager.ConnectInfo.DivisionName; 164 165 this.m_ConnectInfo = m_DocManager.ConnectInfo; 166 m_bmxDelegate = new BMXNetConnectInfo.BMXNetEventDelegate(BMXNetEventHandler); 167 m_ConnectInfo.BMXNetEvent += m_bmxDelegate; 168 } 169 170 private BMXNetConnectInfo.BMXNetEventDelegate m_bmxDelegate; 163 if (CGDocumentManager.Current.RemoteSession.User.Division.Name != null) 164 this.Text += " - " + CGDocumentManager.Current.RemoteSession.User.Division.Name; 165 166 CGDocumentManager.Current.RemoteSession.EventServices.RpmsEvent += BMXNetEventHandler; 167 } 171 168 172 169 … … 235 232 this.mnuHelp = new System.Windows.Forms.MenuItem(); 236 233 this.mnuHelpAbout = new System.Windows.Forms.MenuItem(); 234 this.mnuViewBrokerLog = new System.Windows.Forms.MenuItem(); 237 235 this.mnuTest = new System.Windows.Forms.MenuItem(); 238 236 this.mnuTest1 = new System.Windows.Forms.MenuItem(); … … 680 678 this.mnuHelp.Index = 3; 681 679 this.mnuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { 682 this.mnuHelpAbout}); 680 this.mnuHelpAbout, 681 this.mnuViewBrokerLog}); 683 682 this.mnuHelp.Text = "&Help"; 684 683 // … … 688 687 this.mnuHelpAbout.Text = "&About"; 689 688 this.mnuHelpAbout.Click += new System.EventHandler(this.mnuHelpAbout_Click); 689 // 690 // mnuViewBrokerLog 691 // 692 this.mnuViewBrokerLog.Index = 1; 693 this.mnuViewBrokerLog.Text = "&View Broker Log"; 694 this.mnuViewBrokerLog.Click += new System.EventHandler(this.mnuViewBrokerLog_Click); 690 695 // 691 696 // mnuTest … … 702 707 this.mnuTest1.Index = 0; 703 708 this.mnuTest1.Text = "Test1"; 704 this.mnuTest1.Click += new System.EventHandler(this.mnuTest1_Click);705 709 // 706 710 // tvSchedules … … 712 716 this.tvSchedules.Location = new System.Drawing.Point(0, 0); 713 717 this.tvSchedules.Name = "tvSchedules"; 714 this.tvSchedules.Size = new System.Drawing.Size(128, 3 92);718 this.tvSchedules.Size = new System.Drawing.Size(128, 389); 715 719 this.tvSchedules.Sorted = true; 716 720 this.tvSchedules.TabIndex = 1; … … 781 785 this.panelRight.Location = new System.Drawing.Point(996, 0); 782 786 this.panelRight.Name = "panelRight"; 783 this.panelRight.Size = new System.Drawing.Size(128, 3 92);787 this.panelRight.Size = new System.Drawing.Size(128, 389); 784 788 this.panelRight.TabIndex = 3; 785 789 this.panelRight.Visible = false; … … 877 881 this.panelCenter.Location = new System.Drawing.Point(136, 24); 878 882 this.panelCenter.Name = "panelCenter"; 879 this.panelCenter.Size = new System.Drawing.Size(857, 34 4);883 this.panelCenter.Size = new System.Drawing.Size(857, 341); 880 884 this.panelCenter.TabIndex = 7; 881 885 // … … 984 988 this.panelBottom.Controls.Add(this.statusBar1); 985 989 this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; 986 this.panelBottom.Location = new System.Drawing.Point(136, 36 8);990 this.panelBottom.Location = new System.Drawing.Point(136, 365); 987 991 this.panelBottom.Name = "panelBottom"; 988 992 this.panelBottom.Size = new System.Drawing.Size(857, 24); … … 1002 1006 this.splitter1.Location = new System.Drawing.Point(128, 24); 1003 1007 this.splitter1.Name = "splitter1"; 1004 this.splitter1.Size = new System.Drawing.Size(8, 36 8);1008 this.splitter1.Size = new System.Drawing.Size(8, 365); 1005 1009 this.splitter1.TabIndex = 9; 1006 1010 this.splitter1.TabStop = false; … … 1011 1015 this.splitter2.Location = new System.Drawing.Point(993, 24); 1012 1016 this.splitter2.Name = "splitter2"; 1013 this.splitter2.Size = new System.Drawing.Size(3, 36 8);1017 this.splitter2.Size = new System.Drawing.Size(3, 365); 1014 1018 this.splitter2.TabIndex = 10; 1015 1019 this.splitter2.TabStop = false; … … 1034 1038 this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources"))); 1035 1039 this.calendarGrid1.SelectedAppointment = 0; 1036 this.calendarGrid1.Size = new System.Drawing.Size(857, 34 4);1040 this.calendarGrid1.Size = new System.Drawing.Size(857, 341); 1037 1041 this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0); 1038 1042 this.calendarGrid1.TabIndex = 0; … … 1047 1051 // 1048 1052 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 1049 this.ClientSize = new System.Drawing.Size(1124, 3 92);1053 this.ClientSize = new System.Drawing.Size(1124, 389); 1050 1054 this.Controls.Add(this.panelCenter); 1051 1055 this.Controls.Add(this.panelBottom); … … 1086 1090 private Hashtable m_htModifySchedule; 1087 1091 private Hashtable m_htChangeAppts; 1088 private BMXNetConnectInfo m_ConnectInfo = null;1089 public BMXNetConnectInfo.BMXNetEventDelegate BMXNetEvent;1090 1092 1091 1093 #endregion Fields … … 1308 1310 DataTable dt = this.DocManager.GlobalDataSet.Tables["ResourceUser"]; 1309 1311 DataView dv = new DataView(dt, "", "RESOURCENAME ASC", DataViewRowState.OriginalRows); 1310 string sDuz = this.DocManager.ConnectInfo.DUZ;1312 string sDuz = CGDocumentManager.Current.RemoteSession.User.Duz; 1311 1313 bool bModSchedule = false; 1312 1314 DataRowView[] drvA = dv.FindRows(sResource); … … 1756 1758 doc.ResourceID = Convert.ToInt32(sResourceID); 1757 1759 1758 bool bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXRES(" + sResourceID + ")", "+");1760 bool bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXRES(" + sResourceID + ")", "+"); 1759 1761 if (bLock == false) 1760 1762 { … … 1929 1931 dt = this.DocManager.GlobalDataSet.Tables["ResourceUser"]; 1930 1932 dv = new DataView(dt, "", "RESOURCENAME ASC", DataViewRowState.OriginalRows); 1931 dv.RowFilter = "USERNAME = '" + this.DocManager.ConnectInfo.UserName + "'";1933 dv.RowFilter = "USERNAME = '" + CGDocumentManager.Current.RemoteSession.User.Name + "'"; 1932 1934 for (int j=0; j < dv.Count; j++) 1933 1935 { … … 2504 2506 { 2505 2507 string msg; 2506 if ( BMXNetLib.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.2507 msg = BMXNetLib.Piece(ex.Message, "~", 4);2508 if (M.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error. 2509 msg = M.Piece(ex.Message, "~", 4); 2508 2510 else 2509 2511 msg = ex.Message; … … 2615 2617 { 2616 2618 string msg; 2617 if ( BMXNetLib.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error.2618 msg = BMXNetLib.Piece(ex.Message, "~", 4);2619 if (M.Piece(ex.Message, "~", 1) == "-10") // -10 means that BSDXAPI reported an error. 2620 msg = M.Piece(ex.Message, "~", 4); 2619 2621 else 2620 2622 msg = ex.Message; … … 2716 2718 /// <param name="e">BMXEvent Args: 2717 2719 /// e.BMXEvent is free text for Event Type; e.BMXParam is free text for Event Arguments</param> 2718 private void BMXNetEventHandler(Object obj, BMXNet.BMXNetEventArgs e)2720 private void BMXNetEventHandler(Object obj, RemoteEventArgs e) 2719 2721 { 2720 2722 try … … 2724 2726 2725 2727 // if event is Autofire event 2726 if (e. BMXEvent== "BMXNet AutoFire")2728 if (e.EventType == "BMXNet AutoFire") 2727 2729 { 2728 2730 Debug.Write("CGView caught AutoFire event.\n"); … … 2737 2739 2738 2740 // if event is BSDX SCHEDULE 2739 else if (e. BMXEvent== "BSDX SCHEDULE")2741 else if (e.EventType == "BSDX SCHEDULE") 2740 2742 { 2741 2743 //See if any of the resources in the event argument matches BSDX Schedule. … … 2745 2747 { 2746 2748 sResourceName = m_Document.m_sResourcesArray[j].ToString(); 2747 if (e. BMXParam== sResourceName)2749 if (e.Details == sResourceName) 2748 2750 { 2749 2751 Debug.Write("CGView caught BSDX SCHEDULE event.\n"); … … 2813 2815 { 2814 2816 //Signal RPMS to raise an event 2815 m_ConnectInfo.RaiseEvent(sEvent, sParams, false);2817 CGDocumentManager.Current.RemoteSession.EventServices.TriggerEvent(sEvent, sParams, false); 2816 2818 } 2817 2819 catch (Exception ex) … … 2859 2861 try 2860 2862 { 2861 bool bLock = DocManager.ConnectInfo.Lock("^BSDXMGR", "+", "");2863 bool bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "+"); 2862 2864 if (bLock == false) 2863 2865 { … … 2874 2876 m_DocManager.GlobalDataSet.Tables["ResourceUser"].Clear(); 2875 2877 m_DocManager.LoadResourceUserTable(false); 2876 bLock = DocManager.ConnectInfo.bmxNetLib.Lock("^BSDXMGR", "-");2878 bLock = CGDocumentManager.Current.RemoteSession.Lock("^BSDXMGR", "-"); 2877 2879 } 2878 2880 catch (ApplicationException aex) … … 3140 3142 } 3141 3143 3142 /// <summary> 3143 /// Useless code now... Good place to test something. 3144 /// </summary> 3145 /// <param name="sender"></param> 3146 /// <param name="e"></param> 3147 private void mnuTest1_Click(object sender, System.EventArgs e) 3148 { 3149 ReaderWriterLock m_rwl = this.DocManager.ConnectInfo.bmxNetLib.BMXRWL; 3144 private void CGView_Closing(object sender, System.ComponentModel.CancelEventArgs e) 3145 { 3150 3146 try 3151 3147 { 3152 m_rwl.AcquireWriterLock(50); 3153 Debug.Write("\nTest Button 1 Acquired first lock\n"); 3154 m_rwl.AcquireWriterLock(50); 3155 Debug.Write("Test Button 1 Acquired second lock\n"); 3156 this.DocManager.ViewRefresh(); 3157 Thread.Sleep(5000); 3158 try 3159 { 3160 } 3161 catch 3162 { 3163 } 3164 finally 3165 { 3166 m_rwl.ReleaseWriterLock(); 3167 Debug.Write ("Test Button 1 released first lock.\n"); 3168 m_rwl.ReleaseWriterLock(); 3169 Debug.Write ("Test Button 1 released second lock.\n"); 3170 } 3171 3172 return; 3173 } 3174 catch (Exception ex) 3175 { 3176 Debug.Write("Test Button 1 exception: " + ex.Message + "\n"); 3177 } 3178 } 3179 3180 private void CGView_Closing(object sender, System.ComponentModel.CancelEventArgs e) 3181 { 3182 try 3183 { 3184 m_ConnectInfo.BMXNetEvent -= m_bmxDelegate; 3148 CGDocumentManager.Current.RemoteSession.EventServices.RpmsEvent -= BMXNetEventHandler; 3185 3149 this.calendarGrid1.CloseGrid(); 3186 3150 } … … 3904 3868 } 3905 3869 3870 private void mnuViewBrokerLog_Click(object sender, EventArgs e) 3871 { 3872 var view = new RPCLoggerView(); 3873 view.Show(); 3874 } 3875 3906 3876 3907 3877 }//End class -
Scheduling/branches/BMX4Support/ClinicalScheduling.csproj
r1174 r1194 148 148 <Compile Include="Provider.cs" /> 149 149 <Compile Include="RadiologyExam.cs" /> 150 <Compile Include="RPCLogger.cs" /> 151 <Compile Include="RPCLoggerView.cs"> 152 <SubType>Form</SubType> 153 </Compile> 154 <Compile Include="RPCLoggerView.Designer.cs"> 155 <DependentUpon>RPCLoggerView.cs</DependentUpon> 156 </Compile> 150 157 <Compile Include="strings.ar.Designer.cs"> 151 158 <AutoGen>True</AutoGen> … … 431 438 <EmbeddedResource Include="LoadingSplash.resx"> 432 439 <DependentUpon>LoadingSplash.cs</DependentUpon> 440 </EmbeddedResource> 441 <EmbeddedResource Include="RPCLoggerView.resx"> 442 <DependentUpon>RPCLoggerView.cs</DependentUpon> 433 443 </EmbeddedResource> 434 444 <EmbeddedResource Include="strings.ar.resx"> … … 479 489 </ItemGroup> 480 490 <ItemGroup> 481 <ProjectReference Include="..\bmx\BMXNet\BMXNet.csproj"> 491 <ProjectReference Include="..\BMX4\IHS BMX Framework\IndianHealthService.BMXNet.WinForm\IndianHealthService.BMXNet.WinForm.csproj"> 492 <Project>{3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}</Project> 493 <Name>IndianHealthService.BMXNet.WinForm</Name> 494 </ProjectReference> 495 <ProjectReference Include="..\BMX4\IHS BMX Framework\IndianHealthService.BMXNet\IndianHealthService.BMXNet.csproj"> 482 496 <Project>{DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}</Project> 483 <Name> BMXNet</Name>497 <Name>IndianHealthService.BMXNet</Name> 484 498 </ProjectReference> 485 499 </ItemGroup> -
Scheduling/branches/BMX4Support/ClinicalScheduling.csproj.user
r1159 r1194 37 37 </RemoteDebugMachine> 38 38 <StartAction>Project</StartAction> 39 <StartArguments>/s=172.16.16.1 08 /p=9250 /a=s.habiel/v=catdog.77</StartArguments>39 <StartArguments>/s=172.16.16.142 /p=9260 /a=shabiel12 /v=catdog.77</StartArguments> 40 40 <StartPage> 41 41 </StartPage> -
Scheduling/branches/BMX4Support/ClinicalScheduling.sln
r1122 r1194 3 3 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClinicalScheduling", "ClinicalScheduling.csproj", "{8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}" 4 4 EndProject 5 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BMXNet", "..\bmx\BMXNet\BMXNet.csproj", "{DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}" 5 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndianHealthService.BMXNet", "..\BMX4\IHS BMX Framework\IndianHealthService.BMXNet\IndianHealthService.BMXNet.csproj", "{DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}" 6 EndProject 7 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IndianHealthService.BMXNet.WinForm", "..\BMX4\IHS BMX Framework\IndianHealthService.BMXNet.WinForm\IndianHealthService.BMXNet.WinForm.csproj", "{3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}" 6 8 EndProject 7 9 Global … … 19 21 {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Release|Any CPU.ActiveCfg = Release|Any CPU 20 22 {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Release|Any CPU.Build.0 = Release|Any CPU 23 {3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 24 {3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU 25 {3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU 26 {3B9011B5-59F4-4F6B-ADC7-54ADC6948F4D}.Release|Any CPU.Build.0 = Release|Any CPU 21 27 EndGlobalSection 22 28 GlobalSection(SolutionProperties) = preSolution -
Scheduling/branches/BMX4Support/DAL.cs
r1174 r1194 16 16 public class DAL 17 17 { 18 private BMXNetConnectInfo_thisConnection; // set in constructor18 private RemoteSession _thisConnection; // set in constructor 19 19 20 20 delegate DataTable RPMSDataTableDelegate(string CommandString, string TableName); // for use in calling (Sync and Async) … … 25 25 /// </summary> 26 26 /// <param name="conn">The current connection to use</param> 27 public DAL( BMXNetConnectInfoconn)27 public DAL(RemoteSession conn) 28 28 { 29 29 this._thisConnection = conn; … … 39 39 { 40 40 string cmd = String.Format("BMX VERSION INFO^{0}", nmsp); 41 return RPMSDataTable(cmd, "");41 return _thisConnection.TableFromCommand(cmd); 42 42 } 43 43 … … 50 50 { 51 51 string cmd = String.Format("BSDX SCHEDULING USER INFO^{0}", DUZ); 52 return RPMSDataTable(cmd, "");52 return _thisConnection.TableFromCommand(cmd); 53 53 } 54 54 … … 65 65 /// BLUE (NJ3,0), [0;7] 66 66 ///</returns> 67 public DataTable GetAccessTypes( )67 public DataTable GetAccessTypes(DataSet dataSetToTakeTable, string tablename) 68 68 { 69 69 string sCommandText = "SELECT * FROM BSDX_ACCESS_TYPE"; 70 DataTable table = RPMSDataTable(sCommandText, "");70 DataTable table = _thisConnection.TableFromSQL(sCommandText, dataSetToTakeTable, tablename); 71 71 DataColumn dcKey = table.Columns["BMXIEN"]; 72 72 DataColumn[] dcKeys = new DataColumn[1]; … … 93 93 string sEnd = FMDateTime.Create(EndDate).DateOnly.FMDateString; 94 94 string cmd = String.Format("BSDX CLINIC LETTERS^{0}^{1}^{2}", sClinicList, sBegin, sEnd); 95 return RPMSDataTable(cmd, "");95 return _thisConnection.TableFromCommand(cmd); 96 96 } 97 97 … … 107 107 { 108 108 string cmd = String.Format("BSDX RESOURCE LETTERS^{0}", sClinicList); 109 return RPMSDataTable(cmd, "");109 return _thisConnection.TableFromCommand(cmd); 110 110 } 111 111 … … 126 126 string sEnd = FMDateTime.Create(EndDate).DateOnly.FMDateString; 127 127 string cmd = String.Format("BSDX REBOOK CLINIC LIST^{0}^{1}^{2}", sClinicList, sBegin, sEnd); 128 return RPMSDataTable(cmd, "");128 return _thisConnection.TableFromCommand(cmd); 129 129 } 130 130 … … 139 139 { 140 140 string cmd = String.Format("BSDX REBOOK LIST^{0}", sApptList); 141 return RPMSDataTable(cmd, "");141 return _thisConnection.TableFromCommand(cmd); 142 142 } 143 143 … … 157 157 string sEnd = FMDateTime.Create(EndDate).DateOnly.FMDateString; 158 158 string cmd = String.Format("BSDX CANCEL CLINIC LIST^{0}^{1}^{2}", sClinicList, sBegin, sEnd); 159 return RPMSDataTable(cmd, "");159 return _thisConnection.TableFromCommand(cmd); 160 160 } 161 161 … … 173 173 string sEnd = FMDateTime.Create(EndDate).DateOnly.FMDateString; 174 174 string cmd = String.Format("BSDX CANCEL AV BY DATE^{0}^{1}^{2}", sResourceID, sBegin, sEnd); 175 return RPMSDataTable(cmd, "Cancelled");175 return _thisConnection.TableFromCommand(cmd); 176 176 } 177 177 … … 185 185 { 186 186 string cmd = string.Format("BSDX REMOVE CHECK-IN^{0}", ApptID); 187 return RPMSDataTable(cmd, "");187 return _thisConnection.TableFromCommand(cmd); 188 188 } 189 189 … … 197 197 { 198 198 string cmd = string.Format("BSDX GET RAD EXAM FOR PT^{0}^{1}", DFN, SCIEN); 199 DataTable tbl = RPMSDataTable(cmd, "");199 DataTable tbl = _thisConnection.TableFromCommand(cmd); 200 200 return (from row in tbl.AsEnumerable() 201 201 select new RadiologyExam … … 218 218 { 219 219 string fmStartDate = FMDateTime.Create(dStart).FMDateString; 220 string result = _thisConnection. bmxNetLib.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}^{2}", DFN, examIEN, fmStartDate));220 string result = _thisConnection.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}^{2}", DFN, examIEN, fmStartDate)); 221 221 return result == "1" ? true : false; 222 222 } … … 230 230 public bool CancelRadiologyExam(int DFN, int examIEN) 231 231 { 232 string result = _thisConnection. bmxNetLib.TransmitRPC("BSDX HOLD RAD EXAM", string.Format("{0}^{1}", DFN, examIEN));232 string result = _thisConnection.TransmitRPC("BSDX HOLD RAD EXAM", string.Format("{0}^{1}", DFN, examIEN)); 233 233 return result == "1" ? true : false; 234 234 } … … 245 245 get 246 246 { 247 string val = _thisConnection. bmxNetLib.TransmitRPC("BSDX GET PARAM", "BSDX AUTO PRINT RS"); //1 = true; 0 = false; "" = not set247 string val = _thisConnection.TransmitRPC("BSDX GET PARAM", "BSDX AUTO PRINT RS"); //1 = true; 0 = false; "" = not set 248 248 return val == "1" ? true : false; 249 249 } 250 250 set 251 251 { 252 TransmitRPCAsync _asyncTransmitter = new TransmitRPCAsync(_thisConnection. bmxNetLib.TransmitRPC);252 TransmitRPCAsync _asyncTransmitter = new TransmitRPCAsync(_thisConnection.TransmitRPC); 253 253 // 0 = success; anything else is wrong. Not being tested here as its success is not critical to application use. 254 254 _asyncTransmitter.BeginInvoke("BSDX SET PARAM", String.Format("{0}^{1}", "BSDX AUTO PRINT RS", value ? "1" : "0"), null, null); … … 267 267 get 268 268 { 269 string val = _thisConnection. bmxNetLib.TransmitRPC("BSDX GET PARAM", "BSDX AUTO PRINT AS"); //1 = true; 0 = false; "" = not set269 string val = _thisConnection.TransmitRPC("BSDX GET PARAM", "BSDX AUTO PRINT AS"); //1 = true; 0 = false; "" = not set 270 270 return val == "1" ? true : false; 271 271 } 272 272 set 273 273 { 274 TransmitRPCAsync _asyncTransmitter = new TransmitRPCAsync(_thisConnection. bmxNetLib.TransmitRPC);274 TransmitRPCAsync _asyncTransmitter = new TransmitRPCAsync(_thisConnection.TransmitRPC); 275 275 // 0 = success; anything else is wrong. Not being tested here as its success is not critical to application use. 276 276 _asyncTransmitter.BeginInvoke("BSDX SET PARAM", String.Format("{0}^{1}", "BSDX AUTO PRINT AS", value ? "1" : "0"), null, null); … … 292 292 DataTable dtOut; 293 293 294 #if TRACE295 DateTime sendTime = DateTime.Now;296 #endif297 294 try 298 295 { 299 RPMSDataTableDelegate rdtd = new RPMSDataTableDelegate(_thisConnection. RPMSDataTable);296 RPMSDataTableDelegate rdtd = new RPMSDataTableDelegate(_thisConnection.TableFromSQL); 300 297 dtOut = (DataTable)rdtd.Invoke(sSQL, sTableName); 301 298 } … … 306 303 throw ex; 307 304 } 308 309 #if TRACE310 DateTime receiveTime = DateTime.Now;311 TimeSpan executionTime = receiveTime - sendTime;312 Debug.Write("RPMSDataTable Execution Time: " + executionTime.Milliseconds + " ms.\n");313 #endif314 305 315 306 return dtOut; -
Scheduling/branches/BMX4Support/DManagement.cs
r1075 r1194 140 140 this.m_dsGlobal = m_DocManager.GlobalDataSet; 141 141 142 MgrEventDelegate = new BMXNetConnectInfo.BMXNetEventDelegate(MgrEventHandler); 143 m_DocManager.ConnectInfo.BMXNetEvent += MgrEventDelegate; 144 m_DocManager.ConnectInfo.SubscribeEvent("BSDX WORKSTATION REPORT"); 142 m_DocManager.RemoteSession.EventServices.RpmsEvent += MgrEventHandler; 143 m_DocManager.RemoteSession.EventServices.Subscribe("BSDX WORKSTATION REPORT"); 145 144 m_dtWSGrid = new DataTable("WSGrid"); 146 145 m_dtWSGrid.Columns.Add("UserName", typeof(System.String)); … … 1899 1898 m_dsGlobal.Tables["AccessTypes"].Clear(); 1900 1899 m_dsGlobal.Tables["AccessGroupType"].Clear(); 1901 DataTable dt1 = m_DocManager.DAL.GetAccessTypes(); 1902 m_dsGlobal.Tables["AccessTypes"].Merge(dt1); 1903 m_dsGlobal.Tables.Add(dt1); 1900 //PORT TODO: This may fail. 1901 DataTable dt1 = m_DocManager.DAL.GetAccessTypes(m_dsGlobal, "AccessTypes"); 1902 //m_dsGlobal.Tables["AccessTypes"].Merge(dt1); //smh -commented out for BMX4 1903 //m_dsGlobal.Tables.Add(dt1); //smh -commented out for BMX4 1904 1904 //Fix Groups 1905 1905 //m_DocManager.LoadAccessTypesTable(); … … 2329 2329 { 2330 2330 this.m_dtWSGrid.Clear(); 2331 this.m_DocManager.ConnectInfo.RaiseEvent("BSDX CALL WORKSTATIONS", "A", true); 2332 } 2333 2334 private BMXNetConnectInfo.BMXNetEventDelegate MgrEventDelegate; 2331 this.m_DocManager.RemoteSession.EventServices.TriggerEvent("BSDX CALL WORKSTATIONS", "A", true); 2332 } 2333 2335 2334 delegate void UpdateWorkstationGridDelegate(string sParam); 2336 2335 2337 private void MgrEventHandler(Object obj, BMXNet.BMXNetEventArgs e)2336 private void MgrEventHandler(Object obj, RemoteEventArgs e) 2338 2337 { 2339 2338 try 2340 2339 { 2341 if (e. BMXEvent== "BSDX WORKSTATION REPORT")2340 if (e.EventType == "BSDX WORKSTATION REPORT") 2342 2341 { 2343 2342 Debug.Write("DManagement Got Workstation Report\n"); … … 2345 2344 if (this.InvokeRequired == true) //ensures that handle is created 2346 2345 { 2347 this.Invoke(uWSGd, new object[] { e. BMXParam});2346 this.Invoke(uWSGd, new object[] { e.Details }); 2348 2347 } 2349 2348 else 2350 2349 { 2351 UpdateWorkstationGrid(e. BMXParam);2350 UpdateWorkstationGrid(e.Details); 2352 2351 } 2353 2352 } … … 2363 2362 string sDelim = "~"; 2364 2363 DataRow dr = this.m_dtWSGrid.NewRow(); 2365 dr["UserName"] = BMXNetLib.Piece(sParam,sDelim,1);2366 dr["Handle"] = BMXNetLib.Piece(sParam,sDelim,2);2367 dr["Version"] = BMXNetLib.Piece(sParam,sDelim,3);2368 dr["Views"] = BMXNetLib.Piece(sParam,sDelim,4);2364 dr["UserName"] = M.Piece(sParam,sDelim,1); 2365 dr["Handle"] = M.Piece(sParam,sDelim,2); 2366 dr["Version"] = M.Piece(sParam,sDelim,3); 2367 dr["Views"] = M.Piece(sParam,sDelim,4); 2369 2368 m_dtWSGrid.Rows.Add(dr); 2370 2369 } … … 2372 2371 private void DManagement_Closing(object sender, System.ComponentModel.CancelEventArgs e) 2373 2372 { 2374 m_DocManager.ConnectInfo.UnSubscribeEvent("BSDX WORKSTATION REPORT");2373 CGDocumentManager.Current.RemoteSession.EventServices.Unsubscribe("BSDX WORKSTATION REPORT"); 2375 2374 } 2376 2375 … … 2389 2388 return; 2390 2389 2391 this.m_DocManager.ConnectInfo.RaiseEvent("BSDX ADMIN MESSAGE", sMessage, false);2390 this.m_DocManager.RemoteSession.EventServices.TriggerEvent("BSDX ADMIN MESSAGE", sMessage, false); 2392 2391 } 2393 2392 … … 2398 2397 return; 2399 2398 } 2400 this.m_DocManager.ConnectInfo.RaiseEvent("BSDX ADMIN SHUTDOWN", txtSendMessage.Text, false);2399 this.m_DocManager.RemoteSession.EventServices.TriggerEvent("BSDX ADMIN SHUTDOWN", txtSendMessage.Text, false); 2401 2400 } 2402 2401 #endregion Workstations -
Scheduling/branches/BMX4Support/Printing.cs
r1159 r1194 181 181 182 182 // Draw Header 183 string division = CGDocumentManager.Current. ConnectInfo.DivisionName;183 string division = CGDocumentManager.Current.RemoteSession.User.Division.Name; 184 184 g.DrawString(division, fBody, Brushes.Black, headerArea, sfCenterCenter); 185 185 … … 591 591 592 592 // Draw Header 593 string division = CGDocumentManager.Current. ConnectInfo.DivisionName;593 string division = CGDocumentManager.Current.RemoteSession.User.Division.Name; 594 594 g.DrawString(division, fBody, Brushes.Black, headerArea, sf0); 595 595
Note:
See TracChangeset
for help on using the changeset viewer.