/// <summary> /// 修改 /// </summary> /// <returns></returns> private long m_lngModify() { long lngRes = 0; try { //从界面获取表单值 string strNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); clsIntensivetendRecordContent_CSDetail objContent = new clsIntensivetendRecordContent_CSDetail(); objContent.m_strINPATIENTID = strRecordInPatientID; objContent.m_dtmINPATIENTDATE = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmMODIFYDATE = DateTime.Parse(strNow); objContent.m_dtmRECORDDATE = m_dtpCreateDate.Value; objContent.m_dtmCREATERECORDDATE = DateTime.Parse(strRecordCreateDate); objContent.m_strRECORDCONTENTAll = m_txtRecordContent.Text; objContent.m_strRECORDCONTENT_RIGHT = m_txtRecordContent.m_strGetRightText(); objContent.m_strRECORDCONTENTXML = m_txtRecordContent.m_strGetXmlText(); objContent.m_dtmOPENDATE = DateTime.Parse(strNow); if (objContent.m_strRECORDCONTENT_RIGHT == null || objContent.m_strRECORDCONTENT_RIGHT == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情观察、护理措施、效果的内容"); return(0); } //获取签名 strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { lsvSign }, ref objContent.objSignerArr, ref strUserIDList, ref strUserNameList); clsIntensivetendRecord_CSService objserv = (clsIntensivetendRecord_CSService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsIntensivetendRecord_CSService)); #region 多签名时验证所有签名者 //电子签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strINPATIENTID.Trim() + "-" + objContent.m_dtmINPATIENTDATE.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterid; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } #endregion lngRes = objserv.m_lngModifyDetail(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
protected override long m_lngSubAddNew() { clsPartogramContent_VO objContent = null; clsPartogramMain_VO objMain = m_objGetMainContentFromGui(out objContent); if (objMain == null || objContent == null) { return(-1); } objMain.m_dtmCREATEDATE_DAT = new clsPublicDomain().m_dtmGetServerTime(); objMain.m_dtmRECORDDATE_DAT = objMain.m_dtmCREATEDATE_DAT; objMain.m_strREGISTERID_CHR = m_objBaseCurrentPatient.m_StrRegisterId; objContent.m_strREGISTERID_CHR = m_objBaseCurrentPatient.m_StrRegisterId; objContent.m_dtmCREATEDATE_DAT = objMain.m_dtmCREATEDATE_DAT; objContent.m_dtmMODIFYDATE_DAT = objMain.m_dtmCREATEDATE_DAT; //数字签名 兼容考虑 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = m_objBaseCurrentPatient.m_StrInPatientID.Trim() + "-" + m_objBaseCurrentPatient.m_DtmSelectedInDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(new object[] { objMain, objContent }, objSign_VO) == -1) { return(-1); } long lngRes = m_objDomain.m_lngAddNewMain(objMain, objContent); if (lngRes > 0) { m_blnIsNew = false; if (m_objPartogramRecord == null) { m_objPartogramRecord = new clsPartogramAll_VO(); } m_objPartogramRecord.m_objPartogramMain = objMain; m_objPartogramRecord.m_objPartogramContent = objContent; } return(lngRes); }
/// <summary> /// 修改 /// </summary> /// <returns></returns> private long m_lngModify() { long lngRes = 0; try { //从界面获取表单值 clsCourseDiseasesRecord objContent = new clsCourseDiseasesRecord(); objContent.m_strInPatientID = strRecordInPatientID; objContent.m_dtmInPatientDate = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmOpenDate = DateTime.Now; objContent.m_dtmCreateDate = DateTime.Parse(strRecordCreateDate); objContent.m_strDiseasesRecordContent = m_txtRecordContent.Text; objContent.m_strDiseasesRecordContentXml = m_txtRecordContent.m_strGetXmlText(); //签名 //foreach(Control ctlSub in this.Controls) //{ // if(ctlSub.Name=="m_txtSign") // { objContent.m_strModifyUserID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; // } //} clsIntensiveTendRecordService objserv = new clsIntensiveTendRecordService(); //电子签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strInPatientID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } lngRes = objserv.m_lngModifyRecordContent(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
/// <summary> /// 保存 /// </summary> /// <returns></returns> private long m_lngSave() { long lngRes = 0; try { //获取服务器时间 string strTimeNow = new clsPublicDomain().m_strGetServerTime(); //从界面获取表单值 clsCourseDiseasesRecord objContent = new clsCourseDiseasesRecord(); objContent.m_strInPatientID = strRecordInPatientID; objContent.m_dtmInPatientDate = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmOpenDate = DateTime.Parse(strTimeNow); objContent.m_dtmCreateDate = m_dtpCreateDate.Value; objContent.m_strDiseasesRecordContent = m_txtRecordContent.Text; //objContent.m_strRecordContent_Right = m_txtRecordContent.m_strGetRightText(); objContent.m_strDiseasesRecordContentXml = m_txtRecordContent.m_strGetXmlText(); objContent.m_strClass = GetClassWith(m_dtpCreateDate.Value); objContent.m_strModifyUserID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; objContent.m_strCreateUserID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; clsIntensiveTendRecordService objserv = new clsIntensiveTendRecordService(); //电子签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strInPatientID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss");; objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } lngRes = objserv.m_lngAddNewRecordContent(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
/// <summary> /// 保存数字签名信息 /// </summary> /// <param name="p_strInsertSql">签名vo</param> /// <param name="p_blnIsHistory">保存到实时表还是历史表(true=历史;false=实时)</param> /// <returns></returns> public long m_lngAddDigitalSign(clsEmrDigitalSign_VO p_objRecord) { long lngRes = 0; try { clsDigitalSign_srv objSvc = (clsDigitalSign_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsDigitalSign_srv)); lngRes = objSvc.m_lngAddDigitalSign(null, p_objRecord); //释放 objSvc = null; } catch (Exception objEx) { com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText(); bool blnRes = objLogger.LogError(objEx); lngRes = 0; } return lngRes; }
private void m_cmdOK_Click(object sender, EventArgs e) { long lngRes = 0; m_objPointArr = m_objGetPointArr(); //数字签名 兼容考虑 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = m_strInPatientIdAndDate; objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(m_objPointArr, objSign_VO) == -1) { return; } if (m_objPointArr != null) { lngRes = m_objDomain.m_lngSetPointToDb(m_objPointArr); } else { lngRes = 1; } if (lngRes > 0) { this.DialogResult = DialogResult.OK; this.Close(); } else { m_objPointArr = null; m_tipMain.Show("保存失败!", this, m_cmdOK.Location, 2000); } }
/// <summary> /// 获取指定单据的最新数字签名信息 /// 先到实时表查,如果实时表没有再到历史表查 /// </summary> /// <param name="p_strFormID">窗体ID</param> /// <param name="p_strFormRecordID">记录号</param> /// <param name="p_blnIsOutPatient">(false=未出过院,无须到历史表获取数据)</param> /// <param name="p_dtbValue">返回表</param> /// <returns></returns> public long m_lngGetDigitalSign(string p_strFormID, string p_strFormRecordID, bool p_blnIsOutPatient, out clsEmrDigitalSign_VO p_objResult) { long lngRes = 0; p_objResult = null; try { clsDigitalSign_srv objSvc = (clsDigitalSign_srv)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsDigitalSign_srv)); DataTable dtbResult = new DataTable(); lngRes = objSvc.m_lngGetDigitalSign(null, p_strFormID, p_strFormRecordID, p_blnIsOutPatient, out dtbResult); if (lngRes > 0 && dtbResult.Rows.Count > 0) { p_objResult = new clsEmrDigitalSign_VO(); byte[] b = { 0x00, 0x12 }; p_objResult.m_intSIGNID_INT = dtbResult.Rows[0]["SIGNID_INT"] == DBNull.Value ? 0 : Convert.ToInt32(dtbResult.Rows[0]["SIGNID_INT"]); p_objResult.m_strFORMID_VCHR = dtbResult.Rows[0]["FORMID_VCHR"] == DBNull.Value ? "" : dtbResult.Rows[0]["SIGNID_INT"].ToString(); p_objResult.m_strFORMRECORDID_VCHR = dtbResult.Rows[0]["FORMRECORDID_VCHR"] == DBNull.Value ? "" : dtbResult.Rows[0]["FORMRECORDID_VCHR"].ToString(); p_objResult.m_bteCONTENT_TXT = (byte[])(dtbResult.Rows[0]["CONTENT_TXT"]); p_objResult.m_strDSCONTENT_TXT = dtbResult.Rows[0]["DSCONTENT_TXT"] == DBNull.Value ? "" : dtbResult.Rows[0]["DSCONTENT_TXT"].ToString(); p_objResult.m_strSIGNNAME_VCHR = dtbResult.Rows[0]["SIGNNAME_VCHR"] == DBNull.Value ? "" : dtbResult.Rows[0]["SIGNNAME_VCHR"].ToString(); p_objResult.m_strSIGNIDID_VCHR = dtbResult.Rows[0]["SIGNIDID_VCHR"] == DBNull.Value ? "" : dtbResult.Rows[0]["SIGNIDID_VCHR"].ToString(); p_objResult.m_datSIGNDATE_DAT = dtbResult.Rows[0]["SIGNDATE_DAT"] == DBNull.Value ? DateTime.Now : DateTime.Parse(dtbResult.Rows[0]["SIGNDATE_DAT"].ToString()); p_objResult.m_strDESCRIPTION_VCHR = dtbResult.Rows[0]["DESCRIPTION_VCHR"] == DBNull.Value ? "" : dtbResult.Rows[0]["DESCRIPTION_VCHR"].ToString(); } //释放 objSvc = null; } catch (Exception objEx) { com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText(); bool blnRes = objLogger.LogError(objEx); } return lngRes; }
/// <summary> /// 验证数字签名 /// </summary> /// <param name="p_strFormID">窗体ID</param> /// <param name="p_strRecordID">记录ID</param> /// <param name="p_blnIsOutPatient">(false=未出过院,无须到历史表获取数据)</param> /// <returns></returns> public long m_lngSignVerify(string p_strFormID, string p_strRecordID, bool p_blnIsOutPatient) { long lngRes = 0; if (strReturnSetting != null) { switch (strReturnSetting) { case "0": //无需验证 break; case "1": //密码验证 break; case "2": //key盘验证 try { if (p_strFormID == null || p_strFormID.Trim().Length == 0) { return(0); } clsDigitalSign_domain objDomin = new clsDigitalSign_domain(); clsEmrDigitalSign_VO objSign = new clsEmrDigitalSign_VO(); clsDigitalSign clsSign = new clsDigitalSign(); //获取表单数字签名信息 lngRes = objDomin.m_lngGetDigitalSign(p_strFormID, p_strRecordID, p_blnIsOutPatient, out objSign); if (objSign == null) { MessageBox.Show("尚未数字签名 无需验证", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); return(0); } string strContent = System.Text.Encoding.UTF8.GetString(objSign.m_bteCONTENT_TXT); //验证 string strReturn = clsSign.verify(strContent, objSign.m_strDSCONTENT_TXT, 0); if (strReturn == null) { MessageBox.Show("签名验证失败,数据不符合", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(strReturn, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } //释放 objDomin = null; } catch (Exception objEx) { com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText(); bool blnRes = objLogger.LogError(objEx); lngRes = 0; } break; case "3": //指纹验证 break; default: break; } } return(lngRes); }
/// <summary> /// 保存 /// </summary> /// <returns></returns> private new long m_lngSave() { long lngRes = 0; try { //获取服务器时间 string strTimeNow = new clsPublicDomain().m_strGetServerTime(); //从界面获取表单值 clsGeneralNurseRecordContent_CSDetail objContent = new clsGeneralNurseRecordContent_CSDetail(); objContent.m_strINPATIENTID = strRecordInPatientID; objContent.m_dtmINPATIENTDATE = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmOPENDATE = DateTime.Parse(strTimeNow); objContent.m_dtmMODIFYDATE = DateTime.Parse(strTimeNow); objContent.m_dtmRECORDDATE = DateTime.Parse(m_dtpCreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); objContent.m_dtmCREATERECORDDATE = DateTime.Parse(strTimeNow); objContent.m_strRECORDCONTENTAll = m_txtRecordContent.Text; objContent.m_strRECORDCONTENT_RIGHT = m_txtRecordContent.m_strGetRightText(); objContent.m_strRECORDCONTENTXML = m_txtRecordContent.m_strGetXmlText(); if (objContent.m_strRECORDCONTENT_RIGHT == null || objContent.m_strRECORDCONTENT_RIGHT == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情记录内容"); return(0); } //获取签名 objContent.m_strMODIFYRECORDUSERID = clsEMRLogin.LoginEmployee.m_strEMPID_CHR; objContent.m_strCREATERECORDUSERID = clsEMRLogin.LoginEmployee.m_strEMPID_CHR; if (lsvSign.Items.Count > 0) { objContent.m_strRecordSignNameArr = new string[lsvSign.Items.Count]; objContent.m_strRecordSignIDArr = new string[lsvSign.Items.Count]; for (int i = 0; i < lsvSign.Items.Count; i++) { objContent.m_strRecordSignNameArr[i] = lsvSign.Items[i].SubItems[0].Text.Split(' ').Length > 1 ? lsvSign.Items[i].SubItems[0].Text.Split(' ')[1] : lsvSign.Items[i].SubItems[0].Text; objContent.m_strRecordSignIDArr[i] = lsvSign.Items[i].SubItems[1].Text; } } strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { lsvSign }, ref objContent.objSignerArr, ref strUserIDList, ref strUserNameList); clsGeneralNurseRecord_CSService objserv = (clsGeneralNurseRecord_CSService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsGeneralNurseRecord_CSService)); #region 多签名时验证所有签名者 //数字签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strINPATIENTID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterid; if (objContent.objSignerArr != null) { ArrayList objSignerArr = new ArrayList(); for (int i = 0; i < objContent.objSignerArr.Length; i++) { if (objContent.objSignerArr[i].controlName == "lsvSign" || objContent.objSignerArr[i].controlName == "txtSign") { objSignerArr.Add(objContent.objSignerArr[i].objEmployee); } } clsCheckSignersController objCheck = new clsCheckSignersController(objSignerArr, false); if (objCheck.CheckSigner(objContent, objSign_VO) == -1) { return(-1); } } else { objContent.m_strModifyUserID = MDIParent.OperatorID; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } } #endregion lngRes = objserv.m_lngAddNewDetail(objContent); } catch (Exception ex) { new com.digitalwave.Utility.clsLogText().LogDetailError(ex, false); } return(lngRes); }
/// <summary> /// 修改 /// </summary> /// <returns></returns> private long m_lngModify() { long lngRes = 0; try { //从界面获取表单值 string strNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); clsGeneralNurseRecordContent_CSDetail objContent = new clsGeneralNurseRecordContent_CSDetail(); objContent.m_strINPATIENTID = strRecordInPatientID; objContent.m_dtmINPATIENTDATE = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmMODIFYDATE = DateTime.Parse(strNow); objContent.m_dtmRECORDDATE = m_dtpCreateDate.Value; objContent.m_dtmCREATERECORDDATE = DateTime.Parse(strRecordCreateDate); objContent.m_strRECORDCONTENTAll = m_txtRecordContent.Text; objContent.m_strRECORDCONTENT_RIGHT = m_txtRecordContent.m_strGetRightText(); objContent.m_strRECORDCONTENTXML = m_txtRecordContent.m_strGetXmlText(); objContent.m_dtmOPENDATE = DateTime.Parse(strNow); if (objContent.m_strRECORDCONTENT_RIGHT == null || objContent.m_strRECORDCONTENT_RIGHT == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情观察、护理措施、效果的内容"); return(0); } //获取签名 if (lsvSign.Items.Count > 0) { objContent.m_strRecordSignNameArr = new string[lsvSign.Items.Count]; objContent.m_strRecordSignIDArr = new string[lsvSign.Items.Count]; for (int i = 0; i < lsvSign.Items.Count; i++) { objContent.m_strRecordSignNameArr[i] = lsvSign.Items[i].SubItems[0].Text; objContent.m_strRecordSignIDArr[i] = lsvSign.Items[i].SubItems[1].Text; } } //获取签名 strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { lsvSign }, ref objContent.objSignerArr, ref strUserIDList, ref strUserNameList); /* * objContent.m_strMODIFYRECORDUSERID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; * objContent.objSignerArr = new clsEmrSigns_VO[1]; * objContent.objSignerArr[0] = new clsEmrSigns_VO(); * objContent.objSignerArr[0].objEmployee = new clsEmrEmployeeBase_VO(); * objContent.objSignerArr[0].objEmployee = (clsEmrEmployeeBase_VO)(txtSign.Tag); * objContent.objSignerArr[0].controlName = "txtSign"; * objContent.objSignerArr[0].m_strFORMID_VCHR = "frmGeneralNurseRecord_CSCon";//注意大小写 * objContent.objSignerArr[0].m_strREGISTERID_CHR = com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strREGISTERID_CHR; */ clsGeneralNurseRecord_CSService objserv = (clsGeneralNurseRecord_CSService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsGeneralNurseRecord_CSService)); #region 多签名时验证所有签名者 //电子签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strINPATIENTID.Trim() + "-" + objContent.m_dtmINPATIENTDATE.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterid; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } #endregion lngRes = objserv.m_lngModifyDetail(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
/// <summary> /// 修改 /// </summary> /// <returns></returns> private long m_lngModify() { long lngRes = 0; try { //从界面获取表单值 string strNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); clsGeneralNurseRecordContent_GXDetail objContent = new clsGeneralNurseRecordContent_GXDetail(); objContent.m_strINPATIENTID = strRecordInPatientID; objContent.m_dtmINPATIENTDATE = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmMODIFYDATE = DateTime.Parse(strNow); objContent.m_dtmRECORDDATE = m_dtpCreateDate.Value; objContent.m_dtmCREATERECORDDATE = DateTime.Parse(strRecordCreateDate); objContent.m_strRECORDCONTENTAll = m_txtRecordContent.Text; objContent.m_strRECORDCONTENT_RIGHT = m_txtRecordContent.m_strGetRightText(); objContent.m_strRECORDCONTENTXML = m_txtRecordContent.m_strGetXmlText(); objContent.m_dtmOPENDATE = DateTime.Parse(strNow); if (objContent.m_strRECORDCONTENT_RIGHT == null || objContent.m_strRECORDCONTENT_RIGHT == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情记录内容"); return(0); } //objContent.m_strMODIFYRECORDUSERID = MDIParent.OperatorID; // //签名 // foreach(Control ctlSub in this.Controls) // { // if(ctlSub.Name=="m_txtEmpSign") // { // objContent.m_strMODIFYRECORDUSERID = ((clsEmployee)ctlSub.Tag).m_StrEmployeeID; // } // } //获取签名 objContent.m_strMODIFYRECORDUSERID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; objContent.objSignerArr = new clsEmrSigns_VO[1]; objContent.objSignerArr[0] = new clsEmrSigns_VO(); objContent.objSignerArr[0].objEmployee = new clsEmrEmployeeBase_VO(); objContent.objSignerArr[0].objEmployee = (clsEmrEmployeeBase_VO)(txtSign.Tag); objContent.objSignerArr[0].controlName = "txtSign"; objContent.objSignerArr[0].m_strFORMID_VCHR = "frmGeneralNurseRecord_GXCon";//注意大小写 objContent.objSignerArr[0].m_strREGISTERID_CHR = com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strREGISTERID_CHR; clsGeneralNurseRecord_GXService objserv = (clsGeneralNurseRecord_GXService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsGeneralNurseRecord_GXService)); #region 多签名时验证所有签名者 //objContent.m_strModifyUserID = MDIParent.OperatorID; //电子签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strINPATIENTID.Trim() + "-" + objContent.m_dtmINPATIENTDATE.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterid; //objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } #endregion lngRes = objserv.m_lngModifyDetail(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
/// <summary> /// 从界面获取特殊记录的值。如果界面值出错,返回null。 /// </summary> /// <returns></returns> protected clsICUNurseStatisticsValue m_objGetContentFromGUI() { clsICUNurseStatisticsValue objValue = new clsICUNurseStatisticsValue(); objValue.m_strLIQUID1 = m_txtIN1.Text; objValue.m_strLIQUID1_RIGHT = m_txtIN1.m_strGetRightText(); objValue.m_strLIQUID1XML = m_txtIN1.m_strGetXmlText(); objValue.m_strLIQUID2 = m_txtIN2.Text; objValue.m_strLIQUID2_RIGHT = m_txtIN2.m_strGetRightText(); objValue.m_strLIQUID2XML = m_txtIN2.m_strGetXmlText(); objValue.m_strLIQUID3 = m_txtIN3.Text; objValue.m_strLIQUID3_RIGHT = m_txtIN3.m_strGetRightText(); objValue.m_strLIQUID3XML = m_txtIN3.m_strGetXmlText(); objValue.m_strLIQUID4 = m_txtIN4.Text; objValue.m_strLIQUID4_RIGHT = m_txtIN4.m_strGetRightText(); objValue.m_strLIQUID4XML = m_txtIN4.m_strGetXmlText(); objValue.m_strLIQUID5 = m_txtIN5.Text; objValue.m_strLIQUID5_RIGHT = m_txtIN5.m_strGetRightText(); objValue.m_strLIQUID5XML = m_txtIN5.m_strGetXmlText(); objValue.m_strFBOOL = m_txtIN6.Text; objValue.m_strFBOOL_RIGHT = m_txtIN6.m_strGetRightText(); objValue.m_strFBOOLXML = m_txtIN6.m_strGetXmlText(); objValue.m_strPLASMA = m_txtIN7.Text; objValue.m_strPLASMA_RIGHT = m_txtIN7.m_strGetRightText(); objValue.m_strPLASMAXML = m_txtIN7.m_strGetXmlText(); objValue.m_strNOSE1 = m_txtIN8.Text; objValue.m_strNOSE1_RIGHT = m_txtIN8.m_strGetRightText(); objValue.m_strNOSE1XML = m_txtIN8.m_strGetXmlText(); objValue.m_strNOSE2 = m_txtIN9.Text; objValue.m_strNOSE2_RIGHT = m_txtIN9.m_strGetRightText(); objValue.m_strNOSE2XML = m_txtIN9.m_strGetXmlText(); objValue.m_strINTOTAL = m_txtIN10.Text; objValue.m_strINTOTAL_RIGHT = m_txtIN10.m_strGetRightText(); objValue.m_strINTOTALXML = m_txtIN10.m_strGetXmlText(); objValue.m_strDRAIN1 = m_txtOUT1.Text; objValue.m_strDRAIN1_RIGHT = m_txtOUT1.m_strGetRightText(); objValue.m_strDRAIN1XML = m_txtOUT1.m_strGetXmlText(); objValue.m_strDRAIN2 = m_txtOUT2.Text; objValue.m_strDRAIN2_RIGHT = m_txtOUT2.m_strGetRightText(); objValue.m_strDRAIN2XML = m_txtOUT2.m_strGetXmlText(); objValue.m_strDRAIN3 = m_txtOUT3.Text; objValue.m_strDRAIN3_RIGHT = m_txtOUT3.m_strGetRightText(); objValue.m_strDRAIN3XML = m_txtOUT3.m_strGetXmlText(); objValue.m_strDRAIN4 = m_txtOUT4.Text; objValue.m_strDRAIN4_RIGHT = m_txtOUT4.m_strGetRightText(); objValue.m_strDRAIN4XML = m_txtOUT4.m_strGetXmlText(); objValue.m_strDRAIN5 = m_txtOUT5.Text; objValue.m_strDRAIN5_RIGHT = m_txtOUT5.m_strGetRightText(); objValue.m_strDRAIN5XML = m_txtOUT5.m_strGetXmlText(); objValue.m_strSTOOL = m_txtOUT6.Text; objValue.m_strSTOOL_RIGHT = m_txtOUT6.m_strGetRightText(); objValue.m_strSTOOLXML = m_txtOUT6.m_strGetXmlText(); objValue.m_strPISS = m_txtOUT7.Text; objValue.m_strPISS_RIGHT = m_txtOUT7.m_strGetRightText(); objValue.m_strPISSXML = m_txtOUT7.m_strGetXmlText(); objValue.m_strOUTTOTAL = m_txtOUT8.Text; objValue.m_strOUTTOTAL_RIGHT = m_txtOUT8.m_strGetRightText(); objValue.m_strOUTTOTALXML = m_txtOUT8.m_strGetXmlText(); objValue.m_dtmSTATISTICSEND_DAT = Convert.ToDateTime(m_dtpCreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); objValue.m_dtmSTATISTICSSTART_DAT = Convert.ToDateTime(m_dtpLastStatTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); if (chkModifyWithoutMatk.Checked) { objValue.m_intMarkStatus = 0; } else { objValue.m_intMarkStatus = 1; } strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { lsvSign }, ref objValue.objSignerArr, ref strUserIDList, ref strUserNameList); #region 多签名时验证所有签名者 并保存 //数字签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = m_objBaseCurrentPatient.m_StrInPatientID.Trim() + "-" + m_objBaseCurrentPatient.m_DtmSelectedInDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; if (objValue.objSignerArr != null) { ArrayList objSignerArr = new ArrayList(); for (int i = 0; i < objValue.objSignerArr.Length; i++) { if (objValue.objSignerArr[i].controlName == "lsvSign") { objSignerArr.Add(objValue.objSignerArr[i].objEmployee); } } clsCheckSignersController objCheck = new clsCheckSignersController(objSignerArr, false); if (objCheck.CheckSigner(objValue, objSign_VO) == -1) { return(null); } } else { objValue.m_strModifyUserID = MDIParent.OperatorID; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objValue, objSign_VO) == -1) { return(null); } } #endregion return(objValue); }
/// <summary> /// 修改 /// </summary> /// <returns></returns> private long m_lngModify() { long lngRes = 0; try { //从界面获取表单值 string strNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); clsIntensiveTendRecordDetail_GX objContent = new clsIntensiveTendRecordDetail_GX(); objContent.m_strInPatientID = strRecordInPatientID; objContent.m_dtmInPatientDate = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmModifyDate = DateTime.Parse(strNow); objContent.m_dtmDETAILRECORDDATE = Convert.ToDateTime(m_dtpCreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); objContent.m_dtmOpenDate = DateTime.Parse(strRecordCreateDate); objContent.m_strDETAILCONTENT = m_txtRecordContent.Text; objContent.m_strDETAILCONTENTXML = m_txtRecordContent.m_strGetXmlText(); if (m_txtRecordContent.m_strGetRightText() == null || m_txtRecordContent.m_strGetRightText() == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情记录内容"); return(0); } //签名 objContent.m_strModifyUserID = MDIParent.OperatorID; //objContent.m_strDETAILSIGNID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; //objContent.m_strDETAILSIGNNAME = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strLASTNAME_VCHR; //获取签名 strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { txtSign }, ref objContent.objSignerArr, ref strUserIDList, ref strUserNameList); //objContent.objSignerArr = new clsEmrSigns_VO[1]; //objContent.objSignerArr[0] = new clsEmrSigns_VO(); //objContent.objSignerArr[0].objEmployee = new clsEmrEmployeeBase_VO(); //objContent.objSignerArr[0].objEmployee = (clsEmrEmployeeBase_VO)(txtSign.Tag); //objContent.objSignerArr[0].controlName = "txtSign"; //objContent.objSignerArr[0].m_strFORMID_VCHR = "frmGeneralNurseRecord_GXRec";//注意大小写 //objContent.objSignerArr[0].m_strREGISTERID_CHR = com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strREGISTERID_CHR; #region 多签名时验证所有签名者 并保存 //if (objContent.objSignerArr != null) //{ // ArrayList objSignerArr = new ArrayList(); // for (int i = 0; i < objContent.objSignerArr.Length; i++) // { // if (objContent.objSignerArr[i].controlName == "lsvSign" || objContent.objSignerArr[i].controlName == "txtSign") // objSignerArr.Add(objContent.objSignerArr[i].objEmployee); // } // //数字签名 // //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 // string strRecordID = objContent.m_strInPatientID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); ; // clsCheckSignersController objCheck = new clsCheckSignersController(objSignerArr, false); // if (objCheck.CheckSigner(objContent, this.Name, strRecordID) == -1) // return -1; //} //else //{ //objContent.m_strModifyUserID = MDIParent.OperatorID; //数字签名 兼容考虑 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strInPatientID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } //} #endregion clsIntensiveTendRecord_GXService objserv = (clsIntensiveTendRecord_GXService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsIntensiveTendRecord_GXService)); lngRes = objserv.m_lngModifyDetail(objContent); } catch (Exception ex) { string strMsg = ex.Message; } return(lngRes); }
/// <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); }
/// <summary> /// 修改数据 /// </summary> /// <returns></returns> protected override long m_lngSubModify() { long lngRes = 0; clsMiniBloodSugarChk_GXServ objservice = (clsMiniBloodSugarChk_GXServ)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsMiniBloodSugarChk_GXServ)); try { #region 获取内容 //获取内容 m_objRecord.m_strInPatientID = strRecordInPatientID; m_objRecord.m_dtmInPatientDate = DateTime.Parse(strRecordInPatientDate); m_objRecord.m_dtmOpenDate = m_dtpCreateDate.Value; //记录时间取窗体上控件值 m_objRecord.m_dtmCreateDate = DateTime.Now; //创建时间取当前时间 m_objRecord.m_strCreateUserID = clsEMRLogin.LoginInfo.m_strEmpID; m_objRecord.m_dtmModifyDate = DateTime.Now; m_objRecord.m_strMeatType = cmbMealType.Text; m_objRecord.m_strBloodSugar_Right = m_txtValue.m_strGetRightText(); m_objRecord.m_strBloodSugar = m_txtValue.Text; m_objRecord.m_strBloodSugarXML = m_txtValue.m_strGetXmlText(); m_objRecord.m_strDescription = m_txtDesription.Text; //获取lsvsign签名 m_objRecord.objSignerArr = new clsEmrSigns_VO[1]; strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { txtSign }, ref m_objRecord.objSignerArr, ref strUserIDList, ref strUserNameList); //for (int i = 0; i < 1; i++) //{ // m_objRecord.objSignerArr[i] = new clsEmrSigns_VO(); // m_objRecord.objSignerArr[i].objEmployee = new clsEmrEmployeeBase_VO(); // m_objRecord.objSignerArr[i].objEmployee = (clsEmrEmployeeBase_VO)(txtSign.Tag); // m_objRecord.objSignerArr[i].controlName = "txtSign"; // m_objRecord.objSignerArr[i].m_strFORMID_VCHR = "frmMiniBooldSugarContent";//注意大小写 // m_objRecord.objSignerArr[i].m_strREGISTERID_CHR = com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strREGISTERID_CHR; // //痕迹格式 0972,0324, // strUserIDList = strUserIDList + m_objRecord.objSignerArr[i].objEmployee.m_strEMPID_CHR.Trim() + ","; // strUserNameList = strUserNameList + m_objRecord.objSignerArr[i].objEmployee.m_strLASTNAME_VCHR.Trim() + ","; //} m_objRecord.m_strModifyUserID = strUserIDList; #endregion ArrayList objSignerArr = new ArrayList(); for (int i = 0; i < m_objRecord.objSignerArr.Length; i++) { if (m_objRecord.objSignerArr[i].controlName == "lsvSign" || m_objRecord.objSignerArr[i].controlName == "txtSign") { objSignerArr.Add(m_objRecord.objSignerArr[i].objEmployee); } } //数字签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = m_objRecord.m_strInPatientID.Trim() + "-" + m_objRecord.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; clsCheckSignersController objCheck = new clsCheckSignersController(objSignerArr, false); if (objCheck.CheckSigner(m_objRecord, objSign_VO) == -1) { return(-1); } //保存记录 clsPreModifyInfo objModifyInfo = null; lngRes = objservice.m_lngModifyRecoed(null, m_objRecord); } catch (Exception) { throw; } finally { objservice = null; } return(lngRes); }
protected long m_lngAddNewRecord() { //获取服务器时间 string strTimeNow = new clsPublicDomain().m_strGetServerTime(); //从界面获取记录信息 clsTrackRecordContent[] objContent = m_objGetSaveData(); //界面输入值出错 if (objContent == null) { return(-1); } //确定证书 此步很重要 clsDigitalSign.SetStaticCerts(); clsCheckSignersController objCheck = new clsCheckSignersController(); try { this.Cursor = Cursors.WaitCursor; //循环保存 for (int i = 0; i < objContent.Length; i++) { //释放资源响应其他事件 if (objContent[i] != null) { Application.DoEvents(); //设置 clsTrackRecordContent 的信息(使用服务器时间设置m_dtmOpenDate和m_dtmModifyDate) objContent[i].m_dtmOpenDate = DateTime.Parse(strTimeNow); objContent[i].m_dtmModifyDate = DateTime.Parse(strTimeNow); objContent[i].m_bytIfConfirm = 0; objContent[i].m_bytStatus = 0; objContent[i].m_dtmCreateDate = m_dtpCreateDate.Value; if (m_dtRecords.Rows[i]["InDate"].ToString().Trim() == "") { objContent[i].m_dtmInPatientDate = DateTime.Parse("1900-01-01 01:01:01"); } else { objContent[i].m_dtmInPatientDate = DateTime.Parse(m_dtRecords.Rows[i]["InDate"].ToString().Trim()); } objContent[i].m_strConfirmReason = ""; objContent[i].m_strConfirmReasonXML = ""; objContent[i].m_strCreateUserID = MDIParent.OperatorID; //objContent[i].m_strInPatientID=m_objCurrentPatient.m_StrInPatientID; objContent[i].m_strInPatientID = m_dtRecords.Rows[i]["InPatientID"].ToString().Trim(); objContent[i].m_strRegisterID = m_dtRecords.Rows[i]["registerid"].ToString(); //签名 objContent[i].m_strModifyUserID = MDIParent.OperatorID; //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent[i].m_strInPatientID.Trim() + "-" + objContent[i].m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss");; objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = objContent[i].m_strRegisterID; if (objCheck.CheckSigner(objContent, objSign_VO, 0) == -1) { return(-1); } //保存记录 clsPreModifyInfo objModifyInfo = null; long lngRes = m_objDiseaseTrackDomain.m_lngAddNewRecord(objContent[i], out objModifyInfo); } } } finally { this.Cursor = Cursors.Default; } //返回结果 return(1); }
/// <summary> /// 保存 /// </summary> /// <returns></returns> private new long m_lngSave() { long lngRes = 0; try { //获取服务器时间 string strTimeNow = new clsPublicDomain().m_strGetServerTime(); //从界面获取表单值 clsGeneralNurseRecordContent_GXDetail objContent = new clsGeneralNurseRecordContent_GXDetail(); objContent.m_strINPATIENTID = strRecordInPatientID; objContent.m_dtmINPATIENTDATE = DateTime.Parse(strRecordInPatientDate); objContent.m_dtmOPENDATE = DateTime.Parse(strTimeNow); objContent.m_dtmMODIFYDATE = DateTime.Parse(strTimeNow); objContent.m_dtmRECORDDATE = DateTime.Parse(m_dtpCreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); objContent.m_dtmCREATERECORDDATE = DateTime.Parse(strTimeNow); objContent.m_strRECORDCONTENTAll = m_txtRecordContent.Text; objContent.m_strRECORDCONTENT_RIGHT = m_txtRecordContent.m_strGetRightText(); objContent.m_strRECORDCONTENTXML = m_txtRecordContent.m_strGetXmlText(); objContent.m_intClass = m_intGetClass(m_dtpCreateDate.Value); if (objContent.m_strRECORDCONTENT_RIGHT == null || objContent.m_strRECORDCONTENT_RIGHT == string.Empty) { MDIParent.ShowInformationMessageBox("请填写病情记录内容"); return(0); } ////签名 //foreach(Control ctlSub in this.Controls) //{ // if(ctlSub.Name=="m_txtEmpSign") // { // objContent.m_strMODIFYRECORDUSERID = ((clsEmployee)ctlSub.Tag).m_StrEmployeeID; // objContent.m_strCREATERECORDUSERID= ((clsEmployee)ctlSub.Tag).m_StrEmployeeID; // } //} //获取签名 objContent.m_strMODIFYRECORDUSERID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; objContent.m_strCREATERECORDUSERID = ((clsEmrEmployeeBase_VO)txtSign.Tag).m_strEMPNO_CHR; strUserIDList = ""; strUserNameList = ""; m_mthGetSignArr(new Control[] { txtSign }, ref objContent.objSignerArr, ref strUserIDList, ref strUserNameList); //objContent.objSignerArr = new clsEmrSigns_VO[1]; //objContent.objSignerArr[0] = new clsEmrSigns_VO(); //objContent.objSignerArr[0].objEmployee = new clsEmrEmployeeBase_VO(); //objContent.objSignerArr[0].objEmployee = (clsEmrEmployeeBase_VO)(txtSign.Tag); //objContent.objSignerArr[0].controlName = "txtSign"; //objContent.objSignerArr[0].m_strFORMID_VCHR = "frmGeneralNurseRecord_GXCon";//注意大小写 //objContent.objSignerArr[0].m_strREGISTERID_CHR = com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strREGISTERID_CHR; clsGeneralNurseRecord_GXService objserv = (clsGeneralNurseRecord_GXService)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(clsGeneralNurseRecord_GXService)); #region 多签名时验证所有签名者 //数字签名 //记录ID通常为 住院号+住院时间 || 住院号+记录时间 来识别唯一 格式 00000056-2005-10-10 10:20:20 clsEmrDigitalSign_VO objSign_VO = new clsEmrDigitalSign_VO(); objSign_VO.m_strFORMID_VCHR = this.Name; objSign_VO.m_strFORMRECORDID_VCHR = objContent.m_strINPATIENTID.Trim() + "-" + objContent.m_dtmInPatientDate.ToString("yyyy-MM-dd HH:mm:ss"); objSign_VO.m_strSIGNIDID_VCHR = clsEMRLogin.LoginInfo.m_strEmpID; objSign_VO.m_strRegisterId = m_strRegisterid; //objSign_VO.m_strRegisterId = m_objBaseCurrentPatient.m_StrRegisterId; if (objContent.objSignerArr != null) { ArrayList objSignerArr = new ArrayList(); for (int i = 0; i < objContent.objSignerArr.Length; i++) { if (objContent.objSignerArr[i].controlName == "lsvSign" || objContent.objSignerArr[i].controlName == "txtSign") { objSignerArr.Add(objContent.objSignerArr[i].objEmployee); } } clsCheckSignersController objCheck = new clsCheckSignersController(objSignerArr, false); if (objCheck.CheckSigner(objContent, objSign_VO) == -1) { return(-1); } } else { objContent.m_strModifyUserID = MDIParent.OperatorID; clsCheckSignersController objCheck = new clsCheckSignersController(); if (objCheck.m_lngSign(objContent, objSign_VO) == -1) { return(-1); } } #endregion lngRes = objserv.m_lngAddNewDetail(objContent); } catch (Exception ex) { new com.digitalwave.Utility.clsLogText().LogDetailError(ex, false); } return(lngRes); }