IHRIS Suite 4.0 Development

From IHRIS Wiki

Version 4.0.0

Intended for release week of July 13, 2009.

Version 4.0.1

High Priority

  • Migrate iHRIS Qualify

Low Priority

  • Training Sample data should be separated from Medical Sample Data. Currently ManageMedicalData enables SampleData-training_course_category which requires training-course.

Completed

  • Debug training module
  • Ensure all templates are localized (done in 4.0.0)
  • Cleanup ISCO-88 Job Codes (done in development for 4.0.1)
  • Finish Flat Storage mechanism for forms.
  • Add in Multi-Flat Storage mechanism for forms
  • Fix this: http://www.2shared.com/file/6929841/7587e315/bad_css.html
  • Add cache stale times on a per form basis
  • Add cache stale times on a per form storage mechanism basis
  • Add ability to turn of form caching by background process
  • Add cache stale times on a per report basis
  • Add ability to turn of report generation by background process
  • Change so that caching a report triggers the caching of the forms needed for the report if they are stale
  • Change so that forced caching a report triggers forced caching of the forms needed for the report
  • Replace I2CE_Form::validate() mapped values check with something from I2CE_List, e.g. monsterMash()
  • separate form field validation logic into the appropriate modules
  • fix bug in export of custom reports to html
  • logout page now really logs out
  • added command line option --clear_cache=1 which will clear the magic data cache
  • added special URL: $site_url/clear_cache.php which will clear the magic data cache, the apc cache and destroy the session
  • fix limits for dates
  • fix bug in setting the order in which fields are displayed in a report view
  • fix bug in defining a form relationship when linking from a form.

Version 4.0.2

  • CSV/Excel report export -- add option to show metadata about what limits were chosen, when report was generated (ask Julie S.)
  • XML Export for report
    • Add option to import XSLT to transform XML export
  • Cleanup user and user_form.
    • Can user use the flat storage?
    • Do we want make flat storage a requirement for user?
  • Add in different role/password authentifications for users
    • openMRS, DHIS users
    • LDAP?
  • Add in Simply Joined mechanisim for forms to enable reading in data from openMRS style vertical tables.
  • Move all string from php to templates
  • Remove all mootools' $ references from javascript
  • Custom Reports: when a form is componentized, add "easy" option to limit based on the components. e.g. show only the people within "Northern Region"
    Optionally define and use the metadata at /modules/forms/form_storage/options/$storage/component/name
  • Go through configuration .xml and add locale='en_US' tags where appropriate.
  • Review strings in .pot files to ensure that they translatable as sentences and rework templates/make printf substitutions as appropriate
  • add resume upload
  • add photo upload
  • Fixup selection list to be a tree for position+facility rather than a drop down list:
    we should be able to set position+facility to have default display fields 'facility+location:county:district:[region]:country'
    the problem is that currently, facility+location can take values in either the forms 'county' or 'district' and using the the above display fields string, we would only list the facilities whose location are a county.
  • Speedup validation of mapfields w/ unique_field set to be something like 'country:region'
    • short circuit and return once a match is found instead of getting all the matches
  • Speedup I2CE_List::monsterMash and I2Ce_List::createDataTree
    • If two successive forms have storage mechanisms subclassing I2CE_FormStorage_DB try to use a sub-select rather than process through PHP

Version 4.0.3

  • Fix sysV magic data storage mechanism
  • rework generateLimit() so that allows for adding in new operators types.
  • Hook in COMPARE operator to generateLimit() to make comparisons for form fields to be used in limits
    • Example: 'form+start_year' lessThan 'form+end_year' will cause the following code to be executed:
      • $start_date->COMPAREAS_lessthan_TO_I2CE_FormField_YEAR($end_date) -- will not exist
      • $start_date->COMPAREAS_lessthan_TO_I2CE_FormField_DB_DATE($end_date) -- will exist and return true/false
    • In otherwords ($class = get_ COMPAREAS_$operator_TO_$class where $class runs over parent cass of end_date


Version 4.0.4

  • allow for general binary (or n-ary) operations among form fields where the result is another form field to be used in limit clauses. such as
    • $end_date->OPERATOR_minus_DB_DATE($start_date)
    • $start_salary->OPERATOR_plus_CURRENCY($end_salary)
  • allow for "parametrized" 1-ary operations for form fields such as:
    • $start_date->next_year() (no parameters ) -- returns class of $start_date
    • $start_date->increment_ymd($y,$m,$d) (3 paramaters) -- returns class of $start_date
    • $start_date->increment_year($y) (1 paramater) -- returns class of $start_date
    • $start_date->increment_time($h,$m,$s) -- returns class of $start_date
    • $start_date->increment_hour($h) -- returns class of $start_date
    • $salary->divide($divisor) -- returns CURRENCY
    • $salary->multiply($factor)-- returns CURRENCY
  • allow for constant-like form fields in limiting values such as:
    • DB_DATETIME::now() -- returns DATE_TIME
    • DB_YEAR::next_year() -- returns DATE_YEAR
    • DB_YMD::next_year() -- returns DATE_YMD