rule "A.01 InitClinicalStatementConcepts"
ruleflow-group "initialize"
dialect "mvel"
when
( $ConceptDeterminationMethodClinicalStatementConceptToRemoveC2511 :
VmrOpenCdsConcept (
determinationMethodCode != "C2511"
) and
ClinicalStatement (
id == $ConceptDeterminationMethodClinicalStatementConceptToRemoveC2511.conceptTargetId
)
) //DslUsed==Concept.Det.Clin.Stmt.Identify|||DETERMETHOD==C2511
then
retract ($ConceptDeterminationMethodClinicalStatementConceptToRemoveC2511);
//DslUsed==Concept.Det.Clin.Stmt.Remove.Dsl|||DETERMETHOD==C2511
end
rule "A.02 InitEntityConcepts"
ruleflow-group "initialize"
dialect "mvel"
when
( $ConceptDeterminationMethodEntityConceptToRemoveC2511 :
VmrOpenCdsConcept (
determinationMethodCode != "C2511"
) and
EntityBase (
id == $ConceptDeterminationMethodEntityConceptToRemoveC2511.conceptTargetId
)
) //DslUsed==Concept.Det.Entity.Identify.Dsl|||DETERMETHOD==C2511
then
retract ($ConceptDeterminationMethodEntityConceptToRemoveC2511);
//DslUsed==Concept.Det.Entity.Remove.Dsl|||DETERMETHOD==C2511
end
rule "A.03 InitRelationshipConcepts"
ruleflow-group "initialize"
dialect "mvel"
when
( $ConceptDeterminationMethodRelationshipConceptToRemoveC36 :
VmrOpenCdsConcept (
determinationMethodCode != "C36"
) and
(
ClinicalStatementRelationship (
id == $ConceptDeterminationMethodRelationshipConceptToRemoveC36.conceptTargetId
) or
EntityRelationship (
id == $ConceptDeterminationMethodRelationshipConceptToRemoveC36.conceptTargetId
)
)
) //DslUsed==Concept.Det.Rship.Identify.Dsl|||DETERMETHOD==C36
then
retract ($ConceptDeterminationMethodRelationshipConceptToRemoveC36);
//DslUsed==Concept.Det.Rship.Remove.Dsl|||DETERMETHOD==C36
end
rule "A.04 Response_Wrapper"
dialect "java"
ruleflow-group "initialize"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
EvaluatedPerson( )
not (
( Assertion ( value == "wrapper" ) ) //DslUsed==Assertion.String.Exists|||ASSERTIONSTRING==wrapper
)
then
ObservationResult parentObsROOT = new ObservationResult();
String parentObsROOTId = "2.16.840.1.113883.3.795.5.1.1^ROOT";
CD parentObsROOTFocus = new CD();
parentObsROOTFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsROOTFocus.setCodeSystemName("OpenCDS concepts");
parentObsROOTFocus.setCode("C2605");
parentObsROOTFocus.setDisplayName(getOpenCDSConceptName("C2605"));
ObservationValue parentObsROOTValue = new ObservationValue();
String parentObsROOTIdentifier = $evaluatedPersonId;
parentObsROOTValue.setIdentifier(parentObsROOTIdentifier);
IVLDate obsTimeROOT = new IVLDate();
obsTimeROOT.setLow($evalTime);
obsTimeROOT.setHigh($evalTime);
parentObsROOT.setId(parentObsROOTId);
parentObsROOT.setObservationFocus(parentObsROOTFocus);
parentObsROOT.setObservationValue(parentObsROOTValue);
parentObsROOT.setObservationEventTime(obsTimeROOT);
parentObsROOT.setEvaluatedPersonId($evaluatedPersonId);
parentObsROOT.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
parentObsROOT.setClinicalStatementToBeRoot(true);
parentObsROOT.setToBeReturned(true);
insert(parentObsROOT);
namedObjects.put("parentObsROOT", parentObsROOT);
//DslUsed==Out.Root.Obs.Focus.EvalpId.Dsl|||ROOT==ROOT|||OUTROOTFOCUS==C2605
assertions.add("wrapper");
insert(new Assertion("wrapper"));
//DslUsed==Assert.String.Dsl|||ASSERTIONSTRING==wrapper
end
rule "C.01 MissingDateOfBirth"
ruleflow-group "checkBadData"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
// This rule depends on the submission of all relevant data
// for exactly one encounter for one patient at a time.
( (EvaluatedPerson(id == $evaluatedPersonId, demographics == null))
or
(EvaluatedPerson(id == $evaluatedPersonId, demographics.birthTime == null)) )
then
insert(new Assertion("C569"));
assertions.add("C569");
//DslUsed==Assert.Dsl|||ASSERTION==C569
insert(new Assertion("C529"));
assertions.add("C529");
//DslUsed==Assert.Dsl|||ASSERTION==C529
end
rule "E.01 Response_Reject"
dialect "java"
ruleflow-group "reject"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
then
IVLDate obsTimenumerator = new IVLDate();
obsTimenumerator.setLow($evalTime);
obsTimenumerator.setHigh($evalTime);
ObservationResult childObsnumerator = new ObservationResult();
String childObsnumeratorId = "2.16.840.1.113883.3.795.5.1.1^numerator";
childObsnumerator.setId(childObsnumeratorId);
childObsnumerator.setEvaluatedPersonId($evaluatedPersonId);
childObsnumerator.setObservationEventTime(obsTimenumerator);
childObsnumerator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsnumerator.setClinicalStatementToBeRoot(false);
childObsnumerator.setToBeReturned(true);
CD childObsnumeratorFocus = new CD();
childObsnumeratorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsnumeratorFocus.setCodeSystemName("OpenCDS concepts");
childObsnumeratorFocus.setCode("C529");
childObsnumeratorFocus.setDisplayName(getOpenCDSConceptName("C529"));
childObsnumerator.setObservationFocus(childObsnumeratorFocus);
int iChildObsnumerator = 0;
INT childObsnumeratorIntegerValue = new INT();
childObsnumeratorIntegerValue.setValue(iChildObsnumerator);
ObservationValue childObsnumeratorValue = new ObservationValue();
childObsnumeratorValue.setInteger(childObsnumeratorIntegerValue);
childObsnumerator.setObservationValue(childObsnumeratorValue);
ClinicalStatementRelationship relnumerator = new ClinicalStatementRelationship();
relnumerator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
relnumerator.setTargetId("2.16.840.1.113883.3.795.5.1.1^numerator");
CD relnumeratorCode = new CD();
relnumeratorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
relnumeratorCode.setCodeSystemName("OpenCDS concepts");
relnumeratorCode.setCode("C405");
relnumeratorCode.setDisplayName("Part of");
relnumerator.setTargetRelationshipToSource(relnumeratorCode);
java.util.List<RelationshipToSource> childObsnumeratorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsnumeratorRelationshipToSource = new RelationshipToSource();
childObsnumeratorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsnumeratorRelationshipToSource.setRelationshipToSource(relnumeratorCode);
childObsnumeratorRelationshipToSources.add(childObsnumeratorRelationshipToSource);
childObsnumerator.setRelationshipToSources(childObsnumeratorRelationshipToSources);
insert(childObsnumerator);
namedObjects.put("childObsnumerator", childObsnumerator);
insert(relnumerator);
namedObjects.put("relnumerator", relnumerator);
IVLDate obsTimedenominator = new IVLDate();
obsTimedenominator.setLow($evalTime);
obsTimedenominator.setHigh($evalTime);
ObservationResult childObsdenominator = new ObservationResult();
String childObsdenominatorId = "2.16.840.1.113883.3.795.5.1.1^denominator";
childObsdenominator.setId(childObsdenominatorId);
childObsdenominator.setEvaluatedPersonId($evaluatedPersonId);
childObsdenominator.setObservationEventTime(obsTimedenominator);
childObsdenominator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsdenominator.setClinicalStatementToBeRoot(false);
childObsdenominator.setToBeReturned(true);
CD childObsdenominatorFocus = new CD();
childObsdenominatorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsdenominatorFocus.setCodeSystemName("OpenCDS concepts");
childObsdenominatorFocus.setCode("C529");
childObsdenominatorFocus.setDisplayName(getOpenCDSConceptName("C529"));
childObsdenominator.setObservationFocus(childObsdenominatorFocus);
int iChildObsdenominator = 0;
INT childObsdenominatorIntegerValue = new INT();
childObsdenominatorIntegerValue.setValue(iChildObsdenominator);
ObservationValue childObsdenominatorValue = new ObservationValue();
childObsdenominatorValue.setInteger(childObsdenominatorIntegerValue);
childObsdenominator.setObservationValue(childObsdenominatorValue);
ClinicalStatementRelationship reldenominator = new ClinicalStatementRelationship();
reldenominator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
reldenominator.setTargetId("2.16.840.1.113883.3.795.5.1.1^denominator");
CD reldenominatorCode = new CD();
reldenominatorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
reldenominatorCode.setCodeSystemName("OpenCDS concepts");
reldenominatorCode.setCode("C405");
reldenominatorCode.setDisplayName("Part of");
reldenominator.setTargetRelationshipToSource(reldenominatorCode);
java.util.List<RelationshipToSource> childObsdenominatorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsdenominatorRelationshipToSource = new RelationshipToSource();
childObsdenominatorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsdenominatorRelationshipToSource.setRelationshipToSource(reldenominatorCode);
childObsdenominatorRelationshipToSources.add(childObsdenominatorRelationshipToSource);
childObsdenominator.setRelationshipToSources(childObsdenominatorRelationshipToSources);
insert(childObsdenominator);
namedObjects.put("childObsdenominator", childObsdenominator);
insert(reldenominator);
namedObjects.put("reldenominator", reldenominator);
//DslUsed==Out.Nested.Obs.Num.Denom.Dsl|||DENOMVALUE==0|||DENOMID==denominator|||NUMVALUE==0|||NUMID==numerator|||ROOT==ROOT|||OBSFOCUS==C529
assertions.add("reject");
insert(new Assertion("reject"));
//DslUsed==Assert.String.Dsl|||ASSERTIONSTRING==reject
IVLDate obsTimeASSERTROOT = new IVLDate();
obsTimeASSERTROOT.setLow($evalTime);
obsTimeASSERTROOT.setHigh($evalTime);
ObservationResult parentObsASSERTROOT = new ObservationResult();
String parentObsASSERTROOTId = "2.16.840.1.113883.3.795.5.1.1^ASSERTROOT";
parentObsASSERTROOT.setId(parentObsASSERTROOTId);
parentObsASSERTROOT.setEvaluatedPersonId($evaluatedPersonId);
parentObsASSERTROOT.setObservationEventTime(obsTimeASSERTROOT);
parentObsASSERTROOT.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
CD parentObsASSERTROOTFocus = new CD();
parentObsASSERTROOTFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsASSERTROOTFocus.setCodeSystemName("OpenCDS concepts");
parentObsASSERTROOTFocus.setCode("assertions");
parentObsASSERTROOTFocus.setDisplayName("Assertions found in working memory");
parentObsASSERTROOT.setObservationFocus(parentObsASSERTROOTFocus);
parentObsASSERTROOT.setClinicalStatementToBeRoot(true);
parentObsASSERTROOT.setToBeReturned(true);
ObservationValue obsValueASSERTROOT = new ObservationValue();
obsValueASSERTROOT.setText(getAssertionsAsString(assertions));
parentObsASSERTROOT.setObservationValue(obsValueASSERTROOT);
insert(parentObsASSERTROOT);
namedObjects.put("parentObsASSERTROOT", (Object)parentObsASSERTROOT);
end
rule "G.01 IncludeAgeGE21LT234Months"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( EvaluatedPerson (
id == $evaluatedPersonId,
demographics != null,
eval(getAgeInTimeUnitAtTime(demographics.getBirthTime(),
org.opencds.common.utilities.DateUtility.getInstance().getDateAfterAddingTime(
org.opencds.common.utilities.DateUtility.getInstance().getDateAfterAddingTime(
$evalTime, 2, -1 * 18), 5, -1 * +1 * 0), 2) >= 3) ) )
( EvaluatedPerson (
id == $evaluatedPersonId,
demographics != null,
eval(getAgeInTimeUnitAtTime(demographics.getBirthTime(),
org.opencds.common.utilities.DateUtility.getInstance().getDateAfterAddingTime(
org.opencds.common.utilities.DateUtility.getInstance().getDateAfterAddingTime(
$evalTime, 2, -1 * 6), 1, -1 * +1 * 1), 1) < 19) ) )
then
insert(new Assertion("C3216"));
assertions.add("C3216");
//DslUsed==Assert.Dsl|||ASSERTION==C3216
end
rule "G.02 ListURIOutpatientEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
(
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterTypeConcept (
openCdsConceptCode == "C2964",
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2964Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2964Low18262C3151C405);
), result(
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405) ) and
$EREDIBTC_ProbIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3151",
$EREDIBTC_ProbConceptTargetId_0EncListAC2964Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempProbConceptTargetIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempProbConceptTargetIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_ProbConceptTargetId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempProbConceptTargetIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_ProbConceptTargetId_0EncListAC2964Low18262C3151C405);
), result(
$EREDIBTC_TempProbConceptTargetIds_0EncListAC2964Low18262C3151C405)
) and
$EREDIBTC_CSRelConceptTargetIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$EREDIBTC_CSRelConceptTargetId_0EncListAC2964Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_CSRelConceptTargetId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_CSRelConceptTargetId_0EncListAC2964Low18262C3151C405);
), result(
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2964Low18262C3151C405)
) and
$EREDIBTC_CSRelSourceIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf
$EREDIBTC_CSRelConceptTargetIds_0EncListAC2964Low18262C3151C405,
targetId memberOf $EREDIBTC_ProbIds_0EncListAC2964Low18262C3151C405,
$EREDIBTC_CSRelSourceId_0EncListAC2964Low18262C3151C405:
sourceId memberOf
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC2964Low18262C3151C405 ),
init (ArrayList
$EREDIBTC_TempCSRelSourceIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempCSRelSourceIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_CSRelSourceId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempCSRelSourceIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_CSRelSourceId_0EncListAC2964Low18262C3151C405);
), result(
$EREDIBTC_TempCSRelSourceIds_0EncListAC2964Low18262C3151C405) ) and
$EREDIBTC_FinalEncIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EREDIBTC_FinalEncId_0EncListAC2964Low18262C3151C405:
id memberOf $EREDIBTC_CSRelSourceIds_0EncListAC2964Low18262C3151C405,
evaluatedPersonId == $evaluatedPersonId,
eval(timeBeforeByAtMost(encounterEventTime.getLow(), $evalTime,
18, 2, namedObjects)),
eval(timeBeforeByMoreThan(encounterEventTime.getLow(), $evalTime,
6, 2, namedObjects)) ),
init (ArrayList
$EREDIBTC_TempFinalEncIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempFinalEncIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_FinalEncId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempFinalEncIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_FinalEncId_0EncListAC2964Low18262C3151C405);
), result(
$EREDIBTC_TempFinalEncIds_0EncListAC2964Low18262C3151C405)
) and EncListA :
java.util.List( size >= 0 ) from collect (
EncounterEvent (
id memberOf $EREDIBTC_FinalEncIds_0EncListAC2964Low18262C3151C405 )
) and
$EREDIBTC_FinalProbIds_0EncListAC2964Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf $EREDIBTC_CSRelConceptTargetIds_0EncListAC2964Low18262C3151C405,
sourceId memberOf $EREDIBTC_FinalEncIds_0EncListAC2964Low18262C3151C405,
$EREDIBTC_FinalProbId_0EncListAC2964Low18262C3151C405:
targetId memberOf
$EREDIBTC_ProbIds_0EncListAC2964Low18262C3151C405 ),
init (ArrayList
$EREDIBTC_TempFinalProbIds_0EncListAC2964Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempFinalProbIds_0EncListAC2964Low18262C3151C405.add(
$EREDIBTC_FinalProbId_0EncListAC2964Low18262C3151C405);
), reverse (
$EREDIBTC_TempFinalProbIds_0EncListAC2964Low18262C3151C405.remove(
$EREDIBTC_FinalProbId_0EncListAC2964Low18262C3151C405);
), result( $EREDIBTC_TempFinalProbIds_0EncListAC2964Low18262C3151C405) ) and
$EREDIBTC_ProbList_0EncListAC2964Low18262C3151C405: java.util.List( size >= 0 )
from collect ( Problem ( id memberOf
$EREDIBTC_FinalProbIds_0EncListAC2964Low18262C3151C405 ) ) and
EvaluatedPerson(eval(flagClinicalStatementListToReturnInOutput(EncListA)),
eval(flagClinicalStatementListToReturnInOutput(
$EREDIBTC_ProbList_0EncListAC2964Low18262C3151C405)))
) //DslUsed==Enc.Rship.EncDx.Imp.Between.Times.Count.Id.Dsl|||INT1==0|||ENCLISTID==EncListA|||ENCTYPE==C2964|||HIGHLOW==Low|||INT2==18|||TIMEUNITS2==2|||INT3==6|||TIMEUNITS3==2|||PROB==C3151|||CSREL==C405|||PROBIMP=={PROBIMP}
then
namedObjects.put('URIOutpatientEncounters', EncListA);
NamedList $namedListEncListA = new NamedList();
$namedListEncListA.setName('URIOutpatientEncounters');
$namedListEncListA.setList(EncListA);
insert ($namedListEncListA);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListA|||NAME==URIOutpatientEncounters
end
rule "G.03 ListURIObservationEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue)
and FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( /* */
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterTypeConcept (
openCdsConceptCode == "C3022",
$EREDIBTC_EncTypeConceptTargetId_0EncListAC3022Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC3022Low18262C3151C405);
), reverse (
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC3022Low18262C3151C405);
), result(
$EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405)
) and
$EREDIBTC_ProbIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3151",
$EREDIBTC_ProbConceptTargetId_0EncListAC3022Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempProbConceptTargetIds_0EncListAC3022Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempProbConceptTargetIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_ProbConceptTargetId_0EncListAC3022Low18262C3151C405);
), reverse (
$EREDIBTC_TempProbConceptTargetIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_ProbConceptTargetId_0EncListAC3022Low18262C3151C405);
), result(
$EREDIBTC_TempProbConceptTargetIds_0EncListAC3022Low18262C3151C405) ) and
$EREDIBTC_CSRelConceptTargetIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$EREDIBTC_CSRelConceptTargetId_0EncListAC3022Low18262C3151C405:
conceptTargetId ), init (ArrayList
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC3022Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_CSRelConceptTargetId_0EncListAC3022Low18262C3151C405);
), reverse (
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_CSRelConceptTargetId_0EncListAC3022Low18262C3151C405);
), result(
$EREDIBTC_TempCSRelConceptTargetIds_0EncListAC3022Low18262C3151C405)
) and
$EREDIBTC_CSRelSourceIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf $EREDIBTC_CSRelConceptTargetIds_0EncListAC3022Low18262C3151C405,
targetId memberOf $EREDIBTC_ProbIds_0EncListAC3022Low18262C3151C405,
$EREDIBTC_CSRelSourceId_0EncListAC3022Low18262C3151C405: sourceId memberOf
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC3022Low18262C3151C405 ),
init (ArrayList $EREDIBTC_TempCSRelSourceIds_0EncListAC3022Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempCSRelSourceIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_CSRelSourceId_0EncListAC3022Low18262C3151C405);
), reverse (
$EREDIBTC_TempCSRelSourceIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_CSRelSourceId_0EncListAC3022Low18262C3151C405);
), result(
$EREDIBTC_TempCSRelSourceIds_0EncListAC3022Low18262C3151C405) ) and
$EREDIBTC_FinalEncIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EREDIBTC_FinalEncId_0EncListAC3022Low18262C3151C405: id memberOf
$EREDIBTC_CSRelSourceIds_0EncListAC3022Low18262C3151C405,
evaluatedPersonId == $evaluatedPersonId,
eval(timeBeforeByAtMost(encounterEventTime.getLow(), $evalTime, 18, 2, namedObjects)),
eval(timeBeforeByMoreThan(encounterEventTime.getLow(), $evalTime, 6, 2, namedObjects))
), init (ArrayList
$EREDIBTC_TempFinalEncIds_0EncListAC3022Low18262C3151C405
= new ArrayList();
), action (
$EREDIBTC_TempFinalEncIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_FinalEncId_0EncListAC3022Low18262C3151C405);
), reverse (
$EREDIBTC_TempFinalEncIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_FinalEncId_0EncListAC3022Low18262C3151C405);
), result( $EREDIBTC_TempFinalEncIds_0EncListAC3022Low18262C3151C405) ) and
EncListA : java.util.List( size >= 0 ) from collect (
EncounterEvent (
id memberOf $EREDIBTC_FinalEncIds_0EncListAC3022Low18262C3151C405 )
) and
$EREDIBTC_FinalProbIds_0EncListAC3022Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf $EREDIBTC_CSRelConceptTargetIds_0EncListAC3022Low18262C3151C405,
sourceId memberOf $EREDIBTC_FinalEncIds_0EncListAC3022Low18262C3151C405,
$EREDIBTC_FinalProbId_0EncListAC3022Low18262C3151C405:
targetId memberOf $EREDIBTC_ProbIds_0EncListAC3022Low18262C3151C405 ),
init (ArrayList $EREDIBTC_TempFinalProbIds_0EncListAC3022Low18262C3151C40
5= new ArrayList();
), action ( $EREDIBTC_TempFinalProbIds_0EncListAC3022Low18262C3151C405.add(
$EREDIBTC_FinalProbId_0EncListAC3022Low18262C3151C405);
), reverse ( $EREDIBTC_TempFinalProbIds_0EncListAC3022Low18262C3151C405.remove(
$EREDIBTC_FinalProbId_0EncListAC3022Low18262C3151C405);
), result( $EREDIBTC_TempFinalProbIds_0EncListAC3022Low18262C3151C405)
) and
$EREDIBTC_ProbList_0EncListAC3022Low18262C3151C405:
java.util.List( size >= 0 ) from collect (
Problem (
id memberOf
$EREDIBTC_FinalProbIds_0EncListAC3022Low18262C3151C405 ) ) and
EvaluatedPerson(
eval(flagClinicalStatementListToReturnInOutput(EncListA)),
eval(flagClinicalStatementListToReturnInOutput(
$EREDIBTC_ProbList_0EncListAC3022Low18262C3151C405))) ) //DslUsed==Enc.Rship.EncDx.Imp.Between.Times.Count.Id.Dsl|||INT1==0|||ENCLISTID==EncListA|||ENCTYPE==C3022|||HIGHLOW==Low|||INT2==18|||TIMEUNITS2==2|||INT3==6|||TIMEUNITS3==2|||PROB==C3151|||CSREL==C405|||PROBIMP=={PROBIMP}
then
namedObjects.put('URIObservationEncounters', EncListA);
NamedList $namedListEncListA = new NamedList();
$namedListEncListA.setName('URIObservationEncounters');
$namedListEncListA.setList(EncListA);
insert ($namedListEncListA);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListA|||NAME==URIObservationEncounters
end
rule "G.04 ListURIEDEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
(
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterTypeConcept (
openCdsConceptCode == "C2968",
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2968Low18262C3151C405:
conceptTargetId ), init (
ArrayList $EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ($EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2968Low18262C3151C405);
), reverse ($EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_EncTypeConceptTargetId_0EncListAC2968Low18262C3151C405);
), result($EREDIBTC_TempEncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405) ) and
$EREDIBTC_ProbIds_0EncListAC2968Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3151",
$EREDIBTC_ProbConceptTargetId_0EncListAC2968Low18262C3151C405:
conceptTargetId ), init (
ArrayList $EREDIBTC_TempProbConceptTargetIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ($EREDIBTC_TempProbConceptTargetIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_ProbConceptTargetId_0EncListAC2968Low18262C3151C405);
), reverse ($EREDIBTC_TempProbConceptTargetIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_ProbConceptTargetId_0EncListAC2968Low18262C3151C405);
), result($EREDIBTC_TempProbConceptTargetIds_0EncListAC2968Low18262C3151C405) ) and
$EREDIBTC_CSRelConceptTargetIds_0EncListAC2968Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$EREDIBTC_CSRelConceptTargetId_0EncListAC2968Low18262C3151C405:
conceptTargetId ), init (
ArrayList $EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ( $EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_CSRelConceptTargetId_0EncListAC2968Low18262C3151C405);
), reverse ( $EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_CSRelConceptTargetId_0EncListAC2968Low18262C3151C405);
), result($EREDIBTC_TempCSRelConceptTargetIds_0EncListAC2968Low18262C3151C405) ) and
$EREDIBTC_CSRelSourceIds_0EncListAC2968Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf $EREDIBTC_CSRelConceptTargetIds_0EncListAC2968Low18262C3151C405,
targetId memberOf $EREDIBTC_ProbIds_0EncListAC2968Low18262C3151C405,
$EREDIBTC_CSRelSourceId_0EncListAC2968Low18262C3151C405: sourceId memberOf
$EREDIBTC_EncTypeConceptTargetIds_0EncListAC2968Low18262C3151C405 ),
init (
ArrayList $EREDIBTC_TempCSRelSourceIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ( $EREDIBTC_TempCSRelSourceIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_CSRelSourceId_0EncListAC2968Low18262C3151C405);
), reverse ( $EREDIBTC_TempCSRelSourceIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_CSRelSourceId_0EncListAC2968Low18262C3151C405);
), result( $EREDIBTC_TempCSRelSourceIds_0EncListAC2968Low18262C3151C405) ) and
$EREDIBTC_FinalEncIds_0EncListAC2968Low18262C3151C405:
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EREDIBTC_FinalEncId_0EncListAC2968Low18262C3151C405: id
memberOf $EREDIBTC_CSRelSourceIds_0EncListAC2968Low18262C3151C405,
evaluatedPersonId == $evaluatedPersonId,
eval(timeBeforeByAtMost(encounterEventTime.getLow(), $evalTime,
18, 2, namedObjects)),
eval(timeBeforeByMoreThan(encounterEventTime.getLow(), $evalTime,
6, 2, namedObjects))
),
init (
ArrayList $EREDIBTC_TempFinalEncIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ( $EREDIBTC_TempFinalEncIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_FinalEncId_0EncListAC2968Low18262C3151C405);
), reverse ( $EREDIBTC_TempFinalEncIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_FinalEncId_0EncListAC2968Low18262C3151C405);
), result( $EREDIBTC_TempFinalEncIds_0EncListAC2968Low18262C3151C405) ) and
EncListA : java.util.List( size >= 0 ) from collect ( EncounterEvent (
id memberOf $EREDIBTC_FinalEncIds_0EncListAC2968Low18262C3151C405 )
) and
$EREDIBTC_FinalProbIds_0EncListAC2968Low18262C3151C405: java.util.List
(size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf $EREDIBTC_CSRelConceptTargetIds_0EncListAC2968Low18262C3151C405,
sourceId memberOf $EREDIBTC_FinalEncIds_0EncListAC2968Low18262C3151C405,
$EREDIBTC_FinalProbId_0EncListAC2968Low18262C3151C405: targetId
memberOf $EREDIBTC_ProbIds_0EncListAC2968Low18262C3151C405 ), init (
ArrayList $EREDIBTC_TempFinalProbIds_0EncListAC2968Low18262C3151C405
= new ArrayList();
), action ( $EREDIBTC_TempFinalProbIds_0EncListAC2968Low18262C3151C405.add(
$EREDIBTC_FinalProbId_0EncListAC2968Low18262C3151C405);
), reverse ( $EREDIBTC_TempFinalProbIds_0EncListAC2968Low18262C3151C405.remove(
$EREDIBTC_FinalProbId_0EncListAC2968Low18262C3151C405);
), result( $EREDIBTC_TempFinalProbIds_0EncListAC2968Low18262C3151C405) ) and $EREDIBTC_ProbList_0EncListAC2968Low18262C3151C405: java.util.List( size >= 0 ) from collect ( Problem ( id memberOf $EREDIBTC_FinalProbIds_0EncListAC2968Low18262C3151C405 ) ) and EvaluatedPerson(eval(flagClinicalStatementListToReturnInOutput(EncListA)), eval(flagClinicalStatementListToReturnInOutput($EREDIBTC_ProbList_0EncListAC2968Low18262C3151C405))) ) //DslUsed==Enc.Rship.EncDx.Imp.Between.Times.Count.Id.Dsl|||INT1==0|||ENCLISTID==EncListA|||ENCTYPE==C2968|||HIGHLOW==Low|||INT2==18|||TIMEUNITS2==2|||INT3==6|||TIMEUNITS3==2|||PROB==C3151|||CSREL==C405|||PROBIMP=={PROBIMP}
then
namedObjects.put('URIEDEncounters', EncListA);
NamedList $namedListEncListA = new NamedList();
$namedListEncListA.setName('URIEDEncounters');
$namedListEncListA.setList(EncListA);
insert ($namedListEncListA);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListA|||NAME==URIEDEncounters
end
rule "G.05 ListAcuteInpatientEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( $EBTCI_EncTypeConceptTargetIds_0EncListAC2971Low18262 :
java.util.List (size >= 0 ) from accumulate (
EncounterTypeConcept (
openCdsConceptCode == "C2971",
$EBTCI_EncTypeConceptTargetId_0EncListAC2971Low18262 :
conceptTargetId ), init (
ArrayList $EBTCI_TempEncTypeConceptTargetIds_0EncListAC2971Low18262
= new ArrayList();
), action ($EBTCI_TempEncTypeConceptTargetIds_0EncListAC2971Low18262.add(
$EBTCI_EncTypeConceptTargetId_0EncListAC2971Low18262);
), reverse ($EBTCI_TempEncTypeConceptTargetIds_0EncListAC2971Low18262.remove(
$EBTCI_EncTypeConceptTargetId_0EncListAC2971Low18262);
), result($EBTCI_TempEncTypeConceptTargetIds_0EncListAC2971Low18262) ) and
$EBTCI_FinalEncIds_0EncListAC2971Low18262 :
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EBTCI_FinalEncId_0EncListAC2971Low18262 :
id memberOf $EBTCI_EncTypeConceptTargetIds_0EncListAC2971Low18262,
evaluatedPersonId == $evaluatedPersonId,
eval(timeBeforeByAtMost(encounterEventTime.getLow(), $evalTime,
18, 2, namedObjects)),
eval(timeBeforeByMoreThan(encounterEventTime.getLow(), $evalTime,
6, 2, namedObjects)) ), init (
ArrayList $EBTCI_TempFinalEncIds_0EncListAC2971Low18262
= new ArrayList();
), action ( $EBTCI_TempFinalEncIds_0EncListAC2971Low18262.add(
$EBTCI_FinalEncId_0EncListAC2971Low18262);
), reverse ( $EBTCI_TempFinalEncIds_0EncListAC2971Low18262.remove(
$EBTCI_FinalEncId_0EncListAC2971Low18262);
), result( $EBTCI_TempFinalEncIds_0EncListAC2971Low18262) ) and EncListA : java.util.List( size >= 0 ) from collect ( EncounterEvent ( id memberOf $EBTCI_FinalEncIds_0EncListAC2971Low18262 ) ) and EvaluatedPerson(eval(flagClinicalStatementListToReturnInOutput(EncListA))) ) //DslUsed==Enc.Between.Times.Count.Id.Dsl|||INT1==0|||ENCLISTID==EncListA|||ENCTYPE==C2971|||HIGHLOW==Low|||INT2==18|||TIMEUNITS2==2|||INT3==6|||TIMEUNITS3==2
then
namedObjects.put('AcuteInpatientEncounters', EncListA);
NamedList $namedListEncListA = new NamedList();
$namedListEncListA.setName('AcuteInpatientEncounters');
$namedListEncListA.setList(EncListA);
insert ($namedListEncListA);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListA|||NAME==AcuteInpatientEncounters
end
rule "G.06 ListNonAcuteInpatientEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( $EBTCI_EncTypeConceptTargetIds_0EncListAC3020Low18262 :
java.util.List (size >= 0 ) from accumulate (
EncounterTypeConcept (
openCdsConceptCode == "C3020",
$EBTCI_EncTypeConceptTargetId_0EncListAC3020Low18262 :
conceptTargetId ), init (
ArrayList $EBTCI_TempEncTypeConceptTargetIds_0EncListAC3020Low18262
= new ArrayList();
), action ($EBTCI_TempEncTypeConceptTargetIds_0EncListAC3020Low18262.add(
$EBTCI_EncTypeConceptTargetId_0EncListAC3020Low18262);
), reverse ($EBTCI_TempEncTypeConceptTargetIds_0EncListAC3020Low18262.remove(
$EBTCI_EncTypeConceptTargetId_0EncListAC3020Low18262);
), result($EBTCI_TempEncTypeConceptTargetIds_0EncListAC3020Low18262) ) and
$EBTCI_FinalEncIds_0EncListAC3020Low18262 :
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EBTCI_FinalEncId_0EncListAC3020Low18262 :
id memberOf $EBTCI_EncTypeConceptTargetIds_0EncListAC3020Low18262,
evaluatedPersonId == $evaluatedPersonId,
eval(timeBeforeByAtMost(encounterEventTime.getLow(), $evalTime, 18, 2, namedObjects)),
eval(timeBeforeByMoreThan(encounterEventTime.getLow(), $evalTime,
6, 2, namedObjects))
), init (
ArrayList $EBTCI_TempFinalEncIds_0EncListAC3020Low18262
= new ArrayList();
), action ( $EBTCI_TempFinalEncIds_0EncListAC3020Low18262.add(
$EBTCI_FinalEncId_0EncListAC3020Low18262);
), reverse ( $EBTCI_TempFinalEncIds_0EncListAC3020Low18262.remove(
$EBTCI_FinalEncId_0EncListAC3020Low18262);
), result( $EBTCI_TempFinalEncIds_0EncListAC3020Low18262) ) and EncListA : java.util.List( size >= 0 ) from collect ( EncounterEvent ( id memberOf $EBTCI_FinalEncIds_0EncListAC3020Low18262 ) ) and EvaluatedPerson(eval(flagClinicalStatementListToReturnInOutput(EncListA))) ) //DslUsed==Enc.Between.Times.Count.Id.Dsl|||INT1==0|||ENCLISTID==EncListA|||ENCTYPE==C3020|||HIGHLOW==Low|||INT2==18|||TIMEUNITS2==2|||INT3==6|||TIMEUNITS3==2
then
namedObjects.put('NonAcuteInpatientEncounters', EncListA);
NamedList $namedListEncListA = new NamedList();
$namedListEncListA.setName('NonAcuteInpatientEncounters');
$namedListEncListA.setList(EncListA);
insert ($namedListEncListA);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListA|||NAME==NonAcuteInpatientEncounters
end
rule "G.07 ListURIEncounters"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( NamedList ( name == "URIOutpatientEncounters", list != null, EncListA : list == ( (List) (namedObjects.get("URIOutpatientEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==URIOutpatientEncounters
( NamedList ( name == "URIObservationEncounters", list != null, EncListB : list == ( (List) (namedObjects.get("URIObservationEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListB|||NAME==URIObservationEncounters
( NamedList ( name == "URIEDEncounters", list != null, EncListC : list == ( (List) (namedObjects.get("URIEDEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListC|||NAME==URIEDEncounters
( NamedList ( name == "AcuteInpatientEncounters", list != null, EncListD : list == ( (List) (namedObjects.get("AcuteInpatientEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListD|||NAME==AcuteInpatientEncounters
( NamedList ( name == "NonAcuteInpatientEncounters", list != null, EncListE : list == ( (List) (namedObjects.get("NonAcuteInpatientEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListE|||NAME==NonAcuteInpatientEncounters
then
List EncListF = getEncListWithNoTimeOverlap(EncListC, EncListD);
//DslUsed==Set.EncListId.EncListRefs.No.Time.Overlap.Dsl|||ENCLISTID1==EncListF|||ENCLISTID2==EncListC|||ENCLISTID3==EncListD
List EncListG = getEncListWithNoTimeOverlap(EncListF, EncListE);
//DslUsed==Set.EncListId.EncListRefs.No.Time.Overlap.Dsl|||ENCLISTID1==EncListG|||ENCLISTID2==EncListF|||ENCLISTID3==EncListE
List EncListH = new ArrayList();
EncListH.addAll(EncListA);
EncListH.addAll(EncListB);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListH|||ENCLISTID2==EncListA|||ENCLISTID3==EncListB
List EncListI = new ArrayList();
EncListI.addAll(EncListG);
EncListI.addAll(EncListH);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListI|||ENCLISTID2==EncListG|||ENCLISTID3==EncListH
namedObjects.put('URIEncounters', EncListI);
NamedList $namedListEncListI = new NamedList();
$namedListEncListI.setName('URIEncounters');
$namedListEncListI.setList(EncListI);
insert ($namedListEncListI);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListI|||NAME==URIEncounters
end
rule "G.08 HasDenominatorInclusions"
ruleflow-group "denominatorInclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C3216") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C3216
( NamedList ( name == "URIEncounters", list != null, list.size() > 0, list == ( (List) (namedObjects.get("URIEncounters"))) ) ) //DslUsed==NamedList.Exists.Not.Empty.Dsl|||NAME==URIEncounters
then
insert(new Assertion("C545"));
assertions.add("C545");
//DslUsed==Assert.Dsl|||ASSERTION==C545
end
rule "I.01 ExcludeMultipleClaims"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList ( name == "MultipleClaims", list != null, EncListA : list == ( (List) (namedObjects.get("MultipleClaims"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==MultipleClaims
)
(
NamedList (
name == "URIEncounters",
list != null,
list.size() >= 0,
$Encs_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 :
list == ( (List) (namedObjects.get("URIEncounters"))) ) and
$EncProbCSRConceptIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 :
java.util.List (size >= 0) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$TempId : conceptTargetId ),
init (ArrayList $TempIds = new ArrayList();
), action ($TempIds.add($TempId);
), reverse ($TempIds.remove($TempId);
), result($TempIds) ) and
$ProbConceptTargetIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 :
java.util.List (size >= 0) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3151",
$TempId : conceptTargetId ),
init (ArrayList $TempIds = new ArrayList();
), action ($TempIds.add($TempId);
), reverse ($TempIds.remove($TempId);
), result($TempIds) ) and
$EncProbIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 :
java.util.List (size >= 0) from accumulate (
Problem (
evaluatedPersonId == $evaluatedPersonId,
id not memberOf $ProbConceptTargetIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405,
eval((templateId != null) && java.util.Arrays.asList(templateId).contains(
"2.16.840.1.113883.3.1829.11.7.2.18")),
$TempId : id ),
init (ArrayList $TempIds = new ArrayList();
), action ($TempIds.add($TempId);
), reverse ($TempIds.remove($TempId);
), result($TempIds) ) and
$EncProbCSRs_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 :
java.util.List (size >= 0 ) from accumulate (
$TempId : ClinicalStatementRelationship (
id memberOf
$EncProbCSRConceptIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 ,
eval((getIdListFromClinicalStatementList(
$Encs_EFNLREDNMCI_0EncListBURIEncounters0C3151C405)).contains(sourceId)),
targetId memberOf $EncProbIds_EFNLREDNMCI_0EncListBURIEncounters0C3151C405 ),
init (ArrayList $TempIds = new ArrayList();
), action ($TempIds.add($TempId);
), reverse ($TempIds.remove($TempId);
), result($TempIds) ) and EncListB :
java.util.List (size >= 0 ) from accumulate (
$TempId : EncounterEvent (
), init (ArrayList $TempIds = new ArrayList();
), action ($TempIds.add($TempId);
), reverse ($TempIds.remove($TempId);
), result($TempIds) ) ) //DslUsed==Enc.From.NamedList.After.EncDx.Count.Id|||INT1==0|||ENCLISTID==EncListB|||NAMEDLIST==URIEncounters|||INT2==0|||PROB==C3151|||CSREL=C405
then
namedObjects.put('MultipleClaims', EncListB);
NamedList $namedListEncListB = new NamedList();
$namedListEncListB.setName('MultipleClaims');
$namedListEncListB.setList(EncListB);
insert ($namedListEncListB);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListB|||NAME==MultipleClaims
end
rule "I.02 ExcludeMedicationActive"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList (
name == "MedicationActive",
list != null, EncListA : list == ( (List)
(namedObjects.get("MedicationActive"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==MedicationActive
)
( $EFNAMSDDSACI_MedConceptTargetIds_0EncListBURIEncounters05C2847 :
java.util.List (size >= 0 ) from accumulate (
MedicationConcept (
openCdsConceptCode == "C2847",
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters05C2847 :
conceptTargetId ), init (
ArrayList
$EFNAMSDDSACI_TempMedConceptTargetIds_0EncListBURIEncounters05C2847
= new ArrayList();
), action (
$EFNAMSDDSACI_TempMedConceptTargetIds_0EncListBURIEncounters05C2847.add(
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters05C2847);
), reverse (
$EFNAMSDDSACI_TempMedConceptTargetIds_0EncListBURIEncounters05C2847.remove(
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters05C2847);
), result ($EFNAMSDDSACI_TempMedConceptTargetIds_0EncListBURIEncounters05C2847)
) and
$EFNAMSDDSACI_SubDispenseEvents_0EncListBURIEncounters05C2847 :
java.util.List (size >= 0) from collect (
SubstanceDispensationEvent (
evaluatedPersonId == $evaluatedPersonId,
id memberOf
$EFNAMSDDSACI_MedConceptTargetIds_0EncListBURIEncounters05C2847,
dispensationTime != null,
daysSupply != null ) ) and
NamedList (
name == "URIEncounters",
list != null,
list.size() >= 0,
$EFNAMSDDSACI_Encounters_0EncListBURIEncounters05C2847 :
list == ( (List) (namedObjects.get("URIEncounters")))
) and EncListB :
java.util.List (size >= 0 ) from accumulate (
$EFNAMSDDSACI_Enc_0EncListBURIEncounters05C2847 :
EncounterEvent (
evaluatedPersonId == $evaluatedPersonId,
eval(encInEncList($EFNAMSDDSACI_Enc_0EncListBURIEncounters05C2847,
$EFNAMSDDSACI_Encounters_0EncListBURIEncounters05C2847,namedObjects)),
eval(encAfterMedSubDispenseDaysSupplyActiveFromListWithinTime(
$EFNAMSDDSACI_Enc_0EncListBURIEncounters05C2847,
$EFNAMSDDSACI_SubDispenseEvents_0EncListBURIEncounters05C2847 ,
"Low",0,5,namedObjects
)) ), init (
ArrayList $EFNAMSDDSACI_TempFinalEncs_0EncListBURIEncounters05C2847
= new ArrayList();
), action ( $EFNAMSDDSACI_TempFinalEncs_0EncListBURIEncounters05C2847.add(
$EFNAMSDDSACI_Enc_0EncListBURIEncounters05C2847);
), reverse ( $EFNAMSDDSACI_TempFinalEncs_0EncListBURIEncounters05C2847.remove(
$EFNAMSDDSACI_Enc_0EncListBURIEncounters05C2847);
), result( $EFNAMSDDSACI_TempFinalEncs_0EncListBURIEncounters05C2847) ) ) //DslUsed==Enc.From.NamedList.After.Med.SubDispense.DaysSupply.Active.Count.Id|||INT1==0|||ENCLISTID==EncListB|||NAMEDLIST==URIEncounters|||INT2==0|||TIMEUNITS2==5|||MED==C2847
then
namedObjects.put('MedicationActive', EncListB);
NamedList $namedListEncListB = new NamedList();
$namedListEncListB.setName('MedicationActive');
$namedListEncListB.setList(EncListB);
insert ($namedListEncListB);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListB|||NAME==MedicationActive
end
rule "I.03 ExcludeMedicationDispensed"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList ( name == "MedicationDispensed", list != null, EncListA : list == ( (List) (namedObjects.get("MedicationDispensed"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==MedicationDispensed
)
( $EFNAMSDCI_MedConceptTargetIds_0EncListBURIEncounters305C2847 :
java.util.List (size >= 0 ) from accumulate (
MedicationConcept (
openCdsConceptCode == "C2847",
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters305C2847 :
conceptTargetId ), init (ArrayList
$EFNAMSDCI_TempMedConceptTargetIds_0EncListBURIEncounters305C2847
= new ArrayList();
), action (
$EFNAMSDCI_TempMedConceptTargetIds_0EncListBURIEncounters305C2847.add(
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters305C2847);
), reverse (
$EFNAMSDCI_TempMedConceptTargetIds_0EncListBURIEncounters305C2847.remove(
ESMPBECI_MedConceptTargetId_0EncListBURIEncounters305C2847);
), result (
$EFNAMSDCI_TempMedConceptTargetIds_0EncListBURIEncounters305C2847) ) and
$EFNAMSDCI_SubDispenseEvents_0EncListBURIEncounters305C2847 :
java.util.List (size >= 0) from collect (
SubstanceDispensationEvent (
evaluatedPersonId == $evaluatedPersonId,
id memberOf
$EFNAMSDCI_MedConceptTargetIds_0EncListBURIEncounters305C2847,
dispensationTime != null
) ) and NamedList (
name == "URIEncounters", list != null, list.size() >= 0,
$EFNAMSDCI_Encounters_0EncListBURIEncounters305C2847 :
list == ( (List) (namedObjects.get("URIEncounters")))
) and EncListB :
java.util.List (size >= 0 ) from accumulate (
$EFNAMSDCI_Enc_0EncListBURIEncounters305C2847 : EncounterEvent (
evaluatedPersonId == $evaluatedPersonId,
eval(encInEncList($EFNAMSDCI_Enc_0EncListBURIEncounters305C2847,
$EFNAMSDCI_Encounters_0EncListBURIEncounters305C2847,namedObjects)),
eval(encAfterMedSubDispenseFromListWithinTime(
$EFNAMSDCI_Enc_0EncListBURIEncounters305C2847,
$EFNAMSDCI_SubDispenseEvents_0EncListBURIEncounters305C2847 ,
"Low","Low",30,5,namedObjects))
), init (ArrayList
$EFNAMSDCI_TempFinalEncs_0EncListBURIEncounters305C2847 = new ArrayList();
), action ( $EFNAMSDCI_TempFinalEncs_0EncListBURIEncounters305C2847.add(
$EFNAMSDCI_Enc_0EncListBURIEncounters305C2847);
), reverse ( $EFNAMSDCI_TempFinalEncs_0EncListBURIEncounters305C2847.remove(
$EFNAMSDCI_Enc_0EncListBURIEncounters305C2847);
), result( $EFNAMSDCI_TempFinalEncs_0EncListBURIEncounters305C2847) ) ) //DslUsed==Enc.From.NamedList.After.Med.SubDispense.Count.Id|||INT1==0|||ENCLISTID==EncListB|||NAMEDLIST==URIEncounters|||INT2==30|||TIMEUNITS2==5|||MED==C2847
then
namedObjects.put('MedicationDispensed', EncListB);
NamedList $namedListEncListB = new NamedList();
$namedListEncListB.setName('MedicationDispensed');
$namedListEncListB.setList(EncListB);
insert ($namedListEncListB);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListB|||NAME==MedicationDispensed
end
rule "I.04 ExcludePharyngitisCompetingDx"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList (
name == "PharyngitisCompetingDx",
list != null, EncListA : list == ( (List)
(namedObjects.get("PharyngitisCompetingDx"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==PharyngitisCompetingDx
)
( $EFNAERECI_ProbConceptTargetIds_0EncListBURIEncounters305C3141C405 :
java.util.List (size >= 0 ) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3141",
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3141C405 :
conceptTargetId ), init (ArrayList
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3141C405
= new ArrayList();
), action (
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3141C405.add(
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3141C405);
), reverse (
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3141C405.remove(
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3141C405);
), result(
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3141C405) ) and
$EFNAERECI_CSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405 :
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3141C405 :
conceptTargetId ), init (ArrayList
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405
= new ArrayList();
), action (
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405.add(
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3141C405);
), reverse (
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405.remove(
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3141C405);
), result(
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405) ) and
$EFNAERECI_CSRelProbSourceIds_0EncListBURIEncounters305C3141C405 :
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf
$EFNAERECI_CSRelConceptProbTargetIds_0EncListBURIEncounters305C3141C405,
targetId memberOf
$EFNAERECI_ProbConceptTargetIds_0EncListBURIEncounters305C3141C405,
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3141C405 :
sourceId ), init (ArrayList
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3141C405
= new ArrayList();
), action (
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3141C405.add(
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3141C405);
), reverse (
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3141C405.remove(
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3141C405);
), result(
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3141C405) ) and
$EFNAERECI_ComorbidEncIds_0EncListBURIEncounters305C3141C405 :
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3141C405 :
id memberOf $EFNAERECI_CSRelProbSourceIds_0EncListBURIEncounters305C3141C405,
evaluatedPersonId == $evaluatedPersonId ),
init (ArrayList
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3141C405
= new ArrayList();
), action (
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3141C405.add(
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3141C405);
), reverse (
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3141C405.remove(
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3141C405);
), result(
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3141C405) ) and
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3141C405 :
java.util.List( size >= 0 ) from collect (
EncounterEvent (
id memberOf
$EFNAERECI_ComorbidEncIds_0EncListBURIEncounters305C3141C405
) ) and
NamedList (
name == "URIEncounters",
list != null,
list.size() >= 0,
$EFNAERECI_Encounters_0EncListBURIEncounters305C3141C405 :
list == ( (List) (namedObjects.get("URIEncounters"))) ) and EncListB :
java.util.List (size >= 0 ) from accumulate (
$EFNAERECI_Enc_0EncListBURIEncounters305C3141C405 :
EncounterEvent (
evaluatedPersonId == $evaluatedPersonId,
eval(encInEncList($EFNAERECI_Enc_0EncListBURIEncounters305C3141C405,
$EFNAERECI_Encounters_0EncListBURIEncounters305C3141C405,
namedObjects)),
( eval(encAfterEncFromListWithinTime(
$EFNAERECI_Enc_0EncListBURIEncounters305C3141C405,
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3141C405,
"Low","High",30,5,namedObjects))
||
eval(encBeforeEncFromListWithinTime(
$EFNAERECI_Enc_0EncListBURIEncounters305C3141C405,
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3141C405,
"High","Low",8,5,namedObjects)
) ) ), init (
ArrayList
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3141C405
= new ArrayList();
), action (
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3141C405.add(
$EFNAERECI_Enc_0EncListBURIEncounters305C3141C405);
), reverse (
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3141C405.remove(
$EFNAERECI_Enc_0EncListBURIEncounters305C3141C405);
), result( $EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3141C405
) ) ) //DslUsed==Enc.From.NamedList.Before.After.Enc.Rship.EncDx.Count.Id|||INT1==0|||ENCLISTID==EncListB|||NAMEDLIST==URIEncounters|||INT2==30|||TIMEUNITS2==5|||INT3==8|||TIMEUNITS3==5|||PROB==C3141|||CSREL=C405
then
namedObjects.put('PharyngitisCompetingDx', EncListB);
NamedList $namedListEncListB = new NamedList();
$namedListEncListB.setName('PharyngitisCompetingDx');
$namedListEncListB.setList(EncListB);
insert ($namedListEncListB);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListB|||NAME==PharyngitisCompetingDx
end
rule "I.05 ExcludeOtherCompetingDx"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList (
name == "OtherCompetingDx",
list != null,
EncListA : list == ( (List) (namedObjects.get("OtherCompetingDx")))
) )
//DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==OtherCompetingDx
)
(
$EFNAERECI_ProbConceptTargetIds_0EncListBURIEncounters305C3093C405 :
java.util.List (size >= 0 ) from accumulate (
ProblemConcept (
openCdsConceptCode == "C3093",
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3093C405 :
conceptTargetId ), init (ArrayList
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3093C405
= new ArrayList();
), action (
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3093C405.add(
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3093C405);
), reverse (
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3093C405.remove(
$EFNAERECI_ProbConceptTargetId_0EncListBURIEncounters305C3093C405);
), result(
$EFNAERECI_TempProbConceptTargetIds_0EncListBURIEncounters305C3093C405) ) and
$EFNAERECI_CSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405 :
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationshipConcept (
openCdsConceptCode == "C405",
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3093C405 :
conceptTargetId ), init (ArrayList
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405
= new ArrayList();
), action (
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405.add(
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3093C405);
), reverse (
$EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405.remove(
$EFNAERECI_CSRelConceptProbTargetId_0EncListBURIEncounters305C3093C405);
), result($EFNAERECI_TempCSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405)
) and
$EFNAERECI_CSRelProbSourceIds_0EncListBURIEncounters305C3093C405 :
java.util.List (size >= 0 ) from accumulate (
ClinicalStatementRelationship (
id memberOf
$EFNAERECI_CSRelConceptProbTargetIds_0EncListBURIEncounters305C3093C405,
targetId memberOf
$EFNAERECI_ProbConceptTargetIds_0EncListBURIEncounters305C3093C405,
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3093C405 : sourceId
), init (ArrayList
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3093C405
= new ArrayList();
), action (
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3093C405.add(
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3093C405);
), reverse (
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3093C405.remove(
$EFNAERECI_CSRelProbSourceId_0EncListBURIEncounters305C3093C405);
), result(
$EFNAERECI_TempCSRelProbSourceIds_0EncListBURIEncounters305C3093C405) ) and
$EFNAERECI_ComorbidEncIds_0EncListBURIEncounters305C3093C405 :
java.util.List (size >= 0 ) from accumulate (
EncounterEvent (
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3093C405 :
id memberOf $EFNAERECI_CSRelProbSourceIds_0EncListBURIEncounters305C3093C405,
evaluatedPersonId == $evaluatedPersonId
), init (ArrayList
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3093C405
= new ArrayList();
), action (
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3093C405.add(
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3093C405);
), reverse (
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3093C405.remove(
$EFNAERECI_ComorbidEncId_0EncListBURIEncounters305C3093C405);
), result(
$EFNAERECI_TempComorbidEncIds_0EncListBURIEncounters305C3093C405) ) and
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3093C405 :
java.util.List( size >= 0 ) from collect (
EncounterEvent (
id memberOf
$EFNAERECI_ComorbidEncIds_0EncListBURIEncounters305C3093C405 ) ) and
NamedList (
name == "URIEncounters",
list != null,
list.size() >= 0,
$EFNAERECI_Encounters_0EncListBURIEncounters305C3093C405 :
list == ( (List) (namedObjects.get("URIEncounters"))) ) and EncListB :
java.util.List (size >= 0 ) from accumulate (
$EFNAERECI_Enc_0EncListBURIEncounters305C3093C405 :
EncounterEvent (
evaluatedPersonId == $evaluatedPersonId,
eval(encInEncList($EFNAERECI_Enc_0EncListBURIEncounters305C3093C405,
$EFNAERECI_Encounters_0EncListBURIEncounters305C3093C405,namedObjects)), (
eval(encAfterEncFromListWithinTime(
$EFNAERECI_Enc_0EncListBURIEncounters305C3093C405,
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3093C405,
"Low","High",30,5,namedObjects))
||
eval(encBeforeEncFromListWithinTime(
$EFNAERECI_Enc_0EncListBURIEncounters305C3093C405,
$EFNAERECI_ComorbidEncs_0EncListBURIEncounters305C3093C405,
"High","Low",8,5,namedObjects)
) ) ), init (
ArrayList
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3093C405
= new ArrayList();
), action (
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3093C405.add(
$EFNAERECI_Enc_0EncListBURIEncounters305C3093C405);
), reverse (
$EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3093C405.remove(
$EFNAERECI_Enc_0EncListBURIEncounters305C3093C405);
), result( $EFNAERECI_TempFinalEncs_0EncListBURIEncounters305C3093C405) ) ) //DslUsed==Enc.From.NamedList.Before.After.Enc.Rship.EncDx.Count.Id|||INT1==0|||ENCLISTID==EncListB|||NAMEDLIST==URIEncounters|||INT2==30|||TIMEUNITS2==5|||INT3==8|||TIMEUNITS3==5|||PROB==C3093|||CSREL=C405
then
namedObjects.put('OtherCompetingDx', EncListB);
NamedList $namedListEncListB = new NamedList();
$namedListEncListB.setName('OtherCompetingDx');
$namedListEncListB.setList(EncListB);
insert ($namedListEncListB);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListB|||NAME==OtherCompetingDx
end
rule "I.06 ListAllExclusions"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedList (
name == "AllExclusions",
list != null,
EncListA : list == ( (List) (namedObjects.get("AllExclusions"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==AllExclusions
)
( NamedList (
name == "MultipleClaims",
list != null,
EncListB : list == ( (List) (namedObjects.get("MultipleClaims"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListB|||NAME==MultipleClaims
( NamedList (
name == "MedicationActive",
list != null,
EncListC : list == ( (List) (namedObjects.get("MedicationActive")))
) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListC|||NAME==MedicationActive
( NamedList (
name == "MedicationDispensed",
list != null,
EncListD : list == ( (List) (namedObjects.get("MedicationDispensed")))
) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListD|||NAME==MedicationDispensed
( NamedList (
name == "PharyngitisCompetingDx",
list != null,
EncListE : list == ( (List) (namedObjects.get("PharyngitisCompetingDx")))
) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListE|||NAME==PharyngitisCompetingDx
( NamedList (
list != null,
name == "OtherCompetingDx",
EncListF : list == ( (List) (namedObjects.get("OtherCompetingDx")))
) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListF|||NAME==OtherCompetingDx
then
List EncListG = new ArrayList();
EncListG.addAll(EncListB);
EncListG.addAll(EncListC);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListG|||ENCLISTID2==EncListB|||ENCLISTID3==EncListC
List EncListH = new ArrayList();
EncListH.addAll(EncListD);
EncListH.addAll(EncListE);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListH|||ENCLISTID2==EncListD|||ENCLISTID3==EncListE
List EncListI = new ArrayList();
EncListI.addAll(EncListF);
EncListI.addAll(EncListG);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListI|||ENCLISTID2==EncListF|||ENCLISTID3==EncListG
List EncListJ = new ArrayList();
EncListJ.addAll(EncListI);
EncListJ.addAll(EncListH);
//DslUsed==Set.EncListId.Add.EncListRefs.Dsl|||ENCLISTID1==EncListJ|||ENCLISTID2==EncListI|||ENCLISTID3==EncListH
namedObjects.put('AllExclusions', EncListJ);
NamedList $namedListEncListJ = new NamedList();
$namedListEncListJ.setName('AllExclusions');
$namedListEncListJ.setList(EncListJ);
insert ($namedListEncListJ);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListJ|||NAME==AllExclusions
end
rule "I.07 ListEligibleEncounters"
ruleflow-group "denominatorExclusions"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
not (
( NamedEncounter ( name == "EligibleEncounters", encounter != null, namedObjects.get("EligibleEncounters") != null, encounter.id == ((EncounterEvent) namedObjects.get("EligibleEncounters")).getId() ) ) //DslUsed==NamedEncounter.Exists.Not.Null.Dsl|||NAME==EligibleEncounters
)
( NamedList ( name == "URIEncounters", list != null, EncListA : list == ( (List) (namedObjects.get("URIEncounters"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListA|||NAME==URIEncounters
( NamedList ( name == "AllExclusions", list != null, EncListB : list == ( (List) (namedObjects.get("AllExclusions"))) ) ) //DslUsed==NamedList.Exists.EncListId.Dsl|||ENCLISTID==EncListB|||NAME==AllExclusions
then
List EncListC = getEncListWithNoTimeOverlap(EncListA, EncListB);
//DslUsed==Set.EncListId.EncListRefs.No.Time.Overlap.Dsl|||ENCLISTID1==EncListC|||ENCLISTID2==EncListA|||ENCLISTID3==EncListB
namedObjects.put('EligibleEncounters', EncListC);
NamedList $namedListEncListC = new NamedList();
$namedListEncListC.setName('EligibleEncounters');
$namedListEncListC.setList(EncListC);
insert ($namedListEncListC);
//DslUsed==Insert.EncListRef.As.NamedList.Dsl|||ENCLISTID==EncListC|||NAME==EligibleEncounters
end
rule "K.01 DenominatorCriteriaMet"
ruleflow-group "denominatorConclusion"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C545") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C545
( java.util.List (size == 0) from collect (
Assertion(value == "C544") ) ) //DslUsed==Assertion.Not.Exists.Dsl|||ASSERTION==C544
( NamedList (
name == "EligibleEncounters",
list != null,
list.size() > 0,
list == ( (List) (namedObjects.get("EligibleEncounters"))) ) ) //DslUsed==NamedList.Exists.Not.Empty.Dsl|||NAME==EligibleEncounters
not (
( NamedDate ( name == "IESD", date != null, date == ((java.util.Date) namedObjects.get("IESD")) ) ) //DslUsed==NamedDate.Exists.Not.Null.Dsl|||NAME==IESD
)
then
insert(new Assertion("C54"));
assertions.add("C54");
//DslUsed==Assert.Dsl|||ASSERTION==C54
List<EncounterEvent> namedListEncs =
(List<EncounterEvent>) namedObjects.get("EligibleEncounters");
java.util.Date namedDateValue = getEarliestDateFromEncounterList(namedListEncs, "Low");
namedObjects.put("IESD", namedDateValue);
NamedDate $INDFEEINL_NamedDate = new NamedDate();
$INDFEEINL_NamedDate.setName("IESD");
$INDFEEINL_NamedDate.setDate(namedDateValue);
insert ($INDFEEINL_NamedDate);
//DslUsed==Insert.NamedDate.From.Earliest.Enc.In.NamedList.Dsl|||NAME==IESD|||HIGHLOW==Low|||NAMEDLISTNAME==EligibleEncounters
end
rule "K.02 InsertNamedDateIESD_ PLUS_3D"
ruleflow-group "denominatorConclusion"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C54") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C54
( NamedDate ( name == "IESD", date != null, date == ((java.util.Date) namedObjects.get("IESD")) ) ) //DslUsed==NamedDate.Exists.Not.Null.Dsl|||NAME==IESD
not (
( NamedDate ( name == "IESD_PLUS_3D", date != null, date == ((java.util.Date) namedObjects.get("IESD_PLUS_3D")) ) ) //DslUsed==NamedDate.Exists.Not.Null.Dsl|||NAME==IESD_PLUS_3D
)
then
java.util.Date sourcenamedDateValue_INDAND_35 =
(java.util.Date) namedObjects.get("IESD");
java.util.Date namedDateValue_INDAND_35 =
org.opencds.common.utilities.DateUtility.getInstance()
.getDateAfterAddingTime(sourcenamedDateValue_INDAND_35, 5, 3);
namedObjects.put("IESD_PLUS_3D", namedDateValue_INDAND_35);
NamedDate $namedDateAfterNamedDate_INDAND_35 = new NamedDate();
$namedDateAfterNamedDate_INDAND_35.setName("IESD_PLUS_3D");
$namedDateAfterNamedDate_INDAND_35.setDate(namedDateValue_INDAND_35);
insert ($namedDateAfterNamedDate_INDAND_35);
//DslUsed==Insert.NamedDate.After.NamedDate.Dsl|||NAME==IESD_PLUS_3D|||INT==3|||TIMEUNITS==5|||NAMEDDATENAME==IESD
assertions.add("IESD="
+ org.opencds.common.utilities.DateUtility.getInstance()
.getDateAsSqlLongString(((java.util.Date) namedObjects.get("IESD"))));
insert(new Assertion("IESD="
+ org.opencds.common.utilities.DateUtility.getInstance()
.getDateAsSqlLongString(((java.util.Date) namedObjects.get("IESD")))));
//DslUsed==Assert.NamedDate.StNum.Dsl|||NAMEDDATENAME==IESD
end
rule "N.01 Num_AntibioticMedication"
ruleflow-group "numerator"
dialect "java"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
( Assertion(value == "C54") ) //DslUsed==Assertion.Exists.Dsl|||ASSERTION==C54
( NamedDate (
name == "IESD",
date != null,
$SDMBNDNT_NamedDate1Value_C2847High :
date == ((java.util.Date) namedObjects.get("IESD"))
) and
NamedDate (
name == "IESD_PLUS_3D",
date != null,
$SDMBNDNT_NamedDate2Value_C2847High :
date == ((java.util.Date) namedObjects.get("IESD_PLUS_3D")) ) and
$SDMBNDNT_MedConceptTargetIds_C2847High :
java.util.List (size >= 0 ) from accumulate (
MedicationConcept (
openCdsConceptCode == "C2847",
SDMBNDNT_MedConceptTargetId_C2847High :
conceptTargetId ), init (
ArrayList $SDMBNDNT_TempMedConceptTargetIds_C2847High
= new ArrayList();
), action ($SDMBNDNT_TempMedConceptTargetIds_C2847High.add(
SDMBNDNT_MedConceptTargetId_C2847High);
), reverse ($SDMBNDNT_TempMedConceptTargetIds_C2847High.remove(
SDMBNDNT_MedConceptTargetId_C2847High);
), result ($SDMBNDNT_TempMedConceptTargetIds_C2847High) ) and
$SDMBNDNT_SubDispenseEvents_C2847High :
java.util.List (size > 0) from collect (
SubstanceDispensationEvent (
evaluatedPersonId == $evaluatedPersonId,
id memberOf $SDMBNDNT_MedConceptTargetIds_C2847High,
dispensationTime != null,
(stripTimeComponent(dispensationTime.getHigh())) >=
(stripTimeComponent($SDMBNDNT_NamedDate1Value_C2847High)),
(stripTimeComponent(dispensationTime.getHigh())) <=
(stripTimeComponent($SDMBNDNT_NamedDate2Value_C2847High))
) ) ) //DslUsed==SubDispence.Med.Between.NamedDates.NoTimes|||MED==C2847|||HIGHLOW==High|||COMP1==>=|||COMP2==<=|||NAMEDDATE1NAME==IESD|||NAMEDDATE2NAME==IESD_PLUS_3D
then
insert(new Assertion("C1527"));
assertions.add("C1527");
//DslUsed==Assert.Dsl|||ASSERTION==C1527
insert(new Assertion("C539"));
assertions.add("C539");
//DslUsed==Assert.Dsl|||ASSERTION==C539
end
rule "S.01 DebugConceptsAll"
dialect "java"
ruleflow-group "debug"
when
( EvalTime($evalTime : evalTimeValue) and FocalPersonId($focalPersonId : id)
and FocalPersonId($evaluatedPersonId : id) )
( $concepts : java.util.Set (size >= 0) from collect (
VmrOpenCdsConcept() ) ) //DslUsed==Out.Concepts.All.Read.Dsl
then
IVLDate obsTimeDEBUG_CONCEPTS = new IVLDate();
obsTimeDEBUG_CONCEPTS.setLow($evalTime);
obsTimeDEBUG_CONCEPTS.setHigh($evalTime);
ObservationResult parentObsDEBUG_CONCEPTS = new ObservationResult();
String parentObsDEBUG_CONCEPTSId = "2.16.840.1.113883.3.795.5.1.1^DEBUG_CONCEPTS";
parentObsDEBUG_CONCEPTS.setId(parentObsDEBUG_CONCEPTSId);
parentObsDEBUG_CONCEPTS.setEvaluatedPersonId($evaluatedPersonId);
parentObsDEBUG_CONCEPTS.setObservationEventTime(obsTimeDEBUG_CONCEPTS);
parentObsDEBUG_CONCEPTS.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
CD parentObsDEBUG_CONCEPTSFocus = new CD();
parentObsDEBUG_CONCEPTSFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsDEBUG_CONCEPTSFocus.setCodeSystemName("OpenCDS concepts");
parentObsDEBUG_CONCEPTSFocus.setCode("concepts");
parentObsDEBUG_CONCEPTSFocus.setDisplayName("Concepts found in working memory");
parentObsDEBUG_CONCEPTS.setObservationFocus(parentObsDEBUG_CONCEPTSFocus);
parentObsDEBUG_CONCEPTS.setClinicalStatementToBeRoot(true);
parentObsDEBUG_CONCEPTS.setToBeReturned(true);
ObservationValue obsValueDEBUG_CONCEPTS = new ObservationValue();
String conceptsAsString = getConceptsAsString($concepts);
obsValueDEBUG_CONCEPTS.setText(conceptsAsString);
parentObsDEBUG_CONCEPTS.setObservationValue(obsValueDEBUG_CONCEPTS);
insert(parentObsDEBUG_CONCEPTS);
namedObjects.put("parentObsDEBUG_CONCEPTS", (Object)parentObsDEBUG_CONCEPTS);
//DslUsed==Out.Concepts.All.Write.Dsl|||CONCEPTS==DEBUG_CONCEPTS
end
rule "T.01 Response_DenomNotMet"
dialect "java"
ruleflow-group "denomNotMet"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
then
IVLDate obsTimenumerator = new IVLDate();
obsTimenumerator.setLow($evalTime);
obsTimenumerator.setHigh($evalTime);
ObservationResult childObsnumerator = new ObservationResult();
String childObsnumeratorId = "2.16.840.1.113883.3.795.5.1.1^numerator";
childObsnumerator.setId(childObsnumeratorId);
childObsnumerator.setEvaluatedPersonId($evaluatedPersonId);
childObsnumerator.setObservationEventTime(obsTimenumerator);
childObsnumerator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsnumerator.setClinicalStatementToBeRoot(false);
childObsnumerator.setToBeReturned(true);
CD childObsnumeratorFocus = new CD();
childObsnumeratorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsnumeratorFocus.setCodeSystemName("OpenCDS concepts");
childObsnumeratorFocus.setCode("C2605");
childObsnumeratorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsnumerator.setObservationFocus(childObsnumeratorFocus);
int iChildObsnumerator = 0;
INT childObsnumeratorIntegerValue = new INT();
childObsnumeratorIntegerValue.setValue(iChildObsnumerator);
ObservationValue childObsnumeratorValue = new ObservationValue();
childObsnumeratorValue.setInteger(childObsnumeratorIntegerValue);
childObsnumerator.setObservationValue(childObsnumeratorValue);
ClinicalStatementRelationship relnumerator = new ClinicalStatementRelationship();
relnumerator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
relnumerator.setTargetId("2.16.840.1.113883.3.795.5.1.1^numerator");
CD relnumeratorCode = new CD();
relnumeratorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
relnumeratorCode.setCodeSystemName("OpenCDS concepts");
relnumeratorCode.setCode("C405");
relnumeratorCode.setDisplayName("Part of");
relnumerator.setTargetRelationshipToSource(relnumeratorCode);
java.util.List<RelationshipToSource> childObsnumeratorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsnumeratorRelationshipToSource = new RelationshipToSource();
childObsnumeratorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsnumeratorRelationshipToSource.setRelationshipToSource(relnumeratorCode);
childObsnumeratorRelationshipToSources.add(childObsnumeratorRelationshipToSource);
childObsnumerator.setRelationshipToSources(childObsnumeratorRelationshipToSources);
insert(childObsnumerator);
namedObjects.put("childObsnumerator", childObsnumerator);
insert(relnumerator);
namedObjects.put("relnumerator", relnumerator);
IVLDate obsTimedenominator = new IVLDate();
obsTimedenominator.setLow($evalTime);
obsTimedenominator.setHigh($evalTime);
ObservationResult childObsdenominator = new ObservationResult();
String childObsdenominatorId = "2.16.840.1.113883.3.795.5.1.1^denominator";
childObsdenominator.setId(childObsdenominatorId);
childObsdenominator.setEvaluatedPersonId($evaluatedPersonId);
childObsdenominator.setObservationEventTime(obsTimedenominator);
childObsdenominator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsdenominator.setClinicalStatementToBeRoot(false);
childObsdenominator.setToBeReturned(true);
CD childObsdenominatorFocus = new CD();
childObsdenominatorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsdenominatorFocus.setCodeSystemName("OpenCDS concepts");
childObsdenominatorFocus.setCode("C2605");
childObsdenominatorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsdenominator.setObservationFocus(childObsdenominatorFocus);
int iChildObsdenominator = 0;
INT childObsdenominatorIntegerValue = new INT();
childObsdenominatorIntegerValue.setValue(iChildObsdenominator);
ObservationValue childObsdenominatorValue = new ObservationValue();
childObsdenominatorValue.setInteger(childObsdenominatorIntegerValue);
childObsdenominator.setObservationValue(childObsdenominatorValue);
ClinicalStatementRelationship reldenominator = new ClinicalStatementRelationship();
reldenominator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
reldenominator.setTargetId("2.16.840.1.113883.3.795.5.1.1^denominator");
CD reldenominatorCode = new CD();
reldenominatorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
reldenominatorCode.setCodeSystemName("OpenCDS concepts");
reldenominatorCode.setCode("C405");
reldenominatorCode.setDisplayName("Part of");
reldenominator.setTargetRelationshipToSource(reldenominatorCode);
java.util.List<RelationshipToSource> childObsdenominatorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsdenominatorRelationshipToSource = new RelationshipToSource();
childObsdenominatorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsdenominatorRelationshipToSource.setRelationshipToSource(reldenominatorCode);
childObsdenominatorRelationshipToSources.add(childObsdenominatorRelationshipToSource);
childObsdenominator.setRelationshipToSources(childObsdenominatorRelationshipToSources);
insert(childObsdenominator);
namedObjects.put("childObsdenominator", childObsdenominator);
insert(reldenominator);
namedObjects.put("reldenominator", reldenominator);
//DslUsed==Out.Nested.Obs.Num.Denom.Dsl|||DENOMVALUE==0|||DENOMID==denominator|||NUMVALUE==0|||NUMID==numerator|||ROOT==ROOT|||OBSFOCUS==C2605
assertions.add("denomNotMet");
insert(new Assertion("denomNotMet"));
//DslUsed==Assert.String.Dsl|||ASSERTIONSTRING==denomNotMet
IVLDate obsTimeASSERTROOT = new IVLDate();
obsTimeASSERTROOT.setLow($evalTime);
obsTimeASSERTROOT.setHigh($evalTime);
ObservationResult parentObsASSERTROOT = new ObservationResult();
String parentObsASSERTROOTId = "2.16.840.1.113883.3.795.5.1.1^ASSERTROOT";
parentObsASSERTROOT.setId(parentObsASSERTROOTId);
parentObsASSERTROOT.setEvaluatedPersonId($evaluatedPersonId);
parentObsASSERTROOT.setObservationEventTime(obsTimeASSERTROOT);
parentObsASSERTROOT.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
CD parentObsASSERTROOTFocus = new CD();
parentObsASSERTROOTFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsASSERTROOTFocus.setCodeSystemName("OpenCDS concepts");
parentObsASSERTROOTFocus.setCode("assertions");
parentObsASSERTROOTFocus.setDisplayName("Assertions found in working memory");
parentObsASSERTROOT.setObservationFocus(parentObsASSERTROOTFocus);
parentObsASSERTROOT.setClinicalStatementToBeRoot(true);
parentObsASSERTROOT.setToBeReturned(true);
ObservationValue obsValueASSERTROOT = new ObservationValue();
obsValueASSERTROOT.setText(getAssertionsAsString(assertions));
parentObsASSERTROOT.setObservationValue(obsValueASSERTROOT);
insert(parentObsASSERTROOT);
namedObjects.put("parentObsASSERTROOT", (Object)parentObsASSERTROOT);
end
rule "U.01 Response_NumNotMet"
dialect "java"
ruleflow-group "numNotMet"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
then
IVLDate obsTimenumerator = new IVLDate();
obsTimenumerator.setLow($evalTime);
obsTimenumerator.setHigh($evalTime);
ObservationResult childObsnumerator = new ObservationResult();
String childObsnumeratorId = "2.16.840.1.113883.3.795.5.1.1^numerator";
childObsnumerator.setId(childObsnumeratorId);
childObsnumerator.setEvaluatedPersonId($evaluatedPersonId);
childObsnumerator.setObservationEventTime(obsTimenumerator);
childObsnumerator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsnumerator.setClinicalStatementToBeRoot(false);
childObsnumerator.setToBeReturned(true);
CD childObsnumeratorFocus = new CD();
childObsnumeratorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsnumeratorFocus.setCodeSystemName("OpenCDS concepts");
childObsnumeratorFocus.setCode("C2605");
childObsnumeratorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsnumerator.setObservationFocus(childObsnumeratorFocus);
int iChildObsnumerator = 0;
INT childObsnumeratorIntegerValue = new INT();
childObsnumeratorIntegerValue.setValue(iChildObsnumerator);
ObservationValue childObsnumeratorValue = new ObservationValue();
childObsnumeratorValue.setInteger(childObsnumeratorIntegerValue);
childObsnumerator.setObservationValue(childObsnumeratorValue);
ClinicalStatementRelationship relnumerator = new ClinicalStatementRelationship();
relnumerator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
relnumerator.setTargetId("2.16.840.1.113883.3.795.5.1.1^numerator");
CD relnumeratorCode = new CD();
relnumeratorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
relnumeratorCode.setCodeSystemName("OpenCDS concepts");
relnumeratorCode.setCode("C405");
relnumeratorCode.setDisplayName("Part of");
relnumerator.setTargetRelationshipToSource(relnumeratorCode);
java.util.List<RelationshipToSource> childObsnumeratorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsnumeratorRelationshipToSource = new RelationshipToSource();
childObsnumeratorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsnumeratorRelationshipToSource.setRelationshipToSource(relnumeratorCode);
childObsnumeratorRelationshipToSources.add(childObsnumeratorRelationshipToSource);
childObsnumerator.setRelationshipToSources(childObsnumeratorRelationshipToSources);
insert(childObsnumerator);
namedObjects.put("childObsnumerator", childObsnumerator);
insert(relnumerator);
namedObjects.put("relnumerator", relnumerator);
IVLDate obsTimedenominator = new IVLDate();
obsTimedenominator.setLow($evalTime);
obsTimedenominator.setHigh($evalTime);
ObservationResult childObsdenominator = new ObservationResult();
String childObsdenominatorId = "2.16.840.1.113883.3.795.5.1.1^denominator";
childObsdenominator.setId(childObsdenominatorId);
childObsdenominator.setEvaluatedPersonId($evaluatedPersonId);
childObsdenominator.setObservationEventTime(obsTimedenominator);
childObsdenominator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsdenominator.setClinicalStatementToBeRoot(false);
childObsdenominator.setToBeReturned(true);
CD childObsdenominatorFocus = new CD();
childObsdenominatorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsdenominatorFocus.setCodeSystemName("OpenCDS concepts");
childObsdenominatorFocus.setCode("C2605");
childObsdenominatorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsdenominator.setObservationFocus(childObsdenominatorFocus);
int iChildObsdenominator = 1;
INT childObsdenominatorIntegerValue = new INT();
childObsdenominatorIntegerValue.setValue(iChildObsdenominator);
ObservationValue childObsdenominatorValue = new ObservationValue();
childObsdenominatorValue.setInteger(childObsdenominatorIntegerValue);
childObsdenominator.setObservationValue(childObsdenominatorValue);
ClinicalStatementRelationship reldenominator = new ClinicalStatementRelationship();
reldenominator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
reldenominator.setTargetId("2.16.840.1.113883.3.795.5.1.1^denominator");
CD reldenominatorCode = new CD();
reldenominatorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
reldenominatorCode.setCodeSystemName("OpenCDS concepts");
reldenominatorCode.setCode("C405");
reldenominatorCode.setDisplayName("Part of");
reldenominator.setTargetRelationshipToSource(reldenominatorCode);
java.util.List<RelationshipToSource> childObsdenominatorRelationshipToSources =
new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsdenominatorRelationshipToSource = new RelationshipToSource();
childObsdenominatorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsdenominatorRelationshipToSource.setRelationshipToSource(reldenominatorCode);
childObsdenominatorRelationshipToSources.add(childObsdenominatorRelationshipToSource);
childObsdenominator.setRelationshipToSources(childObsdenominatorRelationshipToSources);
insert(childObsdenominator);
namedObjects.put("childObsdenominator", childObsdenominator);
insert(reldenominator);
namedObjects.put("reldenominator", reldenominator);
//DslUsed==Out.Nested.Obs.Num.Denom.Dsl|||DENOMVALUE==1|||DENOMID==denominator|||NUMVALUE==0|||NUMID==numerator|||ROOT==ROOT|||OBSFOCUS==C2605
assertions.add("numNotMet");
insert(new Assertion("numNotMet"));
//DslUsed==Assert.String.Dsl|||ASSERTIONSTRING==numNotMet
IVLDate obsTimeASSERTROOT = new IVLDate();
obsTimeASSERTROOT.setLow($evalTime);
obsTimeASSERTROOT.setHigh($evalTime);
ObservationResult parentObsASSERTROOT = new ObservationResult();
String parentObsASSERTROOTId = "2.16.840.1.113883.3.795.5.1.1^ASSERTROOT";
parentObsASSERTROOT.setId(parentObsASSERTROOTId);
parentObsASSERTROOT.setEvaluatedPersonId($evaluatedPersonId);
parentObsASSERTROOT.setObservationEventTime(obsTimeASSERTROOT);
parentObsASSERTROOT.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
CD parentObsASSERTROOTFocus = new CD();
parentObsASSERTROOTFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsASSERTROOTFocus.setCodeSystemName("OpenCDS concepts");
parentObsASSERTROOTFocus.setCode("assertions");
parentObsASSERTROOTFocus.setDisplayName("Assertions found in working memory");
parentObsASSERTROOT.setObservationFocus(parentObsASSERTROOTFocus);
parentObsASSERTROOT.setClinicalStatementToBeRoot(true);
parentObsASSERTROOT.setToBeReturned(true);
ObservationValue obsValueASSERTROOT = new ObservationValue();
obsValueASSERTROOT.setText(getAssertionsAsString(assertions));
parentObsASSERTROOT.setObservationValue(obsValueASSERTROOT);
insert(parentObsASSERTROOT);
namedObjects.put("parentObsASSERTROOT", (Object)parentObsASSERTROOT);
end
rule "W.01 Response_NumDenomMet"
dialect "java"
ruleflow-group "numMet"
when
( EvalTime($evalTime : evalTimeValue) and
FocalPersonId($focalPersonId : id) and
FocalPersonId($evaluatedPersonId : id) )
then
IVLDate obsTimenumerator = new IVLDate();
obsTimenumerator.setLow($evalTime);
obsTimenumerator.setHigh($evalTime);
ObservationResult childObsnumerator = new ObservationResult();
String childObsnumeratorId = "2.16.840.1.113883.3.795.5.1.1^numerator";
childObsnumerator.setId(childObsnumeratorId);
childObsnumerator.setEvaluatedPersonId($evaluatedPersonId);
childObsnumerator.setObservationEventTime(obsTimenumerator);
childObsnumerator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsnumerator.setClinicalStatementToBeRoot(false);
childObsnumerator.setToBeReturned(true);
CD childObsnumeratorFocus = new CD();
childObsnumeratorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsnumeratorFocus.setCodeSystemName("OpenCDS concepts");
childObsnumeratorFocus.setCode("C2605");
childObsnumeratorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsnumerator.setObservationFocus(childObsnumeratorFocus);
int iChildObsnumerator = 1;
INT childObsnumeratorIntegerValue = new INT();
childObsnumeratorIntegerValue.setValue(iChildObsnumerator);
ObservationValue childObsnumeratorValue = new ObservationValue();
childObsnumeratorValue.setInteger(childObsnumeratorIntegerValue);
childObsnumerator.setObservationValue(childObsnumeratorValue);
ClinicalStatementRelationship relnumerator = new ClinicalStatementRelationship();
relnumerator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
relnumerator.setTargetId("2.16.840.1.113883.3.795.5.1.1^numerator");
CD relnumeratorCode = new CD();
relnumeratorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
relnumeratorCode.setCodeSystemName("OpenCDS concepts");
relnumeratorCode.setCode("C405");
relnumeratorCode.setDisplayName("Part of");
relnumerator.setTargetRelationshipToSource(relnumeratorCode);
java.util.List<RelationshipToSource> childObsnumeratorRelationshipToSources
= new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsnumeratorRelationshipToSource = new RelationshipToSource();
childObsnumeratorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsnumeratorRelationshipToSource.setRelationshipToSource(relnumeratorCode);
childObsnumeratorRelationshipToSources.add(childObsnumeratorRelationshipToSource);
childObsnumerator.setRelationshipToSources(childObsnumeratorRelationshipToSources);
insert(childObsnumerator);
namedObjects.put("childObsnumerator", childObsnumerator);
insert(relnumerator);
namedObjects.put("relnumerator", relnumerator);
IVLDate obsTimedenominator = new IVLDate();
obsTimedenominator.setLow($evalTime);
obsTimedenominator.setHigh($evalTime);
ObservationResult childObsdenominator = new ObservationResult();
String childObsdenominatorId = "2.16.840.1.113883.3.795.5.1.1^denominator";
childObsdenominator.setId(childObsdenominatorId);
childObsdenominator.setEvaluatedPersonId($evaluatedPersonId);
childObsdenominator.setObservationEventTime(obsTimedenominator);
childObsdenominator.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
childObsdenominator.setClinicalStatementToBeRoot(false);
childObsdenominator.setToBeReturned(true);
CD childObsdenominatorFocus = new CD();
childObsdenominatorFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
childObsdenominatorFocus.setCodeSystemName("OpenCDS concepts");
childObsdenominatorFocus.setCode("C2605");
childObsdenominatorFocus.setDisplayName(getOpenCDSConceptName("C2605"));
childObsdenominator.setObservationFocus(childObsdenominatorFocus);
int iChildObsdenominator = 1;
INT childObsdenominatorIntegerValue = new INT();
childObsdenominatorIntegerValue.setValue(iChildObsdenominator);
ObservationValue childObsdenominatorValue = new ObservationValue();
childObsdenominatorValue.setInteger(childObsdenominatorIntegerValue);
childObsdenominator.setObservationValue(childObsdenominatorValue);
ClinicalStatementRelationship reldenominator = new ClinicalStatementRelationship();
reldenominator.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
reldenominator.setTargetId("2.16.840.1.113883.3.795.5.1.1^denominator");
CD reldenominatorCode = new CD();
reldenominatorCode.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
reldenominatorCode.setCodeSystemName("OpenCDS concepts");
reldenominatorCode.setCode("C405");
reldenominatorCode.setDisplayName("Part of");
reldenominator.setTargetRelationshipToSource(reldenominatorCode);
java.util.List<RelationshipToSource> childObsdenominatorRelationshipToSources
= new java.util.ArrayList<RelationshipToSource>();
RelationshipToSource childObsdenominatorRelationshipToSource = new RelationshipToSource();
childObsdenominatorRelationshipToSource.setSourceId("2.16.840.1.113883.3.795.5.1.1^ROOT");
childObsdenominatorRelationshipToSource.setRelationshipToSource(reldenominatorCode);
childObsdenominatorRelationshipToSources.add(childObsdenominatorRelationshipToSource);
childObsdenominator.setRelationshipToSources(childObsdenominatorRelationshipToSources);
insert(childObsdenominator);
namedObjects.put("childObsdenominator", childObsdenominator);
insert(reldenominator);
namedObjects.put("reldenominator", reldenominator);
//DslUsed==Out.Nested.Obs.Num.Denom.Dsl|||DENOMVALUE==1|||DENOMID==denominator|||NUMVALUE==1|||NUMID==numerator|||ROOT==ROOT|||OBSFOCUS==C2605
assertions.add("numMet");
insert(new Assertion("numMet"));
//DslUsed==Assert.String.Dsl|||ASSERTIONSTRING==numMet
IVLDate obsTimeASSERTROOT = new IVLDate();
obsTimeASSERTROOT.setLow($evalTime);
obsTimeASSERTROOT.setHigh($evalTime);
ObservationResult parentObsASSERTROOT = new ObservationResult();
String parentObsASSERTROOTId = "2.16.840.1.113883.3.795.5.1.1^ASSERTROOT";
parentObsASSERTROOT.setId(parentObsASSERTROOTId);
parentObsASSERTROOT.setEvaluatedPersonId($evaluatedPersonId);
parentObsASSERTROOT.setObservationEventTime(obsTimeASSERTROOT);
parentObsASSERTROOT.setSubjectIsFocalPerson($evaluatedPersonId == $focalPersonId);
CD parentObsASSERTROOTFocus = new CD();
parentObsASSERTROOTFocus.setCodeSystem("2.16.840.1.113883.3.795.12.1.1");
parentObsASSERTROOTFocus.setCodeSystemName("OpenCDS concepts");
parentObsASSERTROOTFocus.setCode("assertions");
parentObsASSERTROOTFocus.setDisplayName("Assertions found in working memory");
parentObsASSERTROOT.setObservationFocus(parentObsASSERTROOTFocus);
parentObsASSERTROOT.setClinicalStatementToBeRoot(true);
parentObsASSERTROOT.setToBeReturned(true);
ObservationValue obsValueASSERTROOT = new ObservationValue();
obsValueASSERTROOT.setText(getAssertionsAsString(assertions));
parentObsASSERTROOT.setObservationValue(obsValueASSERTROOT);
insert(parentObsASSERTROOT);
namedObjects.put("parentObsASSERTROOT", (Object)parentObsASSERTROOT);
end
|