Difference between revisions of "Active Projects"

From OpenEMR Project Wiki
Line 23: Line 23:
#Recruit translators  
#Recruit translators  


== General code base improvements ==
== Certification ==
A very large multi-developer project is currently underway to get CCHIT certifications and is described on the [[OpenEMR Certification|CCHIT Roadmap]] wiki page.
 
== Internationalization ==
OpenEMR supports internationalization and multi-language clinics. Most of this are from recent modifications that got released in OpenEMR 3.1.0. Further information on the project can be found on the internationalization [[OpenEMR Internationalization Configuration|configuration]] and [[OpenEMR Internationalization Development|development]] wiki pages.
 
=== CAMOS module internationalization  ===
The CAMOS module is a form that can be activated in OpenEMR. It does not yet support internationalization. Current plans are the following:
#Primary author of module to commit most updated CAMOS code
#Change the escape() function call to encodeURIComponent() in javascript ajax call
#*For php to answer this ajax call it needs to decode the data, so will bring in the following functions into the code at library directory (these will be useful in other parts of OpenEMR as AJAX calls begin to be used more): http://www.captain.at/howto-php-urlencode-javascript-decodeURIComponent.php
#While here will convert all magic quotes checks to openemr/library/formdata.inc.php function
#Also translate button labels and messages
 
