Welcome to
 
  Create an account    
Main Menu
· Home
· Submit News

FreeMED
· Downloads
· FAQ
· 
· List Archive
· Documentation
· Other FOSS PM/EMR
· Credits
· FreeMED Demo
· FreeMED Beta

FreeB
· Summary
· FAQ

Agata
· Agata Manual

User's Login

An unnamed PhpWiki

Free Bapi


This is basically how FreeB interfaces with a given Practice or Hospital Management System.

First, the interface is in XML-RPC with either basic authentication or using only localhost, or preferably, both.

The interface is documented exactly at docs.freeb.org

But that can be a little thick. Basically here is how it works.

First the Practice(Hospital) Management System (PM) starts FreeB with a

call. This billing session is identified, in FreeB's little mind, by BillKey. Using the BillKey, FreeB calls

On the PM. In response, the PM should give FreeB a list of Procedure Keys. Each Key is associated with an individual billable event.

FreeB will then start a format script. That format script will use the procedure keys to ask very specific questions to the PM. The format script generates a plain text bill file which is then sent to a target, which could be a clearinghouse for electronic bills or a printer for paper claims.

Thats it.

Of course it is a little more complex than that, to avoid namespace collisions, FreeB actually uses name spaces like FreeB.FBProcedure.ProcKey. This prevents a name space problem is a program already has something in the 'Procedure' name space.

Also, the very first thing that FreeB does is call various calls under FreeB::FBProcedure:: that return other keys. Most notably;

Each one returns a key that can be used to access further information about aparticular entity. Once those keys are aquired other name spaces are used to aquire different information about that kind of data. Somthing like

And so forth. The format script uses thousands of these calls to both fill out a form and to perform form logic. By form logix I mean things like, 'when the patient is pregnant check here'. And other such things. Even simple forms can be tremendously complex to fill out programatically, so you would be surprised at what strange information FreeB will ask for.

In order to implement FreeB a PM must have thoughtful replies to all of the XML-RPC calls that begin with 'FreeB.FB'. These are seperated in the documentation for this reason. The functions under the _FreeB Core Functions_ are implemented by the PM. However functions under _FreeB Helper Functions_ are all helper functions that sometimes call _FreeB Core Functions_. There are also lots of functions that help perform some of the dirty work for FreeB. (Look under Loop for good examples)

That means everything under FreeB.FBPatient would need to be included in any implementation, but nothing in FreeB.Patient.

Please feel free to contact me if you are super confused about something.

Here is a UML diagram of the process.

Later, I will be adding more information here about ?HowToIntergrateFreeWithMyProgram, ?HowToWriteFormatVariations, ?HowToCreateTotallyNewForms, ?HowToWriteTargets, etc etc

If you would like other questions answered, please just Wiki them in.