Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The PreProcessPluginContext is constructed each time rule execution is requested.  The following data components are contained within the context:

  • evalTime
  • clientLanguage
  • clientTimeZoneOffset
  • focalPersonId
  • assertions
    • This object is a set of strings, or more specifically, Set<String>, and is a placeholder for assertions and is instantiated and given to Drools as a global variable. Drools may write to this set to provide the calling code with the information about the inferencing performed on the input data. (As of today--2014-09-20) the assertions object is not being used external to Drools, as there is a rule that is commonly being used which assembles the assertions into a comma-delimited list, as part of the vMR output.)
  • globals
    • This (new) object is a Map of String to Object, or more specifically, Map<String, Object>.  The key of each map entry may be any given String, which is typically used as a Global within the Drools context.  Names are restricted to any value other than the following:
      • read-only: evalTimeclientLanguageclientTimeZoneOffsetfocalPersonId
      • read-write: assertions, and namedObjects
  • allFactLists
    • This object is a Map of Class to List, or more specifically, Map<Class<?>, List<?>>.  The key of each map entry may be a Class of any given type, though Plugins should restrict the types to OpenCDS-internal components of the vMR.
    • Fact Lists are the facts that Drools uses for inferencing–these contain data from the vMR.
    • All facts that are submitted are returned unless they are retracted by the rules.  They are returned to OpenCDS, but OpenCDS only puts them into the output XML if they are flagged to be returned (using ClinicalStatement fields: clinicalStatementToBeRoot and toBeReturned) input to be returned is flagged to be returned)clinicalStatementToBeRoot and/or toBeReturned; a ClinicalStatement marked as clinicalStatementToBeRoot and toBeReturned will return all child elements).
  • namedObjects
    • This object is a Map of String to Object, or more specifically, Map<String, Object>.  The key of each map entry may be any given String, which is typically used within Drools.
    • Named objects are currently (at the University of Utah) used by Drools rules as follows:
      • adds named objects to what is found to be returned in submitted allFactLists.
    globals
    • This object is a Map of String to Object, or more specifically, Map<String, Object>.  The key of each map entry may be any given String, which is typically used as a Global within the Drools context.  Names are restricted to any value other than the following:
      • evalTime, clientLanguage, clientTimeZoneOffset, focalPersonId, assertions, and namedObjects.
  • cache
    • Cache is a cache of data within an OpencdsCache cache region, where plugins may store the data they support for future processing, as in the case of, e.g., SupportingData.

...

The PostProcessPluginContext is constructed each time rule execution has completed.  The following data components are contained within the context:

  • evalTime
  • clientLanguage
  • clientTimeZoneOffset
  • focalPersonId
  • assertions
    • This object is a set of strings, or more specifically, Set<String>, and is a placeholder for assertions and is instantiated and given to Drools as a global variable. Drools may write to this set to provide the calling code with the information about the inferencing performed on the input data. (As of today--2014-09-20) the assertions object is not being used external to Drools, as there is a rule that is commonly being used which assembles the assertions into a comma-delimited list, as part of the vMR output.)
  • globals
    • This object (created and added to the PreProcessPluginContext) is a Map of String to Object, or more specifically, Map<String, Object>.  The key of each map entry may be any given String, which is typically used as a Global within the Drools context.  Names are restricted to any value other than the following:
      • read-only: evalTimeclientLanguageclientTimeZoneOffsetfocalPersonId
      • read-write: assertions, and namedObjects
  • resultFactLists
    • This object is a Map of String to List, or more specifically, Map<String, List<?>>.  Data contained by this map are the result fact lists, which are the final return value of the DroolsAdapter.getOneResponse method and OpenCDS post processing.
    • Effectively this is a copy of allFactLists (above) with any changes made by Drools.OpenCDS also adds the contents of namedObjects to the resultFactLists, and the contents of namedObjects (added by OpenCDS after Drools processing).
      • namedObjects informs the output XML generator to determine which elements should be included in the output XML.
      • Note: elements of namedObjects will not cause rules to fire, and hence must also be added to the fact lists.
  • cache
    • Cache is a cache of data within an OpencdsCache cache region, where plugins may store the data they support for future processing, as in the case of, e.g., SupportingData.

...