public static String getVariableName(RuleLineElementWithValue<ExpressionItem> ruleLineElement, Variable var, String language) { String attStr = ""; if (var.getAttribute() != null) { if (!"magnitude".equals(var.getAttribute()) && !"value".equals(var.getAttribute())) { attStr = "<font size=2><sub>" + var.getAttribute().toUpperCase() + "</sub></font>"; } } return "<b>" + ruleLineElement.getName(var.getCode(), language) + attStr + "</b>"; }
private static String getRMName(Map<String, ArchetypeElementVO> elementMap, Variable var) { String rmName = null; if (OpenEHRConst.CURRENT_DATE_TIME_ID.equals(var.getCode())) { rmName = OpenEHRDataValues.DV_DATE_TIME; } else { ArchetypeElementVO aeVO = elementMap.get(var.getCode()); if (aeVO == null && !isFunction(var.getAttribute())) { throw new RuntimeException(format("Archetype element not found for gtcode '%s'", var.getCode())); } if (aeVO != null) { rmName = aeVO.getType(); } } return rmName; }
public static String getVariableWithAttributeStr(String rmName, Variable var) { LoggerFactory.getLogger(DVUtil.class).debug("Var.code: " + var.getCode() + ", attr: " + var.getAttribute()); String ret = null; String dvClassName = null; dvClassName = DVDefSerializer.getDVClassName(rmName); if (OpenEHRConst.CURRENT_DATE_TIME_ID.equals(var.getCode()) && (var.getAttribute() == null || var.getAttribute().equals("value"))) { ret = "$" + OpenEHRConst.CURRENT_DATE_TIME_ID + ".getDateTime().getMillis()"; } else if ("value".equals(var.getAttribute()) && ("DvDateTime".equals(dvClassName) || "DvDate".equals(dvClassName))) { ret = "((" + dvClassName + ")$" + var.getCode() + getDataValueMethod(var.getCode()) + ").getDateTime().getMillis()"; } else { if (isFunction(var.getAttribute())) { if (OpenEHRDataValues.FUNCTION_COUNT.equals(var.getAttribute())) { ret = "$" + var.getCode() + var.getAttribute(); if (var.getAttribute() != null) { + StringUtils.capitalize(var.getAttribute()) + "()"; } else { ret = "DVUtil.ucumToMilliseconds((" + dvClassName + ")$" + var.getCode()
private static String getLeftVariable(Map<String, ArchetypeElementVO> elementMap, Variable leftVariable) { String code = leftVariable.getCode(); if (OpenEHRConst.CURRENT_DATE_TIME_ID.equals(code)) { return "$" + OpenEHRConst.CURRENT_DATE_TIME_ID; } else { String rmName = getRMName(elementMap, leftVariable); String dvClassName = DVDefSerializer.getDVClassName(rmName); String variableExp = "$" + code + ".getDataValue()"; if (leftVariable.getAttribute() != null) { variableExp = "((" + dvClassName + ")$" + leftVariable.getCode() + getDataValueMethod(leftVariable.getCode()) + ").get" + capitalize(leftVariable.getAttribute()) + "()"; } return variableExp; } }
sb.append(getVariableWithAttributeStr(rmName, var)); if (stats != null) { if (isFunction(var.getAttribute())) { stats.get(RefStat.ATT_FUNCTIONS).add(var.getCode() + CODE_FUNCTION_SEPARATOR + var.getAttribute()); stats.get(RefStat.ATT_FUNCTIONS_REF).add(var.getCode()); } else {
public static String getEditableExpressionString(ExpressionItem expressionItem) { if (expressionItem instanceof Variable) { Variable var = (Variable) expressionItem; String attributePostfix = var.getAttribute() != null ? "." + var.getAttribute() : ""; return "$" + var.getCode() + attributePostfix; } else if (expressionItem instanceof BinaryExpression) { BinaryExpression be = (BinaryExpression) expressionItem; return "(" + getEditableExpressionString(be.getLeft()) + " " + be.getOperator().getSymbol() + " " + getEditableExpressionString(be.getRight()) + ")"; } else if (expressionItem instanceof UnaryExpression) { UnaryExpression ue = (UnaryExpression) expressionItem; return ue.getOperator().getSymbol() + "(" + getEditableExpressionString(ue.getOperand()) + ")"; } else if (expressionItem instanceof FunctionalExpression) { FunctionalExpression fe = (FunctionalExpression) expressionItem; StringBuilder sb = new StringBuilder(); String postFix = ""; for (ExpressionItem ei : fe.getItems()) { sb.append(postFix) .append(getEditableExpressionString(ei)); postFix = ", "; } return "(" + fe.getFunction().toString() + "(" + sb.toString() + "))"; } else { return expressionItem.toString(); } } }
String gtCode = assignmentExpression.getVariable().getCode(); ExpressionItem expressionItemAux = assignmentExpression.getAssignment(); String attribute = assignmentExpression.getVariable().getAttribute(); GTCodeRuleLineElement gtCodeRuleLineElement = gtCodeElementMap.get(gtCode).getGTCodeRuleLineElement();
throw new InternalErrorException(new Exception("gtCode not found! (" + gtCode + ")")); attribute = var.getAttribute();