/** * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.arden; import org.openmrs.logic.Rule; /** * A medical logic module (MLM) is an independent unit in a health knowledge base that combines the * knowledge required and the definition of the way it should be applied for a single health * decision (from: wikipedia). Currently the way to create an MlmRule is using Arden syntax and then * transform them to Rule object using the <code>ArdenService</code>. * * @since 1.8 */ public interface MlmRule extends Rule { /** * Returns the priority value of the rule. This value determines in what order the rules get * evaluated. * * @return Integer priority value */ public Integer getPriority(); /** * Returns a descriptive title for the rule. * * @return String title for the rule */ public String getTitle(); /** * Returns the version of the rule. * * @return Double version of the rule */ public Double getVersion(); /** * Returns the institution that authored this rule * * @return String institution that authored this rule */ public String getInstitution(); /** * Returns the name of the person that authored this rule * * @return String name of the person that authored this rule */ public String getAuthor(); /** * Returns the name of the specialist this rule applies to * * @return String name of the specialist this rule applies to */ public String getSpecialist(); /** * Returns the date this rule was created * * @return String date this rule was created */ public String getDate(); /** * Returns the purpose of this rule * * @return String purpose of this rule */ public String getPurpose(); /** * Returns an explanation of why this rule is needed * * @return String explanation of why this rule is needed */ public String getExplanation(); /** * Returns keywords that can be used to classify the rule * * @return String keywords that can be used to classify the rule */ public String getKeywords(); /** * Returns citations that can be used as reference for this rule * * @return String citations that can be used as reference for this rule */ public String getCitations(); /** * Returns urls that can be used as reference for this rule * * @return String urls that can be used as reference for this rule */ public String getLinks(); /** * Returns the portion of the rule logic that pulls the data to run the rule * * @return String portion of the rule logic that pulls the data to run the rule */ public String getData(); /** * Returns the logic that is applied to the data to decide what action should be taken * * @return String the logic that is applied to the data to decide what action should be taken */ public String getLogic(); /** * Returns the action that should be taken when the logic evaluates to true * * @return String action that should be taken when the logic evaluates to true */ public String getAction(); /** * Returns the type of the rule. This type is used along with the priority to evaluate * prioritized rule sets * * @return String type of the rule */ public String getType(); public Integer getAgeMin(); public Integer getAgeMax(); public String getAgeMinUnits(); public String getAgeMaxUnits(); }