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:
          o 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;
          o 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;
          o 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:
          o 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)
          o class-names containing the '.' character are not legal in
            most type systems;
          o it is not generally known or understood by IT practitioners;
          o it is not clear how such 'constrained types' should be
            implemented in normal object-oriented development technologies;
          o 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:
          o 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).
          o 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
*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20101106/db2056a9/attachment.html>

Reply via email to