public MedicineRecordEdit(AnesthesiaMedicineRecord m, MainView mainView) { InitializeComponent(); this.mainView = mainView; this.m = m; initInfoPanel(); }
//查找某一条药物记录 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); }
//查找某个药物最新的一笔记录 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); }
//删除某条药物记录 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); } }
public MedicineRecordEdit(AnesthesiaMedicineRecord m, MainView mainView, int flag) { InitializeComponent(); this.mainView = mainView; this.m = m; this.setStop.Visible = false; initInfoPanel(); }
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)); }
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(); }
//設置停止時間 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(); }
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(); } } } }
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); } } } }
//要改 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; }
//删除药物记录 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(); }
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]); }
//修改药物记录 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(); }
//随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); } }
//修改药物 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; }
//修改当前注射流速 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; }
//添加药物 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; }