Student Programmer : Medical University of South Carolina (Apr - August 2016)

 

As a Student Programmer for the College of Health Professions at MUSC, I use LabVIEW's (short for Laboratory Virtual Instrument Engineering Workbench) development environment to analyze and manipulate data collections.  We collect data on stroke victims and analyze how certain types of physical therapy improve gait measurements (speed, distance, parallelism, etc.) over time.

LabVIEW Programming:

LabVIEW - G ( Graphical Language )

LabVIEW's graphical programming language is unusual in that it consists of wired inputs and outputs that represent data flow to different virtual instruments instead of written code.

A Visual Programming Environment

With Virtual Instruments ( VIs ), wiring, and a simple debugger, LabVIEW's visual environment makes recognizing data types and structures faster. Intimidating at first, but once I began to recognize that Strings were always pink wires, Doubles always orange, File Paths always teal, etc. it became easier to see why G is such a useful programming language for organizing and manipulating large quantities of data in complicated file systems.

Below are some samples of programs I worked on. Click the images to enlarge them.

 

 

Sample 1:

Removing Spaces

The above program simply receives a data path of a study and then for each subject within, and for each session in that subject's folder, it opens a spreadsheet file called "[SUBJECT#]_sampling rates.txt" ( provided the file exists - if it does not, it moves to the next session / subject ). It then reads the spreadsheet row by row and looks for spaces between "Trial" and the trial number. If there is a space, it is removed.

Although this seems like a lot of work to just remove some spaces, it is necessary because a lot of other programs need to read these files and they need to all have consistent formatting otherwise the other programs will crash.


Sample 2:

Spatial Temporal Measures Report

To the left you can see the user's front panel, which has controls the user can select to search certain subjects, conditions, and choose the appropriate sides they want to focus on. By then clicking the buttons, they can run certain portions of the program.

The above images are snippets of the entire program, which is very large and complicated - it basically creates a report based on the user - selected conditions.


Sample 3:

EMG Module Look Up

A little more complicated, the above program uses structures such as timed sequence blocks to enable certain portions of the code to be read first. It also uses property nodes to store variables so that wires are not running all over the place. The image on the left is the front panel, where the user interacts with the program to choose study conditions from within a certain trial and then finds the average EMG module count.