Beispiel #1
0
 public MedicineRecordEdit(AnesthesiaMedicineRecord m, MainView mainView)
 {
     InitializeComponent();
     this.mainView = mainView;
     this.m        = m;
     initInfoPanel();
 }
Beispiel #2
0
        //查找某一条药物记录
        public AnesthesiaMedicineRecord findRecordByTime(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();
            AnesthesiaMedicineRecord target = new AnesthesiaMedicineRecord();

            string sql = string.Format("SELECT * FROM anesthesiamedicinerecord a WHERE a.MedicineID = '" + a.MedicineID + "' AND a.AnesthesiaID = '" + a.AnesthesiaID +
                                       "' AND StartTime <= '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' AND (EndTime >= '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' OR EndTime is null)");

            Console.WriteLine(sql);
            MySqlDataReader sdr = mycom.executeSQLR(sql);

            while (sdr.Read())
            {
                target.ID             = sdr[0].ToString();
                target.AnesthesiaID   = sdr[1].ToString();
                target.MedicineID     = sdr[2].ToString();
                target.AnesthesiaType = (int)sdr[3];
                if (sdr[4].ToString() != "")
                {
                    target.StartTime = (DateTime)sdr[4];
                }
                if (sdr[5].ToString() != "")
                {
                    target.EndTime = (DateTime)sdr[5];
                }
                target.ActualAmount = sdr[6].ToString();
                target.FlowRate     = sdr[7].ToString();
            }

            mycom.closeConnect();
            return(target);
        }
Beispiel #3
0
        //查找某个药物最新的一笔记录
        public AnesthesiaMedicineRecord findNewestRecord(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();

            AnesthesiaMedicineRecord target = new AnesthesiaMedicineRecord();
            string sql = string.Format("SELECT * FROM anesthesiamedicinerecord a WHERE a.MedicineID = '" + a.MedicineID + "' AND a.AnesthesiaID = '" + a.AnesthesiaID +
                                       "' AND a.ActualAmount = '" + a.ActualAmount + "' AND StartTime = (SELECT Max(b.StartTime) FROM anesthesiamedicinerecord b WHERE b.AnesthesiaID = '" + a.AnesthesiaID +
                                       "' AND b.MedicineID = '" + a.MedicineID + "' AND b.ActualAmount = '" + a.ActualAmount + "')");

            MySqlDataReader sdr = mycom.executeSQLR(sql);

            while (sdr.Read())
            {
                target.ID             = sdr[0].ToString();
                target.AnesthesiaID   = sdr[1].ToString();
                target.MedicineID     = sdr[2].ToString();
                target.AnesthesiaType = (int)sdr[3];
                if (sdr[4].ToString() != "")
                {
                    target.StartTime = (DateTime)sdr[4];
                }
                if (sdr[5].ToString() != "")
                {
                    target.EndTime = (DateTime)sdr[5];
                }
                target.ActualAmount = sdr[6].ToString();
                target.FlowRate     = sdr[7].ToString();
            }

            mycom.closeConnect();
            return(target);
        }
