GEneric Medical Survey Tracker

User Tools

Site Tools


Quick Links

Main site / download

API Docs
Bug tracker
Demo site



Release notes

This project is now on GitHub so latest information and release notes can be found there:

Latest commits



  • Appointments can be used to create tracks
  • Appointments can be linked automatically to track fields
  • New track field overview
  • New track fields changed events
  • Layouts can use bootstrap for styling
  • Improved security means users may get error warnings when opening the same form in two windows.
  • Password fields for login to sources, mail servers and security devices are now encrypted reversible
  • X-frame setting in project.ini allows defense against clickjacking
  • Project and application programmers can use PHP namespaces instead of Zend FW 1 class names.



  • Errors in token events are less likely to cause the application to halt
  • OpenRosa forms can now handle geopoint (location) fields, has support for displaying uploaded images and provides a datelist to use in tracks
  • Default track fields can be added to a new track by adapting the TrackModel in your own project and changing the getDefaultFields() method
  • Projects can define project specific track field types
  • Added the new track field types: location and caretaker. These fields can be filled automatically using one or more appointments
  • Export results can now be filtered by round description too
  • The number of reminders no longer includes the first non-reminder mail
  • To make use of the configurable Less templates, make sure to update your project.ini and change the .css files to .less when available in your template
  • Form and table bridges have changed. Perform the following search & replaces on your code:
    MUtil_Model_FormBridge::          => MUtil_Model_Bridge_FormBridge::
    MUtil_Model_FormBridge            => MUtil_Model_Bridge_FormBridgeInterface
    MUtil_Model_VerticalTableBridge   => MUtil_Model_Bridge_VerticalTableBridge
    MUtil_Model_TableBridge           => MUtil_Model_Bridge_TableBridge
    Gems_Model_ThreeColumnTableBridge => Gems_Model_Bridge_ThreeColumnTableBridge



  • Menu structure has changed: to avoid nesting problems and issues with bread-crumb navigation edit and delete actions are now children of the show action
  • Track fields split in fields and appointments: check any code using any track field tables directly, track field id's are no longer integers and getFieldsElements() is no longer in use
  • GemsEscort→tokenMailFields() no longer exists
  • Tracks can use appointments instead of date fields: when an appointment is changed then the linked track is changed as well
  • The token overview can also be filtered on missing or incorrect email addresses and on hover each token shows it's comment
  • The token mail communication is reset if a new valid until date is later than the last sent email date
  • Sending emails can be blocked on per respondent or per track
  • Added a send mails overview for each respondent
  • Manual token and track date changes are no longer overruled by recalculations
  • The end date of the track is filled as soon as all tokens in a track are completed or have a valid until date
  • Logging the respondent in respondent controller restored. Action logs without, but respondentShow will log respondent id
  • A new respondent status overview tracks the intake of new respondents
  • A required valid until definition for each track round can be set at the project level - for new projects this defaults to ON
  • Support for LimeSurvey 2.05
  • Limesurvey fieldtype list with comment no longer appends underscore to the fieldname, this might break existing calculation scripts
  • The track editor shows more information on the rounds per track
  • Fixed several bugs, including one that added an extra day to some valid until dates



  • Agenda and calendar screens added to version
  • Mail templates for staff members, respondents, users, etc… possible
  • Multi language mail templates with wysiwyg editing
  • Barcharts functionality added
  • Improved import scalability
  • Role management has a better display interface
  • Batch commands now also run from the command line
  • Core gems css settings moved to shared gems-core.css

Version 1.6.1


  • Added support for ODK Collect by adding OpenRosa support
  • Added support for data-mining by enabling the storage of all response data in a separate table with one answer per row. To use it check the new project.ini responses setting (can be copied from configs/project.example.ini):
