ISO 21090 data types too complex?

The NCI’s take, from this document available here on the NCI wiki (blue emphasis mine):

## Guidelines- The use of ISO 21090 data types is encouraged for CBIIT funded projects. However, given that there are no standard open source implementations that are available to the project teams, at the time of developing the guidelines, **CBIIT (via ECAT) has determined to validate the standards by supporting pilot projects**.
- ISO 21090 data types are required to be considered for analytical services only and not for data services Please refer to caBIG® compatibility Guidelines for definition of analytical and data service.
- Use of ISO 21090 data types are required only at the “public interfaces” of the analytical services (public Application Programming Interfaces (APIs)) and **not for any internal data structures or persistence tiers**.
- ...
## Steps for Implementing the Guidelines

The guidelines **could potentially be disruptive to many projects that are underway**, either due to contractual requirements or expectations made to the key stakeholders.

Additionally, there is a need to develop appropriate information mechanism (e.g. GForge site) to facilitate the integration of the ISO 21090 data types in a way that does not add any risk to the project and also does not compromise project’s business needs.

[... more]

## Risks on Using the Standard- **Unproven Standard**: The ISO 21090 data type standards have not been implemented till date in large scale enterprise systems. Hence, it is important to review progress of the pilot efforts within CBIIT and outside organizations (E.g. Canada Health Infoway, NEHTA, etc) at frequent intervals by ECAT to ensure that the standards are implementable and do not cause unacceptable loss in performance, scale, interoperability and service use.
- **Heavyweight**: **The ISO 21090 data types are complex information models. It is possible that this might make it difficult or even impossible to use as-is**. At the same time, if implementation specific changes are made to the ISO 21090 data types, then there is a risk that it might jeopardize interoperability outside CBIIT. The ISO Project Manager will be required to bring such situations to ECAT in a timely manner for appropriate guidance.
- **Lack of Tool Support**: Integrating the ISO data types in projects may be too time consuming and require additional tools to be created for ease of use. The tools could help in integrating the data types into project (via SDK, caAdapter and caGrid) and also in the semantic infrastructure for metadata registration.
- **Cost**: The use of ISO 21090 data types will most likely increase development costs for projects, including creating tool support, maintaining ISO 21090 data types as separate projects and project coordination activity (via ISO Project Manager). It is important for CBIIT to review the potential benefits of the effort with the resources expended, to ensure that that appropriate return on investment (ROI) is met. This review will be part of the overall review of the use of ISO 21090 data types that will be conducted approximately 12 months after the guidelines are put in practice.

Thomas,

I’ve been retired for some time now but have kept a quiet watch over things that have been happening in the world of heath data standardisation. I stay quiet because I do not wish to intrude into arguments that people in the real world are having.

However, Thomas, I think that what these “Guidelines” from NCI CBIIT suggest is exactly what most IT people working on large health IT projects (or any type of IT project for that matter) think - ITS EASIER AND CHEAPER TO DO IT OUR WAY (rather than trying to use standards) IN ORDER TO GET OUR INTERNAL SYSTEMS UP AND RUNNING. This is a narrow and somewhat selfish approach (some would say justifiable in $ terms) but it achieves internal agendas. I have had some experience with this sort of thinking having worked for the Australian Institute of Health and Welfare and its providers.

I think that these “Guidelines” include any untested standard which, unfortunately, includes openEHR. It’s called throwing the baby out with the bath water.

If the NCI CBIIT go for an “orthodox” solution rather than a “standards” oriented solution, then you are still no closer to implementing yours or anyone else’s standards! And what are the chances that, even if they went with a “standards” approach, they would choose to go with any “standard” that is somewhat untested in such a large system?

From what I’ve seen, it seems to me that openEHR would work well on most levels of health requirements, however, if at least one of the big guys (IT, government, health orgs etc) doesn’t get behind it because of their vested interests or inertia, you are going to be pushing it up hill. I think that a relationship with IHTSDO could be an important one as long as you don’t get subsumed into their agenda rather than pursuing your own.

regards
David Neilsen

Thomas,

I’ve been retired for some time now but have kept a quiet watch over things that have been happening in the world of heath data standardisation. I stay quiet because I do not wish to intrude into arguments that people in the real world are having.

However, Thomas, I think that what these “Guidelines” from NCI CBIIT suggest is exactly what most IT people working on large health IT projects (or any type of IT project for that matter) think - ITS EASIER AND CHEAPER TO DO IT OUR WAY (rather than trying to use standards) IN ORDER TO GET OUR INTERNAL SYSTEMS UP AND RUNNING. This is a narrow and somewhat selfish approach (some would say justifiable in $ terms) but it achieves internal agendas. I have had some experience with this sort of thinking having worked for the Australian Institute of Health and Welfare and its providers.

I think that these “Guidelines” include any untested standard which, unfortunately, includes openEHR. It’s called throwing the baby out with the bath water.

I agree: the same response might be possible with another standard. My question is about the complexity level of the standard in question. In other words, is it possible to imagine that the NCI’s response to a different kind of data types standard might have been something like:

  • the standard appears to be concise and lightweight

  • it will work well with a) other standards that we use b) our existing modelling frameworks

  • it will cost something to implement but not too much

  • our ability to verify the standard from available implementations makes it low-risk

  • our ability to re-use available open source implementation in various languages makes it easy to guarantee its being deployed uniformly across the enterprise

  • it may in fact save us work in the long run, by providing an internal standard toward which to migrate data types that we already use.