Beispiel #4
0
        //删除某条药物记录
        public void deleteRecord()
        {
            Medicinedata             m = medicineDataRepository.selectById(medicineList[operatingIndex].Split()[0]);
            AnesthesiaMedicineRecord a = new AnesthesiaMedicineRecord();

            a.AnesthesiaID   = StaticPatient.AnesthesiaID;
            a.MedicineID     = medicineList[operatingIndex].Split()[0];
            a.AnesthesiaType = m.Method;

            if (m.Method == 1)
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum].Value = "1";
                a.ActualAmount = medicineList[operatingIndex].Split()[1] + " " + medicineList[operatingIndex].Split()[2];
                int backward = operatingSum;
                int forward  = operatingSum + 1;
                while (medicineData.Rows[operatingIndex].Cells[backward].Value != null &&
                       !medicineData.Rows[operatingIndex].Cells[backward].Value.Equals(stopSign))
                {
                    medicineData.Rows[operatingIndex].Cells[backward].Value = null;
                    //a.Time = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25*backward);
                    //medicineRecordRepository.deleteByTime(a);
                    backward--;
                    if (backward < 0)
                    {
                        break;
                    }
                }
                a.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * (backward + 1));
                medicineRecordRepository.deleteByTime(a);

                while (forward < medicineData.ColumnCount &&
                       (medicineData.Rows[operatingIndex].Cells[forward].Value != null &&
                        (medicineData.Rows[operatingIndex].Cells[forward].Value.Equals(continuousSign) ||
                         medicineData.Rows[operatingIndex].Cells[forward].Value.Equals(stopSign))))
                {
                    medicineData.Rows[operatingIndex].Cells[forward].Value = null;
                    //a.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25*forward);
                    //medicineRecordRepository.deleteByTime(a);
                    forward++;
                }

                if (forward >= medicineData.ColumnCount)
                {
                    for (int i = 0; i < medicineOnList.Count; i++)
                    {
                        if (medicineOnList[i].MedicineID.Equals(medicineList[operatingIndex].Split()[0]))
                        {
                            medicineOnList.RemoveAt(i);
                        }
                    }
                }
            }
            else
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum].Value = null;
                a.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
                medicineRecordRepository.deleteByTime(a);
            }
        }
Beispiel #5
0
 public MedicineRecordEdit(AnesthesiaMedicineRecord m, MainView mainView, int flag)
 {
     InitializeComponent();
     this.mainView        = mainView;
     this.m               = m;
     this.setStop.Visible = false;
     initInfoPanel();
 }
Beispiel #6
0
        public void setContinue()
        {
            AnesthesiaMedicineRecord a = new AnesthesiaMedicineRecord();

            a.MedicineID   = medicineList[operatingIndex].Split(' ')[0];
            a.ActualAmount = medicineList[operatingIndex].Split(' ')[1] + " " + medicineList[operatingIndex].Split(' ')[2];
            a.AnesthesiaID = StaticPatient.AnesthesiaID;

            addMedicine(medicineRecordRepository.findNewestRecord(a));
        }
Beispiel #7
0
        public void insertMRecord(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();
            //string sql = string.Format("INSERT INTO anesthesiamedicinerecord (`MedicineID`,`Time`, `ActualAmount`, `FlowRate`)  VALUES ('"
            //    + a.MedicineID + "','" + a.Time + "','" + a.ActualAmount + "','" + a.FlowRate + "')");
            string sql = string.Format("INSERT INTO anesthesiamedicinerecord (`MedicineID`,`ActualAmount`,`AnesthesiaType`,`AnesthesiaID`, `StartTime`,`FlowRate`)  VALUES ('"
                                       + a.MedicineID + "','" + a.ActualAmount + "','" + a.AnesthesiaType + "','" + a.AnesthesiaID + "','" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "','" + a.FlowRate + "')");

            mycom.executeSQLCUD(sql);
            mycom.closeConnect();
        }
Beispiel #8
0
        //設置停止時間
        public void setEndTime(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();

            string sql = "UPDATE anesthesiamedicinerecord SET EndTime = '" + a.EndTime.ToString("yyyy-MM-dd HH:mm:ss") + "' WHERE StartTime = '"
                         + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' AND MedicineID = '" + a.MedicineID + "' AND AnesthesiaID = '" + a.AnesthesiaID + "'";

            Console.WriteLine(sql);
            mycom.executeSQLCUD(sql);
            mycom.closeConnect();
        }
Beispiel #9
0
        private void medicineData_DoubleClick(object sender, EventArgs e)
        {
            operatingSum   = medicineData.CurrentCell.ColumnIndex;
            operatingIndex = medicineData.CurrentCell.RowIndex;
            if (medicineData.CurrentCell.RowIndex == medicineData.Rows.Count - 1)
            {
                MedicineDataAddForm_InListView medicineDataAddForm_InListView = new MedicineDataAddForm_InListView(this);
                medicineDataAddForm_InListView.ShowDialog();
            }
            else
            {
                AnesthesiaMedicineRecord m = new AnesthesiaMedicineRecord();
                m.StartTime    = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
                m.MedicineID   = medicineList[medicineData.CurrentCell.RowIndex].Split(' ')[0];
                m.AnesthesiaID = StaticPatient.AnesthesiaID;
                m = medicineRecordRepository.findRecordByTime(m);

                //判斷注射方式
                if (m.AnesthesiaType == 0)
                {
                    //所操作的單元格為空則默認新增
                    if (medicineData.CurrentCell.Value == null)
                    {
                        MedicineDataAddForm_InListView medicineDataAddForm_InListView = new MedicineDataAddForm_InListView(medicineDataRepository.
                                                                                                                           selectById(medicineList[medicineData.CurrentCell.RowIndex].Split(' ')[0]), this, 0);
                        medicineDataAddForm_InListView.ShowDialog();
                    }
                    //若不為空則跳出視窗供使用者選擇 刪除/修改
                    else
                    {
                        MedicineRecordEdit medicineRecordEdit = new MedicineRecordEdit(m, this, 0);
                        medicineRecordEdit.ShowDialog();
                    }
                }
                else
                {
                    //所操作的單元格為空則默認新增
                    if (medicineData.CurrentCell.Value == null)
                    {
                        MedicineDataAddForm_InListView medicineDataAddForm_InListView = new MedicineDataAddForm_InListView(medicineDataRepository.
                                                                                                                           selectById(medicineList[medicineData.CurrentCell.RowIndex].Split(' ')[0]), this, 0);
                        medicineDataAddForm_InListView.ShowDialog();
                    }
                    //若不為空則跳出視窗供使用者選擇 刪除/修改
                    else
                    {
                        MedicineRecordEdit medicineRecordEdit = new MedicineRecordEdit(m, this);
                        medicineRecordEdit.ShowDialog();
                    }
                }
            }
        }
Beispiel #10
0
        public void setStop(AnesthesiaMedicineRecord m)
        {
            m.EndTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
            medicineRecordRepository.setEndTime(m);

            if (medicineData.Rows[operatingIndex].Cells[operatingSum].Value != null &&
                (!medicineData.Rows[operatingIndex].Cells[operatingSum].Value.Equals(continuousSign) &&
                 !medicineData.Rows[operatingIndex].Cells[operatingSum].Value.Equals(stopSign)))
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum].Value
                    = medicineData.Rows[operatingIndex].Cells[operatingSum].Value.ToString().Split(' ')[0]
                      + medicineData.Rows[operatingIndex].Cells[operatingSum].Value.ToString().Split(' ')[1]
                      + " ——————————▌";
            }
            else
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum].Value = stopSign;
            }

            operatingSum++;

            while (operatingSum < medicineData.ColumnCount &&
                   (medicineData.Rows[operatingIndex].Cells[operatingSum].Value != null &&
                    (medicineData.Rows[operatingIndex].Cells[operatingSum].Value.Equals(continuousSign) ||
                     medicineData.Rows[operatingIndex].Cells[operatingSum].Value.Equals(stopSign))))
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum].Value = null;
                operatingSum++;
                if (operatingSum >= medicineData.ColumnCount)
                {
                    break;
                }
            }

            if (operatingSum >= medicineData.ColumnCount)
            {
                for (int i = 0; i < medicineOnList.Count; i++)
                {
                    if (medicineOnList[i].MedicineID.Equals(medicineList[operatingIndex].Split(' ')[0]))
                    {
                        medicineOnList.RemoveAt(i);
                    }
                }
            }
        }
