eHealthMe.com - real world drug outcomes, personalized
Why Drupal was chosen: 

We chose Drupal out of these considerations:
1. number and types of contributed modules
2. user community
3. module customization

At the beginning, we specifically compared Drupal with Joomla. That was a couple years ago. What impressed us was the number and types of contributed modules Drupal has and a very active user community at the time. Added to the decision is that we have tech backgrounds and feel comfortable (or would like) to tweak a CMS, rather than just use it. Drupal is designed to let you customize.

Describe the project (goals, requirements and outcome): 

Goals

eHealthMe is providing cloud-computing services for individual patients and doctors. We need to have a CMS that can relieve us from the common front end tasks and let us focus on the computation-intensive back end. Also, almost all the contents are dynamically generated because our users require up-to-date information. The website has 2 million monthly visitors. The CMS chosen must be able to scale easily.

Outcomes

Drupal is used and so far it has consistently been able to meet our expectations.

Form APIs

What users commonly do on eHealthMe is to use the special tools to conduct a study. The tools will gather medical data from a user and then generate a report. Due to the complex nature of the data a user will enter during each use: anywhere from one to dozens of conditions, drugs, symptoms, and the accuracy of the data we require, form APIs have been extensively customized to facilitate entering large amount of data. Autocomplete is used to guide users to enter the correct data (from several large vocabularies).

Memcache

Response time is key to a website. We try to strike a balance between this and the freshness of contents, which requires heavy computations on eHealthMe. As a result, web pages are divided into static and dynamic parts. Nginx is used to serve static contents. Memcache and APC are installed to store some dynamic contents and speed up PHP scripts, respectively. We tried Boost but the performance gain is not much different and it could make it harder if we want to selectively refresh contents. We have multiple 100K page views per day.

Xmlsitemap

eHealthMe has tens of millions of nodes. We also have a large number of new entries and updates each day. To maintain an up-to-date sitemap is important. We customized the Xmlsitemap module to incrementally run on our large number of nodes daily, without consuming a lot of memory. Easy of customization of Drupal helps in this case.

Services

The Services modules made it simple for us to extent to mobile apps and integrate with 3rd party services.

reCAPTCHA

This module seems to work better than many other anti-spam tools. It does annoy many users as sometimes the text is simply very small and hard to be told.

MySQL vs Postgresql

Both are very nice databases. Initially we used Mysql cause it is dead simple and fast. As our traffic grew and with our preference towards high-end hardware servers, we found PG a better fit and have been very satisfied. PG (8.4+) is rock solid with Drupal and is extremely stable under loads. However, the support of PG on Drupal is not comparable to that of Mysql. Kudos to the PG community on Drupal as they have been working very hard and with great results. Still, if you plan to use PG on Drupal, be prepared to work harder and don't be surprised to find out some contributed modules have little or no PG support.

To sum it up: Drupal facilitates us to implement and, as our website grows, continuously improve eHealthMe in a KISS (keep it simple and stupid) fashion. Our experience is that contributed modules are good starts, to achieve max benefits, sometimes customization is needed.

Technical specifications

Why these modules/theme/distribution were chosen: 

Together with other tools (e.g. APC, Nginx, LAMP), Memcache makes it possible to build large websites out of Drupal.
Zen is a simple theme to be customized.

eHealthMe Real World Drug Checker
eHealthMe Real World Drug Comparison
Sectors: 
Healthcare

Comments

Tezza’s picture

Hi - this case study is a bit light on detail and there's a good chance it will be hidden in the very near future. See the guidelines for assistance.

Tezza’s picture

Thanks for adding the additional content so promptly.

gorilla_ch’s picture

Anytime. I may continue to update for a short while.

calka.rob’s picture

Thank you! for this post, its good to know that largers sites can be used with drop.