/// <summary> /// 显示所有病人信息 /// </summary> private void ShowAllPatient() { List <Patient> patients = MedicineLogic.QueryAllPatients(); foreach (var patient in patients) { int index = this.dgvPatient.Rows.Add(); this.dgvPatient.Rows[index].Cells[0].Value = patient.Id; this.dgvPatient.Rows[index].Cells[1].Value = patient.Name; DataGridViewImageCell img = new DataGridViewImageCell(); Bitmap bitmap = Properties.Resources.greenlight; if ((patient.MorningStatus == TakeStatus.正常 || patient.MorningStatus == TakeStatus.未知) && (patient.NoonStatus == TakeStatus.正常 || patient.NoonStatus == TakeStatus.未知) && (patient.EveningStatus == TakeStatus.正常 || patient.EveningStatus == TakeStatus.未知) && (patient.AdditionalStatus == TakeStatus.正常 || patient.AdditionalStatus == TakeStatus.未知)) { this.dgvPatient.Rows[index].Cells[2].Value = Properties.Resources.greenlight; } else { this.dgvPatient.Rows[index].Cells[2].Value = Properties.Resources.redlight; } } this.dgvPatient.RowHeadersVisible = false; this.dgvPatient.Columns[0].Visible = false; }
/// <summary> /// 初步处理更新服药时间 /// </summary> /// <param name="recvMsg"></param> private void UpdateTakeTimeStatus(RecvMsg recvMsg) { string time = recvMsg.Data.Substring(0, 2); string status = recvMsg.Data.Substring(2); int id = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo); switch (time) { case "31": // 早 UpdateTakeTimeStatus(id, "MorningStatus", status); break; case "32": //中 UpdateTakeTimeStatus(id, "NoonStatus", status); break; case "33": //晚 UpdateTakeTimeStatus(id, "EveningStatus", status); break; case "34": //附加 break; default: break; } }
/// <summary> /// 修改设备编号 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSaveNewDeviceNo_Click(object sender, EventArgs e) { if (labId.Text == "-1") { MessageBox.Show("请先选择病人"); return; } int currDeviceNo = Convert.ToInt32(labDeviceNo.Text); int deviceNo = Convert.ToInt32(txtNewDeviceNo.Text ?? "-1"); if (deviceNo <= 0 || deviceNo >= 65535) { MessageBox.Show("设备号在1到65534之间"); return; } if (MedicineLogic.IsDeviceExistbyDeviceNo(deviceNo)) { MessageBox.Show("该设备已存在"); return; } Device device = MedicineLogic.QueryDeviceByDeviceNo(currDeviceNo); MedicineLogic.UpdateDeviceNo(device.Id, deviceNo); byte[] zero = { 0x00 }; byte[] funcNo = { 0x01 }; byte[] oldDeviceNo = currDeviceNo > 255 ? Common.IntToHexByte(currDeviceNo) : zero.Concat(Common.IntToHexByte(currDeviceNo)).ToArray(); byte[] newDeviceNo = deviceNo > 255 ? Common.IntToHexByte(deviceNo) : zero.Concat(Common.IntToHexByte(deviceNo)).ToArray(); byte[] flg = Common.BuildFlg(); byte[] data = oldDeviceNo.Concat(funcNo).Concat(newDeviceNo).Concat(flg).ToArray(); AutoSendData(device.DeviceIP, data, flg); labDeviceNo.Text = deviceNo.ToString(); }
protected void Btn_Add_Click(object sender, EventArgs e) { HuaJiaCartModel huaJiaCartModel = new HuaJiaCartModel(); huaJiaCartModel.setUsername(Session["username"].ToString()); int medicineId = Int32.Parse(this.MedicineId.SelectedValue); huaJiaCartModel.setMedicineId(medicineId); float price = MedicineLogic.getPriceById(medicineId); huaJiaCartModel.setPrice(price); int count = Int32.Parse(this.Count.Text); huaJiaCartModel.setCount(count); float totalPrice = price * count; huaJiaCartModel.setTotalPrice(totalPrice); HuaJiaCartLogic huaJiaCartLogic = new HuaJiaCartLogic(); if (huaJiaCartLogic.AddHuaJiaCartInfo(huaJiaCartModel)) { Response.Write("<script>alert('药品划价销售信息添加成功!');location.href='HuaJiaAdd.aspx';</script>"); } else { Response.Write("<script>alert('" + huaJiaCartLogic.getErrMessage() + "');location.href='HuaJiaAdd.aspx';</script>"); } }
/// <summary> /// 重新查询数据 /// </summary> /// <param name="patientid"></param> private void UpdateUi(int patientid) { if (dgvPatient.CurrentRow != null) { int currIndex = dgvPatient.CurrentRow.Index; foreach (DataGridViewRow row in dgvPatient.Rows) { if (row.Cells[0].Value.ToString() == patientid.ToString()) { Patient patient = MedicineLogic.QueryPatientById(patientid); if ((patient.MorningStatus == TakeStatus.正常 || patient.MorningStatus == TakeStatus.未知) && (patient.NoonStatus == TakeStatus.正常 || patient.NoonStatus == TakeStatus.未知) && (patient.EveningStatus == TakeStatus.正常 || patient.EveningStatus == TakeStatus.未知) && (patient.AdditionalStatus == TakeStatus.正常 || patient.AdditionalStatus == TakeStatus.未知)) { row.Cells[2].Value = Properties.Resources.greenlight; } else { row.Cells[2].Value = Properties.Resources.redlight; } if (row.Index == currIndex) { dgvPatient_CellClick(dgvPatient, new DataGridViewCellEventArgs(0, row.Index)); break; } } } } }
public WindowLinkingMed(ReceiptLogic logicReceipt, MedicineLogic logicMedicine, SymptomaticLogic logicSymptomatic) { InitializeComponent(); this.logicSymptomatic = logicSymptomatic; this.logicMedicine = logicMedicine; this.logicReceipt = logicReceipt; }
/// <summary> /// 定时器,每秒触发的任务=发送消息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_EverySec_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { everySec.Enabled = false; if (DateTime.Now.Hour == 23 && DateTime.Now.Minute == 59) { MedicineLogic.ResetIsTake(); } if (msgList.Count > 0) { lock (msgList) { for (int i = 0; i < msgList.Count; i++) { if (msgList[i].ReTransmissionCount <= 0) { LogService.WriteLog($"超过重传次数,消息为:{Common.ByteToHexStr(msgList[i].SendMsg, msgList[i].SendMsg.Length)}"); msgList.RemoveAt(i); continue; } SendData(msgList[i].SendMsg, msgList[i].Remote); msgList[i].ReTransmissionCount--; } } } everySec.Enabled = true; }
protected void Btn_GuaHao_Click(object sender, EventArgs e) { string medicineName = this.MedicineName.Text; float price = Convert.ToSingle(this.Price.Text); int stockCount = Int32.Parse(this.StockCount.Text); string unit = this.Unit.Text; string pzwh = this.Pzwh.Text; string ingredient = this.Ingredient.Text; string efficacy = this.Efficacy.Text; string usage = this.Usage.Text; MedicineModel medicineModel = new MedicineModel(); medicineModel.setMedicineName(medicineName); medicineModel.setPrice(price); medicineModel.setStockCount(stockCount); medicineModel.setUnit(unit); medicineModel.setPzwh(pzwh); medicineModel.setIngredient(ingredient); medicineModel.setEfficacy(efficacy); medicineModel.setUsage(usage); MedicineLogic medicineLogic = new MedicineLogic(); if (medicineLogic.AddMedicineInfo(medicineModel)) { Response.Write("<script>alert('药品信息添加成功!');location.href='MedicineAdd.aspx';</script>"); } else { Response.Write("<script>alert('" + medicineLogic.getErrMessage() + "');<script>"); } }
protected void Page_Load(object sender, EventArgs e) { MedicineLogic ml = new MedicineLogic(); DataTable dt = ml.SelectAll(); Repeater1.DataSource = dt; Repeater1.DataBind(); }
public MainWindow(DoctorLogic logic, MedicineLogic mLogic, ReceiptLogic rLogic, ReportLogicDoctor rrLogic) { InitializeComponent(); this.logic = logic; this.mLogic = mLogic; this.rLogic = rLogic; this.rrLogic = rrLogic; }
protected void Btn_Query_Click(object sender, EventArgs e) { string medicineName = this.MedicineName.Text; this.GridView1.DataSourceID = null; this.GridView1.DataSource = MedicineLogic.QueryMedicineInfo(medicineName); this.GridView1.PageIndex = 0; this.GridView1.DataBind(); }
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { string medicineName = this.MedicineName.Text; this.GridView1.DataSourceID = null; this.GridView1.DataSource = MedicineLogic.QueryMedicineInfo(medicineName); this.GridView1.PageIndex = e.NewPageIndex; this.GridView1.DataBind(); }
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) { int id = Convert.ToInt32(e.CommandArgument); MedicineLogic ml = new MedicineLogic(); Medicine m = ml.SelectByID(id); lblmediname.Text = m.Name; lblmedidesc.Text = m.Description; lblmedicost.Text = m.Cost.ToString(); lblmedipurpose.Text = m.Purpose; }
protected void MediSave_Click(object sender, EventArgs e) { MedicineLogic ml = new MedicineLogic(); Medicine m = new Medicine(); m.Name = txtMediName.Text; m.Description = txtMediDesc.Text; m.Cost = float.Parse(txtMediCost.Text); m.Purpose = txtMediPurpose.Text; ml.Insert(m); Response.Redirect("ViewMedicines.aspx"); }
/// <summary> /// 保存服药时间 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSaveTakeTime_Click(object sender, EventArgs e) { if (labId.Text == "-1") { MessageBox.Show("请先选择病人"); return; } TakeTimeInfo model; try { model = new TakeTimeInfo { Id = Convert.ToInt32(labId.Text ?? "-1"), MorningHour = Convert.ToInt32(txtMorningHour.Text ?? "-1"), MorningMinute = Convert.ToInt32(txtMorningMinute.Text ?? "-1"), NoonHour = Convert.ToInt32(txtNoonHour.Text ?? "-1"), NoonMinute = Convert.ToInt32(txtnoonMinute.Text ?? "-1"), EveningHour = Convert.ToInt32(txtEveningHour.Text ?? "-1"), EveningMinute = Convert.ToInt32(txtEveningMinute.Text ?? "-1"), AdditionalHour = Convert.ToInt32(txtAddHour.Text ?? "-1"), AdditionalMinute = Convert.ToInt32(txtAddMinute.Text ?? "-1"), }; } catch (Exception ex) { MessageBox.Show("请输入数字"); return; } if (!Common.IsHour(model.MorningHour) || !Common.IsHour(model.NoonHour) || !Common.IsHour(model.EveningHour) || !Common.IsHour(model.AdditionalHour)) { MessageBox.Show("小时必须在1到24之间"); return; } if (!Common.IsMinute(model.MorningMinute) || !Common.IsMinute(model.NoonMinute) || !Common.IsMinute(model.EveningMinute) || !Common.IsMinute(model.AdditionalMinute)) { MessageBox.Show("分钟必须在0到59之间"); return; } MedicineLogic.UpdateTakeTime(model); SendTakeTime(model); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { AdminModel adminModel = (new AdminLogic()).getAdminInfo(Session["username"].ToString()); DataSet medicineDs = MedicineLogic.getAllMedicineInfo(); for (int i = 0; i < medicineDs.Tables[0].Rows.Count; i++) { DataRow dr = medicineDs.Tables[0].Rows[i]; ListItem li = new ListItem(dr["medicineId"].ToString() + "-" + dr["medicineName"].ToString(), dr["medicineId"].ToString()); this.MedicineId.Items.Add(li); } InitMedicineCartInfo(); } }
/// <summary> /// 进一步处理更新服药时间 /// </summary> /// <param name="id"></param> /// <param name="prop"></param> /// <param name="status"></param> private void UpdateTakeTimeStatus(int id, string prop, string status) { switch (status) { case "01": MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.正常, id); break; case "02": MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.异常, id); break; case "03": MedicineLogic.UpdateTakeTimeStatus(prop, TakeStatus.未吃药, id); break; default: break; } }
/// <summary> /// 发送配药指令 /// </summary> /// <param name="id"></param> private void SendDispensing(int id) { Patient patient = MedicineLogic.QueryPatientById(id); Device device = MedicineLogic.QueryDeviceById(patient.DeviceId); Dispensing dispensing = MedicineLogic.QueryFirstDispensingByPatientId(id); if (dispensing == null || dispensing.Id <= 0) { return; } byte[] zero = { 0x00 }; byte[] deviceNo = device.DeviceNo <= 255 ? zero.Concat(Common.IntToHexByte(device.DeviceNo)).ToArray() : Common.IntToHexByte(device.DeviceNo); byte[] funcNo = { 0x02 }; byte[] data = { }; byte[] open = { 0x31 }; byte[] close = { 0x30 }; byte[] byteflg = dispensing.Id > 255 ? Common.IntToHexByte(dispensing.Id) : zero.Concat(Common.IntToHexByte(dispensing.Id)).ToArray(); data = Enum.GetValues(typeof(TakeTime)).Cast <object>().Aggregate(data, (current, i) => current.Concat((Convert.ToInt32(dispensing.TakeTime) & i.GetHashCode()) != 0 ? open : close).ToArray()); data = deviceNo.Concat(funcNo).Concat(data).Concat(byteflg).ToArray(); AutoSendData(device.DeviceIP, data, byteflg); }
/// <summary> /// 单元格点击事件,查询病人信息并显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgvPatient_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex <= -1 || e.RowIndex <= -1) { return; } int id = Convert.ToInt32(dgvPatient.Rows[e.RowIndex].Cells[0].Value); Patient patient = MedicineLogic.QueryPatientById(id); Device device = MedicineLogic.QueryDeviceById(id); labId.Text = id.ToString(); labName.Text = patient.Name; labSex.Text = patient.Sex.ToString(); labAge.Text = patient.Age.ToString(); labHeight.Text = patient.Height.ToString("0.##"); labWeight.Text = patient.Weight.ToString("0.##"); labIllness.Text = patient.Illness; labWardNo.Text = patient.WardNo; labBedNo.Text = patient.BedNo; labDeviceNo.Text = device.DeviceNo.ToString(); txtMorningHour.Text = patient.MorningHour == -1 ? string.Empty : patient.MorningHour.ToString(); txtMorningMinute.Text = patient.MorningMinute == -1 ? string.Empty : patient.MorningMinute.ToString(); txtNoonHour.Text = patient.NoonHour == -1 ? string.Empty : patient.NoonHour.ToString(); txtnoonMinute.Text = patient.NoonMinute == -1 ? string.Empty : patient.NoonMinute.ToString(); txtEveningHour.Text = patient.EveningHour == -1 ? string.Empty : patient.EveningHour.ToString(); txtEveningMinute.Text = patient.EveningMinute == -1 ? string.Empty : patient.EveningMinute.ToString(); txtAddHour.Text = patient.AdditionalHour == -1 ? string.Empty : patient.AdditionalHour.ToString(); txtAddMinute.Text = patient.AdditionalMinute == -1 ? string.Empty : patient.AdditionalMinute.ToString(); picMorningStatus.Image = GetLight(patient.MorningStatus); picNoonStatus.Image = GetLight(patient.NoonStatus); picEveningStatus.Image = GetLight(patient.EveningStatus); picAddStatus.Image = GetLight(patient.AdditionalStatus); ShowDispensing(id); }
/// <summary> /// 显示配药信息 /// </summary> /// <param name="id"></param> private void ShowDispensing(int id) { dgvDispensing.Rows.Clear(); List <Dispensing> dispensingList = MedicineLogic.QueryDispensingByPatientId(id); foreach (var dispensing in dispensingList) { Medicine medicine = MedicineLogic.QueryMedicineById(dispensing.MedicineId); int index = dgvDispensing.Rows.Add(); dgvDispensing.Rows[index].Cells[0].Value = dispensing.Id; dgvDispensing.Rows[index].Cells[1].Value = medicine.MedicineName; dgvDispensing.Rows[index].Cells[2].Value = dispensing.MedicineNumber.ToString("0.##"); dgvDispensing.Rows[index].Cells[3].Value = ((dispensing.TakeTime & TakeTime.早上) != 0) ? "√" : "×"; dgvDispensing.Rows[index].Cells[4].Value = ((dispensing.TakeTime & TakeTime.中午) != 0) ? "√" : "×"; dgvDispensing.Rows[index].Cells[5].Value = ((dispensing.TakeTime & TakeTime.晚上) != 0) ? "√" : "×"; dgvDispensing.Rows[index].Cells[6].Value = ((dispensing.TakeTime & TakeTime.附加) != 0) ? "√" : "×"; dgvDispensing.Rows[index].Cells[7].Value = dispensing.IsTake == 1 ? Properties.Resources.greenlight : Properties.Resources.redlight; } dgvDispensing.RowHeadersVisible = false; }
/// <summary> /// 发送服药时间 /// </summary> /// <param name="info">服药时间信息</param> private void SendTakeTime(TakeTimeInfo info) { Device device = MedicineLogic.QueryDeviceById(info.Id); byte[] zero = { 0x00 }; byte[] nodata = { 0xff }; byte[] deviceNo = device.DeviceNo <= 255 ? zero.Concat(Common.IntToHexByte(device.DeviceNo)).ToArray() : Common.IntToHexByte(device.DeviceNo); byte[] funcNo = { 0x05 }; byte[] morningHour = info.MorningHour == -1 ? nodata : Common.IntToHexByte(info.MorningHour); byte[] morningMinute = info.MorningMinute == -1 ? nodata : Common.IntToHexByte(info.MorningMinute); byte[] noonHour = info.NoonHour == -1 ? nodata : Common.IntToHexByte(info.NoonHour); byte[] noonMinute = info.NoonMinute == -1 ? nodata : Common.IntToHexByte(info.NoonMinute); byte[] eveningHour = info.EveningHour == -1 ? nodata : Common.IntToHexByte(info.EveningHour); byte[] eveningMinute = info.EveningMinute == -1 ? nodata : Common.IntToHexByte(info.EveningMinute); byte[] addHour = info.AdditionalHour == -1 ? nodata : Common.IntToHexByte(info.AdditionalHour); byte[] addMinute = info.AdditionalMinute == -1 ? nodata : Common.IntToHexByte(info.AdditionalMinute); byte[] byteflg = Common.BuildFlg(); byte[] data = deviceNo.Concat(funcNo) .Concat(morningHour) .Concat(morningMinute) .Concat(noonHour) .Concat(noonMinute) .Concat(eveningHour) .Concat(eveningMinute) .Concat(addHour) .Concat(addMinute) .Concat(byteflg) .ToArray(); AutoSendData(device.DeviceIP, data, byteflg); }
public WindowSimulateForms(ReceiptLogic _rlogic, MedicineLogic _mlogic) { InitializeComponent(); this._rlogic = _rlogic; this._mlogic = _mlogic; }
public WindowLinkingMedDrugCourse(DrugCourseLogic logicCourse, MedicineLogic logicMedicine) { InitializeComponent(); this.logicMedicine = logicMedicine; this.logicCourse = logicCourse; }
/// <summary> /// 处理接收的数据 /// </summary> /// <param name="obj"></param> private void HandleRecvDate(object obj) { IPEndPoint client = new IPEndPoint(IPAddress.Any, 0); EndPoint remote = (EndPoint)client; byte[] data = new byte[128]; while (true) { try { var recv = sokListen.ReceiveFrom(data, ref remote); LogService.WriteLog($"收到数据:{Common.ByteToHexStr(data, recv)}"); if (Common.IsDataComplete(data, recv)) { string strData = Common.GetData(Common.ByteToHexStr(data, recv)); RecvMsg recvMsg = new RecvMsg { DeviceNo = Convert.ToInt32(strData.Substring(0, 4), 16), FuncNo = strData.Substring(4, 2), Data = strData.Substring(6, strData.Length - 12), Flg = Common.HexStringToByte(strData.Substring(strData.Length - 6, 4)), }; switch (recvMsg.FuncNo) { case "04": //开机 SendTime(recvMsg.DeviceNo, remote); if (MedicineLogic.IsDeviceExistbyDeviceNo(recvMsg.DeviceNo)) { Device device = MedicineLogic.QueryDeviceByDeviceNo(recvMsg.DeviceNo); MedicineLogic.UpdateDeviceIp(device.Id, remote.ToString()); } else { MedicineLogic.AddDevice(new Device { DeviceNo = recvMsg.DeviceNo, DeviceIP = remote.ToString() }); } break; case "06": //服药情况 { UpdateTakeTimeStatus(recvMsg); int id = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo); UpdateUi(id); } break; case "07": //开药仓反馈 { int id = MedicineLogic.QueryPatientIdByDeviceNo(recvMsg.DeviceNo); int dispenId = Convert.ToInt32(Common.ByteToHexStr(recvMsg.Flg, 2), 16); MedicineLogic.UpdateIsTake(dispenId); //SetIsTakeOnUi(dispenId); UpdateUi(id); SendDispensing(id); } break; default: //命令响应 lock (msgList) { int index = msgList.FindIndex(n => ByteEquals(n.Flg, recvMsg.Flg)); if (index >= 0) { msgList.RemoveAt(index); } } break; } } } catch (Exception ex) { LogService.WriteLog(ex, "数据处理异常"); } } }