i-MEDIC.ro is a health portal addressing patients, doctors and companies in the health industry.

Therefore, the portal hosts a highly varied, heavy content: various health-related articles for the patients to scan through, sections where companies/clinics/doctors can promote their medical devices and services (either free of charge or not), announcements of jobs in the health industry, medical news and the list can go on.



There's even a forum section, too, on i-MEDIC.ro, where patients can get in touch with physicians of various medical specialties in order to get their health questions answered in real time.

Moreover, clients (such as medical equipment companies) can put together their own microsites on this portal, where they can present their companies' profiles, services, products etc. Visitors (patients), doctors, clinics and even health-related events organizers gain access to certain features and functionalities of the website through their specific user account pages (they get to write on the forum, post comments, build their own mini-websites, upload health-related announcements etc.)

With such a rich and highly diversified content “mosaic” and collection of different themes (that the in-site mini-websites featured) to handle, migrating the portal from Drupal 5 to Drupal 7 rose quite some challenges that we proudly managed to overcome.

i-MEDIC.ro
Why Drupal was chosen: 

The improvements that Drupal 7 has been upgraded with allows it to handle not only huge amounts of traffic, but also heavy content. And for this project we were talking about thousands of content-loaded web pages.

We realized that “handling heavy content” smoothly meant putting together a powerful content architecture. For achieving this objective we were looking forward to use 3 of Drupal 7's more than helpful features:

  • content types: which enabled us to structure the whole content into multiple “kinds” of content (article, forum etc.), the fun part being that we also got to create our own types
  • entity reference fields: which helped us link together the resulted content types
  • taxonomies: which helped us a great deal in categorizing by taxonomy and thus even better organizing the content


Since we're all into Drupal's “empower the end-user” philosophy, it was not just because it eased our own workflow a lot that we chose Drupal 7, but because:

  • it made administering their user accounts so easy for the portal's clients (one client could even juggle with several user accounts)
  • it enabled admins to restrict access to certain functionalities and web pages on the portal based on the types of roles (and implicitly on the set of permissions that went with them) they assigned to the portal's users/clients
Describe the project (goals, requirements and outcome): 

Goals
We found ourselves facing several major and minor challenges:

  • to find the best solution for seamlessly migrating the several thousand pages from Drupal 5 to Drupal 7, while figuring out how to integrate all the portal's microsites (featuring distinct themes), as well
  • to simplify the users' way of administering their one or multiple accounts on the portal, the clients' content adding and editing content process on their own microsites and the portal admins' way of handling the whole roles assigning and several types of permissions granting process
  • to boost all the portal's existing features (frequent article and news upload, medical services/products promotion etc.) relying on Drupal 7's own improvements
  • to give the website a more up-to-date and (most of all) professional look and feel
  • to perform minor, but urgent modifications and repairs: making the breadcrumbs more visible, creating more efficient listings, fix the broken URLs
  • to build an online appointment scheduling platform (where patients could make their own appointments, right from their PCs, while doctors could display their consulting hours)

Challenges
The major technical “puzzle” that had to solve was how to seamlessly migrate this heavy-content packed portal from Drupal 5 to Drupal 7, being well aware of the huge differences between these two versions of Drupal. They differ not just in terms of code (different hooks, different functions), but in terms of database structure and field types.

Another great challenge that we faced was migrating and perfectly integrating all the clients' (medical device companies, clinics, hospitals, pharmacies) mini- websites into the new Drupal 7 portal, considering the fact that each one of these microsites came with its own distinctive theme (not only did they differed from one another, but also from the portal's theme itself).

In this respect, we realized that integrating them implied rewriting the code so that they could all fit together seamlessly in the new portal.

Migration

Being time-efficient was one of our main goals, considering the heavy content that we had to migrate.

Therefore we had to figure out how to programmatically map out all the content (so that it didn't take us ages to move it). These are the steps we took to streamline our workflow:

  • we mapped out the old fields with the new ones
  • we changed the information sent to the database for each type of field (so that they matched the Drupal 7 database's whole new structure)
  • we came out with an efficiency-boosting idea to process only a small no. of web pages at once in order to avoid the loss of priceless time (that we would have spent with the migration script) and the instances where we would have received timeout error messages
  • we had to come up with new field types for replacing the old ones which didn't exist anymore after the website's migration, thus preserving the information they had stored

Outcomes


  • we seamlessly migrated the whole content-overloaded portal along with all the mini-websites that it hosted
  • we built and integrated an online appointment scheduling platform
  • we simplified the users' accounts administering and content authoring processes (of their microsites)
  • due to Drupal 7's highly improved administrative interface the portal's admin/s can now manage the whole roles/permissions assigning process far more easily
  • we revamped the whole web design, coming up with a more professional and more modern look and feel
  • we performed minor, but much needed modifications (important both for improving the user's experience and the website's performance): correcting broken URLs, making both the listings and the breadcrumb navigation more visible


Requirements

  • integrating an online payment gateway
  • API for moving all the content from the old to the new website
  • seamless migration from Drupal 5 to Drupal 7 (of the portal carrying a heavy content and a complex load of mini-websites)

Technical specifications

Drupal version: 
Drupal 5.x
Drupal 7.x
Why these modules/theme/distribution were chosen: 

The website was built by 3-4 backend developers and we needed an easy way to migrate changes from one instance to another. That's why we packaged the functionality into Features modules and deployed the code using Git.

It was very important to build an SEO ready website and we've installed and configured modules like: Meta tags quick, XML Sitemap, Sitemap, Nodewords

Community contributions: 
Organizations involved: 
i-MEDIC.ro
i-MEDIC.ro
Sectors: 
Healthcare