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

Chris Munt :: State Of Play In the NHS

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chris Munt :: State Of Play In the NHS

The state of play The state of play in NHS ITin NHS IT

Chris MuntCherylin Fletcher

Royal Marsden NHS Trust

Page 2: Chris Munt :: State Of Play In the NHS

Agenda: Part IAgenda: Part I

Healthcare ITA local view

IT at the RMH

Cherylin Fletcher(Deputy Director of IT at

RMH)

Page 3: Chris Munt :: State Of Play In the NHS

Agenda: Part IIAgenda: Part II

Caché at the RMHBuilding a successful IT

infrastructure to support heathcare applications

Chris Munt

Page 4: Chris Munt :: State Of Play In the NHS

RMH IT – History (80s)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

Page 5: Chris Munt :: State Of Play In the NHS

RMH IT – History (80s)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

Page 6: Chris Munt :: State Of Play In the NHS

RMH IT – History (90s)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

Page 7: Chris Munt :: State Of Play In the NHS

RMH IT – History (00s)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

Page 8: Chris Munt :: State Of Play In the NHS

RMH IT – ArchitectureRMH 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

Page 9: Chris Munt :: State Of Play In the NHS

RMH IT – ArchitectureRMH 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

Page 10: Chris Munt :: State Of Play In the NHS

RMH IT – DevelopmentRMH 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– ExTended Higher Order Software– 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

Page 11: Chris Munt :: State Of Play In the NHS

ETHOS: HOS ETHOS: HOS ComponentComponent

• 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

Page 12: Chris Munt :: State Of Play In the NHS

ETHOS: HOS ETHOS: HOS ComponentComponent

• 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

Page 13: Chris Munt :: State Of Play In the NHS

ETHOSETHOS

Higher Order Software

Some Examples

Page 14: Chris Munt :: State Of Play In the NHS

ETHOS tree: Calculate AgeETHOS tree: Calculate Age

Page 15: Chris Munt :: State Of Play In the NHS

ETHOS tree: Embedded SQLETHOS tree: Embedded SQL

Page 16: Chris Munt :: State Of Play In the NHS

ETHOS tree: Embedded SQLETHOS tree: Embedded SQL

Page 17: Chris Munt :: State Of Play In the NHS

ETHOS tree: RecursionETHOS tree: Recursion

Page 18: Chris Munt :: State Of Play In the NHS

ETHOS tree: Using LibrariesETHOS tree: Using Libraries

Page 19: Chris Munt :: State Of Play In the NHS

ETHOS: SQL/RDBMS ETHOS: SQL/RDBMS ComponentComponent

• 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)

Page 20: Chris Munt :: State Of Play In the NHS

ETHOS: SQL/RDBMS ETHOS: SQL/RDBMS ComponentComponent

• 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

Page 21: Chris Munt :: State Of Play In the NHS

ETHOSETHOS

SQL and Data Model

Some Examples of Entity Definitions

Page 22: Chris Munt :: State Of Play In the NHS

ETHOS Entity: PATIENTETHOS Entity: PATIENTBase Table: Primary View

SELECT PAT-NUM, PAT-NAM, ADDRESS, D-REG, T-REG, D-BIRTH, AGE, D-LAST-ADMFROM [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 ;

Page 23: Chris Munt :: State Of Play In the NHS

ETHOS Entity: DATEETHOS 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) ;

Page 24: Chris Munt :: State Of Play In the NHS

ETHOS Entity: ADMISSIONETHOS 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 ;

Page 25: Chris Munt :: State Of Play In the NHS

ETHOS Entity: DIAGNOSTICSETHOS Entity: DIAGNOSTICSBase Table: Primary View

SELECT PAT-NUM, D-TEST, T-TEST, TEST-ID, RESULTFROM [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 ;

Page 26: Chris Munt :: State Of Play In the NHS

ETHOS Entity: EVENTSETHOS 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 ;

Page 27: Chris Munt :: State Of Play In the NHS

ETHOS Entity: EVENTS (1)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 <= "REGISTRATION" ;

Page 28: Chris Munt :: State Of Play In the NHS

ETHOS Entity: EVENTS (2)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 <= "ADMISSION" ;

Page 29: Chris Munt :: State Of Play In the NHS

ETHOS Entity: EVENTS (3)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 <= "DIAGNOSTICS" ;

Page 30: Chris Munt :: State Of Play In the NHS

ETHOS SQL: SequencesETHOS 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”

Page 31: Chris Munt :: State Of Play In the NHS

RMH IT/ETHOS – Why RMH IT/ETHOS – Why Caché?Caché?

• High Performance• Rapid Application Development• Massive Scalability

Page 32: Chris Munt :: State Of Play In the NHS

RMH IT/ETHOS – Why RMH IT/ETHOS – Why Caché?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.

Page 33: Chris Munt :: State Of Play In the NHS

RMH IT/ETHOS – Why RMH IT/ETHOS – Why Caché?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.

Page 34: Chris Munt :: State Of Play In the NHS

RMH IT/ETHOS – Why RMH IT/ETHOS – Why Caché?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

Page 35: Chris Munt :: State Of Play In the NHS

Free AlternativesFree Alternatives• OpenSource, FSF, Freeware etc …• Will it really take over the world?• What drives development?

– Research initiatives– Outsource support– Consulting based marketing model

Page 36: Chris Munt :: State Of Play In the NHS

Free AlternativesFree 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

Page 37: Chris Munt :: State Of Play In the NHS

Traditional Project Traditional Project LifecycleLifecycle

• 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

Page 38: Chris Munt :: State Of Play In the NHS

Systems DevelopmentSystems 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

Page 39: Chris Munt :: State Of Play In the NHS

HTTPHTTP• 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

Page 40: Chris Munt :: State Of Play In the NHS

Caché in Healthcare ITCaché in Healthcare IT• High Performance• Rapid Application Development• Massive Scalability

• Excellent Systems Prototyping and Development Environment

• Excellent back-end processor for HTTP

Page 41: Chris Munt :: State Of Play In the NHS

The state of play The state of play in NHS ITin NHS IT

Chris MuntCherylin Fletcher

Royal Marsden NHS Trust