Wednesday, November 19, 2008

ffEHR participates in INCOSSH2008

The ffEHR team is very much honored and thankful to participate in an International Conference on Open Source Software in Healthcare. INCOSSH 2008 brings together the domain experts and software developers to exchange best practices and updates on how FOSS can become an important strategy for disparate systems in the Healthcare industry.

More information can be found at the link below:

Wednesday, November 5, 2008

ffEHR's official repository in

Hello all,

Please bear with the ffEHR team, as we align all our documentation. ffEHR is now officially hosted in Here is a sample screenshot from the trunk (development) branch:


Thursday, October 16, 2008

Development updates (2008-10-17)

Hello all,

It is almost a month since the Software Freedom Day 2008 celebration and weeks since the successful webit training course. Wow! Too many FOSScitements happening around these days.

And oh boi! oh boi! ;-) yep, is opening a server-side project and hosted in Business Object Interfaces ... one of the product in webit's php-edition workshop. This project supersede the Cruxade server framework and built to accommodate XML and JSON. This, of course, in the coming time -- will work with ffehr. Cruxade will now be a framework on the client side and focus of providing tools to assist Xul developers.

I discovered a lot of wonderful features at and have come to know that it's more than just a repository hosting site .... it's a developer social network site as well. This social network aspect make it easy to interact with other developers / contributors to your project. Another good news is the improvement of bazaar; version 1.7 (to date) is really fast and I am totally impressed by the stack feature. Congrats to all the devs that contributed to this release. ;-)

Before I end, let me post an update of ffehr:

Cruxade's got a new date entry widget. :-)

The core devs are now looking into the benefit of launchpad and i have published the latest of ffehr and cruxade too.

Remember to download the latest version of bazaar.

NBJayme ;-)

Thursday, August 21, 2008


This pre-beta 3 release place a feature to handle media files (i.e. images and videos). You may now place a patient photo and test some videos/images in the imaging form.

To work with videos download the media player at

To install simply extract the tar.gz file. Download the 7zip application if your OS cannot recognize tar.gz.

Sadly, no macos releases yet. If you are interested to test and package for MacOS... email the ffehr team. :)

Here are screenshots in Linux:

Download the linux version here.

Here are screenshots in Windows:

(windows have a problem capturing the video).

Download the Windows version here.


Tuesday, August 12, 2008


ssshhh... beta 2 has just been released. :D
It was a silent release though; ffehr now has a validation library and the user interface have been redesigned, along with the report layout.

Developers are welcome to download the latest commit in the repository, with a feature to select a different datastore location or cabinet. Now, no more overwriting your test db files when installing the latest version of ffehr.

The current roadmap before beta 3 would be:

-- handling of media files (patient images and videos)
-- standardization of internal xml of ffehr

If you have some bright ideas that want to be included in the next milestone release of ffehr, feel free to contact me and send your contributions.

Note: Screenshots were taken from the latest development code. For documentation visit our website at



Friday, July 4, 2008

Custom validation and messages

Once again, Cruxade's validation library have been improved to allow cleaner code for custom validations and error message. The snippet below was taken from chrome://cruxade/content/validation.xul

