Changeset 1140


Ignore:
Timestamp:
Apr 12, 2011, 2:13:18 AM (13 years ago)
Author:
Sam Habiel
Message:

DRadExamsSelect: New form to let user select exam.
RadiologyExam: Class for a Radiology Exam
DAL: new DB communication methods: GetRadiologyExamsForPatientinHL and ScheduleRadiologyExam
CGView:

  1. New context menus for Radiology; context menu popup has logic for which menus to display;
  2. Helper method IsThisARadiologyResource used by ctxCalendarGrid_Popup to decide which menus to display
  3. Handler ctxCalGridMkRadAppt_Click to make the Radiology Appointment.

CGDocument:

  1. CreateAppointment now saves RadiologyExamIEN to the DB
  2. RefreshAppointments now gets RadiologyExamIEN from the DB

CGAppointment:

  1. Class completely refactored to use auto props rather than old style properties
  2. Added property RadiologyExamIEN

CalendarGrid: Class was wrongly using supposed private members of CGAppointment. Refactored to fix that as private members don't exist anymore.

Last but not least, new exe,dll

Location:
Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode
Files:
4 added
11 edited

Legend:

Unmodified
Added
Removed
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGAppointment.cs

    r1111 r1140  
    44    using System.Drawing;
    55    /// <summary>
    6     /// Data Structuer to Represent an Appointment
    7     ///
     6    /// Data Structure to Represent an Appointment
    87    /// </summary>
    98    [Serializable]
    109    public class CGAppointment
    1110    {
    12         private bool m_bAccessBlock;
    13         private bool m_bNoShow;
    14         private bool m_bSelected = false;
    15         private bool m_bWalkIn;
    16         public DateTime m_dAuxTime;
    17         public DateTime m_dCheckIn;
    18         private DateTime m_EndTime;
    19         public int m_nAccessTypeID = -1;
    20         private int m_nColumn;
    21         public int m_nKey;
    22         private string m_Note;
    23         public int m_nPatientID;
    24         public int m_nSlots;
    25         private Rectangle m_rectangle;
    26         public string m_sAccessTypeName;
    27         private string m_sHRN = "";
    28         private string m_sPatientName;
    29         public string m_sResource;
    30         private DateTime m_StartTime;
    31         private string m_Text;
     11        public int AccessTypeID { get; set; }
     12        public string AccessTypeName { get; set; }
     13
     14        public int AppointmentKey { get; set; }
     15
     16        public DateTime AuxTime { get; set; }
     17        public DateTime CheckInTime { get; set; }
     18        public DateTime EndTime { get; set; }
     19        public DateTime StartTime { get; set; }
     20
     21        public int GridColumn { get; set; }
     22        public Rectangle GridRectangle { get; set; }
     23       
     24        public bool IsAccessBlock { get; set; }
     25
     26        public bool NoShow { get; set; }
     27
     28        public string Note { get; set; }
     29
     30        public int PatientID { get; set; }
     31        public string PatientName { get; set; }
     32        public string Resource { get; set; }
     33        public string HealthRecordNumber { get; set; }
     34       
     35        public bool Selected { get; set; }
     36
     37        public int Slots { get; set; }
     38
     39        public bool WalkIn { get; set; }
     40
     41        public Patient Patient { get; set; }
     42        public Provider Provider { get; set; }
     43
     44        public int? RadiologyExamIEN { get; set; }
     45
     46
     47        public CGAppointment()
     48        {
     49            AccessTypeID = -1;
     50            Selected = false;
     51            HealthRecordNumber = "";
     52        }
    3253
    3354        public void CreateAppointment(DateTime StartTime, DateTime EndTime, string Note, int Key, string sResource)
    3455        {
    35             this.m_StartTime = StartTime;
    36             this.m_EndTime = EndTime;
    37             this.m_Note = Note;
    38             this.m_nKey = Key;
    39             this.m_sResource = sResource;
     56            this.StartTime = StartTime;
     57            this.EndTime = EndTime;
     58            this.Note = Note;
     59            this.AppointmentKey = Key;
     60            this.Resource = sResource;
     61        }
     62
     63        public int Duration
     64        {
     65            get
     66            {
     67                TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
     68                return (int) span.TotalMinutes;
     69            }
    4070        }
    4171
    4272        public override string ToString()
    4373        {
    44             //StringFormat sf = new StringFormat();
    45             //sf.SetDigitSubstitution(System.Threading.Thread.CurrentThread.CurrentCulture.LCID, StringDigitSubstitute.National);
    4674            string patientName = "";
    47             if (this.m_bAccessBlock)
     75            if (this.IsAccessBlock)
    4876            {
    4977                string str2 = (this.Slots == 1) ? " Slot, " : " Slots, ";
     
    5785            return (patientName + " " + this.Note);
    5886        }
    59 
    60         public int AccessTypeID
    61         {
    62             get
    63             {
    64                 return this.m_nAccessTypeID;
    65             }
    66             set
    67             {
    68                 this.m_nAccessTypeID = value;
    69             }
    70         }
    71 
    72         public string AccessTypeName
    73         {
    74             get
    75             {
    76                 return this.m_sAccessTypeName;
    77             }
    78             set
    79             {
    80                 this.m_sAccessTypeName = value;
    81             }
    82         }
    83 
    84         public int AppointmentKey
    85         {
    86             get
    87             {
    88                 return this.m_nKey;
    89             }
    90             set
    91             {
    92                 this.m_nKey = value;
    93             }
    94         }
    95 
    96         public DateTime AuxTime
    97         {
    98             get
    99             {
    100                 return this.m_dAuxTime;
    101             }
    102             set
    103             {
    104                 this.m_dAuxTime = value;
    105             }
    106         }
    107 
    108         public DateTime CheckInTime
    109         {
    110             get
    111             {
    112                 return this.m_dCheckIn;
    113             }
    114             set
    115             {
    116                 this.m_dCheckIn = value;
    117             }
    118         }
    119 
    120         public int Duration
    121         {
    122             get
    123             {
    124                 TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
    125                 return (int) span.TotalMinutes;
    126             }
    127         }
    128 
    129         public DateTime EndTime
    130         {
    131             get
    132             {
    133                 return this.m_EndTime;
    134             }
    135             set
    136             {
    137                 this.m_EndTime = value;
    138             }
    139         }
    140 
    141         public int GridColumn
    142         {
    143             get
    144             {
    145                 return this.m_nColumn;
    146             }
    147             set
    148             {
    149                 this.m_nColumn = value;
    150             }
    151         }
    152 
    153         public Rectangle GridRectangle
    154         {
    155             get
    156             {
    157                 return this.m_rectangle;
    158             }
    159             set
    160             {
    161                 this.m_rectangle = value;
    162             }
    163         }
    164 
    165         public string HealthRecordNumber
    166         {
    167             get
    168             {
    169                 return this.m_sHRN;
    170             }
    171             set
    172             {
    173                 this.m_sHRN = value;
    174             }
    175         }
    176 
    177         public bool IsAccessBlock
    178         {
    179             get
    180             {
    181                 return this.m_bAccessBlock;
    182             }
    183             set
    184             {
    185                 this.m_bAccessBlock = value;
    186             }
    187         }
    188 
    189         public bool NoShow
    190         {
    191             get
    192             {
    193                 return this.m_bNoShow;
    194             }
    195             set
    196             {
    197                 this.m_bNoShow = value;
    198             }
    199         }
    200 
    201         public string Note
    202         {
    203             get
    204             {
    205                 return this.m_Note;
    206             }
    207             set
    208             {
    209                 this.m_Note = value;
    210             }
    211         }
    212 
    213         public int PatientID
    214         {
    215             get
    216             {
    217                 return this.m_nPatientID;
    218             }
    219             set
    220             {
    221                 this.m_nPatientID = value;
    222             }
    223         }
    224 
    225         public string PatientName
    226         {
    227             get
    228             {
    229                 return this.m_sPatientName;
    230             }
    231             set
    232             {
    233                 this.m_sPatientName = value;
    234             }
    235         }
    236 
    237         public string Resource
    238         {
    239             get
    240             {
    241                 return this.m_sResource;
    242             }
    243             set
    244             {
    245                 this.m_sResource = value;
    246             }
    247         }
    248 
    249         public bool Selected
    250         {
    251             get
    252             {
    253                 return this.m_bSelected;
    254             }
    255             set
    256             {
    257                 this.m_bSelected = value;
    258             }
    259         }
    260 
    261         public int Slots
    262         {
    263             get
    264             {
    265                 return this.m_nSlots;
    266             }
    267             set
    268             {
    269                 this.m_nSlots = value;
    270             }
    271         }
    272 
    273         public DateTime StartTime
    274         {
    275             get
    276             {
    277                 return this.m_StartTime;
    278             }
    279             set
    280             {
    281                 this.m_StartTime = value;
    282             }
    283         }
    284 
    285         public string Text
    286         {
    287             get
    288             {
    289                 this.m_Text = this.m_sPatientName;
    290                 return this.m_Text;
    291             }
    292         }
    293 
    294         public bool WalkIn
    295         {
    296             get
    297             {
    298                 return this.m_bWalkIn;
    299             }
    300             set
    301             {
    302                 this.m_bWalkIn = value;
    303             }
    304         }
    305 
    306         public Patient Patient { get; set; }
    307         public Provider Provider { get; set; }
    30887    }
    30988}
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocument.cs

    r1128 r1140  
    238238                    sWalkIn = r["WALKIN"].ToString();
    239239                    bWalkIn = (sWalkIn == "1") ? true : false;
     240                    int? RadiologyExamIEN = r["RADIOLOGY_EXAM"] as Int32?;
    240241
    241242                    Patient pt = new Patient()
     
    262263                    pAppointment.AccessTypeID = nAccessTypeID;
    263264                    pAppointment.WalkIn = bWalkIn;
     265                    pAppointment.RadiologyExamIEN = RadiologyExamIEN;
    264266                    this.m_appointments.AddAppointment(pAppointment);
    265267
     
    973975            }
    974976
    975             string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID;
     977            string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID + "^" + rApptInfo.RadiologyExamIEN;
    976978            System.Data.DataTable dtAppt = m_DocManager.RPMSDataTable(sSql, "NewAppointment");
    977979
     
    10791081        }
    10801082
     1083        //TODO: MUST SEE IF RADIOLOGY STUFF WORKS WITH THIS ***
    10811084        public string AutoRebook(CGAppointment a, int nSearchType, int nMinimumDays, int nMaximumDays, out CGAppointment aRebook)
    10821085        {
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGView.cs

    r1131 r1140  
    11using System;
    22using System.Collections;
     3using System.Collections.Generic;
    34using System.ComponentModel;
    45using System.Windows.Forms;
     
    106107        private MenuItem menuItem12;
    107108        private MenuItem mnuRefresh;
     109        private MenuItem ctxCalGridMkRadAppt;
     110        private MenuItem ctxCalGridCancelRadAppt;
    108111        private IContainer components;
    109112
     
    246249            this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
    247250            this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
     251            this.ctxCalGridMkRadAppt = new System.Windows.Forms.MenuItem();
    248252            this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
    249253            this.ctxCalGridDelete = new System.Windows.Forms.MenuItem();
     254            this.ctxCalGridCancelRadAppt = new System.Windows.Forms.MenuItem();
    250255            this.ctxCalGridCheckIn = new System.Windows.Forms.MenuItem();
    251256            this.ctxCalGridUndoCheckin = new System.Windows.Forms.MenuItem();
     
    647652            this.tvSchedules.Location = new System.Drawing.Point(0, 0);
    648653            this.tvSchedules.Name = "tvSchedules";
    649             this.tvSchedules.Size = new System.Drawing.Size(128, 359);
     654            this.tvSchedules.Size = new System.Drawing.Size(128, 254);
    650655            this.tvSchedules.Sorted = true;
    651656            this.tvSchedules.TabIndex = 1;
     
    716721            this.panelRight.Location = new System.Drawing.Point(996, 0);
    717722            this.panelRight.Name = "panelRight";
    718             this.panelRight.Size = new System.Drawing.Size(128, 359);
     723            this.panelRight.Size = new System.Drawing.Size(128, 254);
    719724            this.panelRight.TabIndex = 3;
    720725            this.panelRight.Visible = false;
     
    812817            this.panelCenter.Location = new System.Drawing.Point(136, 24);
    813818            this.panelCenter.Name = "panelCenter";
    814             this.panelCenter.Size = new System.Drawing.Size(857, 311);
     819            this.panelCenter.Size = new System.Drawing.Size(857, 206);
    815820            this.panelCenter.TabIndex = 7;
    816821            //
     
    819824            this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    820825            this.ctxCalGridAdd,
     826            this.ctxCalGridMkRadAppt,
    821827            this.ctxCalGridEdit,
    822828            this.ctxCalGridDelete,
     829            this.ctxCalGridCancelRadAppt,
    823830            this.ctxCalGridCheckIn,
    824831            this.ctxCalGridUndoCheckin,
     
    838845            this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
    839846            //
     847            // ctxCalGridMkRadAppt
     848            //
     849            this.ctxCalGridMkRadAppt.Index = 1;
     850            this.ctxCalGridMkRadAppt.Text = "Make Radiology Appointment";
     851            this.ctxCalGridMkRadAppt.Click += new System.EventHandler(this.ctxCalGridMkRadAppt_Click);
     852            //
    840853            // ctxCalGridEdit
    841854            //
    842             this.ctxCalGridEdit.Index = 1;
     855            this.ctxCalGridEdit.Index = 2;
    843856            this.ctxCalGridEdit.Text = "Edit Appointment";
    844857            this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
     
    846859            // ctxCalGridDelete
    847860            //
    848             this.ctxCalGridDelete.Index = 2;
     861            this.ctxCalGridDelete.Index = 3;
    849862            this.ctxCalGridDelete.Text = "Cancel Appointment";
    850863            this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
    851864            //
     865            // ctxCalGridCancelRadAppt
     866            //
     867            this.ctxCalGridCancelRadAppt.Index = 4;
     868            this.ctxCalGridCancelRadAppt.Text = "Cancel Radiology Appointment";
     869            //
    852870            // ctxCalGridCheckIn
    853871            //
    854             this.ctxCalGridCheckIn.Index = 3;
     872            this.ctxCalGridCheckIn.Index = 5;
    855873            this.ctxCalGridCheckIn.Text = "Check In Patient";
    856874            this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click);
     
    858876            // ctxCalGridUndoCheckin
    859877            //
    860             this.ctxCalGridUndoCheckin.Index = 4;
     878            this.ctxCalGridUndoCheckin.Index = 6;
    861879            this.ctxCalGridUndoCheckin.Text = "&Undo Check In";
    862880            this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click);
     
    864882            // menuItem2
    865883            //
    866             this.menuItem2.Index = 5;
     884            this.menuItem2.Index = 7;
    867885            this.menuItem2.Text = "-";
    868886            //
    869887            // ctxCalGridNoShow
    870888            //
    871             this.ctxCalGridNoShow.Index = 6;
     889            this.ctxCalGridNoShow.Index = 8;
    872890            this.ctxCalGridNoShow.Text = "Mark as No Show";
    873891            this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click);
     
    875893            // ctxCalGridNoShowUndo
    876894            //
    877             this.ctxCalGridNoShowUndo.Index = 7;
     895            this.ctxCalGridNoShowUndo.Index = 9;
    878896            this.ctxCalGridNoShowUndo.Text = "Undo NoShow";
    879897            this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click);
     
    881899            // menuItem9
    882900            //
    883             this.menuItem9.Index = 8;
     901            this.menuItem9.Index = 10;
    884902            this.menuItem9.Text = "-";
    885903            //
    886904            // ctxCalGridWalkin
    887905            //
    888             this.ctxCalGridWalkin.Index = 9;
     906            this.ctxCalGridWalkin.Index = 11;
    889907            this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment";
    890908            this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click);
     
    892910            // menuItem10
    893911            //
    894             this.menuItem10.Index = 10;
     912            this.menuItem10.Index = 12;
    895913            this.menuItem10.Text = "-";
    896914            //
    897915            // ctxCalGridReprintApptSlip
    898916            //
    899             this.ctxCalGridReprintApptSlip.Index = 11;
     917            this.ctxCalGridReprintApptSlip.Index = 13;
    900918            this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip";
    901919            this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click);
     
    905923            this.panelBottom.Controls.Add(this.statusBar1);
    906924            this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
    907             this.panelBottom.Location = new System.Drawing.Point(136, 335);
     925            this.panelBottom.Location = new System.Drawing.Point(136, 230);
    908926            this.panelBottom.Name = "panelBottom";
    909927            this.panelBottom.Size = new System.Drawing.Size(857, 24);
     
    923941            this.splitter1.Location = new System.Drawing.Point(128, 24);
    924942            this.splitter1.Name = "splitter1";
    925             this.splitter1.Size = new System.Drawing.Size(8, 335);
     943            this.splitter1.Size = new System.Drawing.Size(8, 230);
    926944            this.splitter1.TabIndex = 9;
    927945            this.splitter1.TabStop = false;
     
    932950            this.splitter2.Location = new System.Drawing.Point(993, 24);
    933951            this.splitter2.Name = "splitter2";
    934             this.splitter2.Size = new System.Drawing.Size(3, 335);
     952            this.splitter2.Size = new System.Drawing.Size(3, 230);
    935953            this.splitter2.TabIndex = 10;
    936954            this.splitter2.TabStop = false;
     
    955973            this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
    956974            this.calendarGrid1.SelectedAppointment = 0;
    957             this.calendarGrid1.Size = new System.Drawing.Size(857, 311);
     975            this.calendarGrid1.Size = new System.Drawing.Size(857, 206);
    958976            this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
    959977            this.calendarGrid1.TabIndex = 0;
     
    968986            //
    969987            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    970             this.ClientSize = new System.Drawing.Size(1124, 359);
     988            this.ClientSize = new System.Drawing.Size(1124, 254);
    971989            this.Controls.Add(this.panelCenter);
    972990            this.Controls.Add(this.panelBottom);
     
    12891307                private void ctxCalendarGrid_Popup(object sender, System.EventArgs e)
    12901308                {
     1309            bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
     1310
     1311            if (IsThisARadiologyResource())//this is a radiology resource
     1312            {
     1313                ctxCalGridAdd.Visible = false;
     1314                ctxCalGridDelete.Visible = false;
     1315                ctxCalGridEdit.Visible = false;
     1316                ctxCalGridCheckIn.Visible = false;
     1317                ctxCalGridNoShow.Visible = false;
     1318                ctxCalGridNoShowUndo.Visible = false;
     1319                ctxCalGridWalkin.Visible = false;
     1320                ctxCalGridUndoCheckin.Visible = false;
     1321
     1322                ctxCalGridMkRadAppt.Visible = true;
     1323                ctxCalGridCancelRadAppt.Visible = true;
     1324
     1325               
     1326            }
     1327
     1328            else // this is a normal resource
     1329            {
     1330                ctxCalGridAdd.Visible = true;
     1331                ctxCalGridDelete.Visible = true;
     1332                ctxCalGridEdit.Visible = true;
     1333                ctxCalGridCheckIn.Visible = true;
     1334                ctxCalGridNoShow.Visible = true;
     1335                ctxCalGridNoShowUndo.Visible = true;
     1336                ctxCalGridWalkin.Visible = true;
     1337                ctxCalGridUndoCheckin.Visible = true;
     1338
     1339                ctxCalGridMkRadAppt.Visible = false;
     1340                ctxCalGridCancelRadAppt.Visible = false;
     1341            }
     1342
    12911343                        //Toggle availability of make, edit, checkin and delete appointments
    12921344                        //based on whether appropriate element is selected.
    12931345                        ctxCalGridAdd.Enabled = AddAppointmentEnabled();
    1294                         bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
     1346                       
    12951347                        ctxCalGridDelete.Enabled = bEditAppointments;
    12961348                        ctxCalGridEdit.Enabled = bEditAppointments;
     
    12991351            ctxCalGridNoShowUndo.Enabled = !NoShowEnabled() && calendarGrid1.SelectedAppointment > 0;
    13001352                        ctxCalGridWalkin.Enabled = ctxCalGridAdd.Enabled;
    1301             //smh new code
    13021353            ctxCalGridReprintApptSlip.Enabled = bEditAppointments;
    13031354            ctxCalGridUndoCheckin.Enabled = UndoCheckinEnabled();
    1304             //end new code
     1355
     1356            //if the rad ones are visible, then these apply
     1357            ctxCalGridMkRadAppt.Enabled = !bEditAppointments;
     1358            ctxCalGridCancelRadAppt.Enabled = bEditAppointments;
    13051359        }
    13061360
     
    13571411                #region Methods
    13581412
     1413        private bool IsThisARadiologyResource()
     1414        {
     1415            // I don't like this logic!!!
     1416            if (this.calendarGrid1.SelectedRange.Cells.CellCount < 1 && this.calendarGrid1.SelectedAppointment < 1)
     1417                return false;
     1418            if (this.calendarGrid1.SelectedAppointment > 0)
     1419                if ((this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment).RadiologyExamIEN > 0)
     1420                    return true;
     1421
     1422            DateTime dStart;
     1423            DateTime dEnd;
     1424            string sResource;
     1425            bool bRet = this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
     1426            if (bRet == false)
     1427            {
     1428                return false;
     1429            }
     1430
     1431            return (from hl in CGDocumentManager.Current.GlobalDataSet.Tables["HospitalLocation"].AsEnumerable()
     1432                       where hl.Field<string>("IS_RADIOLOGY_LOCATION")=="1"
     1433                       join res in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
     1434                       on hl.Field<int>("HOSPITAL_LOCATION_ID") equals res.Field<int>("HOSPITAL_LOCATION_ID")
     1435                       where res.Field<string>("RESOURCE_NAME") == sResource
     1436                       select hl).Any();
     1437        }
     1438       
    13591439        private bool EditAppointmentEnabled()
    13601440        {
     
    35443624        }
    35453625
     3626        private void ctxCalGridMkRadAppt_Click(object sender, EventArgs e)
     3627        {
     3628            DateTime dStart, dEnd;
     3629            string sResource;
     3630            int nAccessTypeID = 0;
     3631
     3632            this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
     3633            this.calendarGrid1.GetSelectedType(out nAccessTypeID);
     3634            //Display a dialog to collect Patient Name
     3635            DPatientLookup dPat = new DPatientLookup();
     3636            dPat.DocManager = m_DocManager;
     3637
     3638            if (dPat.ShowDialog(this) == DialogResult.Cancel)
     3639            {
     3640                return;
     3641            }
     3642
     3643            int DFN = Int32.Parse(dPat.PatientIEN);
     3644            int hlIEN = (from resource in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
     3645                        where resource.Field<string>("RESOURCE_NAME") == sResource
     3646                        select resource.Field<int>("HOSPITAL_LOCATION_ID")).FirstOrDefault();
     3647
     3648            List<RadiologyExam> _radExams = CGDocumentManager.Current.DAL.GetRadiologyExamsForPatientinHL(DFN, hlIEN);
     3649
     3650            if (!_radExams.Any())
     3651            {
     3652                MessageBox.Show("Patient does not have any radiology exams to register.");
     3653                return;
     3654            }
     3655
     3656            DRadExamsSelect _radform = new DRadExamsSelect(_radExams);
     3657
     3658            if (_radform.ShowDialog() == DialogResult.Cancel) return;
     3659
     3660            int _examien = _radform.ExamIEN;
     3661            string _procedurename = _radform.ProcedureName;
     3662
     3663            CGDocumentManager.Current.DAL.ScheduleRadiologyExam(DFN, _examien);
     3664
     3665            //Now create and save the appointment
     3666            CGAppointment appt = new CGAppointment();
     3667            string _sNote = "Radiology Exam (" + _examien + "): " + _procedurename;
     3668            appt.CreateAppointment(dStart, dEnd, _sNote, 0, sResource);
     3669            appt.PatientID = Int32.Parse(dPat.PatientIEN);
     3670            appt.PatientName = dPat.PatientName;
     3671            appt.AccessTypeID = nAccessTypeID;
     3672            appt.RadiologyExamIEN = _examien;
     3673            this.Document.CreateAppointment(appt);
     3674
     3675            //Now redraw the grid to display the new appointments
     3676            this.UpdateArrays();
     3677        }
     3678
    35463679
    35473680
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CalendarGrid.cs

    r1123 r1140  
    409409                    {
    410410                        rect.Inflate(-10, 0);
    411                         num = (int) this.m_ApptOverlapTable[appointment.m_nKey];
     411                        num = (int) this.m_ApptOverlapTable[appointment.AppointmentKey];
    412412                        num2 = rect.Right - rect.Left;
    413413                        x = num2 / (num + 1);
     
    11281128                    x = (this.m_sResourcesArray.Count > 1) ? (((int) this.m_ColumnInfoTable[resource]) + 1) : appointment.StartTime.DayOfYear;
    11291129                    Rectangle rectangle = new Rectangle(x, y, 1, num2 - y);
    1130                     hashtable.Add(appointment.m_nKey, rectangle);
     1130                    hashtable.Add(appointment.AppointmentKey, rectangle);
    11311131                }
    11321132            }
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj

    r1112 r1140  
    140140  </ItemGroup>
    141141  <ItemGroup>
     142    <Compile Include="DRadExamsSelect.cs">
     143      <SubType>Form</SubType>
     144    </Compile>
     145    <Compile Include="DRadExamsSelect.Designer.cs">
     146      <DependentUpon>DRadExamsSelect.cs</DependentUpon>
     147    </Compile>
    142148    <Compile Include="Provider.cs" />
     149    <Compile Include="RadiologyExam.cs" />
    143150    <Compile Include="strings.ar.Designer.cs">
    144151      <AutoGen>True</AutoGen>
     
    152159    </Compile>
    153160    <Compile Include="UserPreferences.cs" />
    154     <None Include="app.config" />
    155161    <None Include="dsPatientApptDisplay2.xsc">
    156162      <DependentUpon>dsPatientApptDisplay2.xsd</DependentUpon>
     
    391397      <DependentUpon>DPatientLookup.cs</DependentUpon>
    392398      <SubType>Designer</SubType>
     399    </EmbeddedResource>
     400    <EmbeddedResource Include="DRadExamsSelect.resx">
     401      <DependentUpon>DRadExamsSelect.cs</DependentUpon>
    393402    </EmbeddedResource>
    394403    <EmbeddedResource Include="DResource.resx">
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user

    r1131 r1140  
    3737    </RemoteDebugMachine>
    3838    <StartAction>Project</StartAction>
    39     <StartArguments>/s=172.16.16.108 /p=9250 /a=BASMA.ALDWAIRI /v=SELEN.123</StartArguments>
     39    <StartArguments>/s=172.16.16.108 /p=9255 /a=s.habiel /v=catdog.66</StartArguments>
    4040    <StartPage>
    4141    </StartPage>
  • Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DAL.cs

    r1117 r1140  
    187187
    188188        /// <summary>
     189        /// TODO
     190        /// </summary>
     191        /// <param name="DFN"></param>
     192        /// <param name="SCIEN"></param>
     193        /// <returns></returns>
     194        public List<RadiologyExam> GetRadiologyExamsForPatientinHL(int DFN, int SCIEN)
     195        {
     196            string cmd = string.Format("BSDX GET RAD EXAM FOR PT^{0}^{1}", DFN, SCIEN);
     197            DataTable tbl = RPMSDataTable(cmd, "");
     198            return (from row in tbl.AsEnumerable()
     199                    select new RadiologyExam
     200                    {
     201                        IEN = row.Field<int>("BMXIEN"),
     202                        Status = row.Field<string>("STATUS"),
     203                        Procedure = row.Field<string>("PROCEDURE"),
     204                        RequestDate = row.Field<DateTime>("REQUEST_DATE")
     205                    }).ToList();
     206        }
     207
     208        public bool ScheduleRadiologyExam(int DFN, int examIEN)
     209        {
     210            string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}",DFN,examIEN));
     211            return result == "1" ? true : false;
     212        }
     213
     214        /// <summary>
    189215        /// Save User Preference in DB For Printing Routing Slip
    190216        /// Uses Parameter BSDX AUTO PRINT RS
Note: See TracChangeset for help on using the changeset viewer.