/// <summary> /// 发送医嘱 /// </summary> /// <returns></returns> public int ComfirmExec() { Neusoft.HISFC.Models.Order.ExecOrder order = null; usageHelper = new Neusoft.FrameWork.Public.ObjectHelper(manager.GetConstantList(Neusoft.HISFC.Models.Base.EnumConstant.USAGE)); dosageHelper = new Neusoft.FrameWork.Public.ObjectHelper(manager.GetConstantList(Neusoft.HISFC.Models.Base.EnumConstant.DOSAGEFORM)); #region 获得 List <Neusoft.HISFC.Models.Order.ExecOrder> alExecOrder = new List <Neusoft.HISFC.Models.Order.ExecOrder>(); for (int i = 0; i < this.fpOrderExecBrowser1.fpSpread.Sheets[0].RowCount; i++) { if (this.fpOrderExecBrowser1.fpSpread.Sheets[0].Cells[i, this.fpOrderExecBrowser1.ColumnIndexSelection].Text.ToUpper() == "TRUE") { order = this.fpOrderExecBrowser1.fpSpread.Sheets[0].Rows[i].Tag as Neusoft.HISFC.Models.Order.ExecOrder; if (order == null) { MessageBox.Show("没查询到医嘱!"); return(-1); } try { order.Order.Usage.Name = usageHelper.GetName(order.Order.Usage.ID); } catch { MessageBox.Show("获得用法出错!" + order.Order.Usage.ID); return(-1); } try { ((Neusoft.HISFC.Models.Pharmacy.Item)order.Order.Item).DosageForm.Name = dosageHelper.GetName(((Neusoft.HISFC.Models.Pharmacy.Item)order.Order.Item).DosageForm.ID); } catch { MessageBox.Show("获得药品剂型出错!" + ((Neusoft.HISFC.Models.Pharmacy.Item)order.Order.Item).DosageForm.ID); return(-1); } alExecOrder.Add(order); } } #endregion Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(this.orderManager.Connection); //t.BeginTransaction(); orderManagement.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); if (orderManagement.SendDrug(alExecOrder, sendFlag) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack();; MessageBox.Show(orderManagement.Err); } else { Neusoft.FrameWork.Management.PublicTrans.Commit(); } this.RefreshQuery(); return(0); }
private int GetItemInfo() { if (this.neuTabControl1.SelectedTab == this.tabPage1) { Hashtable myhashtable = new Hashtable(); for (int a = 0; a < this.neuSpread1_Sheet1.RowCount; a++) { if (Neusoft.FrameWork.Function.NConvert.ToBoolean(this.neuSpread1_Sheet1.Cells[a, 0].Value) == true) { string strDrugStoreName = this.neuSpread1_Sheet1.Cells[a, 21].Text; if (!myhashtable.ContainsKey(strDrugStoreName)) { myhashtable.Add(strDrugStoreName, strDrugStoreName); } } } if (myhashtable.Count > 1) { System.Windows.Forms.MessageBox.Show("您选择了多个药房的药品,请认真核对打印药方!"); return(-1); } this.alExeOrder = new ArrayList(); for (int i = 0; i < this.neuSpread1_Sheet1.RowCount; i++) { if (Neusoft.FrameWork.Function.NConvert.ToBoolean(this.neuSpread1_Sheet1.Cells[i, 0].Value) == true) { if (this.neuSpread1_Sheet1.Cells[i, 2].Text == "长期医嘱") { System.Windows.Forms.MessageBox.Show("您在第【" + (i + 1).ToString() + " 】行选择了长期医嘱,请选择临时医嘱打印药方!"); return(-1); } if (this.neuSpread1_Sheet1.Cells[i, 21].Text == this.neuSpread1_Sheet1.Cells[i, 21].Text) { } try { this.myExeOrder = new Neusoft.HISFC.Models.Order.ExecOrder(); Neusoft.HISFC.Models.Pharmacy.Item objPharmacy = new Neusoft.HISFC.Models.Pharmacy.Item(); objPharmacy.ID = this.neuSpread1_Sheet1.Cells[i, 39].Text; //药品编码 objPharmacy.Name = this.neuSpread1_Sheet1.Cells[i, 5].Text; //药品名称 objPharmacy.Specs = this.neuSpread1_Sheet1.Cells[i, 6].Text; //药品规格 objPharmacy.Memo = this.neuSpread1_Sheet1.Cells[i, 21].Text; //取药药房 this.myExeOrder.Order.Item = objPharmacy; //执行档项目 this.myExeOrder.Order.Qty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.neuSpread1_Sheet1.Cells[i, 7].Value); //药品数量 this.myExeOrder.Order.Unit = this.neuSpread1_Sheet1.Cells[i, 8].Text; //药品单位 this.alExeOrder.Add(this.myExeOrder); } catch (Exception ex) { return(-1); } } } } return(1); }
public void SetExecOrder(System.Collections.ArrayList alExecOrder) { this.neuSpread1_Sheet1.Rows.Count = 0; System.Collections.Hashtable hsPatientName = new System.Collections.Hashtable(); System.Collections.Hashtable hsPatientOrderItem = new System.Collections.Hashtable(); foreach (Neusoft.HISFC.Models.Order.ExecOrder info in alExecOrder) { string patientName = ""; if (hsPatientName.ContainsKey(info.Order.Patient.ID)) { patientName = hsPatientName[info.Order.Patient.ID] as string; } else { Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.Models.RADT.PatientInfo p = radtIntegrate.GetPatientInfoByPatientNO(info.Order.Patient.ID); patientName = p.PVisit.PatientLocation.Bed.ID + p.Name; hsPatientName.Add(p.ID, patientName); } if (hsPatientOrderItem.ContainsKey(info.Order.Patient.ID + info.Order.Item.ID)) { Neusoft.HISFC.Models.Order.ExecOrder execOrder = hsPatientOrderItem[info.Order.Patient.ID + info.Order.Item.ID] as Neusoft.HISFC.Models.Order.ExecOrder; execOrder.Order.Qty = execOrder.Order.Qty + info.Order.Qty; } else { Neusoft.HISFC.Models.Order.ExecOrder execOrder = info.Clone(); execOrder.Order.Patient.Name = patientName; hsPatientOrderItem.Add(execOrder.Order.Patient.ID + info.Order.Item.ID, execOrder); } } int iRow = 0; foreach (Neusoft.HISFC.Models.Order.ExecOrder totalExecOrder in hsPatientOrderItem.Values) { this.neuSpread1_Sheet1.Rows.Add(iRow, 1); this.neuSpread1_Sheet1.Cells[iRow, 0].Text = totalExecOrder.Order.Patient.Name; Neusoft.HISFC.Models.Pharmacy.Item item = totalExecOrder.Order.Item as Neusoft.HISFC.Models.Pharmacy.Item; this.neuSpread1_Sheet1.Cells[iRow, 1].Text = item.Name + "[" + item.Specs + "]"; this.neuSpread1_Sheet1.Cells[iRow, 2].Text = totalExecOrder.Order.Qty.ToString(); this.neuSpread1_Sheet1.Cells[iRow, 3].Text = totalExecOrder.Order.Unit; this.neuSpread1_Sheet1.Cells[iRow, 4].Value = item.PriceCollection.RetailPrice / item.PackQty; this.neuSpread1_Sheet1.Cells[iRow, 5].Value = totalExecOrder.Order.Qty * item.PriceCollection.RetailPrice / item.PackQty; } }
/// <summary> /// 打印 /// </summary> public void Print() { try { if (this.dwMain.RowCount <= 0) { return; } //数据窗口打印 dwMain.Print(true, true); #region 更新已经打印标记 if (!this.checkBox1.Checked) { Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(orderManager.Connection); //t.BeginTransaction(); this.orderManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); string itemType = null; for (int i = 0; i < this.curValues.Count; i++) { Neusoft.HISFC.Models.Order.ExecOrder exeord = curValues[i] as Neusoft.HISFC.Models.Order.ExecOrder; //if (exeord.Order.Item.IsPharmacy) if (exeord.Order.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug) { itemType = "1"; } else { itemType = "2"; } if (this.orderManager.UpdateExecOrderPrinted(exeord.ID, itemType) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("更新打印标记失败!" + orderManager.Err); return; } } Neusoft.FrameWork.Management.PublicTrans.Commit(); this.Query(myPatients, usage, dt1, dt2, isPrint); } #endregion } catch (Exception ex) { MessageBox.Show(ex.Message); } return; }
/// <summary> /// 向Fp内加入信息 /// </summary> /// <param name="execOrder">医嘱执行挡信息</param> /// <param name="iRowIndex">行索引</param> /// <returns>成功返回1 失败返回-1</returns> protected int AddDataToFp(Neusoft.HISFC.Models.Order.ExecOrder execOrder, int iRowIndex) { this.neuSpread1_Sheet1.Rows.Add(iRowIndex, 1); string patientName = ""; if (this.hsPatientInfo.ContainsKey(execOrder.Order.Patient.ID)) { Neusoft.HISFC.Models.RADT.PatientInfo patient = this.hsPatientInfo[execOrder.Order.Patient.ID] as Neusoft.HISFC.Models.RADT.PatientInfo; patientName = "[" + patient.PVisit.PatientLocation.Bed.ID + "]" + patient.Name; } else { Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.Models.RADT.PatientInfo patient = radtIntegrate.GetPatientInfoByPatientNO(execOrder.Order.Patient.ID); if (patient == null) { MessageBox.Show(Language.Msg("根据患者流水号获取患者信息发生错误") + radtIntegrate.Err); return(-1); } patientName = "[" + patient.PVisit.PatientLocation.Bed.ID + "]" + patient.Name; this.hsPatientInfo.Add(patient.ID, patient); } this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColName].Text = patientName; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColCheck].Value = true; Neusoft.HISFC.Models.Pharmacy.Item item = ((Neusoft.HISFC.Models.Pharmacy.Item)execOrder.Order.Item); this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColTradeNameSpecs].Text = item.Name + "[" + item.Specs + "]"; //组标记 ... this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColDoseonce].Text = execOrder.Order.DoseOnce.ToString(); this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColFrequency].Text = execOrder.Order.Frequency.Name; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColUsage].Text = execOrder.Order.Usage.Name; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColQty].Text = execOrder.Order.Qty.ToString() + execOrder.Order.Unit; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColEmergency].Value = execOrder.Order.IsEmergency; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColRecipeDoc].Text = execOrder.Order.ReciptDoctor.Name; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColMemo].Text = execOrder.Order.Memo; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColSortID].Text = execOrder.Order.SortID.ToString(); this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColExecID].Text = execOrder.ID; this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColComboNO].Text = execOrder.Order.Combo.ID + execOrder.DateUse.ToString(); this.neuSpread1_Sheet1.Rows[iRowIndex].Tag = execOrder; return(1); }
/// <summary> /// 更新有效标记 addby xuewj 2009-8-24 恢复误操作的作废项目,以便使患者能正常用药,作废执行档 {01F18F48-887D-4d2a-A0F9-757B61A5B8A6} /// </summary> /// <param name="RowIndex"></param> private void SetValidFlag(int RowIndex, string flag) { //if (this.neuSpread1_Sheet1.Cells[RowIndex, 3].Text.Trim() == "有效") //{ // return; //} if (this.neuSpread1_Sheet1.Cells[RowIndex, 4].Text.Trim() != "未发送") { MessageBox.Show("只有未发送的药品才可以操作!"); return; } DialogResult r; if (flag == "0") { r = MessageBox.Show("确定要恢复该条记录的有效性吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } else { r = MessageBox.Show("确定要作废该条记录吗?,该操作不可撤销", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } if (r == DialogResult.Cancel) { return; } string execOrderID = this.neuSpread1_Sheet1.Cells[RowIndex, 26].Text.Trim(); if (execOrderID == null || execOrderID.Length <= 0) { MessageBox.Show("执行流水号为空!"); return; } if (flag == "1") { if (this.neuSpread1_Sheet1.Cells[RowIndex, 3].Text.Trim() != "有效") { MessageBox.Show("该条记录已经作废!"); return; } this.myExeOrder = new Neusoft.HISFC.Models.Order.ExecOrder(); Neusoft.HISFC.Models.Pharmacy.Item objPharmacy = new Neusoft.HISFC.Models.Pharmacy.Item(); objPharmacy.ID = this.neuSpread1_Sheet1.Cells[RowIndex, 39].Text; //药品编码 objPharmacy.Name = this.neuSpread1_Sheet1.Cells[RowIndex, 5].Text; //药品名称 objPharmacy.Specs = this.neuSpread1_Sheet1.Cells[RowIndex, 6].Text; //药品规格 objPharmacy.Memo = this.neuSpread1_Sheet1.Cells[RowIndex, 21].Text; //取药药房 this.myExeOrder.Order.Item = objPharmacy; //执行档项目 this.myExeOrder.Order.Qty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.neuSpread1_Sheet1.Cells[RowIndex, 7].Value); //药品数量 this.myExeOrder.Order.Unit = this.neuSpread1_Sheet1.Cells[RowIndex, 8].Text; //药品单位 this.myExeOrder.ID = execOrderID; int _Ret = this.myOrder.DcExecImmediate(this.myExeOrder, this.myOrder.Operator); //int _Ret = this.myOrder.UpdateExecValidFlag(execOrderID, true, flag); if (_Ret < 0) { MessageBox.Show("作废记录出错!"); return; } //_Ret = this.myCharegeBill.DeleteChargeBill(execOrderID); //if (_Ret < 0) //{ // MessageBox.Show("删除出单纪录出错!"); // return; //} MessageBox.Show("作废记录成功!"); this.ShowData(this.patient.ID); if (this.neuSpread1_Sheet1.Cells[RowIndex, 28].Text.Trim() == "已记") { MessageBox.Show("该记录已经收费,请退费!"); } } else { int _Ret = this.myOrder.UpdateExecValidFlag(execOrderID, true, "1"); if (_Ret < 0) { MessageBox.Show("恢复记录出错!"); return; } MessageBox.Show("恢复记录成功!"); this.ShowData(this.patient.ID); } }
/// <summary> /// 添加一行 /// </summary> /// <param name="sender"></param> /// <param name="i"></param> /// <returns></returns> public int AddRow(object sender, int i) { if (sender.GetType() != typeof(Neusoft.HISFC.Models.Order.ExecOrder)) { return(-1); } Neusoft.HISFC.Models.Order.ExecOrder order = sender as Neusoft.HISFC.Models.Order.ExecOrder; this.fpSpread.Sheets[0].Rows.Add(i, 1); //暂时根据开立时间判断(以后需要增加字段来保存首日量,然后根据开始时间判断) {AB3F34F0-37AF-4e97-9B5A-05A4AD8CE801} //if (order.DateUse <= new DateTime(order.Order.BeginTime.Year, order.Order.BeginTime.Month, order.Order.BeginTime.Day, 12, 0, 0)) if (order.DateUse <= order.Order.MOTime) { this.fpSpread.Sheets[0].Rows[i].ForeColor = Color.Blue; } if (this.bIsShowBed) { this.fpSpread.Sheets[0].SetValue(i, 0, order.Order.Patient.Name + "[" + Classes.Function.BedDisplay(order.Order.Patient.PVisit.PatientLocation.Bed.ID) + "]", false); } else { this.fpSpread.Sheets[0].SetValue(i, 0, order.Order.Patient.Name, false); } if (order.Order.Combo.ID == "0" || order.Order.Combo.ID == "") { } else { this.fpSpread.Sheets[0].SetValue(i, 3, order.Order.Combo.ID + order.DateUse.ToString(), false); } if (order.Order.Item.Specs == null || order.Order.Item.Specs == "")//规格 { this.fpSpread.Sheets[0].SetValue(i, 2, order.Order.Item.Name, false); } else { this.fpSpread.Sheets[0].SetValue(i, 2, order.Order.Item.Name + "[" + order.Order.Item.Specs + "]", false); } //药品 //药品项目 if (order.Order.Item.GetType() == typeof(Neusoft.HISFC.Models.Pharmacy.Item)) { Neusoft.HISFC.Models.Pharmacy.Item item = (Neusoft.HISFC.Models.Pharmacy.Item)order.Order.Item; if (order.Order.OrderType.IsDecompose) //长期医嘱 { if (item.BaseDose != 0 && order.Order.DoseOnce != 0) //草药没有一次剂量,显示付数 { decimal d = 0; if (order.Order.Qty == 0) //总量为零,可拆分的药 { d = order.Order.DoseOnce / item.BaseDose; //长期 } else//不可拆分 { d = order.Order.Qty; } this.fpSpread.Sheets[0].SetValue(i, 5, d, false); this.fpSpread.Sheets[0].SetValue(i, 6, item.MinUnit, false); } else//草药,中成药,一次剂量为零 { if (order.Order.HerbalQty == 0) { order.Order.HerbalQty = 1; } this.fpSpread.Sheets[0].SetValue(i, 5, order.Order.Qty * order.Order.HerbalQty, false); //显示总量 if (order.Order.Qty == 0) //一次剂量为零&&总量为零的 为错误数据 { this.fpSpread.Sheets[0].SetValue(i, 6, "基本剂量为零!", false); this.fpSpread.Sheets[0].Cells[i, 6].BackColor = Color.CadetBlue; } else//显示总量及单位 { this.fpSpread.Sheets[0].SetValue(i, 6, order.Order.Unit, false); } } } else//临时医嘱 { this.fpSpread.Sheets[0].SetValue(i, 5, order.Order.Qty, false); this.fpSpread.Sheets[0].SetValue(i, 6, item.MinUnit, false); } #region {13EAF764-E1CA-4d5a-8250-056AD1DEE61B} //增加取药科室 this.fpSpread.Sheets[0].Columns[11].Visible = true; this.fpSpread.Sheets[0].SetValue(i, 11, this.deptHelper.GetName(order.Order.StockDept.ID), false);//取药科室 #endregion } else//非药品 { this.fpSpread.Sheets[0].SetValue(i, 5, order.Order.Qty, false); this.fpSpread.Sheets[0].SetValue(i, 6, order.Order.Unit, false); #region {13EAF764-E1CA-4d5a-8250-056AD1DEE61B} this.fpSpread.Sheets[0].Columns[11].Visible = false; #endregion } this.fpSpread.Sheets[0].SetValue(i, 7, order.Order.Usage.Name, false); this.fpSpread.Sheets[0].SetValue(i, 8, order.Order.Frequency.ID, false); this.fpSpread.Sheets[0].SetValue(i, 9, order.DateUse.ToString(), false); this.fpSpread.Sheets[0].SetValue(i, 10, order.Order.SortID, false); #region addby xuewj 2010-10-9 增加医嘱类型列 {CA8705F5-C25E-4126-BF15-F498AE82AFAE} this.fpSpread.Sheets[0].SetValue(i, this.ColumnIndexOrderType, this.orderTypeHelper.GetName(order.Order.OrderType.ID), false); #endregion this.fpSpread.Sheets[0].Rows[i].Tag = order; return(0); }
/// <summary> /// 查询 /// </summary> /// <param name="patients"></param> /// <param name="usageCode"></param> /// <param name="dtBegin"></param> /// <param name="dtEnd"></param> /// <param name="isPrinted"></param> public void Query(List <Neusoft.HISFC.Models.RADT.PatientInfo> patients, string usageCode, DateTime dtBegin, DateTime dtEnd, bool isPrinted) { #region donggq--2010.10.05--{5A2283DE-279D-4433-AB2F-77B072EEE1D8} start = dtBegin; end = dtEnd; #endregion //给患者列表赋值 this.myPatients = patients; //更改治疗单标题 this.dwMain.Modify("t_title.text= " + "'" + this.Tag.ToString() + "'"); #region {0A2D3FF0-85B0-4322-8E0A-9E11D02344EF} try { Neusoft.HISFC.BizProcess.Integrate.Manager managerMgr = new Neusoft.HISFC.BizProcess.Integrate.Manager(); string hosname = managerMgr.GetHospitalName(); this.dwMain.Modify("t_hospitalname.text= " + "'" + hosname + "'"); } catch { } #endregion ArrayList alOrder = new ArrayList(); ArrayList al = new ArrayList(); string paramPatient = ""; //获得in的患者id参数 for (int i = 0; i < patients.Count; i++) { Neusoft.HISFC.Models.RADT.PatientInfo p = patients[i] as Neusoft.HISFC.Models.RADT.PatientInfo; paramPatient = "'" + p.ID + "'," + paramPatient; //获得护理分组 p.PVisit.PatientLocation.Bed.Memo = manager.GetNurseTendGroupFromBed(p.PVisit.PatientLocation.Bed.ID); if (p.PVisit.PatientLocation.Bed == null) { MessageBox.Show(manager.Err); return; } } if (paramPatient == "") { paramPatient = "''"; } else { paramPatient = paramPatient.Substring(0, paramPatient.Length - 1);//去掉后面的逗号 } #region {D05A3C7C-1CA1-4b9a-96B6-5D3018CF8FD7} Neusoft.FrameWork.Models.NeuObject execBillInfo = this.execBillManager.GetExecBillInfoByBillNO(usageCode); if (execBillInfo == null || execBillInfo.ID == "") { MessageBox.Show("查询执行信息失败!" + this.execBillManager.Err); return; } if (execBillInfo.Memo == "1") { alOrder = this.orderManager.QueryOrderExecBillForSingle(paramPatient, dtBegin, dtEnd, usageCode, isPrinted); } else { alOrder = this.orderManager.QueryOrderExecBill(paramPatient, dtBegin, dtEnd, usageCode, isPrinted);//查询医嘱,传入参数 } #endregion this.curValues = alOrder; #region 将同一条医嘱合并在一起 ArrayList alTemp = alOrder.Clone() as ArrayList; alOrder = new ArrayList(); for (int k = 0; k < alTemp.Count; k++) { if (isPrinted && ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).Order.BeginTime.Date < dtBegin.Date && ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse < new DateTime(dtBegin.Year, dtBegin.Month, dtBegin.Day, 12, 1, 0)) { continue;//去掉非首日量的,使用时间小于今天12点的时间 } bool isHave = false; TimeSpan span; string sMing = ""; for (int j = 0; j < alOrder.Count; j++) { sMing = ""; if (((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.ID == ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).Order.ID) { if (((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Memo.Length > 2 && ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Memo.Substring(0, 2) == "时间") { //特殊频次 } else { isHave = true;//包含添加时间 span = new TimeSpan(((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Date.Ticks - dtBegin.Date.Ticks); if (span.Days == 1) { sMing = "明"; } if (span.Days == 2) { sMing = "后"; } if (span.Days > 2) { sMing = "[" + ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Day.ToString() + "日]"; } ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Memo += "," + sMing + ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Hour.ToString().PadLeft(2, '0'); break; } } } if (!isHave) { span = new TimeSpan(((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Date.Ticks - dtBegin.Date.Ticks); if (span.Days == 1) { sMing = "明"; } if (span.Days == 2) { sMing = "后"; } if (span.Days > 2) { sMing = "[" + ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Day.ToString() + "日]"; } if (((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).Order.OrderType.Type == Neusoft.HISFC.Models.Order.EnumType.LONG)//临时医嘱暂时不显示执行时间 by zuowy { ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).Memo = sMing + ((Neusoft.HISFC.Models.Order.ExecOrder)alTemp[k]).DateUse.Hour.ToString().PadLeft(2, '0'); } alOrder.Add(alTemp[k]); } #endregion } string Combno = ""; ArrayList alComb = new ArrayList(); #region 至组合号 for (int j = 0; j < alOrder.Count; j++) { Neusoft.HISFC.Models.Order.ExecOrder obj; obj = (Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]; for (int kk = 0; kk < patients.Count; kk++) { if (((Neusoft.FrameWork.Models.NeuObject)patients[kk]).ID == obj.Order.Patient.ID) { obj.Order.Patient = ((Neusoft.HISFC.Models.RADT.PatientInfo)patients[kk]).Clone(); break; } } //判断组合 if (obj.Order.Combo.ID != "0" && obj.Order.Combo.ID != "") { if (Combno != obj.Order.Combo.ID + obj.DateUse.ToString()) { //非组合 if (alComb.Count == 1) { al.Add((Neusoft.HISFC.Models.Order.ExecOrder)alComb[0]); } //组合 else if (alComb.Count > 1) { for (int n = 0; n < alComb.Count; n++) { Neusoft.HISFC.Models.Order.ExecOrder objC; objC = (Neusoft.HISFC.Models.Order.ExecOrder)alComb[n]; if (n == 0) { objC.Order.Combo.Memo = "┏"; } else if (n == alComb.Count - 1) { objC.Order.Combo.Memo = "┗"; } else { objC.Order.Combo.Memo = "┃"; } al.Add(objC); } } alComb = new ArrayList(); alComb.Add(obj); Combno = obj.Order.Combo.ID + obj.DateUse.ToString(); if (j == alOrder.Count - 1) { al.Add(obj); //最后一条 } } else { alComb.Add(obj); if (j == alOrder.Count - 1) { for (int row = 0; row < alComb.Count; row++) { Neusoft.HISFC.Models.Order.ExecOrder exe = alComb[row] as Neusoft.HISFC.Models.Order.ExecOrder; if (alComb.Count == 1) { al.Add(exe); break; } if (row == 0) { exe.Order.Combo.Memo = "┏"; } else if (row == alComb.Count - 1) { exe.Order.Combo.Memo = "┗"; } else { exe.Order.Combo.Memo = "┃"; } al.Add(exe); } } } } else { al.Add(obj); } } #endregion if (this.dwMain.RowCount > 0) { this.dwMain.Reset(); } this.SetValues(al); this.dwMain.CalculateGroups(); return; }
/// <summary> /// 更新查询显示 /// </summary> /// <returns></returns> protected int RefreshQuery() { if (this.cmbDept.Tag == null || this.cmbDept.Tag.ToString() == "") { MessageBox.Show("请先选择科室!"); return(0); } Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm("正在查询,请稍候..."); Application.DoEvents(); ArrayList alOrders = null; this.fpOrderExecBrowser1.fpSpread.Sheets[0].RowCount = 0; alOrders = orderManager.QureyExecOrderNeedSendDrug(this.cmbDept.Tag.ToString());//查询未发药的 if (alOrders == null) { MessageBox.Show(orderManagement.Err); return(-1); } string pid = ""; Neusoft.HISFC.Models.RADT.PatientInfo p = new Neusoft.HISFC.Models.RADT.PatientInfo(); for (int j = 0; j < alOrders.Count; j++) { Neusoft.HISFC.Models.Order.ExecOrder order = alOrders[j] as Neusoft.HISFC.Models.Order.ExecOrder; #region //"每次重新取患者信息 只记录患者姓名、床号 否则 在原科室分解后发生转科的时候,药应该发送到原科室 ,取科室后发送到新科室去了" if (pid != order.Order.Patient.ID) { pid = order.Order.Patient.ID; p = radtManager.GetPatientInfomation(pid); if (p == null) { MessageBox.Show("获得患者住院号出错!\n" + radtManager.Err); return(-1); } order.Order.Patient.Name = p.Name; order.Order.Patient.PVisit.PatientLocation.Bed.ID = p.PVisit.PatientLocation.Bed.ID; } else { order.Order.Patient.Name = p.Name; order.Order.Patient.PVisit.PatientLocation.Bed.ID = p.PVisit.PatientLocation.Bed.ID; } #endregion if (order.IsCharge) { //显示已经收费的 if (this.rdoTemp.Checked) { if (order.Order.OrderType.Type == Neusoft.HISFC.Models.Order.EnumType.SHORT) { this.fpOrderExecBrowser1.AddRow(order); } } else { this.fpOrderExecBrowser1.AddRow(order); } } } this.fpOrderExecBrowser1.RefreshComboNo(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); bool b = true;//全选 for (int i = 0; i < this.fpOrderExecBrowser1.fpSpread.Sheets[0].Rows.Count; i++) { this.fpOrderExecBrowser1.fpSpread.Sheets[0].Cells[i, this.fpOrderExecBrowser1.ColumnIndexSelection].Value = b; } return(0); }
/// <summary> /// 查询 /// </summary> /// <param name="patients"></param> /// <param name="usageCode"></param> /// <param name="dtBegin"></param> /// <param name="dtEnd"></param> /// <param name="isPrinted"></param> public void Query(List <Neusoft.HISFC.Models.RADT.PatientInfo> patients, string usageCode, DateTime dtBegin, DateTime dtEnd, bool isPrinted) { ArrayList al = new ArrayList();//获得的全部信息 for (int i = 0; i < patients.Count; i++) { ArrayList alOrder = orderManager.QueryOrderExec(((Neusoft.FrameWork.Models.NeuObject)patients[i]).ID, dtBegin, dtEnd, usageCode, isPrinted); if (alOrder == null) //为提示出错 { MessageBox.Show(orderManager.Err); return; } string strDiff = ""; //分组用 ArrayList alObjects = null; //分组用 int iComboNum = 0; int MaxComboNum = 8; //每页最多4个药 addby xuewj 2010-9-28 {4628BA40-7AB2-4396-80E8-9BB361B36496} 瓶贴打印 int iPage = 0; //分页用 for (int j = 0; j < alOrder.Count; j++) //医嘱信息 { //赋全患者信息 ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Patient = ((Neusoft.HISFC.Models.RADT.PatientInfo)patients[i]).Clone();//患者信息付数值 //按组合分组给输液卡对象 if (((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Combo.ID != "0" && ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Combo.ID != "") { if (strDiff != ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Combo.ID + ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).DateUse.ToString()) { iComboNum = 0; if (alObjects != null) { al.Add(alObjects); //不同的 } alObjects = new ArrayList(); strDiff = ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).Order.Combo.ID + ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).DateUse.ToString(); alObjects.Add(alOrder[j]); iPage = 1; //分页页码第一页 ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).User01 = iPage.ToString(); //存页码 } else//相同的 { iComboNum++; if ((iComboNum % MaxComboNum) == 0) { if (alObjects != null) { al.Add(alObjects); //分页 } alObjects = new ArrayList(); } iPage = (int)(iComboNum / MaxComboNum) + 1;//分页页码 ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).User01 = iPage.ToString(); alObjects.Add(alOrder[j]); } } else//没有组合号的 { if (alObjects != null) { al.Add(alObjects); } alObjects = new ArrayList(); alObjects.Add(alOrder[j]); iPage = 1;//分页页码第一页 ((Neusoft.HISFC.Models.Order.ExecOrder)alOrder[j]).User01 = iPage.ToString(); } } if (alObjects != null) { al.Add(alObjects); } } int iPages = 1; for (int i = al.Count - 1; i >= 0; i--) { ArrayList alTemp = al[i] as ArrayList; Neusoft.HISFC.Models.Order.ExecOrder order = alTemp[0] as Neusoft.HISFC.Models.Order.ExecOrder; if (Neusoft.FrameWork.Function.NConvert.ToInt32(order.User01) > 1) { if (iPages > 1)//已经有最高页了 { order.User02 = iPages.ToString(); } else//新的 { iPages = Neusoft.FrameWork.Function.NConvert.ToInt32(order.User01);//获得最高页 order.User02 = iPages.ToString(); } } else if (Neusoft.FrameWork.Function.NConvert.ToInt32(order.User01) <= 1) //到第一页了 { order.User02 = iPages.ToString(); iPages = 1; } } this.SetValues(al); this.isPrint = isPrinted;//是否补打 usage = usageCode; dt1 = dtBegin; dt2 = dtEnd; myPatients = patients; }