Beispiel #11
0
        //要改
        public void continuousMStop(Medicinedata a)
        {
            //修改资料库注射停止时间
            AnesthesiaMedicineRecord m = new AnesthesiaMedicineRecord();

            m.AnesthesiaID = StaticPatient.AnesthesiaID;
            m.MedicineID   = a.MId;
            m.StartTime    = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
            m         = medicineRecordRepository.findRecordByTime(m);
            m.EndTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
            medicineRecordRepository.setEndTime(m);

            //修改画面
            isLocked = true;
            DataGridViewRow row = (DataGridViewRow)medicineData.Rows[operatingIndex];

            row.Cells[operatingSum].Value = stopSign;
            for (int i = operatingSum + 1; i < (int)((sum - 1) / 5); i++)
            {
                row.Cells[i].Value = "";
            }

            this.medicineData.Rows.RemoveAt(operatingIndex);
            this.medicineData.Rows.Insert(0, row);

            for (int i = 0; i < medicineOnList.Count; i++)
            {
                if (medicineOnList[i].MedicineID == medicineList[operatingIndex].Split(' ')[0])
                {
                    medicineOnList.RemoveAt(i);
                }
            }

            //药物名称重新排序
            string          currentName = m.MedicineID + " " + m.ActualAmount;
            DataGridViewRow r           = (DataGridViewRow)medicineLst.Rows[medicineList.IndexOf(currentName)];

            medicineLst.Rows.RemoveAt(medicineList.IndexOf(currentName));
            medicineLst.Rows.Insert(0, r);
            medicineList.RemoveAt(medicineList.IndexOf(currentName));
            medicineList.Insert(0, currentName);
            medicineLst.CurrentCell = null;
            isLocked = false;
        }
Beispiel #12
0
        //删除药物记录
        public void deleteByTime(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();
            string sql;

            if (a.AnesthesiaType == 0)
            {
                sql = "DELETE FROM anesthesiamedicinerecord WHERE StartTime = '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' AND MedicineID = '"
                      + a.MedicineID + "' AND AnesthesiaID = '" + a.AnesthesiaID + "'";
            }
            else
            {
                sql = "DELETE FROM anesthesiamedicinerecord WHERE StartTime = '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' AND MedicineID = '"
                      + a.MedicineID + "' AND AnesthesiaID = '" + a.AnesthesiaID + "' AND ActualAmount = '" + a.ActualAmount + "'";
            }

            mycom.executeSQLCUD(sql);
            mycom.closeConnect();
        }
Beispiel #13
0
        public MedicineDataAddForm_InListView(AnesthesiaMedicineRecord m, MainView mainView, int flag)
        {
            this.mainView       = mainView;
            this.flag           = flag;
            this.medicineRecord = m;
            InitializeComponent();
            LoadData();
            Console.WriteLine("HJK" + m.MedicineID);
            Mname.SelectedIndex = Mname.FindStringExact(medicineDataRepository.selectById(m.MedicineID).MName);
            Mname.Enabled       = false;

            NMvalue.Text = m.ActualAmount.Split(' ')[0];
            MCvalue.Text = m.ActualAmount.Split(' ')[0];
            MRvalue.Text = m.FlowRate.Split(' ')[0];

            NMunit.SelectedIndex = NMunit.FindStringExact(medicineRecord.ActualAmount.Split(' ')[1]);
            MCunit.SelectedIndex = NMunit.FindStringExact(medicineRecord.ActualAmount.Split(' ')[1]);
            MRunit.SelectedIndex = NMunit.FindStringExact(medicineRecord.ActualAmount.Split(' ')[1]);
        }
Beispiel #14
0
        //修改药物记录
        public void updateByTime(AnesthesiaMedicineRecord a)
        {
            mycom = new sqlBase();
            string sql;

            if (a.AnesthesiaType == 0)
            {
                sql = "UPDATE anesthesiamedicinerecord SET ActualAmount = '" + a.ActualAmount + "' WHERE StartTime = '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss")
                      + "' AND MedicineID = '" + a.MedicineID + "' AND AnesthesiaID = '" + a.AnesthesiaID + "'";
            }
            else
            {
                sql = "UPDATE anesthesiamedicinerecord SET ActualAmount = '" + a.ActualAmount + "' , FlowRate = '" + a.FlowRate +
                      "' WHERE StartTime = '" + a.StartTime.ToString("yyyy-MM-dd HH:mm:ss") + "' AND MedicineID = '"
                      + a.MedicineID + "' AND AnesthesiaID = '" + a.AnesthesiaID + "'";
            }

            Console.WriteLine(sql);
            mycom.executeSQLCUD(sql);
            mycom.closeConnect();
        }