; If responses.adapter is set, then all answers for tokens are stored
; in the gemsdata__responses table.
; All params responses fields can be used to overrule the database
; connection settings specified in application.ini/resources.db.
; If no adapter settings are specified then the default db adapter is
; used but the advise is to put this data at the very least in it's
; own database so the table specific logging and replication settings
; can be changed.
;responses.adapter = Mysqli
;responses.params.charset = utf-8
; = HOST
responses.params.dbname = DATABASE "_data"
;responses.params.username = USER
;responses.params.password = PASSWD
  • Export data now operates in batch mode, allowing bigger exports and combining spss files in one download
  • Import is possible for most data screens, though respondent import is the only one tested thoroughly.
  • New snippet for continuous survey ask-ing with thank you message at the end.
  • Stand alone surveys can now be appended to existing tracks
  • Project can customize whether the tokens of shared patient are also shared among organizations (default is no)

Version 1.6


  • Patients can now be shared between organizations on the basis of their social security number
  • No longer Dutch: the default new project is still Dutch, but the basic GemsTracker core is international
  • New summary and compliance reports
  • Mail log now shows more information and is better searchable
  • Tracks can be cloned
  • Better menu structure
  • Defined constant GEMS_PROJECT_PATH removed from code (update at least your application.ini and use APPLICATION_PATH instead)
  • Moved date_default_timezone_set to index.php (can generate warnings)
  • longDescr in project.ini enables more project specific information on the about pages
  • New “About GemsTracker” page, implemented as menu item
  • Support can now be provided through support, manuals, documentation or forum url's.
  • The global variable $GEMS_DIRS is deprecated, redefine it the application.ini using loaderDirs.Gems = …. (see NewProject)
  • ZFDebug is now activated in the application.ini using: zfdebug.activate = 1
  • New project.ini settings:
longDescr   = ""
longDescrNl = "" ; Append language for localised long decription
contact.docsUrl    = "" ; The path to the documentation of the project
contact.forumUrl   = "" ; The path to the forum if available
contact.gemsUrl    = ""
  • New application.ini settings (add before the first resource and change NewProject to your own project prefix):
loaderDirs.NewProject = APPLICATION_PATH "/classes/NewProject"
loaderDirs.Gems  = GEMS_LIBRARY_DIR "/classes/Gems"
  • Numerous small bugs solved

Version 1.5.7


  • In LimeSurvey tokenanswerpersistence must be set to true for all surveys
  • Token/ask now always sets itself to the language of the token user
  • Added Answer display events for selecting more or less tokens
  • Increased some small buttons for mobile use
  • Many small bugs fixed and display improvements made
  • Implemented many speed optimizations in both database access and code speed
  • New DEMO application environment
  • Simplified writing project level unit test

Version 1.5.6

2012-10-18 rev[880]-rev[991]

  • Transparent lessCss compiling was added. When you add a .less file GemsTracker will take care of compiling it to css. If you need to force a recompile, add the ?compilecss parameter to your url.
  • Events can be specified at the GemsTracker level as well as the project level
  • Surveys can now have their own survey specific display, in a manner similar to event system
  • Several interface bugs/improvements were solved/written

Version 1.5.5

2012-07-25 rev[739]-rev[879]

A lot of changes, some of them need your special attention:

  • UPGRADE WARNING: Check all your (snippet) extensions to RespondentAction, TrackAction, SurveyAction and project specific versions of ShowTrackTokenSnippet and ShowSingleSurveySnippet:
    • you may need to specify extra parameters as the menu items need to know the organization id
    • Internally code no longer uses the 'Hidden Organization' but expects both an id1/patientNr plus an id2/organizationId to be specified
    • Externally the organization id is still left out of the url when not needed
  • New default: user can only login to his own organization and needs to switch after login if desired, to enable old behaviour that could lead to problems with duplicate logins see $allowLoginOnOtherOrganization in Gems_User_UserLoader
  • In project.ini, export.wkhtmltopdf has been renamed to export.pdfExportCommand, and which now stores the entire command line to the pdf export binary (wkhtmltopdf, Phantom.js or similar).

And also the following has changed but probably won't need a fix in your project:

  • Role editing has become more interactive and safer to use
  • New projects start with a basic css template
  • The normal time it takes to answer a survey can be added and surveys have a code field
  • Export of survey data can be selected by respondent id or by track
  • Track and survey maintenance is extended with round and field deletion and more powerfull selection tools
  • All maintenance tasks show some explanation on what they do
  • New default: Forms are no longer lazy by default. Use $form→setLazy(true) if you need it
  • New setting: in project.ini you can set cache to any of “none”, “apc”, “file” to influence what kind of cache to use

