Software
Components : Introduction
Version 17 Jul 2016, initially 15 Nov 2009, Etienne Saliez, /
- Objectives: The central idea of the project is the improvement of
collaborative work in 2 ways:
- Care collaboration:
- The project focus on a patient centric record, in which the
diverse professional care providers in charge of the same patient
can read and write, according to a set of authorization rules.
The group of professional having the trust of the patient and
working for him is called the "VIRTUAL CARE TEAM".
The patient record is intended to be used in various contexts where
the patient may need care and where specific presentations and
extension may be necessary.
The essential objectives focus on patient care, based on the
concept of the "Iterative Medical Model".
- Informatics collaboration:
- Collaborations between informaticians in order to share knowhow
and to reuse software modules in Open Source. Management of
distributed developments.
Medical activities are similar everywhere in the world, taking
account of a few exceptions which represent maybe less than 1/4 of
the total development efforts.
Open source make here much sense as far as software can be reused
in different implementation sites and settings.
- Approaches:
- Patient centric:
Users working in very different environments need to share information
about their common patients.
- The traditional way was to exchanges paper copies of some reports
and documents, by means of postal services, or nowadays by means of
electronic messages. This traditional approach can still be used,
but it is far from practical, due to delays and poor availability
of complete information.
- The trend is that the care of patient require usually several
specialized professionals, who should share information.
This implies a new philosophy and methodology of medical work.
- Current technologies provide now the possibility to share
information in real time, directly on common servers, using broadly
available technologies, i.e. web technologies.
Maintenance of evolutive documents providing an overview of the
current situation, rather than formal reports freezed at a given
points in the past.
At any time a comprehensive overview of the situation of the
patient should be available. Old versions remain available, but
only on demand.
- The challenge is the standardization of interfaces, i.e.
services. Open source is a great factor of interoperability, much
greater than just some standardization of message exchanges,
between very closed softwares.
- Object model:
- In general as far as possible the strategy is to define commons
properties only once in a parent class.
- Derived classes will provide specializations as explained below
in this document.
- 4 levels of software collaborations:
- ( A ) Fist look at the most generic common requirements which
are anyway necessary for all care providers.
- ( B ) Having a common trunk of applications, look at the
additional aspects required by specialized professional profiles,
GP, diverse specialists, nurses, pharmacist, etc....
- ( C ) Adaptations in function of cultural differences and
national legal requirements.
- ( D ) Arbitrary local requirements without justification and
probably not useful to anyone else. However this level has to be
developed and maintained using own local resources.
- Active strategy:
- An usual approach would be to start with big surveys by potential
users, in a neutral way as if nothing would be known. This would
take a lot of time and provide a vision of the past. Many users
are expected to ask to do the same as in the paper era, but on
screen.
- A more effective approach is to take the risk to try to
anticipate and to propose a vision of the situations expected
within 3 to 5 years. Experimental prototypes will then be
discussed with the users. At the end proposed hypothesis will be
submitted to the validation of the users.
- Incremental strategy:
- Let begin in a simple way with a model of the most fundamental
aspects. Define first the outline of the most essential
components.
- New versions of these components will be improved later on step
by step. Every module will go go through several versions, each
time more elaborated.
- Modularity:
- To be realistic, the different partners in different
organizations, have their own software and will continue to use
them, for many local reasons. The strategy is to propose
additional modules as new options facilitating the work. In
such context it very important to make interfaces with existing
software, as far as possible.
- Modularity facilitate distributed developments, by informaticians
living in different countries.
- Modularity is important for incremental development, improving
one component at a time.
- Modularity allows implementation sites to chose what they like to
reuse, or what they want to make themselves in an other way, in
case where no agreement could be found by means of "options" or
even replacement of a module.
- Distributed developments:
- Openness of proposals, specifications and source code.
- Central coordination and maintenance of a central table of
priorities.