public void SaveExam(EXA_MedicalApplyHead head, DataTable dt) { try { if (frmMedicalApplys.SaveItemData != null && frmMedicalApplys.SaveItemData.Rows.Count > 0) { //不能取当前登录科室ID head.ApplyDeptID = DeptId;// LoginUserInfo.DeptId; head.SystemType = SystemType; head.PatListID = PatListID; head.MemberID = MemberID; head.ApplyDoctorID = LoginUserInfo.EmpId; var retdata = InvokeWcfService( "OPProject.Service", "MedicalApplyController", "SaveExam", (request) => { request.AddData(head); request.AddData(LoginUserInfo.WorkId); request.AddData(frmMedicalApplys.SaveItemData); if (dt != null) { request.AddData(dt); } else { request.AddData(new DataTable()); } }); var result = retdata.GetData <int>(0); if (result > 0) { MessageBoxShowSimple("提交成功"); switch (SystemType) { case 0: InvokeController("OPProject.UI", "PresManageController", "GetApplyHead", SystemType); break; case 1: InvokeController("IPProject.UI", "OrderManagerController", "GetApplyHead", SystemType); break; } if (string.IsNullOrEmpty(frmMedicalApplys.ApplyHeadID)) { frmMedicalApplys.ApplyHeadID = result.ToString(); } GetHeadDetail(); } else if (result == -1) { MessageBoxEx.Show(retdata.GetData <string>(1)); } } else { MessageBoxEx.Show("请至少添加一个项目"); } } catch (Exception e) { MessageBoxEx.Show(e.Message); } }
/// <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="sender">控件对象</param> /// <param name="e">事件参数</param> private void btnSubmit_Click(object sender, EventArgs e) { if (!IsExcute()) { MessageBoxEx.Show("申请单已收费或确费不能修改"); return; } var cbDepts = GetDeptObj(); var cbTypes = GetTypeObj(); var cbPrints = GetPrintObj(); var dgExecItems = GetExamTableObj(); if (cbDepts.SelectedValue == null) { MessageBoxEx.Show("请选择科室"); return; } if (cbTypes.SelectedValue == null) { MessageBoxEx.Show("请选择项目类型"); return; } if (ExamClass == 2) { if (string.IsNullOrEmpty(multcbSample.SelectText))//cbSample.Text { MessageBoxEx.Show("请选择检验标本"); return; } } switch (ExamClass) { case 1: if (string.IsNullOrEmpty(dateTimeCheck.Text)) { MessageBox.Show("检查时间不能为空!"); return; } else { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(dateTimeCheck.Text).ToShortDateString()), Convert.ToDateTime(DateTime.Now.ToShortDateString())) < 0) { MessageBox.Show("检查时间不能小于当前时间!"); return; } } break; case 2: if (string.IsNullOrEmpty(datetimeHY.Text)) { MessageBox.Show("检查时间不能为空!"); return; } else { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(datetimeHY.Text).ToShortDateString()), Convert.ToDateTime(DateTime.Now.ToShortDateString())) < 0) { MessageBox.Show("检查时间不能小于当前时间!"); return; } } break; case 4: if (string.IsNullOrEmpty(dateTimeZL.Text)) { MessageBox.Show("检查时间不能为空!"); return; } else { if (DateTime.Compare(Convert.ToDateTime(Convert.ToDateTime(dateTimeZL.Text).ToShortDateString()), Convert.ToDateTime(DateTime.Now.ToShortDateString())) < 0) { MessageBox.Show("检查时间不能小于当前时间!"); return; } } break; } SaveItemData = dgExecItems.DataSource as DataTable; EXA_MedicalApplyHead head = new EXA_MedicalApplyHead(); string content = string.Empty; switch (ExamClass) { case 1: content = "{\"Digest\":\"" + txtDigest.Text + "\",\"Signs\":\"" + txtSigns.Text + "\",\"Xray\":\"" + txtXray.Text + "\",\"Assay\":\"" + txtAssay.Text + "\",\"Assist\":\"" + txtAssist.Text + "\",\"Part\":\"" + txtPart.Text + "\"}"; head.ApplyType = 0; ApplyType = "0"; head.CheckDate = Convert.ToDateTime(dateTimeCheck.Text); break; case 2: //cbSample.SelectedValue cbSample.Text content = "{\"Goal\":\"" + txtGoal.Text + "\",\"Sample\":\"" + string.Join(",", multcbSample.SelectValue) + "\",\"SampleName\":\"" + multcbSample.SelectText + "\"}"; head.ApplyType = 1; ApplyType = "1"; head.CheckDate = Convert.ToDateTime(datetimeHY.Text); break; case 4: head.ApplyType = 2; ApplyType = "2"; dgExecItemZL.EndEdit(); head.CheckDate = Convert.ToDateTime(dateTimeZL.Text); break; } head.ApplyContent = content; head.ApplyDate = DateTime.Now; head.ExamTypeID = Convert.ToInt32(cbTypes.SelectedValue); head.ExecuteDeptID = Convert.ToInt32(cbDepts.SelectedValue); InvokeController("SaveExam", head, UpdateData); SaveClearData(); if (cbPrints.Checked) { if (UpdateData != null) { InvokeController("PrintData", UpdateData); } else { MessageBoxEx.Show("没有可以打印的数据"); } } ApplyHeadID = string.Empty; UpdateData = null; }