Chris Munt :: State Of Play In the NHS

36 %
64 %
Information about Chris Munt :: State Of Play In the NHS

Published on September 28, 2007

Author: george.james

Source: slideshare.net

The state of play in NHS IT Chris Munt Cherylin Fletcher Royal Marsden NHS Trust

Agenda: Part I Healthcare IT A local view IT at the RMH Cherylin Fletcher (Deputy Director of IT at RMH)

Healthcare IT

A local view

IT at the RMH

Cherylin Fletcher

(Deputy Director of IT at RMH)

Agenda: Part II Caché at the RMH Building a successful IT infrastructure to support heathcare applications Chris Munt

Caché at the RMH

Building a successful IT infrastructure to support heathcare applications

Chris Munt

RMH IT – History (80s) Department formed in early 1980s General hospital IT Research One of the first UK customers for DSM DEC PDPs Moved to M11+ and MVX in mid 80s Operational Systems DEC PDPs – 11/70, 11/44 Research system (epidemiology, analysis) DEC VAX 11/750

Department formed in early 1980s

General hospital IT

Research

One of the first UK customers for DSM

DEC PDPs

Moved to M11+ and MVX in mid 80s

Operational Systems

DEC PDPs – 11/70, 11/44

Research system (epidemiology, analysis)

DEC VAX 11/750

RMH IT – History (80s) First applications – the basics Patient Master Index Basic pathology (Chemistry, Haematology) Admissions and Outpatients Third party pharmacy system Clinical Research System (CRS) Significant hardware upgrade late 80s VAX 8530

First applications – the basics

Patient Master Index

Basic pathology (Chemistry, Haematology)

Admissions and Outpatients

Third party pharmacy system

Clinical Research System (CRS)

Significant hardware upgrade late 80s

VAX 8530

RMH IT – History (90s) Seduced by cost/performance of RISC based architecture Migrate from VAX/VMS to HPUX on HP hardware Switched to Micronetics MUMPS (MSM) Later switched back to InterSystems M (ISM) Further applications Towards a complete PAS and HIS Radiology and other clinical systems

Seduced by cost/performance of RISC based architecture

Migrate from VAX/VMS to HPUX on HP hardware

Switched to Micronetics MUMPS (MSM)

Later switched back to InterSystems M (ISM)

Further applications

Towards a complete PAS and HIS

Radiology and other clinical systems

RMH IT – History (00s) Turbulent times ahead National Programs on the horizon Poor image of M-based systems in NHS Despite the fact that they delivered (and many are still doing so now!) Experimented with various standard RDBMS Further third party departmental systems introduced Standardized core on InterSystems Caché Natural ‘best fit’ successor to our M-based systems. Caché 5 on IBM AIX Development machine Operational machine + Shadow

Turbulent times ahead

National Programs on the horizon

Poor image of M-based systems in NHS

Despite the fact that they delivered (and many are still doing so now!)

Experimented with various standard RDBMS

Further third party departmental systems introduced

Standardized core on InterSystems Caché

Natural ‘best fit’ successor to our M-based systems.

Caché 5 on IBM AIX

Development machine

Operational machine + Shadow

RMH IT – Architecture 1980s: Terminal based applications Serial lines to server 1990s: Migrating to Windows/GUI Terminals replaced with PC workstations Workstations networked (LAT then TCP) VB applications Using an adaptor to M (developed in-house) Used telnet to M and TCP sockets when they became available Likely to be one of the first service oriented (non-ODBC) connectors between VB and M Later applications used HTTP over WebLink

1980s: Terminal based applications

Serial lines to server

1990s: Migrating to Windows/GUI

Terminals replaced with PC workstations

Workstations networked (LAT then TCP)

VB applications

Using an adaptor to M (developed in-house)

Used telnet to M and TCP sockets when they became available

Likely to be one of the first service oriented (non-ODBC) connectors between VB and M

Later applications used HTTP over WebLink

RMH IT – Architecture 2000s: Migrating to the Web All workstations networked (TCP) Visual InterDev with VB ASP.Net Using WebLink and CSP as the transport Web services in CSP Proprietary protocols over HTTP

2000s: Migrating to the Web

All workstations networked (TCP)

Visual InterDev with VB

ASP.Net

Using WebLink and CSP as the transport

Web services in CSP

Proprietary protocols over HTTP

RMH IT – Development Early systems Hand-crafted M code Needed to improve quality, resilience and maintainability Various experiments with code generators Tools for screen design Developed ETHOS toolkit E x T ended H igher O rder S oftware HOS (Higher Order Software) + SQL/RDBMS HOS: Programming environment SQL/RDBMS: Added to the HOS environment to make ETHOS in mid-80s Likely to be first SQL implementation for M

Early systems

Hand-crafted M code

Needed to improve quality, resilience and maintainability

Various experiments with code generators

Tools for screen design

Developed ETHOS toolkit

E x T ended H igher O rder S oftware

HOS (Higher Order Software) + SQL/RDBMS

HOS: Programming environment

SQL/RDBMS: Added to the HOS environment to make ETHOS in mid-80s

Likely to be first SQL implementation for M

ETHOS: HOS Component What is it? Mathematically verified Functional Programming Environment Underlying Mathematics by Margaret Hamilton and Saydean Zeldin A Methodology for Defining Software Developed for the Apollo and Skylab programs Graphical tree-based representation of functions Partial functions with plug-in points Defined Structures

What is it?

Mathematically verified Functional Programming Environment

Underlying Mathematics by Margaret Hamilton and Saydean Zeldin

A Methodology for Defining Software

Developed for the Apollo and Skylab programs

Graphical tree-based representation of functions

Partial functions with plug-in points

Defined Structures

ETHOS: HOS Component Benefits? Integrity of tree structures checked for self consistency and correctness Interfaces verified Referential transparency Self documenting Tree nodes separate the ‘what’ from the ‘how’ of an operation Generates bug-free code

Benefits?

Integrity of tree structures checked for self consistency and correctness

Interfaces verified

Referential transparency

Self documenting

Tree nodes separate the ‘what’ from the ‘how’ of an operation

Generates bug-free code

ETHOS Higher Order Software Some Examples

Higher Order Software

Some Examples

ETHOS tree: Calculate Age

ETHOS tree: Embedded SQL

ETHOS tree: Embedded SQL

ETHOS tree: Recursion

ETHOS tree: Using Libraries

ETHOS: SQL/RDBMS Component What is it? SQL with extensions ETHOS functions can be embedded in SQL and vice versa Sequences Complex derivations Best of Caché incorporated (e.g. pattern match) Comprehensive Data Model Definition of Entities (tables/classes) and Attributes (fields/properties) ETHOS Entity == RDBMS Table == Caché class Derived attributes and tables Inheritance and polymorphism Full referential actions (e.g. maintenance of referential integrity)

What is it?

SQL with extensions

ETHOS functions can be embedded in SQL and vice versa

Sequences

Complex derivations

Best of Caché incorporated (e.g. pattern match)

Comprehensive Data Model

Definition of Entities (tables/classes) and Attributes (fields/properties)

ETHOS Entity == RDBMS Table == Caché class

Derived attributes and tables

Inheritance and polymorphism

Full referential actions (e.g. maintenance of referential integrity)

ETHOS: SQL/RDBMS Component Benefits? High level of abstraction Object-relational characteristics Derived supersets maintained in real time Data warehouse Rich environment for data analysis Support for research Multiple access paths to same data SQL accessible Cache classes maintained in parallel ETHOS SQL Caché SQL Caché Objects M Globals

Benefits?

High level of abstraction

Object-relational characteristics

Derived supersets maintained in real time

Data warehouse

Rich environment for data analysis

Support for research

Multiple access paths to same data

