/// <summary> /// 按患者姓名查询患者挂号信息 /// </summary> /// <param name="Name"></param> /// <returns></returns> public int QueryByName(string Name) { Neusoft.HISFC.BizProcess.Integrate.RADT Mgr = new Neusoft.HISFC.BizProcess.Integrate.RADT(); ArrayList al = Mgr.QueryPatientByName(Name); if (al == null) { MessageBox.Show("查询患者挂号信息时出错!" + Mgr.Err, "提示"); return(-1); } if (this.fpSpread1_Sheet1.RowCount > 0) { this.fpSpread1_Sheet1.Rows.Remove(0, this.fpSpread1_Sheet1.RowCount); } foreach (Neusoft.HISFC.Models.RADT.PatientInfo obj in al) { this.fpSpread1_Sheet1.Rows.Add(this.fpSpread1_Sheet1.RowCount, 1); int row = this.fpSpread1_Sheet1.RowCount - 1; this.fpSpread1_Sheet1.SetValue(row, 0, obj.PID.CardNO, false); this.fpSpread1_Sheet1.SetValue(row, 1, obj.Name, false); this.fpSpread1_Sheet1.SetValue(row, 2, obj.Sex.Name, false); this.fpSpread1_Sheet1.SetValue(row, 3, obj.PhoneHome, false); this.fpSpread1_Sheet1.SetValue(row, 4, obj.AddressHome, false); } return(0); }
/// <summary> /// 刷新 /// </summary> public void Refresh(string deptCode, string beginTime, string endTime) { if (beginTime == null) { beginTime = System.DateTime.Now.AddDays(-3).ToShortDateString(); } if (endTime == null) { endTime = System.DateTime.Now.AddDays(4).ToShortDateString(); } this.BeginUpdate(); this.Nodes.Clear(); if (manager == null) { manager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); } ArrayList al = new ArrayList();//患者列表 //显示出院登记未过有效召回期的患者 al.Add("未过有效召回期患者|" + EnumPatientState.InVaildDayPatient.ToString()); addPatientList(al, deptCode, beginTime, endTime, EnumPatientState.InVaildDayPatient); //显示出院登记已过有效召回期的患者 al.Add("已过有效召回期患者|" + EnumPatientState.OutVaildDayPatient.ToString()); addPatientList(al, deptCode, beginTime, endTime, EnumPatientState.OutVaildDayPatient); //显示所有患者列表 this.SetPatient(al); this.EndUpdate(); }
/// <summary> /// 保存设置 /// </summary> public virtual int Save() { //取婴儿接珍时的信息信息 //Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null; //取患者最新的住院主表信息 //PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID); if (this.patientInfo == null) { MessageBox.Show("请选择住院患者"); return(-1); } //取变动信息:取医生、护士、科室等信息 //this.GetPatientInfo(PatientInfo); //判断是否已选择床位 if (this.cmbBedNo.Text.Trim() == "" && patientInfo.IsBaby == false) { MessageBox.Show("未选择床位!"); return(-1); } //取处理时的床位信息 Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed(); bed.ID = this.cmbBedNo.Tag.ToString(); //床号 bed.InpatientNO = patientInfo.ID; //床位上患者住院流水号 #region 业务处理 Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); //t.BeginTransaction(); managerRADT.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); if (managerRADT.CallBack(patientInfo, bed) == -1)//调用召回业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } #endregion Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show(managerRADT.Err); this.Refresh(); this.ClearPatintInfo(); 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> /// <param name="info"></param> /// <returns>0正常 ,-1 出错</returns> public static int PrintCaseFirstPage(Neusoft.HISFC.Models.RADT.PatientInfo info) { HealthRecord.ucCasePrint casePrint = new HealthRecord.ucCasePrint(); casePrint.LoadInfo(); Neusoft.HISFC.BizLogic.HealthRecord.Base baseDml = new Neusoft.HISFC.BizLogic.HealthRecord.Base(); Neusoft.HISFC.BizProcess.Integrate.RADT RadtInpatient = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.Models.HealthRecord.Base caseBase = new Neusoft.HISFC.Models.HealthRecord.Base(); //判断是否有该患者 if (info.ID == null || info.ID == "") { MessageBox.Show("住院流水号不能为空"); return(-1); } //获取住院号赋值给实体 Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = RadtInpatient.GetPatientInfoByPatientNO(info.ID); if (patientInfo == null) { MessageBox.Show("获取人员信息出错"); return(-1); } caseBase.PatientInfo = patientInfo; //casePrint.contro = caseBase; //获取默认打印机 string errStr = ""; ArrayList alSetting = Neusoft.FrameWork.WinForms.Classes.Function.GetDefaultValue("BAPrinter", out errStr); if (alSetting == null) { MessageBox.Show(errStr); return(-1); } if (alSetting.Count == 0) { MessageBox.Show("请填写打印机名称配置文件"); Neusoft.FrameWork.WinForms.Classes.Function.SaveDefaultValue("BAPrinter"); return(-1); } string printerSetting = alSetting[0] as string; Neusoft.FrameWork.WinForms.Classes.Print p = new Neusoft.FrameWork.WinForms.Classes.Print(); for (int i = 0; i < System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count; i++) { if (System.Drawing.Printing.PrinterSettings.InstalledPrinters[i].IndexOf(printerSetting) != -1) { p.PrintDocument.PrinterSettings.PrinterName = System.Drawing.Printing.PrinterSettings.InstalledPrinters[i]; } } p.IsPrintInputBox = true; Common.Classes.Function.GetPageSize("case1", ref p); p.PrintPage(20, 80, casePrint); return(0); }
/// <summary> /// ³õʼ»¯Ê÷ /// </summary> public void Init() { Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.Models.Base.Employee employee = Neusoft.FrameWork.Management.Connection.Operator as Neusoft.HISFC.Models.Base.Employee; ArrayList operDept = this.GetDepts(employee.Nurse.ID); foreach (Neusoft.FrameWork.Models.NeuObject objDept in operDept) { ArrayList al = radt.QueryPatient(objDept.ID, Neusoft.HISFC.Models.Base.EnumInState.I); al.Insert(0, objDept.Name); this.SetPatient(al); } }
/// <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> /// 根据药品申请,判断患者是否已出院,返回不允许继续进行摆药收费的患者信息 /// </summary> /// <param name="arrayApplyOut">药品申请</param> /// <param name="noPrivPatient">不在院的患者信息</param> /// <returns>成功返回1 失败返回-1</returns> internal static int JudgeInStatePatient(ArrayList arrayApplyOut, System.Data.IDbTransaction trans, ref string noPrivPatient) { System.Collections.Hashtable hsPatient = new Hashtable(); Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); if (trans != null) { radtIntegrate.SetTrans(trans); } foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in arrayApplyOut) { if (info.IsCharge) //对已经收费的记录不进行判断处理 { continue; } if (hsPatient.ContainsKey(info.PatientNO)) { continue; } else { Neusoft.HISFC.Models.RADT.PatientInfo p = radtIntegrate.GetPatientInfomation(info.PatientNO); if (p != null) { if (p.PVisit.InState.ID.ToString() != Neusoft.HISFC.Models.Base.EnumInState.I.ToString()) { if (noPrivPatient == "") { noPrivPatient = p.Name; } else { noPrivPatient += "," + p.Name; } } } hsPatient.Add(info.PatientNO, null); } } if (noPrivPatient != "") { noPrivPatient += "已不在院,不能进行摆药扣费操作。"; } return(1); }
protected override void OnLoad(EventArgs e) { Department dept = this.integrateManager.GetDepartment(Environment.OperatorDeptID); if (dept.SpecialFlag == "1") //手术科室,生成该手术室的全部申请单 { this.RefreshApply(Environment.OperatorDept); } else //非手术科室,生成该科室下申请单 { Neusoft.HISFC.BizProcess.Integrate.RADT manager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); string deptID = dept.ID; ArrayList alPatients = manager.QueryPatient(deptID, Neusoft.HISFC.Models.Base.EnumInState.I); this.tvApply.Nodes.Clear(); TreeNode root = new TreeNode(); root.Text = "本科患者"; this.tvApply.Nodes.Add(root); foreach (Neusoft.HISFC.Models.RADT.PatientInfo patient in alPatients) { TreeNode node = new TreeNode(); string bedNO = "[" + patient.PVisit.PatientLocation.Bed.ID.Substring(4, patient.PVisit.PatientLocation.Bed.ID.Length - 4) + "]"; string patientNO = "[" + patient.PID.PatientNO + "]"; node.Text = bedNO + "-" + patientNO + patient.Name; if (patient.Sex.ID.ToString() == "M") { node.ImageIndex = 1; node.SelectedImageIndex = 1; } else { node.ImageIndex = 3; node.SelectedImageIndex = 3; } node.Tag = patient; root.Nodes.Add(node); } this.AddApply(Environment.OperatorDept); tvApply.ExpandAll(); } base.OnLoad(e); }
/// <summary> /// 列表显示 /// </summary> /// <returns></returns> public int RefreshTree() { Neusoft.HISFC.BizProcess.Integrate.Order orderManager = new Neusoft.HISFC.BizProcess.Integrate.Order(); Neusoft.HISFC.BizProcess.Integrate.Manager deptManager = new Neusoft.HISFC.BizProcess.Integrate.Manager(); Neusoft.HISFC.BizProcess.Integrate.RADT patientManager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); if (string.IsNullOrEmpty(operDept)) { operDept = oper.Dept.ID; } ArrayList alDept = orderManager.QueryPatientDeptByConfirmDeptID(operDept); this.Nodes.Clear(); System.Windows.Forms.TreeNode deptNode = new System.Windows.Forms.TreeNode(); foreach (Neusoft.FrameWork.Models.NeuObject dept in alDept) { deptNode = new System.Windows.Forms.TreeNode(); deptNode.Text = this.deptHelper.GetName(dept.ID); deptNode.ImageIndex = 0; deptNode.SelectedImageIndex = 1; deptNode.Tag = deptManager.GetDepartment(dept.ID); this.Nodes.Add(deptNode); ArrayList alPatient = orderManager.QueryPatientByConfirmDeptAndPatDept(operDept, dept.ID); foreach (Neusoft.FrameWork.Models.NeuObject patient in alPatient) { System.Windows.Forms.TreeNode patientNode = new System.Windows.Forms.TreeNode(); Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = patientManager.QueryPatientInfoByInpatientNO(patient.ID); patientNode.Text = patientInfo.Name; patientNode.ImageIndex = 6; patientNode.SelectedImageIndex = 7; patientNode.Tag = patientInfo; deptNode.Nodes.Add(patientNode); } } return(1); }
/// <summary> /// 刷新 /// </summary> public new void Refresh() { //{707F2343-20AC-445b-9ACB-2B707C8EA249} InitControlParam(); this.BeginUpdate(); this.Nodes.Clear(); if (manager == null) manager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); ArrayList al = new ArrayList();//患者列表 //节点说明: 本区患者\待接诊患者\转入患者\转出患者\出院登记患者 //显示本护理站在院的患者 al.Add("本区患者|"+EnumPatientType.In.ToString()); addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.In); //显示本护理站待接珍患者 al.Add("待接诊患者|" + EnumPatientType.Arrive.ToString()); addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.R, EnumPatientType.Arrive); //显示转入本护理站待接珍患者 al.Add("转入患者|" + EnumPatientType.ShiftIn.ToString()); addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.ShiftIn); //显示本护理站转科申请的患者 al.Add("转出患者|" + EnumPatientType.ShiftOut.ToString()); addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.ShiftOut); //显示本护理站出院登记的患者 al.Add("出院登记患者|" + EnumPatientType.Out.ToString()); addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.B, EnumPatientType.Out); //显示所有患者列表 this.SetPatient(al); this.EndUpdate(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Click(object sender, EventArgs e) { if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "") { MessageBox.Show("请选择要转入的病区!"); return; } Neusoft.FrameWork.Models.NeuObject nurseCell = new Neusoft.FrameWork.Models.NeuObject(); nurseCell.ID = this.cmbNewDept.Tag.ToString(); nurseCell.Name = this.cmbNewDept.Text; nurseCell.Memo = this.txtNote.Text; Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586} if (radt.ShiftOut(this.patientInfo, this.patientInfo.PVisit.PatientLocation.Dept, nurseCell, this.patientInfo.User03, this.isCancel) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); } else { #region addby xuewj if (this.adt == null) { this.adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT; } if (this.adt != null && patientInfo != null) { this.adt.CancelTransferPatient(patientInfo); } #endregion Neusoft.FrameWork.Management.PublicTrans.Commit(); } MessageBox.Show(radt.Err); base.OnRefreshTree();//刷新树 }
private void btnSave_Click(object sender, EventArgs e) { if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "") { MessageBox.Show("请选择要转入的科室!"); return; } Neusoft.FrameWork.Models.NeuObject dept = new Neusoft.FrameWork.Models.NeuObject(); dept.ID = this.cmbNewDept.Tag.ToString(); dept.Name = this.cmbNewDept.Text; dept.Memo = this.txtNote.Text; Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //t.BeginTransaction(); //radt.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586} if (radt.ShiftOut(this.patientInfo, dept, null, this.patientInfo.User03, this.isCancel) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); } else { Neusoft.FrameWork.Management.PublicTrans.Commit(); if (bSaveAndClose) { dialogResult = DialogResult.OK; this.FindForm().Close(); return; } } MessageBox.Show(radt.Err); base.OnRefreshTree();//刷新树 }
protected override int OnSave(object sender, object neuObject) { if (adt == null) { adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT; } if (adt == null) { return(-1); } Neusoft.HISFC.BizProcess.Integrate.RADT radtBll = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.BizProcess.Integrate.Registration.Registration regBll = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration(); Neusoft.HISFC.Models.RADT.PatientInfo patient = radtBll.GetPatientInfomation(this.patientInfo.ID); Neusoft.HISFC.Models.Registration.Register r = adt.ProduceInpatientToOutPatientMessage(this.patientInfo); if (r == null) { MessageBox.Show("生成挂号实体出错!"); return(-1); } int resultValue = radtBll.UnregisterNoFee(patient); if (resultValue != 1) { throw new Exception(radtBll.Err); } if (regBll.InsertByDoct(r) == -1) { throw new Exception(regBll.Err); } adt.InPatientToOutpatient(this.patientInfo); return(base.OnSave(sender, neuObject)); }
private void ucQueryInpatientNo1_myEvent() { string patientNO = this.ucQueryInpatientNo1.InpatientNo; if (patientNO == null || patientNO == "") { MessageBox.Show(Language.Msg("住院号不存在")); return; } Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); this.applyPatient = radtIntegrate.QueryPatientInfoByInpatientNO(patientNO); if (this.applyPatient == null) { MessageBox.Show(Language.Msg("根据住院流水号查找住院患者信息失败") + radtIntegrate.Err); return; } this.SetPatientInfo(); this.QueryApply(); }
/// <summary> /// 刷新 /// </summary> public new void Refresh() { this.BeginUpdate(); this.Nodes.Clear(); if (manager == null) { manager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); } ArrayList al = new ArrayList();//患者列表 //节点说明: 本区患者\待接诊患者\转入患者\转出患者\出院登记患者 //显示本护理站在院的患者 al.Add("本区患者|" + EnumPatientType.In.ToString()); addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.In); //显示所有患者列表 this.SetPatient(al); this.EndUpdate(); }
/// <summary> /// 保存设置 /// </summary> public virtual int Save() { //取婴儿接珍时的信息信息 //Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null; //取患者最新的住院主表信息 //PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID); if (this.patientInfo == null) { MessageBox.Show(this.Inpatient.Err); return(-1); } //取变动信息:取医生、护士、科室等信息 //this.GetPatientInfo(PatientInfo); //判断是否已选择床位 if (this.cmbBedNo.Text.Trim() == "" && patientInfo.IsBaby == false) { MessageBox.Show("未选择床位!"); return(-1); } //取处理时的床位信息 Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed(); bed.ID = this.cmbBedNo.Tag.ToString(); //床号 bed.InpatientNO = patientInfo.ID; //床位上患者住院流水号 #region 业务处理 Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); //t.BeginTransaction(); //managerRADT.SetTrans(t.Trans); if (managerRADT.CallBack(patientInfo, bed) == -1)//调用召回业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } #endregion #region addby xuewj 2010-3-15 if (this.adt == null) { this.adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT; } if (this.adt != null) { this.adt.CancelDischargePatientMessage(patientInfo); } #endregion Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show(managerRADT.Err); this.Refresh(); this.ClearPatintInfo(); return(1); }
///// <summary> ///// 初始化事件 ///// </summary> ///// <param name="sender"></param> ///// <param name="neuObject"></param> ///// <param name="param"></param> ///// <returns></returns> //protected override Neusoft.FrameWork.WinForms.Forms.ToolBarService OnInit(object sender, object neuObject, object param) //{ // if (this.DesignMode) // { // return null; // } // if (this.isQueryForm) // { // this.neuButtonOK.Visible = false; // } // else // { // this.neuButtonOK.Visible = true; // } // return null; //} #endregion #region 取消终端确认 private void CancelConfirm() { if (this.neuSpreadItemDetail_SheetItemDetail.RowCount == 0) { return; } if (MessageBox.Show("是否取消该次确认", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } if (this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag == null) { MessageBox.Show("获取终端确认明细出错"); return; } Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm terminalConfim = new Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm(); Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager examiMgr = new Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager(); Neusoft.HISFC.BizProcess.Integrate.Fee feeMgr = new Neusoft.HISFC.BizProcess.Integrate.Fee(); Neusoft.HISFC.BizProcess.Integrate.RADT serviceInpatient = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(terminalConfim.Connection); //t.BeginTransaction(); //terminalConfim.SetTrans(t.Trans); //examiMgr.SetTrans(t.Trans); //feeMgr.SetTrans(t.Trans); //serviceInpatient.SetTrans(t.Trans); Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail detail = (Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag; Neusoft.HISFC.Models.Terminal.TerminalApply apply = terminalConfim.GetItemListBySequence(detail.Apply.Order.ID, detail.Apply.ID); Neusoft.HISFC.Models.Base.Employee employee = (Neusoft.HISFC.Models.Base.Employee)terminalConfim.Operator; if (detail.OperInfo.ID != terminalConfim.Operator.ID) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("只能取消自己做过的终端确认"); return; } if (detail == null) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("获取终端确认明细出错"); return; } int BackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty); if (terminalConfim.UpdateConfirmDetail(detail.Sequence, "1") <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("作废终端确认明细表出错" + terminalConfim.Err); return; } if (terminalConfim.UpdateTerminalConfirmByMoOrder(detail.Apply.Order.ID, BackQty) <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("更新终端确认主表失败" + terminalConfim.Err); return; } string confirmFlag = "1"; if (apply.AlreadyConfirmCount - BackQty == 0) { confirmFlag = "0"; } if (apply.PatientType != "5" && (apply.PatientType == "1" || apply.PatientType == "4")) { if (terminalConfim.UpdateFeeConfirmQty(detail.Apply.Order.ID, confirmFlag, -BackQty) <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("更新费用表失败" + terminalConfim.Err); return; } #region 扣门诊账户 if (detail.Apply.SpecalFlag == "1") { //退费用到门诊账户 ,目前门诊账户项目不能分开多次确认 decimal totCost = decimal.Round(apply.Item.Item.Price * apply.Item.Item.Qty, 2); if (feeMgr.AccountCancelPay(apply.Patient, totCost, "终端退费", employee.Dept.ID, "") < 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("退门诊账户失败 :" + feeMgr.Err); return; } #region 更新费用表 if (feeMgr.UpdateAccountByMoOrderAndItemCode(apply.Item.Item.ID, apply.Order.ID, false) <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("门诊收费表扣费标志失败 :" + feeMgr.Err); return; } #endregion #region 更新执行标志到划价状态 if (terminalConfim.UpdateConfirmSendFlag(detail.Apply.Order.ID, detail.Apply.Item.Item.ID, "0") <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("更新终端确认表执行标志失败 :" + terminalConfim.Err); return; } #endregion } #endregion } if (apply.PatientType == "4" || apply.PatientType == "5") { //体检中心的可退数量 int NoBackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(apply.Item.Item.Qty - apply.Item.ConfirmedQty + BackQty); if (examiMgr.UpdateConfirmInfo(detail.Apply.Order.ID, confirmFlag, NoBackQty) <= 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("更新体检表失败:" + examiMgr.Err); return; } } if (apply.PatientType == "2" && detail.Apply.SpecalFlag == "2") //回退住院费用 { #region 构建住院患者实体 Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = serviceInpatient.QueryPatientInfoByInpatientNO(apply.Patient.PID.ID); if (patientInfo == null) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("获取住院患者信息失败:" + serviceInpatient.Err); return; } #endregion #region 构建住院费用实体 Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList(); Neusoft.HISFC.Models.Terminal.TerminalApply terminalApply = apply.Clone(); feeItemList.Item = terminalApply.Item.Item.Clone(); feeItemList.Item.PriceUnit = terminalApply.Item.Item.PriceUnit;//计价单位 if (terminalApply.Item.Order.DoctorDept.ID == null || terminalApply.Item.Order.DoctorDept.ID == "") { feeItemList.RecipeOper.Dept = employee.Dept; } else { feeItemList.RecipeOper.Dept = terminalApply.Item.Order.DoctorDept; } if (terminalApply.Item.Order.Doctor.ID == null || terminalApply.Item.Order.Doctor.ID == "") { feeItemList.RecipeOper.ID = employee.ID; feeItemList.RecipeOper.Name = employee.Name; feeItemList.ChargeOper.ID = employee.ID; feeItemList.ChargeOper.Name = employee.Name; feeItemList.ChargeOper.Dept = employee.Dept; } else { feeItemList.RecipeOper.ID = terminalApply.Item.Order.Doctor.ID; feeItemList.RecipeOper.Name = terminalApply.Item.Order.Doctor.Name; feeItemList.ChargeOper.ID = terminalApply.Item.Order.Doctor.ID; feeItemList.ChargeOper.Name = terminalApply.Item.Order.Doctor.Name; } feeItemList.ExecOper.ID = employee.ID; feeItemList.ExecOper.Name = employee.Name; feeItemList.ExecOper.Dept = employee.Dept; feeItemList.StockOper.Dept = employee.Dept;//药品的扣库存的科室 feeItemList.Item.PackQty = terminalApply.Item.Item.PackQty; feeItemList.Item.Qty = terminalApply.Item.Item.Price; feeItemList.Item.Qty = terminalApply.Item.Item.Qty; if (feeItemList.Item.PackQty == 0) { feeItemList.Item.PackQty = 1; } feeItemList.FT.TotCost = Neusoft.FrameWork.Public.String.FormatNumber((feeItemList.Item.Price * feeItemList.Item.Qty / feeItemList.Item.PackQty), 2); feeItemList.FT.OwnCost = feeItemList.FT.TotCost; feeItemList.IsBaby = patientInfo.IsBaby; feeItemList.IsEmergency = false; feeItemList.Order = new Neusoft.HISFC.Models.Order.Inpatient.Order(); feeItemList.ExecOrder.ID = terminalApply.Item.Order.ID; feeItemList.NoBackQty = 0; feeItemList.FTRate.OwnRate = 1; feeItemList.BalanceState = "0"; feeItemList.FeeOper.ID = employee.ID; feeItemList.FeeOper.Name = employee.Name; feeItemList.FeeOper.Dept = employee.Dept; feeItemList.TransType = TransTypes.Positive; #endregion if (feeMgr.QuitItem(patientInfo, feeItemList) <= 0) { MessageBox.Show("退住院费用失败" + feeMgr.Err); return; } } Neusoft.FrameWork.Management.PublicTrans.Commit(); this.neuSpreadItemDetail_SheetItemDetail.Rows.Remove(this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex, 1); #region 修改界面上的数量 for (int i = 0; i < this.neuSpreadItem_SheetItem.RowCount; i++) { Neusoft.HISFC.Models.Terminal.TerminalApply obj = (Neusoft.HISFC.Models.Terminal.TerminalApply) this.neuSpreadItem_SheetItem.Rows[i].Tag; if (obj.Order.ID == detail.Apply.Order.ID) { int freeQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty) + Neusoft.FrameWork.Function.NConvert.ToInt32(neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text); this.neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text = freeQty.ToString(); break; } } #endregion MessageBox.Show("取消成功"); }
/// <summary> /// 对传入的申请数据打印门诊标签 /// </summary> /// <param name="alOutData">申请数据</param> /// <returns>成功返回1 出错返回-1</returns> internal static int PrintLabelForOutpatient(ArrayList alOutData) { if (Function.IDrugPrint == null) { System.Windows.Forms.MessageBox.Show("未正确设置摆药单打印接口."); return(-1); } if (alOutData.Count <= 0) { return(1); } string strPID = ""; ArrayList al = new ArrayList( ); Neusoft.HISFC.Models.Registration.Register patiRegister = new Neusoft.HISFC.Models.Registration.Register( ); Neusoft.HISFC.Models.RADT.PatientInfo patiPerson = new Neusoft.HISFC.Models.RADT.PatientInfo( ); Neusoft.HISFC.BizProcess.Integrate.RADT radtManager = new Neusoft.HISFC.BizProcess.Integrate.RADT( ); Neusoft.FrameWork.Management.DataBaseManger dataManager = new Neusoft.FrameWork.Management.DataBaseManger( ); foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut temp in alOutData) { temp.User01 = ""; if (temp.PatientNO == strPID) { al.Add(temp); } else { if (al.Count > 0) { #region 标签打印赋值 patiPerson = radtManager.GetPatientInfomation(strPID); patiRegister.Name = patiPerson.Name; patiRegister.Sex = patiPerson.Sex; patiRegister.Age = dataManager.GetAge(patiPerson.Birthday); patiRegister.User02 = al.Count.ToString( ); Function.IDrugPrint.OutpatientInfo = patiRegister; Function.IDrugPrint.LabelTotNum = al.Count; Function.IDrugPrint.DrugTotNum = al.Count; string privCombo = ""; ArrayList alCombo = new ArrayList( ); foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in al) { if (privCombo == "-1" || (privCombo == info.CombNO && info.CombNO != "")) { alCombo.Add(info); privCombo = info.CombNO; continue; } else //不同处方号 { if (alCombo.Count > 0) { if (alCombo.Count == 1) { Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut); } else { Function.IDrugPrint.AddCombo(alCombo); } Function.IDrugPrint.Print( ); } privCombo = info.CombNO; alCombo = new ArrayList( ); alCombo.Add(info); } } if (alCombo.Count == 0) { return(1); } if (alCombo.Count > 1) { Function.IDrugPrint.AddCombo(alCombo); } else { Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut); } Function.IDrugPrint.Print( ); #endregion } al = new ArrayList( ); al.Add(temp); strPID = temp.PatientNO; } } if (al.Count > 0) { #region 标签打印赋值 patiPerson = radtManager.GetPatientInfomation(strPID); patiRegister.Name = patiPerson.Name; patiRegister.Sex = patiPerson.Sex; patiRegister.Age = dataManager.GetAge(patiPerson.Birthday); patiRegister.User02 = al.Count.ToString( ); Function.IDrugPrint.OutpatientInfo = patiRegister; Function.IDrugPrint.LabelTotNum = al.Count; Function.IDrugPrint.DrugTotNum = al.Count; string privCombo = "-1"; ArrayList alCombo = new ArrayList( ); foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in al) { if (privCombo == "-1" || (privCombo == info.CombNO && info.CombNO != "")) { alCombo.Add(info); privCombo = info.CombNO; continue; } else //不同处方号 { if (alCombo.Count == 1) { Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut); } else { Function.IDrugPrint.AddCombo(alCombo); } Function.IDrugPrint.Print( ); privCombo = info.CombNO; alCombo = new ArrayList( ); alCombo.Add(info); } } if (alCombo.Count == 0) { return(1); } if (alCombo.Count > 1) { Function.IDrugPrint.AddCombo(alCombo); } else { Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut); } Function.IDrugPrint.Print( ); #endregion } return(1); }
/// <summary> /// 门诊号 住院号 /// </summary> /// <param name="InpatientNo"></param> /// <returns></returns> public int LoadInfo(string InpatientNo) { if (InpatientNo == null || InpatientNo == "") { patientInfo = null; MessageBox.Show("传入的住院流水号为空"); return(-1); } Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.BizProcess.Integrate.Registration.Registration registerIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration(); //{8BC09475-C1D9-4765-918B-299E21E04C74} 诊断录入增加医生站、门诊医生站、病案室属性 if (Enumdiaginput == enumDiagInput.order)//住院医生 { //从住院主表中查旬 patientInfo = radtIntegrate.GetPatientInfomation(InpatientNo); if (patientInfo == null) { Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo); if (obj == null) { MessageBox.Show("查询病人信息出错"); return(-1); } patientInfo = new Neusoft.HISFC.Models.RADT.PatientInfo(); patientInfo.ID = obj.ID; patientInfo.CaseState = "1"; } //this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC); this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC, enumdiaginput.ToString()); } else if (Enumdiaginput == enumDiagInput.outPatientOrder)//门诊医生 { Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo); if (obj == null) { MessageBox.Show("查询病人信息出错"); return(-1); } patientInfo = new Neusoft.HISFC.Models.RADT.PatientInfo(); patientInfo.ID = obj.ID; patientInfo.PID.CardNO = obj.PID.CardNO; patientInfo.CaseState = "1"; this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC, enumdiaginput.ToString()); } else if (Enumdiaginput == enumDiagInput.cas) { //从住院主表中查旬 patientInfo = radtIntegrate.GetPatientInfomation(InpatientNo); if (patientInfo == null) { Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo); if (obj == null) { MessageBox.Show("查询病人信息出错"); return(-1); } patientInfo = new Neusoft.HISFC.Models.RADT.PatientInfo(); patientInfo.ID = obj.ID; patientInfo.CaseState = "1"; } this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS, enumdiaginput.ToString()); } this.ucDiagNoseInput1.fpEnterSaveChanges(); if (this.ucDiagNoseInput1.GetfpSpreadRowCount() == 0) { this.ucDiagNoseInput1.AddRow(); } return(1); }
/// <summary> /// {CB2F6DC4-F9C6-4756-A118-CEDB907C39EC} /// </summary> /// <param name="obj"></param> /// <returns></returns> private int ValidInstate(Neusoft.FrameWork.Models.NeuObject obj) { Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT(); Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = null; if (obj is OperationRecord) { OperationRecord tempObj = obj as OperationRecord; if (tempObj.OperationAppllication.PatientSouce == "2") { patientInfo = radtIntegrate.GetPatientInfomation(tempObj.OperationAppllication.PatientInfo.ID); if (patientInfo == null) { MessageBox.Show(radtIntegrate.Err); return(-1); } //if ((Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.N // || (Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.O) if (patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.N.ToString() || patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.O.ToString()) { Neusoft.FrameWork.WinForms.Classes.Function.Msg("该患者已经出院!", 111); return(-1); } } } if (obj is OperationAppllication) { OperationAppllication tempOA = obj as OperationAppllication; if (tempOA.PatientSouce == "2") { patientInfo = radtIntegrate.GetPatientInfomation(tempOA.PatientInfo.ID); if (patientInfo == null) { MessageBox.Show(radtIntegrate.Err); return(-1); } //if ((Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.N // || (Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.O) if (patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.N.ToString() || patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.O.ToString()) { Neusoft.FrameWork.WinForms.Classes.Function.Msg("该患者已经出院!", 111); return(-1); } } } return(1); }
private void btnSave_Click(object sender, EventArgs e) { if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "") { MessageBox.Show("请选择要转入的科室!"); return; } //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586} if (this.cmbNewNurse.Tag == null || this.cmbNewNurse.Tag.ToString() == "") { MessageBox.Show("请选择要转入的科室!"); return; } Neusoft.FrameWork.Models.NeuObject dept = new Neusoft.FrameWork.Models.NeuObject(); dept.ID = this.cmbNewDept.Tag.ToString(); dept.Name = this.cmbNewDept.Text; dept.Memo = this.txtNote.Text; //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586} Neusoft.FrameWork.Models.NeuObject nurseCell = new Neusoft.FrameWork.Models.NeuObject(); nurseCell.ID = this.cmbNewNurse.Tag.ToString(); nurseCell.Name = this.cmbNewNurse.Text; #region add by xuewj 2010-10-19 临床路径接口 {10962AE3-C0B9-4cf7-91B6-CA956C1AFC2D} if (this.iClinicPath != null) { if (this.iClinicPath.PatientIsSelectedPath(this.patientInfo.ID)) { MessageBox.Show("该患者在临床路径中,请先退出路径!"); return; } } #endregion Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //t.BeginTransaction(); //radt.SetTrans(t.Trans); //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586} if (radt.ShiftOut(this.patientInfo, dept, nurseCell, this.patientInfo.User03, this.isCancel) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); } else { Neusoft.FrameWork.Management.PublicTrans.Commit(); if (bSaveAndClose) { dialogResult = DialogResult.OK; this.FindForm().Close(); return; } } MessageBox.Show(radt.Err); base.OnRefreshTree();//刷新树 }
/// <summary> /// 保存设置 /// </summary> public virtual int Save() { //取婴儿接珍时的信息信息 Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null; //取患者最新的住院主表信息 PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID); if (this.patientInfo == null) { MessageBox.Show(this.Inpatient.Err); return(-1); } //换医生时,如果患者已不在本科,则清空数据---当患者转科后,如果本窗口没有关闭,会出现此种情况 if (PatientInfo.PVisit.PatientLocation.NurseCell.ID != this.NurseCell.ID && this.arrivetype == ArriveType.ChangeDoc) { MessageBox.Show("患者已不在本病区,请刷新当前窗口"); return(-1); } //如果患者已不是在院状态,则不允许操作 if (PatientInfo.PVisit.InState.ID.ToString() != this.patientInfo.PVisit.InState.ID.ToString()) { MessageBox.Show("患者信息已发生变化,请刷新当前窗口"); return(-1); } //取变动信息:取医生、护士、科室等信息 this.GetPatientInfo(PatientInfo); //判断是否已选择床位 if (this.cmbBedNo.Text.Trim() == "" && patientInfo.IsBaby == false) { MessageBox.Show("未选择床位!"); return(-1); } //取处理时的床位信息 Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed(); bed.ID = this.cmbBedNo.Tag.ToString(); //床号 bed.InpatientNO = patientInfo.ID; //床位上患者住院流水号 #region 业务处理 Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); managerRADT.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); //转科 if (this.arrivetype == ArriveType.ShiftIn) { if (managerRADT.ShiftIn(PatientInfo, this.NurseCell, this.cmbBedNo.Tag.ToString()) == -1)//调用转科业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } } //接珍护理站为当前护理站(转入操作时,需要保留原护理站信息,所以在此处处理) PatientInfo.PVisit.PatientLocation.NurseCell = this.NurseCell; PatientInfo.PVisit.PatientLocation.Bed = bed; //接诊 if (this.arrivetype == ArriveType.Regedit) { if (managerRADT.ArrivePatient(PatientInfo, bed) == -1)//调用接诊业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } } //召回 if (this.arrivetype == ArriveType.CallBack) { if (managerRADT.CallBack(PatientInfo, bed) == -1)//调用召回业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } } //换医师 if (this.arrivetype == ArriveType.ChangeDoc) { if (managerRADT.ChangeDoc(PatientInfo) == -1)//调用换医生业务 { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(managerRADT.Err); return(-1); } else { } } #endregion Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show(managerRADT.Err); base.OnRefreshTree();//刷新树 return(1); }
public void RefreshInfo() { this.Nodes.Clear(); if (manager == null) { manager = new Neusoft.HISFC.BizProcess.Integrate.RADT(); } ArrayList al = new ArrayList(); Neusoft.HISFC.Models.Base.Employee per = Neusoft.FrameWork.Management.Connection.Operator as Neusoft.HISFC.Models.Base.Employee; //节点说明 al.Add("分管患者|patient"); try { ArrayList al1 = new ArrayList(); al1 = this.manager.QueryPatientByHouseDoc(per, Neusoft.HISFC.Models.Base.EnumInState.I, per.Dept.ID); foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1) { al.Add(PatientInfo1); } } catch (Exception ex) { MessageBox.Show("查找分管患者出错\n!" + ex.Message + this.manager.Err); } al.Add("本科室患者|DeptPatient"); addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I); al.Add("会诊患者|ConsultationPatient"); try { ArrayList al1 = new ArrayList(); Neusoft.FrameWork.Management.DataBaseManger dbManager = new Neusoft.FrameWork.Management.DataBaseManger(); DateTime dt = dbManager.GetDateTimeFromSysDateTime(); DateTime dt1 = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0, 0); DateTime dt2 = new DateTime(dt.Year, dt.AddDays(1).Month, dt.AddDays(1).Day, 0, 0, 0, 0); al1 = this.manager.QueryPatientByConsultation(dbManager.Operator, dt1, dt2, per.Dept.ID); foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1) { al.Add(PatientInfo1); } } catch (Exception ex) { MessageBox.Show("查找会诊患者出错\n!" + ex.Message + this.manager.Err); } al.Add("授权患者|PermissionPatient"); try { ArrayList al1 = new ArrayList(); al1 = this.manager.QueryPatientByPermission(Neusoft.FrameWork.Management.Connection.Operator); foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1) { al.Add(PatientInfo1); } } catch (Exception ex) { MessageBox.Show("查找授权患者出错\n!" + ex.Message + this.manager.Err); } try { al.Add("查找患者|QueryPatient"); } catch (Exception ex) { MessageBox.Show("查找患者出错\n!" + ex.Message + this.manager.Err); } //{AC6A5576-BA29-4dba-8C39-E7C5EBC7671E} 增加医疗组处理 al.Add("医疗组内患者|TeamPatient"); if (this.medicalTeamForDoctBizlogic == null) { this.medicalTeamForDoctBizlogic = new Neusoft.HISFC.BizLogic.Order.MedicalTeamForDoct(); } List <Neusoft.HISFC.Models.Order.Inpatient.MedicalTeamForDoct> medicalTeamForDoctList = this.medicalTeamForDoctBizlogic.QueryQueryMedicalTeamForDoctInfo(per.Dept.ID, per.ID); if (medicalTeamForDoctList == null) { MessageBox.Show("查询医疗组失败!\n" + this.medicalTeamForDoctBizlogic.Err); } if (medicalTeamForDoctList.Count > 0) { Neusoft.HISFC.Models.Order.Inpatient.MedicalTeamForDoct medcialObj = medicalTeamForDoctList[0]; addPatientListMedialTeam(al, Neusoft.HISFC.Models.Base.EnumInState.I, medcialObj.MedcicalTeam.ID); } this.SetPatient(al); }
/// <summary> /// 根据输入的住院号/门诊号 查询诊断信息 /// </summary> /// <param name="patientInfo"></param> /// <param name="Type"></param> /// <returns>-1 出错 0 传入的病人信息为空,不作处理,1 不允许有病案,2病案已经封存,不允许医生修改和查阅 3 查询有数据 4查询没有数据 </returns> public int LoadInfo(string InpatientNO) //Neusoft.HISFC.Models.RADT.PatientInfo patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes Type) { try { if (this.fpEnter1_Sheet1.RowCount > 0) { this.fpEnter1_Sheet1.Rows.Remove(0, this.fpEnter1_Sheet1.RowCount); } if (InpatientNO == null || InpatientNO == "") { //没有该病人的信息 MessageBox.Show("请选择病人"); return(0); } this.inpatientNo = InpatientNO; Neusoft.HISFC.Models.RADT.PatientInfo patient = new Neusoft.HISFC.Models.RADT.PatientInfo(); Neusoft.HISFC.BizProcess.Integrate.RADT pa = new Neusoft.HISFC.BizProcess.Integrate.RADT();// Neusoft.HISFC.BizLogic.RADT.InPatient(); Neusoft.HISFC.BizProcess.Integrate.Registration.Registration register = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration(); //从住院主表中查旬 patient = pa.GetPatientInfoByPatientNO(InpatientNO); if (patient == null) { Neusoft.HISFC.Models.Registration.Register obj = register.GetByClinic(InpatientNO); if (obj == null) { MessageBox.Show("查询病人信息出错"); return(-1); } patient = new Neusoft.HISFC.Models.RADT.PatientInfo(); patient.ID = obj.ID; patient.CaseState = "1"; } if (patient.CaseState == "0") { //不允许有病案 return(1); } //定义业务层的类 Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase diag = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); diagList = new ArrayList(); if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC) // 医生站录入病历 { #region 医生站录入病历 //目前允许有病历 并且目前没有录入病历 或者标志位位空(默认是允许录入病历) // 医生站录入病例 if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2") { //从医生站录入的信息中查询 diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC); } else { // 病案已经封存已经不允许医生修改和查阅 return(2); } #endregion } else if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS)//病案室录入病历 { #region 病案室录入病历 //目前允许有病历 并且目前没有录入病历 或者标志位位空(默认是允许录入病历) if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2") { //医生站已经录入病案 diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC); } else if (patient.CaseState == "3") { //病案室已经录入病案 diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS); } else if (patient.CaseState == "4") { //病案已经封存 不允许修改。 diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS); this.fpEnter1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.ReadOnly; } #endregion } else { //没有传入参数 不作任何处理 } if (diagList != null) { //查询有数据 AddInfoToFP(diagList); return(3); } else {//查询没有数据 return(4); } } catch (Exception ex) { MessageBox.Show(ex.Message); return(-1); } }