Exemple #1
0
        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;
            }
        }
Exemple #2
0
        /// <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>
        /// 向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="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);
            }
        }