private void Retrieve() { Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase icdMgr = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); #region {6EF7D73B-4350-4790-B98C-C0BD0098516E} //al = icdMgr.ICDQuery(ICDTypes.ICD10, QueryTypes.Valid); if (this.isUseDeptICD) { al = icdMgr.QueryDeptDiag(((Neusoft.HISFC.Models.Base.Employee)Neusoft.FrameWork.Management.Connection.Operator).Dept.ID); } else { al = icdMgr.ICDQuery(ICDTypes.ICD10, QueryTypes.Valid); } #endregion if (al != null) { foreach (Neusoft.HISFC.Models.HealthRecord.ICD item in al) { ds.Tables[0].Rows.Add(new object[] { item.ID, item.Name, item.SpellCode }); } fpSpread1.DataSource = ds; fpSpread1_Sheet1.Columns[0].Width = 66F; fpSpread1_Sheet1.Columns[1].Width = 251F; fpSpread1_Sheet1.Columns[2].Width = 90F; } }
public override int Save(object sender, object neuObject) { if (inpatientNo == null || inpatientNo == "") { MessageBox.Show("请选择患者"); return(0); } Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase diagNose = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(deptMgr.Connection); //trans.BeginTransaction(); //diagNose.SetTrans(trans.Trans); this.fpEnter1.StopCellEditing(); ArrayList list = this.GetChangeInfo(); if (list.Count == 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("没有可保存的信息"); return(0); } if (ValueState(list) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); return(-1); } #region 除 if (diagNose.DeleteDiagnoseAll(this.inpatientNo, frmType) < 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("保存诊断信息失败" + diagNose.Err); return(-1); } #endregion #region 更新 增加 foreach (Neusoft.HISFC.Models.HealthRecord.Diagnose obj in list) { if (diagNose.InsertDiagnose(obj) < 0) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("保存失败 " + diagNose.Err); } } #endregion this.fpEnterSaveChanges(); Neusoft.FrameWork.Management.PublicTrans.Commit(); ClearInfo(); LoadInfo(inpatientNo); MessageBox.Show("保存成功"); return(base.Save(sender, neuObject)); }
/// <summary> /// 设置列下拉列表 /// </summary> private void initList() { try { Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase da = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); Neusoft.HISFC.BizLogic.Manager.Constant con = new Neusoft.HISFC.BizLogic.Manager.Constant(); this.fpEnter1.SelectNone = true; //获取出院诊断类别诊断 // diagnoseType = da.GetDiagnoseList(); diagnoseType = Neusoft.HISFC.Models.HealthRecord.DiagnoseType.SpellList(); diagnoseTypeHelper.ArrayObject = diagnoseType; this.fpEnter1.SetColumnList(this.fpEnter1_Sheet1, 0, diagnoseType); //分期列表 PeriorList = con.GetList(Neusoft.HISFC.Models.Base.EnumConstant.DIAGPERIOD); this.fpEnter1.SetColumnList(this.fpEnter1_Sheet1, 7, PeriorList); PeriorListHelper.ArrayObject = PeriorList; //手术操作类型 OperList = con.GetList(Neusoft.HISFC.Models.Base.EnumConstant.OPERATIONTYPE); this.fpEnter1.SetColumnList(this.fpEnter1_Sheet1, 4, OperList); OperListHelper.ArrayObject = OperList; //分级列表 LeveList = con.GetList(Neusoft.HISFC.Models.Base.EnumConstant.DIAGLEVEL); this.fpEnter1.SetColumnList(this.fpEnter1_Sheet1, 8, LeveList); LeveListHelper.ArrayObject = LeveList; //出院情况列表 diagOutStateList = con.GetList(Neusoft.HISFC.Models.Base.EnumConstant.ZG); this.fpEnter1.SetColumnList(this.fpEnter1_Sheet1, 3, diagOutStateList); diagOutStateListHelper.ArrayObject = diagOutStateList; this.fpEnter1.SetWidthAndHeight(200, 200); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <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); } }
/// <summary> /// 获取修改过的信息 /// </summary> /// <returns></returns> private ArrayList GetChangeInfo() { ArrayList list = new ArrayList(); try { Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase dia = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); Neusoft.HISFC.Models.HealthRecord.Diagnose info = null; for (int i = 0; i < this.fpEnter1_Sheet1.RowCount; i++) { info = new Neusoft.HISFC.Models.HealthRecord.Diagnose(); info.DiagInfo.Patient.ID = inpatientNo; //诊断类别 info.DiagInfo.DiagType.ID = diagnoseTypeHelper.GetID(this.fpEnter1_Sheet1.Cells[i, (int)Cols.diagType].Text); info.DiagInfo.ICD10.ID = fpEnter1_Sheet1.Cells[i, (int)Cols.ICDCode].Text;//2 //if (info.DiagInfo.DiagType.ID == "1") //将主诊断设置成 //{ //} //else //{ // info.DiagInfo.IsMain = false; //} info.DiagInfo.ICD10.Name = fpEnter1_Sheet1.Cells[i, (int)Cols.ICDName].Text; //if (row["出院情况"] != DBNull.Value) //{ info.DiagOutState = diagOutStateListHelper.GetID(fpEnter1_Sheet1.Cells[i, (int)Cols.outState].Text); //3 //} //if (row["有无手术"] != DBNull.Value) //{ info.OperationFlag = OperListHelper.GetID(fpEnter1_Sheet1.Cells[i, (int)Cols.Operation].Text); //} //if ()//5 //{ info.Is30Disease = Neusoft.FrameWork.Function.NConvert.ToInt32(ConvertBool(fpEnter1_Sheet1.Cells[i, (int)Cols.disease].Value)).ToString(); //} //else //{ // info.Is30Disease = "0"; //} //if (ConvertBool(row["病理符合"]))//6 //{ info.CLPA = Neusoft.FrameWork.Function.NConvert.ToInt32(ConvertBool(fpEnter1_Sheet1.Cells[i, (int)Cols.clpa].Value)).ToString(); //} //else //{ //info.CLPA = "0"; //} //if (row["分级"] != DBNull.Value) //{ info.LevelCode = LeveListHelper.GetID(fpEnter1_Sheet1.Cells[i, (int)Cols.levelCode].Text); //7 //} //if (row["分期"] != DBNull.Value) //{ info.PeriorCode = PeriorListHelper.GetID(fpEnter1_Sheet1.Cells[i, (int)Cols.perionCode].Text);//8 //} //if (ConvertBool(row["是否疑诊"]))//9 //{ info.DubDiagFlag = Neusoft.FrameWork.Function.NConvert.ToInt32(ConvertBool(fpEnter1_Sheet1.Cells[i, (int)Cols.dubdiag].Value)).ToString();; info.DiagInfo.IsMain = ConvertBool(fpEnter1_Sheet1.Cells[i, (int)Cols.mainDiag].Value); //} //else //{ // info.DubDiagFlag = "0"; //} info.DiagInfo.HappenNo = i; info.DiagInfo.DiagDate = Neusoft.FrameWork.Function.NConvert.ToDateTime(fpEnter1_Sheet1.Cells[i, (int)Cols.diagTime].Text); //11 info.Pvisit.InTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(fpEnter1_Sheet1.Cells[i, (int)Cols.inTime].Text); //12 info.Pvisit.OutTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(fpEnter1_Sheet1.Cells[i, (int)Cols.outTime].Text); //13 if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC) { info.OperType = "1"; } else if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS) { info.OperType = "2"; } if (fpEnter1_Sheet1.Cells[i, 0].Tag != null) { Neusoft.HISFC.Models.HealthRecord.Diagnose obj = (Neusoft.HISFC.Models.HealthRecord.Diagnose)fpEnter1_Sheet1.Cells[i, 0].Tag; info.DiagInfo.Doctor = obj.DiagInfo.Doctor; } else { info.DiagInfo.Doctor.ID = deptMgr.Operator.ID; info.DiagInfo.Doctor.Name = deptMgr.Operator.Name; } list.Add(info); } return(list); } catch (Exception ex) { MessageBox.Show(ex.Message); return(null); } }
public int AlterOrder(Neusoft.HISFC.Models.Registration.Register patient, Neusoft.FrameWork.Models.NeuObject recipeDoc, Neusoft.FrameWork.Models.NeuObject recipeDept, ref List <Neusoft.HISFC.Models.Order.OutPatient.Order> orderList) { //{DB30AC55-99D4-4250-AF2A-A9AC40370B67} bool isHaveDrug = false; foreach (Neusoft.HISFC.Models.Order.OutPatient.Order order in orderList) { if (order.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug) { Neusoft.HISFC.Models.Pharmacy.Item drugItem = order.Item as Neusoft.HISFC.Models.Pharmacy.Item; if (drugItem == null) { return(0); } #region 多级单位(最小发药系数) if (order.Item.Qty == 0 || string.IsNullOrEmpty(order.Item.ID)) { return(0); } if (order.Item.SysClass.ID.ToString() == Neusoft.HISFC.Models.Base.EnumSysClass.PCC.ToString()) {//草药算法根据现场版本情况单独处理 return(0); } decimal totQty; decimal resultTotQty; decimal packQty = drugItem.PackQty; if (order.Nurse.User03 == "0") {//包装单位 totQty = order.Qty * drugItem.PackQty; } else {//最小单位 totQty = order.Qty; } this.phaItemMgr.QuerySpeUnitForClinic(drugItem, totQty, out resultTotQty); if (order.NurseStation.User03 == "0") { //包装单位 totQty = System.Math.Ceiling(resultTotQty / packQty); //整包装上取整 } else {//最小单位 totQty = System.Math.Ceiling(resultTotQty); } if (order.Qty != totQty) { if (MessageBox.Show(order.Item.Name + "的最小发药量为" + totQty + ",是否继续?", "药房最小发药量", MessageBoxButtons.YesNo) == DialogResult.Yes) { } else { return(-1); } } #endregion isHaveDrug = true; } } #region {DB30AC55-99D4-4250-AF2A-A9AC40370B67} if (isHaveDrug) { bool isJudgeDiagnose = this.ctrlMgr.GetControlParam <bool>("200302", false, false); if (isJudgeDiagnose) { Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase diagnoseMgr = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase(); System.Collections.ArrayList alDiagnose = diagnoseMgr.QueryDiagnoseNoOps(patient.ID); if (alDiagnose == null || alDiagnose.Count == 0) { MessageBox.Show("该患者还没有录入诊断!"); return(-1); } } } #endregion //Function.SISpecialLimit myManager = new Neusoft.DefultInterfacesAchieve.Function.SISpecialLimit(); //foreach (Neusoft.HISFC.Models.Order.OutPatient.Order order in orderList) //{ // if (order.Item.Memo == "1") // { // //删除中间表 // myManager.DeleteOutpatOrder(order); // //插入中间表 // int iReturn = myManager.InsertOutpatOrder(order); // if (iReturn < 0) // { // MessageBox.Show("插入适应症出错!" + myManager.Err); // return -1; // } // } //} return(1); }