Changeset 913


Ignore:
Timestamp:
Aug 17, 2010, 8:50:19 AM (14 years ago)
Author:
Sam Habiel
Message:

CGAVDocument contains changes for start day of grid based on weekday locale and colummns
CGAVView: Shortcut keys; correct updating when number of columns is changed in grid
CGDocument: changes for start day of grid. Modified algorithm.
DAccessTemplate: Takes any weekday now for applying a template, not just Monday. Then calculation of start day is done in CGAVView based on locale in the same algorithm that the rest of the GUI uses.
DAppointPage: Now says Mobile/Cell instead of Cell Phone.

Location:
Scheduling/trunk/cs/bsdx0200GUISourceCode
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAVDocument.cs

    r864 r913  
    401401                }
    402402
    403                 /// <summary>
    404                 /// Given a selected date,
    405                 /// Calculates StartDay and End Day and returns them in output params. 
    406                 /// nWeeks == number of Weeks to display
    407                 /// nColumnCount is number of days displayed per week.  If 5 columns, begin on
    408                 /// Monday, if 7 Columns, begin on Sunday
    409                 ///
    410                 /// Returns TRUE if the document's data needs refreshing based on
    411                 /// this newly selected date.
    412                 /// </summary>
     403        /// <summary>
     404        /// Given a selected date,
     405        /// Calculates StartDay and End Day and returns them in output params. 
     406        /// nWeeks == number of Weeks to display
     407        /// nColumnCount is number of days displayed per week. 
     408        /// If 5 columns, begin on Second Day of Week
     409        /// If 7 Columns, begin on First Day of Week
     410        /// (this is a change from the hardcoded behavior for US-based calendars)
     411        ///
     412        /// Returns TRUE if the document's data needs refreshing based on
     413        /// this newly selected date.
     414        /// </summary>
     415        /// TODO: This is a duplicate of the method in CGDocument. We need to put them together.
    413416                public bool WeekNeedsRefresh(int nWeeks, DateTime SelectedDate,
    414417                        out DateTime WeekStartDay, out DateTime WeekEndDay)
    415418                {
    416                         DateTime OldStartDay = m_dStartDate;
    417                         DateTime OldEndDay = m_dEndDate;
    418                         int nWeekDay = (int) SelectedDate.DayOfWeek; //0 == Sunday
    419 
    420                         int nOff = 1;
    421                         TimeSpan ts = new TimeSpan(nWeekDay - nOff,0,0,0); //d,h,m,s
    422 
    423                         if (m_nColumnCount == 1)
    424                         {
    425                                 ts = new TimeSpan(0,23,59,59);
    426                                 WeekStartDay = SelectedDate;
    427                         }
    428                         else
    429                         {
    430                                 WeekStartDay = SelectedDate - ts;
    431                                 if (m_nColumnCount == 7)
    432                                 {
    433                                         ts = new TimeSpan(1,0,0,0);
    434                                         WeekStartDay -= ts;
    435                                 }
    436                                 int nEnd = (m_nColumnCount == 7) ? 1 : 3;
    437                                 ts = new TimeSpan((7* nWeeks) - nEnd, 23, 59,59);
    438                         }
    439                         WeekEndDay = WeekStartDay + ts;
    440                         bool bRet = (( WeekStartDay.Date != OldStartDay.Date) || (WeekEndDay.Date != OldEndDay.Date));
    441                         return bRet;
     419            DateTime OldStartDay = m_dStartDate;
     420            DateTime OldEndDay = m_dEndDate;
     421            // Week start based on thread locale
     422            int nStartWeekDay = (int)System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
     423            // Current Day
     424            int nWeekDay = (int)SelectedDate.DayOfWeek; //0 == Sunday
     425
     426            // this offset gets approrpriate day based on locale.
     427            int nOff = (nStartWeekDay + 1) % 7;
     428            TimeSpan ts = new TimeSpan(nWeekDay - nOff, 0, 0, 0); //d,h,m,s
     429
     430            // if ts is negative, we will jump to the next week in the logic.
     431            // to show the correct week, add 7. Confusing, I know.
     432            if (ts < new TimeSpan()) ts = ts + new TimeSpan(7, 0, 0, 0);
     433
     434            if (m_nColumnCount == 1) // if one column start and end on the same day.
     435            {
     436                ts = new TimeSpan(0, 23, 59, 59);
     437                WeekStartDay = SelectedDate;
     438                WeekEndDay = WeekStartDay + ts;
     439            }
     440            else if (m_nColumnCount == 5 || m_nColumnCount == 0) // if 5 column start (or default) at the 2nd day of this week and end in 4:23:59:59 days.
     441            {
     442                // if picked day is start of week (Sunday in US), start in the next day since that's the first day of work week
     443                // else, just substract the calculated time span to get to the start of week (first work day)
     444                WeekStartDay = (nWeekDay == nStartWeekDay) ? SelectedDate + new TimeSpan(1, 0, 0, 0) : SelectedDate - ts;
     445                // End day calculation
     446                int nEnd = 3;
     447                ts = new TimeSpan((7 * nWeeks) - nEnd, 23, 59, 59);
     448                WeekEndDay = WeekStartDay + ts;
     449            }
     450            else // if 7 column start at the 1st day of this week and end in 6:23:59:59 days.
     451            {
     452                // if picked day is start of week, use that. Otherwise, go to the fist work day and substract one to get to start of week.
     453                WeekStartDay = (nWeekDay == nStartWeekDay) ? SelectedDate : SelectedDate - ts - new TimeSpan(1, 0, 0, 0);
     454                // End day calculation
     455                int nEnd = 1;
     456                ts = new TimeSpan((7 * nWeeks) - nEnd, 23, 59, 59);
     457                WeekEndDay = WeekStartDay + ts;
     458            }
     459
     460            bool bRet = ((WeekStartDay.Date != OldStartDay.Date) || (WeekEndDay.Date != OldEndDay.Date));
     461            return bRet;
    442462                }
    443463
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAVView.cs

    r908 r913  
    5959            this.lblResource = new System.Windows.Forms.Label();
    6060            this.panelCenter = new System.Windows.Forms.Panel();
    61             this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
    6261            this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
    6362            this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
     
    9190            this.mnuHelpAbout = new System.Windows.Forms.MenuItem();
    9291            this.splitter1 = new System.Windows.Forms.Splitter();
     92            this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
    9393            this.panelRight.SuspendLayout();
    9494            this.panelClip.SuspendLayout();
     
    104104            this.panelRight.Location = new System.Drawing.Point(728, 0);
    105105            this.panelRight.Name = "panelRight";
    106             this.panelRight.Size = new System.Drawing.Size(120, 450);
     106            this.panelRight.Size = new System.Drawing.Size(120, 517);
    107107            this.panelRight.TabIndex = 1;
    108108            //
     
    165165            this.panelBottom.Controls.Add(this.statusBar1);
    166166            this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
    167             this.panelBottom.Location = new System.Drawing.Point(8, 426);
     167            this.panelBottom.Location = new System.Drawing.Point(8, 493);
    168168            this.panelBottom.Name = "panelBottom";
    169169            this.panelBottom.Size = new System.Drawing.Size(720, 24);
     
    217217            this.panelCenter.Location = new System.Drawing.Point(8, 24);
    218218            this.panelCenter.Name = "panelCenter";
    219             this.panelCenter.Size = new System.Drawing.Size(712, 402);
     219            this.panelCenter.Size = new System.Drawing.Size(712, 469);
    220220            this.panelCenter.TabIndex = 4;
     221            //
     222            // ctxCalendarGrid
     223            //
     224            this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     225            this.ctxCalGridAdd,
     226            this.ctxCalGridEdit,
     227            this.ctxCalGridDelete});
     228            this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
     229            //
     230            // ctxCalGridAdd
     231            //
     232            this.ctxCalGridAdd.Index = 0;
     233            this.ctxCalGridAdd.Text = "Add New Access Block";
     234            this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
     235            //
     236            // ctxCalGridEdit
     237            //
     238            this.ctxCalGridEdit.Index = 1;
     239            this.ctxCalGridEdit.Text = "Edit Access Block";
     240            this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
     241            //
     242            // ctxCalGridDelete
     243            //
     244            this.ctxCalGridDelete.Index = 2;
     245            this.ctxCalGridDelete.Text = "Delete Access Block";
     246            this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
     247            //
     248            // tvSchedules
     249            //
     250            this.tvSchedules.BackColor = System.Drawing.SystemColors.ControlLight;
     251            this.tvSchedules.Dock = System.Windows.Forms.DockStyle.Left;
     252            this.tvSchedules.HotTracking = true;
     253            this.tvSchedules.Location = new System.Drawing.Point(0, 0);
     254            this.tvSchedules.Name = "tvSchedules";
     255            this.tvSchedules.Size = new System.Drawing.Size(8, 517);
     256            this.tvSchedules.Sorted = true;
     257            this.tvSchedules.TabIndex = 5;
     258            //
     259            // mainMenu1
     260            //
     261            this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     262            this.menuItem1,
     263            this.mnuAvailability,
     264            this.mnuCalendar,
     265            this.mnuHelp});
     266            //
     267            // menuItem1
     268            //
     269            this.menuItem1.Index = 0;
     270            this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     271            this.mnuLoadTemplate,
     272            this.mnuSaveTemplate,
     273            this.menuItem6,
     274            this.mnuSchedulingManagment,
     275            this.menuItem5,
     276            this.mnuClose});
     277            this.menuItem1.Text = "&File";
     278            //
     279            // mnuLoadTemplate
     280            //
     281            this.mnuLoadTemplate.Index = 0;
     282            this.mnuLoadTemplate.Shortcut = System.Windows.Forms.Shortcut.CtrlA;
     283            this.mnuLoadTemplate.Text = "&Apply Template";
     284            this.mnuLoadTemplate.Click += new System.EventHandler(this.mnuLoadTemplate_Click);
     285            //
     286            // mnuSaveTemplate
     287            //
     288            this.mnuSaveTemplate.Index = 1;
     289            this.mnuSaveTemplate.Shortcut = System.Windows.Forms.Shortcut.CtrlS;
     290            this.mnuSaveTemplate.Text = "&Save Template";
     291            this.mnuSaveTemplate.Click += new System.EventHandler(this.mnuSaveTemplate_Click);
     292            //
     293            // menuItem6
     294            //
     295            this.menuItem6.Index = 2;
     296            this.menuItem6.Text = "-";
     297            //
     298            // mnuSchedulingManagment
     299            //
     300            this.mnuSchedulingManagment.Index = 3;
     301            this.mnuSchedulingManagment.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftM;
     302            this.mnuSchedulingManagment.Text = "Scheduling &Management";
     303            this.mnuSchedulingManagment.Click += new System.EventHandler(this.mnuSchedulingManagment_Click);
     304            //
     305            // menuItem5
     306            //
     307            this.menuItem5.Index = 4;
     308            this.menuItem5.Text = "-";
     309            //
     310            // mnuClose
     311            //
     312            this.mnuClose.Index = 5;
     313            this.mnuClose.Shortcut = System.Windows.Forms.Shortcut.CtrlW;
     314            this.mnuClose.Text = "&Close";
     315            this.mnuClose.Click += new System.EventHandler(this.mnuClose_Click);
     316            //
     317            // mnuAvailability
     318            //
     319            this.mnuAvailability.Index = 1;
     320            this.mnuAvailability.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     321            this.mnuAddNewAV,
     322            this.mnuRemoveAV,
     323            this.mnuEditAV});
     324            this.mnuAvailability.Text = "&Access Blocks";
     325            this.mnuAvailability.Popup += new System.EventHandler(this.mnuAvailability_Popup);
     326            //
     327            // mnuAddNewAV
     328            //
     329            this.mnuAddNewAV.Index = 0;
     330            this.mnuAddNewAV.Shortcut = System.Windows.Forms.Shortcut.CtrlN;
     331            this.mnuAddNewAV.Text = "Add &New Block";
     332            this.mnuAddNewAV.Click += new System.EventHandler(this.mnuAddNewAV_Click);
     333            //
     334            // mnuRemoveAV
     335            //
     336            this.mnuRemoveAV.Index = 1;
     337            this.mnuRemoveAV.Shortcut = System.Windows.Forms.Shortcut.CtrlR;
     338            this.mnuRemoveAV.Text = "&Remove Block";
     339            this.mnuRemoveAV.Click += new System.EventHandler(this.mnuRemoveAV_Click);
     340            //
     341            // mnuEditAV
     342            //
     343            this.mnuEditAV.Index = 2;
     344            this.mnuEditAV.Shortcut = System.Windows.Forms.Shortcut.CtrlE;
     345            this.mnuEditAV.Text = "&Edit Block";
     346            this.mnuEditAV.Click += new System.EventHandler(this.mnuEditAV_Click);
     347            //
     348            // mnuCalendar
     349            //
     350            this.mnuCalendar.Index = 2;
     351            this.mnuCalendar.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     352            this.mnu1Day,
     353            this.mnu5Day,
     354            this.mnu7Day,
     355            this.menuItem7,
     356            this.mnuTimeScale,
     357            this.mnuViewRightPanel});
     358            this.mnuCalendar.Text = "&View";
     359            //
     360            // mnu1Day
     361            //
     362            this.mnu1Day.Index = 0;
     363            this.mnu1Day.Shortcut = System.Windows.Forms.Shortcut.Ctrl1;
     364            this.mnu1Day.Text = "&1-Day View";
     365            this.mnu1Day.Click += new System.EventHandler(this.mnu1Day_Click);
     366            //
     367            // mnu5Day
     368            //
     369            this.mnu5Day.Index = 1;
     370            this.mnu5Day.Shortcut = System.Windows.Forms.Shortcut.Ctrl5;
     371            this.mnu5Day.Text = "&5-Day View";
     372            this.mnu5Day.Click += new System.EventHandler(this.mnu5Day_Click);
     373            //
     374            // mnu7Day
     375            //
     376            this.mnu7Day.Index = 2;
     377            this.mnu7Day.Shortcut = System.Windows.Forms.Shortcut.Ctrl7;
     378            this.mnu7Day.Text = "&7-Day View";
     379            this.mnu7Day.Click += new System.EventHandler(this.mnu7Day_Click);
     380            //
     381            // menuItem7
     382            //
     383            this.menuItem7.Index = 3;
     384            this.menuItem7.Text = "-";
     385            //
     386            // mnuTimeScale
     387            //
     388            this.mnuTimeScale.Index = 4;
     389            this.mnuTimeScale.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     390            this.mnu10Minute,
     391            this.mnu15Minute,
     392            this.mnu20Minute,
     393            this.mnu30Minute});
     394            this.mnuTimeScale.Text = "&Time Scale";
     395            //
     396            // mnu10Minute
     397            //
     398            this.mnu10Minute.Index = 0;
     399            this.mnu10Minute.Shortcut = System.Windows.Forms.Shortcut.Ctrl0;
     400            this.mnu10Minute.Text = "&10-Minute";
     401            this.mnu10Minute.Click += new System.EventHandler(this.mnu10Minute_Click);
     402            //
     403            // mnu15Minute
     404            //
     405            this.mnu15Minute.Index = 1;
     406            this.mnu15Minute.Shortcut = System.Windows.Forms.Shortcut.Ctrl4;
     407            this.mnu15Minute.Text = "&15-Minute";
     408            this.mnu15Minute.Click += new System.EventHandler(this.mnu15Minute_Click);
     409            //
     410            // mnu20Minute
     411            //
     412            this.mnu20Minute.Index = 2;
     413            this.mnu20Minute.Shortcut = System.Windows.Forms.Shortcut.Ctrl3;
     414            this.mnu20Minute.Text = "&20-Minute";
     415            this.mnu20Minute.Click += new System.EventHandler(this.mnu20Minute_Click);
     416            //
     417            // mnu30Minute
     418            //
     419            this.mnu30Minute.Index = 3;
     420            this.mnu30Minute.Shortcut = System.Windows.Forms.Shortcut.Ctrl2;
     421            this.mnu30Minute.Text = "&30-Minute";
     422            this.mnu30Minute.Click += new System.EventHandler(this.mnu30Minute_Click);
     423            //
     424            // mnuViewRightPanel
     425            //
     426            this.mnuViewRightPanel.Index = 5;
     427            this.mnuViewRightPanel.Text = "&Access Block Clipboard";
     428            this.mnuViewRightPanel.Click += new System.EventHandler(this.mnuViewRightPanel_Click);
     429            //
     430            // mnuHelp
     431            //
     432            this.mnuHelp.Index = 3;
     433            this.mnuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     434            this.mnuHelpAbout});
     435            this.mnuHelp.Text = "&Help";
     436            //
     437            // mnuHelpAbout
     438            //
     439            this.mnuHelpAbout.Index = 0;
     440            this.mnuHelpAbout.Text = "&About";
     441            this.mnuHelpAbout.Click += new System.EventHandler(this.mnuHelpAbout_Click);
     442            //
     443            // splitter1
     444            //
     445            this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
     446            this.splitter1.Location = new System.Drawing.Point(720, 24);
     447            this.splitter1.Name = "splitter1";
     448            this.splitter1.Size = new System.Drawing.Size(8, 469);
     449            this.splitter1.TabIndex = 6;
     450            this.splitter1.TabStop = false;
    221451            //
    222452            // calendarGrid1
     
    239469            this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
    240470            this.calendarGrid1.SelectedAppointment = 0;
    241             this.calendarGrid1.Size = new System.Drawing.Size(712, 402);
     471            this.calendarGrid1.Size = new System.Drawing.Size(712, 469);
    242472            this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
    243473            this.calendarGrid1.TabIndex = 2;
     
    248478            this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
    249479            //
    250             // ctxCalendarGrid
    251             //
    252             this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    253             this.ctxCalGridAdd,
    254             this.ctxCalGridEdit,
    255             this.ctxCalGridDelete});
    256             this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
    257             //
    258             // ctxCalGridAdd
    259             //
    260             this.ctxCalGridAdd.Index = 0;
    261             this.ctxCalGridAdd.Text = "Add New Access Block";
    262             this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
    263             //
    264             // ctxCalGridEdit
    265             //
    266             this.ctxCalGridEdit.Index = 1;
    267             this.ctxCalGridEdit.Text = "Edit Access Block";
    268             this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
    269             //
    270             // ctxCalGridDelete
    271             //
    272             this.ctxCalGridDelete.Index = 2;
    273             this.ctxCalGridDelete.Text = "Delete Access Block";
    274             this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
    275             //
    276             // tvSchedules
    277             //
    278             this.tvSchedules.BackColor = System.Drawing.SystemColors.ControlLight;
    279             this.tvSchedules.Dock = System.Windows.Forms.DockStyle.Left;
    280             this.tvSchedules.HotTracking = true;
    281             this.tvSchedules.Location = new System.Drawing.Point(0, 0);
    282             this.tvSchedules.Name = "tvSchedules";
    283             this.tvSchedules.Size = new System.Drawing.Size(8, 450);
    284             this.tvSchedules.Sorted = true;
    285             this.tvSchedules.TabIndex = 5;
    286             //
    287             // mainMenu1
    288             //
    289             this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    290             this.menuItem1,
    291             this.mnuAvailability,
    292             this.mnuCalendar,
    293             this.mnuHelp});
    294             //
    295             // menuItem1
    296             //
    297             this.menuItem1.Index = 0;
    298             this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    299             this.mnuLoadTemplate,
    300             this.mnuSaveTemplate,
    301             this.menuItem6,
    302             this.mnuSchedulingManagment,
    303             this.menuItem5,
    304             this.mnuClose});
    305             this.menuItem1.Text = "&File";
    306             //
    307             // mnuLoadTemplate
    308             //
    309             this.mnuLoadTemplate.Index = 0;
    310             this.mnuLoadTemplate.Text = "&Apply Template";
    311             this.mnuLoadTemplate.Click += new System.EventHandler(this.mnuLoadTemplate_Click);
    312             //
    313             // mnuSaveTemplate
    314             //
    315             this.mnuSaveTemplate.Index = 1;
    316             this.mnuSaveTemplate.Text = "&Save Template";
    317             this.mnuSaveTemplate.Click += new System.EventHandler(this.mnuSaveTemplate_Click);
    318             //
    319             // menuItem6
    320             //
    321             this.menuItem6.Index = 2;
    322             this.menuItem6.Text = "-";
    323             //
    324             // mnuSchedulingManagment
    325             //
    326             this.mnuSchedulingManagment.Index = 3;
    327             this.mnuSchedulingManagment.Text = "Scheduling &Management";
    328             this.mnuSchedulingManagment.Click += new System.EventHandler(this.mnuSchedulingManagment_Click);
    329             //
    330             // menuItem5
    331             //
    332             this.menuItem5.Index = 4;
    333             this.menuItem5.Text = "-";
    334             //
    335             // mnuClose
    336             //
    337             this.mnuClose.Index = 5;
    338             this.mnuClose.Text = "&Close";
    339             this.mnuClose.Click += new System.EventHandler(this.mnuClose_Click);
    340             //
    341             // mnuAvailability
    342             //
    343             this.mnuAvailability.Index = 1;
    344             this.mnuAvailability.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    345             this.mnuAddNewAV,
    346             this.mnuRemoveAV,
    347             this.mnuEditAV});
    348             this.mnuAvailability.Text = "&Access Blocks";
    349             this.mnuAvailability.Popup += new System.EventHandler(this.mnuAvailability_Popup);
    350             //
    351             // mnuAddNewAV
    352             //
    353             this.mnuAddNewAV.Index = 0;
    354             this.mnuAddNewAV.Text = "&Add New Block";
    355             this.mnuAddNewAV.Click += new System.EventHandler(this.mnuAddNewAV_Click);
    356             //
    357             // mnuRemoveAV
    358             //
    359             this.mnuRemoveAV.Index = 1;
    360             this.mnuRemoveAV.Text = "&Remove Block";
    361             this.mnuRemoveAV.Click += new System.EventHandler(this.mnuRemoveAV_Click);
    362             //
    363             // mnuEditAV
    364             //
    365             this.mnuEditAV.Index = 2;
    366             this.mnuEditAV.Text = "&Edit Block";
    367             this.mnuEditAV.Click += new System.EventHandler(this.mnuEditAV_Click);
    368             //
    369             // mnuCalendar
    370             //
    371             this.mnuCalendar.Index = 2;
    372             this.mnuCalendar.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    373             this.mnu1Day,
    374             this.mnu5Day,
    375             this.mnu7Day,
    376             this.menuItem7,
    377             this.mnuTimeScale,
    378             this.mnuViewRightPanel});
    379             this.mnuCalendar.Text = "&View";
    380             //
    381             // mnu1Day
    382             //
    383             this.mnu1Day.Index = 0;
    384             this.mnu1Day.Text = "&1-Day View";
    385             this.mnu1Day.Click += new System.EventHandler(this.mnu1Day_Click);
    386             //
    387             // mnu5Day
    388             //
    389             this.mnu5Day.Index = 1;
    390             this.mnu5Day.Text = "&5-Day View";
    391             this.mnu5Day.Click += new System.EventHandler(this.mnu5Day_Click);
    392             //
    393             // mnu7Day
    394             //
    395             this.mnu7Day.Index = 2;
    396             this.mnu7Day.Text = "&7-Day View";
    397             this.mnu7Day.Click += new System.EventHandler(this.mnu7Day_Click);
    398             //
    399             // menuItem7
    400             //
    401             this.menuItem7.Index = 3;
    402             this.menuItem7.Text = "-";
    403             //
    404             // mnuTimeScale
    405             //
    406             this.mnuTimeScale.Index = 4;
    407             this.mnuTimeScale.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    408             this.mnu10Minute,
    409             this.mnu15Minute,
    410             this.mnu20Minute,
    411             this.mnu30Minute});
    412             this.mnuTimeScale.Text = "&Time Scale";
    413             //
    414             // mnu10Minute
    415             //
    416             this.mnu10Minute.Index = 0;
    417             this.mnu10Minute.Text = "&10-Minute";
    418             this.mnu10Minute.Click += new System.EventHandler(this.mnu10Minute_Click);
    419             //
    420             // mnu15Minute
    421             //
    422             this.mnu15Minute.Index = 1;
    423             this.mnu15Minute.Text = "&15-Minute";
    424             this.mnu15Minute.Click += new System.EventHandler(this.mnu15Minute_Click);
    425             //
    426             // mnu20Minute
    427             //
    428             this.mnu20Minute.Index = 2;
    429             this.mnu20Minute.Text = "&20-Minute";
    430             this.mnu20Minute.Click += new System.EventHandler(this.mnu20Minute_Click);
    431             //
    432             // mnu30Minute
    433             //
    434             this.mnu30Minute.Index = 3;
    435             this.mnu30Minute.Text = "&30-Minute";
    436             this.mnu30Minute.Click += new System.EventHandler(this.mnu30Minute_Click);
    437             //
    438             // mnuViewRightPanel
    439             //
    440             this.mnuViewRightPanel.Index = 5;
    441             this.mnuViewRightPanel.Text = "&Access Block Clipboard";
    442             this.mnuViewRightPanel.Click += new System.EventHandler(this.mnuViewRightPanel_Click);
    443             //
    444             // mnuHelp
    445             //
    446             this.mnuHelp.Index = 3;
    447             this.mnuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    448             this.mnuHelpAbout});
    449             this.mnuHelp.Text = "&Help";
    450             //
    451             // mnuHelpAbout
    452             //
    453             this.mnuHelpAbout.Index = 0;
    454             this.mnuHelpAbout.Text = "&About";
    455             this.mnuHelpAbout.Click += new System.EventHandler(this.mnuHelpAbout_Click);
    456             //
    457             // splitter1
    458             //
    459             this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
    460             this.splitter1.Location = new System.Drawing.Point(720, 24);
    461             this.splitter1.Name = "splitter1";
    462             this.splitter1.Size = new System.Drawing.Size(8, 402);
    463             this.splitter1.TabIndex = 6;
    464             this.splitter1.TabStop = false;
    465             //
    466480            // CGAVView
    467481            //
    468482            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    469             this.ClientSize = new System.Drawing.Size(848, 450);
     483            this.ClientSize = new System.Drawing.Size(848, 517);
    470484            this.Controls.Add(this.panelCenter);
    471485            this.Controls.Add(this.splitter1);
     
    10091023
    10101024                                DateTime dtStart = dlg.StartDate;
     1025                DateTime newStartDate, newEndDate;
     1026                this.Document.WeekNeedsRefresh(1,dtStart, out newStartDate, out newEndDate);
     1027                dtStart = newStartDate;
    10111028                                int nWeeksToApply = dlg.WeeksToApply;
    10121029                                DateTime dtEnd = dtStart.AddDays(6); // or 7?
     1030
    10131031                                string sResourceID = this.m_Document.ResourceID.ToString();
    10141032                                DataTable dt;
     
    13841402                private void mnu5Day_Click(object sender, System.EventArgs e)
    13851403                {
    1386                         if (this.calendarGrid1.Columns == 1)
    1387                         {
    1388                                 this.StartDate = this.Document.StartDate;
    1389                         }
    1390 
    13911404                        this.calendarGrid1.Columns = 5;
    1392                         this.Document.UpdateAllViews();
     1405            this.Document.m_nColumnCount = 5; //TODO: redundant but now needed
    13931406                }
    13941407
     
    13961409                {
    13971410                        this.calendarGrid1.Columns = 7;
     1411            this.Document.m_nColumnCount = 7; //TODO: redundant but now needed
    13981412                }
    13991413
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/CGDocument.cs

    r908 r913  
    670670            // Week start based on thread locale
    671671            int nStartWeekDay = (int)System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
     672            // Current Day
    672673            int nWeekDay = (int) SelectedDate.DayOfWeek; //0 == Sunday
    673674
     
    676677                        TimeSpan ts = new TimeSpan(nWeekDay - nOff,0,0,0); //d,h,m,s
    677678
    678                         if (m_nColumnCount == 1)
     679            // if ts is negative, we will jump to the next week in the logic.
     680            // to show the correct week, add 7. Confusing, I know.
     681            if (ts < new TimeSpan() ) ts = ts + new TimeSpan(7,0,0,0);
     682
     683                        if (m_nColumnCount == 1) // if one column start and end on the same day.
    679684                        {
    680685                                ts = new TimeSpan(0,23,59,59);
    681686                                WeekStartDay = SelectedDate;
    682                         }
    683                         else
    684                         {
    685                                 WeekStartDay = SelectedDate - ts;
    686                                 if (m_nColumnCount == 7)
    687                                 {
    688                                         ts = new TimeSpan(1,0,0,0);
    689                                         WeekStartDay -= ts;
    690                                 }
    691                                 int nEnd = (m_nColumnCount == 7) ? 1 : 3;
    692                                 ts = new TimeSpan((7* nWeeks) - nEnd, 23, 59,59);
    693                         }
    694                         WeekEndDay = WeekStartDay + ts;
     687                WeekEndDay = WeekStartDay + ts;
     688                        }
     689            else if (m_nColumnCount == 5 || m_nColumnCount == 0) // if 5 column start (or default) at the 2nd day of this week and end in 4:23:59:59 days.
     690            {
     691                // if picked day is start of week (Sunday in US), start in the next day since that's the first day of work week
     692                // else, just substract the calculated time span to get to the start of week (first work day)
     693                WeekStartDay = (nWeekDay == nStartWeekDay) ? SelectedDate + new TimeSpan(1,0,0,0): SelectedDate - ts;
     694                // End day calculation
     695                int nEnd = 3;
     696                ts = new TimeSpan((7 * nWeeks) - nEnd, 23, 59, 59);
     697                WeekEndDay = WeekStartDay + ts;
     698            }
     699            else // if 7 column start at the 1st day of this week and end in 6:23:59:59 days.
     700            {
     701                // if picked day is start of week, use that. Otherwise, go to the fist work day and substract one to get to start of week.
     702                WeekStartDay = (nWeekDay == nStartWeekDay) ? SelectedDate : SelectedDate - ts - new TimeSpan(1,0,0,0);
     703                // End day calculation
     704                int nEnd = 1;
     705                ts = new TimeSpan((7 * nWeeks) - nEnd, 23, 59, 59);
     706                WeekEndDay = WeekStartDay + ts;
     707            }
     708
    695709                        bool bRet = (( WeekStartDay.Date != OldStartDay.Date) || (WeekEndDay.Date != OldEndDay.Date));
    696710                        return bRet;
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user

    r908 r913  
    3636    </RemoteDebugMachine>
    3737    <StartAction>Project</StartAction>
    38     <StartArguments>/s=172.16.16.125 /p=9250 /a=shabiel12 /v=abc,123! /e=utf-8</StartArguments>
     38    <StartArguments>/s=172.16.17.51 /p=9260 /a=shabiel12 /v=abc,123! /e=utf-8</StartArguments>
    3939    <StartPage>
    4040    </StartPage>
     
    5555    </RemoteDebugMachine>
    5656    <StartAction>Project</StartAction>
    57     <StartArguments>/s=172.16.16.125 /p=9250 /a=shabiel12 /v=abc,123! /e=utf-8</StartArguments>
     57    <StartArguments>/s=172.16.17.51 /p=9260 /a=shabiel12 /v=abc,123! /e=utf-8</StartArguments>
    5858    <StartPage>
    5959    </StartPage>
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/DAccessTemplate.cs

    r614 r913  
    8080                private void cmdOK_Click(object sender, System.EventArgs e)
    8181                {
    82                         //assure that it's a monday in the future
    83                         DateTime dtStart = dtpStartDate.Value;
    84                         if ((dtStart.DayOfWeek != System.DayOfWeek.Monday) ||
    85                                 (dtStart < DateTime.Today))
    86                         {
    87                                 MessageBox.Show("Please select a future Monday.");
     82            DateTime dtStart = dtpStartDate.Value;
     83                        if      (dtStart < DateTime.Today)
     84                        {
     85                                MessageBox.Show("Please select a future day.");
    8886                                m_bCancelOK = true;
    8987                                return;
     
    118116                        sPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
    119117
    120                         openFileDialog1.InitialDirectory = "c:\\" ;
     118                        openFileDialog1.InitialDirectory = @"c:\" ;
    121119                        openFileDialog1.InitialDirectory = sPath ;
    122120                        openFileDialog1.Filter = "Schedule Template Files (*.bsdxa)|*.bsdxa|All files (*.*)|*.*" ;
     
    152150                private void InitializeComponent()
    153151                {
    154                         this.pnlPageBottom = new System.Windows.Forms.Panel();
    155                         this.cmdCancel = new System.Windows.Forms.Button();
    156                         this.cmdOK = new System.Windows.Forms.Button();
    157                         this.pnlDescription = new System.Windows.Forms.Panel();
    158                         this.grpDescriptionResourceGroup = new System.Windows.Forms.GroupBox();
    159                         this.lblDescriptionResourceGroup = new System.Windows.Forms.Label();
    160                         this.cmdSelectTemplate = new System.Windows.Forms.Button();
    161                         this.txtTemplate = new System.Windows.Forms.TextBox();
    162                         this.dtpStartDate = new System.Windows.Forms.DateTimePicker();
    163                         this.udWeeksToApply = new System.Windows.Forms.NumericUpDown();
    164                         this.label1 = new System.Windows.Forms.Label();
    165                         this.label2 = new System.Windows.Forms.Label();
    166                         this.pnlPageBottom.SuspendLayout();
    167                         this.pnlDescription.SuspendLayout();
    168                         this.grpDescriptionResourceGroup.SuspendLayout();
    169                         ((System.ComponentModel.ISupportInitialize)(this.udWeeksToApply)).BeginInit();
    170                         this.SuspendLayout();
    171                         //
    172                         // pnlPageBottom
    173                         //
    174                         this.pnlPageBottom.Controls.Add(this.cmdCancel);
    175                         this.pnlPageBottom.Controls.Add(this.cmdOK);
    176                         this.pnlPageBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
    177                         this.pnlPageBottom.Location = new System.Drawing.Point(0, 264);
    178                         this.pnlPageBottom.Name = "pnlPageBottom";
    179                         this.pnlPageBottom.Size = new System.Drawing.Size(440, 40);
    180                         this.pnlPageBottom.TabIndex = 7;
    181                         //
    182                         // cmdCancel
    183                         //
    184                         this.cmdCancel.CausesValidation = false;
    185                         this.cmdCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    186                         this.cmdCancel.Location = new System.Drawing.Point(360, 8);
    187                         this.cmdCancel.Name = "cmdCancel";
    188                         this.cmdCancel.Size = new System.Drawing.Size(56, 24);
    189                         this.cmdCancel.TabIndex = 2;
    190                         this.cmdCancel.Text = "Cancel";
    191                         //
    192                         // cmdOK
    193                         //
    194                         this.cmdOK.DialogResult = System.Windows.Forms.DialogResult.OK;
    195                         this.cmdOK.Location = new System.Drawing.Point(280, 8);
    196                         this.cmdOK.Name = "cmdOK";
    197                         this.cmdOK.Size = new System.Drawing.Size(64, 24);
    198                         this.cmdOK.TabIndex = 1;
    199                         this.cmdOK.Text = "OK";
    200                         this.cmdOK.Click += new System.EventHandler(this.cmdOK_Click);
    201                         //
    202                         // pnlDescription
    203                         //
    204                         this.pnlDescription.Controls.Add(this.grpDescriptionResourceGroup);
    205                         this.pnlDescription.Dock = System.Windows.Forms.DockStyle.Bottom;
    206                         this.pnlDescription.Location = new System.Drawing.Point(0, 184);
    207                         this.pnlDescription.Name = "pnlDescription";
    208                         this.pnlDescription.Size = new System.Drawing.Size(440, 80);
    209                         this.pnlDescription.TabIndex = 8;
    210                         //
    211                         // grpDescriptionResourceGroup
    212                         //
    213                         this.grpDescriptionResourceGroup.Controls.Add(this.lblDescriptionResourceGroup);
    214                         this.grpDescriptionResourceGroup.Dock = System.Windows.Forms.DockStyle.Fill;
    215                         this.grpDescriptionResourceGroup.Location = new System.Drawing.Point(0, 0);
    216                         this.grpDescriptionResourceGroup.Name = "grpDescriptionResourceGroup";
    217                         this.grpDescriptionResourceGroup.Size = new System.Drawing.Size(440, 80);
    218                         this.grpDescriptionResourceGroup.TabIndex = 1;
    219                         this.grpDescriptionResourceGroup.TabStop = false;
    220                         this.grpDescriptionResourceGroup.Text = "Description";
    221                         //
    222                         // lblDescriptionResourceGroup
    223                         //
    224                         this.lblDescriptionResourceGroup.Dock = System.Windows.Forms.DockStyle.Fill;
    225                         this.lblDescriptionResourceGroup.Location = new System.Drawing.Point(3, 16);
    226                         this.lblDescriptionResourceGroup.Name = "lblDescriptionResourceGroup";
    227                         this.lblDescriptionResourceGroup.Size = new System.Drawing.Size(434, 61);
    228                         this.lblDescriptionResourceGroup.TabIndex = 0;
    229                         this.lblDescriptionResourceGroup.Text = "Use this panel to define an access pattern for future clinic availability.";
    230                         //
    231                         // cmdSelectTemplate
    232                         //
    233                         this.cmdSelectTemplate.Location = new System.Drawing.Point(24, 40);
    234                         this.cmdSelectTemplate.Name = "cmdSelectTemplate";
    235                         this.cmdSelectTemplate.Size = new System.Drawing.Size(136, 32);
    236                         this.cmdSelectTemplate.TabIndex = 9;
    237                         this.cmdSelectTemplate.Text = "Select Access Template";
    238                         this.cmdSelectTemplate.Click += new System.EventHandler(this.cmdSelectTemplate_Click);
    239                         //
    240                         // txtTemplate
    241                         //
    242                         this.txtTemplate.Location = new System.Drawing.Point(176, 32);
    243                         this.txtTemplate.Multiline = true;
    244                         this.txtTemplate.Name = "txtTemplate";
    245                         this.txtTemplate.ReadOnly = true;
    246                         this.txtTemplate.Size = new System.Drawing.Size(248, 48);
    247                         this.txtTemplate.TabIndex = 10;
    248                         this.txtTemplate.Text = "";
    249                         //
    250                         // dtpStartDate
    251                         //
    252                         this.dtpStartDate.AllowDrop = true;
    253                         this.dtpStartDate.Checked = false;
    254                         this.dtpStartDate.Location = new System.Drawing.Point(176, 104);
    255                         this.dtpStartDate.Name = "dtpStartDate";
    256                         this.dtpStartDate.Size = new System.Drawing.Size(184, 20);
    257                         this.dtpStartDate.TabIndex = 11;
    258                         //
    259                         // udWeeksToApply
    260                         //
    261                         this.udWeeksToApply.Location = new System.Drawing.Point(176, 144);
    262                         this.udWeeksToApply.Maximum = new System.Decimal(new int[] {
    263                                                                                                                                                    52,
    264                                                                                                                                                    0,
    265                                                                                                                                                    0,
    266                                                                                                                                                    0});
    267                         this.udWeeksToApply.Minimum = new System.Decimal(new int[] {
    268                                                                                                                                                    1,
    269                                                                                                                                                    0,
    270                                                                                                                                                    0,
    271                                                                                                                                                    0});
    272                         this.udWeeksToApply.Name = "udWeeksToApply";
    273                         this.udWeeksToApply.Size = new System.Drawing.Size(96, 20);
    274                         this.udWeeksToApply.TabIndex = 12;
    275                         this.udWeeksToApply.Value = new System.Decimal(new int[] {
    276                                                                                                                                                  1,
    277                                                                                                                                                 0,
    278                                                                                                                                                  0,
    279                                                                                                                                                  0});
    280                         //
    281                         // label1
    282                         //
    283                         this.label1.Location = new System.Drawing.Point(16, 104);
    284                         this.label1.Name = "label1";
    285                         this.label1.Size = new System.Drawing.Size(152, 16);
    286                         this.label1.TabIndex = 13;
    287                         this.label1.Text = "Starting Week (Monday):";
    288                         this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    289                         //
    290                         // label2
    291                         //
    292                         this.label2.Location = new System.Drawing.Point(16, 144);
    293                         this.label2.Name = "label2";
    294                         this.label2.Size = new System.Drawing.Size(152, 16);
    295                         this.label2.TabIndex = 13;
    296                         this.label2.Text = "Number of Weeks to Apply:";
    297                         this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    298                         //
    299                         // DAccessTemplate
    300                         //
    301                         this.AcceptButton = this.cmdOK;
    302                         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    303                         this.CancelButton = this.cmdCancel;
    304                         this.ClientSize = new System.Drawing.Size(440, 304);
    305                         this.Controls.Add(this.label1);
    306                         this.Controls.Add(this.udWeeksToApply);
    307                         this.Controls.Add(this.dtpStartDate);
    308                         this.Controls.Add(this.txtTemplate);
    309                         this.Controls.Add(this.cmdSelectTemplate);
    310                         this.Controls.Add(this.pnlDescription);
    311                         this.Controls.Add(this.pnlPageBottom);
    312                         this.Controls.Add(this.label2);
    313                         this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
    314                         this.Name = "DAccessTemplate";
    315                         this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
    316                         this.Text = "Apply Access Template";
    317                         this.Closing += new System.ComponentModel.CancelEventHandler(this.DAccessTemplate_Closing);
    318                         this.pnlPageBottom.ResumeLayout(false);
    319                         this.pnlDescription.ResumeLayout(false);
    320                         this.grpDescriptionResourceGroup.ResumeLayout(false);
    321                         ((System.ComponentModel.ISupportInitialize)(this.udWeeksToApply)).EndInit();
    322                         this.ResumeLayout(false);
     152            this.pnlPageBottom = new System.Windows.Forms.Panel();
     153            this.cmdCancel = new System.Windows.Forms.Button();
     154            this.cmdOK = new System.Windows.Forms.Button();
     155            this.pnlDescription = new System.Windows.Forms.Panel();
     156            this.grpDescriptionResourceGroup = new System.Windows.Forms.GroupBox();
     157            this.lblDescriptionResourceGroup = new System.Windows.Forms.Label();
     158            this.cmdSelectTemplate = new System.Windows.Forms.Button();
     159            this.txtTemplate = new System.Windows.Forms.TextBox();
     160            this.dtpStartDate = new System.Windows.Forms.DateTimePicker();
     161            this.udWeeksToApply = new System.Windows.Forms.NumericUpDown();
     162            this.label1 = new System.Windows.Forms.Label();
     163            this.label2 = new System.Windows.Forms.Label();
     164            this.pnlPageBottom.SuspendLayout();
     165            this.pnlDescription.SuspendLayout();
     166            this.grpDescriptionResourceGroup.SuspendLayout();
     167            ((System.ComponentModel.ISupportInitialize)(this.udWeeksToApply)).BeginInit();
     168            this.SuspendLayout();
     169            //
     170            // pnlPageBottom
     171            //
     172            this.pnlPageBottom.Controls.Add(this.cmdCancel);
     173            this.pnlPageBottom.Controls.Add(this.cmdOK);
     174            this.pnlPageBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
     175            this.pnlPageBottom.Location = new System.Drawing.Point(0, 264);
     176            this.pnlPageBottom.Name = "pnlPageBottom";
     177            this.pnlPageBottom.Size = new System.Drawing.Size(440, 40);
     178            this.pnlPageBottom.TabIndex = 7;
     179            //
     180            // cmdCancel
     181            //
     182            this.cmdCancel.CausesValidation = false;
     183            this.cmdCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
     184            this.cmdCancel.Location = new System.Drawing.Point(360, 8);
     185            this.cmdCancel.Name = "cmdCancel";
     186            this.cmdCancel.Size = new System.Drawing.Size(56, 24);
     187            this.cmdCancel.TabIndex = 2;
     188            this.cmdCancel.Text = "Cancel";
     189            //
     190            // cmdOK
     191            //
     192            this.cmdOK.DialogResult = System.Windows.Forms.DialogResult.OK;
     193            this.cmdOK.Location = new System.Drawing.Point(280, 8);
     194            this.cmdOK.Name = "cmdOK";
     195            this.cmdOK.Size = new System.Drawing.Size(64, 24);
     196            this.cmdOK.TabIndex = 1;
     197            this.cmdOK.Text = "OK";
     198            this.cmdOK.Click += new System.EventHandler(this.cmdOK_Click);
     199            //
     200            // pnlDescription
     201            //
     202            this.pnlDescription.Controls.Add(this.grpDescriptionResourceGroup);
     203            this.pnlDescription.Dock = System.Windows.Forms.DockStyle.Bottom;
     204            this.pnlDescription.Location = new System.Drawing.Point(0, 184);
     205            this.pnlDescription.Name = "pnlDescription";
     206            this.pnlDescription.Size = new System.Drawing.Size(440, 80);
     207            this.pnlDescription.TabIndex = 8;
     208            //
     209            // grpDescriptionResourceGroup
     210            //
     211            this.grpDescriptionResourceGroup.Controls.Add(this.lblDescriptionResourceGroup);
     212            this.grpDescriptionResourceGroup.Dock = System.Windows.Forms.DockStyle.Fill;
     213            this.grpDescriptionResourceGroup.Location = new System.Drawing.Point(0, 0);
     214            this.grpDescriptionResourceGroup.Name = "grpDescriptionResourceGroup";
     215            this.grpDescriptionResourceGroup.Size = new System.Drawing.Size(440, 80);
     216            this.grpDescriptionResourceGroup.TabIndex = 1;
     217            this.grpDescriptionResourceGroup.TabStop = false;
     218            this.grpDescriptionResourceGroup.Text = "Description";
     219            //
     220            // lblDescriptionResourceGroup
     221            //
     222            this.lblDescriptionResourceGroup.Dock = System.Windows.Forms.DockStyle.Fill;
     223            this.lblDescriptionResourceGroup.Location = new System.Drawing.Point(3, 16);
     224            this.lblDescriptionResourceGroup.Name = "lblDescriptionResourceGroup";
     225            this.lblDescriptionResourceGroup.Size = new System.Drawing.Size(434, 61);
     226            this.lblDescriptionResourceGroup.TabIndex = 0;
     227            this.lblDescriptionResourceGroup.Text = "Use this panel to define an access pattern for future clinic availability.";
     228            //
     229            // cmdSelectTemplate
     230            //
     231            this.cmdSelectTemplate.Location = new System.Drawing.Point(24, 40);
     232            this.cmdSelectTemplate.Name = "cmdSelectTemplate";
     233            this.cmdSelectTemplate.Size = new System.Drawing.Size(136, 32);
     234            this.cmdSelectTemplate.TabIndex = 9;
     235            this.cmdSelectTemplate.Text = "Select Access Template";
     236            this.cmdSelectTemplate.Click += new System.EventHandler(this.cmdSelectTemplate_Click);
     237            //
     238            // txtTemplate
     239            //
     240            this.txtTemplate.Location = new System.Drawing.Point(176, 32);
     241            this.txtTemplate.Multiline = true;
     242            this.txtTemplate.Name = "txtTemplate";
     243            this.txtTemplate.ReadOnly = true;
     244            this.txtTemplate.Size = new System.Drawing.Size(248, 48);
     245            this.txtTemplate.TabIndex = 10;
     246            //
     247            // dtpStartDate
     248            //
     249            this.dtpStartDate.AllowDrop = true;
     250            this.dtpStartDate.Checked = false;
     251            this.dtpStartDate.Location = new System.Drawing.Point(176, 104);
     252            this.dtpStartDate.Name = "dtpStartDate";
     253            this.dtpStartDate.Size = new System.Drawing.Size(184, 20);
     254            this.dtpStartDate.TabIndex = 11;
     255            //
     256            // udWeeksToApply
     257            //
     258            this.udWeeksToApply.Location = new System.Drawing.Point(176, 144);
     259            this.udWeeksToApply.Maximum = new decimal(new int[] {
     260            52,
     261            0,
     262            0,
     263            0});
     264            this.udWeeksToApply.Minimum = new decimal(new int[] {
     265            1,
     266            0,
     267            0,
     268            0});
     269            this.udWeeksToApply.Name = "udWeeksToApply";
     270            this.udWeeksToApply.Size = new System.Drawing.Size(96, 20);
     271            this.udWeeksToApply.TabIndex = 12;
     272            this.udWeeksToApply.Value = new decimal(new int[] {
     273            1,
     274            0,
     275            0,
     276            0});
     277            //
     278            // label1
     279            //
     280            this.label1.Location = new System.Drawing.Point(16, 104);
     281            this.label1.Name = "label1";
     282            this.label1.Size = new System.Drawing.Size(152, 16);
     283            this.label1.TabIndex = 13;
     284            this.label1.Text = "Starting Week:";
     285            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
     286            //
     287            // label2
     288            //
     289            this.label2.Location = new System.Drawing.Point(16, 144);
     290            this.label2.Name = "label2";
     291            this.label2.Size = new System.Drawing.Size(152, 16);
     292            this.label2.TabIndex = 13;
     293            this.label2.Text = "Number of Weeks to Apply:";
     294            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
     295            //
     296            // DAccessTemplate
     297            //
     298            this.AcceptButton = this.cmdOK;
     299            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     300            this.CancelButton = this.cmdCancel;
     301            this.ClientSize = new System.Drawing.Size(440, 304);
     302            this.Controls.Add(this.label1);
     303            this.Controls.Add(this.udWeeksToApply);
     304            this.Controls.Add(this.dtpStartDate);
     305            this.Controls.Add(this.txtTemplate);
     306            this.Controls.Add(this.cmdSelectTemplate);
     307            this.Controls.Add(this.pnlDescription);
     308            this.Controls.Add(this.pnlPageBottom);
     309            this.Controls.Add(this.label2);
     310            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
     311            this.Name = "DAccessTemplate";
     312            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
     313            this.Text = "Apply Access Template";
     314            this.Closing += new System.ComponentModel.CancelEventHandler(this.DAccessTemplate_Closing);
     315            this.pnlPageBottom.ResumeLayout(false);
     316            this.pnlDescription.ResumeLayout(false);
     317            this.grpDescriptionResourceGroup.ResumeLayout(false);
     318            ((System.ComponentModel.ISupportInitialize)(this.udWeeksToApply)).EndInit();
     319            this.ResumeLayout(false);
     320            this.PerformLayout();
    323321
    324322                }
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/DAccessTemplate.resx

    r614 r913  
    44    Microsoft ResX Schema
    55   
    6     Version 1.3
     6    Version 2.0
    77   
    88    The primary goals of this format is to allow a simple XML format
     
    1515    ... ado.net/XML headers & schema ...
    1616    <resheader name="resmimetype">text/microsoft-resx</resheader>
    17     <resheader name="version">1.3</resheader>
     17    <resheader name="version">2.0</resheader>
    1818    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    1919    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    20     <data name="Name1">this is my long string</data>
     20    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    2121    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    2222    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    23         [base64 mime encoded serialized .NET Framework object]
     23        <value>[base64 mime encoded serialized .NET Framework object]</value>
    2424    </data>
    2525    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    26         [base64 mime encoded string representing a byte array form of the .NET Framework object]
     26        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
     27        <comment>This is a comment</comment>
    2728    </data>
    2829               
     
    3637    mimetype set.
    3738   
    38     The mimetype is used forserialized objects, and tells the
     39    The mimetype is used for serialized objects, and tells the
    3940    ResXResourceReader how to depersist the object. This is currently not
    4041    extensible. For a given mimetype the value must be set accordingly:
     
    4647    mimetype: application/x-microsoft.net.object.binary.base64
    4748    value   : The object must be serialized with
    48             : System.Serialization.Formatters.Binary.BinaryFormatter
     49            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    4950            : and then encoded with base64 encoding.
    5051   
     
    6061    -->
    6162  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
     63    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    6264    <xsd:element name="root" msdata:IsDataSet="true">
    6365      <xsd:complexType>
    6466        <xsd:choice maxOccurs="unbounded">
     67          <xsd:element name="metadata">
     68            <xsd:complexType>
     69              <xsd:sequence>
     70                <xsd:element name="value" type="xsd:string" minOccurs="0" />
     71              </xsd:sequence>
     72              <xsd:attribute name="name" use="required" type="xsd:string" />
     73              <xsd:attribute name="type" type="xsd:string" />
     74              <xsd:attribute name="mimetype" type="xsd:string" />
     75              <xsd:attribute ref="xml:space" />
     76            </xsd:complexType>
     77          </xsd:element>
     78          <xsd:element name="assembly">
     79            <xsd:complexType>
     80              <xsd:attribute name="alias" type="xsd:string" />
     81              <xsd:attribute name="name" type="xsd:string" />
     82            </xsd:complexType>
     83          </xsd:element>
    6584          <xsd:element name="data">
    6685            <xsd:complexType>
     
    6988                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    7089              </xsd:sequence>
    71               <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
     90              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    7291              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    7392              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
     93              <xsd:attribute ref="xml:space" />
    7494            </xsd:complexType>
    7595          </xsd:element>
     
    90110  </resheader>
    91111  <resheader name="version">
    92     <value>1.3</value>
     112    <value>2.0</value>
    93113  </resheader>
    94114  <resheader name="reader">
    95     <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     115    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    96116  </resheader>
    97117  <resheader name="writer">
    98     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     118    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    99119  </resheader>
    100   <data name="pnlPageBottom.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    101     <value>False</value>
    102   </data>
    103   <data name="pnlPageBottom.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    104     <value>True</value>
    105   </data>
    106   <data name="pnlPageBottom.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    107     <value>Private</value>
    108   </data>
    109   <data name="pnlPageBottom.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    110     <value>8, 8</value>
    111   </data>
    112   <data name="pnlPageBottom.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    113     <value>False</value>
    114   </data>
    115   <data name="pnlPageBottom.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    116     <value>Private</value>
    117   </data>
    118   <data name="cmdCancel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    119     <value>False</value>
    120   </data>
    121   <data name="cmdCancel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    122     <value>Private</value>
    123   </data>
    124   <data name="cmdCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    125     <value>Private</value>
    126   </data>
    127   <data name="cmdOK.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    128     <value>False</value>
    129   </data>
    130   <data name="cmdOK.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    131     <value>Private</value>
    132   </data>
    133   <data name="cmdOK.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    134     <value>Private</value>
    135   </data>
    136   <data name="pnlDescription.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    137     <value>True</value>
    138   </data>
    139   <data name="pnlDescription.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    140     <value>False</value>
    141   </data>
    142   <data name="pnlDescription.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    143     <value>Private</value>
    144   </data>
    145   <data name="pnlDescription.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    146     <value>8, 8</value>
    147   </data>
    148   <data name="pnlDescription.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    149     <value>True</value>
    150   </data>
    151   <data name="pnlDescription.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    152     <value>Private</value>
    153   </data>
    154   <data name="grpDescriptionResourceGroup.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    155     <value>Private</value>
    156   </data>
    157   <data name="grpDescriptionResourceGroup.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    158     <value>8, 8</value>
    159   </data>
    160   <data name="grpDescriptionResourceGroup.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    161     <value>True</value>
    162   </data>
    163   <data name="grpDescriptionResourceGroup.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    164     <value>False</value>
    165   </data>
    166   <data name="grpDescriptionResourceGroup.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    167     <value>True</value>
    168   </data>
    169   <data name="grpDescriptionResourceGroup.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    170     <value>Private</value>
    171   </data>
    172   <data name="lblDescriptionResourceGroup.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    173     <value>False</value>
    174   </data>
    175   <data name="lblDescriptionResourceGroup.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    176     <value>Private</value>
    177   </data>
    178   <data name="lblDescriptionResourceGroup.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    179     <value>Private</value>
    180   </data>
    181   <data name="cmdSelectTemplate.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    182     <value>False</value>
    183   </data>
    184   <data name="cmdSelectTemplate.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    185     <value>Private</value>
    186   </data>
    187   <data name="cmdSelectTemplate.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    188     <value>Private</value>
    189   </data>
    190   <data name="txtTemplate.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    191     <value>Private</value>
    192   </data>
    193   <data name="txtTemplate.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    194     <value>Private</value>
    195   </data>
    196   <data name="txtTemplate.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    197     <value>False</value>
    198   </data>
    199   <data name="dtpStartDate.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    200     <value>Private</value>
    201   </data>
    202   <data name="dtpStartDate.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    203     <value>Private</value>
    204   </data>
    205   <data name="dtpStartDate.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    206     <value>False</value>
    207   </data>
    208   <data name="udWeeksToApply.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    209     <value>False</value>
    210   </data>
    211   <data name="udWeeksToApply.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    212     <value>Private</value>
    213   </data>
    214   <data name="udWeeksToApply.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    215     <value>Private</value>
    216   </data>
    217   <data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    218     <value>False</value>
    219   </data>
    220   <data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    221     <value>Private</value>
    222   </data>
    223   <data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    224     <value>Private</value>
    225   </data>
    226   <data name="label2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    227     <value>False</value>
    228   </data>
    229   <data name="label2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    230     <value>Private</value>
    231   </data>
    232   <data name="label2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    233     <value>Private</value>
    234   </data>
    235   <data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    236     <value>False</value>
    237   </data>
    238   <data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    239     <value>(Default)</value>
    240   </data>
    241   <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    242     <value>False</value>
    243   </data>
    244   <data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    245     <value>False</value>
    246   </data>
    247   <data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    248     <value>8, 8</value>
    249   </data>
    250   <data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    251     <value>True</value>
    252   </data>
    253   <data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    254     <value>80</value>
    255   </data>
    256   <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    257     <value>True</value>
    258   </data>
    259   <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    260     <value>Private</value>
    261   </data>
    262   <data name="$this.Name">
    263     <value>DAccessTemplate</value>
    264   </data>
    265120</root>
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/DAppointPage.cs

    r870 r913  
    400400            this.label16.Size = new System.Drawing.Size(69, 16);
    401401            this.label16.TabIndex = 27;
    402             this.label16.Text = "Phone (Cell):";
     402            this.label16.Text = "Cell/Mobile:";
    403403            this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    404404            //
  • Scheduling/trunk/cs/bsdx0200GUISourceCode/DAppointPage.resx

    r866 r913  
    124124    <value>179, 17</value>
    125125  </metadata>
    126   <metadata name="dsPatientApptDisplay2BindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    127     <value>179, 17</value>
    128   </metadata>
    129   <metadata name="dsPatientApptDisplay2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    130     <value>17, 17</value>
    131   </metadata>
    132126  <metadata name="dsPatientApptDisplay2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    133127    <value>17, 17</value>
Note: See TracChangeset for help on using the changeset viewer.