Chris Munt :: State Of Play In the NHS
-
Upload
georgejames -
Category
Technology
-
view
2.292 -
download
3
description
Transcript of Chris Munt :: State Of Play In the NHS
![Page 1: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/13.jpg)
ETHOSETHOS
Higher Order Software
Some Examples
![Page 14: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/14.jpg)
ETHOS tree: Calculate AgeETHOS tree: Calculate Age
![Page 15: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/15.jpg)
ETHOS tree: Embedded SQLETHOS tree: Embedded SQL
![Page 16: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/16.jpg)
ETHOS tree: Embedded SQLETHOS tree: Embedded SQL
![Page 17: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/17.jpg)
ETHOS tree: RecursionETHOS tree: Recursion
![Page 18: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/18.jpg)
ETHOS tree: Using LibrariesETHOS tree: Using Libraries
![Page 19: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/21.jpg)
ETHOSETHOS
SQL and Data Model
Some Examples of Entity Definitions
![Page 22: Chris Munt :: State Of Play In the NHS](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b5a9ab4a79599c268b456b/html5/thumbnails/41.jpg)
The state of play The state of play in NHS ITin NHS IT
Chris MuntCherylin Fletcher
Royal Marsden NHS Trust