public void BindTheData(ref DataRow row, clsBIHOrder objOrder, bool m_blSame) { row["startdoctor"] = objOrder.m_strCreator; //下嘱医生 row["startnurse"] = objOrder.m_strASSESSORFOREXEC_CHR; // 过医嘱者 row["assessorpost"] = objOrder.m_strASSESSORFOREXEC_CHR; //过医嘱者 row["assessorposttime"] = objOrder.m_strASSESSORFOREXEC_DAT; //过医嘱时间 row["assessorstop"] = objOrder.m_strASSESSORFORSTOP_CHR; //审核停止者 row["assessorstoptime"] = objOrder.m_strASSESSORFORSTOP_DAT; //审核停医嘱时间 row["recipeno"] = objOrder.m_intRecipenNo2; //显示的方号 // row["ordername"] = objOrder.m_strName;//医嘱名称 // row["dosage"] = objOrder.m_dmlDosage;//剂量 // row["dosageunit"] = objOrder.m_strDosageUnit;//剂量单位 // row["dosetypename"] = objOrder.m_strDosetypeName;//用法名称 row["execfreqname"] = ""; //频率名称 //row["execfreqname"] = objOrder.m_strExecFreqName; row["dosage"] = ""; //剂量 row["dosageunit"] = ""; //剂量单位 row["dosetypename"] = ""; //用法名称 //row["execfreqname"] = "";//频率名称 row["entrust"] = objOrder.m_strREMARK_VCHR; //说明 row["starttime"] = objOrder.m_dtPostdate; //开嘱时间 row["endtime"] = objOrder.m_dtFinishDate; //结束时间 row["enddoctor"] = objOrder.m_strStoper; //停嘱医生 row["endnurse"] = objOrder.m_strASSESSORFORSTOP_CHR; //停嘱护士 row["recipeno_int"] = objOrder.m_intRecipenNo; //方号 row["CONFIRMER_VCHR"] = objOrder.m_strASSESSORFOREXEC_CHR; //已审核提交者 row["USAGEVIEWTYPE"] = ""; //用法类型 row["DOSAGEVIEWTYPE"] = ""; //剂量类型 row["FEQVIEWTYPE"] = ""; //频率类型 // 谢云杰修改 主要用于特别显示出院的医嘱 //row["QTYVIEWTYPE_INT"] = "";// row["QTYVIEWTYPE_INT"] = objOrder.m_intTYPE_INT.ToString(); row["EXECUTOR_CHR"] = ""; row["EXECUTEDATE_DAT"] = objOrder.m_dtExecutedate.ToString(); row["EXECUTOR_CHR"] = objOrder.m_strExecutor; row["creatorsign"] = objOrder.creatorsign; row["confirmersign"] = objOrder.confirmersign; row["stopersign"] = objOrder.stopersign; row["assessorsign"] = objOrder.assessorsign; //下嘱医生 //皮试 string m_strFeel = ""; if (objOrder.m_intISNEEDFEEL == 1) { switch (objOrder.m_intFEEL_INT) { case 0: m_strFeel = " AST( ) "; break; case 1: m_strFeel = " AST(-) "; break; case 2: m_strFeel = " AST(+) "; break; } } /*<==================================*/ //医嘱类型 clsT_aid_bih_ordercate_VO p_objItem = (clsT_aid_bih_ordercate_VO)this.m_htOrderCate[objOrder.m_strOrderDicCateID]; string dtv_Dosage = "", dtv_UseType = "", dtv_Freq = "", ATTACHTIMES_INT = "", dtv_Get = ""; decimal m_dmlOneUse = 0;//补一次的领量 #region 医嘱类型控制列表界面 if (p_objItem != null) { objOrder.m_strOrderDicCateName = p_objItem.m_strVIEWNAME_VCHR; if (!objOrder.m_strExecFreqID.Trim().Equals(m_objSpecateVo.m_strCONFREQID_CHR.Trim()))//连续性医嘱不显示剂量 { if (p_objItem.m_intDOSAGEVIEWTYPE == 1) { //用量 if (objOrder.m_dmlDosage > 0) { dtv_Dosage = objOrder.m_dmlDosage.ToString() + "" + objOrder.m_strDosageUnit; } else { dtv_Dosage = ""; } } else { dtv_Dosage = ""; } } else { dtv_Dosage = ""; } if (p_objItem.m_intUSAGEVIEWTYPE == 1) { //用法 dtv_UseType = objOrder.m_strDosetypeName; } else { //用法 dtv_UseType = ""; } if (objOrder.m_intExecuteType == 1 || objOrder.m_intExecuteType == 2) { if (p_objItem.m_intExecuFrenquenceType == 1) { //频率 dtv_Freq = objOrder.m_strExecFreqName; } else { //当不显示时,医嘱表中的为修改标志=1时也显示出来 (0-普通状态,1-频率修改) if (objOrder.m_intCHARGE_INT == 1) { dtv_Freq = objOrder.m_strExecFreqName;//频率 } else { dtv_Freq = "";//频率 } } } else { dtv_Freq = "";//频率 } if (p_objItem.m_intAPPENDVIEWTYPE_INT == 1) { //补次 ATTACHTIMES_INT = objOrder.m_intATTACHTIMES_INT.ToString(); m_dmlOneUse = objOrder.m_dmlOneUse * objOrder.m_intATTACHTIMES_INT; } else { //补次 ATTACHTIMES_INT = ""; m_dmlOneUse = 0; } //领量 if (p_objItem.m_intQTYVIEWTYPE_INT == 1) { if (objOrder.m_dmlGet > 0) { dtv_Get = objOrder.m_dmlGet.ToString() + " " + objOrder.m_strGetunit; } else { dtv_Get = ""; } } else { //领量 dtv_Get = ""; } } else { //用量 dtv_Dosage = ""; //频率 dtv_Freq = ""; //用法 dtv_UseType = ""; //补次 ATTACHTIMES_INT = ""; //领量 dtv_Get = ""; } #endregion // //总量字段的控制 string m_strSum = ""; if (objOrder.m_strOrderDicCateID.Equals(m_objSpecateVo.m_strMID_MEDICINE_CHR))//中药类型逻辑 { if (m_intShowTotalNums == 1) { m_strSum = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "服共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; } else { m_strSum = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "服"; } } else { if (objOrder.m_intExecuteType == 3) { if (m_intShowTotalNums == 1) { m_strSum = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; } else { m_strSum = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天"; } } else { if (m_intShowTotalNums == 1) { m_strSum = "共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; } } } if (objOrder.m_intTYPE_INT == 0) { if (m_blSame == false) { if (objOrder.m_intExecuteType == 1) { row["ordername"] = "、" + objOrder.m_strName + " " + dtv_Dosage.ToString(); if (objOrder.m_mednormalname_vchr != "") { row["mednormalname_vchr"] = "、" + objOrder.m_mednormalname_vchr + " " + dtv_Dosage.ToString(); } else { row["mednormalname_vchr"] = ""; } } else { row["ordername"] = " " + objOrder.m_strName + " " + dtv_Dosage.ToString(); if (objOrder.m_mednormalname_vchr != "") { row["mednormalname_vchr"] = " " + objOrder.m_mednormalname_vchr + " " + dtv_Dosage.ToString(); } else { row["mednormalname_vchr"] = ""; } } row["dosage"] = dtv_UseType.ToString() + " " + dtv_Freq.ToString() + m_strFeel + " " + m_strSum + " " + objOrder.m_strREMARK_VCHR.Trim(); } else { row["ordername"] = objOrder.m_strName + " " + dtv_Dosage.ToString();//objOrder.m_strREMARK_VCHR.Trim(); if (objOrder.m_mednormalname_vchr != "") { row["mednormalname_vchr"] = objOrder.m_mednormalname_vchr + " " + dtv_Dosage.ToString(); } else { row["mednormalname_vchr"] = ""; } } } else { row["ordername"] = objOrder.m_strName; if (objOrder.m_mednormalname_vchr != "") { row["mednormalname_vchr"] = objOrder.m_mednormalname_vchr; } else { row["mednormalname_vchr"] = ""; } row["recipeno"] = string.Empty; } }
/// <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> /// 医嘱填充DATAGRIDVIEW /// </summary> /// <param name="objOrder">医嘱对像</param> /// <param name="m_intRecipenNoUp">上一条医嘱的方号(同方号的子医嘱不用再显示:长/临、类别、用法、频率、状态、下嘱医生)</param> public void m_objGetDataViewRow(clsBIHOrder objOrder, DataGridViewRow objRow, int m_intNo) { objRow.Height = 20; decimal m_dmlOneUse = 0;//补一次的领量 //序 objRow.Cells["dtv_NO"].Value = m_intNo; //医嘱类型 clsT_aid_bih_ordercate_VO p_objItem = (clsT_aid_bih_ordercate_VO)this.m_objViewer.m_htOrderCate[objOrder.m_strOrderDicCateID]; if (p_objItem == null) { if (objOrder.m_intTYPE_INT > 0) { objRow.Cells["dtv_Name"].Value = objOrder.m_strName.ToString(); objRow.Cells["dtv_Name"].Style.Alignment = DataGridViewContentAlignment.BottomCenter; objRow.Tag = objOrder; return; } } if (objOrder.m_intExecuteType == 1) { //方 objRow.Cells["dtv_RecipeNo"].Value = " " + objOrder.m_intRecipenNo2.ToString(); } //价格 //objRow["Price"] =objOrder.m_dmlPrice.ToString("0.0000"); //“方法”列。用于显示检验医嘱的样本类型,和检查医嘱的部位信息 if (!objOrder.m_strPARTID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = objOrder.m_strPARTNAME_VCHR; } else if (!objOrder.m_strSAMPLEID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = objOrder.m_strSAMPLEName_VCHR; } //开始执行时间 objRow.Cells["dtv_StartDate"].Value = DateTimeToString(objOrder.m_dtExecutedate); //停嘱者 objRow.Cells["dtv_Stoper"].Value = objOrder.m_strStoper; //审核停止者 objRow.Cells["ASSESSORFORSTOP_CHR"].Value = objOrder.m_strASSESSORFORSTOP_CHR; //停嘱时间 objRow.Cells["dtv_FinishDate"].Value = DateTimeToCutYearDateString(objOrder.m_dtFinishDate); //objRow.Cells["dtv_ParentName"].Value = objOrder.m_strParentName; //执行时间/嘱托 objRow.Cells["dtv_REMARK"].Value = objOrder.m_strREMARK_VCHR; //自备药 (1-全计费 1-否)( 2-用法收费 2-是)(3 不计费 作废) switch (objOrder.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; } //校对护士 objRow.Cells["ASSESSORFOREXEC_CHR"].Value = objOrder.m_strASSESSORFOREXEC_CHR; //录入时间 objRow.Cells["CREATEDATE_DAT"].Value = DateTimeToString(objOrder.m_dtCreatedate); //下嘱时间(开始时间) objRow.Cells["m_dtPOSTDATE_DAT"].Value = DateTimeToCutYearDateString(objOrder.m_dtPostdate); objRow.Cells["m_dtStartDate"].Value = DateTimeToCutYearDateString(objOrder.m_dtStartDate); /*<===============================*/ //皮试 string m_strFeel = ""; if (objOrder.m_intISNEEDFEEL == 1) { switch (objOrder.m_intFEEL_INT) { case 0: m_strFeel = " AST( ) "; break; case 1: m_strFeel = " AST(-) "; break; case 2: m_strFeel = " AST(+) "; break; } } /*<==================================*/ #region 医嘱类型控制列表界面 if (p_objItem != null) { objOrder.m_strOrderDicCateName = p_objItem.m_strVIEWNAME_VCHR; if (!objOrder.m_strExecFreqID.Trim().Equals(this.m_objViewer.m_objSpecateVo.m_strCONFREQID_CHR.Trim()))//连续性医嘱不显示剂量 { if (p_objItem.m_intDOSAGEVIEWTYPE == 1) { //用量 if (objOrder.m_dmlDosage > 0) { objRow.Cells["dtv_Dosage"].Value = objOrder.m_dmlDosage.ToString() + "" + objOrder.m_strDosageUnit; } else { objRow.Cells["dtv_Dosage"].Value = ""; } } else { objRow.Cells["dtv_Dosage"].Value = ""; } } else { objRow.Cells["dtv_Dosage"].Value = ""; } if (!objOrder.m_strExecFreqID.Trim().Equals(this.m_objViewer.m_objSpecateVo.m_strCONFREQID_CHR.Trim()))//连续性医嘱不显示用法 { if (p_objItem.m_intUSAGEVIEWTYPE == 1) { //用法 objRow.Cells["dtv_UseType"].Value = objOrder.m_strDosetypeName; } else { //用法 objRow.Cells["dtv_UseType"].Value = ""; } } else { //用法 objRow.Cells["dtv_UseType"].Value = ""; } if (objOrder.m_intExecuteType == 1)//长临才显示频率,临嘱不显示 { if (p_objItem.m_intExecuFrenquenceType == 1) { //频率 objRow.Cells["dtv_Freq"].Value = objOrder.m_strExecFreqName; } else { //当不显示时,医嘱表中的为修改标志=1时也显示出来 (0-普通状态,1-频率修改) if (objOrder.m_intCHARGE_INT == 1) { objRow.Cells["dtv_Freq"].Value = objOrder.m_strExecFreqName;//频率 } else { objRow.Cells["dtv_Freq"].Value = "";//频率 } } } else { //当不显示时,医嘱表中的为修改标志=1时也显示出来 (0-普通状态,1-频率修改) if (objOrder.m_intCHARGE_INT == 1) { objRow.Cells["dtv_Freq"].Value = objOrder.m_strExecFreqName;//频率 } else { objRow.Cells["dtv_Freq"].Value = "";//频率 } } if (p_objItem.m_intAPPENDVIEWTYPE_INT == 1) { //补次 objRow.Cells["ATTACHTIMES_INT"].Value = objOrder.m_intATTACHTIMES_INT; m_dmlOneUse = objOrder.m_dmlOneUse * objOrder.m_intATTACHTIMES_INT; } else { //补次 objRow.Cells["ATTACHTIMES_INT"].Value = ""; m_dmlOneUse = 0; } //领量 if (p_objItem.m_intQTYVIEWTYPE_INT == 1) { if (objOrder.m_dmlGet > 0) { objRow.Cells["dtv_Get"].Value = objOrder.m_dmlGet.ToString() + " " + objOrder.m_strGetunit; } else { objRow.Cells["dtv_Get"].Value = ""; } } else { //领量 objRow.Cells["dtv_Get"].Value = ""; } } else { //用量 objRow.Cells["dtv_Dosage"].Value = ""; //频率 objRow.Cells["dtv_Freq"].Value = ""; //用法 objRow.Cells["dtv_UseType"].Value = ""; //补次 objRow.Cells["ATTACHTIMES_INT"].Value = ""; //领量 objRow.Cells["dtv_Get"].Value = ""; } #endregion //出院带药天数 string m_strOUTGETMEDDAYS_INT = ""; //总量字段的控制 if (objOrder.m_strOrderDicCateID.Equals(this.m_objViewer.m_objSpecateVo.m_strMID_MEDICINE_CHR))//中药类型逻辑 { objRow.Cells["dtv_sum"].Value = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "服共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; m_strOUTGETMEDDAYS_INT = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "服";; } else { if (objOrder.m_intExecuteType == 3) { objRow.Cells["dtv_sum"].Value = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; m_strOUTGETMEDDAYS_INT = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天"; //objRow.Cells["dtv_OUTGETMEDDAYS_INT"].Value = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天"; } else { objRow.Cells["dtv_sum"].Value = "共" + Convert.ToString(objOrder.m_dmlGet + m_dmlOneUse) + objOrder.m_strGetunit; m_strOUTGETMEDDAYS_INT = ""; //objRow.Cells["dtv_OUTGETMEDDAYS_INT"].Value = ""; } objRow.Cells["dtv_OUTGETMEDDAYS_INT"].Value = m_strOUTGETMEDDAYS_INT; } //名称 objRow.Cells["dtv_Name"].Value = objOrder.m_strName + " " + objRow.Cells["dtv_Dosage"].Value.ToString() + " " + objRow.Cells["dtv_UseType"].Value.ToString() + " " + objRow.Cells["dtv_Freq"].Value.ToString() + m_strFeel + " " + m_strOUTGETMEDDAYS_INT; //名称格式控制 if (p_objItem != null) { if (p_objItem.m_strVIEWNAME_VCHR.ToString().Trim() == "文字医嘱") { objRow.Cells["dtv_Name"].Value = " " + objRow.Cells["dtv_Name"].Value.ToString(); } } /*<=====================================================================*/ //医保 objRow.Cells["MedicareTypeName"].Value = objOrder.m_strMedicareTypeName; //医生名称 objRow.Cells["dtv_DOCTOR_VCHR"].Value = objOrder.m_strDOCTOR_VCHR; //开单科室 objRow.Cells["dtv_CREATEAREA_Name"].Value = objOrder.m_strCREATEAREA_Name; //作废人 objRow.Cells["dtv_DELETERNAME_VCHR"].Value = objOrder.m_strDELETERNAME_VCHR; //作废时间 objRow.Cells["dtv_DELETE_DAT"].Value = objOrder.m_strDELETE_DAT; //修改人姓名 objRow.Cells["dtv_ChangedID"].Value = objOrder.m_strChangedName_CHR; //修改人时间 objRow.Cells["dtv_ChangedDate"].Value = DateTimeToString(objOrder.m_dtChanged_DAT); // 同方号的子医嘱不用再显示:长/临、类别、用法、频率、状态、下嘱医生 //长/临 if (objOrder.m_intExecuteType == 1) { objRow.Cells["dtv_ExecuteType"].Value = "长期"; } else if (objOrder.m_intExecuteType == 2) { objRow.Cells["dtv_ExecuteType"].Value = "临时"; } else if (objOrder.m_intExecuteType == 3) { objRow.Cells["dtv_ExecuteType"].Value = "带药"; } else { objRow.Cells["dtv_ExecuteType"].Value = ""; } //医嘱类型名称 objRow.Cells["viewname_vchr"].Value = objOrder.m_strOrderDicCateName.ToString().Trim(); //医嘱状态 执行状态{-1作废医嘱;0-创建;1-提交;2-执行;3-停止;4-重整;5- 已审核提交;6-审核停止;7-退回;} switch (objOrder.m_intStatus) { case -1: objRow.Cells["STATUS_INT"].Value = "作废"; break; case 0: objRow.Cells["STATUS_INT"].Value = "新开"; break; case 1: objRow.Cells["STATUS_INT"].Value = "提交"; break; case 2: objRow.Cells["STATUS_INT"].Value = "执行"; break; case 3: objRow.Cells["STATUS_INT"].Value = "停止"; break; case 4: objRow.Cells["STATUS_INT"].Value = "重整"; break; case 5: objRow.Cells["STATUS_INT"].Value = "转抄"; break; case 6: objRow.Cells["STATUS_INT"].Value = "审核停止"; break; case 7: objRow.Cells["STATUS_INT"].Value = "退回"; break; default: objRow.Cells["STATUS_INT"].Value = ""; break; } //下嘱医生 objRow.Cells["CREATOR_CHR"].Value = objOrder.m_strCreator; //执行人 objRow.Cells["dtv_Executor"].Value = objOrder.m_strExecutor; ////医生签名dtv_DOCTOR_SIGN //if (this.m_frmInput.m_blDoctorSign) //{ // if (objOrder.SIGN_GRP != null && objOrder.SIGN_INT == 1) // { // System.IO.MemoryStream ms = new System.IO.MemoryStream(objOrder.SIGN_GRP); // Bitmap m_bpSign = new Bitmap(ms); // objRow.Cells["dtv_DOCTOR_SIGN"].Value = m_bpSign; // ms.Close(); // } // else if (objOrder.SIGN_INT == 0) // { // Bitmap m_bpSign = new Bitmap("Picture//unsign.bmp"); // objRow.Cells["dtv_DOCTOR_SIGN"].Value = m_bpSign; // } // else // { // objRow.Cells["dtv_DOCTOR_SIGN"].Style.NullValue = null; // } // if (this.m_frmInput.m_blDoctorSign && objOrder.SIGN_INT != 1) // { // objRow.DefaultCellStyle.ForeColor = Color.Red; // } //} //退回人 objRow.Cells["m_dtvSENDBACKER_CHR"].Value = objOrder.m_strSENDBACKER_CHR; /*<==================================================================*/ objRow.Tag = objOrder; }
private void m_dtvOrderList_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { //((clsCtl_OrderNurseConfirm)this.objController).ChangeTheSelectState(e.RowIndex); string m_strCumnName = this.m_dtvOrderList.Columns[e.ColumnIndex].Name; if (m_strCumnName.Equals("dtv_ENTRUST")) { DataGridViewCell cell1 = this.m_dtvOrderList[e.ColumnIndex, e.RowIndex]; clsBIHCanExecOrder order = (clsBIHCanExecOrder)this.m_dtvOrderList.Rows[e.RowIndex].Tag; //是否为子医嘱 bool m_blSon = false; ((clsCtl_OrderNurseConfirm)this.objController).m_TestORDERIDIsSon(order, out m_blSon); if (m_blSon == true) { MessageBox.Show("请单独选择父医嘱进行嘱托修改操作!", "提示框!", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } /*<==================================*/ if (order.m_intStatus == 1) { cell1.ReadOnly = false; } } else if (m_strCumnName.Equals("ATTACHTIMES_INT")) { DataGridViewCell cell1 = this.m_dtvOrderList[e.ColumnIndex, e.RowIndex]; clsBIHCanExecOrder order = (clsBIHCanExecOrder)this.m_dtvOrderList.Rows[e.RowIndex].Tag; //是否为子医嘱 bool m_blSon = false; ((clsCtl_OrderNurseConfirm)this.objController).m_TestORDERIDIsSon(order, out m_blSon); //医嘱类型 clsT_aid_bih_ordercate_VO p_objItem = null; if (((clsCtl_OrderNurseConfirm)this.objController).m_htOrderCate.Contains(order.m_strOrderDicCateID)) { p_objItem = (clsT_aid_bih_ordercate_VO)((clsCtl_OrderNurseConfirm)this.objController).m_htOrderCate[order.m_strOrderDicCateID]; } if (p_objItem != null) { if (p_objItem.m_intAPPENDVIEWTYPE_INT == 1) //末执行及首次执行的才显示补次及补次的合计量 { } else { MessageBox.Show("当前医嘱类型为非补次类型!", "提示框!", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { MessageBox.Show("当前医嘱类型为非补次类型!", "提示框!", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (m_blSon == true || order.m_intExecuteType != 1) { if (m_blSon == true) { MessageBox.Show("请单独选择长嘱的父医嘱进行补次操作!", "提示框!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (order.m_intExecuteType != 1) { MessageBox.Show("非长期医嘱不能进行补次操作!", "提示框!", MessageBoxButtons.OK, MessageBoxIcon.Information); } return; } /*<==================================*/ if (order.m_intStatus == 1) { cell1.ReadOnly = false; } } }
/// <summary> /// 医嘱填充DATAGRIDVIEW /// </summary> /// <param name="objOrder">医嘱对像</param> /// <param name="m_intRecipenNoUp">上一条医嘱的方号(同方号的子医嘱不用再显示:长/临、类别、用法、频率、状态、下嘱医生)</param> public void m_objGetDataViewRow(clsBIHOrder objOrder) { this.m_objViewer.m_dtvOrderGroup.Rows.Add(); DataGridViewRow objRow = this.m_objViewer.m_dtvOrderGroup.Rows[this.m_objViewer.m_dtvOrderGroup.RowCount - 1]; objRow.Height = 20; objRow.Cells["dtv_check"].Value = "1"; //序 objRow.Cells["dtv_NO"].Value = this.m_objViewer.m_dtvOrderGroup.RowCount; //医嘱类型 clsT_aid_bih_ordercate_VO p_objItem = (clsT_aid_bih_ordercate_VO)this.m_objViewer.m_htOrderCate[objOrder.m_strOrderDicCateID]; if (p_objItem == null) { if (objOrder.m_strName.ToString().Trim().Equals("术后医嘱")) { objRow.Cells["dtv_Name"].Value = objOrder.m_strName.ToString(); objRow.Cells["dtv_Name"].Style.Alignment = DataGridViewContentAlignment.BottomCenter; objRow.Tag = objOrder; return; } else if (objOrder.m_strName.ToString().Trim().Equals("转科医嘱")) { objRow.Cells["dtv_Name"].Value = objOrder.m_strName.ToString(); objRow.Cells["dtv_Name"].Style.Alignment = DataGridViewContentAlignment.BottomCenter; objRow.Tag = objOrder; return; } } if (objOrder.m_intExecuteType == 1) { //方 objRow.Cells["dtv_RecipeNo"].Value = " " + objOrder.m_intRecipenNo2.ToString(); } //价格 //objRow["Price"] =objOrder.m_dmlPrice.ToString("0.0000"); //“方法”列。用于显示检验医嘱的样本类型,和检查医嘱的部位信息 if (!objOrder.m_strPARTID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = objOrder.m_strPARTNAME_VCHR; } else if (!objOrder.m_strSAMPLEID_VCHR.Trim().Equals("")) { objRow.Cells["dtv_method"].Value = objOrder.m_strSAMPLEName_VCHR; } //总量 N天共M片。N-表示出院带药的天数,M-表示出院带药合计的数量 if (objOrder.m_intExecuteType == 3) { objRow.Cells["dtv_sum"].Value = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天共" + Convert.ToString(objOrder.m_dmlGet * objOrder.m_intOUTGETMEDDAYS_INT) + objOrder.m_strGetunit; } else { objRow.Cells["dtv_sum"].Value = ""; } //开始执行时间 objRow.Cells["dtv_StartDate"].Value = DateTimeToString(objOrder.m_dtExecutedate); //停嘱者 objRow.Cells["dtv_Stoper"].Value = objOrder.m_strStoper; //审核停止者 objRow.Cells["ASSESSORFORSTOP_CHR"].Value = objOrder.m_strASSESSORFORSTOP_CHR; //停嘱时间 objRow.Cells["dtv_FinishDate"].Value = DateTimeToCutYearDateString(objOrder.m_dtFinishDate); //执行时间/嘱托 objRow.Cells["dtv_REMARK"].Value = objOrder.m_strREMARK_VCHR; // 药品来源: 0 药房(全计费,摆药); 1 患者自备(只收费用法加收项目,不摆药); 2 科室基数(全计费,不摆药) switch (objOrder.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; } //校对护士 objRow.Cells["ASSESSORFOREXEC_CHR"].Value = objOrder.m_strASSESSORFOREXEC_CHR; //录入时间 objRow.Cells["CREATEDATE_DAT"].Value = DateTimeToString(objOrder.m_dtCreatedate); //下嘱时间(开始时间) objRow.Cells["m_dtPOSTDATE_DAT"].Value = DateTimeToCutYearDateString(objOrder.m_dtPostdate); objRow.Cells["m_dtStartDate"].Value = DateTimeToCutYearDateString(objOrder.m_dtStartDate); /*<===============================*/ //皮试 string m_strFeel = ""; if (objOrder.m_intISNEEDFEEL == 1) { switch (objOrder.m_intFEEL_INT) { case 0: m_strFeel = " AST( ) "; break; case 1: m_strFeel = " AST(-) "; break; case 2: m_strFeel = " AST(+) "; break; } } /*<==================================*/ #region 医嘱类型控制列表界面 if (p_objItem != null) { objOrder.m_strOrderDicCateName = p_objItem.m_strVIEWNAME_VCHR; if (!objOrder.m_strExecFreqID.Trim().Equals(this.m_objViewer.m_objSpecateVo.m_strCONFREQID_CHR.Trim()))//连续性医嘱不显示剂量 { if (p_objItem.m_intDOSAGEVIEWTYPE == 1) { //用量 if (objOrder.m_dmlDosage > 0) { objRow.Cells["dtv_Dosage"].Value = objOrder.m_dmlDosage.ToString() + "" + objOrder.m_strDosageUnit; } else { objRow.Cells["dtv_Dosage"].Value = ""; } } else { objRow.Cells["dtv_Dosage"].Value = ""; } } else { objRow.Cells["dtv_Dosage"].Value = ""; } if (p_objItem.m_intUSAGEVIEWTYPE == 1) { //用法 objRow.Cells["dtv_UseType"].Value = objOrder.m_strDosetypeName; } else { //用法 objRow.Cells["dtv_UseType"].Value = ""; } if (objOrder.m_intExecuteType == 1)//长临才显示频率,临嘱不显示 { if (p_objItem.m_intExecuFrenquenceType == 1) { //频率 objRow.Cells["dtv_Freq"].Value = objOrder.m_strExecFreqName; } else { //当不显示时,医嘱表中的为修改标志=1时也显示出来 (0-普通状态,1-频率修改) if (objOrder.m_intCHARGE_INT == 1) { objRow.Cells["dtv_Freq"].Value = objOrder.m_strExecFreqName;//频率 } else { objRow.Cells["dtv_Freq"].Value = "";//频率 } } } else { objRow.Cells["dtv_Freq"].Value = "";//频率 } if (p_objItem.m_intAPPENDVIEWTYPE_INT == 1) { //补次 objRow.Cells["ATTACHTIMES_INT"].Value = objOrder.m_intATTACHTIMES_INT; } else { //补次 objRow.Cells["ATTACHTIMES_INT"].Value = ""; } //领量 if (p_objItem.m_intQTYVIEWTYPE_INT == 1) { if (objOrder.m_dmlGet > 0) { objRow.Cells["dtv_Get"].Value = objOrder.m_dmlGet.ToString() + " " + objOrder.m_strGetunit; } else { objRow.Cells["dtv_Get"].Value = ""; } } else { //领量 objRow.Cells["dtv_Get"].Value = ""; } } else { //用量 objRow.Cells["dtv_Dosage"].Value = ""; //频率 objRow.Cells["dtv_Freq"].Value = ""; //用法 objRow.Cells["dtv_UseType"].Value = ""; //补次 objRow.Cells["ATTACHTIMES_INT"].Value = ""; //领量 objRow.Cells["dtv_Get"].Value = ""; } #endregion //名称 objRow.Cells["dtv_Name"].Value = objOrder.m_strName + " " + objRow.Cells["dtv_Dosage"].Value.ToString() + " " + objRow.Cells["dtv_UseType"].Value.ToString() + " " + objRow.Cells["dtv_Freq"].Value.ToString() + objOrder.m_strPARTNAME_VCHR + m_strFeel; //名称格式控制 if (p_objItem != null) { if (p_objItem.m_strVIEWNAME_VCHR.ToString().Trim() == "文字医嘱") { objRow.Cells["dtv_Name"].Value = " " + objRow.Cells["dtv_Name"].Value.ToString(); } } /*<=====================================================================*/ //医保 objRow.Cells["MedicareTypeName"].Value = objOrder.m_strMedicareTypeName; //医生名称 objRow.Cells["dtv_DOCTOR_VCHR"].Value = objOrder.m_strDOCTOR_VCHR; //开单科室 objRow.Cells["dtv_CREATEAREA_Name"].Value = objOrder.m_strCREATEAREA_Name; //作废人 objRow.Cells["dtv_DELETERNAME_VCHR"].Value = objOrder.m_strDELETERNAME_VCHR; //作废时间 objRow.Cells["dtv_DELETE_DAT"].Value = objOrder.m_strDELETE_DAT; //修改人姓名 objRow.Cells["dtv_ChangedID"].Value = objOrder.m_strChangedName_CHR; //修改人时间 objRow.Cells["dtv_ChangedDate"].Value = DateTimeToString(objOrder.m_dtChanged_DAT); // 同方号的子医嘱不用再显示:长/临、类别、用法、频率、状态、下嘱医生 //长/临 if (objOrder.m_intExecuteType == 1) { objRow.Cells["dtv_ExecuteType"].Value = "长期"; } else if (objOrder.m_intExecuteType == 2) { objRow.Cells["dtv_ExecuteType"].Value = "临时"; } else if (objOrder.m_intExecuteType == 3) { objRow.Cells["dtv_ExecuteType"].Value = "带药"; } else { objRow.Cells["dtv_ExecuteType"].Value = ""; } //出院带药天数 if (objOrder.m_intExecuteType == 3) { objRow.Cells["dtv_OUTGETMEDDAYS_INT"].Value = objOrder.m_intOUTGETMEDDAYS_INT.ToString() + "天"; } else { objRow.Cells["dtv_OUTGETMEDDAYS_INT"].Value = ""; } //医嘱类型名称 objRow.Cells["viewname_vchr"].Value = objOrder.m_strOrderDicCateName.ToString().Trim(); //医嘱状态 执行状态{-1作废医嘱;0-创建;1-提交;2-执行;3-停止;4-重整;5- 已审核提交;6-审核停止;7-退回;} switch (objOrder.m_intStatus) { case -1: objRow.Cells["STATUS_INT"].Value = "作废"; break; case 0: objRow.Cells["STATUS_INT"].Value = "新开"; break; case 1: objRow.Cells["STATUS_INT"].Value = "提交"; break; case 2: objRow.Cells["STATUS_INT"].Value = "执行"; break; case 3: objRow.Cells["STATUS_INT"].Value = "停止"; break; case 4: objRow.Cells["STATUS_INT"].Value = "重整"; break; case 5: objRow.Cells["STATUS_INT"].Value = "转抄"; break; case 6: objRow.Cells["STATUS_INT"].Value = "审核停止"; break; case 7: objRow.Cells["STATUS_INT"].Value = "退回"; break; default: objRow.Cells["STATUS_INT"].Value = ""; break; } //下嘱医生 objRow.Cells["CREATOR_CHR"].Value = objOrder.m_strCreator; //执行人 objRow.Cells["dtv_Executor"].Value = objOrder.m_strExecutor; /*<==================================================================*/ objRow.Tag = objOrder; }
private void trvAddBills_DoubleClick(object sender, System.EventArgs e) { if (trvAddBills.SelectedNode != null) { if (trvAddBills.SelectedNode.Parent == null) { if (m_intOpenbType == 0) //从医嘱录入打开 { clsBIHOrderInputDomain.clsOtherBillInfo objCurrentBillInfo = (clsBIHOrderInputDomain.clsOtherBillInfo)(trvAddBills.SelectedNode.Tag); objCurrentBillInfo.m_ParentForm = this.m_frmParent; objCurrentBillInfo.m_ParentForm.objController = this.m_frmParent.objController; objCurrentBillInfo.m_mthShowUI(m_frmParent.LoginInfo); m_lngLoadAddBills(); } else if (m_intOpenbType == 1) //从医嘱执行打开 { clsBIHCanExecOrder objOrders = (clsBIHCanExecOrder)(trvAddBills.SelectedNode.Tag); //医嘱类型ID string strOrderCateID = objOrders.m_strOrderDicCateID.Trim(); //医嘱ID string strOrderID = objOrders.m_strOrderID.Trim(); //附加单据ID string strAttachID = GetAttachID(strOrderID); //关系表ID clsRelation_VOArr objRelation = new clsRelation_VOArr(); long lngR = objRelation.m_lngGetRelation("sourceitemid_vchr='" + strOrderID.Trim() + "'"); string strRelationID = objRelation.m_objValues[0].m_strATTARELAID_CHR.Trim(); DataTable dtbAddBills = null; long lngRes = m_lngGetAddBillByOrderID(strOrderID.Trim(), out dtbAddBills); clsT_aid_bih_ordercate_VO objResult = null; clsDcl_InputOrder objTem = new clsDcl_InputOrder(); lngRes = objTem.m_lngGetAidOrderCateByID(strOrderCateID, out objResult); if (lngRes <= 0 || objResult == null) { return; } string strDllName = objResult.m_strDLLNAME_VCHR; string strClassName = objResult.m_strCLASSNAME_VCHR; string strInsertName = objResult.m_strOPRADD_VCHR; string strUpdateName = objResult.m_strOPRUPD_VCHR; System.Reflection.Assembly objAsm = System.Reflection.Assembly.LoadFrom(strDllName); if (objAsm == null) { return; } object[] objParams = new object[1]; objParams[0] = strAttachID.Trim(); object obj; try { obj = objAsm.CreateInstance(strClassName, true, System.Reflection.BindingFlags.Default, null, objParams, null, new object[0] { }); } catch (System.Exception err) { string strMsg = err.Message.ToString(); MessageBox.Show(strMsg); return; } if (obj == null) { return; } //打开窗体 ((Form)obj).ShowDialog(); Type objType = obj.GetType(); System.Reflection.PropertyInfo objMi = objType.GetProperty("m_StrRecordID"); string strAddBillRecordID = objMi.GetValue(obj, null).ToString(); if (strAddBillRecordID.Trim() != "") { m_lngSaveAddBill(strAddBillRecordID.Trim(), strRelationID, strOrderID); } return; } } } }