Open Source Tools For Testing and Development

The tools we use and we need to help develop what we do.
You can use them too.


Zensnap Modality Worklist Generator (DCMWEB)

Code Base: Node.js/Express, Mithril.js with Typescript

It auto-generates fairly realistic Modality Worklist entries for testing the workflow and serve them up as DICOM WEB QIDO endpoint. We often need to test this from the MWL all the way to acquisition in our mobile photo app

As such you can also use this to generate visits to feed the rest of your test workflow.

Among the things this generates are;

  • Realistic people names, correct with genders. Patient, Referring and Performing doctor names are generated along with fairly unique MRN, Accession and truly unique Study and Instance UIDs. Names are synthesized by combining the list of names from a recent US Census data, so even how the names sound are fairly modern.

    Note that MRN/Accession are time based but the top digits are truncated so it might repeat some day.

    The age of the patients are synthesized based on a random pick but will range from anywhere from 0 to 95 years old based on the date of generation. We could be more realistic and use a standard age distribution, but I did not do that (yet).

  • Study dates are today's as you generate the worklist.

Live Cloud Endpoint To Try

If you would like to see the output of the tool and the one we use for cloud demos, you can point your app to.



Please note that there is a 100 requests/15 minutes limit and will slow down the pace of the server response after that point if you continue. Also the list updates at the rate of 100 orders per 8 hours. Please install and create your own instance if you are testing heavily.

WHy we wrote This?

We need to test our workflow from a patient walking into a hospital and get an imaging order and hang our mobile photos right against other modality studies.

We also need to do that at conferences and demos or even to make product screenshots look real.

I also need something that’s lightweight and easy to install and run anywhere… not like having have to Java and SQL configured, setup accounts.

Something that will install, build and run out of the box in 10-20 minutes.

This will make that happen


ZenSnap HL7 Tracer

Code Base: Node.js Typescript, Command Line

Given a raw HL7 file, it can trace the changes in HL7 per patient, as keyed by the MRN field and report on any new HL7 events and differences.

For this version, Only PID, PV1, PV2, and PD1 are covered but others can be easily enabled. OBX segments are also omitted for this version but also can be easily enabled on your own.

It also support A04, A08 events, but you can extend it to support others.

why we wrote this?

When we walk into an integration project we invariably need to analyze the HL7 traffic flow, and know what changes to which patient when and how often.

Yes, we got Mirths and Iguanas, but why not just build a very simple tool that install and run in 10-20 minutes of time without needing to do a ton of installation and configuration.

Install this, and feed an HL7 stream file, it will group the HL7 messages by the Patient ID so you have simple and organized list of HL7 events per patient.