Beispiel #15
0
        //随timer添加剂量(for连续输注)
        private void drawMedicineData()
        {
            //空白行
            DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.Count];

            row.Cells[(sum - 1) / 5].Value = "";
            medicineData.Rows.RemoveAt(medicineList.Count);
            medicineData.Rows.Insert(medicineList.Count, row);

            for (int i = 0; i < medicineOnList.Count && !isLocked; i++)
            {
                //写进资料库
                AnesthesiaMedicineRecord a = medicineOnList[i];
                //a.Time = sum;
                //a.Time = time;
                //medicineRecordRepository.insertMRecord(a);

                //剂量
                string          currentId = medicineOnList[i].MedicineID + " " + medicineOnList[i].ActualAmount;
                DataGridViewRow row1      = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(currentId)];

                if (row1.Cells[(sum - 1) / 5].Value == null)
                {
                    row1.Cells[(sum - 1) / 5].Value = continuousSign;
                }

                medicineData.Rows.RemoveAt(medicineList.IndexOf(currentId));
                medicineData.Rows.Insert(medicineList.IndexOf(currentId), row1);
            }

            if (!stop_flag)
            {
                medicineData.CurrentCell = medicineData.Rows[0].Cells[medicineData.Columns.Count - 1];
            }

            foreach (DataGridViewColumn gCol in medicineData.Columns)
            {
                gCol.Width = this.medicineData.Width / ((int)chart.ChartAreas[0].AxisX.ScaleView.Size / 5);
            }
        }
