Case Study on a Fortune 200 Pharmaceutical Company
|Site||Case Study on a Fortune 200 Pharmaceutical Company|
|Case study written by||Six Feet Up, Inc.|
Starting in 2009, Six Feet Up participated in a large web
redevelopment project for a prominent Fortune 200 pharmaceutical company
spanning ten months, involving over 30 resources, and resulting in a
new website tailor made to the requirements of their global business.
The project covered the redevelopment of a destination website for healthcare professionals designed to answer their questions about the company's products. The site took a multi-prong approach, allowing visitors to satisfy their information needs through various channels, such as print, email, downloads and hardcopy requests. The project also aimed to help internal users (staff and various medical liaisons) to easily retrieve information using a more personalized view of the content, and fulfilling customer requests from the repository.
Six Feet Up developed the desired solution based on the open source content management system Plone. We assisted the client in importing several thousands files – complete with their respective metadata and various mapping components – out of the legacy Sharepoint system and into Plone. The new system included a strong registration and authentication component, a series of custom content types, strict content management rules, various fulfillment options, a Solr search component and a critical audit trail, as detailed below.
Discovery and Planning
The project began with an initial Planning and Discovery phase.
The client had a collaborative decision-making process and their project team included close to 20 members representing various business interests, technical groups and medical needs. The Six Feet Up team spent several weeks listening to each department's desires and concerns, capturing and then carefully documenting them to create a comprehensive set of requirements.
We developed user stories followed by a site map so as to lay out the information architecture and understand how content would be organized. This critical step yielded a comprehensive set of interactive wireframes that the project stakeholders interacted with to simulate how end-users would interact with the application. This got everybody on the same page and helped align expectations.
While the wireframes were being refined, we developed UML diagrams to document the overall system architecture and to serve as technical reference points to the various resources working on the project.
All of this discovery work served to surface issues, allowed us to fully understand the customer's needs for their site, and led to the finalization of design elements. The result was a detailed project plan with a comprehensive Gantt chart, and time estimates. Following this stage, the development work began.
Registration, Authentication and Authorization
Six Feet Up customized Plone's default content workflow to address the client's need to control website access for both external users and over a dozen internal roles. These workflows allow administrators to approve or deny newly-requested accounts, or to activate/de-activate existing accounts. We also leveraged custom "chained" workflows so that users could be dealt with individually rather that being treated as members of a single class. For example, external users can be logged in or not, their account can be automatically "locked" after multiple incorrect login attempts, and they can be either "verified" or not depending on whether their identity has been validated by the client's process.
The registration process, customized to support both internal and external users registrations, includes an automated nightly process to verify the professional status of healthcare professionals via third-party data services. Again, the "chained" workflow allows the system to flag non-verified users in the system as such, without deactivating their accounts prior to review from an administrator.
The system provides over 15 roles, allowing administrators to control permissions for almost every aspect of system use, including:
- Managing users and groups permissions
- Creating, editing and removing documents and metadata
- Managing document workflows
- Altering the site architecture (e.g., creating new folders, moving documents, etc.)
- Managing the history of documents and revert changes
- Controlling which fulfillment methods are available to specific users (e.g.: certain roles can download items, but not email or request a hard copy)
- Restricting access to each report available in the system based on users' role (e.g., one role may see all search reports, but not reports about user data)
Web Content Management Features
The project required a CMS that could support a complex, hierarchical metadata structure combining a controlled vocabulary with the opportunity to introduce divergent keywords. The CMS also needed to support version control, archiving and rollback. It had to formally separate content and structure, and conform to W3C (WAI) accessibility standards. Six Feet Up powered the new site with the open source Plone content management system because it matched most of the client's needs out of the box.
Six Feet Up developed a series of custom content types which are added to the system to contain various metadata, some of which are designed to manage the levels of both physical resources and copyrights. Workflows were developed to change the visibility of these documents within the search results based on the role of the user. Documents can be private, publically available for anyone to see, published for logged in users to see via search results, and a series of other states for internal review processes.
One of the key features of the project was allowing site administrators to bundle content together into kits that contained a hierarchy of primary and supporting documents. We customized the system to support a variety of complex rules related to the display and availability of those kit items. For instance, primary documents are to always appear in search results above related supporting documents. If it is mandatory for users requesting a document to also get corresponding primary documents, the system will automatically bundle those documents into a kit when the supporting document is requested. Business rules also included the need to automatically remove kits containing a source content item that is deleted or archived.
Fulfillment and Support
The client requested that healthcare professionals be presented with multiple options when it comes to fulfilling specific documents or sets of documents. In the new system, they can bookmark, print, email, download or request a hardcopy of the files they are interested in. Site visitors can either retrieve individual files one at a time, or send multiple files to a wish list for fullfillment in a single step fulfillment later on.
Should site users not be able to find the information they are looking for, they also have the option of contacting the company's customer support hotline. Site visitors can either email the company's hotline, call a customer representative, or request a callback.
Six Feet Up integrated Plone with Solr, the open source enterprise-grade search engine, so that the search results could be specifically tailored to the client's needs. Plone comes with search out-of-the-box, but does not easily allow for custom indexing rules, spell-checking or synonyms. Solr gave Six Feet Up the control we needed to make sure the search results were relevant. In order to integrate Solr with Plone, a new product called SolrIndex was created. This gives developers an easy way to replace out the standard search index with a Solr-backed one.
In addition to Solr, other search customizations were added:
- The number of results allowed to return is customizable by site administrators in order to address regulatory constraints.
- The system orders search results based on relevance, content type, title or last modified date.
- The system ensures that a specific content type is always returned first in the search results list.
- Administrators can control which metadata is deemed more relevant for search result order.
- An advanced search interface gives site visitors the ability to filter down their results.
- The system provides a limited set of filters for specific user types.
- Users can perform full-text searches of files, such as PDFs and Microsoft Office documents.
- Search result screens can let users view, download, print or order physical items, see document previews and bookmark items. Healthcare professionals can also save their queries.
- Administrators have control over the values displayed in drop-down filter lists through customizable significance/weighting parameters which correspond to metadata on the documents in the repository.
The system developed by Six Feet Up is backed by close to 20 custom audit reports allowing the client to meet their compliance requirements in case of an FDA audit. The reports also provide valuable business metrics allowing the client to adjust its online strategy. All system activity is logged to a relational database (the open source RDBMS PostgreSQL) in order to allow for ease of dynamic reporting.
Reporting features include:
- Drill-down filters such as date, document metadata, user roles, content types and more.
- Ability to turn system activity into usable metrics for administrators, such as views into how many users of different types utilize the system.
- Access to detailed views of how the search system is used, including search results returned at a specific point in time (admins can see what versions of documents were returned, etc.)
- Security audits, such as failed logins and account status.
- Downloadable CSV exports of the results from each report for further analysis in a spreadsheet software.
Using PostgreSQL allowed Six Feet Up to leverage advanced features, such as:
- Robust data integrity.
- Strong procedural language support, to allow custom business logic to run inside the database.
- Recursive queries, to be able to link user activities to specific actions on the site.
- Case-insensitive searching and sorting.
- Hot standby and streaming replication, to ensure the database can remain available despite hardware failures.
Six Feet Up has provided high availability hosting for this project since June 2010, with an availability of 99.97% or higher, and no single point of failure. Six Feet Up designed the final hosting architecture, which consisted of a total of 19 pieces of hardware. The hosting environment was configured by Six Feet Up for failover with redundant Internet connections, private cloud storage of replicated data and full disaster recovery services. The application servers utilize the ifstated tool to verify that master and slave services are running and that all services are replicating across both servers.
This massive project was a success from many standpoints:
- Migrating data from Sharepoint into Plone eliminated the need to re-key, while maintaining the associated metadata.
- Business managers now enjoy greater capabilities to manage content and control access to data.
- The highly customized search features provide healthcare professionals with highly relevant search results while allowing the client to meet their business and legal requirements.
- The client is able to fulfill their auditing requirements required by Federal Law.
- Six Feet Up's enterprise-level hosting services ensure the client's mission-critical application is available at all times.
The success of this project is a great example of the power of open source to meet the needs of both administrators and end users, even in a highly-regulated enterprise environment.