예제 #1
0
        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;
            }
        }
예제 #2
0
        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));
        }
예제 #3
0
        /// <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);
            }
        }
예제 #4
0
        /// <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);
            }
        }
예제 #5
0
        /// <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);
            }
        }
예제 #6
0
        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);
        }