...
DSLs that select patient demographics of interest to this Knowledge Module
These particular DSLs are for the LHS side of a rule, and typically would have an assertion on the RHS, which can then be used to control further steps performed during the execution of the Knowledge Module
- Dem.Age.Time - one or two instances of this DSL may be used to constrain an age range for the patient
- Missing.DOB - this is used to determine if the data is bad, and the Knowledge Module should be aborted
DSLs that select encounters of interest to this Knowledge Module
...
- Enc.From.NamedList.After.Med.SubDispense.Count.Id
- Enc.From.NamedList.After.Med.SubDispense.DaysSupply.Active.Count.Id
- Enc.From.NamedList.Before.After.Enc.Rship.EncDx.Count.Id
- Enc.From.NamedList.Rship.EncDx.Not.Multiple.Count.Id
- Enc.Rship.EncDx.Between.Times.Count.Id
- Enc.Rship.EncDx.Between.Times.Count.Id
- Enc.Between.Times.Count.Id
- Set.EncListId.Add.EncListRefs
- Set.EncListId.EncListRefs.No.Time.Overlap
DSLs that select Medications of interest to this Knowledge Module
- SubDispense.Med.Between.NamedDates.NoTimes
DSLs that create output structures for this Knowledge Module as ObservationResults in working memory
With one exception these DSLs all live in the RHS of a rule, and they create output structures, modeled as a vMR ObservationResult, and containing information that you want OpenCDS to return as the EvaluationResponse to an EvaluationRequest. Since any new facts that are created within Drools go out of scope when you leave Drools, these output structures are made available to OpenCDS by adding them to the global "namedObjects", where OpenCDS will find them, and process them as output.
- Out.Assertions - creates a list of all the "Assertions" found in working memory for debugging purposes
- Out.Concepts.All.Read - LHS, used to locate all the OpenCDS Concepts in working memory to enable creating an output with Out.Concepts.All.Write
- Out.Concepts.All.Write - RHS creates a single output ObservationResult containing a list of all the mapped OpenCDS Concepts that were found in the input data, for debugging purposes
- Out.Nested.Obs.Num.Denom - creates an ObservationResult containing the actual findings/results of the KM
- Out.Root.Obs.Focus.EvalpId - This is a wrapper ObservationResult that identifies the Knowledge Module that was executed and the ID of the patient involved. It is intended to be used with another DSL, such as Out.Nested.Obs.Num.Denom which documents the detail findings of the KM
DSLs that initialize variables useful in individual rules
This DSL must be used as the first step in the LHS of all rules that use any other DSLs. It initializes references for the evaluation time, the focal patient, and the evaluated person (which is same as the patient for this DSL) that can then be used in subsequent steps of the current rule.. Other versions of this DSL can be used to use the same rules to inference over the vMR constructions of "OtherEvaluatedPerson".
- Init.EvalTime.FpId.EvalpId
...
DSLs that create and inference on new generic facts in working memory
There are situations where it is useful to create new types of data that are not part of the vMR for new derivative facts that you want to insert into working memory, and/or into the global "namedObjects", and you need for them to have a name so that you can reference them later. The new types of data created as Declarative Data Model types, and the following DSLs create or reference instances of them.
- Insert.EncListRef.As.NamedList
- Insert.EncListRef.As.NamedList
- Insert.NamedDate.After.NamedDate
- Insert.NamedDate.From.Earliest.Enc.In.NamedList
- NamedDate.Exists.Not.Null
- NamedEnc.Exists.Not.Null
- NamedList.Exists.EncListId
- NamedList.Exists.Not.Empty
DSLs that create output structures for this Knowledge Module as ObservationResults in working memory
- Out.Nested.Obs.Num.Denom
- Out.Assertions
- Out.Concepts.All.Read
- Out.Concepts.All.Write
- Out.Nested.Obs.Num.Denom
- Out.Root.Obs.Focus.EvalpId
DSLs that select Medications of interest to this Knowledge Module
...