Part1 - OC MUG - Charles Boicey - Mongo and Healthcare Meetup 20
Download
Report
Transcript Part1 - OC MUG - Charles Boicey - Mongo and Healthcare Meetup 20
Mongo DB & Healthcare
Charles Boicey, MS, RN-BC
Informatics Solutions Architect
UC Irvine Health
June 6, 2013
Early Work with MongoDB in
Healthcare January – July 2011
Continuity of Care Document Storage and Retrieval
Demographics
Patient Name
Medical Record Number
Date of Birth
Address
Medical
Allergies and adverse reactions
Problems
Medications
Diagnostic results
Solution Ingredients
• Storage and querying
– NoSQL/Simple/Schema-less database
– Advantages
• highly scalable, very flexible, simple
– MongoDB
• Representation
– JSON
• Connectivity
– node.js
• Server side Javascript
• User Interface
– Lucene
node.js
Client
JavaScript
mongodb
driver
MongoDB
XML to
JSON
Naveen Ashish, PhD
MappyHealth
• Now Trending 2012 Challenge Winners
– Office of the Assistant Secretary for
Preparedness and Response (ASPR)
• Utilized technology from non-healthcare domain
to build a healthcare application
Brian Norris, MBA, RN-BC
Charles Boicey, MS, RN-BC
Mark Silverberg, MIS Student at GWU
ASPR Now Trending 2012 Challenge
Use open source Twitter data
Create a web based application that will automatically deliver
a list of the top-five trending illnesses from a specified
geographic area in a twenty-four hour period.
Send directly to state and local public health practitioners to
use in a variety of ways including:
building a baseline of trend data;
engaging the public on trending health topics;
serving as an indicators of potential health issues emerging in
the population;
cross-referencing other data sources.
MappyHealth
Meningitis
•
Tweets related to two events.
•
The first a 3 year old with
severe Meningitis in south
America
•
The second a meningitis
death in the United States
•
“NCIRE researcher dies from
apparent lab-acquired
meningitis infection |
Outbreak News”
•
“Calif. lab worker dies after
meningitis infection - A 25year-old laboratory
researcher has died after
becoming infe…”
Social Noise Zone
Meningitis heat map of tweets by
location in the United States
US and Canada Meningitis Tweet Activity Sept 19th to Oct 19th, 2012
Meningitis qualifier frequency
Meningitis Tweet Qualifier Activity September 19th, 2012 to October 19th, 2012
Finding using Arabic term for
“embassy”
This tweets was posted by screen name “CaStRoO” to twitter using facebook with a link to an
article about the Turkey embassy bombing http://www.bbc.co.uk/arabic/worldnews/2013/02/130202_turkey.shtml
Finding using term “bomb” with text
containing “make a” & “school”
Fireworks Explosion Chinese
Highway Kills 26
US Turkey Embassy Explosion
Spike in tweets about Department of
State
U.S. Secretary of State Kerry
Addresses Nation
Simple but powerful modular pipeline
Heroku
MongoDb
Term
Matching
Realtime
Tweets
Sentiment
Analysis
Location
Analysis
Webserver
Presentation
Statistical
Analysis
Graphical
Interface
Updates
Separate from Heroku for Security
Purposes
Cache
Layer
Mashup
Layer
Highly Scalable on Amazon EC2
While initially focused on Twitter data this is only the beginning and so much
more can be done with other social data sets
Tech Stuff
•
•
•
•
•
Amazon Linux
MongoDB 2.2
Ruby 1.8.7
MongoMapper
Ruby Gem
• Tweets from Twitter API + Tweet Analysis + Metadata
stored in MongoDB
• About 12 MapReduce patterns written in JS and wrapped
with Ruby so server daemons can easily invoke them
• Web interface queries the collections the MapReduce jobs
output to. Results are cashed/MongoDB not hit for each
session.
More Tech Stuff
# Invocation: MapReduceSimpleCounts.build("field_to_analyze")
class MapReduceSimpleCounts
def self.map(str)
"function(){attr = this.#{str};emit(attr,1);}"
end
def self.reduce
"function(prev, current) {var count = 0;for (index in current) { count +=
current[index]; } return count; } "
end
def self.build(str = "place.full_name", query = {})
Tweet.collection.map_reduce(map(str), reduce, :query => query, :out => {:replace
=> "count_by_#{str}"})
end
end
Sentiment Analysis
• The application of natural language processing,
computational linguistics and text analytics to
identify and extract subjective information.
• What is being said about a person or about an
organization. Sentiment can be positive or
negative.
• Early identification of negative sentiment allows
an organization to respond immediately and
avoid being blindsided. Positive sentiment allows
for marketing opportunities.
A Few Numbers
Twitter
500 million tweets per day and
climbing.
More from
Twitter, Instagram & Foursquare
Social Media
Engagement/Surveillance Dashboard
•
•
•
•
Sentiment Analysis
Healthcare: Patients & UCI
Research: Exercise Physiology
Cross Domain