In what sounds like a horror story, the crash of as many as
45,000 computer systems is predicted as the year 2000
dawns.1 Awareness is now growing of the problems posed by
the millennium for computer systems, which is caused by the way that
these systems handle dates. For all industries worldwide to correct
their date handling before 2000 may cost as much as $600bn
(£400bn).2 Clinical information systems represent a
proportion of this problem, and those responsible for them need to take
steps now to ensure that they do not fail in three years' time.
The millennium problem is the result of a shortcut often taken by those
implementing computer systems to save memory or disk space. The
shortcut is to truncate the four digits of a year to two - 1997 is
shortened to 97. Calculating with truncated years which span the
millennium gives incorrect results - for example, someone born in 1999
becomes -99 years old, not 1. A more insidious error is that
comparison of pre with post- millennium truncated years may not be
correct, and consequently age, period, and date related functions - such
as child health checks and recalls for cervical smears - may fail to
work properly.3 Other problems may be that computers will
incorrectly date files,4 computer clocks will reset to
incorrect years,5 and files created after 1999 may be
purged automatically.
Unfortunately there is no easy way of detecting which systems have the
problem or of fixing it. Year truncation is particularly prevalent in
systems developed in third generation languages such as cobol,
fortran, C, basic, or mumps. Even if designs may have
specified four digit years and been documented as such, individual
programmers may have consistently or inconsistently truncated dates
during implementation. Programmers may have added the numerical
constant 1900 or prefixed the string "19" to offset truncated dates
in systems with full and truncated dates, so obscuring the problem on
casual scrutiny. Newer clinical information systems using database
management systems should be less prone to date
truncation,5 but even many of these inherited
specifications or data from earlier systems using truncated years and
may therefore also have truncated dates.
Fixing the problem will probably demand manual, line by line inspection
of source programs to identify truncated years and other forms of
inadequate date handling. All this requires expert knowledge of the
software, is time consuming, and not amenable to
automation.6 The work itself has considerable potential to
introduce a new wave of software defects,6 and managing
projects to carry out the necessary work may cost more than the work
itself.4 Finding source programs may prove impossible for
some clinical information systems, and these may have to be abandoned.
Although estimating the size of the problem for clinical information
systems is virtually impossible, at least 25,000 individual systems of
at least 500 different types are probably routinely used in Britain.
Any system written in a third generation language - and there are
many - is highly suspect, while those written in database management
systems are less suspect but still need to be cleared. Assurance of
correct date handling is especially important when patient safety might
be compromised3 or large financial losses are
possible - for example, in contract datasets.
Unhappily, there are no benefits to the expense of meeting the
millennium other than maintaining continuity of operation and ensuring
patient safety. It is, however, work which must be done, and done soon.
M F Smith
Department of General Practice and Primary Care,
St Bartholomew's and the Royal London Hospital's School of Medicine
and Dentistry,
London EC1M 6BQ
References
1 Reeve S, Adams J, Davison J. Millennium meltdown.
Sunday Times 1996; Jun 9:10.
2 Geppert L. Fresh dates are giving computers indigestion.
IEEE Spectrum 1996; May:75.
3 Smith M F. Are clinical information systems safe?
BMJ 1994;308:612.
4 Alexander S. Will client/server skip the millennium?
Network News 1996; Jun 12:13.
5 Bloor R. Millennium mayhem. DBMS Magazine 1996;
Jun:5.
6 McCabe T. Cyclomatic complexity and the year 2000. IEEE
Software 1996; May:115-7.