SQL accessible Cache classes maintained in parallel

ETHOS SQL

Caché SQL

Caché Objects

M Globals

ETHOS SQL and Data Model Some Examples of Entity Definitions

SQL and Data Model

Some Examples of Entity Definitions

ETHOS Entity: PATIENT Base Table: Primary View SELECT PAT-NUM, PAT-NAM, ADDRESS, D-REG, T-REG, D-BIRTH, AGE, D-LAST-ADM FROM [BASE-TABLE] DECLARE PAT-NUM ::= BT ; DECLARE PAT-NAM ::= BT ; DECLARE ADDRESS ::= BT ; DECLARE D-REG ::= BT <- DATE.VALUE ; DECLARE T-REG ::= BT <- TIME.VALUE ; DECLARE D-BIRTH ::= BT <- DATE.VALUE ; DECLARE AGE ::= SV <= AGE:LX(D-BIRTH) ; DECLARE D-LAST-ADM ::= HV <= GET_LAST_ADM_DATE:LX( F:ADMISSION, PAT-NUM) <- DATE.VALUE ;

Base Table: Primary View

SELECT PAT-NUM, PAT-NAM, ADDRESS, D-REG, T-REG, D-BIRTH, AGE,

D-LAST-ADM

FROM [BASE-TABLE]

DECLARE PAT-NUM ::= BT ;

DECLARE PAT-NAM ::= BT ;

DECLARE ADDRESS ::= BT ;

DECLARE D-REG ::= BT <- DATE.VALUE ;

DECLARE T-REG ::= BT <- TIME.VALUE ;

DECLARE D-BIRTH ::= BT <- DATE.VALUE ;

DECLARE AGE ::= SV <= AGE:LX(D-BIRTH) ;

DECLARE D-LAST-ADM ::= HV <= GET_LAST_ADM_DATE:LX(

F:ADMISSION,

PAT-NUM)

<- DATE.VALUE ;

ETHOS Entity: DATE Superclass of all attributes of type ‘DATE’ Base Table: Primary View SELECT VALUE, ENCODE, DECODE FROM [BASE-TABLE] DECLARE VALUE ::= SV ; DECLARE ENCODE ::= SV <= ENCODE_DATE:LX(:DECODED-DATE) ; DECLARE DECODE ::= SV <= DECODE_DATE:LX(:ENCODED-DATE) ;

Superclass of all attributes of type ‘DATE’

Base Table: Primary View

SELECT VALUE, ENCODE, DECODE

FROM [BASE-TABLE]

DECLARE VALUE ::= SV ;

DECLARE ENCODE ::= SV <= ENCODE_DATE:LX(:DECODED-DATE) ;

DECLARE DECODE ::= SV <= DECODE_DATE:LX(:ENCODED-DATE) ;

ETHOS Entity: ADMISSION Base Table: Primary View SELECT PAT-NUM, D-ADM, T-ADM, WARD FROM [BASE-TABLE] DECLARE PAT-NUM ::= BT ; DECLARE D-ADM ::= BT <- DATE.VALUE ; DECLARE T-ADM ::= BT <- TIME.VALUE ; DECLARE WARD ::= BT <- WARD.WARD-ID ;

Base Table: Primary View

SELECT PAT-NUM, D-ADM, T-ADM, WARD

FROM [BASE-TABLE]

DECLARE PAT-NUM ::= BT ;

DECLARE D-ADM ::= BT <- DATE.VALUE ;

DECLARE T-ADM ::= BT <- TIME.VALUE ;

DECLARE WARD ::= BT <- WARD.WARD-ID ;

ETHOS Entity: DIAGNOSTICS Base Table: Primary View SELECT PAT-NUM, D-TEST, T-TEST, TEST-ID, RESULT FROM [BASE-TABLE] DECLARE PAT-NUM ::= BT ; DECLARE D-TEST ::= BT <- DATE.VALUE ; DECLARE T-TEST ::= BT <- TIME.VALUE ; DECLARE TEST-ID ::= BT <- LAB-TEST.TEST-ID ; DECLARE RESULT ::= BT ;

