Hi, I’m Paul Bradley. I’m ≅ 60 years old, and I have over 40 years experience in software development. I started my programming journey by learning AutoLISP to interrogate engineering drawings produced in AutoCAD.
Throughout my thirty-year career, I’ve been an individual contributor, solutions architect & software development manager, leading teams of developers. I now specialise in Health Interoperability and have worked with HL7, FHIR, DICOM and IHE. I have 26 years of healthcare experience, focusing on designing & developing software that leverages technology to deliver cost-effective, safe, and stable solutions. My programming proficiency covers C#, .NET, Go, Python, Terraform & AWS cloud technologies.
This blob is my personal space to share thoughts, insights, and experiences accumulated over the years. It’s a site unafraid to eschew so-called “modern web” best practices. Web development broke when it started prioritising trends over substance. Forget hydration; just frigging use HTML!.
Honestly, if you’re here you probably know me; hopefully there is something useful or vaguely entertaining here.
Apr 2026 - Present: Associate Developer for AireLogic helping to realise the National Image Registry. A Python/FastAPI implementation of an IHE XCA Gateway. This is health interoperability at the national level. We had to do a deep dive into the DICOM specification to implement the RAD-75 transaction & to interpret Key Object Selection (KOS) documents. We're currently working on a FHIR R4 MHD implementation of the ITI-67 & ITI-68 transactions.
There is a great post by Founda Health, our first compliant supplier, which highlights why the the National Image Registry will be transformative for diagnostic interoperability in the UK.
2023 - 2026: IT Development Manager - Newcastle Hospitals - Senior manager looking after a team of six developers and integration specialists. Responsible for a portfolio of over eighty projects and initiatives developed within the Hospital. Integrated several small dedicated EPR's into the main hospital system including Maternity and Ophthalmology. I was also responsible for the trust's downtime solution. The technology stack included .NET 10, SQL Server, and various integration tools.
2017 - 2023: IT Development Manager - Lancashire & South Cumbria ICB - Responsible for developing the Shared Care Record (ShCR) platform and architecture. Developed & implemented the following IHE profiles: XDS,XCA, XUA & DSUB.
2000 - 2017: Senior Developer / Solutions Architect - Lancashire Teaching Hospitals - Worked on developing and maintaining healthcare applications and integration solutions using .NET, SQL Server, and various healthcare integration tools.
I‘m based in Carlisle, Cumbria, and can be reached via the email address shown in the contact details below:
Paul Bradley Carlisle, Cumbria, contact@paulbradley.org
Projects
Outside of my professional work, I undertake recreational programming projects to scratch an itch or just make something exist:
Healthcare
Live: SpellCheck.cloud - Originally developed to spell-check clinical care plans, the medical spell-checking API allows clinicians to correct common misspellings before publishing their Discharge Summary Documents. The API offers a free-to-use medical spell checker, hosted on AWS serverless infrastructure, so it can scale to meet your requirements. Based on hunspell, the platform adds over 90K medical and drug terminology to an already comprehensive dictionary of English words. Clinical systems will be able to pass text to the Medical Spell Checker API and get a list of misspellings returned as JSON, along with a list of suggested replacements.
Under Development: DowntimeApp.cloud - This downtime solution will be a modern, cloud-native platform that supports clinical services during planned downtime of the main hospital EPR system. During unplanned downtime, the system provides critical information to hospital staff across multiple facilities, ensuring the continuity of patient care.
Maintained: go-cda - Go CDA is a Clinical Document Architecture parsing library for the Go programming language. This library was developed to parse Pathology reports saved in the CDA format.
Planned: AudioVault.cloud - Audio Vault will be a Software-as-a-Service (SaaS) platform designed to capture, normalize, and combine digital dictation recordings into a single dictation file. This file can be linked to a specific document within a Document Management System (DMS). The specification has been planned and much of the technology stack has been selected, just need to find some time to start the development.
HealthLake is a FHIR compliant data store for healthcare information. I’m investigating its capabilities and how it can be leveraged for managing healthcare data effectively. Primarily, I am interested in understanding how it can be used to provide an EPR Downtime Solution.
I’ve investigated using the DocumentReference and DocumentManifest resources to manage and organise healthcare documents within HealthLake. We can convert XDS document entries to these FHIR resources as long as we use contained resources for elements such as authors, custodians, and related entities.
XDS document entries contain home community and repository information, which doesn’t map directly to FHIR fields. As such, we need to add extensions to capture this information. These extensions can be mapped to the corresponding FHIR resources to maintain the provenance and context of the healthcare documents.
As we intend to embed the Patient resource within the DocumentReference resource when searching for documents for a given NHS number we need to use the resource modifier format patient:identifier, instead of the chained search parameter patient.identifier.
After consideration, it’s too expensive for my use case. AWS Aurora DSQL is a much cheaper option; although we do have to design the database schema ourselves.
AWS Medical Comprehend
AWS Medical Comprehend is a natural language processing service that uses machine learning to extract medical information from unstructured text. I’d like to explore whether I can use Medical Comprehend to analyse a discharge summary PDF document and modify it to highlight key medical information for easier review and processing.
For example, it would be nice to colourise different types of medical entities such as medications, diagnoses, and procedures for quick identification.
A tool like this which accepts a source PDF and outputs a highlighted version feels like a project that could be vibe coding in one session, if a sufficient enough prompt was supplied to the LLMs.
Git Commands
Here are some useful Git commands that I frequently use:
Create a feature branch: git checkout -b {jira-ticket}-feature-description
Discard changes in the working directory: git restore .
List files that would be removed by git clean: git clean -n -d
git checkout main
git pull origin main
git checkout {feature-branch}
git rebase main
git push --force-with-lease
Colophon
This domain has existed in one form or another since 2009. I actually bought the domain name while on honeymoon, so that the yearly renewal reminder would prompt me to get my wife something special for our wedding anniversary.
Its current inception as a blob was created in September 2026. It's a single HTML file that I edit and maintain. The single page is then processed through a custom static site generator that I developed in Go. The site generator minifies the HTML before creating compressed versions of the page in both GZIP & Brotli formats. The precompressed files are then served directly by the web server (Caddy) to improve performance.
The site is designed to be simple, fast, and easy to maintain, reflecting my philosophy of prioritizing substance over trends in web development. I tried to go with a full No CSS site, but in end I wanted to make use of a sticky header for navigation and use a smooth scroll behavior so the page has a minimal CSS declaration.
Access Keys; Keyboard shortcuts used on this page
Access keys are a cool feature of web browsers introduced in 1999 that allows a certain keyboard combination to jump to a certain part of the webpage. This is without any CSS or javascript, just purely implemented in the browser and HTML. It's a neat way to improve accessibility and navigation for users who prefer keyboard shortcuts. These are the access keys available on this page: