public void SetPatientInfo(Neusoft.HISFC.Object.Registration.Register register)
 {
     this.lblAdress.Text  = register.AddressHome;
     this.lblAge.Text     = register.Age;
     this.lblGms.Text     = register.User03.ToString();
     this.lblName.Text    = register.Name;
     this.lblPaytype.Text = register.Pact.Name;
     this.lblSex.Text     = register.Sex.Name;
 }
        /// <summary>
        /// 门诊按照执行科室,最小费用等分发票


        /// </summary>
        /// <param name="payKindCode">患者的费用类别</param>
        /// <param name="feeItemLists">患者的总体费用明细</param>
        /// <returns>成功 分好的费用明细,每个ArrayList代表一组应该生成发票的费用明细 失败 null</returns>
        public ArrayList SplitInvoice(Neusoft.HISFC.Object.Registration.Register register, ref ArrayList feeItemLists)
        {
            //获得是否按照执行科室分发票,默认不刷新参数,默认值为 false即不按照执行科室分发票.
            bool isSplitByExeDept = controlParamIntegrate.GetControlParam <bool>(Neusoft.HISFC.Integrate.Const.IS_SPLIT_INVOICE_BY_EXEDEPT, false, false);

            //分组后发票


            ArrayList exeGroupList = new ArrayList();

            if (isSplitByExeDept)
            {
                //按照执行科室分组
                exeGroupList = CollectFeeItemListsByExeDeptCode(feeItemLists);
            }
            else
            {
                exeGroupList = feeItemLists;
            }

            //获得是否按照最小分发票,默认不刷新参数,默认值为 false即不按照最小分发票.
            bool isSplitByFeeCode = controlParamIntegrate.GetControlParam <bool>(Neusoft.HISFC.Integrate.Const.IS_SPLIT_INVOICE_BY_FEECODE, false, false);

            ArrayList finalSplitList = new ArrayList();

            if (isSplitByFeeCode)
            {
                foreach (ArrayList groupList in exeGroupList)
                {
                    ArrayList spList = this.SplitInvoiceByFeeCode(register.Pact.PayKind.ID, groupList);

                    foreach (ArrayList list in spList)
                    {
                        finalSplitList.Add(list);
                    }
                }
            }
            else
            {
                finalSplitList = exeGroupList;
            }

            //feeItemLists = new ArrayList();

            foreach (ArrayList list in finalSplitList)
            {
                foreach (FeeItemList f in list)
                {
                    feeItemLists.Add(f);
                }
            }

            return(finalSplitList);
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="registerObj"></param>
        /// <param name="outFeeDetailList"></param>
        /// <returns></returns>
        public int ProcessOutPatientFeeDetail(Neusoft.HISFC.Object.Registration.Register registerObj, ref System.Collections.ArrayList alOutFeeDetail)
        {
            foreach (Neusoft.HISFC.Object.Fee.Outpatient.FeeItemList feeItemList  in alOutFeeDetail)
            {
                int returnValue = this.QueryItem(registerObj, feeItemList);
                switch (returnValue)
                {
                case 0:     //没有维护
                {
                    //不处理

                    break;
                }

                case 1:     //有维护

                {
                    DialogResult d = System.Windows.Forms.MessageBox.Show("该项目在适应症中有维护,是否选择按照适应症收费", "提示", MessageBoxButtons.YesNoCancel);
                    if (d == DialogResult.Cancel)
                    {
                        return(-1);
                    }
                    else
                    {
                        if (d == DialogResult.OK)
                        {
                            //插入本地建的适应症的费用表

                            return(1);
                        }
                        else
                        {
                            //不处理
                        }
                    }
                    break;
                }

                case -1:     //出错
                {
                    break;
                }

                default:
                    break;
                }
            }
            return(1);
        }
        /// <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.Object.RADT.PatientInfo patientInfo, Neusoft.HISFC.Object.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.Object.RADT.PatientInfo             patient  = new Neusoft.HISFC.Object.RADT.PatientInfo();
                Neusoft.HISFC.Integrate.RADT                      pa       = new Neusoft.HISFC.Integrate.RADT();// Neusoft.HISFC.Management.RADT.InPatient();
                Neusoft.HISFC.Integrate.Registration.Registration register = new Neusoft.HISFC.Integrate.Registration.Registration();
                //从住院主表中查旬
                patient = pa.GetPatientInfoByPatientNO(InpatientNO);
                if (patient == null)
                {
                    Neusoft.HISFC.Object.Registration.Register obj = register.GetByClinic(InpatientNO);
                    if (obj == null)
                    {
                        MessageBox.Show("查询病人信息出错");
                        return(-1);
                    }
                    patient           = new Neusoft.HISFC.Object.RADT.PatientInfo();
                    patient.ID        = obj.ID;
                    patient.CaseState = "1";
                }

                if (patient.CaseState == "0")
                {
                    //不允许有病案
                    return(1);
                }
                //定义业务层的类

                Neusoft.HISFC.Management.HealthRecord.Diagnose diag = new Neusoft.HISFC.Management.HealthRecord.Diagnose();
                diagList = new ArrayList();

                if (frmType == Neusoft.HISFC.Object.HealthRecord.EnumServer.frmTypes.DOC) // 医生站录入病历

                {
                    #region  医生站录入病历


                    //目前允许有病历 并且目前没有录入病历  或者标志位位空(默认是允许录入病历)
                    // 医生站录入病例


                    if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2")
                    {
                        //从医生站录入的信息中查询
                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Object.HealthRecord.EnumServer.frmTypes.DOC);
                    }
                    else
                    {
                        // 病案已经封存已经不允许医生修改和查阅
                        return(2);
                    }

                    #endregion
                }
                else if (frmType == Neusoft.HISFC.Object.HealthRecord.EnumServer.frmTypes.CAS)//病案室录入病历

                {
                    #region 病案室录入病历

                    //目前允许有病历 并且目前没有录入病历  或者标志位位空(默认是允许录入病历)
                    if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2")
                    {
                        //医生站已经录入病案

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Object.HealthRecord.EnumServer.frmTypes.DOC);
                    }
                    else if (patient.CaseState == "3")
                    {
                        //病案室已经录入病案

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Object.HealthRecord.EnumServer.frmTypes.CAS);
                    }
                    else if (patient.CaseState == "4")
                    {
                        //病案已经封存 不允许修改。

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Object.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);
            }
        }
 public void SetPatientInfo(Neusoft.HISFC.Object.Registration.Register register)
 {
     this.myRegister = register;
     this.SetPatient();
     this.QueryOrder();
 }
Example #6
0
 /// <summary>
 /// 从适应症表中查找维护的项目
 /// </summary>
 /// <param name="?"></param>
 /// <returns> -1 报错 0 没有维护 1 有维护 </returns>
 private int QueryItem(Neusoft.HISFC.Object.Registration.Register registerObj, Neusoft.HISFC.Object.Fee.Outpatient.FeeItemList feeitemlist)
 {
     return(0);
 }