Base Table: Primary View

SELECT PAT-NUM, D-TEST, T-TEST, TEST-ID, RESULT

FROM [BASE-TABLE]

DECLARE PAT-NUM ::= BT ;

DECLARE D-TEST ::= BT <- DATE.VALUE ;

DECLARE T-TEST ::= BT <- TIME.VALUE ;

DECLARE TEST-ID ::= BT <- LAB-TEST.TEST-ID ;

DECLARE RESULT ::= BT ;

ETHOS Entity: EVENTS Derived Table: Primary View SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE FROM [BASE-TABLE] DECLARE PAT-NUM ::= BT ; DECLARE D-EVENT ::= BT <- DATE.VALUE ; DECLARE T-EVENT ::= BT <- TIME.VALUE ; DECLARE KEYS ::= BT ; DECLARE EVENT-TYPE ::= BT ;

Derived Table: Primary View

SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE

FROM [BASE-TABLE]

DECLARE PAT-NUM ::= BT ;

DECLARE D-EVENT ::= BT <- DATE.VALUE ;

DECLARE T-EVENT ::= BT <- TIME.VALUE ;

DECLARE KEYS ::= BT ;

DECLARE EVENT-TYPE ::= BT ;

ETHOS Entity: EVENTS (1) Derived Table: Secondary View 1 (Contribution from PATIENT) SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE FROM PATIENT DECLARE PAT-NUM ::= HV <= PATIENT.PAT-NUM ; DECLARE D-EVENT ::= HV <= PATIENT.D-REG ; DECLARE T-EVENT ::= HV <= PATIENT.T-REG ; DECLARE KEYS ::= HV <= K:PATIENT ; DECLARE EVENT-TYPE ::= HV <= &quot;REGISTRATION&quot; ;

Derived Table: Secondary View 1 (Contribution from PATIENT)

SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE

FROM PATIENT

DECLARE PAT-NUM ::= HV <= PATIENT.PAT-NUM ;

DECLARE D-EVENT ::= HV <= PATIENT.D-REG ;

DECLARE T-EVENT ::= HV <= PATIENT.T-REG ;

DECLARE KEYS ::= HV <= K:PATIENT ;

DECLARE EVENT-TYPE ::= HV <= &quot;REGISTRATION&quot; ;

ETHOS Entity: EVENTS (2) Derived Table: Secondary View 2 (Contribution from ADMISSION) SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE FROM ADMISSION DECLARE PAT-NUM ::= HV <= ADMISSION.PAT-NUM ; DECLARE D-EVENT ::= HV <= ADMISSION.D-ADM ; DECLARE T-EVENT ::= HV <= ADMISSION.T-ADM ; DECLARE KEYS ::= HV <= K:ADMISSION ; DECLARE EVENT-TYPE ::= HV <= &quot;ADMISSION&quot; ;

Derived Table: Secondary View 2 (Contribution from ADMISSION)

SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE

FROM ADMISSION

DECLARE PAT-NUM ::= HV <= ADMISSION.PAT-NUM ;

DECLARE D-EVENT ::= HV <= ADMISSION.D-ADM ;

DECLARE T-EVENT ::= HV <= ADMISSION.T-ADM ;

DECLARE KEYS ::= HV <= K:ADMISSION ;

DECLARE EVENT-TYPE ::= HV <= &quot;ADMISSION&quot; ;

ETHOS Entity: EVENTS (3) Derived Table: Secondary View 3 (Contribution from DIAGNOSTICS) SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE FROM DIAGNOSTICS DECLARE PAT-NUM ::= HV <= DIAGNOSTICS.PAT-NUM ; DECLARE D-EVENT ::= HV <= DIAGNOSTICS.D-TEST ; DECLARE T-EVENT ::= HV <= DIAGNOSTICS.T-TEST ; DECLARE KEYS ::= HV <= K:DIAGNOSTICS ; DECLARE EVENT-TYPE ::= HV <= &quot;DIAGNOSTICS&quot; ;