Here are the [http://sourceforge.net/tracker/?func=detail&aid=2878661&group_id=60081&atid=493001 bug tracker] link and the [http://sourceforge.net/projects/openemr/forums/forum/202504/topic/3429307 forum thread] associated with this.
 
Brady is planning to do this at some point
 
=== Date formatting ===
 
Still work to do in order to support date formats across multiple languages. Here's the [https://sourceforge.net/projects/openemr/forums/forum/202506/topic/3472404 forum thread] discussing this.


=== Clean up magic quotes, prevent sql-injection, and prepare for PHP6 ===
Awaiting a Analyzer to figure out a good plan for this.
Plan to pass all input data through functions in the [http://openemr.cvs.sourceforge.net/viewvc/openemr/openemr/library/formdata.inc.php?view=log openemr/library/formdata.inc.php] file before inserting into mysql database. This is useful for following reasons:
#Will centralize input validation
#Will centralize sql-injection blocking
#Fix the escaping bugs(magic quotes) that are seen throughout OpenEMR when inputting the apostrophe character
#Will allow easy migration to php6 (since magic quotes will no longer exist in php6)


This project will be a lot of work and will involve modifications to a large amount of files. This process is currently happening slowly as we modify files. However at some point this will likely become a primary multi-developer project as we get closer to the release of php6.
=== Translation database maintenance/improvement ===
We currently have a stable collaborative system in place to allow translation of any language. The translations are entered into a [http://spreadsheets.google.com/ccc?key=0AtTW60zHo6HzcGg0UE9JMGJHM1NsSWpuYkh0Snl4Q0E&hl=en OpenEMR Translation Google Doc Spreadsheet]. These [http://openemr.cvs.sourceforge.net/viewvc/openemr/openemr/contrib/util/language_translations/ instructions and scripts] (README files describes the pipeline in detail) then allows conversions of the translation spreadsheet to mysql tables and allow detection and insertion of new english constants into the translation spreadsheet.


Currently linked to this [http://sourceforge.net/tracker/?func=detail&aid=2807026&group_id=60081&atid=493001 tracker item]
A new set of official translation tables are created approximately every 1-6 weeks depending on where we are in the release cycle.


== Calendar ==
== Calendar ==
Line 42: Line 58:
#Things work great with one facility
#Things work great with one facility
#With two facility the bugs appear (different bugs happen with the $GLOBALS['restrictuserfacility'] turned off(default) and on)
#With two facility the bugs appear (different bugs happen with the $GLOBALS['restrictuserfacility'] turned off(default) and on)
#When $GLOBALS['restrict_use\r_facility'] is turned off get behavipor descirbed above by lovogler. In essence the calendar only shows what is set as 'default facility' in the users settings. If you choose the facility then that user won't be available. By choosing all facilities, it will actually show all appointments from all facilities, however the scrollbar display is confusing (shows the top item), and unable to schedule an appt at anything but in the scroll bar; this also screws up what you see when scrolling through new days. #When $GLOBALS['restrict_use\r_facility'] is turned on, then only seems to work right if you place all facilities in the users settings 'Schedule facilities'. Then everything seems to work fine, but there is no option to view all facilities, which seems like should be an option. If you don' t place all facilities in the users 'schedule facilities', then you'll see other appointments at other disallowed facilties like they are on the selected on (not much of a bug since appointments shouldn' be scheduled on disallowed facilities anyways), however can only add to the allowed facility, which is good.
#When $GLOBALS['restrict_use\r_facility'] is turned off get behavipor descirbed above by lovogler. In essence the calendar only shows what is set as 'default facility' in the users settings. If you choose the facility then that user won't be available. By choosing all facilities, it will actually show all appointments from all facilities, however the scrollbar display is confusing (shows the top item), and unable to schedule an appt at anything but in the scroll bar; this also screws up what you see when scrolling through new days.
#When $GLOBALS['restrict_use\r_facility'] is turned on, then only seems to work right if you place all facilities in the users settings 'Schedule facilities'. Then everything seems to work fine, but there is no option to view all facilities, which seems like should be an option. If you don' t place all facilities in the users 'schedule facilities', then you'll see other appointments at other disallowed facilties like they are on the selected on (not much of a bug since appointments shouldn' be scheduled on disallowed facilities anyways), however can only add to the allowed facility, which is good.


Seems like the bug(s) really stem from three mechanisms:
Seems like the bug(s) really stem from three mechanisms:
Line 58: Line 75:
Awaiting a Tester to further document this bug behavior and make a bug report in tracker with this behavior.
Awaiting a Tester to further document this bug behavior and make a bug report in tracker with this behavior.


== Internationalization ==
== General code base improvements ==
OpenEMR supports internationalization and multi-language clinics. Most of this are from recent modifications that got released in OpenEMR 3.1.0. Further information on the project can be found on the internationalization [[OpenEMR Internationalization Configuration|configuration]] and [[OpenEMR Internationalization Development|development]] wiki pages.


=== CAMOS module internationalization  ===
=== Clean up magic quotes, prevent sql-injection, and prepare for PHP6 ===
The CAMOS module is a form that can be activated in OpenEMR. It does not yet support internationalization. Current plans are the following:
Plan to pass all input data through functions in the [http://openemr.cvs.sourceforge.net/viewvc/openemr/openemr/library/formdata.inc.php?view=log openemr/library/formdata.inc.php] file before inserting into mysql database. This is useful for following reasons:
#Primary author of module to commit most updated CAMOS code
#Will centralize input validation
#Change the escape() function call to encodeURIComponent() in javascript ajax call
#Will centralize sql-injection blocking
#*For php to answer this ajax call it needs to decode the data, so will bring in the following functions into the code at library directory (these will be useful in other parts of OpenEMR as AJAX calls begin to be used more): http://www.captain.at/howto-php-urlencode-javascript-decodeURIComponent.php
#Fix the escaping bugs(magic quotes) that are seen throughout OpenEMR when inputting the apostrophe character
#While here will convert all magic quotes checks to openemr/library/formdata.inc.php function
#Will allow easy migration to php6 (since magic quotes will no longer exist in php6)
#Also translate button labels and messages


Here are the [http://sourceforge.net/tracker/?func=detail&aid=2878661&group_id=60081&atid=493001 bug tracker] link and the [http://sourceforge.net/projects/openemr/forums/forum/202504/topic/3429307 forum thread] associated with this.
This project will be a lot of work and will involve modifications to a large amount of files. This process is currently happening slowly as we modify files. However at some point this will likely become a primary multi-developer project as we get closer to the release of php6.


Brady is planning to do this at some point
Currently linked to this [http://sourceforge.net/tracker/?func=detail&aid=2807026&group_id=60081&atid=493001 tracker item]


=== Date formatting ===
== Configuration ==


Still work to do in order to support date formats across multiple languages. Here's the [https://sourceforge.net/projects/openemr/forums/forum/202506/topic/3472404 forum thread] discussing this.
Awaiting a Analyzer to figure out a good plan for this.
=== Translation database maintenance/improvement ===
We currently have a stable collaborative system in place to allow translation of any language. The translations are entered into a [http://spreadsheets.google.com/ccc?key=0AtTW60zHo6HzcGg0UE9JMGJHM1NsSWpuYkh0Snl4Q0E&hl=en OpenEMR Translation Google Doc Spreadsheet]. These [http://openemr.cvs.sourceforge.net/viewvc/openemr/openemr/contrib/util/language_translations/ instructions and scripts] (README files describes the pipeline in detail) then allows conversions of the translation spreadsheet to mysql tables and allow detection and insertion of new english constants into the translation spreadsheet.
A new set of official translation tables are created approximately every 1-6 weeks depending on where we are in the release cycle.
== Certification ==
A very large multi-developer project is currently underway to get CCHIT certifications and is described on the [[OpenEMR Certification|CCHIT Roadmap]] wiki page.
== Configuration ==
===Migrate configuration settings into OpenEMR program===
===Migrate configuration settings into OpenEMR program===
Currently, many of the configuration settings are found in the actual source files. It will be very advantageous to migrate all configurations settings from these files into OpenEMR's mysql database. This would markedly simplify use, customization, upgrading, and patching of OpenEMR.
Currently, many of the configuration settings are found in the actual source files. It will be very advantageous to migrate all configurations settings from these files into OpenEMR's mysql database. This would markedly simplify use, customization, upgrading, and patching of OpenEMR.

Revision as of 08:56, 1 December 2009

Overview

This is a listing of currently important active projects. This is a place to see what's going on, and also a place to see where help is needed by other developers and testers. These are kind of ordered by how important they are to OpenEMR's future.

Wiki

We have just migrated the wiki to mediawiki. Below describes the active projects in this wiki migration that still need to be completed.

Simple stuff

  1. Need a logo

Backup

  1. Daily
  2. Ensure also backup the screenshots folder

Google analytics

  1. Set up tracking of external links (downloads).
  2. Consider looking for way to make stats public for transparency????

Internationalization

  1. Install ParserFunctions extensions to allow use of method described here: [1] (this is a very basic mechanism and can then be leveraged in the following step to automate for international users)
  2. Once above works and we have a verified backup then install/configure the Polyglot, Multilang, and LanguageSelector extensions.
  3. Recruit translators

Certification

A very large multi-developer project is currently underway to get CCHIT certifications and is described on the CCHIT Roadmap wiki page.

Internationalization

OpenEMR supports internationalization and multi-language clinics. Most of this are from recent modifications that got released in OpenEMR 3.1.0. Further information on the project can be found on the internationalization configuration and development wiki pages.

CAMOS module internationalization

The CAMOS module is a form that can be activated in OpenEMR. It does not yet support internationalization. Current plans are the following:

  1. Primary author of module to commit most updated CAMOS code
  2. Change the escape() function call to encodeURIComponent() in javascript ajax call
  3. While here will convert all magic quotes checks to openemr/library/formdata.inc.php function
  4. Also translate button labels and messages

Here are the bug tracker link and the forum thread associated with this.

Brady is planning to do this at some point

Date formatting

Still work to do in order to support date formats across multiple languages. Here's the forum thread discussing this.

Awaiting a Analyzer to figure out a good plan for this.

Translation database maintenance/improvement

We currently have a stable collaborative system in place to allow translation of any language. The translations are entered into a OpenEMR Translation Google Doc Spreadsheet. These instructions and scripts (README files describes the pipeline in detail) then allows conversions of the translation spreadsheet to mysql tables and allow detection and insertion of new english constants into the translation spreadsheet.

A new set of official translation tables are created approximately every 1-6 weeks depending on where we are in the release cycle.

Calendar

Multi-facility bugs

Description of bugs:

  1. Things work great with one facility
  2. With two facility the bugs appear (different bugs happen with the $GLOBALS['restrictuserfacility'] turned off(default) and on)
  3. When $GLOBALS['restrict_use\r_facility'] is turned off get behavipor descirbed above by lovogler. In essence the calendar only shows what is set as 'default facility' in the users settings. If you choose the facility then that user won't be available. By choosing all facilities, it will actually show all appointments from all facilities, however the scrollbar display is confusing (shows the top item), and unable to schedule an appt at anything but in the scroll bar; this also screws up what you see when scrolling through new days.
  4. When $GLOBALS['restrict_use\r_facility'] is turned on, then only seems to work right if you place all facilities in the users settings 'Schedule facilities'. Then everything seems to work fine, but there is no option to view all facilities, which seems like should be an option. If you don' t place all facilities in the users 'schedule facilities', then you'll see other appointments at other disallowed facilties like they are on the selected on (not much of a bug since appointments shouldn' be scheduled on disallowed facilities anyways), however can only add to the allowed facility, which is good.

Seems like the bug(s) really stem from three mechanisms:

  1. When choose all facilities, don't then highlight the item below it; highlight them all and that have this supported when click other buttons (moving days or adding appt)
  2. With global restric_user_facility off (default) allow users to be scheduled at all facilities.
  3. With global restric_user_facility on give option to show all facilties in calendar.

Currently linked to this tracker item and this forum thread.

Awaiting a Developer to fix this bug.

Recurring appointment bugs

This problem() is discussed in this forum thread and this forum thread.

Awaiting a Tester to further document this bug behavior and make a bug report in tracker with this behavior.

General code base improvements

Clean up magic quotes, prevent sql-injection, and prepare for PHP6

Plan to pass all input data through functions in the openemr/library/formdata.inc.php file before inserting into mysql database. This is useful for following reasons:

  1. Will centralize input validation
  2. Will centralize sql-injection blocking
  3. Fix the escaping bugs(magic quotes) that are seen throughout OpenEMR when inputting the apostrophe character
  4. Will allow easy migration to php6 (since magic quotes will no longer exist in php6)

This project will be a lot of work and will involve modifications to a large amount of files. This process is currently happening slowly as we modify files. However at some point this will likely become a primary multi-developer project as we get closer to the release of php6.

Currently linked to this tracker item

Configuration

Migrate configuration settings into OpenEMR program

Currently, many of the configuration settings are found in the actual source files. It will be very advantageous to migrate all configurations settings from these files into OpenEMR's mysql database. This would markedly simplify use, customization, upgrading, and patching of OpenEMR.

A proposed plan is the following:

  1. auto-detection of the webroot and webserverroot directories (it seems all other php projects do this, so shouldn't be hard) in the interface/globals.php file, so it doesn't need to be hard-coded.
  2. Create an Administration->Confiugration module to allow editing of the below settings within OpenEMR
  3. Migration of all configuration setting from the following files to above Administration->Configuration Module (ie. mysql database) (then could simply make a database call when need the variable. For example the globals.php file would then simply be a huge sql query to collect the configuration settings):
    • interface/globals.php
    • includes/config.php
    • custom/clickoptions.txt (place into current admin->lists structure)
    • custom/code_types.inc.php
    • library/lists.inc
    • library/classes/class.ezpdf.php
    • interface/billing/billing_report.php
    • interface/billing/billing_process.php

Here is the related feature request tracker item.