예제 #1
0
        public static Patient buildPatient(string patientID)
        {
            Patient x = new Patient();
            
            string getDirInfo = "SELECT * from Patient where patientID = " + patientID;
            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            SqlCommand cmd = new SqlCommand(getDirInfo, cnn);
            SqlDataReader datardr;
            datardr = cmd.ExecuteReader();

            // Build directory section
            while (datardr.Read())
            {
                if (datardr.GetValue(0) != System.DBNull.Value)
                    x.directory.patientID = (String)datardr.GetValue(0);
                if (datardr.GetValue(1) != System.DBNull.Value)
                    x.directory.fName = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    x.directory.lName = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    x.directory.mName = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    x.directory.DOB = (DateTime)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    string g = (String)datardr.GetValue(5);
                    if (g == "m")
                        x.directory.gender = true;
                    else x.directory.gender = false;
                }
                if (datardr.GetValue(6) != System.DBNull.Value)
                    x.directory.strAddress = (String)datardr.GetValue(6);
                if (datardr.GetValue(7) != System.DBNull.Value)
                    x.directory.zip = (String)datardr.GetValue(7);
                if (datardr.GetValue(8) != System.DBNull.Value)
                    x.directory.state = (String)datardr.GetValue(8);
                if (datardr.GetValue(10) != System.DBNull.Value)
                    x.directory.phoneNum1 = datardr.GetValue(10).ToString();
                if (datardr.GetValue(9) != System.DBNull.Value)
                    x.directory.city = (String)datardr.GetValue(9);
                if (datardr.GetValue(11) != System.DBNull.Value)
                    x.directory.phoneNum2 = datardr.GetValue(11).ToString();
                if (datardr.GetValue(12) != System.DBNull.Value)
                    x.directory.emerContact1.name = (String)datardr.GetValue(12);
                if (datardr.GetValue(13) != System.DBNull.Value)
                    x.directory.emerContact1.phoneNum = datardr.GetValue(13).ToString();
                if (datardr.GetValue(14) != System.DBNull.Value)
                    x.directory.emerContact2.name = (String)datardr.GetValue(14);
                if (datardr.GetValue(15) != System.DBNull.Value)
                    x.directory.emerContact2.phoneNum = datardr.GetValue(15).ToString();
                if (datardr.GetValue(16) != System.DBNull.Value)
                {
                    Visitor v = new Visitor();
                    v.name = (String)datardr.GetValue(16);
                    x.directory.visitors.Add(v);
                }
                if (!(datardr.GetValue(17).Equals(System.DBNull.Value)))
                    x.directory.location.bedNum = (String)datardr.GetValue(17);                         
            }
            /*

             Visitor v= new Visitor();
                 DateTime min = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
                 if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                 {
                     cnn.Close();
                 }
            cnn.Open();   
             SqlCommand cmd= new SqlCommand("createPatient", cnn);
             SqlDataReader datardr;

             //Add all the parameters required by the procedure in SQL
                 cmd.CommandType = System.Data.CommandType.StoredProcedure;
             //The input parameter patientID    
                     cmd.Parameters.Add(new SqlParameter("@patientID", patientID));
             //all the output parameters
                     cmd.Parameters.Add(new SqlParameter("@fname", x.directory.fName));
                     cmd.Parameters.Add(new SqlParameter( "@lname", x.directory.lName));
                     cmd.Parameters.Add(new SqlParameter("@mname", x.directory.mName));
                     cmd.Parameters.Add(new SqlParameter("@DOB", min));
                         x.directory.DOB = min;
                     cmd.Parameters.Add(new SqlParameter("@gender", x.directory.gender));
                     cmd.Parameters.Add(new SqlParameter("@pStreet", x.directory.strAddress));
                     cmd.Parameters.Add(new SqlParameter("@pCity", x.directory.city));
                     cmd.Parameters.Add(new SqlParameter( "@pState", x.directory.state));
                     cmd.Parameters.Add(new SqlParameter( "@pZip", x.directory.zip));
                     cmd.Parameters.Add(new SqlParameter( "@phone1", x.directory.phoneNum1));
                     cmd.Parameters.Add(new SqlParameter( "@phone2", x.directory.phoneNum2));
                     cmd.Parameters.Add(new SqlParameter( "@emName1", x.directory.emerContact1.name));
                     cmd.Parameters.Add(new SqlParameter( "@emNum1", x.directory.emerContact1.phoneNum));
                     cmd.Parameters.Add(new SqlParameter("@emName2", x.directory.emerContact2.name));
                     cmd.Parameters.Add(new SqlParameter( "@emNum2", x.directory.emerContact2.phoneNum));
                     cmd.Parameters.Add(new SqlParameter("@visitor", v.name));
                     cmd.Parameters.Add(new SqlParameter( "@bedNum", x.directory.location.bedNum));                  
             
             datardr = cmd.ExecuteReader();
             datardr.Read();
            */
             cnn.Close();
             datardr.Close();
       
            string getLocInfo = "SELECT * from Location where bedNo = " + x.directory.location.bedNum;
            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
            {
                cnn.Close();
            }
            cnn.Open();

            cmd = new SqlCommand(getLocInfo, cnn);
            cmd.CommandType = System.Data.CommandType.Text;
            datardr = cmd.ExecuteReader();
     
            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
                x.directory.location.unit = (String)datardr.GetValue(1);
            if (datardr.GetValue(2) != System.DBNull.Value)
                x.directory.location.floor = (String)datardr.GetValue(2);
            if (datardr.GetValue(3) != System.DBNull.Value)
                x.directory.location.roomNum = (String)datardr.GetValue(3);
            if (datardr.GetValue(4) != System.DBNull.Value)
                x.directory.location.occupancy = (int)datardr.GetValue(4);

            cnn.Close();
            datardr.Close();

            // If current user is a volunteer, this is all the info we need
            if (PimsMain.Program.currentUser is Volunteer)
            {
                return x;
            }

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            String getBillingInfo = "SELECT * from Charges where patientID = " + patientID;
            cmd = new SqlCommand(getBillingInfo, cnn);
            datardr = cmd.ExecuteReader();

            // build billing info here
            while (datardr.Read())
            {
                BillingLineItem item = new BillingLineItem();
                if (datardr.GetValue(1) != System.DBNull.Value)
                    item.item = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    item.cost = (int)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    item.paid = (int)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    item.insPaid = (int)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    item.dueDate = (DateTime)datardr.GetValue(5);
                x.billing.items.Add(item);
            }
            datardr.Close();

            String getInsInfo = "SELECT * from Insurance where patientID = " + patientID;
            cmd = new SqlCommand(getInsInfo, cnn);
            datardr = cmd.ExecuteReader();
            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
                x.billing.insurance.provider = (String)datardr.GetValue(1);
            if (datardr.GetValue(2) != System.DBNull.Value)
                x.billing.insurance.bin = (String)datardr.GetValue(2);
            if (datardr.GetValue(3) != System.DBNull.Value)
                x.billing.insurance.id = (String)datardr.GetValue(3);
            if (datardr.GetValue(4) != System.DBNull.Value)
                x.billing.insurance.pcn = (String)datardr.GetValue(4);
            if (datardr.GetValue(5) != System.DBNull.Value)
                x.billing.insurance.groupNum = (String)datardr.GetValue(5);
            datardr.Close();
            // if user is office staff, this is all the info we need
            if (PimsMain.Program.currentUser is OfficeStaff)
            {
                return x;
            }

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            String getTreatmentInfo = "SELECT * from Treatment where patientID = " + patientID;
            cmd = new SqlCommand(getTreatmentInfo, cnn);
            datardr = cmd.ExecuteReader();
            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
                x.treatment.dateAdmitted = (DateTime)datardr.GetValue(1);
            if (datardr.GetValue(2) != System.DBNull.Value)
                x.treatment.reasonAdmitted = (String)datardr.GetValue(2);
            if (datardr.GetValue(3) != System.DBNull.Value)
                x.treatment.dateDischarged = (DateTime)datardr.GetValue(3);
            if (datardr.GetValue(4) != System.DBNull.Value)
                x.treatment.primaryDoc = (String)datardr.GetValue(4);
            if (datardr.GetValue(5) != System.DBNull.Value)
                x.treatment.docNotes = (String)datardr.GetValue(5);
            if (datardr.GetValue(6) != System.DBNull.Value)
                x.treatment.medStaffNotes.allergies = (String)datardr.GetValue(6);
            if (datardr.GetValue(9) != System.DBNull.Value)
                x.treatment.medStaffNotes.nurseNotes = (String)datardr.GetValue(9);

            datardr.Close();

            String getStatList = "SELECT * from patientStats where patientID = " + patientID;
            cmd = new SqlCommand(getStatList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedStaffNotes.patientStats stats = new MedStaffNotes.patientStats();

                if (datardr.GetValue(1) != System.DBNull.Value)
                    stats.patientHeight = (int)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    stats.patientWeight = (int)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    stats.bloodPressureSys = (int)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    stats.bloodPressureDia = (int)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    stats.heartrate = (int)datardr.GetValue(5);
                /*if (datardr.GetValue(7) != System.DBNull.Value)
                {
                    DateTime date1;
                    DateTime.TryParse((String)datardr.GetValue(7),out date1);
                    stats.time = date1;
                }*/


                x.treatment.medStaffNotes.statList.Add(stats);
            }
            datardr.Close();

            String getDrugList = "SELECT * from Prescriptions where patientID = " + patientID;
            cmd = new SqlCommand(getDrugList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                PrescDrug drug = new PrescDrug();

                if (datardr.GetValue(1) != System.DBNull.Value)
                    drug.name = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    drug.ndc = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    drug.SIG = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    drug.prescribingPhysician = (String)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    drug.dateFilled = (DateTime)datardr.GetValue(5);
                if (datardr.GetValue(6) != System.DBNull.Value)
                    drug.cost = (int)datardr.GetValue(6);

                x.treatment.prescriptions.prescriptions.Add(drug);
            }
            datardr.Close();

            String getProcList = "SELECT * from ScheduledProcedures where patientID = " + patientID;
            cmd = new SqlCommand(getProcList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedProcedure proc = new MedProcedure();

                if (datardr.GetValue(1) != System.DBNull.Value)
                    proc.what = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    proc.when = (DateTime)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    proc.who = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    proc.where = (String)datardr.GetValue(4);

                x.treatment.procedures.Add(proc);

            }
            datardr.Close();



            return x;
        }
