Hello.

The idea or plugins is great and would make possible to keep more different 
type of modules within one branch. 
Mauri


On 28 Jun 2006 at 23:47, Kaloyan Raev wrote:

> Hello, 
> 
> One of the greatest challenges in front of the Care2x is adoption in
> different kinds of hospitals in different kinds of places in the world.
> The healthcare in different countries has different requirements. In
> some countries these requirements change year-by-year (or even more
> frequently). Even there are hospital that has their own requirements for
> the HIS system. 
> 
> Care2x tries to be as generic as possible to fit the needs to the
> greatest extent of the hospitals. But it is not possible Care2x to fit
> the needs of all of the hospitals (or even to one of them) just
> out-of-the-box. For every solution Care2x has to be more or less
> customised. 
> 
> Let's take as example the solution for East Africa. The healthcare in
> USA and Tanzania has very significant differences. This led the
> developers to the idea of making separate branch (ELCT) for the East
> Africa solution. And they are right! The customisation of the original
> Care2x, however, is so big and specific, that it is hard to decide what
> of the features implemented in ELCT could be contributed back to the
> main branch. Sometimes it would need additional efforts to make new
> feature as general as to fit in the original Care2x branch. 
> 
> At the current state of the Care2x architecture branching for specific
> solutions is inevitable. On the other hand, keeping Care2x as generic as
> possible makes the process of merging features back to the main branch
> hardly possible. 
> 
> Customisation is necessity. What has to be changed in the Care2x
> architecture is that there should be a framework that defines strict
> rules how Care2x can be customised. This framework should give great
> flexibility for customisation and in the same time keep these
> customisations as closest as possible to the main branch. Actually,
> there should only one branch - the main branch. 
> 
> There is a solution for this at the moment, but for desktop applications
> - the Eclipse project [1]. This project defines a plugin framework where
> each plugin is a separate module that contributes features to the
> application as a whole. Plugins has dependencies between them and one
> plugin can customise a feature defined in its dependant plugin using the
> so called "extension points". 
> 
> I believe something similar can be done for php web applications as
> well. The generic HIS functionality can be implemented in basic plugins
> that define extension points for customising specific features. These
> extension point will be used by plugins for specific solutions. At the
> the solution for specific country or hospital will be distribution of a
> set of plugins. 
> 
> Let me visualise the idea in an example. Let's take the patient
> registration form. If we generalise the patient registration record it
> would include the following features: 
>   - system id
>   - name
>   - sex
>   - date of birth
>   - citizenship registration (citizenship id, country, address,..)
>   - contact (phone, mail, fax, ..)
>   - insurance info
>   - blood group
>   - etc.
> 
> If we examine only the 'name' feature we will see that it has lots of
> attributes in different countries: title, first name, last name, middle
> name, maiden name, third name, ..., Nth name, tribe, caste, ...,
> whatever attributes I have never heard of. Each country uses different
> subset of these attributes to identify its citizens: 
>   - USA: title, first name, last name
>   - Bulgaria: first name, middle name, last name
>   - Tanzania: first name, fathers name, third name, tribe
>   - India: I've heard there they have lots of names.
> 
> Now let's have 'care2x_patient' plugin that defines the patient
> registration record model. In this plugin there will be an extension
> point defined for the 'name' feature. Attributes for the 'name'
> extension point will be contributed by other customisation plugins
> like: 
>   - care2x_patient_usa - contributes first name, last name, title
>   - care2x_patient_bulgaria - first name, middle name, last name
>   - care2x_patient_tanzania - first name, fathers name, third name,
> tribe
> 
> At the end the solution for Tanzania will be set of plugins that include
> care2x_patient and care2x_patient_tanzania, but not
> care2x_patient_bulgaria and care2x_patient_usa. 
> 
> An assembler script will go through the set of plugins and will evaluate
> the dependencies, extension points and extension contributions. It will
> construct the solution-specific database schema that will be used by the
> installer. At runtime the extension points should be evaluated as well.
> For example a patient search form should lookup the attributes for the
> 'name' feature to decide what fields to generate in the search form. 
> 
> Such kind of plugins framework separates the application design from the
> basic code implementation. All of the Care2x design has to be migrated
> to models that describe each feature of the system and defines extension
> points for customisable ones. The basic code implementation - the
> framework - will actually exploit the model to provide the necessary
> functionality. Such separation is for good, because developers with
> stronger medical background can concentrate on the models, while those
> will stronger programming skills can work mainly on the framework.
> Upgrades to newer versions of Care2x will also be executed with much
> less problems, because the customisations are isolated in separate
> plugins. 
> 
> I want to here your opinion, suggestions and questions about this
> proposal. I realise that this is a major architectural change and is not
> achievable in short term. I am seeing it in a future major version of
> Care2x like 3.0. I am also planning to make a simple prototype (proof of
> concept) of this idea as diploma work. So, hopefully, I will be able to
> show you something in the near months. 
> 
> [1] http://www.eclipse.org/
> 
> Greetings
> Kaloyan
> 
> 
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Care2002-developers mailing list
> Care2002-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/care2002-developers
> 
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.394 / Virus Database: 268.9.5/377 - Release Date: 27.6.2006
> 




-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.9.6/378 - Release Date: 28.6.2006


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Care2002-developers mailing list
Care2002-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/care2002-developers

Reply via email to