Introduction to Bioinformatics and Clinical Scientific Computing

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This textbook provides an introduction to computer science theory, informatics best practice, and the standards and legislation that apply to computing in a healthcare environment. It delivers an accessible discussion of databases (construction, interrogation and maintenance); networking (design and low-level application); programming (best practice rather than the specifics of any one language – design, maintenance, safety). It can be used to accompany the NHS Modernising Scientific Careers syllabus. It is also targeted towards those creating software rather than those using it, particularly computer scientists working in healthcare, specifically those in or close to the Physical Sciences, including radiotherapy, nuclear medicine, and equipment management and those working with genomics and health informatics.

Author(s): Paul S. Ganney
Publisher: CRC Press
Year: 2022

Language: English
Pages: 403
City: Boca Raton

Cover
Half Title
Title Page
Copyright Page
Table of Contents
Acknowledgements
Chapter 1: Data Structures
1.1 Introduction
1.2 Arrays
1.3 Stack or Heap
1.4 Queue
1.5 Linked List
1.6 Binary Tree
Notes
Chapter 2: Databases
2.1 Introduction
2.2 Terminology
2.3 The Goals of Database Design
2.4 Example
2.5 More Terminology
2.6 Example – Making the Design More Efficient
2.7 Fourth and Fifth Normal Form
2.8 Many-to-Many Relationships
2.9 Distributed Relational Systems and Data Replication
2.10 Columnstore and Data Warehousing
2.11 OLAP Cubes
2.12 Star Schema
2.13 Database Standards and Standards for Interoperability and Integration
2.13.1 Database Naming Conventions
2.13.2 Data Administration Standards
2.13.3 Database Administration Standards
2.13.4 System Administration Standards
2.13.5 Database Application Development Standards
2.13.6 Database Security Standards
2.13.7 Application Migration and Turnover Procedures
2.13.8 Operational Support Standards
Notes
References
Chapter 3: SQL
3.1 Introduction
3.2 Common Commands: SELECT, INSERT, UPDATE and DELETE
3.3 Some Useful Commands/Functions
3.4 SELECT Modifiers
3.4.1 MySQL 8.0
3.5 Create/Alter Table
3.6 Indexes
3.7 Privileges
3.8 Loading Large Data Sets
3.9 Stored Routines
3.10 Triggers
3.11 Columnstore
3.12 Concurrency Control and Transaction Management
3.13 Database Performance Tuning
3.14 Hints and Tips
3.14.1 Naming Standards
3.14.2 Data Types
3.14.3 In Code
3.14.4 Documentation
3.14.5 Normalisation and Referential Integrity
3.14.6 Maintenance: Run Periodic Scripts to Find
3.14.7 Be Good
Notes
References
Chapter 4: Data Mining
4.1 Introduction
4.2 Pre-Processing
4.3 Data Mining
4.3.1 Some Data-Mining Methods
4.3.1.1 Decision Trees and Rules
4.3.1.2 Nonlinear Regression and Classification Methods
4.3.1.3 Example-Based Methods
4.3.1.4 Probabilistic Graphic Dependency Models
4.3.1.5 Principal Component Analysis (PCA)
4.3.1.6 Neural Networks
4.4 Data Mining Models in Healthcare
4.5 Results Validation
4.6 Software
Notes
References
Chapter 5: Data Analysis and Presentation
5.1 Introduction
5.2 Appropriate Methods and Tools
5.3 Interpretation of Results
5.4 Presentation of Results
5.5 Quality Indicators
5.6 Graphical Presentation
5.7 Standards
5.8 Commercial Software: Excel
5.8.1 Charts
5.9 Blinded with Science
Notes
References
Chapter 6: Boolean Algebra
6.1 Introduction
6.2 Notation
6.3 Truth Tables
6.4 Algebraic Rules
6.5 Logical Functions
6.5.1 Functions of One Variable
6.5.2 Functions of Two Variables
6.6 Simplification of Logical Expressions
6.7 A Slight Detour into NAND and NOR
6.8 Karnaugh Maps
6.9 Using Boolean Algebra in Forming and Validating Queries
6.10 Binary and Masking
Notes
References
Chapter 7: NoSQL
7.1 Introduction
7.1.1 Strengths
7.1.2 Weaknesses
7.2 Document Storage
7.3 GraphDB
7.4 Conclusions
Notes
Chapter 8: Network Architecture
8.1 Introduction
8.2 Networking and the Network Environment
8.2.1 The Network Packet
8.2.2 Hardware – Hub, Switch, Router, Firewall
8.2.3 Network Topologies
8.3 Cabling Infrastructure
8.4 IP Addressing and DNS
8.4.1 IP Mask
8.4.2 Ports
8.5 IP Routing Tables
8.5.1 IP Routing Table Entry Types
8.5.2 Route Determination Process
8.5.3 Example Routing Table for Windows 2000
8.5.4 Static, Dynamic and Reserved IPs
8.5.4.1 Two Devices with the Same IP Address
8.5.5 Where Is Your Data?
8.6 Connecting Medical Devices to the Hospital Network
8.6.1 Firewalls
8.6.2 Bandwidth
8.7 Infrastructure
8.8 The OSI 7-Layer Model
8.9 Scalability
8.9.1 RIP
8.9.2 OSPF
8.9.3 Intermediate System to Intermediate System (IS-IS)
8.9.4 EIGRP
8.10 Web Services: Introduction
8.11 Web Services: Representational State Transfer (REST)
8.11.1 Client-Server Architecture
8.11.2 Statelessness
8.11.3 Cacheability
8.11.4 Layered System
8.11.5 Code on Demand
8.11.6 Uniform Interface
8.11.6.1 Resource Identification in Requests
8.11.6.2 Resource Manipulation Through Representations
8.11.6.3 Self-Descriptive Messages
8.11.6.4 Hypermedia As the Engine of Application State (HATEOAS)
8.11.7 Relationship between URL and HTTP Methods
8.12 Web Services: Simple Object Access Protocol (SOAP)
8.13 Web Services and the Service Web
8.14 SOAP Messages
Notes
References
Chapter 9: Storage Services
9.1 Introduction
9.2 Virtual Environments
9.3 Cloud Computing
9.4 Security and Governance for Cloud Services
Notes
References
Chapter 10: Encryption
10.1 Introduction
10.2 Encryption
10.2.1 Ciphers and Cryptography
10.2.2 RSA and PGP Encryption
10.2.3 Steganography, Checksums and Digital Signatures
Notes
References
Chapter 11: Web Programming
11.1 Introduction
11.2 Strategies for Web Development
11.2.1 Design Style
11.3 HTML
11.3.1 Static HTML
11.4 Style Sheets – CSS
11.4.1 The Class Selector
11.4.2 Applying a Style Sheet
11.4.3 Multiple Style Sheets
11.5 Dynamic HTML – Forms
11.6 Dynamic HTML – JavaScript
11.7 Dynamic HTML – CGI
11.8 Server- and Client-Side Architecture
11.9 Server Files
11.10 Limiting Access
11.11 Interfacing with a Database
11.12 Privacy and Security
11.12.1 Web Sessions
11.12.2 Cookies
Notes
References
Chapter 12: Data Exchange
12.1 Introduction
12.2 Parity and Hamming Codes
12.2.1 Decide on the Number of Bits in the Codeword
12.2.2 Determine the Bit Positions of the Check Bits
12.2.3 Determine which Parity Bits Check which Positions
12.2.4 Calculate the Values of the Parity Bits
12.2.5 Using the Codeword to Correct an Error
12.3 JSON and XML
12.4 DICOM
12.4.1 Images as Data
12.4.2 Information Entities
12.4.3 Information Object Definitions
12.4.4 Attributes
12.4.4.1 Value Representations
12.4.4.2 Sequence Attributes
12.4.4.3 Private Attributes
12.4.4.4 Unique Identifiers
12.4.4.5 Attribute Example: Orientation
12.4.5 Standard Orientations
12.4.6 DICOM Associations
12.4.7 DICOM-RT
12.5 HL7 (Health Level Seven)
12.6 Fast Healthcare Interoperability Resources (FHIR)
Notes
References
Chapter 13: Hospital Information Systems and Interfaces
13.1 Introduction
13.2 Data Retention
13.3 Hospital Information Systems and Interfaces
13.4 Equipment Management Database Systems
13.5 Device Tracking Systems
13.6 Interfaces
Notes
References
Chapter 14: Backup
14.1 Introduction
14.2 Replication
14.3 Archiving
14.4 Resilience using RAID
14.5 Business Continuity
Notes
Reference
Chapter 15: Software Engineering
15.1 Introduction
15.2 Software
15.2.1 Operating Systems
15.2.1.1 Microsoft Windows
15.2.1.2 Unix
15.2.1.3 Linux
15.2.1.4 iOS/macOS
15.2.1.5 General
15.2.1.6 Paradigms
15.3 The Software Lifecycle
15.3.1 Requirements Specification: Gathering and Analysing User Requirements
15.3.2 Software Design
15.3.3 Coding
15.3.4 Testing
15.3.4.1 Acceptance Testing
15.3.5 Installation and Maintenance
15.4 Software Lifecycle Models
15.4.1 Waterfall Model
15.4.2 Incremental Model/Prototyping Model
15.4.3 Spiral Model
15.4.4 Agile Methodology
15.5 Overview of Process Models and Their Importance
15.5.1 Comparison of Process Models
15.5.1.1 Joint Application Development
15.5.1.2 Assembling Reusable Components
15.5.1.3 Application Generation
15.6 Systems Design Methods
15.6.1 Top-Down Example
Notes
References
Chapter 16: Software Quality Assurance
16.1 Introduction
16.1.1 Attributes
16.1.2 Configuration Management and Change Control
16.1.3 Documentation
16.1.4 Hungarian Notation
16.1.5 Comments
16.2 Version Control
16.3 Software Tools and Automation for Testing
16.3.1 Record and Playback
16.3.2 Web Testing
16.3.3 Database Tests
16.3.4 Data Functions
16.3.5 Object Mapping
16.3.6 Image Testing
16.3.7 Test/Error Recovery
16.3.8 Object Name Map
16.3.9 Object Identity Tool
16.3.10 Extensible Language
16.3.11 Environment Support
16.3.12 Integration
16.4 Standards
16.4.1 IEC 601
16.4.2 The Medical Devices Directive
16.4.3 The Medical Devices Regulations
16.4.3.1 Scripts
16.4.3.2 Brexit
16.4.4 CE Marking
16.4.5 Other Standards
16.4.6 Process Standards
16.4.6.1 ISO/IEC 62366-1: 2015 Medical Devices – Part 1: Application of Usability Engineering to Medical Devices
16.4.6.2 ISO 14971:2012 Application of Risk Management to Medical Devices
16.4.6.3 IEC 62304:2006/A1:2015 Medical Device Software – Lifecycle Processes
16.4.6.4 ISO 13485: 2016 Medical Devices – Quality Management Systems – Requirements for Regulatory Purposes
16.4.7 Coding Standards
16.4.8 Standards and Guidelines Issued by Professional Bodies
16.5 Market
Notes
References
Chapter 17: Project Management
17.1 Introduction
17.2 Starting Off
17.3 Keeping It Going – Managing the Project
17.4 Stopping (The Hard Bit)
17.5 Risk Management
17.6 Team Management (Personnel and Technical)
17.7 Project Planning (Resource and Technical)
17.7.1 Quantifying the Resource Requirements: Labour
17.7.2 Constructing A Resource Schedule
17.8 Education and Training
17.9 Cost Estimation
17.9.1 Tactical versus Strategic Purchasing Decisions
Notes
References
Chapter 18: Safety Cases
18.1 Introduction
18.2 The Purpose of a Safety Case
18.3 The Structure of a Safety Case
18.3.1 Claims
18.3.2 Evidence
18.3.3 Argument
18.3.4 Inference
18.3.5 The GSN Diagram
18.4 Implementation of a Safety Case
18.5 Design for Assessment
18.6 The Safety Case Lifecycle
18.7 The Contents of a Safety Case
18.8 Hazard Log
18.8.1 The Therac-25 Incident
Notes
References
Chapter 19: Critical Path Analysis
19.1 Introduction
19.2 Planning Stage
19.3 Analysis Stage
19.3.1 The Forward Pass
19.3.2 The Backward Pass
19.3.3 Float
19.4 Scheduling
19.5 Control Stage
Note
Appendix
Index