예제 #2
0
        public static Patient buildPatient(string patientID)
        {
            Patient x = new Patient();

            string getDirInfo = "SELECT * from Patient where patientID = " + patientID;

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
            {
                cnn.Close();
            }
            cnn.Open();
            SqlCommand    cmd = new SqlCommand(getDirInfo, cnn);
            SqlDataReader datardr;

            datardr = cmd.ExecuteReader();

            // Build directory section
            while (datardr.Read())
            {
                if (datardr.GetValue(0) != System.DBNull.Value)
                {
                    x.directory.patientID = (String)datardr.GetValue(0);
                }
                if (datardr.GetValue(1) != System.DBNull.Value)
                {
                    x.directory.fName = (String)datardr.GetValue(1);
                }
                if (datardr.GetValue(2) != System.DBNull.Value)
                {
                    x.directory.lName = (String)datardr.GetValue(2);
                }
                if (datardr.GetValue(3) != System.DBNull.Value)
                {
                    x.directory.mName = (String)datardr.GetValue(3);
                }
                if (datardr.GetValue(4) != System.DBNull.Value)
                {
                    x.directory.DOB = (DateTime)datardr.GetValue(4);
                }
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    string g = (String)datardr.GetValue(5);
                    if (g == "m")
                    {
                        x.directory.gender = true;
                    }
                    else
                    {
                        x.directory.gender = false;
                    }
                }
                if (datardr.GetValue(6) != System.DBNull.Value)
                {
                    x.directory.strAddress = (String)datardr.GetValue(6);
                }
                if (datardr.GetValue(7) != System.DBNull.Value)
                {
                    x.directory.zip = (String)datardr.GetValue(7);
                }
                if (datardr.GetValue(8) != System.DBNull.Value)
                {
                    x.directory.state = (String)datardr.GetValue(8);
                }
                if (datardr.GetValue(10) != System.DBNull.Value)
                {
                    x.directory.phoneNum1 = datardr.GetValue(10).ToString();
                }
                if (datardr.GetValue(9) != System.DBNull.Value)
                {
                    x.directory.city = (String)datardr.GetValue(9);
                }
                if (datardr.GetValue(11) != System.DBNull.Value)
                {
                    x.directory.phoneNum2 = datardr.GetValue(11).ToString();
                }
                if (datardr.GetValue(12) != System.DBNull.Value)
                {
                    x.directory.emerContact1.name = (String)datardr.GetValue(12);
                }
                if (datardr.GetValue(13) != System.DBNull.Value)
                {
                    x.directory.emerContact1.phoneNum = datardr.GetValue(13).ToString();
                }
                if (datardr.GetValue(14) != System.DBNull.Value)
                {
                    x.directory.emerContact2.name = (String)datardr.GetValue(14);
                }
                if (datardr.GetValue(15) != System.DBNull.Value)
                {
                    x.directory.emerContact2.phoneNum = datardr.GetValue(15).ToString();
                }
                if (datardr.GetValue(16) != System.DBNull.Value)
                {
                    Visitor v = new Visitor();
                    v.name = (String)datardr.GetValue(16);
                    x.directory.visitors.Add(v);
                }
                if (!(datardr.GetValue(17).Equals(System.DBNull.Value)))
                {
                    x.directory.location.bedNum = (String)datardr.GetValue(17);
                }
            }

            /*
             *
             * Visitor v= new Visitor();
             *   DateTime min = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
             *   if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
             *   {
             *       cnn.Close();
             *   }
             * cnn.Open();
             * SqlCommand cmd= new SqlCommand("createPatient", cnn);
             * SqlDataReader datardr;
             *
             * //Add all the parameters required by the procedure in SQL
             *   cmd.CommandType = System.Data.CommandType.StoredProcedure;
             * //The input parameter patientID
             *       cmd.Parameters.Add(new SqlParameter("@patientID", patientID));
             * //all the output parameters
             *       cmd.Parameters.Add(new SqlParameter("@fname", x.directory.fName));
             *       cmd.Parameters.Add(new SqlParameter( "@lname", x.directory.lName));
             *       cmd.Parameters.Add(new SqlParameter("@mname", x.directory.mName));
             *       cmd.Parameters.Add(new SqlParameter("@DOB", min));
             *           x.directory.DOB = min;
             *       cmd.Parameters.Add(new SqlParameter("@gender", x.directory.gender));
             *       cmd.Parameters.Add(new SqlParameter("@pStreet", x.directory.strAddress));
             *       cmd.Parameters.Add(new SqlParameter("@pCity", x.directory.city));
             *       cmd.Parameters.Add(new SqlParameter( "@pState", x.directory.state));
             *       cmd.Parameters.Add(new SqlParameter( "@pZip", x.directory.zip));
             *       cmd.Parameters.Add(new SqlParameter( "@phone1", x.directory.phoneNum1));
             *       cmd.Parameters.Add(new SqlParameter( "@phone2", x.directory.phoneNum2));
             *       cmd.Parameters.Add(new SqlParameter( "@emName1", x.directory.emerContact1.name));
             *       cmd.Parameters.Add(new SqlParameter( "@emNum1", x.directory.emerContact1.phoneNum));
             *       cmd.Parameters.Add(new SqlParameter("@emName2", x.directory.emerContact2.name));
             *       cmd.Parameters.Add(new SqlParameter( "@emNum2", x.directory.emerContact2.phoneNum));
             *       cmd.Parameters.Add(new SqlParameter("@visitor", v.name));
             *       cmd.Parameters.Add(new SqlParameter( "@bedNum", x.directory.location.bedNum));
             *
             * datardr = cmd.ExecuteReader();
             * datardr.Read();
             */
            cnn.Close();
            datardr.Close();

            string getLocInfo = "SELECT * from Location where bedNo = " + x.directory.location.bedNum;

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
            {
                cnn.Close();
            }
            cnn.Open();

            cmd             = new SqlCommand(getLocInfo, cnn);
            cmd.CommandType = System.Data.CommandType.Text;
            datardr         = cmd.ExecuteReader();

            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
            {
                x.directory.location.unit = (String)datardr.GetValue(1);
            }
            if (datardr.GetValue(2) != System.DBNull.Value)
            {
                x.directory.location.floor = (String)datardr.GetValue(2);
            }
            if (datardr.GetValue(3) != System.DBNull.Value)
            {
                x.directory.location.roomNum = (String)datardr.GetValue(3);
            }
            if (datardr.GetValue(4) != System.DBNull.Value)
            {
                x.directory.location.occupancy = (int)datardr.GetValue(4);
            }

            cnn.Close();
            datardr.Close();

            // If current user is a volunteer, this is all the info we need
            if (PimsMain.Program.currentUser is Volunteer)
            {
                return(x);
            }

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
            {
                cnn.Close();
            }
            cnn.Open();
            String getBillingInfo = "SELECT * from Charges where patientID = " + patientID;

            cmd     = new SqlCommand(getBillingInfo, cnn);
            datardr = cmd.ExecuteReader();

            // build billing info here
            while (datardr.Read())
            {
                BillingLineItem item = new BillingLineItem();
                if (datardr.GetValue(1) != System.DBNull.Value)
                {
                    item.item = (String)datardr.GetValue(1);
                }
                if (datardr.GetValue(2) != System.DBNull.Value)
                {
                    item.cost = (int)datardr.GetValue(2);
                }
                if (datardr.GetValue(3) != System.DBNull.Value)
                {
                    item.paid = (int)datardr.GetValue(3);
                }
                if (datardr.GetValue(4) != System.DBNull.Value)
                {
                    item.insPaid = (int)datardr.GetValue(4);
                }
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    item.dueDate = (DateTime)datardr.GetValue(5);
                }
                x.billing.items.Add(item);
            }
            datardr.Close();

            String getInsInfo = "SELECT * from Insurance where patientID = " + patientID;

            cmd     = new SqlCommand(getInsInfo, cnn);
            datardr = cmd.ExecuteReader();
            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
            {
                x.billing.insurance.provider = (String)datardr.GetValue(1);
            }
            if (datardr.GetValue(2) != System.DBNull.Value)
            {
                x.billing.insurance.bin = (String)datardr.GetValue(2);
            }
            if (datardr.GetValue(3) != System.DBNull.Value)
            {
                x.billing.insurance.id = (String)datardr.GetValue(3);
            }
            if (datardr.GetValue(4) != System.DBNull.Value)
            {
                x.billing.insurance.pcn = (String)datardr.GetValue(4);
            }
            if (datardr.GetValue(5) != System.DBNull.Value)
            {
                x.billing.insurance.groupNum = (String)datardr.GetValue(5);
            }
            datardr.Close();
            // if user is office staff, this is all the info we need
            if (PimsMain.Program.currentUser is OfficeStaff)
            {
                return(x);
            }

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
            {
                cnn.Close();
            }
            cnn.Open();
            String getTreatmentInfo = "SELECT * from Treatment where patientID = " + patientID;

            cmd     = new SqlCommand(getTreatmentInfo, cnn);
            datardr = cmd.ExecuteReader();
            datardr.Read();
            if (datardr.GetValue(1) != System.DBNull.Value)
            {
                x.treatment.dateAdmitted = (DateTime)datardr.GetValue(1);
            }
            if (datardr.GetValue(2) != System.DBNull.Value)
            {
                x.treatment.reasonAdmitted = (String)datardr.GetValue(2);
            }
            if (datardr.GetValue(3) != System.DBNull.Value)
            {
                x.treatment.dateDischarged = (DateTime)datardr.GetValue(3);
            }
            if (datardr.GetValue(4) != System.DBNull.Value)
            {
                x.treatment.primaryDoc = (String)datardr.GetValue(4);
            }
            if (datardr.GetValue(5) != System.DBNull.Value)
            {
                x.treatment.docNotes = (String)datardr.GetValue(5);
            }
            if (datardr.GetValue(6) != System.DBNull.Value)
            {
                x.treatment.medStaffNotes.allergies = (String)datardr.GetValue(6);
            }
            if (datardr.GetValue(9) != System.DBNull.Value)
            {
                x.treatment.medStaffNotes.nurseNotes = (String)datardr.GetValue(9);
            }

            datardr.Close();

            String getStatList = "SELECT * from patientStats where patientID = " + patientID;

            cmd     = new SqlCommand(getStatList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedStaffNotes.patientStats stats = new MedStaffNotes.patientStats();

                if (datardr.GetValue(1) != System.DBNull.Value)
                {
                    stats.patientHeight = (int)datardr.GetValue(1);
                }
                if (datardr.GetValue(2) != System.DBNull.Value)
                {
                    stats.patientWeight = (int)datardr.GetValue(2);
                }
                if (datardr.GetValue(3) != System.DBNull.Value)
                {
                    stats.bloodPressureSys = (int)datardr.GetValue(3);
                }
                if (datardr.GetValue(4) != System.DBNull.Value)
                {
                    stats.bloodPressureDia = (int)datardr.GetValue(4);
                }
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    stats.heartrate = (int)datardr.GetValue(5);
                }

                /*if (datardr.GetValue(7) != System.DBNull.Value)
                 * {
                 *  DateTime date1;
                 *  DateTime.TryParse((String)datardr.GetValue(7),out date1);
                 *  stats.time = date1;
                 * }*/


                x.treatment.medStaffNotes.statList.Add(stats);
            }
            datardr.Close();

            String getDrugList = "SELECT * from Prescriptions where patientID = " + patientID;

            cmd     = new SqlCommand(getDrugList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                PrescDrug drug = new PrescDrug();

                if (datardr.GetValue(1) != System.DBNull.Value)
                {
                    drug.name = (String)datardr.GetValue(1);
                }
                if (datardr.GetValue(2) != System.DBNull.Value)
                {
                    drug.ndc = (String)datardr.GetValue(2);
                }
                if (datardr.GetValue(3) != System.DBNull.Value)
                {
                    drug.SIG = (String)datardr.GetValue(3);
                }
                if (datardr.GetValue(4) != System.DBNull.Value)
                {
                    drug.prescribingPhysician = (String)datardr.GetValue(4);
                }
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    drug.dateFilled = (DateTime)datardr.GetValue(5);
                }
                if (datardr.GetValue(6) != System.DBNull.Value)
                {
                    drug.cost = (int)datardr.GetValue(6);
                }

                x.treatment.prescriptions.prescriptions.Add(drug);
            }
            datardr.Close();

            String getProcList = "SELECT * from ScheduledProcedures where patientID = " + patientID;

            cmd     = new SqlCommand(getProcList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedProcedure proc = new MedProcedure();

                if (datardr.GetValue(1) != System.DBNull.Value)
                {
                    proc.what = (String)datardr.GetValue(1);
                }
                if (datardr.GetValue(2) != System.DBNull.Value)
                {
                    proc.when = (DateTime)datardr.GetValue(2);
                }
                if (datardr.GetValue(3) != System.DBNull.Value)
                {
                    proc.who = (String)datardr.GetValue(3);
                }
                if (datardr.GetValue(4) != System.DBNull.Value)
                {
                    proc.where = (String)datardr.GetValue(4);
                }

                x.treatment.procedures.Add(proc);
            }
            datardr.Close();



            return(x);
        }
