コード例 #1
0
        /// <summary>
        /// 构造发药单表头
        /// </summary>
        /// <param name="obj">处方头</param>
        /// <param name="deptId">药剂科室ID</param>
        /// <param name="dispenserId">发药人员ID</param>
        /// <returns>发药单表头</returns>
        public override YP_DRMaster BuildNewDispenseMaster(object obj, int deptId, int dispenserId)
        {
            HIS.Interface.Structs.Prescription pres = (HIS.Interface.Structs.Prescription)obj;
            YP_DRMaster dispMaster = new YP_DRMaster();

            dispMaster.Charge_Flag = 1;
            dispMaster.DeptID      = deptId;
            dispMaster.ChargeMan   = Convert.ToInt32(pres.ChargeCode);
            dispMaster.DeptID      = deptId;
            if (pres.PresDocCode != "")
            {
                dispMaster.DocID = Convert.ToInt32(pres.PresDocCode);
            }
            else
            {
                dispMaster.DocID = 0;
            }
            dispMaster.DosageMan   = 0;
            dispMaster.DrugOC_Flag = 1;
            dispMaster.InpatientID = "";
            dispMaster.InvoiceNum  = Convert.ToInt32(pres.TicketNum);
            dispMaster.OPPeopleID  = dispenserId;
            dispMaster.OPTime      = XcDate.ServerDateTime;
            dispMaster.OpType      = ConfigManager.OP_YF_DISPENSE;
            dispMaster.PatientID   = pres.RegisterID;
            dispMaster.PatientName = pres.PatientName;
            dispMaster.PatientNo   = "";
            dispMaster.ReceiptCode = pres.ChargeID;
            dispMaster.RecipeID    = pres.PrescriptionID;
            dispMaster.RecipeNum   = Convert.ToInt32(pres.presAmount);
            dispMaster.RetailFee   = 0;
            return(dispMaster);
        }
コード例 #2
0
        /// <summary>
        /// 获取病人未收费处方明细
        /// </summary>
        /// <param name="patListId">门诊病人就诊Id</param>
        /// <returns>门诊收费处方结构体组</returns>
        public HIS.Interface.Structs.Prescription[] GetPrescriptions(int patListId)
        {
            int    presNo            = 0;
            string strsql            = "";
            bool   isControlSkinTest = OP_ReadBaseData.GetConfigValue("003").Trim() == "1"; //系统参数:是否控制未皮试和皮试阳性的药品不能收费
            //获取处方头列表信息 update 王志 2010-03-11 导致收完费的处方还能收费
            //List<PresHead> presHeads = new PresHead(patListId).GetNormalPresHeadList();
            List <PresHead> presHeads = new PresHead((long)patListId, 0).GetNoChangePresHeadList();

            //定义收费处方结构体
            HIS.Interface.Structs.Prescription[] prescriptions = new HIS.Interface.Structs.Prescription[presHeads.Count];
            for (int i = 0; i < presHeads.Count; i++)
            {
                //获取处方明细信息
                if (presHeads[i].PresType.Trim() == "00")
                {
                    strsql = HIS.BLL.Tables.mz_doc_preslist.PRESHEADID + oleDb.EuqalTo() + presHeads[i].PresHeadId
                             + oleDb.And() + HIS.BLL.Tables.mz_doc_preslist.DELETE_BIT + oleDb.EuqalTo() + 0
                             + oleDb.OrderBy(HIS.BLL.Tables.mz_doc_preslist.ORDERNO);
                }
                else
                {
                    strsql = HIS.BLL.Tables.mz_doc_preslist.PRESHEADID + oleDb.EuqalTo() + presHeads[i].PresHeadId
                             + oleDb.And() + HIS.BLL.Tables.mz_doc_preslist.DELETE_BIT + oleDb.EuqalTo() + 0
                             + oleDb.And() + HIS.BLL.Tables.mz_doc_preslist.SELFDRUG_FLAG + oleDb.EuqalTo() + 0
                             + oleDb.OrderBy(HIS.BLL.Tables.mz_doc_preslist.ORDERNO);
                }
                List <HIS.Model.Mz_Doc_PresList> presList = BindEntity <HIS.Model.Mz_Doc_PresList> .CreateInstanceDAL(oleDb).GetListArray(strsql);

                if (presList.Count > 0)
                {
                    DataRow[] rows = null;
                    if (isControlSkinTest)
                    {
                        rows = Public.Function.ListToDataTable(presList, new HIS.Model.Mz_Doc_PresList()).Select("SkinTest_Flag = 1 or SkinTest_Flag = 3");
                    }
                    if (rows != null && rows.Length > 0)
                    {
                        continue;
                    }
                    #region 读取处方头
                    prescriptions[presNo]                = new HIS.Interface.Structs.Prescription();
                    prescriptions[presNo].Charge_Flag    = 0;
                    prescriptions[presNo].ChargeCode     = "";
                    prescriptions[presNo].ChargeID       = 0;
                    prescriptions[presNo].Drug_Flag      = presHeads[i].PresType == "00" ? 0 : 1;
                    prescriptions[presNo].ExecDeptCode   = presHeads[i].Pres_ExeDept.ToString();
                    prescriptions[presNo].ExecDocCode    = "";
                    prescriptions[presNo].OldPresID      = 0;
                    prescriptions[presNo].PresCostCode   = presHeads[i].Pres_Doc.ToString();
                    prescriptions[presNo].PrescriptionID = presHeads[i].PresHeadId;
                    prescriptions[presNo].PrescType      = presHeads[i].PresType == "00" ? "-1" : Convert.ToInt32(presHeads[i].PresType).ToString();
                    prescriptions[presNo].PresDeptCode   = presHeads[i].Pres_Dept.ToString();
                    prescriptions[presNo].PresDocCode    = presHeads[i].Pres_Doc.ToString();
                    prescriptions[presNo].Record_Flag    = 0;
                    prescriptions[presNo].TicketCode     = "";
                    prescriptions[presNo].TicketNum      = "";
                    prescriptions[presNo].Total_Fee      = 0;
                    //prescriptions[presNo].VisitNo = "";
                    #endregion

                    //定义收费处方明细结构体
                    HIS.Interface.Structs.PrescriptionDetail[] details = new HIS.Interface.Structs.PrescriptionDetail[presList.Count];
                    for (int j = 0; j < presList.Count; j++)
                    {
                        #region 读取处方明细
                        details[j]             = new HIS.Interface.Structs.PrescriptionDetail();
                        details[j].Amount      = presList[j].Item_Amount * presList[j].RelationNum / presList[j].Item_Rate;
                        details[j].BigitemCode = presList[j].StatItem_Code;
                        details[j].Buy_price   = presList[j].Buy_Price;
                        details[j].ComplexId   = presList[j].Tc_Flag == 1 ? presList[j].Service_Item_Id : 0;
                        details[j].DetailId    = presList[j].PresListId;
                        details[j].ItemId      = presList[j].Service_Item_Id;
                        details[j].Itemname    = presList[j].Item_Name;
                        details[j].ItemType    = (presList[j].StatItem_Code == "01" || presList[j].StatItem_Code == "02" || presList[j].StatItem_Code == "03") ? presList[j].StatItem_Code : "00";
                        details[j].Order_Flag  = presList[j].OrderNo;
                        details[j].PassId      = 0;
                        details[j].PresAmount  = presList[j].Dosage;
                        details[j].PresctionId = presHeads[i].PresHeadId;
                        details[j].RelationNum = presList[j].RelationNum;
                        details[j].Sell_price  = presList[j].Sell_Price;
                        details[j].Standard    = presList[j].Standard;
                        details[j].Tolal_Fee   = presList[j].Item_Amount * presList[j].Item_Price * presList[j].Dosage;
                        details[j].Unit        = presList[j].Unit;
                        details[j].Drug_Flag   = (presList[j].StatItem_Code == "01" || presList[j].StatItem_Code == "02" || presList[j].StatItem_Code == "03") ? 1 : 0;

                        prescriptions[presNo].Total_Fee += details[j].Tolal_Fee;
                        #endregion
                    }
                    prescriptions[presNo].PresDetails = details;

                    presNo++;
                }
            }
            //定义返回的处方结构体
            //取有效处方记录
            HIS.Interface.Structs.Prescription[] returnPres = new HIS.Interface.Structs.Prescription[presNo];
            {
                for (int i = 0; i < presNo; i++)
                {
                    returnPres[i] = prescriptions[i];
                }
            }
            return(returnPres);
        }