Step Into - immregistries/StepIntoCDSI GitHub Wiki

The Step Into provides a reference and demonstration implementation of the Clinical Decision Support for Immunizations (CDSi) developed by the CDC. CDSi supports clinicians and patients understand what immunizations were given at the correct time and which vaccines doses are due next and when. CDC provides three critical resources to support this process:

  • Logic Specification
  • Supporting Data
  • Test Cases

The Step Into software is designed to be a exact implementation of the Logic Specification in Java. It is intended that it will use the CDC supplied Supporting Data and then be able to meet the expectations of the CDC supplied Test Cases. However the system was built to an earlier version of the CDSi logic and has not been kept up-to-date.

A demonstration of the current version in operation can be seen here:

The next development steps are to:

Executing Steps

Here is a step by step guide how to use "Step Into CDSi".

Step 1: Navigate to starting URL

Navigate to the main step page. If installed on localhost it will look like this: http://localhost:8080/step/step

You should see this:


Step 2: Click on Hib Example

To get a quick example click on Hib. You should then see this:


This shows the Hib example getting ready to take the first step and go through the data model. The data for the Hib example is encoded in the new URL that you can see at the top: http://localhost:8080/step/step?evalDate=20160630&scheduleName=default&resultFormat=text&patientDob=20150630&patientSex=F&vaccineDate1=20150826&vaccineCvx1=47&vaccineMvx1=&vaccineDate2=20151027&vaccineCvx2=47&vaccineMvx2=&vaccineDate3=20151229&vaccineCvx3=47&vaccineMvx3=

Hint: This URL format follows a structure that was used for the Lone Star Forecaster (originally the Texas Children's Hospital Forecaster) which allowed the date of birth and vaccination to be specified in the GET in the same fashion. If you change the URL so that the word step is replaced with forecast you will get a different output.

Change to: http://localhost:8080/step/forecast?evalDate=20160630&scheduleName=default&resultFormat=text&patientDob=20150630&patientSex=F&vaccineDate1=20150826&vaccineCvx1=47&vaccineMvx1=&vaccineDate2=20151027&vaccineCvx2=47&vaccineMvx2=&vaccineDate3=20151229&vaccineCvx3=47&vaccineMvx3=

Then you will get this:


This is output that FITS can use to test the StepIntoCDSi logic. The idea is that you can test with FITS and if there is a problem you can copy the URL forecast string right out of the FITS console and run it manually. And if you want to step through it you can simply change "forecast" to "step" and you can see exactly what is going on.

Step 3: Click Next Step and Execute 8.1 Gather Necessary Data

Clicking Next Step executes the 8.1 chapter. You will notice that the left column shows the results of executing 8.1 and the center column now shows what will happen as you execute 8.2. There is not much logic in these first chapters, rather they are just setting things up. You will also notice that the image shows which steps you are transitioning through. This allows you to keep track of which chapter you are in.

Step 4: Continue Clicking

Each click on Next will take the logic to the next step. You can't choose the next step, rather this is chosen by the logic. This is similar to how you have a next button in a code debugger. This allows you to "debug" the logic. The reason why this project is called "Step Into CDSi" is because it allows you to go step by step through each chapter and see how it works. The idea is that this will ultimately be a reference implementation that can be distributed along with the document and can help people better understand the document by executing this tool.

Step 5: Jumping

You can speed the process up by selecting a chapter in the drop down and clicking Jump. This will go through all the next steps until it arrives at the step where it executes that chapter. Keep in mind that sometimes chapters are executed more than once, or that they might not ever get executed, depending on the example and where you are in the logic. So it's possible it will just jump to the end. image