NIH Tetramer Core Facility

Tetramer Header Image

NIH Tetramer Core Facility

The NIH Tetramer Core Facility (TCF) at Emory University produces MHC tetramers and related reagents for the immunology research community to facilitate the study of vaccines. The Principal Investigator of the facility approached Mediacurrent to upgrade their Drupal 6 website and FileMaker database solution into something more functional, usable, and efficient. 

Project Goals
  • Improve the front-end ordering system so products are visible and searchable.
  • Provide an Authenticated User experience with an interface for clients to review Order History, Feedback Submitted, Associated Accounts, etc.
  • Increase the accuracy of the ordering process by clarifying all information requesters must submit.
  • Automate the communication process between FileMaker (backend) and Drupal (frontend). 
Challenges & Solutions
Online Order System: TCF’s previous website used a web form, which was a very simple way of collecting information, but offered no feedback system and lacked a formal checkout process. Mediacurrent’s solution uses the Commerce module, which allows requestors to identify or customize the required reagent on product listing pages, add the product to their cart, checkout, and track progress and shipping.
Variety of Project: Emory TCF offers predefined reagents as well as customizable reagents. This presented an interesting user interface challenge in how to represent all of the available modularity while maintaining ease of use. The requirements also introduced backend complexity, as the Commerce module comes with only one default product type, forces the use of product prices, etc. We customized the Commerce functionality from one default product type to two product types with seven line item types. Users could then choose either a premade reagent or build their own based on a list of options for each reagent attribute.
User Relationships: Emory TCF works exclusively with labs that con- duct scientific research. As such, there is at least one Principal Investigator (PI) for a project, but also any number of additional associates who must have access to the TCF order history and feedback forms. We used the Subuser module to associate the PI account with its lab contacts, staff members, and collaborating PIs. The data (order history, shipping addresses, etc.) and functionality (edit feedback, create new shipping addresses, etc.) available to users of a given role depends on complex business logic implemented via standard Drupal hooks and Commerce module hooks.
Performance: Emory TCF’s legacy data spans more than fifteen years, including almost 20,000 orders and over 2,000 users. We faced the challenge of importing these legacy records and automating the synchronization of data between FileMaker and Drupal. Any changes made in FileMaker needed to automatically and rapidly sync with the Drupal front-end, while new requests, user information, and feedback from Drupal needed to get pushed to the FileMaker database automatically. We solved this complex task with a custom module that handled both (1) pushing data to FileMaker and (2) polling FileMaker for changes to its data. The solution rested on a framework of object-oriented classes that leveraged the WSClient and Rules modules to connect with FileMaker over a REST Services API. 
Featured Modules
Our project relied heavily on these contrib Commerce modules to provide the flexibility for us to implement a highly-customized Commerce solution.
Subuser: A customized implementation of the Subuser module allowed us to handle the complex role relationships between clients on the site (members of the same “lab group” must share certain data but have separate logins).
Tabtamer: Along with implementations of hook_menu_local_tasks_alter() and hook_menu_alter(), Tabtamer allowed us to customize the user page with important and semantically correct links to pages like Order History, Shipping Profiles, and Staff Accounts. WSClient The Web Services Client module represents the core of our synchronization framework. As entities get created, updated, and deleted in Drupal, custom Rules execute WSClient actions to push those changes to FileMaker.
RESTfm: The largest and most complex part of the project, our RESTfm Client module (1) defined the WSClient actions to be taken in response to entity changes and (2) provided a synchronization framework of object-oriented classes to pull data changes from FileMaker.
Final Thoughts

At the onset, the TCF website seemed like it would be a simple redesign with an e-commerce solution. Challenges arose when we learned the scope of the available predefined and build-your-own products, the need for multiple users to share account data, and the complexities involved in making FileMaker and Drupal communicate.

We really pushed the boundaries of what Commerce can do. TCF’s new, completely integrated, automatic system saves the facility manager valuable time since he no longer has to manually transfer information between the frontend and the database or track down individual PIs for additional information because of an unclear web form submission. Automating the system allows TCF to provide better service while giving requesters a full e-commerce experience. Detailed information about all premade reagents is now available on the TCF website, and the checkout system provides feedback and visibility to the request process.