Beispiel #16
0
        //修改药物
        public void modifyMedicine(AnesthesiaMedicineRecord m)
        {
            isLocked       = true;
            m.AnesthesiaID = StaticPatient.anesthesiaData.AnesthesiaID;

            //要写村进资料库的部分
            if (m.AnesthesiaType == 0)
            {
                DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(m.MedicineID)];
                row.Cells[operatingSum].Value = m.ActualAmount;
                m.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * operatingSum);
                medicineRecordRepository.updateByTime(m);
                this.medicineData.Rows.RemoveAt(medicineList.IndexOf(m.MedicineID));
                this.medicineData.Rows.Insert(0, row);
            }
            else
            {
                //浓度是否修改
                if (!m.ActualAmount.Equals(medicineList[operatingIndex].Split(' ')[1] + " " + medicineList[operatingIndex].Split(' ')[2]))
                {
                    DataGridViewRow row1 = (DataGridViewRow)medicineData.Rows[operatingIndex];
                    DataGridViewRow row2;
                    //是否已经有添加过
                    if (medicineList.Exists(x => x.Equals(m.MedicineID + " " + m.ActualAmount)))
                    {
                        row2 = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount)];
                    }
                    else
                    {
                        medicineList.Insert(0, m.MedicineID + " " + m.ActualAmount);
                        this.medicineLst.Rows.Insert(0, medicineDataRepository.selectById(m.MedicineID).MName + " "
                                                     + m.ActualAmount);
                        row2 = (DataGridViewRow)medicineData.Rows[medicineList.Count - 1].Clone();
                    }

                    int forward  = operatingSum;
                    int backward = operatingSum;

                    if (!(row1.Cells[forward].Value.Equals(stopSign) ||
                          row1.Cells[forward].Value.Equals(continuousSign)))
                    {
                        forward++;
                    }

                    while (forward < row1.Cells.Count && row1.Cells[forward].Value != null &&
                           (row1.Cells[forward].Value.Equals(stopSign) ||
                            row1.Cells[forward].Value.Equals(continuousSign)))
                    {
                        row2.Cells[forward].Value = row1.Cells[forward].Value;
                        row1.Cells[forward].Value = null;
                        //m.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * forward);
                        //medicineRecordRepository.updateByTime(m);
                        forward++;
                    }

                    //如果正在注射
                    if (forward == row1.Cells.Count)
                    {
                        medicineOnList.Find(x => x.MedicineID.Equals(m.MedicineID)).ActualAmount = m.ActualAmount;
                        medicineOnList.Find(x => x.MedicineID.Equals(m.MedicineID)).FlowRate     = m.FlowRate;
                    }

                    while (row1.Cells[backward].Value == null || (row1.Cells[backward].Value.Equals(continuousSign) || row1.Cells[backward].Value.Equals(stopSign)))
                    {
                        if (row1.Cells[backward].Value != null)
                        {
                            row2.Cells[backward].Value = row1.Cells[backward].Value;
                        }
                        row1.Cells[backward].Value = null;
                        //m.Time = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * backward);
                        //medicineRecordRepository.updateByTime(m);
                        backward--;
                    }
                    row2.Cells[backward].Value = m.FlowRate + startContinuousSign;
                    row1.Cells[backward].Value = null;
                    //m.Time = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * backward);
                    medicineRecordRepository.updateByTime(m);

                    if (medicineList.Exists(x => x.Equals(m.MedicineID + " " + m.ActualAmount)))
                    {
                        this.medicineData.Rows.RemoveAt(medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount));
                    }
                    this.medicineData.Rows.Insert(0, row2);
                }
                else
                {
                    DataGridViewRow row = (DataGridViewRow)medicineData.Rows[operatingIndex];

                    int forward  = operatingSum;
                    int backward = operatingSum;
                    //往后找有没有停止符号
                    while (forward < row.Cells.Count && !row.Cells[forward].Value.Equals(stopSign))
                    {
                        //m.Time = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * forward);
                        //medicineRecordRepository.updateByTime(m);
                        forward++;
                    }

                    //如果没有找到停止符号
                    if (forward == row.Cells.Count)
                    {
                        medicineOnList.Find(x => x.MedicineID.Equals(m.MedicineID)).ActualAmount = m.ActualAmount;
                        medicineOnList.Find(x => x.MedicineID.Equals(m.MedicineID)).FlowRate     = m.FlowRate;
                    }
                    while (row.Cells[backward].Value.Equals(continuousSign) || row.Cells[backward].Value.Equals(stopSign))
                    {
                        //m.Time = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * backward);
                        //medicineRecordRepository.updateByTime(m);
                        backward--;
                    }
                    row.Cells[backward].Value = m.FlowRate + startContinuousSign;
                    //m.StartTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(25 * backward);
                    medicineRecordRepository.updateByTime(m);

                    this.medicineData.Rows.RemoveAt(operatingIndex);
                    this.medicineData.Rows.Insert(0, row);
                }
            }

            //药物名称重新排序
            string currentName;

            if (m.AnesthesiaType == 0)
            {
                currentName = m.MedicineID;
            }
            else
            {
                currentName = m.MedicineID + " " + m.ActualAmount;
            }
            DataGridViewRow r = (DataGridViewRow)medicineLst.Rows[medicineList.IndexOf(currentName)];

            medicineLst.Rows.RemoveAt(medicineList.IndexOf(currentName));
            medicineLst.Rows.Insert(0, r);
            medicineList.RemoveAt(medicineList.IndexOf(currentName));
            medicineList.Insert(0, currentName);
            medicineLst.CurrentCell = null;
            isLocked = false;
        }