Derived Table: Secondary View 3 (Contribution from DIAGNOSTICS)

SELECT PAT-NUM, D-EVENT, T-EVENT, KEYS, EVENT-TYPE

FROM DIAGNOSTICS

DECLARE PAT-NUM ::= HV <= DIAGNOSTICS.PAT-NUM ;

DECLARE D-EVENT ::= HV <= DIAGNOSTICS.D-TEST ;

DECLARE T-EVENT ::= HV <= DIAGNOSTICS.T-TEST ;

DECLARE KEYS ::= HV <= K:DIAGNOSTICS ;

DECLARE EVENT-TYPE ::= HV <= &quot;DIAGNOSTICS&quot; ;

ETHOS SQL: Sequences “ Get all diagnostic tests performed for a patient between 9:00 on 1/9/07 and 12:00 the following day” SELECT * FROM DIAGNOSTICS A:SEQUENCE(PAT-NUM, D-TEST, T-TEST) WHERE A AFTER :PAT-NUM, “1/9/07”, “9:00” AND A BEFORE :PAT-NUM, “2/9/07”, “12:00”

“ Get all diagnostic tests performed for a patient between 9:00 on 1/9/07 and 12:00 the following day”

SELECT *

FROM DIAGNOSTICS A:SEQUENCE(PAT-NUM, D-TEST, T-TEST)

WHERE A AFTER :PAT-NUM, “1/9/07”, “9:00”

AND A BEFORE :PAT-NUM, “2/9/07”, “12:00”

RMH IT/ETHOS – Why Caché? High Performance Rapid Application Development Massive Scalability

High Performance

Rapid Application Development

Massive Scalability

RMH IT/ETHOS – Why Caché? High performance? Undoubtedly true Fastest high-end database that we’ve used Low hardware costs Small investment can make a ‘slow’ DBMS perform well Free alternatives Many will put up with a non-optimal solution if it is free.

High performance?

Undoubtedly true

Fastest high-end database that we’ve used

Low hardware costs

Small investment can make a ‘slow’ DBMS perform well

Free alternatives

Many will put up with a non-optimal solution if it is free.

RMH IT/ETHOS – Why Caché? Rapid Application Development? Undoubtedly true Others make the same claim Free alternatives Many will put up with a non-optimal solution if it is free.

Rapid Application Development?

Undoubtedly true

Others make the same claim

Free alternatives

Many will put up with a non-optimal solution if it is free.

RMH IT/ETHOS – Why Caché? Massive scalability? Undoubtedly true We’ve migrated systems from PDP 11s to high end IBM/AIX servers to PCs Low administrative costs Well abstracted environment Low hardware costs Modern networking Clustered and/or distributed environments Load balancing solutions

Massive scalability?

Undoubtedly true

We’ve migrated systems from PDP 11s to high end IBM/AIX servers to PCs

Low administrative costs

Well abstracted environment

Low hardware costs

Modern networking

Clustered and/or distributed environments

Load balancing solutions

Free Alternatives OpenSource, FSF, Freeware etc … Will it really take over the world? What drives development? Research initiatives Outsource support Consulting based marketing model

OpenSource, FSF, Freeware etc …

Will it really take over the world?

What drives development?

Research initiatives

Outsource support

Consulting based marketing model

Free Alternatives OpenSource, FSF, Freeware etc … Will it really take over the world? What drives development? Research initiatives Outsource support Consulting based marketing model The presence of a ‘Bogeyman’ as a motivator The bigger the better Free software thrives on a healthy commercial sector

OpenSource, FSF, Freeware etc …

Will it really take over the world?

What drives development?

Research initiatives

Outsource support

Consulting based marketing model

