◷ Reading Time: 2 minutes
Modeling decision rules is very similar to the Validation rule. The only difference in modeling is you need to use the <Decision> command instead of the <Validation> command.
Here is an example:
<Decision name="Diagnosis treatment">
<Declaration>
<Alias logic="DiagnosisContains" />
<Alias logic="MandatoryContains" />
<Alias logic="OptionalContains" />
<Alias logic="InvalidatorContains" />
<Alias logic="AddResult" />
<Alias logic="RemoveResult" />
<Define name="results" direction="in"/>
</Declaration>
<Logic name="Primary Diagnosis Criteria">
<And>
<DiagnosisContains value='"111.00"'/>
<DiagnosisContains value='"111.01"'/>
<DiagnosisContains value='"111.02"'/>
<DiagnosisContains value='"111.03"'/>
<DiagnosisContains value='"111.04"'/>
</And>
</Logic>
<Logic name="row">
<And>
<Validate logic="row-selector"/>
<Validate logic="row-invalidator"/>
</And>
</Logic>
<Logic name="row-selector">
<And>
<Validate logic="Primary Diagnosis Criteria"/>
<Validate logic="Treatment Lines Criteria"/>
<Validate logic="Clinical Attribute Criteria"/>
</And>
<Then>
<AddResult value='"Regimen 1"'/>
<AddResult value='"Regimen 2"'/>
</Then>
</Logic>
<Logic name="row-invalidator">
<And>
<Validate logic="Treatment Invalidators"/>
</And>
<Then>
<RemoveResult value ='"Regimen 1"'/>
<RemoveResult value ='"Regimen 2"'/>
</Then>
</Logic>
<Logic name="Treatment Lines Criteria">
<And>
<And message="Mandatory treatments mismatched">
<MandatoryContains value='"J1111"'/>
<MandatoryContains value='"J1112"'/>
</And>
<Or>
<OptionalContains value='"J1113"'/>
<OptionalContains value='"J1114"'/>
<True/>
</Or>
</And>
</Logic>
<Logic name="Treatment Invalidators">
<Or>
<InvalidatorContains value='"J1111"'/>
</Or>
</Logic>
<Logic name="Clinical Attribute Criteria">
<And>
<And>
<Check value="Attributes.ECOGS le 4"/>
<Check value="Attributes.ECOGS ge 1"/>
</And>
<Or>
<Check value="Attributes.Stage == 1"/>
<Check value="Attributes.Stage == 2"/>
</Or>
</And>
</Logic>
<Include source="ruleset://rules/treatments/Common/AddResult"/>
<Include source="ruleset://rules/treatments/Common/DiagnosisContains"/>
<Include source="ruleset://rules/treatments/Common/InvalidatorContains"/>
<Include source="ruleset://rules/treatments/Common/ListContains"/>
<Include source="ruleset://rules/treatments/Common/MandatoryContains"/>
<Include source="ruleset://rules/treatments/Common/OptionalContains"/>
<Include source="ruleset://rules/treatments/Common/RemoveResult"/>
<Include source="ruleset://rules/treatments/Common/TreatmentCodeContains"/>
</Decision>