Introducing myself + question

Dear list members,

my name is Vincenzo Della Mea, I'm researcher (Medical Informatics) at the University of Udine, Italy, with interests until now directed to telemedicine.

I'm investigating now how to use OpenEHR as a teaching aid for a Medical Informatics course: as a model, I think is very well developed and educational for what regards the correct implementation of EHRs.
So, my question is: I read on the web site that there will be some Java implementation available sooner or later. Do you now, at least in principle, when?

Kind regards,
Vincenzo Della Mea

Vincenzo Della Mea wrote:

Dear list members,

my name is Vincenzo Della Mea, I'm researcher (Medical Informatics) at the University of Udine, Italy, with interests until now directed to telemedicine.

I'm investigating now how to use OpenEHR as a teaching aid for a Medical Informatics course: as a model, I think is very well developed and educational for what regards the correct implementation of EHRs.
So, my question is: I read on the web site that there will be some Java implementation available sooner or later. Do you now, at least in principle, when?

there are a couple of Java implementations underway.

The timetable for openEHR is roughly as follows:

- stable release "0.9" by end April (validated by formal tools); will include specifications and XML schemas.
- The validation is done by Eiffel tools, and an Eiffel expression of the specification will also be available around this time
- initial C# and Java implementations will probably start being released around this time, e..g for datatypes, demographics and so on.

- thomas beale

Can you realease a C/C++ implementations?

what languages openEHR components are released in depends heavily on who wants to build them, and the available resources, as well as what they are used for. In the current IT world, developers seem to want more Java and .Net based languages, and this probably also corresponds more to the availability of new developers. So I guess most developments are more likely to focus on these languages. The specifications are published so that anyone can implement in any language. I hope that if openEHR becomes popular, there will be more and more of these.

The openEHR foundation itself is a non-profit organisation, and as you can imagine does not have unlimited resources to build software, so some of these implementations may take time to appear.

Another issue which I think is more important than language is runtime interfaces. Components written in many languages can be interfaced by COM, and presumbly, .Net infrastructure; most languages can produce DLLs for Windows and .so or other kinds of libraries for the unixes. The ability to interface trusted components is key to building large systems without having to do everything yourself.

Hope this helps...

- thomas beale

Another interesting thing is that developing openEHR systems might
reveal the need of specific language to operate on. Similiar
to what SQL is for relational databases today. This could be also
a mean to standarise communication between EHR systems.

cheers,

if you are thinking of specific querying language - I would agree - we can already see that the use of archetypes at runtime changes how queries are written and does require some new kind of language. We have been experimenting on this, and are working on it...

- thomas beale

Rafal Szczesniak wrote:

Yes, I'm particularly interested in this and also in actual storage
techniques. As archetypes change and new ones are being added, the way
the data in files (it has to be stored somewhere, eventually) on disk
has to follow the changes. Besides, no one of currently known query
languages is able to reflect complicated structures of health records.
At least I don't know of one.

cheers,

Greetings,

I'm an IT consultant / contractor in the U.S. and am currently engaged with
a group of seven of neurology practices in the evaluation of EMR/EHR
systems. We have reduced the field of vendors under consideration to three
and intend to make a selection from that set within the next couple of
months. We have recently begun evaluating the prospect that a viable open
source system will become available within a relatively short (i.e., < 24
months) period of time. If this were the case, the acquisition could be put
on hold. A couple of questions...

1) Is it your intention that openEHR eventually become a viable alternative
to commercial offerings, or is openEHR intended as an academic / research
tool?

2) Does the openEHR Foundation exist yet or is it still under formation?

3) I may simply not have discovered it yet, but I expected to find a place
on your site where developers were engaged in conversation about the
components of the system they were developing. Could you share a little
about your operating model, particularly with respect to new developers
interested in contributing?

Thanks in advance for your assistance in understanding more about the
openEHR initiative.

Best regards,
Bill Walton
http://www.jstats.com

Hello,

if you are thinking of specific querying language - I would agree - we
can already see that the use of archetypes at runtime changes how
queries are written and does require some new kind of language. We have
been experimenting on this, and are working on it...

in our Framework, we try to keep communication as neutral as possible.
The aim is to enable two systems to talk to each other as simple as
question and answer - in Java:

Answer ask(Question q) {
    ...
    return a;
}

Any message shall be encapsulatable. In thinking more about it, I came
to the result that the structure of human sentences suits this problem
the best. Sentences (at least in Latin-based languages but I guess
others, too) consist of:
- Subject (System)
- Predicate (Action)
- Object (Model)
- Adverbial (additional stuff, like time or place where something occurs)

That is the structure of the "Signal" which we use in our Framework.
Additionally to the four fields above, one field "Language" is added.
This Signal (hopefully) allows to encapsulate messages of all kinds,
Framework-internal, SQL, CORBA, SOAP, Streams, Sockets ... whatever.
(To be approved in practice, still.)

Example: SQL query "insert data into table"
- the Subject would be the (name or URL of the) sending (or receiving)
System (still unclear to me)
- the Predicate would be INSERT (an Action)
- the Object would be DATA (a Model)
- the Adverbial would be TABLE (or a second Object?)

That way, a whole library of possible Actions could be built. It doesn't
make sense to create one class per one action but perhaps all actions
could be sorted into something like a Terminology?

Not all things are clear to me yet, but in principle it seems fine.
If OpenEHR tries to find a rather neutral Signal Handling Mechanism
then I would be glad to think about it together. If OpenEHR rather wants
a querying specific to Archetypes, then we could perhaps still exchange
some ideas.

Rgds,
Christian

Rafal Szczesniak wrote:

if you are thinking of specific querying language - I would agree - we can already see that the use of archetypes at runtime changes how queries are written and does require some new kind of language. We have been experimenting on this, and are working on it...
   
Yes, I'm particularly interested in this and also in actual storage
techniques. As archetypes change and new ones are being added, the way
the data in files (it has to be stored somewhere, eventually) on disk
has to follow the changes.

This is the reason we aim to define a small, very stable reference model (ODP information viewpoint) - even if new archetypes are added, they just introduce new ways of combining existing kinds of bricks together, rather than new kinds of bricks. Information created according to an archetype which has a new version created (correcting an error) will have to be migrated, but not because the information building blocks are wrong - because some structure or content is no longer valid. We hope that this will not happen often. This is one of the reasons why archetypes and templates need to undergo quality assurance, both technically and clinically.

Archetypes can also be created as specialisations of existing archetypes; these will not invalidate existing data.

Besides, no one of currently known query
languages is able to reflect complicated structures of health records.
At least I don't know of one.

the archetype path mechanism is one of the elements that will be used to make querying more powerful. Another is inspection of the "archetype maps" of data, providing a "data xray" without having to read the data.

- thomas beale

Bill Walton wrote:

Greetings,

I'm an IT consultant / contractor in the U.S. and am currently engaged with
a group of seven of neurology practices in the evaluation of EMR/EHR
systems. We have reduced the field of vendors under consideration to three
and intend to make a selection from that set within the next couple of
months. We have recently begun evaluating the prospect that a viable open
source system will become available within a relatively short (i.e., < 24
months) period of time. If this were the case, the acquisition could be put
on hold. A couple of questions...

1) Is it your intention that openEHR eventually become a viable alternative
to commercial offerings, or is openEHR intended as an academic / research
tool?

well, I can say two things:
a) the core people currently involved in developing the specifications intend to try to change clinical computing - everywhere.
b) as more people become more active in openEHR, they will bring their interests to the table. Most of the ones I know of are interested in changing clinical outcomes in the real world.
c) academia and research contexts are of course important, and are where a lot of innovation comes from. So we should not discount these. But the real aim is to change things (rather than just talking about it, to paraphrase Marx;-)

2) Does the openEHR Foundation exist yet or is it still under formation?

It does exist as a legal non-profit organisation, but as an international foundation, incorporated in the UK. The "openEHR" name and other special marks (e.g. "conforms to openEHR vX.X" etc) are also protected, ensuring that they are used for truly conformant systems and applications.

3) I may simply not have discovered it yet, but I expected to find a place
on your site where developers were engaged in conversation about the
components of the system they were developing. Could you share a little
about your operating model, particularly with respect to new developers
interested in contributing?

A number of developments are coming online. There is work being done in C#, Java, Eiffel and XML-schema that I know of. Some of this will become visible on the website in the next month or two. It is still early days, so how implementation work and collaboration pans out is not entirely forseeable. However, it is planned to get more people involved to give of their expertise on collaborative software development, developing test cases, conformance criteria and so on. The main effort to this point has been to get a set of specificatinos good enough to start work on. It is believed that the current ones are, and a baseline will appear soon. Mechanisms for submitting change requests etc will also appear soon, but of course, none of this work is instant!

- thomas beale

Hi Thomas,

Thomas Beale wrote:

Bill Walton wrote:

/snip/

>
>1) Is it your intention that openEHR eventually become a viable

alternative