If it is not impossible to imagine the above response, then we have to ask: why are the SDOs not instead making concise, lightweight, validated and implemented standards?

If the NCI CBIIT go for an “orthodox” solution rather than a “standards” oriented solution, then you are still no closer to implementing yours or anyone else’s standards! And what are the chances that, even if they went with a “standards” approach, they would choose to go with any “standard” that is somewhat untested in such a large system?

exactly my point :wink:

From what I’ve seen, it seems to me that openEHR would work well on most levels of health requirements, however, if at least one of the big guys (IT, government, health orgs etc) doesn’t get behind it because of their vested interests or inertia, you are going to be pushing it up hill. I think that a relationship with IHTSDO could be an important one as long as you don’t get subsumed into their agenda rather than pursuing your own.

well, let’s say, a significantly augmented agenda needs to be considered…

  • thomas

I agree with Dqavid's points.

The world, unfortunately, is not perfect. Understanding how the ISO data
types standard came into being might be useful in understanding why it is
as it is. After more than 5 years in trying to get a g;obal standard for
data type, a group, lead by Graham Grieve, was able to put together a
combination of documents from ISO, CEN, and HL7. The result was an
overwhelming and certainly more than we need or will probably ever use data
types.

I would be interested in knowing why this standard is considered to be
complex. Is it a result on the large number of data types? Is is a result
of the complexety of some of the data types?

I would be interested in knowing how anyone would change the simplier data
types. It seems to me that most of these "primitive" data types are
exactly wahat we have been using for a long time.

I would suggest that NCI - and others - simply identify what subset of the
datatypes they propose to use and move ahead. On the o0ther hand, that
migtht happen naturally out of the full set. If its\'s too complex or not
useful, it will not be used.

I agree that everyone haveing their own set does not solve the problem. If
any set meets my needs, I don't care what else is in the package.

W. Ed Hammond, Ph.D.
Director, Duke Center for Health Informatics

             Thomas Beale
             <thomas.beale@oce
             aninformatics.com To
             > For openEHR technical discussions
             Sent by: <openehr-technical@openehr.org>
             openehr-technical cc
             -bounces@openehr.
             org Subject
                                       Re: ISO 21090 data types too
                                       complex?
             11/06/2010 11:59
             AM
                                                                           
             Please respond to
                For openEHR
                 technical
                discussions
             <openehr-technica
              l@openehr.org>

hi Tom

David's points are right on the money. The heart of the matter
is "not invented here". A related issue is the fact that the
ISO 21090 data types are optimised for exchange, not storage
(explicitly a statement in their scope), but the NCI scope includes
storage - which raises hard questions about normalization

The implicit message you have is that "therefore openEHR data types are
better", whereas the openEHR data types share pretty much the same
basic shape as the ISO data types in regards to the issues above (in
fact, the overall differences are minor, mainly related to philosophical
issues about modeling philosophy, and a few small ones about requirements)

I use ISO 21090 in my commercial products. My take is somewhat
different than this : it works fine for it's purpose - of course, how
could it be otherwise? It certainly carries complexity, but this is
inherent in the problem space. I do have a personal list of snits
about what I failed to achieve with ISO 21090, which manifest in
practical issues when implementing. But perfection is to be found
in the next life.

Grahame

Hi Ed,

well since you asked … my list of problems, from a cursory examination:

  • The model is defined such that all data types inherit from HXIT and then ANY, which contain 7 attributes specific to HL7v3 messages. This means that any other types, such as BL (Boolean) inherits these attributes. This is a basic modelling error, since the normal approach is to separate context-specific attributes (e.g. specific to the use of data values in messages, but not other uses) into ‘wrapper’ classes. The practical effects of this modelling are twofold:

  • There is not a close correspondence between the 21090 idea of ‘ANY’ and the typical Any/Object or other root class of most object-oriented type systems – this name clash would have to be resolved in some way;

  • an implementation of the 21090 data types is forced to have HL7v3 specific attributes in its base classes, and it also complicates the use of more orthodox modelling for such purposes;

  • alternatively to produce a version of 21090 for use outside of HL7v3, a ‘profile’ of some kind has to be developed by ISO and/or CEN.- It includes ‘types’ for name and address that are really compositional structures, and would normally be considered to be archetypable or otherwise configurable structures consisting of lists, trees etc of primitive types (String, Integer etc); (this problem has been around forever in HL7. I was in CEN meetings in 2002 or 2003 when people were complaining about this. It might make sense for HL7, but it doesn’t in more generic modelling frameworks)

  • It uses a modelling notion called ‘flavours’ defined via ‘common constraint patterns on existing datatypes’, whereby e.g. the timestamp type TS can be constrained to TS.CA.BIRTH, i.e. a variant used in Canada for recording birth dates. The problems with this approach include:

  • is that it is not supported in any standard industry UML or related tools (e.g. Eclipse Modelling Framework); (It is sort of doable in OO languages, but it breaks the normal spirit of OO modelling, and is not conducive to maintainability)

  • class-names containing the ‘.’ character are not legal in most type systems;

  • it is not generally known or understood by IT practitioners;

  • it is not clear how such ‘constrained types’ should be implemented in normal object-oriented development technologies;

  • it mixes the concept of localised constraint that would normally be defined outside of the software, with ‘hard’ data types that would normally be implemented in the software (e.g. TS would normally be implemented in software, but implementing ‘Canadian birthdate’ is likely to make software brittle).- Due to the above problem, date/time types typically needed in clinical data, and archetypes, are defined using types: TS.DATE, TS.DATETIME, although there is no match for the logical type ‘Duration’ or ‘Time’.

  • The error of including context-specific attributes within base types occurs elsewhere in the specification. To give two examples:

  • The type TEL (telecommunications address) includes the attribute ‘useablePeriod’, intended to indicate when the address is useable. Normally such a context attribute would be found within a context specific information structure representing ‘Contact’ or some other typical demographic concept in which not only the date range, but also type / purpose (e.g. ‘business’, ‘home’) might be recorded. 21090 forces it to be in every instance, although it presumably can be empty (as is likely in most instances).

  • The type II (instance identifier) includes the coded attribute ‘reliability’ which indicates whether the identifier was ‘issued by the system’, ‘verified by system’ or ‘unverified by system’.
    The modelling style seems to follow the strange HL7 obsession with non-object orientation, popularised in the RIM. In summary, I don’t see 21090 as being at all appropriate for the title of the standard, which is “Health Informatics — Harmonized data types for information interchange”. Instead, it should just have been called “Data types for HL7-based messaging”. It doesn’t make sense as an ISO standard; it is really an HL7 standard.

  • thomas

Grahame,

hi Tom

David's points are right on the money. The heart of the matter
is "not invented here".

they might well be; my original question was: is this the only possible reaction (these data types are complex, untested and risky); is there no standard that could have been written to get a better reaction? I contend that there is.

A related issue is the fact that the
ISO 21090 data types are optimised for exchange, not storage
(explicitly a statement in their scope), but the NCI scope includes
storage - which raises hard questions about normalization

a few people realise this, but not many. Most think that the title “Health Informatics — Harmonized data types for information interchange” implies interchange between any two layers of software, systems or whatever, and the first thing they do is try to implement these types in their system. I guarantee it is the first thing they do… we have seen the same thing with 13606 and CDA - both designed for exchange, and the first thing people do is to implement them in their systems, where they don’t work properly.

One of my big problems with 21090 is in fact that since it is natural for people to only want to do things once, what should have been specified as an ISO health informatics DT standard should have been:

  • a set of clean, clear core data types - no context information like ‘updateMode’ or null flavour etc.
  • a set of wrapper types designed to use the core types, optimised for messaging
  • other sets of wrapper types as needed, optimised for other specific purposes, e.g. storage or whatever
    This would really have helped. But instead we have almost the exact opposite: a single spec with everything bound in, requiring reverse engineering for use in non-HL7v3 circumstances.

Note that the core types would satisfy the ‘data types for interchange’ need in most cases (e.g. in EN13606). The context specific stuff is specific to HL7 only. It just doesn’t apply elsewhere.

The implicit message you have is that "therefore openEHR data types are
better", whereas the openEHR data types share pretty much the same
basic shape as the ISO data types in regards to the issues above (in
fact, the overall differences are minor, mainly related to philosophical
issues about modeling philosophy, and a few small ones about requirements)

I wasn’t trying to say anything about the openEHR DTs actually, and you are right, they don’t really do anything much different from the 21090 ones. If I was to say something, I would say that they are a lot easier to understand and implement directly into software, because their design is a) context-free and b) more object-oriented.

But I really have no problem with an international standard for shareable data types in e-health that is different from openEHR, or anyone else’s favourite / private model. I just think that 21090 is not it.

I use ISO 21090 in my commercial products. My take is somewhat
different than this : it works fine for it's purpose - of course, how
could it be otherwise? It certainly carries complexity, but this is
inherent in the problem space. I do have a personal list of snits
about what I failed to achieve with ISO 21090, which manifest in
practical issues when implementing. But perfection is to be found
in the next life.

some of which I am aware of, and I am in no way criticising your work on this. But let’s face it, all this ANY and HXIT and AD/ADXP/EN/ENXP are pure HL7 stuff. They are not needed in a core international data types standard. Perfection is not some unattainable thing in the infinite future; most of what counts as imperfect in most standards is the result of rational arguments lost in committees full of people with little competence to understand what is being engineered, or the downstream consequences. Indeed, if we removed that mechanism from standards development alone, the quality of all e-health standards would probably double. Nearly all so-called imperfections are simply own goals and self-injury, and I for one don’t see that as an acceptable state of affairs.

  • thomas

Interesting comments. It is interesting that the ISO standard was approved
by HL7, CEN and ISO.
As to why we fix the problems of ISO 21090 on HL7, someone else will have
to address. As far as I know, HL7 actually does not even vote on ISO
standards. I must admit that I hoped at times the differences could be
resolved. I guess the differences are so fundamental that we can't find a
path to harmonization. Maybe some other group with the biases that we have
can help resolve the situatiuon. I am interested in seeing things brought
together. I think if we don't, neither of us will enjoy success at a level
we would like to see. More importantly, I think we won't meet the
requirements of the global HIT community without trying to find a solution
to the differences. I think, and I know you don't agree, that some of the
differences are matters of opi ion - a different way of doing things., I
am using data types for ISO 21090 without any problems. I may be to dumb
to appreciate the difficulties. I do admit that I am not using every data
type.

In any case, the best to you. I thnk openEHR has made major progress and
is becoming an influential organization. I do enjoy some of the
discussions on this list server. I am, believe it or not, learning some
new things. Thanks to these discussions.

Best. Looking forward to seeing you all in January.

W. Ed Hammond, Ph.D.
Director, Duke Center for Health Informatics

             Thomas Beale
             <thomas.beale@oce
             aninformatics.com To
             > openehr-technical@openehr.org
             Sent by: cc
             openehr-technical
             -bounces@openehr. Subject
             org Re: ISO 21090 data types too
                                       complex?
                                                                           
             11/06/2010 05:36
             PM
                                                                           
             Please respond to
                For openEHR
                 technical
                discussions
             <openehr-technica
              l@openehr.org>
                                                                           
Hi Ed,

well since you asked ... my list of problems, from a cursory examination:
      The model is defined such that all data types inherit from HXIT and
      then ANY, which contain 7 attributes specific to HL7v3 messages. This
      means that any other types, such as BL (Boolean) inherits these
      attributes. This is a basic modelling error, since the normal
      approach is to separate context-specific attributes (e.g. specific to
      the use of data values in messages, but not other uses) into
      ‘wrapper’ classes. The practical effects of this modelling are
      twofold:
            There is not a close correspondence between the 21090 idea of
            ‘ANY’ and the typical Any/Object or other root class of most
            object-oriented type systems – this name clash would have to be
            resolved in some way;
            an implementation of the 21090 data types is forced to have
            HL7v3 specific attributes in its base classes, and it also
            complicates the use of more orthodox modelling for such
            purposes;
            alternatively to produce a version of 21090 for use outside of
            HL7v3, a ‘profile’ of some kind has to be developed by ISO
            and/or CEN.
      It includes ‘types’ for name and address that are really
      compositional structures, and would normally be considered to be
      archetypable or otherwise configurable structures consisting of
      lists, trees etc of primitive types (String, Integer etc); (this
      problem has been around forever in HL7. I was in CEN meetings in 2002
      or 2003 when people were complaining about this. It might make sense
      for HL7, but it doesn't in more generic modelling frameworks)
      It uses a modelling notion called ‘flavours’ defined via ‘common
      constraint patterns on existing datatypes’, whereby e.g. the
      timestamp type TS can be constrained to TS.CA.BIRTH, i.e. a variant
      used in Canada for recording birth dates. The problems with this
      approach include:
             is that it is not supported in any standard industry UML or
            related tools (e.g. Eclipse Modelling Framework); (It is sort
            of doable in OO languages, but it breaks the normal spirit of
            OO modelling, and is not conducive to maintainability)
            class-names containing the ‘.’ character are not legal in most
            type systems;
            it is not generally known or understood by IT practitioners;
            it is not clear how such ‘constrained types’ should be
            implemented in normal object-oriented development technologies;
            it mixes the concept of localised constraint that would
            normally be defined outside of the software, with ‘hard’ data
            types that would normally be implemented in the software (e.g.
            TS would normally be implemented in software, but implementing
            ‘Canadian birthdate’ is likely to make software brittle).
      Due to the above problem, date/time types typically needed in
      clinical data, and archetypes, are defined using types: TS.DATE,
      TS.DATETIME, although there is no match for the logical type
      ‘Duration’ or ‘Time’.
      The error of including context-specific attributes within base types
      occurs elsewhere in the specification. To give two examples:
            The type TEL (telecommunications address) includes the
            attribute ‘useablePeriod’, intended to indicate when the
            address is useable. Normally such a context attribute would be
            found within a context specific information structure
            representing ‘Contact’ or some other typical demographic
            concept in which not only the date range, but also type /
            purpose (e.g. ‘business’, ‘home’) might be recorded. 21090
            forces it to be in every instance, although it presumably can
            be empty (as is likely in most instances).
            The type II (instance identifier) includes the coded attribute
            ‘reliability’ which indicates whether the identifier was
            ‘issued by the system’, ‘verified by system’ or ‘unverified by
            system’.
The modelling style seems to follow the strange HL7 obsession with
non-object orientation, popularised in the RIM. In summary, I don't see
21090 as being at all appropriate for the title of the standard, which is
"Health Informatics — Harmonized data types for information interchange".
Instead, it should just have been called "Data types for HL7-based
messaging". It doesn't make sense as an ISO standard; it is really an HL7
standard.

- thomas

ISO 21090 is a true ISO standard.

It does include a lot of OpenEHR data type specs, except where OpenEHR decided to go their own way.

And in the HL7 space some are working on implementing the ISO 21090 standard in the HL7 models, which is quite a task, not impossible, but a lot of work.

ISO 21090 is based on HL7 input yes, but it is definitely not an HL7 standard.

In particular the Coded Ordinal as in ISO 21090 meets the clinical and research requirement of allowing both computations and code and display text use for the semantics. That is not present in most HL7 v3 standards and will cause some upgrading of most messages.

It (ISO 21090) could have been “more” an OpenEHR standard if OpenEHR had more cooperated in this space instead of reinventing again their own data types.

Met vriendelijke groet,

Results 4 Care b.v.

dr. William TF Goossen
directeur

De Stinse 15
3823 VM Amersfoort
email: wgoossen@results4care.nl
telefoon +31 (0)654614458

fax +31 (0)33 2570169
Kamer van Koophandel nummer: 32133713

Wiliiam,

openEHR ‘cooperating more’ and not ‘reinventing’ would have been impossible without time travel. The openEHR data types were started in 2002, and were in production use in Australia in 2004. Since then nearly all changes have involved refactorings of functions and abstract types. If you doubt this, see the revision history of the spec and also the issue tracker. Computable ordinal for example was in openEHR from the start. When Grahame was doing his work on 21090, the whole openEHR specifications and implementations in 5 languages already existed (and in fact he asked me many things about the openEHR data types at the time, and tried to incorporate some; most were knocked back by his HL7 sponsors). But please let’s be honest about history. And if you want to accuse people of non-cooperation, you are looking the wrong way, everyone knows that.

I still want to know why the 21090 spec is:

  • essentially an HL7 specification - this is obvious by inspection to anyone familiar with this space. No-one could possibly have come up with 21090 as it is today without the starting point being the HL7v3 data types

  • not defined in a normal object-oriented way

  • is only optimised for HL7v3 messaging - which is hardly being used (therefore including multiple attributes not useful to non-messaging users)
    ISO 21090 is a huge missed opportunity.

  • thomas

hi Tom

I'm not going to get into a long debate here about modeling
philosophy. I'll respond with brief points to each of yours, and
then I'll shut up. Other people can take it further if they want.

they might well be; my original question was: is this the only possible
reaction (these data types are complex, untested and risky); is there no
standard that could have been written to get a better reaction?
I contend that there is.

* perhaps, but not a political reality

a few people realise this, but not many. Most think that the title "Health
Informatics — Harmonized data types for information interchange" implies
interchange between any two layers of software, systems or whatever, and the
first thing they do is try to implement these types in their system

and you can. but I wouldn't and don't use them *as is* for persistence. Nor
would I use the OpenEHR data types, and for the same reasons. If I normalised
them, would I use them? Yes, I would and do.

I do agree that users need training to understand how not to use them.
Perhaps, one day, I shall write a book about that. But this is also true
for openEHR, though perhaps less true.

a set of clean, clear core data types - no context information like
'updateMode' or null flavour etc.

and mostly the first thing people do is profile this right out. Which
NCI have done, btw.

The context specific stuff is specific to HL7 only. It just doesn't apply elsewhere.

not at all. And I'm surprised you still think this. HXIT is to do with capturing
and managing foreign data. As is some of the II stuff. It doesn't and won't
arise in an EHR system for internal data, but it will for imported data. So
where it does arise is not HL7 specific.

Flavors are a ISO 21090 thing. And optional - they aren't in the schema,
for instance.

Update mode is transactional. Almost everybody will profile it out.

The model is defined such that all data types inherit from HXIT and
then ANY, which contain 7 attributes specific to HL7v3 messages.

no., specific to messy data and/or transactions. Putting them
there certainly has problems, but it has benefits too.

There is not a close correspondence between the 21090 idea of
‘ANY’ and the typical Any/Object or other root class of most
object-oriented type systems – this name clash would have to be resolved in some way;

It appears I will have to keep repeating this until I am blue in the face.
It is not a name clash, nor does it (or should it) correspond to a root class
in any other system - it is it's own class. The fact you think this indicates
that you are totally confused as to what ISO 21090 is. (Hint: look at how you
modeled your own data types...)

HL7v3 specific attributes in its base classes complicates the use of more orthodox modeling for such purposes;

absolutely. If you modeled handling those things elsewise, it
complicates matters.

alternatively to produce a version of 21090 for use outside of HL7v3, a
‘profile’ of some kind has to be developed by ISO and/or CEN.

it's not hard to do, it's anticipated, it's widely done. And we should
do it for CEN.
I was going to collaborate with Dipak to do exactly that, but we
haven't got around
to it.

It includes ‘types’ for name and address that are really compositional
structures, and would normally be considered to be archetypable

so, archetype them. We expect it to be done. I fail to see your issue here.

It uses a modelling notion called ‘flavours’ defined via ‘common constraint
patterns on existing datatypes’, which is not supported in any standard
industry UML or related tools (e.g. Eclipse Modelling Framework);

no. It's just design by contract. When they give us real design by contract
tools, then we'll be able to leverage that. In the mean time, it's a way to give
the designers a fantasy that they are making meaningful statements that
will be ignored in real life. Of course you don't like that (can you guess
that I don't either?).

there is no match for the logical type ‘Duration’ or ‘Time’.

PQ.Time, or PQ with a unit of time

The type TEL (telecommunications address) includes the attribute
‘useablePeriod’, intended to indicate when the address is useable.

I agree. it would be better elsewhere. But it's not a big deal is it?

The type II (instance identifier) includes the coded attribute ‘reliability’
which indicates whether the identifier was ‘issued by the system’,
‘verified by system’ or ‘unverified by system’.

yes, which turns out to be useful and important (even for openEHR,
outside identifiers managed by openEHR. I guess it will come up
eventually). You could put it somewhere else, but it's going to have
to go somewhere.

The modelling style seems to follow the strange HL7 obsession
with non-object orientation, popularised in the RIM.

which indicates that you don't understand the RIM or the data types,
and how they differ.

Grahame

I don’t know if anyone in this group falls into this category. Often it is not possible for those who want to participate to be able to do so. This may be because of time constraints (they get paid to do a job, not attend standards meetings) or they or the organisation that they work for cannot come up with a) affiliation fees b) numerous plane tickets c) many nights in expensive accommodation. It has been my observation that only those with the freedom and the resources to attend meetings get their ideas seriously considered.

This sort of comment from William is not helpful in any genuine discussion of standards.

regards
David Neilsen

It is not clear to me that Tom's remarks help either. HL7 had data types
very early. That is not the point. The issue is is there anything in the
future we can agree and work togwether. Unfortunately, I have come to the
conclusion we cannot not, and as a result we shall let the market make
those decisions at a price all of us pay. HL7 v4 is in even less use than
v3 at this time. I would say in the US, v2 is a huge success. If we play
mine is bigger than yours we all lose. I agree with Graham. Let's move on
to another topic. It's business as usual.

David I would hope you and others like you could help us resolve some of
the issues. Maybe the differences in approach, philosopy and organization
prevent working together. No one argues that HL7 is perfect - far from it.
But that is a result of the fact that those standards are produced in an
open process in which decisions are made by many. As a result, HL7
standards usually include something that someone does not like. However, I
think the alternatives are worse.

My prediction is that we need to be concerned that the world will move
forward without either organization playing a significant role. Technology
changes are already refocusing on what is important.

I'd love to see us pick a point in the future and work together to produce
useful standards. I actually extend this conversation to all of today's
SDOs. HL7 meets in Sidney in January. That provides an opportunity to
discuss some of these issues - perhaps with our members and not just the
leaders of the organizations.

Last post.

Ed

W. Ed Hammond, Ph.D.
Director, Duke Center for Health Informatics

             David
             <dneilsen@bigpond
             .net.au> To
             Sent by: For openEHR technical discussions
             openehr-technical <openehr-technical@openehr.org>
             -bounces@openehr. cc
             org
                                                                   Subject
                                       Re: ISO 21090 data types too
             11/07/2010 07:37 complex?
             AM
                                                                           
             Please respond to
                For openEHR
                 technical
                discussions
             <openehr-technica
              l@openehr.org>
                                                                           
I don't know if anyone in this group falls into this category. Often it is
not possible for those who want to participate to be able to do so. This
may be because of time constraints (they get paid to do a job, not attend
standards meetings) or they or the organisation that they work for cannot
come up with a) affiliation fees b) numerous plane tickets c) many nights
in expensive accommodation. It has been my observation that only those
with the freedom and the resources to attend meetings get their ideas
seriously considered.

This sort of comment from William is not helpful in any genuine discussion
of standards.

regards
David Neilsen

Dear Ed,

Thanks for your clear and frank contribution to this discussion. Although I don’t always agree with the boldness of Tom’s remarks and I’m one of those people with ‘little competence’ (although I tent to think that I understand what is being engineered), I can understand his frustration as well. It’s difficult if you try to reach something that you feel is being blocked just because people don’t see what you’re doing and as a result they choose somethings that looks sufficient today…

Looking through this frustration, wouldn’t you agree that an ideal international standard on datatypes should be about

  • a set of clean, clear core data types
  • a set of wrapper types designed to use the core types, optimised for messaging
  • other sets of wrapper types as needed, optimised for other specific purposes, e.g. storage or whatever
    If no, how would your ideal standard look like?

If yes, how could we go about to establish this is the near future?

Cheers,

Stef

It looks like we’re getting to the heart of the matter here…

What I really would like to know from the others what their opinion’s on these subjects are?

If it indeed turns out to be true that Tom don’t understand how datatypes, RIM or data types are working, we, as the openEHR community, should ask him to shut up. If not we should find better ways to get the message across…

Cheers,

Stef

hi Tom

The context specific stuff is specific to HL7 only. It just doesn’t apply elsewhere.

not at all. And I’m surprised you still think this. HXIT is to do with capturing
and managing foreign data. As is some of the II stuff. It doesn’t and won’t
arise in an EHR system for internal data, but it will for imported data. So
where it does arise is not HL7 specific.

Flavors are a ISO 21090 thing. And optional - they aren’t in the schema,
for instance.

Update mode is transactional. Almost everybody will profile it out.

There is not a close correspondence between the 21090 idea of

‘ANY’ and the typical Any/Object or other root class of most

object-oriented type systems – this name clash would have to be resolved in some way;

It appears I will have to keep repeating this until I am blue in the face.
It is not a name clash, nor does it (or should it) correspond to a root class
in any other system - it is it’s own class. The fact you think this indicates
that you are totally confused as to what ISO 21090 is. (Hint: look at how you
modeled your own data types…)

I second that!!

Carol

Dra Carola Hullin Lucay Cossio
Presidente of IMIA-LAC
PhD Health Informatics
www.imia-lac.net
+5628979701 Chile

Ed,

we are indeed forced to move on, business as usual. Sadly, business as usual in this domain has become an endless painful trip of having to deal with difficult standards, when much better ones could have been built. This email thread has indicated the basis of the 21090 specification being the way it is: politics and design-by-committee. How we could think that was acceptable I just don’t know. I happen to think the alternatives are better, and I don’t mean openEHR, I just mean doing some clean, clear modelling. If the 21090 standard’s scope is really just messaging, as Grahame indicates, then we should in fact produce a new standard that is actually a clean set of data types, and leave 21090 for HL7 users.

Here is a little parable: OMG took over UML about 12 years ago, and then some years later decided to upgrade the specifications to 2.0. They created two massive documents, the ‘Infrastructure’ and the ‘Superstructure’. Very respected experts I have met walked out of these committees due to this insanely over-engineered (committee) work. As a concomitant, XMI 2.0 was also horrible. Yes, some tool-vendors managed to support it, but mostly unreliably, and it is not really their fault. The industry response in the end was to stop fighting with these over-complicated specifications, and create something people could actually work with: Eclipse Modelling Framework, and Ecore. The Ecore model replaces XMI. The latter will be dead in less than 5 years I predict.

I happen to think that a clean set of core clinical data types, modelled in a proper object-oriented way, and free of particular context attributes from particular message or other deployment frameworks could be standardised. There was talk of actually doing this seriously about 5y ago. Then politics took over, and we ended up in the mess we are in today. Maybe I am foolish for wanting to make progress, rather than win any races. But I remain interested in implementability, quality, and safety. My apologies for that.

  • thomas

Hi Ed

I too appreciate your willingness to take part in these discussions.

I think that rather than fire broadsides, we need to see where we can usefully meet. I have been attending the HL7 WGMs over the last 18 months to try to get more of an understanding of how we can usefully work together and I am coming to the conclusion that there is a place where openEHR and HL7 can usefully work together without having to compromise everyone’s principles.

HL7 has been working on ways of trying to develop reuseable clinical content - through clinical statements, templates, cmets, DAMs etc etc and now looking at ‘DCMs’. One of the things that openEHR undeniably does well is the ability to define clinical content in a clinician friendly way through Archetypes but in a way that is also computable. The Clinical Knowledge Manager has enabled hundreds of clinicians and informaticians to work on the clinical content through a web 2.0 approach.

Now - while these artefacts are openEHR artefacts, because they are rich and computable, they can be used to transform into RIM based artefacts and instances. With some more work, I am sure that these could be a useful source of governed clinical content for the HL7 work. I believe that this is the only sensible approach going forward with the DCM idea inside HL7 and avoids reinventing the wheel.

I am sure that this is technically possible, but the main issue here is the political one - we need to move beyond the personal issues and disinformation on both sides to have any chance of succeeding.

regards Hugh

Stef et al,

In response to Stef's plea for others' opinions, I'd like to add my voice to Tom's concerns.

I certainly believe that the whole ISO process with respect to health informatics standards is deeply flawed. As Grahame implies with the datatypes standard, the process is politically driven and compromises in modelling, engineering, safety, implementability inevitably occur. The question is how significant are these compromises and what effect will they have on the evolution of e-health?

It is highly unlikely that we would have an ISO standard for "Health Informatics - Harmonized data types for information interchange" without the monumental effort of Grahame Grieve in producing and managing the draft. However, it is, first and foremost, an HL7 flavoured standard. The most recent draft I have seen is, according to its forward, "a shared document between Health Level Seven (HL7) and ISO". ISO 21090 is undoubtedly complex. One has to question the value of an international standard, if it is so complex that it has to be 'profiled' by different organisations before it can be used. By whom, for what purposes, and by what processes, will such profiling be managed?

ISO 21090 suffers some of the significant flaws that permeate much of HL7 specifications. Tom has already cited the peculiar inheritance hierarchy amongst others. Another engineering flaw is the pervasive use of cryptic, often ad hoc enumerations. Even the names of the types wouldn't pass muster in most quality engineering schools. Names like ENP, HXIT, CO, EN, EN.TN, CD.CV, URG are simply inexcusable. Levels of indirection never aid readability, and lead to difficulty in implementation and testing.

It is not necessarily sensible to compare openEHR datatypes with ISO 21090. They are designed for different purposes. openEHR datatypes underpin openEHR's reference implementation and archetype object models for building electronic health record software and so can be augmented by these additional artefacts, as described below. The ISO datatypes should be able to stand on their own in a diverse range of implementation environments. This is a much harder task, and bumps up against fundamental principles of information exchange, whereby the assumptions of participating systems need to be carefully considered. Contraints and constraint mechanisms are pivotal here.

A datatype embodies the "agreed" set of values and operations pertaining to that type. If an item of received data "211414" has been denoted to be of type integer, then the receiving system "knows" how to process it, and will process it differently than if it had been denoted as a date ( AKA TS.DATE in HL7/ISO/DIS 21090 HI-HDTII ). Healthcare includes a very rich vocabulary, and text-based value sets are common in information exchange. A datatype for coded text, say, needs to convey the agreed set of values of that type. Let's firstly consider values for "severity of adverse reaction to medication". Ideally, both a sending and a receiving system needs to agree on the set of values - and may behave sub-optimally if one system uses the set { "undetectable", "mild", "moderate" } and the other uses the set { "mild", "moderate", "severe", "extreme", "almost inevitably fatal" } , even if these values all came from the same terminology. In other words, the sending and receiving system are not actually using the same datatypes in this case.

How do we deal with this in real systems? The United Kingdom's Connecting for Health program has addressed this in their HL7 V3 - based models by carrying the constraint within the datatype - in the coding scheme's identifier. So rather than say the values come from some specific version of SNOMED CT, they constrain the values to a specific subset using a Refset Identifier. And this can be carried in instance data.

Now whilst ISO 21090 is capable of constraining text-based value sets, such constraints are often done by other means - particularly through conformance statements in non-computable documents, most notably HL7 CDA Implementation Guides. We are seeing plenty of this in the US, as a result of their Meaningful Use provisions. In these cases, the datatype does not necessarily carry the constraint. It almost invariably doesn't. This means that in such transactions, the receiving system has no way of knowing the true datatype - i.e. the set of values - for each such data item. The only way for such constraints to be known to the receiving system is through access to HL7 templates - thus violating THE principal tenet of HL7's RIM-based information exchange paradigm.

This leads on to one of William Goosen's favourite topics - that of Coded Ordinals. These have been introduced in ISO 21090 to meet the needs, often encountered in patient assessment forms, whereby weights are given to descriptive phrases to indicate the scope of functionality a patient has to perform, say, activities of daily living (e.g. Barthel Index). The weights can be used to derive an accumulated score for a collection of individual activities. Unfortunately, ISO 21090 can't actually provide for this use case via the CO ( that's code for Coded Ordinal ) datatype, because it has no way of denoting the set of allowed values. Such a set might look like

[ { 0 , "unable"}, { 5, "needs help (verbal, physical, carrying aid" }, {10, "independent"}]

i.e. a set of pairs of weights and phrases. A coded ordinal only describes one value, not the set of permissable values! Now, of course it would be possible to specify these sorts of sets, and to publish them for use in clinical systems and information exchange. My point is that ISO 21090 doesn't support such a type and there currently is not a mechanism for this within HL7 - the primary standard for communicating clinical information. Even after all these years! I'd like to know how William, for one, hopes to solve this problem? Perhaps Ed Hammond has a solution in mind?

So I contend that ISO 21090 cannot solve the typing problem on it's own. Other components are required. And this questions (and always has questioned) the scope of an ISO standard.

One of the many beauties of openEHR is that it long ago recognised the need for a computable constraint mechanism that can help solve these problems. It not only recognised the need, but it has produced excellent specifications that marry datatypes, an information model, a constraint-based archetype object model, and a companion syntax language(ADL) for archetype serialisation. And particularly to Tom Beale's credit, it did so through a well-engineered process that has produced a set of coherent, implementable artefacts for which the health informatics community should be immensely grateful. And it did so openly and for free to the community.

People who question the quality, safety, implementability, suitability of clinical information artefacts should never be characterised as merely "taking broadsides" at another organisation, whoever that may be. There are far too few people of ability and commitment for that . Their skills and commitment are sorely needed. The others can go off and sit in their committees to compromise/compromize and harmonise/harmonize.

- eric

HL7, ISO and CEN standards all bear the hallmarks of design by committee -

  • compromise which in my opinion is the result of allowing for legacy systems and attempting to be everything for everyone
  • compromise leads to complexity
  • complexity results in misunderstandings (trying to work through the HL7 acronym alphabet soup) and sanctioned non-conformance (if you can just “profile it out” how can it be a standard)
  • the biggest players have the vast majority of resources that can be applied to development and committee work which results in an unbalanced outcome (market forces).

The vehemence with which some have replied to Thomas’ initial comments might be indicative of attachments to and defence of ones life work. This is understandable but also tends to get in the way of learning, innovation and progress.

There is no way around implementing standards without spending copious amounts of money. Certainly more than what could be achieved without implementing standards. Compromise because of legacy systems saves money (read competitive advantage) but won’t achieve universal implementation of standards. Not everybody has a vested interest in the same legacy system. Complexity is never helpful and leads to true non-conformance.

Some have said that market forces should determine the outcomes of standards development. I think that standards, per se, are anti-competitive in that their use reduces differences that can be marketed as “new and improved”. Perhaps irrelevantly (or is that irreverently) market forces led to ENRON and the GFC.

I think it’s unfortunate that an idea as simple and robust as openEHR can’t make any headway because of market forces. Politics plays too big a role in global standards development. Also unfortunately I can’t see that changing.

I’ll shut up now and leave you all in peace

regards
David Neilsen