The presence of a ‘Bogeyman’ as a motivator

The bigger the better

Free software thrives on a healthy commercial sector

Traditional Project Lifecycle Analysis of requirements Design data-model Know requirements in advance Design model with reports in mind Create application Maintenance and compromise De-normalize database to make it perform

Analysis of requirements

Design data-model

Know requirements in advance

Design model with reports in mind

Create application

Maintenance and compromise

De-normalize database to make it perform

Systems Development May not want to implement something as big as ETHOS but … The case for having a more flexible environment than is usually provided by a conventional DBMS is compelling Never know requirements in advance Web culture demands flexibility ever changing requirements Higher expectations Applications need to adapt and evolve Without driving up costs and complexity

May not want to implement something as big as ETHOS but …

The case for having a more flexible environment than is usually provided by a conventional DBMS is compelling

Never know requirements in advance

Web culture demands flexibility

ever changing requirements

Higher expectations

Applications need to adapt and evolve

Without driving up costs and complexity

HTTP SOAP, REST, MEST, [2008 version] etc … are transported by HTTP and … The case for having a comprehensive development environment for serving protocols carried over HTTP is compelling Ajax allows web applications to distribute processing to clients Not available to the infrastructure for data communication/distribution Higher expectations for integration/sharing Complex functionality behind services Applications need to reach out and be available to foreign systems Without driving up costs and complexity

SOAP, REST, MEST, [2008 version] etc … are transported by HTTP and …

The case for having a comprehensive development environment for serving protocols carried over HTTP is compelling

Ajax allows web applications to distribute processing to clients

Not available to the infrastructure for data communication/distribution

Higher expectations for integration/sharing

Complex functionality behind services

Applications need to reach out and be available to foreign systems

Without driving up costs and complexity

Caché in Healthcare IT High Performance Rapid Application Development Massive Scalability Excellent Systems Prototyping and Development Environment Excellent back-end processor for HTTP

High Performance

Rapid Application Development

Massive Scalability

Excellent Systems Prototyping and Development Environment

Excellent back-end processor for HTTP

The state of play in NHS IT Chris Munt Cherylin Fletcher Royal Marsden NHS Trust

Add a comment

Related pages

House of Commons Hansard Written Answers for 11 Nov 2013 ...

Chris Ruane: To ask the Secretary of State ... To ask the Secretary of State for Health which NHS ... Tessa Munt: To ask the Secretary of State ...
Read more

About - Monitor - GOV.UK

You can find out about your local NHS foundation trust and Monitor’s role. Our priorities. From 2015 to 2016 our priorities will be to: provide support, ...
Read more

NHS Choices - YouTube

NHS Choices is a comprehensive information service that helps to put you in control of your healthcare. ... Using the NHS Play all.
Read more

Improving NHS Care by Engaging Staff and Devolving ...

engaging staff and devolving decision-making has ... The state of engagement in the NHS ... Leaders and managers throughout the NHS must play the ...
Read more

Who’s accountable in the reformed NHS? | The Nuffield Trust

The question of national accountability in the English NHS has ... With various national organisations now in play, including NHS ... The state of NHS ...
Read more

How to look after the NHS as it looks after us | Letters ...

... who as Nigel Edwards of the Nuffield Trust says “play ... Every secretary of state has the power to restructure the NHS ... Chris Rennard ...
Read more

Barbara Lee on What Was Left Unsaid in Obama's State of ...

... a suggested video will automatically play next. ... President Obama's Final State of the Union Address ... Cris Morales 70,669 views.
Read more

Thousands of NHS cancer patients are being treated with ...

The document calls for an urgent review into the machines and states: 'The expected lifespan of a linear accelerator is 10 years. 'Machines older than this ...
Read more

Department of Health (United Kingdom) - Wikipedia, the ...

Department of Health (United Kingdom) Department of Health; Richmond House, ... Parliamentary Under Secretary of State for NHS Productivity: NHS England, ...
Read more