public void m_SaveTheNew() { //输入验证 if (!m_booInputValidate()) { return; } //给clsT_bse_bih_orderdic_VO赋值 clsT_aid_bih_ordergroup_VO dtResult = new clsT_aid_bih_ordergroup_VO(); ArrayList m_arrGroupVo; TextBoxToVo(out dtResult); BingTheOrderVO(out m_arrGroupVo); SetTheGroupDetailParent(ref m_arrGroupVo); clsT_aid_bih_ordergroup_detail_VO[] m_objGroupVoList = null; if (m_arrGroupVo.Count > 0) { m_objGroupVoList = new clsT_aid_bih_ordergroup_detail_VO[m_arrGroupVo.Count]; for (int i = 0; i < m_arrGroupVo.Count; i++) { m_objGroupVoList[i] = (clsT_aid_bih_ordergroup_detail_VO)m_arrGroupVo[i]; } } else { MessageBox.Show(m_objViewer, "请选择组套明细记录!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string[] strArr = null; strArr = new string[0]; //诊疗项目-收费项目映射 long lngRes = m_objDoctorAdvice.m_lngSaveOrderGroupDetailNew(dtResult, m_objGroupVoList); //报告结果 if (lngRes > 0) { if (MessageBox.Show(m_objViewer, "保存成功!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.Yes) { m_objViewer.Close(); } this.m_objViewer.Close(); //m_strGroupID = dtResult.m_strGROUPID_CHR; //m_strGroupName = dtResult.m_strNAME_CHR; //m_LoadDataInfo(); // m_Find(); } else { MessageBox.Show(m_objViewer, "添加失败!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void BingTheOrderVO(out ArrayList m_arrGroupVo) { m_arrGroupVo = new ArrayList(); for (int i = 0; i < this.m_objViewer.m_dtvOrderGroup.RowCount; i++) { if (this.m_objViewer.m_dtvOrderGroup.Rows[i].Cells["dtv_check"].Value.ToString().Trim().Equals("1")) { clsT_aid_bih_ordergroup_detail_VO m_objGroupVo = new clsT_aid_bih_ordergroup_detail_VO(); clsBIHOrder bihorder = (clsBIHOrder)this.m_objViewer.m_dtvOrderGroup.Rows[i].Tag; #region 填充值 m_objGroupVo.m_fltDOSAGE_DEC = (float)bihorder.m_dmlDosage; m_objGroupVo.m_fltGET_DEC = (float)bihorder.m_dmlGet; m_objGroupVo.m_fltUSE_DEC = (float)bihorder.m_dmlUse; m_objGroupVo.m_intATTACHTIMES_INT = bihorder.m_intATTACHTIMES_INT; m_objGroupVo.m_intEXECUTETYPE_INT = bihorder.m_intExecuteType; //m_objGroupVo.m_intIFPARENTID_INT=0; m_objGroupVo.m_intISRICH_INT = bihorder.m_intIsRich; m_objGroupVo.m_intOUTGETMEDDAYS_INT = bihorder.m_intOUTGETMEDDAYS_INT; m_objGroupVo.m_strDETAILID_CHR = ""; m_objGroupVo.m_strDOSAGEUNIT_CHR = bihorder.m_strDosageUnit; m_objGroupVo.m_strDOSETYPE_CHR = bihorder.m_strDosetypeID; m_objGroupVo.m_strDosetypeName = bihorder.m_strDosetypeName; m_objGroupVo.m_strENTRUST_VCHR = bihorder.m_strEntrust; m_objGroupVo.m_strFREQID_CHR = bihorder.m_strExecFreqID; m_objGroupVo.m_strFreqName = bihorder.m_strExecFreqName; m_objGroupVo.m_strGETUNIT_CHR = bihorder.m_strGetunit; m_objGroupVo.m_strGROUPID_CHR = bihorder.m_strOrderID;//借用保存医嘱号(用于组套父子判断) m_objGroupVo.m_strGroupName = ""; m_objGroupVo.m_strORDERDICID_CHR = bihorder.m_strOrderDicID; m_objGroupVo.m_strOrderdicName = bihorder.m_strName; //m_objGroupVo.m_strPARENTID_CHR = bihorder.m_strParentID; //m_objGroupVo.m_strParentName = ""; m_objGroupVo.m_strUSEUNIT_CHR = bihorder.m_strUseunit; m_objGroupVo.m_strSAMPLEID_VCHR = bihorder.m_strSAMPLEID_VCHR; m_objGroupVo.m_strPARTID_VCHR = bihorder.m_strPARTID_VCHR; m_objGroupVo.m_intRecipenNo = bihorder.m_intRecipenNo; m_objGroupVo.RateType = bihorder.RateType; m_objGroupVo.m_intISNEEDFEEL = bihorder.m_intISNEEDFEEL; m_objGroupVo.m_dmlOneUse = bihorder.m_dmlOneUse; #endregion m_arrGroupVo.Add(m_objGroupVo); } } }
/// <summary> /// 绑定项目列表数据 /// </summary> private void ListViewbind(string m_strGroupID) { m_objViewer.m_dtvGroupDetail.Rows.Clear(); DataView myDataView = new DataView(m_dtOrderGroupDetail); clsT_aid_bih_ordergroup_detail_VO[] m_arrObjItem; GetGroupDetailData(myDataView, out m_arrObjItem); for (int i = 0; i < m_arrObjItem.Length; i++) { clsT_aid_bih_ordergroup_detail_VO m_ObjItem = (clsT_aid_bih_ordergroup_detail_VO)m_arrObjItem[i]; //医嘱类型 clsT_aid_bih_ordercate_VO p_objItem = (clsT_aid_bih_ordercate_VO)this.m_objViewer.m_htOrderCate[m_ObjItem.m_strOrderDicCateID]; //转换对象 //借用保存流水号 clsBIHOrder order = new clsBIHOrder(); order.m_strOrderID = m_ObjItem.m_strDETAILID_CHR; order.m_strOrderDicID = m_ObjItem.m_strORDERDICID_CHR; order.m_strOrderDicCateID = m_ObjItem.m_strOrderDicCateID; order.m_strOrderDicCateName = m_ObjItem.m_strOrderDicCateName; order.m_strRegisterID = null; order.m_intRecipenNo = m_ObjItem.m_intRecipenNo; if (p_objItem != null && p_objItem.m_strVIEWNAME_VCHR.Trim().Equals("文字医嘱"))//文字医嘱时显示项目名,其它类的显示诊疗项目名 { //项目名称 order.m_strName = m_ObjItem.m_strOrderName; } else { order.m_strName = m_ObjItem.m_strOrderdicName; } order.m_strSpec = m_ObjItem.m_strItemspec_vchr; order.m_strExecFreqID = m_ObjItem.m_strFREQID_CHR; order.m_strExecFreqName = m_ObjItem.m_strExecFreqName; order.m_dmlDosage = decimal.Parse(m_ObjItem.m_fltDOSAGE_DEC.ToString()); order.m_strDosageUnit = m_ObjItem.m_strDOSAGEUNIT_CHR; order.m_dmlGet = decimal.Parse(m_ObjItem.m_fltGET_DEC.ToString()); order.m_strGetunit = m_ObjItem.m_strGETUNIT_CHR; order.m_dmlUse = decimal.Parse(m_ObjItem.m_fltUSE_DEC.ToString()); order.m_strUseunit = m_ObjItem.m_strUSEUNIT_CHR; order.m_dmlDosageRate = order.m_dmlUse; order.m_strDosetypeID = m_ObjItem.m_strDOSETYPE_CHR; order.m_strDosetypeName = m_ObjItem.m_strDosetypeName; order.m_strEntrust = m_ObjItem.m_strENTRUST_VCHR; order.m_dmlPrice = m_ObjItem.m_dmlPrice; order.m_intIsRich = m_ObjItem.m_intISRICH_INT; order.RateType = m_ObjItem.RateType; order.m_strSAMPLEID_VCHR = m_ObjItem.m_strSAMPLEID_VCHR; order.m_strPARTID_VCHR = m_ObjItem.m_strPARTID_VCHR; order.m_intExecuteType = m_ObjItem.m_intEXECUTETYPE_INT; order.m_intOUTGETMEDDAYS_INT = m_ObjItem.m_intOUTGETMEDDAYS_INT; order.m_intATTACHTIMES_INT = m_ObjItem.m_intATTACHTIMES_INT; order.m_strSAMPLEID_VCHR = m_ObjItem.m_strSAMPLEID_VCHR; order.m_strSAMPLEName_VCHR = m_ObjItem.m_strSAMPLEName_VCHR; order.m_strPARTID_VCHR = m_ObjItem.m_strPARTID_VCHR; order.m_strPARTNAME_VCHR = m_ObjItem.m_strPARTNAME_VCHR; order.m_intISNEEDFEEL = m_ObjItem.m_intISNEEDFEEL; order.m_dmlOneUse = m_ObjItem.m_dmlOneUse; // 把当前组套id存入医嘱项目中 order.m_strGroupId = m_strGroupID.Trim(); // 判断当前医嘱是否为父医嘱 order.m_intIFPARENTID_INT = m_ObjItem.m_intIFPARENTID_INT; order.m_intIPCHARGEFLG_INT = m_ObjItem.m_intIPCHARGEFLG_INT; order.m_dmlPACKQTY_DEC = m_ObjItem.m_dmlPACKQTY_DEC; if (this.m_objViewer.m_strOrderCateList.Contains(m_ObjItem.m_strOrderDicCateID.ToString().Trim())) { continue; } if (order.m_strName.Trim().Equals("")) { continue; } m_objViewer.m_dtvGroupDetail.Rows.Add(); DataGridViewRow objRow = m_objViewer.m_dtvGroupDetail.Rows[this.m_objViewer.m_dtvGroupDetail.RowCount - 1]; objRow.Cells["dtv_Check"].Tag = "1"; if (this.m_objViewer.m_blDeableMedControl == false)//缺药的项目是否可以录入0-不可以false,1-可以true { if (m_ObjItem.m_intIPNOQTYFLAG_INT == 1) { objRow.Cells["dtv_Check"].Tag = "0"; objRow.DefaultCellStyle.ForeColor = System.Drawing.Color.Red; } } if (this.m_objViewer.m_blStopControl == false)//停用项目是否可录入开关 { if (m_ObjItem.m_intOrderDicStop == 0) { objRow.Cells["dtv_Check"].Tag = "0"; objRow.DefaultCellStyle.ForeColor = System.Drawing.Color.Gray; } } //选择 if (this.m_objViewer.ra_selectAll.Checked && objRow.Cells["dtv_Check"].Tag.ToString() != "0") { objRow.Cells["dtv_Check"].Value = "1"; } else { objRow.Cells["dtv_Check"].Value = "0"; } //序 objRow.Cells["dtv_DetalNo"].Value = i + 1; //方 objRow.Cells["dtv_RecipeNo"].Value = m_ObjItem.m_intRecipenNo.ToString(); // 药品来源: 0 药房(全计费,摆药); 1 患者自备(只收费用法加收项目,不摆药); 2 科室基数(全计费,不摆药) switch (m_ObjItem.RateType) { case 0: objRow.Cells["RATETYPE_INT"].Value = "药房"; break; case 1: objRow.Cells["RATETYPE_INT"].Value = "自备"; break; case 2: objRow.Cells["RATETYPE_INT"].Value = "基数"; break; default: break; } //类型 if (m_ObjItem.m_intEXECUTETYPE_INT == 1) { objRow.Cells["dtv_ExecuteType"].Value = "长期"; } else if (m_ObjItem.m_intEXECUTETYPE_INT == 2) { objRow.Cells["dtv_ExecuteType"].Value = "临时"; } else if (m_ObjItem.m_intEXECUTETYPE_INT == 3) { objRow.Cells["dtv_ExecuteType"].Value = "出院带药"; } else { objRow.Cells["dtv_ExecuteType"].Value = ""; } //医保 objRow.Cells["MedicareTypeName"].Value = m_ObjItem.m_strMedicareTypeName; //项目名称 objRow.Cells["dtv_Name"].Value = m_ObjItem.m_strOrderdicName; if (p_objItem != null && !p_objItem.m_strVIEWNAME_VCHR.Trim().Equals("文字医嘱")) { //“方法”列。用于显示检验医嘱的样本类型,和检查医嘱的部位信息 if (!m_ObjItem.m_strPARTID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = m_ObjItem.m_strPARTNAME_VCHR; } else if (!m_ObjItem.m_strSAMPLEID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = m_ObjItem.m_strSAMPLEName_VCHR; } //用量 objRow.Cells["dtv_Dosage"].Value = m_ObjItem.m_fltDOSAGE_DEC + m_ObjItem.m_strDOSAGEUNIT_CHR; //用法 objRow.Cells["dtv_UseType"].Value = m_ObjItem.m_strDosetypeName; //频率 objRow.Cells["dtv_Freq"].Value = m_ObjItem.m_strExecFreqName; //数量 if (m_ObjItem.m_fltGET_DEC > 0) { objRow.Cells["dtv_Get"].Value = m_ObjItem.m_fltGET_DEC + m_ObjItem.m_strGETUNIT_CHR; } else { objRow.Cells["dtv_Get"].Value = ""; } //总量 N天共M片。N-表示出院带药的天数,M-表示出院带药合计的数量 if (m_ObjItem.m_intEXECUTETYPE_INT == 3) { objRow.Cells["dtv_sum"].Value = m_ObjItem.m_intOUTGETMEDDAYS_INT.ToString() + "天共" + Convert.ToString(m_ObjItem.m_fltGET_DEC * m_ObjItem.m_intOUTGETMEDDAYS_INT) + m_ObjItem.m_strGETUNIT_CHR; } else { objRow.Cells["dtv_sum"].Value = ""; } //补次 objRow.Cells["ATTACHTIMES_INT"].Value = m_ObjItem.m_intATTACHTIMES_INT; //嘱托 objRow.Cells["dtv_ENTRUST"].Value = m_ObjItem.m_strENTRUST_VCHR; } else { //“方法”列。用于显示检验医嘱的样本类型,和检查医嘱的部位信息 objRow.Cells["dtv_method"].Value = ""; //用量 objRow.Cells["dtv_Dosage"].Value = ""; //用法 objRow.Cells["dtv_UseType"].Value = ""; //频率 objRow.Cells["dtv_Freq"].Value = ""; objRow.Cells["dtv_Get"].Value = ""; //总量 N天共M片。N-表示出院带药的天数,M-表示出院带药合计的数量 objRow.Cells["dtv_sum"].Value = ""; //补次 objRow.Cells["ATTACHTIMES_INT"].Value = ""; //嘱托 objRow.Cells["dtv_ENTRUST"].Value = ""; } if (p_objItem != null && p_objItem.m_strVIEWNAME_VCHR.Trim().Equals("文字医嘱"))//文字医嘱时显示项目名,其它类的显示诊疗项目名 { //项目名称 objRow.Cells["dtv_Name"].Value = m_ObjItem.m_strOrderName; } objRow.Tag = order; } if (this.m_objViewer.m_dtvGroupDetail.RowCount > 0) { this.m_objViewer.m_dtvGroupDetail.CurrentCell = this.m_objViewer.m_dtvGroupDetail.Rows[0].Cells[2]; } }
/// <summary> /// 获取相应的明细数据 /// </summary> /// <param name="myDataView"></param> /// <param name="m_objGroupVo"></param> private void GetGroupDetailData(DataView objRow, out clsT_aid_bih_ordergroup_detail_VO[] m_arrObjItem) { m_arrObjItem = new clsT_aid_bih_ordergroup_detail_VO[objRow.Count]; for (int i = 0; i < objRow.Count; i++) { m_arrObjItem[i] = new clsT_aid_bih_ordergroup_detail_VO(); //流水号 m_arrObjItem[i].m_strDETAILID_CHR = Convert.ToString(objRow[i]["DETAILID_CHR"].ToString().Trim()); //组套id {=医嘱组套.Id} m_arrObjItem[i].m_strGROUPID_CHR = Convert.ToString(objRow[i]["GROUPID_CHR"].ToString().Trim()); //诊疗项目id {=诊疗项目.Id} m_arrObjItem[i].m_strORDERDICID_CHR = Convert.ToString(objRow[i]["ORDERDICID_CHR"].ToString().Trim()); //诊疗项目名称 m_arrObjItem[i].m_strOrderdicName = Convert.ToString(objRow[i]["OrderdicName"].ToString().Trim()); m_arrObjItem[i].m_strOrderName = Convert.ToString(objRow[i]["NAME_VCHR"].ToString().Trim()); //执行频率id {=执行频率.Id} m_arrObjItem[i].m_strFREQID_CHR = Convert.ToString(objRow[i]["FREQID_CHR"].ToString().Trim()); //执行频率名称 m_arrObjItem[i].m_strExecFreqName = Convert.ToString(objRow[i]["freqname_chr"].ToString().Trim()); //一次剂量 if (!objRow[i]["DOSAGE_DEC"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_fltDOSAGE_DEC = float.Parse(objRow[i]["DOSAGE_DEC"].ToString().Trim()); } //剂量单位 m_arrObjItem[i].m_strDOSAGEUNIT_CHR = Convert.ToString(objRow[i]["DOSAGEUNIT_CHR"].ToString().Trim()); //一次用量 if (!objRow[i]["USE_DEC"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_fltUSE_DEC = float.Parse(objRow[i]["USE_DEC"].ToString().Trim()); } //用量单位 m_arrObjItem[i].m_strUSEUNIT_CHR = Convert.ToString(objRow[i]["USEUNIT_CHR"].ToString().Trim()); //一次领量 if (!objRow[i]["GET_DEC"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_fltGET_DEC = float.Parse(objRow[i]["GET_DEC"].ToString().Trim()); } //领量单位 m_arrObjItem[i].m_strGETUNIT_CHR = Convert.ToString(objRow[i]["GETUNIT_CHR"].ToString().Trim()); //用药方式id m_arrObjItem[i].m_strDOSETYPE_CHR = Convert.ToString(objRow[i]["DOSETYPE_CHR"].ToString().Trim()); //用药方式名称 m_arrObjItem[i].m_strDosetypeName = Convert.ToString(objRow[i]["usagename_vchr"].ToString().Trim()); //医生嘱托 m_arrObjItem[i].m_strENTRUST_VCHR = Convert.ToString(objRow[i]["ENTRUST_VCHR"].ToString().Trim()); //是否贵重品 if (!objRow[i]["ISRICH_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intISRICH_INT = int.Parse(objRow[i]["ISRICH_INT"].ToString().Trim()); } //父诊疗项目id {=诊疗项目.Id} m_arrObjItem[i].m_strPARENTID_CHR = Convert.ToString(objRow[i]["PARENTID_CHR"].ToString().Trim()); //是否父诊疗项目 if (!objRow[i]["IFPARENTID_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intIFPARENTID_INT = int.Parse(objRow[i]["IFPARENTID_INT"].ToString().Trim()); } //执行类型{1=长期;2=临时,3=出院带药} if (!objRow[i]["EXECUTETYPE_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intEXECUTETYPE_INT = int.Parse(objRow[i]["EXECUTETYPE_INT"].ToString().Trim()); } if (m_arrObjItem[i].m_intEXECUTETYPE_INT == 0) { m_arrObjItem[i].m_intEXECUTETYPE_INT = 1; } //出院带药天数 if (!objRow[i]["OUTGETMEDDAYS_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intOUTGETMEDDAYS_INT = int.Parse(objRow[i]["OUTGETMEDDAYS_INT"].ToString().Trim()); } //补次次数 if (!objRow[i]["ATTACHTIMES_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intATTACHTIMES_INT = int.Parse(objRow[i]["ATTACHTIMES_INT"].ToString().Trim()); } //样本类型ID m_arrObjItem[i].m_strSAMPLEID_VCHR = Convert.ToString(objRow[i]["SAMPLEID_VCHR"].ToString().Trim()); //样本类型名称 m_arrObjItem[i].m_strSAMPLEName_VCHR = Convert.ToString(objRow[i]["sample_type_desc_vchr"].ToString().Trim()); //检查部位ID m_arrObjItem[i].m_strPARTID_VCHR = Convert.ToString(objRow[i]["PARTID_VCHR"].ToString().Trim()); //检查部位名称 m_arrObjItem[i].m_strPARTNAME_VCHR = Convert.ToString(objRow[i]["partname"].ToString().Trim()); //医保 m_arrObjItem[i].m_strMedicareTypeName = Convert.ToString(objRow[i]["typename_vchr"].ToString().Trim()); //医嘱类型 m_arrObjItem[i].m_strOrderDicCateID = Convert.ToString(objRow[i]["ordercateid_chr"].ToString().Trim()); //医嘱类型名称 m_arrObjItem[i].m_strOrderDicCateName = Convert.ToString(objRow[i]["viewname_vchr"].ToString().Trim()); //方号 用于编组显示 if (!objRow[i]["RECIPENO_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intRecipenNo = int.Parse(objRow[i]["RECIPENO_INT"].ToString().Trim()); } //费用标志 {1=全收费,2=用法收费,3=不收费} if (!objRow[i]["RATETYPE_INT"].ToString().Trim().Equals("")) { m_arrObjItem[i].RateType = int.Parse(objRow[i]["RATETYPE_INT"].ToString().Trim()); } //单价 if (!objRow[i]["ItemPrice"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_dmlPrice = decimal.Parse(objRow[i]["ItemPrice"].ToString().Trim()); } //皮试 if (!objRow[i]["ISNEEDFEEL"].ToString().Trim().Trim().Equals("")) { m_arrObjItem[i].m_intISNEEDFEEL = int.Parse(objRow[i]["ISNEEDFEEL"].ToString().Trim()); } // 补一次的领量(用于主项目补次) decimal.TryParse(objRow[i]["SINGLEAMOUNT_DEC"].ToString().Trim(), out m_arrObjItem[i].m_dmlOneUse); if (!objRow[i]["stopStatus"].ToString().Trim().Equals("")) { m_arrObjItem[i].m_intOrderDicStop = int.Parse(objRow[i]["stopStatus"].ToString().Trim()); } if (!objRow[i]["IPNOQTYFLAG_INT"].ToString().Trim().Equals("") && objRow[i]["ITEMSRCTYPE_INT"].ToString().Trim().Equals("1")) { m_arrObjItem[i].m_intIPNOQTYFLAG_INT = int.Parse(objRow[i]["IPNOQTYFLAG_INT"].ToString().Trim()); } //包装量 if (objRow[i]["packqty_dec"] != DBNull.Value) { m_arrObjItem[i].m_dmlPACKQTY_DEC = decimal.Parse(objRow[i]["packqty_dec"].ToString().Trim()); } //住院单位类型 if (objRow[i]["ipchargeflg_int"] != DBNull.Value) { m_arrObjItem[i].m_intIPCHARGEFLG_INT = int.Parse(objRow[i]["ipchargeflg_int"].ToString().Trim()); } } // m_objGroupVo.m_objGroupVoList = m_arrObjItem; }