public bool CalcularTest(IElementCalculator instance, PatVisitInfo patVisitInfo, QcCheckPoint qcCheckPoint, QcCheckResult checkResult) { if (instance == null) { return(false); } if (instance.GetElementValueCallback == null) { instance.GetElementValueCallback = this.m_getElementValueCallback; } if (instance.SetElementValueCallback == null) { instance.SetElementValueCallback = this.m_setElementValueCallback; } if (instance.ShowElementTipCallback == null) { instance.ShowElementTipCallback = this.m_showElementTipCallback; } if (instance.HideElementTipCallback == null) { instance.HideElementTipCallback = this.m_hideElementTipCallback; } if (instance.ExecuteQueryCallback == null) { instance.ExecuteQueryCallback = this.m_executeQueryCallback; } if (instance.ExecuteUpdateCallback == null) { instance.ExecuteUpdateCallback = this.m_executeUpdateCallback; } if (instance.GetSystemContextCallback == null) { instance.GetSystemContextCallback = this.m_getSystemContextCallback; } try { instance.Calculate(patVisitInfo, qcCheckPoint, checkResult); //if (!instance.Calculate(szElementName)) // return false; } catch (Exception ex) { LogManager.Instance.WriteLog("Heren.MedDoc.AutoCalc.AutoCalcHandler.ExecuteElementCalculator", ex); return(false); } return(true); }
/// <summary> /// 执行指定病历类型的元素自动计算脚本DLL /// </summary> /// <param name="szExecuteTime">执行时机</param> /// <param name="szDocTypeID">病历类型ID</param> /// <param name="szElementName">元素别名</param> /// <returns>SystemData.ReturnValue</returns> public bool ExecuteElementCalculator(string szScriptID, PatVisitInfo patVisitInfo, QcCheckPoint checkPoint, QcCheckResult qcCheckResult) { List <IElementCalculator> calculatorInstances = null; short result = ScriptCache.Instance.GetScriptInstances(szScriptID, ref calculatorInstances); if (result != SystemData.ReturnValue.OK) { return(true); } if (calculatorInstances == null) { return(true); } for (int index = 0; index < calculatorInstances.Count; index++) { IElementCalculator instance = calculatorInstances[index]; if (instance == null) { continue; } if (instance.GetElementValueCallback == null) { instance.GetElementValueCallback = this.m_getElementValueCallback; } if (instance.SetElementValueCallback == null) { instance.SetElementValueCallback = this.m_setElementValueCallback; } if (instance.ShowElementTipCallback == null) { instance.ShowElementTipCallback = this.m_showElementTipCallback; } if (instance.HideElementTipCallback == null) { instance.HideElementTipCallback = this.m_hideElementTipCallback; } if (instance.ExecuteQueryCallback == null) { instance.ExecuteQueryCallback = this.m_executeQueryCallback; } if (instance.ExecuteUpdateCallback == null) { instance.ExecuteUpdateCallback = this.m_executeUpdateCallback; } if (instance.GetSystemContextCallback == null) { instance.GetSystemContextCallback = this.m_getSystemContextCallback; } try { instance.Calculate(patVisitInfo, checkPoint, qcCheckResult); //if (!instance.Calculate(szElementName)) // return false; } catch (Exception ex) { LogManager.Instance.WriteLog("Heren.MedDoc.AutoCalc.AutoCalcHandler.ExecuteElementCalculator", ex); return(false); } } return(true); }