Supply Support for VA Hospitals and the vulnerable veteran population that have served our country.
What it does
Provides an assessment of in-patient encounters and associated critical supply shortages. Also provides insight into infected based on social media.
How I built it
All software components used by team Expression Networks is Open Source Software (OSS). A list of software components can be found in the software versions table. Data has come from a variety of data sources. We used MongoDB as our permanent data store and ElasticSearch for our search and index. We chose MongoDB as the permanent data store. MongoDB is great for rapidly storing data given that it is NoSQL and requires no schema. MongoDB is fast, robust, and scalable. Using MongoDB as the RAW data store also allows custom ETLs to ingest data into ElasticSearch. ElasticSearch was chosen for search and index because it is also fast, robust, and scalable. ElasticSearch was also chosen based on the fact that it integrates with Kibana which was chosen as the primary UI/UX. Kibana allows the developer to quickly construct widgets, maps, and tables which can be incorporated into a dashboard. As the user adds and removes filters for the dashboard, the widgets dynamically regenerate based on the filter parameters. Once data has been scraped from Twitter (JSON), gathered from the VA (CSV) the raw data was loaded into MongoDB. Python scripts pull information from MongoDB to calculate classification and projections, output data is loaded back into MongoDB. HTTP calls to the ElasticSearch API are then made to create the different indexes and their associated mapping. Data is then pulled from the projection, classification, and VA collections in MongoDB and loaded into ElasticSearch via HTTP calls to the ElasticSearch API. At this point, data can be queried via ElasticSearch. We then use Kibana to create index patterns so that the data can be visualized through widgets and dashboards. After the index patterns are created, various widgets, maps, tables are created using the native Kibana interface. Finally, once the widgets are created, they are added to various dashboards for viewing. As a supplement to the dashboards, we created a small web application allowing hospitals to create new products and add a quantity of the product to a specific hospital. This application was developed using ElasticUI as a client side framework. The API was developed using Node.js and Express.js with the final data store being both MongoDB and ElasticSearch.
Challenges I ran into
-Inventory management data accessibility. -Pulling proper data from Twitter. -Classifying Twitter data.
Accomplishments that I'm proud of
-Different visualizations based on real world data. -Custom visualizations using Vega -Working with my amazing team to produce something in 2.5 days.
What I learned
Data sources are critical for this detailed analysis and hospitals must be willing to share this data.
What's next for Expression Networks Tracking COVID19 Supply Impact
Pitch to various hospital groups in hard hit areas and work with the VA.
Try It out
elasticsearch, kibana, mongodb, node.js, python