>to commercial offerings, or is openEHR intended as an academic / research
>tool?
>
well, I can say two things:
a) the core people currently involved in developing the specifications
intend to try to change clinical computing - everywhere.
b) as more people become more active in openEHR, they will bring their
interests to the table. Most of the ones I know of are interested in
changing clinical outcomes in the real world.
c) academia and research contexts are of course important, and are where
a lot of innovation comes from. So we should not discount these. But the
real aim is to change things (rather than just talking about it, to
paraphrase Marx;-)

That's three things :wink: Seriously though, it sounds like we're on the same
page. Getting the system into day-to-day use in clinical settings is the
objective. Yes?

>2) Does the openEHR Foundation exist yet or is it still under formation?
>
It does exist as a legal non-profit organisation, but as an
international foundation, incorporated in the UK. The "openEHR" name and
other special marks (e.g. "conforms to openEHR vX.X" etc) are also
protected, ensuring that they are used for truly conformant systems and
applications.

Excellent.

>3) I may simply not have discovered it yet, but I expected to find a

place

>on your site where developers were engaged in conversation about the
>components of the system they were developing. Could you share a little
>about your operating model, particularly with respect to new developers
>interested in contributing?
>
A number of developments are coming online. There is work being done in
C#, Java, Eiffel and XML-schema that I know of. Some of this will become
visible on the website in the next month or two.

I assume this work is being done by some of the founding members and that
they're communicating back-channel. Yes?

It is still early days, so how implementation work and collaboration pans
out is not entirely forseeable.

Understandable.

However, it is planned to get more people involved to give
of their expertise on collaborative software development, developing
test cases, conformance criteria and so on.

I managed a test automation group from '95-'00. As a consultant /
contractor, I'm typically engaged as a Project Manager with a technical
focus in requirements definition and testing. I'll look forward to the
opportunity to contribute once you've got the mechanisms defined.

The main effort to this
point has been to get a set of specificatinos good enough to start work
on. It is believed that the current ones are, and a baseline will appear
soon.

Saw your earlier note on timeframes and was encouraged.

Mechanisms for submitting change requests etc will also appear
soon, but of course, none of this work is instant!

Let me know if I can be of assistance. Process definition is a substantial
component of what I do.

Best regards,
Bill

I thing C/C++ is the good choice, it's more popular, easy to embed in other
language, multi-platform.

IMHO, archetypes need to be specifiable independent of the platform and language, including the querying. How archetypes are to be stored on disk should also not be part of the specification. Rather they should have a data model independent of platform and language.
I assume that if archetypes are specified by XSL Schema then one would use a form of XPath to query them(?). I actually like something
like the Object Constraint Language for this purpose, but this might not be popular.

We have used C++ for more than 15 years and find it not particularly easy to embed in other languages compared to other approaches.
It should have nothing to do with the OpenEHR specification.

Dave Forslund

It is nice to have dreams…

I again would like to reiterate may opinion on this list concerning the modeling of Healthcare.

The business of Healthcare (both Clinical and Administrative) needs to be modeled in a language, platform and operating system independent manner. This will provide the opportunity for folks to provide implementations that can be used across the widest spectrum while leveraging legacy systems. One such universal modeling language is UML (Unified Modeling Language) and the “OPEN” technology that is making this a reality comes from the Object Management Group (www.omg.com) MDA (Model Driven Architecture).

Making a decision to develop models that force people to use C, C++, Java, Effiel, Microsoft NT, Unix, MVS, or proprietary mechanisms will only hamper IT efforts for interoperable solutions.

I also concur with David Forsland in the use of the Object Constraint Language.

Tom

Clearly true, but not clear :wink:

Rafal Szczesniak wrote:

>
>
>Yes, I'm particularly interested in this and also in actual storage
>techniques. As archetypes change and new ones are being added, the way
>the data in files (it has to be stored somewhere, eventually) on disk
>has to follow the changes.
>
This is the reason we aim to define a small, very stable reference model
(ODP information viewpoint) - even if new archetypes are added, they
just introduce new ways of combining existing kinds of bricks together,

Yes, I know what are the reference model and archetypes for :slight_smile:

rather than new kinds of bricks. Information created according to an
archetype which has a new version created (correcting an error) will
have to be migrated, but not because the information building blocks are
wrong - because some structure or content is no longer valid.

And that's one of the technical challenges.

We hope
that this will not happen often. This is one of the reasons why
archetypes and templates need to undergo quality assurance, both
technically and clinically.

Have you been thinking about a sort of identificator for archetype-class ?
Conceptually similiar to what OID is. As archetypes are being developed
and published on periodical basis they have to be loaded into running system,
eventually. Software could work on classes IDs rather than archetype path.
Moreover, it doesn't change the fact that such OIDs might be organised
hierarchically -- the way the archetype path is. Or perhaps there's already
something introduced, just that I've missed it (there's yet quite a few
documents to read...) ?

Archetypes can also be created as specialisations of existing
archetypes; these will not invalidate existing data.

Naturally. If archetypes are classes, why couldn't they inherit like
the 'real' classes do it ?

>Besides, no one of currently known query
>languages is able to reflect complicated structures of health records.
>At least I don't know of one.
>
the archetype path mechanism is one of the elements that will be used to
make querying more powerful. Another is inspection of the "archetype
maps" of data, providing a "data xray" without having to read the data.

Could you elaborate on this 'archetype maps' concept a bit more ?

cheers,

dhlong@vietkey.net wrote:

I thing C/C++ is the good choice, it's more popular, easy to embed in other
language, multi-platform.

Actually, people and projects implementing openEHR will make their own choices. There is no need to choose one thing. As the open source software pool grows, I am sure you will see many languages. It's just a question of which ones come first and how components written in different languages talk to each other.

- thomas beale

Rafal Szczesniak wrote:


rather than new kinds of bricks. Information created according to an
archetype which has a new version created (correcting an error) will
have to be migrated, but not because the information building blocks are
wrong - because some structure or content is no longer valid.


And that's one of the technical challenges.

right. It means that if you correct an arcetype by creating a new version (an admission that there was something wrong in the previous version), you are obliged to provide an algorithm which will convert a lump of data according to the old one into the form of the new archetype. If this means adding a data field that wasn’t there before, it has to have been worked out what value this will be synthesized; this value must be legal with respect to the new arhcetype version.

We hope
that this will not happen often. This is one of the reasons why
archetypes and templates need to undergo quality assurance, both
technically and clinically.


Have you been thinking about a sort of identificator for archetype-class ?
Conceptually similiar to what OID is. As archetypes are being developed
and published on periodical basis they have to be loaded into running system,
eventually. Software could work on classes IDs rather than archetype path.
Moreover, it doesn't change the fact that such OIDs might be organised
hierarchically -- the way the archetype path is. Or perhaps there's already
something introduced, just that I've missed it (there's yet quite a few
documents to read...) ?

The attributes of the class ARCHETYPE look like:
uid[1]: OBJECT_ID
id[1]: ARCHETYPE_ID
specialisation_parent_id[1]: ARCHETYPE_ID
concept: STRING

The id is a multi-axial identifier, while the uid is an ISO OID or similar. The multi-axial id can be used to do searching for archetypes etc and is of the form:

archetype_id: archetype_originator ‘.’ qualified_rm_entity ‘.’ domain_concept ‘.’ version_id

qualified_rm_entity: rm_originator ‘:’ rm_id ‘:’ rm_entity
domain_concept: concept_name { ‘:’ specialisation }* – the domain concept name, including any specialisations;
version_id: ‘v’ NUMBER
archetype_originator: NAME – id of organisation originating this archetype;
rm_originator: NAME – organisation which created the reference model;
rm_entity: NAME – ontological level in the reference model;
domain_concept: NAME
specialisation: NAME
NUMBER: [0-9]*
NAME: [a-z][a-z0-9()/%$#&]*

Examples of archetype identifiers include:
racgp.openehr:ehr_rm:organiser.physical_examination.v2
racgp.openehr:ehr_rm:organiser.physical_examination:prenatal.v1
nictiz.hl7:rim:act.progress_note.v1
uk-nhs.openehr:ehr_rm:entry.progress_note:naturopathy.v2

Archetypes can also be created as specialisations of existing
archetypes; these will not invalidate existing data.

Naturally. If archetypes are classes, why couldn't they inherit like
the 'real' classes do it ?

they’re not quite the same as real classes, since they are constraint specifications, so the rules are somewhat different. THe primary rule of specialisation is that data created according to a more specialised archetype will also match the parent. In standard OO, subtypes can add attributes that the parent knows nothing about.

Besides, no one of currently known query
languages is able to reflect complicated structures of health records.
At least I don't know of one.
the archetype path mechanism is one of the elements that will be used to
make querying more powerful. Another is inspection of the "archetype
maps" of data, providing a "data xray" without having to read the data.

Could you elaborate on this 'archetype maps' concept a bit more ?

It is described in some detail in the original archetype paper at http://www.deepthought.com.au/it/archetypes/Output/arch_querying.html#1076511
This is a bit out of date, but is essentially the idea I am talking about.

  • thomas beale

  • If you have any questions about using this list, please send a message to d.lloyd@openehr.org