Chris Munt :: State Of Play In the NHS

Preview:

DESCRIPTION

 

Citation preview

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

Chris MuntCherylin Fletcher

Royal Marsden NHS Trust

Agenda: Part IAgenda: Part I

Healthcare ITA local view

IT at the RMH

Cherylin Fletcher(Deputy Director of IT at

RMH)

Agenda: Part IIAgenda: Part II

Caché at the RMHBuilding a successful IT

infrastructure to support heathcare applications

Chris Munt

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

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

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

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

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

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

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

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

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

ETHOSETHOS

Higher Order Software

Some Examples

ETHOS tree: Calculate AgeETHOS tree: Calculate Age

ETHOS tree: Embedded SQLETHOS tree: Embedded SQL

ETHOS tree: Embedded SQLETHOS tree: Embedded SQL

ETHOS tree: RecursionETHOS tree: Recursion

ETHOS tree: Using LibrariesETHOS tree: Using Libraries

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)

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

ETHOSETHOS

SQL and Data Model

Some Examples of Entity Definitions

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 ;

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

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 ;

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 ;

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 ;

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" ;

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" ;

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" ;

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”

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

• High Performance• Rapid Application Development• Massive Scalability

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.

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.

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

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

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

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

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

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

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

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

Chris MuntCherylin Fletcher

Royal Marsden NHS Trust