Skip to content

Handling Risk Assessment Serverside

Andy Gregorowicz edited this page Jun 1, 2015 · 3 revisions

This is a guide for risk assessment on the server side for Intervention Engine

Goals

Intervention Engine can calculate risks for patients on the client side in Ember.js. This works well when viewing a single patient, but there are situations where we will need to calculate serverside. This includes cases where we would like to sort all patients in the database by risk. This would allow us to show the top n riskiest patients in the system. There are also cases where we would want to show a list of patients meeting a specific risk level. Attempting these scenarios client side is impractical.

Requirements

  • This solution must let the client specify a risk model
  • The solution should attempt to use only the FHIR specification
  • Must allow for sorting and limiting of results
  • Must allow for maximum, minimum or exact risk levels

Approach

DSTU2 FHIR has an Advanced Search capability. This provides a way for servers to allow different types of searches. We can leverage this to implement the risk calculation.

As we nail down the implementation, and move IE to DSTU2, we can describe this in an OperationDefinition.

Example

http://intervention-engine.org/Patient?_query=risk&MedicationStatement=count&MedicationStatementWeight=2&Condition=count&ConditionWeight=1&min=5

Details

  • category=value
    • Categories - MedicatonStatement, Condition, Encounter, etc.
    • Value - count, presence, value
      • Count - a simple count whatever is in the category
      • Presence - if there is anything in the category, it will be the full weight of the category
      • Value - A value provided by the category itself. For example: the category may be a score of some sort
  • CategoryWeight=number - The weight to assign the category.
  • min=number - The minimum risk score a patient must have to be returned
  • level=number - The exact risk score that a patient must have to be returned
  • limit=number - Maximum number of patients to return