예제 #3
0
        }//end discharge patient

        // This function queries the SQL server and builds the patient requested by the 
        // PatientID according to the type of user currently logged in
        public static Patient buildPatient(string patientID)
        {
            //try
            //{
            Patient x = new Patient();
            string getDirInfo = "SELECT * from Patient where patientID = " + patientID;
            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            SqlCommand cmd = new SqlCommand(getDirInfo, cnn);
            SqlDataReader datardr;
            datardr = cmd.ExecuteReader();

            // Build directory section
            while (datardr.Read())
            {
                if (datardr.GetValue(0) != System.DBNull.Value)
                    x.directory.patientID = datardr.GetValue(0).ToString();
                if (datardr.GetValue(1) != System.DBNull.Value)
                    x.directory.fName = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    x.directory.lName = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    x.directory.mName = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    x.directory.DOB = (DateTime)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                {
                    string g = (String)datardr.GetValue(5);
                    if (g.Equals("m") || g.Equals("M"))
                        x.directory.gender = true;
                    else x.directory.gender = false;
                }
                if (datardr.GetValue(6) != System.DBNull.Value)
                    x.directory.strAddress = (String)datardr.GetValue(6);
                if (datardr.GetValue(7) != System.DBNull.Value)
                    x.directory.zip = (String)datardr.GetValue(7);
                if (datardr.GetValue(8) != System.DBNull.Value)
                    x.directory.state = (String)datardr.GetValue(8);
                if (datardr.GetValue(10) != System.DBNull.Value)
                    x.directory.phoneNum1 = datardr.GetValue(10).ToString();
                if (datardr.GetValue(9) != System.DBNull.Value)
                    x.directory.city = (String)datardr.GetValue(9);
                if (datardr.GetValue(11) != System.DBNull.Value)
                    x.directory.phoneNum2 = datardr.GetValue(11).ToString();
                if (datardr.GetValue(12) != System.DBNull.Value)
                    x.directory.emerContact1.name = (String)datardr.GetValue(12);
                if (datardr.GetValue(13) != System.DBNull.Value)
                    x.directory.emerContact1.phoneNum = datardr.GetValue(13).ToString();
                if (datardr.GetValue(14) != System.DBNull.Value)
                    x.directory.emerContact2.name = (String)datardr.GetValue(14);
                if (datardr.GetValue(15) != System.DBNull.Value)
                    x.directory.emerContact2.phoneNum = datardr.GetValue(15).ToString();
                if (datardr.GetValue(15) != System.DBNull.Value)
                    x.directory.workphone = datardr.GetValue(18).ToString();
                if (datardr.GetValue(18) != System.DBNull.Value)
                {
                    string unparsedNames = (String)datardr.GetValue(16);
                    string[] visitors = unparsedNames.Split('$');
                    foreach (string vis in visitors)
                    {
                        Visitor v = new Visitor();
                        v.name = vis;
                        if (!v.name.Equals(""))
                            x.directory.visitors.Add(v);
                    }

                }
                if (!(datardr.GetValue(17) == (System.DBNull.Value)))
                    x.directory.location.bedNum = (int)datardr.GetValue(17);
            }

            cnn.Close();
            if (x.directory.location.bedNum != null)
            {
                string getLocInfo = "SELECT * from Location where bedNo = " + x.directory.location.bedNum;
                if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                    cnn.Close();
                cnn.Open();
                cmd = new SqlCommand(getLocInfo, cnn);
                datardr = cmd.ExecuteReader();
                while (datardr.Read())
                {
                    if (datardr.GetValue(1) != System.DBNull.Value)
                        x.directory.location.unit = (String)datardr.GetValue(1);
                    if (datardr.GetValue(2) != System.DBNull.Value)
                        x.directory.location.floor = (int)datardr.GetValue(2);
                    if (datardr.GetValue(3) != System.DBNull.Value)
                        x.directory.location.roomNum = (int)datardr.GetValue(3);
                    if (datardr.GetValue(4) != System.DBNull.Value)
                        x.directory.location.occupancy = (int)datardr.GetValue(4);
                }
                datardr.Close();
            }
            // If current user is a volunteer, this is all the info we need
            if (PIMS.Program.currentUser is Volunteer)
            {
                return x;
            }

            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            String getBillingInfo = "SELECT * from Charges where patientID = " + patientID;
            cmd = new SqlCommand(getBillingInfo, cnn);
            datardr = cmd.ExecuteReader();

            // build billing info here
            while (datardr.Read())
            {
                BillingLineItem item = new BillingLineItem();
                if (datardr.GetValue(1) != System.DBNull.Value)
                    item.item = (String)datardr.GetValue(2);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    item.cost = (int)datardr.GetValue(3);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    item.paid = (int)datardr.GetValue(4);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    item.insPaid = (int)datardr.GetValue(5);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    item.dueDate = (DateTime)datardr.GetValue(6);
                if (datardr.GetValue(6) != System.DBNull.Value)
                    item.itemId = (int)datardr.GetValue(1);
                x.billing.items.Add(item);
            }
            datardr.Close();

            String getInsInfo = "SELECT * from Insurance where patientID = " + patientID;
            cmd = new SqlCommand(getInsInfo, cnn);
            datardr = cmd.ExecuteReader();
            if (datardr.Read())
            {
                if (datardr.GetValue(1) != System.DBNull.Value)
                    x.billing.insurance.provider = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    x.billing.insurance.bin = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    x.billing.insurance.id = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    x.billing.insurance.pcn = (String)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    x.billing.insurance.groupNum = (String)datardr.GetValue(5);
                if (datardr.GetValue(6) != System.DBNull.Value)
                    x.billing.insurance.insuranceType = (String)datardr.GetValue(6);
            }
            datardr.Close();


            // if user is office staff, this is all the info we need
            if (PIMS.Program.currentUser is OfficeStaff)
            {
                return x;
            }

            // fill the treatment data since the user at this point is a doc or nurse
            if (cnn != null && cnn.State == System.Data.ConnectionState.Open)
                cnn.Close();
            cnn.Open();
            String getTreatmentInfo = "SELECT * from Treatment where patientID = " + patientID;
            cmd = new SqlCommand(getTreatmentInfo, cnn);
            datardr = cmd.ExecuteReader();
            while (datardr.Read())
            {
                if (datardr.GetValue(1) != System.DBNull.Value)
                    x.treatment.dateAdmitted = (DateTime)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    x.treatment.reasonAdmitted = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    x.treatment.dateDischarged = (DateTime)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    x.treatment.primaryDoc = (String)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    x.treatment.docNotes = (String)datardr.GetValue(5);
                if (datardr.GetValue(6) != System.DBNull.Value)
                    x.treatment.medStaffNotes.allergies = (String)datardr.GetValue(6);
                if (datardr.GetValue(9) != System.DBNull.Value)
                    x.treatment.medStaffNotes.nurseNotes = (String)datardr.GetValue(9);
                if (datardr.GetValue(10) != System.DBNull.Value)
                    x.treatment.reasonDischarged = (String)datardr.GetValue(10);
                if (datardr.GetValue(11) != System.DBNull.Value)
                    x.treatment.diagnosis = (String)datardr.GetValue(11);
            }
            datardr.Close();

            String getStatList = "SELECT * from patientStats where patientID = " + patientID;
            cmd = new SqlCommand(getStatList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedStaffNotes.patientStats stats = new MedStaffNotes.patientStats();

                if (datardr.GetValue(1) != System.DBNull.Value)
                    stats.patientHeight = (int)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    stats.patientWeight = (int)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    stats.bloodPressureSys = (int)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    stats.bloodPressureDia = (int)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    stats.heartrate = (int)datardr.GetValue(5);
                if (datardr.GetValue(7) != System.DBNull.Value)
                    stats.idNum = (int)datardr.GetValue(7);
                if (datardr.GetValue(6) != System.DBNull.Value)
                {
                    stats.time = (DateTime)datardr.GetValue(6);
                }
                if (datardr.GetValue(8) != System.DBNull.Value)
                    stats.nurse = (string)datardr.GetValue(8);
                else
                    stats.nurse = "";


                x.treatment.medStaffNotes.statList.Add(stats);
            }
            datardr.Close();

            String getDrugList = "SELECT * from Prescriptions where patientID = " + patientID;
            cmd = new SqlCommand(getDrugList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                PrescDrug drug = new PrescDrug();

                if (datardr.GetValue(0) != System.DBNull.Value)
                    drug.id = (int)datardr.GetValue(0);
                if (datardr.GetValue(1) != System.DBNull.Value)
                    drug.drug.name = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    drug.ndc = (String)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    drug.SIG = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    drug.prescribingPhysician = (String)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    drug.dateFilled = (DateTime)datardr.GetValue(5);
                if (datardr.GetValue(6) != System.DBNull.Value)
                    drug.drug.cost = (int)datardr.GetValue(6);

                x.treatment.prescriptions.prescriptions.Add(drug);
            }
            datardr.Close();

            String getProcList = "SELECT * from ScheduledProcedures where patientID = " + patientID;
            cmd = new SqlCommand(getProcList, cnn);
            datardr = cmd.ExecuteReader();

            // build stats info here
            while (datardr.Read())
            {
                MedProcedure proc = new MedProcedure();

                if (datardr.GetValue(1) != System.DBNull.Value)
                    proc.what = (String)datardr.GetValue(1);
                if (datardr.GetValue(2) != System.DBNull.Value)
                    proc.when = (DateTime)datardr.GetValue(2);
                if (datardr.GetValue(3) != System.DBNull.Value)
                    proc.who = (String)datardr.GetValue(3);
                if (datardr.GetValue(4) != System.DBNull.Value)
                    proc.where = (String)datardr.GetValue(4);
                if (datardr.GetValue(5) != System.DBNull.Value)
                    proc.id = (int)datardr.GetValue(5);

                x.treatment.procedures.Add(proc);

            }


            return x;
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show("Error retrieving patient information.\nPlease try again");
            //    return null;
            //}
        }