Beispiel #17
0
        //修改当前注射流速
        public void modifyFlowRate(AnesthesiaMedicineRecord m)
        {
            isLocked       = true;
            m.StartTime    = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(operatingSum * 5);
            m.AnesthesiaID = StaticPatient.AnesthesiaID;
            medicineRecordRepository.insertMRecord(m);
            AnesthesiaMedicineRecord currentA = medicineRecordRepository.findNewestRecord(medicineOnList.Find(x => x.MedicineID.Equals(medicineList[operatingIndex].Split(' ')[0])));

            currentA.EndTime = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds((operatingSum - 1) * 5);
            medicineRecordRepository.setEndTime(currentA);
            if (medicineData.Rows[operatingIndex].Cells[operatingSum - 1].Value.Equals(continuousSign))
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum - 1].Value = stopSign;
            }
            else
            {
                medicineData.Rows[operatingIndex].Cells[operatingSum - 1].Value =
                    medicineData.Rows[operatingIndex].Cells[operatingSum - 1].Value.ToString().Split(' ')[0]
                    + medicineData.Rows[operatingIndex].Cells[operatingSum - 1].Value.ToString().Split(' ')[1]
                    + " ——————————▌";
            }

            medicineOnList.RemoveAt(medicineOnList.FindIndex(x => x.MedicineID.Equals(medicineList[operatingIndex].Split(' ')[0])));

            //判断是否已经添加
            if (medicineList.Exists(x => x.Split(' ')[0].Equals(m.MedicineID) &&
                                    (x.Split(' ').Length == 1 || (x.Split(' ')[1] + " " + x.Split(' ')[2]).Equals(m.ActualAmount))))
            {
                DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount)];
                row.Cells[operatingSum].Value = m.FlowRate + startContinuousSign;
                for (int i = operatingSum + 1; i <= (int)((sum - 1) / 5); i++)
                {
                    row.Cells[i].Value = continuousSign;
                }

                medicineOnList.Add(m);
                this.medicineData.Rows.RemoveAt(medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount));
                this.medicineData.Rows.Insert(0, row);
            }
            else
            {
                medicineList.Insert(0, m.MedicineID + " " + m.ActualAmount);
                DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.Count - 1].Clone();
                this.medicineLst.Rows.Insert(0, medicineDataRepository.selectById(m.MedicineID).MName + " "
                                             + m.ActualAmount);

                row.Cells[operatingSum].Value = m.FlowRate + startContinuousSign;
                for (int i = operatingSum + 1; i <= (int)((sum - 1) / 5); i++)
                {
                    row.Cells[i].Value = continuousSign;
                }

                medicineOnList.Add(m);
                this.medicineData.Rows.Insert(0, row);
            }

            //药物名称重新排序
            string          currentName = m.MedicineID + " " + m.ActualAmount;
            DataGridViewRow r           = (DataGridViewRow)medicineLst.Rows[medicineList.IndexOf(currentName)];

            medicineLst.Rows.RemoveAt(medicineList.IndexOf(currentName));
            medicineLst.Rows.Insert(0, r);
            medicineList.RemoveAt(medicineList.IndexOf(currentName));
            medicineList.Insert(0, currentName);
            medicineLst.CurrentCell = null;
            isLocked = false;
        }
