Create complex surveys, obtain results and export data, all in one spot.
BIObanks Netherlands Internet Collaboration (BIONIC) is an observational cohort study that aims to provide a platform to harmonize rapid phenotypic measures in Dutch biobank cohorts, and to link these phenotypic measures to existing biobank data.
A big part of the project is based on a digital questionnaire where focused questions are presented and gathered from the target audience.
My task was to develop a web application with which it is possible to design and build a fully functional questionnaire. After distribution, respondents can respond the answers through an interactive and dynamic interface and submit their responses through the platform.
The platform allows datamanagers and research assistants of cohorts to maintain an extensive system to build and distribute questionnaires with the following features:
- Setting up new questionnaires and creating respondents accounts for administering the questionnaires
- Setting up different cohort groups and data management accounts for the separation of collected data
- Give statistical overviews and insight and export of collected data
This project needed a large and performant encrypted database where I chose to work with MariaDB and encrypt every response with a key. Since we had over 250.000 responses with a JSON structured response, every response was also gzipped to limit database size.
Since the response data was really large, the database was queried in chunks at intervals so the system would still be responsive. When the whole dataset is retrieved, users are able to filter and export the data in multiple formats including CSV, XSL and SPSS.
Researches needed to create surveys from scratch, where answers could affect future questions (routing) and complex conditions could change the structure of the survey. So I came up with a custom solution: a custom survey structure syntax.
The custom code syntax is based on XML and uses a document type definition (DTD) to declare the markup of the document. Opting for a custom code syntax instead of a conventional drag & drop interface came from two problems document structure and interactions are all in plain-text and can be easily edited, refactored and duplicated.
Projects with multiple challenges create opportunities for professional growth and require out-of-the-box thinking.
The web app was successfully deployed and multiple surveys has been filled out by over 176.000 respondents.