Blog

  • CQL Tests UI Getting Live Test Execution

    Since announcing CQL Tests UI, the application has continued to receive enhancements that add the ability to execute new test runs yourself using the official CQFramework-family of CQL tests.

    What’s New: The Runner Integration

    The upcoming release introduces a complete CQL Test Runner integration that will allow users to execute CQL compliance tests directly from the web interface. No more switching between tools or managing configuration files manually.

    Key Features Added

    Live Test Execution: The new runner component will let you configure and execute the separately-running CQL test runner service against any CQL-capable FHIR server with a few clicks. Tests will run asynchronously in the background via the test runner, and results will be reported via the UI where they can be seamlessly loaded into the existing viewer.

    Flexible Configuration: The interface provides a user-friendly way to configure FHIR server endpoints, build settings, and test parameters. For power users, there will be a full JSON editor with syntax highlighting.

    Separate Deployment: The CQL Test Runner itself will operate as a separate service that needs to be deployed independently. It will be released as a Docker container.

    Results Integration: Once tests complete, you’ll be able to immediately view results in the existing results viewer or download them as JSON. The integration will be seamless – test results will flow directly into the visualization tools you’re already familiar with.

    Looking Forward

    As the project continues to evolve, I’d personally like to see CQL Tests UI grow into an even more full-featured CQL authoring environment. There is exciting potential to combine or align with efforts from the CDS Connect Authoring Tool Community Edition, bringing together the best of test execution and authoring capabilities in a single, user-friendly interface.

    Please share your thoughts with me via the GitHub repository, the FHIR Zulip community, or during the HL7 CQI and HL7 CDS working group calls.

  • Announcing CQL Tests UI: A Web Interface for Clinical Quality Language Engine Compliance Testing

    I’m pleased to announce the release of CQL Tests UI, a web application for viewing and analyzing Clinical Quality Language (CQL) engine test results generated by the CQL Tests Runner. I’ve contributed CQL Tests UI to the cqframework family of tools under the Apache 2.0 license following debut at the September, 2025 HL7 Connectathon.

    What is CQL Tests UI?

    CQL Tests UI is an intuitive web application that provides an interface for visualizing the results of CQL engine compliance tests. Whether you’re working on clinical decision support rules, quality measures, or other CQL-based artifacts, this tool helps you quickly identify engine issues and compare results across different CQL execution implementation environments.

    Key Features

    Cross-Engine Comparison Dashboard

    The dashboard provides a high-level dashboard summarizing test results across engines, allowing for broad-stroke summarization of correct CQL engine functionality across systems.

    CQL Tests UI Dashboard

    Detailed Result Viewer

    The results detail viewer zooms in on a specific test run. This feature allows you to examine expected and actual output of individual test cases and understand failures.

    CQL Tests UI Viewer

    Flexible Data Loading

    The application supports multiple ways to load your test data, making it easy to integrate into existing workflows.

    CQL Tests UI Loader

    Documentation and Deep-Linking

    Built-in documentation and deep-linking support make it easy to share specific test results and collaborate with team members.

    CQL Tests UI Documentation

    References

  • Substance Abuse Data Exchanges with FHIR: the ASU SHARES Program

    As part of my work at Arizona State University, I’ve been developing the technology stack for the Substance Use Health Records Sharing (SHARES) program. This initiative aims to transform how sensitive health data for substance use disorders (SUD) are managed and shared across healthcare systems. At a personal technical level, my goal is to provide a set of flexible developer libraries, pre-canned API services, and exemplar web UI applications for all U.S. entities to comply with 42 CFR part 2 using FHIR.

    While management of patient consent directives has its own set of challenges, such as those being addressed by the FAST Consent Management Implementation Guide, I’m more interested in the runtime enforcement of patient data sharing elections between organizations. Consent enforcement is an incredibly challenging area of healthcare interoperability wrought with legal and clinicotechnical quandaries.

    SHARES has been on a publishing spree, and I’m proud to.. share.. that FHIR Granular Sensitive Data Segmentation has been published in Applied Clinical Informatics (ACI). The referenced data labeling approach to information sensitivity classification is done in compliance with the FHIR DS4P implementation guide and heavily influenced by the ONC LEAP Computable Consent program. While we didn’t reuse LEAP’s Java and JavaScript code as we wanted SHARES to be entirely done in native TypeScript, we still retain some compatibility with LEAP’s CDS Hooks-based FHIR data labeling service using a modified version of their schema. SHARES has since moved on, however, to supporting numerous other means of integration for security label-based data segmentation.

    Since this manuscript was drafted, we’ve been hard at working rearchitecting the technology platform for scale, plugability of classification engines, and integration methodology. We also recently released v1 of a visual Consent Simulator that will be a focal point of upcoming technical iterations.

    I’m particularly excited for the next few technical phases that will use the new pluggable architecture to provide alternative means of data segmentation. More on that in future publications. 🙂

    For more information on the SHARES program, visit https://www.asushares.com .

  • GovCIO Quotes

    I was pleasantly surprised to hear that GovCIO quoted one of my recent presentations in a short article on H7 FHIR Foundry: https://govciomedia.com/hl7s-fhir-foundry-speeds-up-health-data-standards-adoption/

    With the Centers for Medicare and Medicaid Services (CMS) pushing for the adoption of FHIR APIs to streamline healthcare data exchange and support value-based care, HL7 and the FHIR Foundry initiative are the best positioned vehicles for providing the tools, resources, and community support to simplify implementations in practice. I’m grateful to be able to contribute!

  • KNARTwork 2022 Rerelease

    The HL7 Knowledge Artifact specification has been an experiment in portable clinical decision support (CDS). While unlikely to see production adoption due to equivalent concepts now in FHIR, it is nevertheless useful to see a standards-based representation of clinical knowledge in a working UI. I am updating the 2017 release of the KNARTwork Community Knowledge Artifact editor — part of the Clinical Quality Framework — to 2022 standards. The live copy is now available at:

    https://knartwork.prestonlee.com

    KNARTwork runs entirely in browser as a single-page app (SPA): there is no server side persistence. All XML document loading, manipulation, validation, and export is done entirely in browser. It implements Clinical Decision Support Knowledge Artifact Specification, Release 1.3, of which I was also heavily involved in. There are some remaining bugs due to being upgraded from Angular 5 to Angular 14. 🙂

    KNARTwork’s code is open source and free to copy, remix, and reuse at the KNARTwork GitHub repository.

  • space_elevator ActionCable Client for Ruby

    I have an interactive command-line daemon (in Ruby) that I needed to receive push events via WebSockets from an ActionCable-enabled Rails application. I eventually succeeded, but doing so required diving into the weeds of ActionCable’s wire protocol since I didn’t want to rewrite my application in JavaScript solely to leverage the official client code.

    Because I’m such a nice guy, I’ve extracted the code and released an easy-to-use client as the space_elevator gem. When combined with gems like thor, it makes writing bi-directional command line API clients a breeze. You can publish/subscribe to multiple channels simultaneously, and all in an event-driven manner. Check out the channel-y goodness and don’t forget to file any issues!

  • BitTorious Trials

    New in BitTorious v4!

    BitTorious v4 has been released, and has received a comprehensive internal upgrade to Rails 5 and PostgreSQL 9.5. Also, all official releases from v4 forward will be built as portable Docker containers and distributed via Docker Hub.

    Due to attempted abuses of the evaluation environment, we’ve unfortunately had to discontinue the publicly-accessible BitTorious trial portal, but would be happy to give you a live demo of the current system if you’ve read one of the papers and are interested in deployment. There are several private instances of the portal in active use, though for security reasons not publicly published.

    Get it yourself!

    Builds via Docker Hub

    GitHub Source Code, Screenshots and Setup Instructions

     

  • Ruby Supercomputing: Using The GPU For Massive Performance Speedup

    Confreaks just released a Ruby/JRuby GPU presentation of mine from Mountain West Ruby Conference 2011 in Salt Lake City, Utah. Slightly stale, but all still very relevant to HPC today!

    http://confreaks.tv/videos/mwrc2011-ruby-supercomputing-using-the-gpu-for-massive-performance-speedup

  • Pairwise Sequence Alignment In JavaScript

    I just implemented a sample pairwise sequence aligner in JavaScript for a course. You can demo it at http://alignment.prestonlee.com, and grab the source code under an Apache 2 license at https://github.com/preston/alignment.

  • “My Videotag” Linkbucks WordPress Hack

    FYI to all the WordPress fans.. If you recently noticed that your links are getting hijacked by URLs pointing to “linkbucks.com”, try deleting your my-videotag plugin. I found this nastiness somehow embedded in the source code:

    $ find . -name ‘*.php’ |xargs grep -e linkbuck
    ./wp-content/plugins/my-videotag/my-videotag.php: return ‘<a href=”http://77aafbe6.linkbucks.com/url/’ . $matches[2] . ‘//’ . $matches[3] . ‘”‘ . $matches[1] . $matches[4] . ‘ target=”_blank”>’ . $matches[5] . ‘</a>’;

    Ack! We’ll be deleting the my-videotag plugin now. 🙂