/// <summary> /// /// </summary> public void m_mthGeSampleStatSpec() { DataTable dtbResult; if (string.IsNullOrEmpty(m_objViewer.cbxGroup.Text) && m_objViewer.dgvCheckItem.Rows.Count < 2) { MessageBox.Show("请选择专业组或检验项目 !"); return; } List <EnitySapleMedSpec> data = new List <EnitySapleMedSpec>(); string groupId = string.Empty; string enmergencyFlg = string.Empty; string patType = string.Empty; string dteStart = m_objViewer.dteStart.Text; string dteEnd = m_objViewer.dteEnd.Text; string applyUnitId = string.Empty; if (m_objViewer.dgvCheckItem.Rows.Count >= 2) { //applyUnitId = m_objViewer.dgvCheckItem.Rows[0].Cells[0].Value.ToString(); for (int i = 0; i < m_objViewer.dgvCheckItem.Rows.Count - 1; i++) { applyUnitId += "'" + m_objViewer.dgvCheckItem.Rows[i].Cells[0].Value.ToString() + "',"; } applyUnitId = "(" + applyUnitId.TrimEnd(',') + ")"; } string strDept = m_objViewer.DeptIdArr; if (m_objViewer.cboEmergency.Text.Trim() == "急诊项目") { enmergencyFlg = "1"; } else if (m_objViewer.cboEmergency.Text.Trim() == "非急诊项目") { enmergencyFlg = "0"; } if (m_objViewer.cboPatType.Text.Trim() == "住院") { patType = "1"; } else if (m_objViewer.cboPatType.Text.Trim() == "门诊") { patType = "2"; } if (m_objViewer.DeptIdArr == "'0000001'") { strDept = string.Empty; } foreach (var item in dicGroup) { if (item.Value == m_objViewer.cbxGroup.Text) { groupId = item.Key; } } if (m_objViewer.dgvCheckItem.Rows.Count >= 2) { groupId = ""; } clsPublic.PlayAvi("findFILE.avi", "正在查询项目信息,请稍候..."); long lngRes = m_objManage.lngGetSampleMedSpec(out dtbResult, dteStart, dteEnd, groupId, applyUnitId, strDept, enmergencyFlg, patType); int flg = 0; if (lngRes > 0 && dtbResult.Rows.Count > 0) { //this.FillDWMicSensitive(dtbResult, strTempName); //m_objViewer.dgvdata.DataSource = dtbResult; foreach (DataRow dr in dtbResult.Rows) { string deptName = dr["deptname"].ToString(); flg = 0; if (m_objViewer.DeptIdArr == "'0000001'") { deptName = "全院"; } for (int i = 0; i < data.Count; i++) { if (deptName == data[i].deptName) { if (dr["pretime"] != DBNull.Value) { if (data[i].preMaxTime < Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { data[i].preMaxTime = Convert.ToDecimal(dr["pretime"]); } if (data[i].preMinTime > Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { data[i].preMinTime = Convert.ToDecimal(dr["pretime"]); } } if (dr["listime"] != DBNull.Value) { if (data[i].lisMaxTime < Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { data[i].lisMaxTime = Convert.ToDecimal(dr["listime"]); } if (data[i].lisMinTime > Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { data[i].lisMinTime = Convert.ToDecimal(dr["listime"]); } } //data[i].sampleCount++; data[i].BBS++; flg = 1; } } if (flg == 0) { EnitySapleMedSpec vo = new EnitySapleMedSpec(); if (dr["lisTime"] == DBNull.Value) { vo.lisMaxTime = 0; vo.lisMinTime = 0; } else if (Convert.ToDecimal(dr["lisTime"]) > 0) { vo.lisMaxTime = Convert.ToDecimal(dr["lisTime"]); vo.lisMinTime = Convert.ToDecimal(dr["lisTime"]); } if (dr["preTime"] == DBNull.Value) { vo.preMaxTime = 0; vo.preMinTime = 0; } else if (Convert.ToDecimal(dr["preTime"]) > 0) { vo.preMaxTime = Convert.ToDecimal(dr["preTime"]); vo.preMinTime = Convert.ToDecimal(dr["preTime"]); } vo.deptName = deptName; vo.BBS = 1; data.Add(vo); } } } else { MessageBox.Show("没有相关数据。"); return; } for (int i = 0; i < data.Count; i++) { DataRow[] preDrr = null; DataRow[] lisDrr = null; if (m_objViewer.DeptIdArr == "'0000001'") { preDrr = dtbResult.Select("pretime > 0", " pretime desc"); lisDrr = dtbResult.Select("listime > 0", " listime desc"); } else { preDrr = dtbResult.Select("deptname = '" + data[i].deptName + "' and pretime > 0", " pretime desc"); lisDrr = dtbResult.Select("deptname = '" + data[i].deptName + "' and listime > 0", " listime desc"); } if (preDrr.Length > 0) { int residPre = preDrr.Length % 2; int remaindPre = preDrr.Length / 2; ////偶数 if (residPre == 0) { data[i].preMidTime = (Convert.ToDecimal(preDrr[remaindPre]["pretime"]) + Convert.ToDecimal(preDrr[remaindPre - 1]["pretime"])) / 2; } else { data[i].preMidTime = Convert.ToDecimal(preDrr[remaindPre]["pretime"]); } } if (lisDrr.Length > 0) { int residLis = lisDrr.Length % 2; int remaindLis = lisDrr.Length / 2; ////偶数 if (residLis == 0) { data[i].lisMidTime = (Convert.ToDecimal(lisDrr[remaindLis]["listime"]) + Convert.ToDecimal(lisDrr[remaindLis - 1]["listime"])) / 2; } else { data[i].lisMidTime = Convert.ToDecimal(lisDrr[remaindLis]["listime"]); } } } m_objViewer.dgvdata.DataSource = data; clsPublic.CloseAvi(); }
/// <summary> /// /// </summary> public void m_mthGeSampleStatSpec2() { DataTable dtbResult; if (string.IsNullOrEmpty(m_objViewer.cbxGroup.Text) && m_objViewer.dgvCheckItem.Rows.Count < 2) { MessageBox.Show("请选择专业组或检验项目 !"); return; } List <EnitySapleMedSpec> data = new List <EnitySapleMedSpec>(); string groupId = string.Empty; string enmergencyFlg = string.Empty; string patType = string.Empty; string dteStart = m_objViewer.dteStart.Text; string dteEnd = m_objViewer.dteEnd.Text; string applyUnitId = string.Empty; if (m_objViewer.dgvCheckItem.Rows.Count >= 2) { for (int i = 0; i < m_objViewer.dgvCheckItem.Rows.Count - 1; i++) { applyUnitId += "'" + m_objViewer.dgvCheckItem.Rows[i].Cells[0].Value.ToString() + "',"; } applyUnitId = "(" + applyUnitId.TrimEnd(',') + ")"; } string strDept = m_objViewer.DeptIdArr; if (m_objViewer.cboEmergency.Text.Trim() == "急诊项目") { enmergencyFlg = "1"; } else if (m_objViewer.cboEmergency.Text.Trim() == "非急诊项目") { enmergencyFlg = "0"; } if (m_objViewer.cboPatType.Text.Trim() == "住院") { patType = "1"; } else if (m_objViewer.cboPatType.Text.Trim() == "门诊") { patType = "2"; } foreach (var item in dicGroup) { if (item.Value == m_objViewer.cbxGroup.Text) { groupId = item.Key; } } if (m_objViewer.dgvCheckItem.Rows.Count >= 2) { groupId = ""; } clsPublic.PlayAvi("findFILE.avi", "正在查询项目信息,请稍候..."); try { long lngRes = m_objManage.lngGetSampleMedSpec(out dtbResult, dteStart, dteEnd, groupId, applyUnitId, strDept, enmergencyFlg, patType); int flgKS = 0; if (lngRes > 0 && dtbResult.Rows.Count > 0) { foreach (DataRow dr in dtbResult.Rows) { flgKS = 0; string deptName = dr["deptname"].ToString(); #region 科室 for (int i = 0; i < data.Count; i++) { if (deptName == data[i].deptName) { flgKS = 1; } } if (flgKS == 0) { EnitySapleMedSpec vo = new EnitySapleMedSpec(); vo.deptName = deptName; data.Add(vo); } #endregion } if (data.Count > 0) { #region 各科室 for (int i = 0; i < data.Count; i++) { DataRow[] drr = dtbResult.Select("deptname = '" + data[i].deptName + "'"); if (drr.Length > 0) { data[i].BBS = drr.Length; for (int drI = 0; drI < drr.Length; drI++) { DataRow dr = drr[drI]; if (drI == 0) { if (dr["pretime"] != DBNull.Value) { data[i].preMaxTime = Convert.ToDecimal(dr["pretime"]); data[i].preMinTime = Convert.ToDecimal(dr["pretime"]); } if (dr["listime"] != DBNull.Value) { data[i].lisMinTime = Convert.ToDecimal(dr["listime"]); data[i].lisMaxTime = Convert.ToDecimal(dr["listime"]); } } if (dr["pretime"] != DBNull.Value) { if (data[i].preMaxTime < Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { data[i].preMaxTime = Convert.ToDecimal(dr["pretime"]); } if (data[i].preMinTime > Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { data[i].preMinTime = Convert.ToDecimal(dr["pretime"]); } } if (dr["listime"] != DBNull.Value) { if (data[i].lisMaxTime < Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { data[i].lisMaxTime = Convert.ToDecimal(dr["listime"]); } if (data[i].lisMinTime > Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { data[i].lisMinTime = Convert.ToDecimal(dr["listime"]); } } } DataRow[] preDrr = dtbResult.Select("deptname = '" + data[i].deptName + "' and pretime > 0", " pretime desc"); DataRow[] lisDrr = dtbResult.Select("deptname = '" + data[i].deptName + "' and listime > 0", " listime desc"); decimal preMidTime = 0; decimal preMidTime1 = 0; if (preDrr.Length > 0) { int residPre = preDrr.Length % 2; int remaindPre = preDrr.Length / 2; if (preDrr[remaindPre]["pretime"] == DBNull.Value) { preMidTime = 0; } else { preMidTime = Convert.ToDecimal(preDrr[remaindPre]["pretime"]); } if (remaindPre > 0) { if (preDrr[remaindPre - 1]["pretime"] == DBNull.Value) { preMidTime1 = 0; } else { preMidTime1 = Convert.ToDecimal(preDrr[remaindPre - 1]["pretime"]); } } ////偶数 if (residPre == 0) { data[i].preMidTime = (preMidTime + preMidTime1) / 2; } else { data[i].preMidTime = preMidTime; } } decimal lisMidTime = 0; decimal lisMidTime1 = 0; if (lisDrr.Length > 0) { int residLis = lisDrr.Length % 2; int remaindLis = lisDrr.Length / 2; if (lisDrr[remaindLis]["listime"] == DBNull.Value) { lisMidTime = 0; } else { lisMidTime = Convert.ToDecimal(lisDrr[remaindLis]["listime"]); } if (remaindLis > 0) { if (lisDrr[remaindLis - 1]["listime"] == DBNull.Value) { lisMidTime1 = 0; } else { lisMidTime1 = Convert.ToDecimal(lisDrr[remaindLis - 1]["listime"]); } } ////偶数 if (residLis == 0) { data[i].lisMidTime = (lisMidTime + lisMidTime1) / 2; } else { data[i].lisMidTime = lisMidTime; } } } } #endregion #region 全院 EnitySapleMedSpec voAll = new EnitySapleMedSpec(); voAll.deptName = "全院"; voAll.BBS = dtbResult.Rows.Count; voAll.preMaxTime = 0; voAll.preMinTime = 99999; voAll.lisMaxTime = 0; voAll.lisMinTime = 99999; data.Add(voAll); foreach (DataRow dr in dtbResult.Rows) { if (dr["pretime"] != DBNull.Value) { if (voAll.preMaxTime < Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { voAll.preMaxTime = Convert.ToDecimal(dr["pretime"]); } if (voAll.preMinTime > Convert.ToDecimal(dr["pretime"]) && Convert.ToDecimal(dr["pretime"]) > 0) { voAll.preMinTime = Convert.ToDecimal(dr["pretime"]); } } if (dr["listime"] != DBNull.Value) { if (voAll.lisMaxTime < Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { voAll.lisMaxTime = Convert.ToDecimal(dr["listime"]); } if (voAll.lisMinTime > Convert.ToDecimal(dr["listime"]) && Convert.ToDecimal(dr["listime"]) > 0) { voAll.lisMinTime = Convert.ToDecimal(dr["listime"]); } } DataRow[] preDrr = dtbResult.Select("pretime > 0", " pretime desc"); DataRow[] lisDrr = dtbResult.Select("listime > 0", " listime desc"); int residPre = preDrr.Length % 2; int remaindPre = preDrr.Length / 2; decimal preMidTime = 0; decimal preMidTime1 = 0; if (preDrr[remaindPre]["pretime"] == DBNull.Value) { preMidTime = 0; } else { preMidTime = Convert.ToDecimal(preDrr[remaindPre]["pretime"]); } if (remaindPre > 0) { if (preDrr[remaindPre - 1]["pretime"] == DBNull.Value) { preMidTime1 = 0; } else { preMidTime1 = Convert.ToDecimal(preDrr[remaindPre - 1]["pretime"]); } } ////偶数 if (residPre == 0) { voAll.preMidTime = (preMidTime + preMidTime1) / 2; } else { voAll.preMidTime = preMidTime; } int residLis = lisDrr.Length % 2; int remaindLis = lisDrr.Length / 2; decimal lisMidTime = 0; decimal lisMidTime1 = 0; if (lisDrr[remaindLis]["listime"] == DBNull.Value) { lisMidTime = 0; } else { lisMidTime = Convert.ToDecimal(lisDrr[remaindPre]["listime"]); } if (remaindLis > 0) { if (lisDrr[remaindLis - 1]["listime"] == DBNull.Value) { lisMidTime1 = 0; } else { lisMidTime1 = Convert.ToDecimal(lisDrr[remaindLis - 1]["listime"]); } } ////偶数 if (residLis == 0) { voAll.lisMidTime = (lisMidTime + lisMidTime1) / 2; } else { voAll.lisMidTime = lisMidTime; } } #endregion } } else { MessageBox.Show("没有相关数据。"); return; } } catch (Exception e) { MessageBox.Show(e.ToString()); } finally { clsPublic.CloseAvi(); } m_objViewer.dgvdata.DataSource = data; }