Beispiel #18
0
        //添加药物
        public void addMedicine(AnesthesiaMedicineRecord m)
        {
            isLocked       = true;
            m.StartTime    = StaticPatient.anesthesiaData.Thebeginningofsurgery.AddSeconds(operatingSum * 25);
            m.AnesthesiaID = StaticPatient.AnesthesiaID;
            medicineRecordRepository.insertMRecord(m);
            if (m.AnesthesiaType == 0)
            {
                //是否已经添加过
                if (medicineList.Exists(x => x.Split(' ')[0].Equals(m.MedicineID)))
                {
                    DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(m.MedicineID)];
                    row.Cells[operatingSum].Value = m.ActualAmount;
                    this.medicineData.Rows.RemoveAt(medicineList.IndexOf(m.MedicineID));
                    this.medicineData.Rows.Insert(0, row);
                }
                else
                {
                    medicineList.Insert(0, m.MedicineID);
                    DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.Count - 1].Clone();
                    this.medicineLst.Rows.Insert(0, medicineDataRepository.selectById(m.MedicineID).MName);
                    row.Cells[operatingSum].Value = m.ActualAmount;
                    this.medicineData.Rows.Insert(0, row);
                }
            }
            else
            {
                //是否有正在注射的 先停掉
                if (medicineOnList.Exists(x => x.MedicineID.Equals(m.MedicineID)))
                {
                    int templeCurrentSum = operatingSum;
                    int templeIndex      = 0;
                    for (int i = 0; i < medicineList.Count; i++)
                    {
                        if (medicineList[i].Equals(m.MedicineID + " " +
                                                   medicineOnList.Find(x => x.MedicineID.Equals(m.MedicineID)).ActualAmount))
                        {
                            templeIndex = i;
                        }
                    }

                    if (medicineData.Rows[templeIndex].Cells[operatingSum - 1].Value.Equals(continuousSign))
                    {
                        medicineData.Rows[templeIndex].Cells[operatingSum - 1].Value = stopSign;
                    }
                    else
                    {
                        medicineData.Rows[templeIndex].Cells[operatingSum - 1].Value =
                            medicineData.Rows[templeIndex].Cells[operatingSum - 1].Value.ToString().Split(' ')[0]
                            + medicineData.Rows[templeIndex].Cells[operatingSum - 1].Value.ToString().Split(' ')[1]
                            + " ——————————▌";
                    }

                    //将停止符号的后面的清空
                    while (templeCurrentSum < medicineData.ColumnCount)
                    {
                        medicineData.Rows[templeIndex].Cells[templeCurrentSum].Value = null;
                        templeCurrentSum++;
                        if (templeCurrentSum >= medicineData.ColumnCount)
                        {
                            break;
                        }
                    }

                    for (int i = 0; i < medicineOnList.Count; i++)
                    {
                        if (medicineOnList[i].MedicineID.Equals(medicineList[templeIndex].Split(' ')[0]))
                        {
                            medicineOnList.RemoveAt(i);
                        }
                    }
                }

                //判断是否已经添加
                if (medicineList.Exists(x => x.Split(' ')[0].Equals(m.MedicineID) &&
                                        (x.Split(' ').Length == 1 || (x.Split(' ')[1] + " " + x.Split(' ')[2]).Equals(m.ActualAmount))))
                {
                    DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount)];
                    row.Cells[operatingSum].Value = m.FlowRate + startContinuousSign;
                    for (int i = operatingSum + 1; i <= (int)((sum - 1) / 5); i++)
                    {
                        row.Cells[i].Value = continuousSign;
                    }

                    medicineOnList.Add(m);
                    this.medicineData.Rows.RemoveAt(medicineList.IndexOf(m.MedicineID + " " + m.ActualAmount));
                    this.medicineData.Rows.Insert(0, row);
                }
                else
                {
                    medicineList.Insert(0, m.MedicineID + " " + m.ActualAmount);
                    DataGridViewRow row = (DataGridViewRow)medicineData.Rows[medicineList.Count - 1].Clone();
                    this.medicineLst.Rows.Insert(0, medicineDataRepository.selectById(m.MedicineID).MName + " "
                                                 + m.ActualAmount);

                    row.Cells[operatingSum].Value = m.FlowRate + startContinuousSign;
                    for (int i = operatingSum + 1; i < medicineData.ColumnCount; i++)
                    {
                        row.Cells[i].Value = continuousSign;
                    }

                    medicineOnList.Add(m);
                    this.medicineData.Rows.Insert(0, row);
                }
            }

            //药物名称重新排序
            string currentName;

            if (m.AnesthesiaType == 0)
            {
                currentName = m.MedicineID;
            }
            else
            {
                currentName = m.MedicineID + " " + m.ActualAmount;
            }
            DataGridViewRow r = (DataGridViewRow)medicineLst.Rows[medicineList.IndexOf(currentName)];

            medicineLst.Rows.RemoveAt(medicineList.IndexOf(currentName));
            medicineLst.Rows.Insert(0, r);
            medicineList.RemoveAt(medicineList.IndexOf(currentName));
            medicineList.Insert(0, currentName);
            medicineLst.CurrentCell = null;
            isLocked = false;
        }