Version 1.5.4

2012-06-07 rev[628]-rev[738]

The settings below were added to the project.ini, please review them and add to your own project.ini on upgrade from a previous version.

; Use the loglevels as defined in Zend_Log to define the highest level of errors to log
; 0 Emergency: system is unusable
; 1 Alert: action must be taken immediately
; 2 Critical: critical conditions
; 3 Error: error conditions
; 4 Warning: warning conditions
; 5 Notice: normal but significant condition
; 6 Informational: informational messages
; 7 Debug: debug messages
; Defaults for production are 3 (error) and 7 (debug) for testing and development, uncomment the
; line below to use a custom setting
;logLevel = 6;

; Location of the 'wkhtmltopdf' binary, be sure to use the latest
; binary from
export.wkhtmltopdf = 

Added / changes:

  • Export of all respondent data on a single page or PDF
  • Added maximum number of reminders sent to tokens
  • Fixed multiple issues with user login and staff creation
  • Fixed handling of token return on multi-url sites
  • Fixed several date display and editing issues

Version 1.5.3

2010-04-20 rev[544]-rev[627]

Version 1.5.2

2010-02-13 rev[482]-rev[543]

New and noteworthy

This was a minor upgrade adding useful extra functionality:

  • Unordered List ItemUpgrade is migrated to work in batch, also updating the system to work with 'Tasks' as an abstract step in the batch process
  • Respondent creation and initial password added to UserLoader?
  • Menu has new helper method: public function findController($controller, $action = 'index') more info in [506]
  • Renamed project.ini setting concentRejected to consentRejected
  • Default consent can be changed from 'Unknown' to something else in Project.ini setting consentDefault, please check local respondentController

Version 1.5.1

2012-02-13 rev[455]-rev[482]

New and noteworthy

This was a minor upgrade adding useful extra functionality:

  • Track rounds can be marked with an icon
  • Tracks have a completion event
  • Mail templates can show track field information
  • Mail templates show the number of survey to do
  • Login fix for single organisation projects
  • Display logged in user / login link, add a line to the project.ini (layoutPrepare.login = header_bar or check new_project for more detail)

Version 1.5

2012-01-26 rev[112]-rev[455]

New and noteworthy

Below is a short list distilled from the >300 commits. It needs more explanation on some parts and could include more or less info. Please update as fits.

  • Survey object now has method →isTakenByStaff() that should be self explanatory
  • Survey source configuration screens have better descriptions now
  • Maintenance mode is now toggled by a button in the Setup → Project setup screen
  • In the same screen the is also a clean cache button
  • {caching introduced, tell dependencies)
  • Mailjobs are now user-configurable instead of in configfile and can be suspend without touching the cron-job
  • A new role ‘master’ is introduced that always has all privileges, should be assigned to a group to allow full access. This is optional and the project superuser as specified in config has the same effective rights.
  • Project variables are now moved to a Gems_Project_ProjectSettings object, this is a BC-change
  • The new password systems stores checksums with a salt set in the project.ini. GemsTracker won't start without a salt.
  • Bsn→ssn
  • Introduced upgrade system (#34)
  • Organizations can see each others patients (explain)
  • Password weakness check
  • Default session timeout 30 minutes (commit 237-246) ini: session.idleTimeout of 1800 seconds
  • Groups have optional ip-range as does project setting admin.ipRanges
  • User login
  • #301 receptioncodes change… checken
  • Batch processing
  • Roles in group edit no longer translated to avoid confusion
  • Reactivate deleted staff
  • EventCalculation?→sumInt en averageInt imporved, check calculations!

Upgrade instructions

To be completed later…

  • Log in using project admin user from project.ini
  • Go to Setup → Upgrade and choose Gems, and choose Execute all (from the menu)
  • The patchlevels 42 and 43 will be executed, new tables will be created and the surveys will be synced from their source
  • Add a salt to the project.ini
devzone/releasenotes.txt · Last modified: 2020/03/12 12:06 (external edit)