h1. Ruby reference implementation of openEHR.

h2. The origin

In 2007, there are no implementation in script language of openEHR. I and Dr Akimichi Tatsukawa (Aki) knew each other on our activity in the Ruby and the other script language (I translated 'Beginning Perl for Bioinformatics', O'Reilly 2002 to Japanese, and Aki developed psychology test with Ruby on Rails in his hospital). I was also bored in the obsoleted environment around medical informatics in Japan. The openEHR project stimulated our intellectual concern directly. Thus, we decided to implement the openEHR in some script language. Ruby was the only language that both I and Aki shared. (But I don't know Ruby much, just be enjoying)

h2. The status and road map

Fortunately, no one disturbed us. Moreover the and many people have supported us. Yeah! Tim Cook started the Python project at almost same time and gave us some significant suggestions.

Since we are sometimes too busy to develop, the road map is unstable and incredible for even me.

However, I have a presentation in the 7th "ICICTH": 2009 in Samos. So the next target version is Samos as 0.5.0 that covers almost all reference models of the stable specification.

In 2010, established version will be released as Capetown release.

h2. The coding guide line

h3. Nomenclature of module and classes.

Now, our coding style is not established, but some refinements have been performed our libraries. After Samos release, nomenclature of module and class will be unified to the Rails style.

As the Eiffel description, the openEHR nomenclature of classes in specification documents defined all the class and module name are CAPITAL. Otherwise, Java and Python implementation describe their classes as camelCase. In Ruby language, class and module name should be started in capital alphabet. So we can address class name as 'ARCHETYPE_ONTOLOGY' or 'ArchetypeOntology'. Formerly, we described classes as 'Archetype_Ontology'. But we decided to describe class name as the rule like Java and Python, such as 'ArchetypeOntology', because we should appeal our implementation for both Python and Java people. This decision was aimed to enhance the similarity to Rails environment.

h3. Arguments format

The constructors of some classes of the openEHR specification have more than five arguments. Since the order of the arguments bothers us sometimes, we changed the argument style as Hash.