public ServiceResponseData GetRegItemShowCard() { FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dt = feeitem.GetSimpleFeeItemDataDt(FeeBusinessType.记账业务); responseData.AddData(dt); return(responseData); }
public ServiceResponseData GetShowCardData() { int orderCategory = requestData.GetData <int>(0); FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dtDrugItem = feeitem.GetFeeItemDataDt(FeeBusinessType.医嘱业务); responseData.AddData(dtDrugItem); return(responseData); }
public ServiceResponseData GetExamItemDetailDt() { int examItemID = requestData.GetData <int>(0); FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dtDetailItem = feeitem.GetExamItemDetailDt(examItemID); responseData.AddData(dtDetailItem);//药品项目选项卡数据 return(responseData); }
public ServiceResponseData GetRegItemShowCard() { FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dt = feeitem.GetSimpleFeeItemDataDt(FeeBusinessType.记账业务);// EFWCoreLib.CoreFrame.Common.ConvertExtend.ToDataTable(feeitem.GetSimpleFeeItemData(FeeBusinessType.记账业务)); string regStatID = NewObject <CommonMethod>().GetOpConfig(OpConfigConstant.RegFeeStatID); DataView dv = dt.DefaultView; if (!string.IsNullOrEmpty(regStatID)) { dv.RowFilter = " statid in (" + regStatID + ")"; } responseData.AddData(dv.Table); return(responseData); }
/// <summary> /// 医嘱本身费用 /// </summary> /// <param name="record">医嘱对象</param> /// <param name="dtDrugItem">药品项目数据</param> /// <param name="ipPatlist">病人对象</param> private void GenerateFee(IPD_OrderRecord record, DataTable dtDrugItem, IP_PatList ipPatlist) { if (record.ItemType == 4) { #region 组合项目明细费用生成 FeeItemDataSource feeDataSource = NewObject <FeeItemDataSource>(); DataTable dtDetailItem = feeDataSource.GetExamItemDetailDt(record.ItemID); for (int index = 0; index < dtDetailItem.Rows.Count; index++) { int feeitemId = Convert.ToInt32(dtDetailItem.Rows[index]["ITEMID"]); decimal amount = Convert.ToDecimal(dtDetailItem.Rows[index]["ItemAmount"]); DataRow[] rows = dtDrugItem.Select(" ItemID=" + feeitemId); if (rows.Length < 1) { continue; } IP_FeeItemGenerate feeItem = GenerateRecordFee(amount, 1, record, ipPatlist, rows[0]); feeItem.FeeSource = 1; feeItem.CalCostMode = 0; this.BindDb(feeItem); feeItem.save(); } #endregion } else { #region 医嘱本身费用生成 if (record.ItemID <= 0 || record.StatID == 0 || record.ItemType == 5) { return; } DataRow[] rows = dtDrugItem.Select(" ItemID=" + record.ItemID); if (rows.Length < 1) { return; } IP_FeeItemGenerate feeItem = GenerateRecordFee(record.Amount * record.UnitNO, Convert.ToInt32(record.DoseNum), record, ipPatlist, rows[0]); feeItem.FeeSource = 0; feeItem.CalCostMode = 0; this.BindDb(feeItem); feeItem.save(); #endregion } }
public ServiceResponseData GetDrugItemShowCard() { FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); string obj = NewObject <CommonMethod>().GetOpConfig(OpConfigConstant.HasOpDSystem); //判断是否上医生站,上了医生站不能录入药品和组合项目 if (Convert.ToInt32(obj) == 0) { DataTable dtDrugItem = feeitem.GetSimpleFeeItemDataDt(FeeBusinessType.处方业务); //项目和药品选项卡来源数据 responseData.AddData(dtDrugItem); //药品项目选项卡数据 } else { DataTable dtDrugItem = feeitem.GetSimpleFeeItemDataDt(FeeBusinessType.基础业务); //项目和药品选项卡来源数据 responseData.AddData(dtDrugItem); //药品项目选项卡数据 } return(responseData); }
public ServiceResponseData OrderDataInit() { int orderCategory = requestData.GetData <int>(0); FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dtDrugItem = feeitem.GetFeeItemDataDt(FeeBusinessType.医嘱业务); responseData.AddData(dtDrugItem); List <Basic_Channel> list = NewObject <Basic_Channel>().getlist <Basic_Channel>(" DelFlag=0 and InUsed=1"); responseData.AddData(list); List <Basic_Frequency> listFre = NewObject <Basic_Frequency>().getlist <Basic_Frequency>(" DelFlag=0"); responseData.AddData(listFre); List <Basic_Entrust> listEntrust = NewObject <Basic_Entrust>().getlist <Basic_Entrust>(" DelFlag=0"); responseData.AddData(listEntrust); return(responseData); }
/// <summary> /// 保存医技申请 /// </summary> /// <param name="head">申请头实体</param> /// <param name="itemData">项目数据</param> /// <param name="dt">明细数据</param> /// <returns>申请头id</returns> public int SaveMedicalApply(EXA_MedicalApplyHead head, DataTable itemData, DataTable dt) { DataRow dr = null; head.Remark = GetItemName(itemData); DeleteData(itemData, dt); if (dt != null) { head.ApplyHeadID = Convert.ToInt32(dt.Rows[0]["ApplyHeadID"].ToString()); } this.BindDb(head); head.save(); int headid = head.ApplyHeadID; OPD_PresHead presHead = new OPD_PresHead(); if (head.SystemType == 0) { if (dt != null) { presHead.PresHeadID = Convert.ToInt32(dt.Rows[0]["PresHeadID"].ToString()); } presHead.MemberID = head.MemberID; presHead.PatListID = head.PatListID; presHead.PresType = 4; BindDb(presHead); int presheadid = presHead.save(); NewObject <PrescriptionProcess>().UpdatePatCurrentDoctorID(head.PatListID, head.ApplyDoctorID, head.ApplyDeptID); } for (int i = 0; i < itemData.Rows.Count; i++) { dr = NewDao <IOPDDao>().GetPresNO().Rows[0]; int predetailid = 0; OPD_PresDetail presdetail = new OPD_PresDetail(); IPD_OrderRecord orderRecord = new IPD_OrderRecord(); DataRow detaildr = null; DataTable orderdt = NewDao <IOPDDao>().GetStatID(itemData.Rows[i]["ExamItemID"].ToString()); if (dt != null) { detaildr = dt.Select("ItemID=" + Convert.ToInt32(itemData.Rows[i]["ExamItemID"].ToString())).FirstOrDefault(); } if (head.SystemType == 0) { if (detaildr != null) { presdetail.PresDetailID = Convert.ToInt32(detaildr["PresDetailID"]); } if (head.ApplyType == 2) { presdetail.Price = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()) * Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); presdetail.ChargeAmount = Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); presdetail.PresAmount = Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); } else { presdetail.Price = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()); presdetail.ChargeAmount = 1; presdetail.PresAmount = 1; } presdetail.DoseNum = 1; presdetail.PresHeadID = presHead.PresHeadID; presdetail.ItemID = Convert.ToInt32(itemData.Rows[i]["ExamItemID"].ToString()); presdetail.ItemName = itemData.Rows[i]["ExamItemName"].ToString(); presdetail.ExecDeptID = head.ExecuteDeptID; presdetail.StatID = Convert.ToInt32(orderdt.Rows[0]["StatID"]); if (dr != null) { if (dr["PresNO"] == null || dr["PresNO"].ToString() == string.Empty) { presdetail.PresNO = 1; } else { presdetail.PresNO = Convert.ToInt32(dr["PresNO"]) + 1; } } presdetail.IsEmergency = 0; presdetail.IsLunacyPosion = 0; presdetail.PresDate = head.ApplyDate; presdetail.PresDeptID = head.ApplyDeptID; presdetail.PresDoctorID = head.ApplyDoctorID; BindDb(presdetail); predetailid = presdetail.save(); if (presdetail.PresDetailID > 0) { predetailid = presdetail.PresDetailID; } } else { if (detaildr != null) { orderRecord.OrderID = Convert.ToInt32(detaildr["PresDetailID"]); } DataTable ipPatlist = NewDao <IOPDDao>().GetInBedPatient(head.PatListID); SerialNumberSource serialNumberSource = NewObject <SerialNumberSource>(); string groupID = serialNumberSource.GetSerialNumber(SnType.医嘱组号); orderRecord.GroupID = Convert.ToInt32(groupID); orderRecord.ExecDeptID = head.ExecuteDeptID; orderRecord.OrderCategory = 1; orderRecord.CancelFlag = 0; orderRecord.DeleteFlag = 0; orderRecord.AstFlag = -1; orderRecord.DoseNum = 1; orderRecord.Dosage = 1; // orderRecord.DosageUnit = itemData.Rows[i][""].ToString(); orderRecord.OrderStatus = 1; orderRecord.PatDeptID = Convert.ToInt32(ipPatlist.Rows[0]["CurrDeptID"]); orderRecord.WardID = Convert.ToInt32(ipPatlist.Rows[0]["EnterWardID"]); orderRecord.StatID = Convert.ToInt32(orderdt.Rows[0]["StatID"]); orderRecord.ItemID = Convert.ToInt32(itemData.Rows[i]["ExamItemID"].ToString()); orderRecord.PresDeptID = head.ApplyDeptID; orderRecord.OrderDoc = head.ApplyDoctorID; orderRecord.ItemName = itemData.Rows[i]["ExamItemName"].ToString(); orderRecord.Amount = Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); orderRecord.OrderBdate = head.CheckDate; //DateTime.Now; 20170418改成检查时间 if (head.ApplyType == 2) { orderRecord.ItemPrice = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()) * Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); } else { orderRecord.ItemPrice = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()); } orderRecord.ItemType = 4; orderRecord.PatListID = head.PatListID; BindDb(orderRecord); predetailid = orderRecord.save(); //插入费用明细 FeeItemDataSource feeDataSource = NewObject <FeeItemDataSource>(); DataTable dtDetailItem = feeDataSource.GetExamItemDetailDt(orderRecord.ItemID); for (int index = 0; index < dtDetailItem.Rows.Count; index++) { int feeitemId = Convert.ToInt32(dtDetailItem.Rows[index]["ITEMID"]); DataTable dtDrugItem = NewDao <IOPDDao>().GetFeeItemData(feeitemId); decimal amount = Convert.ToDecimal(dtDetailItem.Rows[index]["ItemAmount"]); DataRow[] rows = dtDrugItem.Select(" ItemID=" + feeitemId); if (rows.Length < 1) { continue; } IP_FeeItemGenerate feeItem = GenerateRecordFee(amount, 1, orderRecord, ipPatlist, rows[0]); feeItem.FeeSource = 1; feeItem.CalCostMode = 0; this.BindDb(feeItem); feeItem.save(); } } EXA_MedicalApplyDetail detail = new EXA_MedicalApplyDetail(); if (detaildr != null) { detail.ApplyDetailID = Convert.ToInt32(detaildr["ApplyDetailID"]); } detail.SystemType = head.SystemType; detail.PresDetailID = predetailid; detail.ApplyHeadID = head.ApplyHeadID; detail.ItemID = Convert.ToInt32(itemData.Rows[i]["ExamItemID"].ToString()); detail.ItemName = itemData.Rows[i]["ExamItemName"].ToString(); detail.Price = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()); if (head.ApplyType == 2) { detail.Amount = Convert.ToInt32(itemData.Rows[i]["Amount"].ToString()); detail.TotalFee = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()) * detail.Amount; } else { detail.Amount = 1; detail.TotalFee = Convert.ToDecimal(itemData.Rows[i]["Price"].ToString()); } BindDb(detail); detail.save(); } return(headid); }
/// <summary> /// 医嘱保存 /// </summary> /// <param name="records">医嘱数据</param> public void SaveRecords(List <IPD_OrderRecord> records) { IP_PatList ipPatlist = NewObject <IP_PatList>().getmodel(records[0].PatListID) as IP_PatList; if (ipPatlist.Status != 2 || ipPatlist.IsLeaveHosOrder == 1) { throw new Exception("病人已经出院,不能再保存医嘱"); } //判断病人是否存在未完成的转科医嘱 List <IPD_TransDept> trans = NewObject <IPD_TransDept>().getlist <IPD_TransDept>(" Patlistid=" + records[0].PatListID + " and CancelFlag=0 and FinishFlag=0"); if (trans != null && trans.Count > 0) { throw new Exception("病人已转科,不能再保存医嘱"); } FeeItemDataSource feeitem = NewObject <FeeItemDataSource>(); DataTable dtDrugItem = feeitem.GetFeeItemDataDt(FeeBusinessType.医嘱业务); List <int> groupIDs = new List <int>(); groupIDs.Add(records[0].GroupID); for (int i = 1; i < records.Count; i++) { if (records[i].GroupID != records[i - 1].GroupID) { groupIDs.Add(records[i].GroupID); } } for (int i = 0; i < records.Count; i++) { if (records[i].OrderID > 0) { //原来存在费用,原来一组费用删除,重新生成 List <IP_FeeItemGenerate> feeItems = NewObject <IP_FeeItemGenerate>().getlist <IP_FeeItemGenerate>(" GroupId=" + records[i].GroupID + " and orderid=" + records[i].OrderID); if (feeItems.Count > 0) { foreach (IP_FeeItemGenerate fee in feeItems) { this.BindDb(fee); fee.delete(); } } } } for (int i = 0; i < groupIDs.Count; i++) { int groupid = groupIDs[i]; List <IPD_OrderRecord> sameGroupRecord = records.Where(p => p.GroupID == groupid).ToList(); #region 如果已经转抄,就不能修改 按组转抄,只要判断一条医嘱就可 if (sameGroupRecord[0].OrderStatus <= 1 && sameGroupRecord[0].OrderID > 0) { IPD_OrderRecord newRecord = NewObject <IPD_OrderRecord>().getmodel(sameGroupRecord[0].OrderID) as IPD_OrderRecord; if (newRecord.OrderStatus > 1) { //如果已经转抄,就不能修改 break; } } #endregion //原来存在费用,原来一组费用删除,重新生成 //List<IP_FeeItemGenerate> feeItems = NewObject<IP_FeeItemGenerate>().getlist<IP_FeeItemGenerate>(" GroupID=" + groupid ); //if (feeItems.Count > 0) //{ // foreach (IP_FeeItemGenerate fee in feeItems) // { // this.BindDb(fee); // fee.delete(); // } //} foreach (IPD_OrderRecord record in sameGroupRecord) { #region 医嘱保存 if (record.OrderStatus <= 1 && record.ItemName != string.Empty) { record.PatDeptID = ipPatlist.CurrDeptID; record.WardID = ipPatlist.CurrWardID; this.BindDb(record); record.save(); } #endregion GenerateFee(record, dtDrugItem, ipPatlist); if (record.AstFlag == 0) { //需要皮试,保存时增加皮试医嘱 InsertPSYZ(dtDrugItem, record, ipPatlist); } } if (sameGroupRecord[0].ChannelID == 0) { continue; } #region 用法关联费用明细生成 GenerateChannelFee(sameGroupRecord[0], dtDrugItem, ipPatlist); #endregion } }