var lv_oContainer = cruxade_ExtendContainer("container");
var lv_aValidator = [];
_validate_ : "required :vCustomFunc",
_errmessage_: function(nErrCode){
if (nErrCode==10) return "Max Error number?";
return "custommessage";
// return 0 if no error
return 10; // test case error
_validate_ : "required typedigit",
if (nErrCode==2) return "Please give me a number.";

Feel like hacking the code..?

The uda_validate options ":v" still works. ":m" is deprecated. Shall we carry on with the ":m" option? Tell me what you think.


Tuesday, June 24, 2008

ffehr with entry validation

The validation script of cruxade has now landed into ffehr's development repository. For the adventurous, you may download the source code of ffehr following the instructions at:

By the way, don't forget to update your local copy of cruxade. If you have followed the instructions from the previous blog all you need to do is issue the "bzr bind" command.

$ cd <pristine branch>
$ bzr bind
$ bzr update

Next time, you need not keep on issuing "bzr branch" nor "bzr bind" to keep in sync with the latest changes of cruxade's source code. "bzr update" will be enough, as long as, you have internet access (of course). Then, to merge the changes from pristine branch to your mods branch will involve the following commands "bzr merge", "bzr conflicts", "bzr resolve".

$ cd <mods branch>
$ bzr merge <path of the pristine branch>
$ bzr conflicts # to check for any conflicts
$ bzr resolve # after fixing the source
$ bzr commit

If you care less about your changes in the mods branch you can simply do a "bzr pull" command, instead of "bzr merge". Take note that "bzr pull" will overwrite the changes you've made, including your previous commits, in the mods branch.

$ cd <mods branch>
$ bzr pull <path of the pristine branch> --overwrite --remember
# next time you only need to do "bzr pull --overwrite" you may have guessed it with the "--remember" switch.

Wait... we're not done yet (too excited are we?) Add the cruxade extension under ffehr's extensions folder, in like manner you have added it in a firefox profile folder.


Friday, June 20, 2008

Cruxade's Validation Library - in action

The validation library has now been incorporated into extendContainer.js, useful for control validation within a form. The development code can be downloaded and tested using the instructions at

Once you've successfully installed cruxade into firefox, you may see the validation library in action by loading the xul page at chrome://cruxade/content/validation.xul

Keep pouring in your ideas. The improvement of this library will greatly benefit ffehr (


Tuesday, June 3, 2008

Cruxade's Data validation library

I am beginning to create a data validation library under Cruxade. I'll be happy to have your contribution to the code and make it better.

function isBlank(c){
if (null==c) return true;

function trimSpaces(c){
if (null==c) return "";
if (isBlank(c)) return "";
return c;

function isDigit(n){
if (null==n) return false;
if (typeof n == "number") return true;
n = trimSpaces(n);

function isDate(d){
if (null==d) return false;
if (d instanceof Date) return true;
d = trimSpaces(d);
if (^\d+-\d+-\d+$/)==-1) return false;
var lv_nYear = parseInt(d.match(/^\d+/));
var lv_cMonth = String(d.match(/-\d+-/));
lv_nMonth = parseInt(lv_cMonth.match(/\d+/));
lv_cDay = String(d.match(/-\d+$/));
lv_nDay = parseInt(lv_cDay.match(/\d+/));

// check for leap year and if day corresponds to month
if (lv_nYear < 1) return false;
if ((lv_nMonth < 1 ) || (lv_nMonth > 12)) return false
if ((lv_nDay < 1) || (lv_nDay > 31)) return false;
if (lv_nMonth==2){
if (lv_nDay<=28) return true;
if (lv_nDay>29) return false;
var lv_nScore= 0;
lv_nScore = (lv_nYear % 400==0)?1:0;
if (lv_nScore==0){
lv_nScore = (lv_nYear % 100==0)?-100:0;
lv_nScore = lv_nScore + ((lv_nYear % 4 ==0)?3:0);
return lv_nScore > 0;
if (lv_nDay==31){
var lv_c30month={};
return !(lv_nMonth in lv_c30month);
return true;

edited: 2008-06-06

Monday, June 2, 2008

ffehr-0.1b20080602 release

- auto creation of datastore and datamap folder
- gplv3 image in welcome screen
- GPLv3 license text in COPYING.TXT
-removed conflicting Welcome.css with welcome.css on FAT system
- added datastore.js
- added ffehrdata directory as structure to copy in application's
or extensions's (firefox) folder for newly installed ffehr
- solved ticket #27 creating of multiple profiles for single patient
-fix ticket#45 general admissions printable view defects
- fix ticket#50 Absence of Admission ID in the Admission Patient
- fixed ticket#32 Case Id does not show up at right frame.
- fixing ticket#41 Print preview of Discharge does not show up
Overall Condition value.
- fixed ticket#61 mispelled SURGEON
- maintain app id to and use required
in install.rdf
- branding folder and sanctuary folder
- restructured library for locale and skin extensions
- added idrc partner logo in welcome page



Please help test this xpi in MacOS.

Cruxade Library: