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 at oce
aninformatics.com To
> openehr-technical at openehr.org
Sent by: cc
openehr-technical
-bounces at 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 at 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
On 06/11/2010 18:39, William E Hammond wrote:
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
_______________________________________________
openEHR-technical mailing list
openEHR-technical at openehr.org
http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical