Ejemplo n.º 1
0
        /// <summary>
        /// 构造函数 适用单签名
        /// </summary>
        public clsCheckSignersController()
        {
            clsSignature_srv objServ =
                (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

            long lngRes = objServ.m_lngGetConfigBySettingID("3002", out strReturnSetting);
            //objServ.Dispose();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 验证签名者
        /// </summary>
        public void m_mthVerifySiger()
        {
            try
            {
                m_objViewer.Cursor = System.Windows.Forms.Cursors.WaitCursor;
                if (m_objViewer.m_lsvItemList.Items.Count > 0 && m_objViewer.m_lsvItemList.SelectedItems.Count > 0)
                {
                    #region 验证方式
                    string           strReturnSetting = string.Empty;
                    clsSignature_srv objServ          =
                        (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

                    long lngRes = objServ.m_lngGetConfigBySettingID("3002", out strReturnSetting);
                    //objServ.Dispose();
                    if (strReturnSetting != null)
                    {
                        switch (strReturnSetting)
                        {
                        case "0":                                //无需验证
                            break;

                        case "1":                                //密码验证
                            if (!m_blnCheckEmployeeSignByPwd(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[5].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text))
                            {
                                return;
                            }
                            break;

                        case "2":                                //key盘验证
                            if (!m_blnCheckEmployeeSignByKey(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[5].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text))
                            {
                                return;
                            }
                            break;

                        case "3":                                //指纹验证
                            if (!m_blnCheckEmployeeSignByFinger(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[5].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text))
                            {
                                return;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    #endregion

                    m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[2].Text = "通过";
                }
            }
            finally
            {
                m_objViewer.Cursor = System.Windows.Forms.Cursors.Default;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取所有有效员工
        /// </summary>
        public void m_mthGetAllEmployee()
        {
            clsSignature_srv objDomain =
                (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

            try
            {
                long lngRes = objDomain.m_lngGetEmployeeSignWithoutDept(null, 0, out dt);
            }
            catch (Exception exp)
            {
                dt = null;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(exp);
                MessageBox.Show("无法获取签名值", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 保存信息
        /// 包括保存前验证,此调用适用还有多签名的表单
        /// </summary>
        /// <param name="p_byeContent">对象字节</param>
        /// <param name="p_strForm">窗体ID</param>
        /// <param name="p_strRecordID">记录ID,通常为住院号+住院时间 || 住院号+记录时间</param>
        /// <returns>返回9不需要电子签名,返回1为成功电子签名,其他均视为失败 返回-1为中止</returns>
        public long CheckSigner(Object p_objContent, clsEmrDigitalSign_VO p_objSign_VO)
        {
            long lngRes = 0;

            #region 验证方式
            if (strReturnSetting != null)
            {
                switch (strReturnSetting)
                {
                case "0":                        //无需验证
                    break;

                case "1":                        //密码验证
//						if(!m_blnCheckEmployeeSignByPwd(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text,m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text))
//							return;
                    break;

                case "2":                        //key盘验证

                    #region 是否检测到key盘
                    clsSignCert_VO objCert = new clsSignCert_VO();
                    clsDigitalSign obj     = new clsDigitalSign();
                    long           lngR    = obj.GetSpecifyCert(out objCert);
                    if (objCert == null)
                    {
                        MessageBox.Show("检测不到Key盘。不能继续进行操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return(-1);
                    }
                    #endregion

                    #region 根据配置检查是否要与当前登录用户一致
                    clsSignature_srv objServ =
                        (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

                    string strCheckLogin = string.Empty;
                    lngRes = objServ.m_lngGetConfigBySettingID("3007", out strCheckLogin);

                    if (strCheckLogin == "1")
                    {
                        if (com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentEmployee.m_strEMPKEY_VCHR != objCert.m_strSerialNumber.Trim())
                        {
                            MessageBox.Show("Key持有人" + objCert.m_strCersName.Trim() + "不是当前登录用户,不能继续操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(-1);
                        }
                    }


                    #endregion

                    #region 检测Key持有者是否在签名集合中
                    //前提一定有签名存在,取值是已做判断
                    bool blnConfirmSign = false;
                    for (int i = 0; i < objSignerArr.Count; i++)
                    {
                        if (((clsEmrEmployeeBase_VO)objSignerArr[i]).m_strEMPKEY_VCHR.Trim() == objCert.m_strSerialNumber.Trim())
                        {
                            blnConfirmSign = true;
                            break;
                        }
                    }
                    if (blnConfirmSign != true)
                    {
                        MessageBox.Show("Key持有人" + objCert.m_strCersName.Trim() + "未在签名集合中,不能继续操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return(-1);
                    }
                    #endregion

                    #region 多签名时若要无痕迹修改需要验证所有签名者
                    if (blnMark)
                    {
                        if (objSignerArr.Count > 1)
                        {
                            frmVerifySigners frm = new frmVerifySigners(objSignerArr);
                            if (frm.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                            {
                                MessageBox.Show("未能验证所有签名者,不能继续无痕迹修改操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return(-1);
                            }
                        }
                    }
                    #endregion

                    #region 保存签名信息
                    try
                    {
                        if (p_objContent == null)
                        {
                            return(-1);
                        }
                        bool blncheck = false;
                        clsDigitalSign_domain objSvc = new clsDigitalSign_domain();
                        objSvc.m_lngCheckNeedToSign(p_objSign_VO.m_strFORMID_VCHR, out blncheck);
                        if (blncheck)
                        {
                            MemoryStream    ms        = new MemoryStream();
                            BinaryFormatter formatter = new BinaryFormatter();
                            formatter.Serialize(ms, p_objContent);
                            byte[] bys = ms.ToArray();
                            //哈希
                            HashAlgorithm MD5      = HashAlgorithm.Create("MD5");
                            byte[]        Hashbyte = MD5.ComputeHash(bys);

                            //数字签名
                            string strContent = System.Text.Encoding.UTF8.GetString(Hashbyte);
                            string strCode    = obj.sign(strContent, 0);
                            if (strCode == null)
                            {
                                return(-1);
                            }
                            clsEmrDigitalSign_VO objSign = new clsEmrDigitalSign_VO();
                            objSign.m_datSIGNDATE_DAT      = DateTime.Now;
                            objSign.m_bteCONTENT_TXT       = Hashbyte;
                            objSign.m_strDSCONTENT_TXT     = strCode;
                            objSign.m_strSIGNNAME_VCHR     = objCert.m_strCersName;                              //clsEMRLogin.LoginInfo.m_strEmpName;
                            objSign.m_strSIGNIDID_VCHR     = p_objSign_VO.m_strSIGNIDID_VCHR;
                            objSign.m_strFORMID_VCHR       = p_objSign_VO.m_strFORMID_VCHR;
                            objSign.m_strFORMRECORDID_VCHR = p_objSign_VO.m_strFORMRECORDID_VCHR;
                            objSign.m_strRegisterId        = p_objSign_VO.m_strRegisterId;
                            lngRes = objSvc.m_lngAddDigitalSign(objSign);
                        }
                        else
                        {
                            lngRes = 9;
                        }
                    }
                    catch (Exception exp)
                    {
                        //异常
                        com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                        bool blnRes = objLogger.LogError(exp);
                        lngRes = -1;
                    }
                    #endregion

                    break;

                case "3":                        //指纹验证
//						if (!m_blnCheckEmployeeSignByFinger(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text,m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text))
//							return;
                    break;

                default:
                    break;
                }
            }
            #endregion

            return(lngRes);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 选择签名者
        /// </summary>
        public void m_thSelectEmployee()
        {
            try
            {
                m_objViewer.Cursor = System.Windows.Forms.Cursors.WaitCursor;
                if (m_objViewer.m_lsvItemList.Items.Count > 0 && m_objViewer.m_lsvItemList.SelectedItems.Count > 0)
                {
                    //是否身份验证
                    if (m_objViewer.m_blnIsverify)
                    {
                        #region 验证方式
                        string           strReturnSetting = string.Empty;
                        clsSignature_srv objServ          =
                            (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

                        long lngRes = objServ.m_lngGetConfigBySettingID("3002", out strReturnSetting);
                        //objServ.Dispose();
                        if (strReturnSetting != null)
                        {
                            switch (strReturnSetting)
                            {
                            case "0":    //无需验证
                                break;

                            case "1":    //密码验证
                                if (!m_blnCheckEmployeeSignByPwd(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text))
                                {
                                    return;
                                }
                                break;

                            case "2":    //key盘验证
                                if (!m_blnCheckEmployeeSignByKey(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text))
                                {
                                    return;
                                }
                                break;

                            case "3":    //指纹验证
                                if (!m_blnCheckEmployeeSignByFinger(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text, m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text))
                                {
                                    return;
                                }
                                break;

                            default:
                                break;
                            }
                        }
                        #endregion

                        if (m_objViewer.m_StrEmployeeID != m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text)
                        {
                            frmVerifyByPwd frmPwd = new frmVerifyByPwd(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text);
                            if (frmPwd.ShowDialog() != DialogResult.OK)
                            {
                                MessageBox.Show("对不起," + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text + " 签名密码认证失败。", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            //string empId = string.Empty;
                            //DialogResult dlg = com.digitalwave.iCare.gui.HIS.clsPublic.m_dlgConfirm(out empId);
                            //if (dlg == DialogResult.Yes && m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text == empId)
                            //{
                            //}
                            //else
                            //{
                            //    MessageBox.Show("对不起," + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text + " 签名密码认证失败。", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            //    return;
                            //}
                        }
                    }

                    //修改以适应以TextBoxBase为基类的输入框
                    if (m_objViewer.m_objSelectedControl is TextBoxBase)
                    {
                        //case "System.Windows.Forms.TextBox":
                        TextBoxBase txt = (TextBoxBase)(m_objViewer.m_objSelectedControl);
                        if (m_objViewer.m_BlnIsMultiSignAndNoTag)
                        {
                            if (txt.Text.Trim() != string.Empty)
                            {
                                txt.Text += ";" + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text;
                            }
                            else
                            {
                                txt.Text = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text;
                            }
                        }
                        else
                        {
                            clsEmrEmployeeBase_VO p_objEmployeeBase1 = new clsEmrEmployeeBase_VO();
                            //员工基本信息(最小集合)
                            p_objEmployeeBase1.m_strEMPID_CHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text;
                            p_objEmployeeBase1.m_strLASTNAME_VCHR     = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text; //姓名
                            p_objEmployeeBase1.m_strTECHNICALRANK_CHR = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text; //职称
                            p_objEmployeeBase1.m_strEMPNO_CHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[2].Text; //工号
                            p_objEmployeeBase1.m_strPYCODE_VCHR       = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[3].Text; //助记码
                            p_objEmployeeBase1.m_strEMPKEY_VCHR       = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[6].Text;
                            p_objEmployeeBase1.m_strEMPPWD_VCHR       = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[5].Text;
                            p_objEmployeeBase1.m_strLEVEL_CHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[7].Text;
                            p_objEmployeeBase1.m_StrHistroyLevel      = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[7].Text;
                            p_objEmployeeBase1.m_strTechnicalRank     = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text;//职称
                            p_objEmployeeBase1.m_intSTATUS_INT        = -9;
                            if (m_objViewer.m_BlnIsShowLevel)
                            {
                                p_objEmployeeBase1.m_blnIsShowTechnicalRank = true;
                                txt.Text = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text + " " + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text;
                            }
                            else
                            {
                                p_objEmployeeBase1.m_blnIsShowTechnicalRank = false;
                                txt.Text = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text;
                            }
                            txt.Tag = p_objEmployeeBase1;
                        }
                    }
                    else if (m_objViewer.m_objSelectedControl is ListView)
                    {
                        //case "System.Windows.Forms.ListView" :
                        ListView lsv = (ListView)(m_objViewer.m_objSelectedControl);
                        for (int i = 0; i < lsv.Items.Count; i++)
                        {
                            if (m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text == lsv.Items[i].SubItems[1].Text)//ID比较
                            {
                                MessageBox.Show("对不起,签名不能重复,请重新选择!", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }
                        //名称
                        ListViewItem lviNewItem = null; // + "(" + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text + ")");
                        if (m_objViewer.m_BlnIsShowLevel)
                        {
                            lviNewItem = new ListViewItem(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text + " " + m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text);
                        }
                        else
                        {
                            lviNewItem = new ListViewItem(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text);
                        }
                        //ID 检查重复用
                        lviNewItem.SubItems.Add(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text);
                        //级别 排序用
                        lviNewItem.SubItems.Add(m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[7].Text);
                        lviNewItem.SubItems.Add(string.Empty);

                        clsEmrEmployeeBase_VO p_objEmployeeBase = new clsEmrEmployeeBase_VO();
                        //员工基本信息(最小集合)
                        p_objEmployeeBase.m_strEMPID_CHR           = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[4].Text;
                        p_objEmployeeBase.m_strLASTNAME_VCHR       = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[0].Text; //姓名
                        p_objEmployeeBase.m_strTECHNICALRANK_CHR   = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text; //职称
                        p_objEmployeeBase.m_strTechnicalRank       = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[1].Text; //职称
                        p_objEmployeeBase.m_strEMPNO_CHR           = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[2].Text; //工号
                        p_objEmployeeBase.m_strPYCODE_VCHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[3].Text; //助记码
                        p_objEmployeeBase.m_strEMPKEY_VCHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[6].Text;
                        p_objEmployeeBase.m_strEMPPWD_VCHR         = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[5].Text;
                        p_objEmployeeBase.m_strLEVEL_CHR           = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[7].Text;
                        p_objEmployeeBase.m_StrHistroyLevel        = m_objViewer.m_lsvItemList.SelectedItems[0].SubItems[7].Text;
                        p_objEmployeeBase.m_intSTATUS_INT          = -9;
                        p_objEmployeeBase.m_blnIsShowTechnicalRank = m_objViewer.m_BlnIsShowLevel;

                        lviNewItem.Tag = p_objEmployeeBase;

                        //保证职称高的在前面 排序
                        lsv.Items.Add(lviNewItem);
                        if (m_objViewer.m_BlnIsSortingByLevel)
                        {
                            clsListViewColumnSorter lsvs = new clsListViewColumnSorter(false);
                            lsvs.m_IntColumn       = 2;
                            lsv.ListViewItemSorter = lsvs;
                            lsv.Sort();
                        }
                    }

                    if (m_objViewer.chkMul.Checked == false)
                    {
                        m_objViewer.DialogResult = DialogResult.OK;
                        m_objViewer.Close();
                    }
                }
            }
            finally
            {
                m_objViewer.Cursor = System.Windows.Forms.Cursors.Default;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取签名列表
        /// </summary>
        public void m_thGetEmployee()
        {
            clsSignature_srv objDomain = null;

            //if (clsDBConnectionManager.IsDBAvailable)
            {
                objDomain = (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));
            }

            try
            {
                switch (m_objViewer.m_intType)
                {
                case -1:    //医生签名常用值

                    ////if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithoutDept(null, 1, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        view.RowFilter = "technicallevel_chr like '5%'";
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;

                case -2:    //护士签名常用值
                    //if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithoutDept(null, 2, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        view.RowFilter = "technicallevel_chr like '4%'";
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;

                case -5:    //全部员工常用值
                    //if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithoutDept(null, 0, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;

                case -3:    //特定部门医生签名常用值
                    //if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithDept(null, 1, m_objViewer.m_StrDeptID, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        view.RowFilter = "[deptid_chr] = '" + m_objViewer.m_StrDeptID + "' and technicallevel_chr like '5%'";
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;

                case -4:    //特定部门下护士签名常用值
                    //if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithDept(null, 2, m_objViewer.m_StrDeptID, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        view.RowFilter = "[deptid_chr] = '" + m_objViewer.m_StrDeptID + "' and technicallevel_chr like '4%'";
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;

                case -7:    //员工所属部门下医生签名常用值
                    objDomain.m_lngGetEmployeeSignWithEmployee(null, 1, m_objViewer.m_StrEmployeeID, out dt);
                    break;

                case -8:    //员工所属部门下护士签名常用值
                    objDomain.m_lngGetEmployeeSignWithEmployee(null, 2, m_objViewer.m_StrEmployeeID, out dt);
                    break;

                case -9:    //员工所属部门科主任签名常用值
                    //objDomain.m_lngGetDirectorSignWithEmployee(null, 10, m_objViewer.m_StrEmployeeID, out dt);
                    objDomain.m_lngGetEmployeeSignWithDept(null, 10, m_objViewer.m_StrDeptID, out dt);
                    break;

                case -10:    //员工所属部门护士长签名常用值
                    //objDomain.m_lngGetDirectorSignWithEmployee(null, 20, m_objViewer.m_StrEmployeeID, out dt);
                    objDomain.m_lngGetEmployeeSignWithDept(null, 20, m_objViewer.m_StrDeptID, out dt);
                    break;

                case -11:    //员工所属部门全部员工签名常用值
                    objDomain.m_lngGetDirectorSignWithEmployee(null, 0, m_objViewer.m_StrEmployeeID, out dt);
                    break;

                default:    //特定部门全部员工
                    //if (clsDBConnectionManager.IsDBAvailable)
                    //{
                    objDomain.m_lngGetEmployeeSignWithDept(null, 0, m_objViewer.m_StrDeptID, out dt);
                    //}
                    //else
                    //{
                    //    CacheManager cache = CacheFactory.GetCacheManager("EmployeeSign");
                    //    if (cache != null && cache.DataSource != null)
                    //    {
                    //        DataView view = ((DataTable)cache.DataSource).DefaultView;
                    //        view.RowFilter = "[deptid_chr] = '" + m_objViewer.m_StrDeptID + "'";
                    //        dt = SelectDistinctByField(view.ToTable(), "empid_chr");
                    //    }
                    //}
                    break;
                }
            }
            catch (Exception exp)
            {
                dt = null;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(exp);
                MessageBox.Show("无法获取签名值", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                //objDomain.Dispose();
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 删除表单验证
        /// </summary>
        /// <param name="p_objSignArr">签名者集合</param>
        /// <param name="p_objOperator">操作者集合</param>
        /// <returns>返回 false=不可以删除 true=可以删除</returns>
        public bool m_mthIsDelete(clsEmrEmployeeBase_VO[] p_objSignArr, clsEmrEmployeeBase_VO p_objOperator)
        {
            bool blnReturn = false;

            if (p_objOperator == null || p_objOperator == null)
            {
                MessageBox.Show("没有获取足够的验证信息,不能继续进行操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(blnReturn);
            }
            try
            {
                //确认方式
                #region 验证方式
                string           strReturnSetting = string.Empty;
                clsSignature_srv objServ          =
                    (clsSignature_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsSignature_srv));

                long lngRes = objServ.m_lngGetConfigBySettingID("3003", out strReturnSetting);
                //objServ.Dispose();
                if (strReturnSetting != null)
                {
                    switch (strReturnSetting)
                    {
                    case "0":    //无需验证
                        blnReturn = true;
                        break;

                    case "1":    //密码验证
                        blnReturn = true;
                        break;

                    case "2":    //key盘验证
                        //key操作类
                        clsDigitalSign objsign = new clsDigitalSign();
                        //获取证书
                        clsSignCert_VO objCert = new clsSignCert_VO();
                        long           lngR    = objsign.GetSpecifyCert(out objCert);
                        if (objCert == null)
                        {
                            MessageBox.Show("检测不到Key盘。不能继续进行操作", "iCare Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(false);
                        }
                        //检查当前操作者与key是否一致
                        if (objsign.currentCerts.m_strSerialNumber.Trim() != p_objOperator.m_strEMPKEY_VCHR.Trim())
                        {
                            blnReturn = false;
                            break;
                        }
                        //虚拟签名使弹出密码窗口
                        string strContentTemp = null;
                        strContentTemp = objsign.sign("1", 0);
                        if (strContentTemp == null)
                        {
                            blnReturn = false;
                        }
                        else
                        {
                            blnReturn = true;
                        }
                        break;

                    case "3":    //指纹验证
                        blnReturn = true;
                        break;

                    default:
                        blnReturn = true;
                        break;
                    }
                }
                #endregion
                //验证方式
            }
            catch (Exception exp)
            {
                blnReturn = false;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(exp);
            }
            return(blnReturn);
        }