Knowledge Based AI Agent in Healthcare

Building A Patient Centric Semantic Net

FHIR powered Patient Centric Semantic Nets can enable intelligent agents in healthcare

Image Courtesy: Pixabay at Prexels


In last few years, AI and ML techniques have found a number of applications in Healthcare. We have seen adoption of AI driven diagnostics that can detect mental illness from voice and chatbots that can predict social determinants of health. While tremendous progress has happened in some areas there are perhaps other big opportunity areas out there that can reap dividends by leveraging knowledge based intelligent agents.

Before we drive into these intelligent agents, let us first refer to a few key dimensions.

  • First, Healthcare by its nature is an interdisciplinary topic. A person’s health may be linked to many different ‘features’ that are simply hard to detect let alone get the data on.
  • Second, healthcare while being dependent on many factors at micro level, is still highly predictable in nature given the right set of input. For example, if one gets to know that a patient has elevated level of cholesterol, low medication adherence, poor dietary choices and sedentary lifestyle, then the predictability of onset of serious cardiovascular disease is very high.
  • Third, a typical healthcare organization have a lot of data that represent different types of use cases. Health systems have rich data sets that show progression of various diseases in patients. Similarly health insurance companies have data sets showing purchasing behavior and engagement pattern of their members.

Leveraging these three principles, one can really attempt create knowledge based intelligent agents in healthcare that can answer various key questions. Example of such questions can be a) Is the acuity level of this patient likely to increase or decrease based on specific treatment path b) What are the best engagement methods for an insurance company to convert a prospect to a member?

In this article on Knowledge Based Intelligent Agent in Healthcare, we explore steps and design principles to create such an ecosystem by leveraging knowledge based artificial intelligence tools and techniques. We start by defining how patient centered semantic networks can really capture data that will facilitate deployment of real-world use cases. Next, we explore thematic role systems and how to construct such systems in healthcare context. We also take a look at role played by existing ontologies in creating such thematic roles. Finally we look at how thematic role systems can provide common sense reasoning and generate real-life predictions in an explainable manner based on known clinical evidence.


Before we start our discussion on intelligent agents, we briefly talk about intelligence of knowledge-based agents as against intelligence based on machine learning. Throughout this discourse, we resort to a common theme that in healthcare, top-down scientific body of knowledge is already established in clinical literatures. An intelligent agent would apply the clinically validated knowledge in the best way possible factoring in all possible clinical and non-clinical data points. This is in contrast to some of the statistical model-based machine learning techniques where large data set provides foundation to draw conclusions on the overall population whereas the conclusion can be less certain at individual case level.

Patient Centric Semantic Network

A Semantic network is a ubiquitous structure in AI. They can represent many things such as relationship among objects or relationship between two states of an object. They are essentially a knowledge representation of any concept.

For creating a patient centric semantic network, we consider a specific problem. A patient, with chronic disease, goes through different states of disease progression. The patient can potentially keep a chronic condition in control or the condition can go from higher acuity. The patient can potentially acquire a second chronic condition or another episodic or acute condition that may interact with the existing chronic condition. Here is an illustration of a patient centric semantic network with very limited ‘features’ describing the patient state.

Figure 1a. Example of a simple patient centric semantic net showing disease progression

It is to be noted that the semantic net accepts the clinical definition of Diabetes, Hypertension as well as the definition of ‘controlled’ and ‘uncontrolled’, within the disease context, and creates a structured representation of it for the patient. It is essentially a unidirectional, acyclic graph or a tree, for each patient.

Let us examine how to create a patient’s state. One way to create a patient state is simply by time. Each observation/touch point of the patient can be considered to be a patient state. However this method has a potential to create extremely high volume of patients states since a patient may have had controlled condition for a number of years before it really became a larger problem. A better way may be to create a new patient state when clinical status of the patient changes. If a patient’s chronic condition remains controlled, there is not change to the patient’s state. If it changes significantly or the patient acquires a comorbidity then the patient’s state changes. Again, the decision to create a new patient state is driven by existing clinical knowledge rather than through some statistical analysis of data. As a result such a state change would always be explainable.

If we consider a large number of patients and a large number of states, we can get to a representation that looks like the following:

Figure 1b. A collection of patient centric semantic nets

At this point, let us examine the content of a patient state. A patient’s state can be a powerful construct if designed appropriately. The design of the content of the patient state would depend on the use case. If the objective is to answer clinical questions such as next best course of action, a patient state would contain key clinical information, such diagnosis, medications, risks, biometrics etc., about the patient. It can also contain other relevant information such as Social Determinants of Health (SDoH) needs.

One can perhaps make a logical connection between the content of such a patient states and FHIR resources. This is no coincidence since both intends to carry clinical information about the patient. In fact serialized FHIR resources can be stored as part of a patient state directly.

One can construct a patient state with the following design:

{    “id”: fhir:Patient.identifier,    “firstname”:,    “birthday”: fhir:Patient.birthDate,    “gender”: fhir:Patient.gender,    “conditions”: [      { “identifier”:fhir:Condition.identifier,        “category”:fhir:Condition.category,        “severity”:fhir:Condition.severity,        “onsetAge”:fhir:Condition.onset[n]: fhir.condition.onsetAge
} ] “medications”: [ { “identifier”: fhir:Medication.identifier, “code”: fhir:Medication.code, “status”: fhir:Medication.status, } { ... } ]}

The above example shows a semantic net with clinical data, a semantic net can also be designed to answer other healthcare questions such as which member is closest to renewing an insurance plan or which members are likely to have difficulty paying their premium or member cost share for their treatment. To answer such questions, additional administrative and financial elements can be incorporated within the patient state.

This article has been purposefully silent about the implementation of the patient states using specific technology. The concepts described are generic enough that they can be implemented in most modern programming languages as well as many commercially available network/graph databases. Specific considerations must be factored in during the low-level design. The volume of such patient state is likely to be very high. While graph databases provide useful persistence, for in-memory operations python’s dictionaries would provide useful structures for rapidly spanning the branches of the graph.


In this article, we have defined a patient centric semantic net and discussed its purpose. We have also defined illustrative content for and identified possible source of such content.

The key points are

  1. The content of the semantic net is completely dependent on the use case and context.
  2. A patient centric semantic net can be filled in from many of the current healthcare clinical or claims records.
  3. The semantic nets themselves do not try to provide any intelligence but enable intelligent agents to answer questions that we’ll see later in this series.

In the next section of the article, we are going to talk about Thematic Role Systems and Frames within it and those concepts can be used to understand patient’s current and future progression.

A Principal in Healthcare Advisory Practice at Cognizant Technology Solutions and a current Grad student at MS in CS with ML Specialization at Georgia Tech.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store