As of 2010, there was an estimated 450,000 preventable medication-related adverse events that occur in the U.S. every year. With this Cisco Spark Bot, you can tell it what pills you are taking and it will consult the US National Library of Medicine APIs to determine exactly what it is you are taking based on the description or RXCUI (RxNorm Concept Unique Identifier) that uniquely identifies what you are taking. Once it knows everything you are taking, it can then consult another NLM API to determine potentially deadly mixes of prescription drugs. We know there is a need for something like this because of the amount of deaths that are preventable (450K as of 2010). The internet can be confusing, make it easier to confirm your safety with this Cisco Spark Bot!

What it does

Tell the bot you want to check your prescription drugs. Tell it how many you are taking when prompted. It will then ask you for the name of it. This can be generic as the bot will show you all the results that are possible based on what you typed.Specify your specific variation of the drug using the numbering system provided. The system will then provide the RXCUI, which you can use to verify that you selected the correct variation of your drug, and then searches. another database for known drug interactions. If there are multiple doses of a drug, it will prompt you and ask you your dose, to further tailor the response to the user. The user will then be given the RXCUI # of their drug, and will be allowed to search the database of known drug interactions by name to see if they have any matches. It will then show the user more information about said drug interaction if it exists.

Who should use it

I envision both individual patients who are concerned about their prescriptions to utilize this tool. However it would also be a easy way for doctors to make sure they aren't prescribing things that could have a potentially negative reaction when paired together.

How I built it

I utilized python libraries to develop a series of system flags that assist the bot in understanding what it is you are wanting. As of now, Cisco Spark does not have an in-place system for maintaining session attributes, the history between the bot and the human. This is essential in understanding what it is the user wants, and being able to provide that information at the relevant time in the chat session. Not only this, but I had to utilize 2 API Services provided by the US National Library of Medicine (

The APIs that I utilized are as follows:

Challenges I ran into

Maintaining session attributes proved difficult. Developed a flag system to handle that.

Accomplishments that I'm proud of

Being able to hold session attributes in Cisco Spark was very difficult. I am glad that I was able to develop a simple system to solve this problem. With the exposure to webhooks being so new to me, I was excited to have this opportunity and am looking forward to working on this in the future.

What I learned

Working with Cisco Spark is quite easy. While I spent a lot of time trying to get this bot working with my own webhook,I am so glad to have experienced all the things that Cisco Spark has to offer.


Confirmed today that one can simply add the email address of the bot ( and it will respond to you as it should for any user. Thanks so much!

What's next for CiscoSpark->Healthcare

I want to allow the user to enter more than 1 prescription. The logic is coming, but has yet to be fully implemented. After this, the bot should automatically check against the full list of known drug interactions to notify the user if one was discovered. The user should also be able to search the list of known drug interactions by simply naming a drug, rather than having to enter the drugs during the process of figuring out exactly what drug it is.

The user should be able to enter generic drug names and using another api we can correlate that name to their original drugs, and use that to search from and obtain more accurate results for the user.

Clean it up in general. The way things are presented are somewhat rudimentary. I want to allow for more clean output and increased specificity and relevance. Furthermore, the implementation of NLP (Natural language processing) will assist the bot in further disseminating what it is the user is trying to ask about. Error-Checking and being able to identify incorrect input must become more advanced.

Built With

  • national-library-of-medicine-rxterms
  • python
  • us-national-library-of-medicine-rxnav
Share this project: