Motion Lab Resources Website
Log of Updates to the Patients and Services Database (MAPS)
(In Reverse Chronological Order)
August 19, 2020 * Changed the front-end: Version 2.151 - August 19, 2020
* Tested 64-bit Office with MAPS and found one small problem with the Excel plots file. It was the way a certain API call was declared. This was corrected, which should make MAPS completely compatible with MS-Office 64-bit. Just as an FYI, we will need to keep making these considerations as Dave Chlan continues to develop the Queries database.
* Found a problem with the form that generates plots from GCD files. The conditions and ambulation aids ComboBoxes were sometimes being positioned in the wrong place. This was corrected.
August 9, 2020 * Changed the front-end: Version 2.150 - August 9, 2020
* Found a condition in the “Process Norms” procedure (within Maintenance) where an error may occur. More specifically, it was when OpenSim is installed and used for the calculation of muscle lengths. When processing norms, the specific muscle length procedure produces a file named MuscleLengths.tsv within the norms folder that contains data to be used for muscle length norms (gray bands, calculation of gait parameters, etc). As part of this processing, OpenSim produces a STO file type for each GCD file. (These are deleted once the MuscleLengths.tsv is completed.) If the GCD file contains typical lower extremity kinematics in it, you will always get one of these STO files. However, and this is unusual, if the GCD file doesn’t contain standard lower extremity kinematics, OpenSim doesn’t produce the STO file. Prior to this, MAPS had failed to check for this condition, which produced a “File Not Found” error. To correct this, MAPS now checks to make sure that OpenSim output the STO file, and, if not, that GCD file is simply skipped with respect to calculating data for the MuscleLengths.tsv file.
July 15, 2020 * Changed the front-end: Version 2.149 - July 15, 2020
* When the "Validate DB Structure" command was being executed … and more specifically, when the links in the PatientsAndServicesDatabaseQueries.mdb database were being validated, the PathTo… tables weren’t being linked. Initially, it was thought that there’d be no need for these links (as the queries database wouldn’t need to write out reports). However, with some of Dave Chlan’s work, there is now a need to possibly write out reports from the queries database. To accommodate this, the PathTo… tables are now linked into the queries database. However, the "Validate DB Structure" must be re-executed to establish those links.
July 12, 2020 * Changed the front-end: Version 2.148 - July 12, 2020
* Under certain circumstances, when processing a batch of GCD files for “norms” preparation, missing data could cause an overflow when calculating the standard deviations. Specifically, squaring is taking place to calculate the SD. To deal with this problem, error trapping was placed around the squaring operation for these SD calculations, resulting in an “infinity” result when no SD could be reasonably calculated.
June 19, 2020 * Changed the front-end: Version 2.147 - June 19, 2020
* Fixed a problem with the balance service when pressure plates were used to assess the balance. For some reason, it was still looking for a mat file under certain circumstances.
May 31, 2020 * Made a change to PODCI such that it doesn’t change the resolution of the primary monitor. This was being done to preserve the functionality of the original version of PODCI. However, this wasn’t done in any of the other questionnaires, and PODCI is currently now administered with some degree of supervision. Therefore, there’s not a major concern with the PODCI screens being smaller than the whole screen, and also continuing to show the taskbar. This also allows for any crash while in PODCI to leave the computer in its original state.
April 26, 2020 * Changed the front-end: Version 2.146 - April 26, 2020.
* The largest change was the addition of a “Update Queries Database” button in the “Maintenance” area. This allows Adam Graf and possibly others to make changes to the Queries database, while still staying under the umbrella of ultimate MAPS security changes. Adam and others will explain what to actually do with these Queries database updates. It is also important to note that none of this affects the primary MAPS database at all.
* There were also some changes made to the MAPS security work. However, for the time being, it’s disabled until further clarity is derived from the work on the non-functional specifications documents being prepared.
February 19, 2020 * Changed the front-end: Version 2.145 - February 19, 2020.
* Corrected problem with the Spine report, specifically when doing a comparison report. It was a problem with upgrades in preparation for a .NET translation.
* Continued making small changes for the .NET translation.
January 12, 2020 * Changed the front-end: Version 2.144 - January 12, 2020.
* In preparation for a .NET translation, attempted to go through and remove all uses of the Variant data type. Not all could be removed, specifically Collections, ParamArrays, certain Excel worksheet functions, returns of CallByName, the BMI Percentile routines, certain Word automation (specifically where the “anchor” object was used). There were a couple of other modules that will probably disappear when we move to .NET (Unzip, NewObjectFromActivexDll, & CommonDialogEx). The remaining Variant types will have to be handled during the actual translation.
* Also, by studying VB6 to .NET differences, considered other problems, but didn’t make any source code changes. The considerations included:
- Form designer markup code differences.
- LBound always 0 in .NET.
- No concept of fixed-length-strings in .NET. How are UDT’s handled?
- ByRef keyword required in .NET.
- No “default” properties of objects in .NET, and no “Set” statement.
- No “Let” statement in .NET.
- Long is Integer, and Integer is Short in .NET.
Each of these must be dealt with in some way during the translation.
December 9, 2019 * Changed the front-end: Version 2.143 - December 9, 2019
* Made several changes to the balance protocol:
- Added a “Save As…” button to report export so that multiple reports for the same trial could be exported.
- Made sure a raw data file wasn’t used twice for two different trials.
- Recorded the data file used for each encounter in the database, and showed it on the balance screen when that trial was selected.
- Moved the “save to database” logic from the “export report” area into the “open and calculate” area. This allowed for exporting reports without the need to re-calculate each time. This also involved loading the previously processed data when the different trials are selected. It also required that any attempts to change the “Trial Condition” be prohibited after a trial was processed.
- Added a “Delete Trial” button so specific trials could be deleted and re-processed. This was necessary since a mistake could be made on specifying a trial condition.
- Made messages that appear on the “peak image” on the balance screen. In addition to an actual peak image, there are three possible messages: 1) “Select a Trial”, 2) “Force Plate, No Peak Image Available”, 3) “No Data Processed for This Trial”.
- Added the encounter dates to each section of the balance report.
- Moved the “typical development” reference to a single line below the numeric section of the report.
* Made several changes to the plantar pressure protocol, specifically when using the TekScan hardware. Hopefully, this will eventually be interfaced with the Novel hardware as well. An outline of the changes are:
- Moved the “saving” of rotate, scale, and pressure percentages from the initial (six steps) form into the actual individual rotate and scale form. The “representative” (for left and right) is still on the initial (six steps) form, but that is just saved instantly anytime it is changed. This eliminates confusion on when things are saved as well as improves the functionality of the initial (six steps) form.
- Completed the plotting of the COP line on the “colorful” pictures of the peaked foot images, and completed testing of the median noise filter “colorful” contouring of the peak foot images.
- Activated the “Save As…” buttons on the “colorful” peak foot images so that multiple bitmap (BMP) files of these images can be saved.
- On the colorful images screen, added an option to “Link the Left & Right Pressure Colors”. When increasing/decreasing the heat map, this allows the two feet to use the same colors-for-pressure. Also, if they’re not the same when this is clicked, the foot with the hottest map is instantly applied to the other foot.
- On the new foot movie cropping screen (and in the database), created space to show and store the original foot movie file that was used for each step. Also, saved but not shown, is the exact position of the crop box.
- On new cropping screen, added “Delete” and “Edit” buttons for saved steps so they could possibly be deleted or “tweaked”. When the “Edit” button is clicked, the correct full movie file is loaded, the sliders are set to the “step” frame-range, and the crop box is positioned to how it was saved.
- On the initial rotate-and-scale screen, a “When prompting, show only ASX files” checkbox was added. This will help eliminate confusion for TekScan users when selecting step movies to rotate and scale.
- On the initial rotate-and-scale screen, when prompting for a new step movie, it was made to default to the movie that was saved when cropping the frames from the foot movie cropping screen.
- On the actual rotate-and-scale screen, two new buttons were added: 1) “Reset Rotation & Scaling” and 2) “Restore Rotation & Scaling to Last”. You can only erase spurious pixels before any rotation and scaling. By using these two new buttons, you can “Reset”, “Erase”, and then “Restore”, thereby preserving the rotation/scaling work but still erasing pixels.
- Added a new list in the maintenance area for plantar pressure equipment. Also, on both the initial foot services screen, and the foot movie cropping screen, added a combobox so the actual hardware used for the plantar pressure study can be specified. The foot pressure report was also modified to report the equipment used.
- Added a new list in the maintenance area for plantar pressure condition. Previously, this had been a “hard coded” list on the initial foot services screen. Now, it is a combobox on that screen with the possible list maintained in maintenance. The foot pressure report was modified to report this “testing condition”.
November 12, 2019 * Changed the front-end: Version 2.142 - November 12, 2019
* Did additional testing of secure passwords, and decided to roll it out even though the logging wasn’t complete. The logging will be rolled out later. During testing, made several additional tweaks to the passwords, including the inclusion of a PDF help file providing some explanation of the passwords. This PDF file is accessible from two places: 1) The right-click context menu on the Shriners logo (before strong passwords are turned on), and 2) Within the “Maintain Users, Passwords, & Other” area of Maintenance, available to MAPS I.T. Administrators after password protection is turned on.
* When strong passwords are turned on, all the older style passwords are deleted out of the database. This prevents any conflicts from happening.
October 22, 2019 * Changed the front-end: Version 2.141 - October 22, 2019
* Put the “Custom” button for Philly in the title bar.
* Moved the competencies button down into an “Other Activities” area, and included a “Sports Medicine” section.
* Corrected problem with Services button not changing to “Edit” after a spine physical exam was performed.
September 13, 2019 * Changed the front-end: Version 2.140 – September 20, 2019
* Made several changes to the positioning of items on the PODCI report. Since later versions of Word, this report has been needing a bit of work, but it now looks better.
* Updated the Post Surgery Questionnaire so that the comments field wouldn’t be truncated under any circumstances, regardless of how long the comment was.
* On the MEC multi-patient outcomes report, in the procedure that gathers up the information for exporting the report, made a change to the way all of the services are found. Previously, all the services were more-or-less searched individually (both pre-op and post-op). Now, an attempt is made to identify the mocap service first (barefoot, with valid GDI). And then, that encounter date and test number is saved. All other services (PODCI, O2, Balance, etc) search first for a matching mocap date & test number. If that’s not found, then it falls into the previous search methods. This allows services on the mocap date to take priority.
* Made sure the percent TAGs achieved on the MEC multi-patient outcomes report were reported as percentages, per Excel column formatting.
* On the MEC multi-patient outcomes report, took Balance out of the functional outcome score. Also eliminated the z-score calculations of balance on the report, and replaced them with the two most salient calculated balance scores.
* Corrected a problem on the MEC multi-patient outcomes report with the “Technical Goals Achievement” and “Technical Goals Achieved by GMFCS” charts. Apparently this was some change from Office 14 to Office 16, where a percentage can’t be counted based on a value. To correct the problem, the Value() function was place around each of the percentages, converting them to a number.
* On the MEC multi-patient outcomes report, added MIN and MAX calculations to the “Timing Months of Pre-Study” and “Timing Months of Post-Study” columns.
* Made a change to the MEC multi-patient surgical goals achieved report on the “Included” tab of the Excel export. The MEC multi-patient outcomes report, when listing patients, would use patient initials as an ID. And, when there were duplicate initials, it would add a 2 (or 3 or whatever it took) to the initials to eliminate the duplications. However, on the MEC achieved report, on the “Included” tab, it didn’t do this. The code was changed so that duplicates on this “Included” tab also had the 2 (or 3 or whatever) when there were duplicates. However, a caveat should be stated about this. The achieved report keys off of the SurgicalGoalsAchieved table to find patients and their surgical goals achieved. And the outcomes report keys off of the Surgeries table to identify patients and surgeries for the report. In most cases, the goals achieved should be about the same distance out from the surgery. However, this isn’t always the case. For example, if a surgery was on March 1, 2015 and the achievements were marked on April 1, 2016 for patient John Doe (initials JD) … and then Jane Doe (initials JD) had a surgery on March 15, 2015, with achievements marked on March 20, 2016 … for the achieved report, John Doe would be found first (with Jane Doe marked JD2), but for the outcomes report, Jane Doe would be found first (with John Doe marked JD2). These two reports (outcomes and achieved) are generated with entirely different blocks of code, and it would take a great deal of work to rearrange this natural (but slightly different) sorting for the two reports. Given that there are only 30 or so patients total on the reports, a better approach may be to simply eliminate the ID from the “Included” tab of the achieved report.
March 25, 2019 * Several clean-up/refactoring changes were made. These are just changes that don’t affect what the user sees. Rather, it makes the source code easier to maintain and more organized. These changes weren’t done in the first place because there’s often a push to “just get things done”, with the most expedient path taken, which sometimes short-circuits this organization:
- Consolidated the frmPodciReportOptions into the more generic frmExportOptions.
- Developed a ShowModal call for frmPasswordEntry. This is also good prep-work for possible compliance concerns.
- Developed a ShowModal call for all the following forms: frmPeekAtC3dLabels, frmEmgConfigDesc, frmOfficeNotClosed, frmVideosForThisEncounter, frmExportOptions, frmSelectSpineCycles, frmBalanceCompare, & frmSpineSurgeryCompare.
- Consolidated all the following onto a single generic form, with ShowModal: frmFootCompare, frmO2Compare, frmOtPhysExamCompare, frmPhysExamCompare, frmBracesCompare, frmFallsCompare, frmSpineCOmpare, frmKeywordsImport, & frmHistoryImport.
* Expanded the frmMocapServiceInfo form so long GCD file names would fit onto it.
* Smartened up detecting Word open so it detects the new Word 2016 and later versions.
* Fixed a bug where, under certain circumstances if you Cancel while exporting the physical exam report, it leaves a copy of Word open in the background.
* Sped up the Master Report option by using Seek method on finding prior records.
* Corrected a bug in the Keyword Import from Prior Encounter procedure.
* Fixed a problem whereby, when selecting a prior-comparison encounter, if you didn’t select from list but still clicked “OK”, it could cause a problem.
* Fixed a problem on the Spine report when selecting a Spine Surgery but no Prior Comparison Encounter was selected.
* Smartened up the routine when editing an encounter’s date. When doing so and there are multiple encounters on that date (multiple Test Numbers), handling the patient’s folders was a bit problematic. Now, there are several new checks with choices (prompts) on how it should be handled.
* Fixed a problem on the Kinematic plots where a bogus gray line was sometimes plotted at the beginning of the plots.
* Enhanced the Balance reports to include the new published “Normals” data. Also, reworked them to put the most statistically significant measures at the top (color coded), and built a new pre-op report that’s more suited to the non-comparison situation.
* Added the Motion Model combobox to the Mocap Info screen. Also made the label clickable for help, and also made the physical exam Motion Model combobox clickable for help.
* On motion plots, when rescaling vertical axis, there was a sequence of events that wouldn’t correctly move the gray “normals” bands. This was corrected.
* Made sure the “PrinterSelected” prompt was shown anytime there was a paper report selected. It had been overlooked in several places.
* Vertically tightened up the OT Physical Exam report. When the surgery summary was long, the bottom would eclipse the footer.
* Placed the “Side Affected” prompt on both the main Physical Exam form and on the OT Physical Exam form. Originally, it was just on the patient’s demographics form. This helps to make sure it gets answered for various reports.
* Found a problem with the reporting of the House classification. When entered as II, it was reported as I. This was just a reporting issue, as the data was recorded correctly in the database. Also, if a type III was entered, it reported correctly.
* On the Upper exam (SHUEE) report, there were a couple of places where the “Reason For Referral” wasn’t filled in. It was corrected on both Word templates.
* Designed a complete plantar pressure “movie” cropping system. This vastly simplifies the creation of individual “step movies” from a larger data collection movie. Also, shuttled off the old Tekscan controller stuff so that it’s hidden (but it’s still available).
* Changed the front-end: Version 2.138 - March 25, 2019
March 19, 2019 * A problem was found with the way the Encounters2 table was managed. To deal with this, several double-checks at several points in adding/deleting/changing this table were made.
* Changed the front-end: Version 2.137 - March 19, 2019
March 1, 2019 * Added pelvic rotation to the OpenSim input file. It turns out that this pelvic rotation kinematic is not used in the calculation of muscle lengths. However, having this pelvic rotation in the OpenSim file does help to visualize the lower extremity when/if it’s opened manually in OpenSim.
* Fixed the motion Excel plot file so that the new muscle plots correctly “blank out” the slots that are excluded from printing (when printing is done).
* Corrected a glitch in saving the OpenSim input files in the encounters, when that option was selected from Maintenance.
* Removed the F1 Help option from MAPS. After years of being available, nobody ever even mentioned trying to develop the help documents. It can be easily re-instated if someone decides to start developing help documents.
* Started a framework for removing text prompts from the MAPS source code and placing them into a database. The framework was completed, and 600 prompts were identified and placed into this new database. There are MANY more to find and move, but this is a good beginning toward making it possible to translate the MAPS database into another language. With all the prompts in a database, it would be fairly easy for someone to do the translation work.
* Added a check for, when deleting an encounter, did a check to see if there were multiple encounters for the same date. If so, there was no prompt about also deleting the files folder, because it would be inappropriate to delete in that situation.
* Performed all the work necessary to pull all of the questionnaires into the new scheme of allowing multiple encounters on the same date (with differing test numbers (or codes) (TestNumber field). Previously, the questionnaires were only “one per MRN/Date”. Now, they’re “one per MRN/Date/TestNumber”. This includes the PODCI, PODCI+, SRS30, AbilHand, Braces, Falls, FAQ, Post Surgery, PedsQL, WUSPI, DotsR, & UBET. This included rewriting all the PODCI SQL reporting routines. This leaves only the Video Tracking and Surgical Goals that are still on a per MRN/Date index … and it is felt that it is appropriate to leave these two on this two-key index (rather than the three-key index). As part of this change, all the questionnaires were pulled into the “index relationship” structure of the database, which allows easier coding for database manipulation. However, it required a test-and-removal of any “orphaned” questionnaires to do this. These orphans are placed in a new database named MapsOrphanedQuestionnaires.mdb. Most users shouldn’t have any of these “orphans”. However Houston SHC almost certainly will for PODCI because they’ve been collecting PODCI for almost 20 years.
* Moved the PedsQL, Srs30, Faq, Falls, Braces, Wuspi, AbilHand, & PostSx questionnaires to DLLs, making space in the main MAPS front-end program for future additions/enhancements. From an end-user’s perspective, there is nothing different. Basically, this just reduces the memory footprint of the main MAPS program, only pulling in the questionnaire forms when they’re needed.
* Got Screen.Width and Screen.Height out of all the questionnaire DLLs. This is in preparation for using the Windows 10 monitor scaling.
* Performed work to substantially speed-up the exporting of EMG reports. As is often the case, when originally done, there was a rush to see this EMG project completed, and certain optimizations were neglected. I have gone back and programmed in these optimizations for this EMG report, and it’s now substantially faster.
* Converted the EMG report template from an XLTX file to an XLTM file (with macros). And, with this, I added buttons to allow the rescaling of the Y axis on any of the EMG plots. This is particularly useful when there’s a spike on the EMG plot.
* Changed the front-end: Version 2.136 - March 1, 2019
February 26, 2019 * Added new North Star Duchenne Muscular Dystrophy (DMD) assessment to the database. This included a new table (with all fields), a blank report, and a filled in report. This also has “help” buttons for each of the questions.
* Added 6 minute walk test to both OT and PT exams. It was added to OT to accommodate them seeing the children with DMD.
* Added the Brooke score to the OT exam, along with help screens.
* Created two new reports specifically for the DMD population of patients. They both combine pinch/grip, Brooke score, North Star score and timings, and 6 minute walk test. One is a detailed report including each of the three pinch/grip trials and normals. The other is a summary report that reports the current encounter and all prior encounters to show changes over time.
* Changed the front-end: Version 2.135 - February 26, 2019
February 20, 2019 * Fixed the problem of the missing vertical axis rescaling on the Progression Profile graphs. This wasn’t picked up because these graphs are unusual in that they don’t combine the GCD files. Rather, the plot several curves from a single GCD file. An exception had to be built into the vertical axis rescaling procedures.
* Corrected the “Apply” button on the Excel graphs when rescaling the vertical axis. Previously, it didn’t rescale the normal gray bands until “OK” was clicked. It now also correctly works for the “Apply” button.
* Changed the Excel plotting vertical axis rescaling so that it will handle decimal points.
* Added the Norms sub-folder to the registry so that the previously selected Norms sub-folder is the default for the next time.
* Fixed a problem with the movie player in the event it got tampered with on the file server.
* Corrected problem with the opposite strike/off tick marks on the TrunkLateralBend, TrunkFlexExt, & TrunkRotation plots. Decided to write a procedure and check all the plots for this, and found that the FootRotation plot was also off (which was fixed), and that several of the kinematic plots which appear on the kinetics tabs were off (and they were fixed as well). This should make the ticks at the top of all charts now work correctly (even with vertical axis rescaling).
* Got the MS_Sans_Serif font out of the Excel plot template forms. This MS_Sans_Serif font is being depreciated by Microsoft and is no longer distributed with Windows 10. Excel does a substitution, but it’s better to use a standard font.
* Added a feature on the rescaling vertical axes of Excel plots whereby, if a plot was selected, that rescale’s button would be highlighted if rescaling was selected.
* Implemented a Muscle Length and Muscle Velocity procedure. This was a multi-phase implementation:
1) Study and understand data needed for OpenSim to calculate the muscle lengths. As part of this, a specifications document was developed. It turned out it was all based on the following kinematics: PelvicTilt, PelvicObliquity, HipFlexExt, HipAbAdduct, HipRotation, KneeFlexExt, DorsiPlanFlex.
2) Figured out which muscles to focus on. A set of 20 was identified, with 12 of those actually developed into plots and gait parameters.
3) Figured out how to process a set of “norms”. This involved calculating 15 different means and SDs for the gait parameters and normalizing. It also involved average frame data for the mean and SD for lengths and velocities for all 20 muscles.
4) Using the norm data, when C3Ds were parsed into GCDs, these new muscle lengths, velocities, and gait parameters were calculated and included in the GCD files.
5) Two new plot tabs were added to the Excel plot template: MuscleLengths & MuscleVelocities. In addition, two new data tabs were added: MuscleGraphData & NormalMuscleData. And also, 72 new related gait parameters were added to the GaitParameters tab.
6) When GCD files were selected for plotting, the new muscle length and muscle velocity data was placed into the Excel plot file. The 72 gait parameters were also placed in the Excel file from those previously calculated and placed into the GCD file.
7) And finally, a new table (MotionParamsMuscle) was added to the database with all necessary index fields and the 72 gait parameter fields related to these muscle lengths and velocities. These were filled in when representative and repeatability plots were produced.
* Changed the front-end: Version 2.134 - February 20, 2019
February 5, 2019 * When deleting kinetics from the “Process Motion” screen, you sometimes got an error 75. This was caused from the creation of a temporary file in the wrong path. In many cases, it worked fine (as the temporary file was always deleted). However, in some cases, it caused this error 75. This was corrected by making sure the temporary file was always created in the patient’s encounter’s folder.
* Kathy (Chicago) pointed out a problem with the patient search algorithm (in the first Patients form). This was corrected.
* Expanded the number of point labels that the C3D reader code can read. It was realized that 255 labels was the limit for a Vicon file. It’s uncertain what the M.A.C. limit is, but these changes should work fine for those files as well. In Vicon, when the limit is exceeded, a LABELS2 (etc) section is created. (There is also a corresponding DESCRIPTIONS2 section.) Now, when reading the C3D files, these sections are combined, giving the appearance that there can be more than 255 labels in the main LABELS section. In other words, the different sections are transparent to the user. (At present, this doesn’t work for analog labels, but they’re less likely to overflow the 255 limit, although it’s not out of the question.)
* With later versions of Office (specifically Word), when pasting a picture from an Excel chart, they paste as a Shape (not requiring conversions) rather than an InlineShape (which does require conversion). To fix this, after the paste, a test is made to see if it went in as a Shape or InlineShape. This corrected problems with both the Spine report and the O2 report (the two places where this was done).
* Changed the front-end: Version 2.133 - February 5, 2019
December 31, 2018 * Turned off the HasDC and ClipControls properties (and made sure AutoRedraw was off) for all the Custom User Controls. This allows forms with many of these controls to load much faster in Windows 10.
* Added a ForceSystemDecimalToPeriod function to the startup procedure. This sets the entire Windows system to use a decimal “.” As the floating point decimal separator. This prevents locales that use a comma “,” from messing up various MAPS functions. All numbers in MAPS absolutely must use a period to separate decimals.
* Performed additional clean-up preparing for letting users use the new “Scale and Layout” features in Windows 10. This means abandoning all use of the “Screen” object in VB6 (except for enumerating fonts).
* More clean-up. Specifically, all of the array dimensioned checks were consolidated into one set of generic procedures. This includes the UDT arrays.
* Completed a new Motion Model system within MAPS. This included two new database tables (MocapMarkers & MotionModelMarkers) as well as an expansion of the MotionModels table. This change also involves extensive enhancements which are outlined in another document.
* Changed the front-end: Version 2.132 -December 31, 2018
September 25, 2018 * Renamed the KSDI index to the GPS index. This involved renaming all of the individual (nine) GPS plots and also converting them to z-scores in the database. It also involved renaming the actual database fields. Also, the GaitParameters tab (including the top 42 specifications) on the GaitParameters tab in the Excel plot file was reworked to accommodate this. A KSDI index was left in place, but it’s equivalent to 100 – GpsOverall * 10. To follow Richard Baker’s lead, it may be better to ignore this KSDI index.
* Made additional changes to the GPS concepts. The GPS measures based on z-scores are now named zGPS…, and the GPS measures based on degrees as units are called GPS… In other words, either/both approaches are now available.
* Hopefully, all the problems with processing the spine protocol with C3D files collected from a M.A.C. system are now all worked out. There was one spot where the four-character M.A.C. required marker labels weren’t being correctly processed. There was also another misunderstanding about how Cortex must be used to mark the spine motion events in an EVT file. Originally, we had agreed on them being labeled as “GENERAL EVENT” in the EVT files. However, some of the sample files had them labeled as “EVT1”, “EVT2”, “EVT3”, etc. I adjusted the MAPS software to read these EVT files with the general events marked either way. Just to document it here, the spine protocol market set, when collecting on a M.A.C. system is: LEAR, REAR, LSHO, RSHO, MCER, LCER, RCER, LCLA, RCLA, MLUM, LLUM, RLUM, LLRI, RLRI, LASI, RASI, LPSI, RPSI, LLCR, & RLCR. This is further outlined in the spine protocol instructional PDF. However, that document is written for a Vicon system, where the markers are labeled: LeftEar, RightEar, LSHO, RSHO, MCERV, LCERV, RCERV, LCLAV, RCLAV, MLUMB, LLUMB, RLUMB, LLRIB, RLRIB, LASIS, RASIS, LPSIS, RPSIS, LLCR, & RLSR (respectively).
* Changed the front-end: Version 2.131 - September 25, 2018
August 31, 2018 * Moved the “Upper Kinematic Options” button to a “Maintenance Depreciated” area, as Greg Slota has now corrected the Vicon BodyBuilder code for all the problems it had.
* On the upper extremity physical exam report, there are new “Grip” norms. The article (Butterfield, et al) was unclear about the units. I assumed they were KG, but it turns out they were pounds. The report was corrected for the reporting of units.
* On the cervical translation, the math was being done in MAPS. However, it’s now being done in some Vicon BodyBuilder code. The MAPS code was commented out and the values are now plotted directly from the C3D files. Also, “CervicalTrans” used to be raw but now it’s adjusted. And the raw is now named “CervicalTransRaw” in the C3D files.
* When certain kinematics weren’t available in the “normals” data being used, a specific patient’s plots would be grayed with large normal bands. This was corrected. However, to see the correction, the normals must be re-processed through Maintenance.
* Added new “Patient Count” and “Surgery Count” table to the Surgical Outcomes Details report. It was added to both the CP and Paraparesis reports. It’s on the Tables & Charts tab of the output report.
* Added a new “Patient Count” to the Surgical Goals Summary report. It was added to both the CP and Paraparesis reports. It’s on the bottom of the “Included” tab which lists the patients included.
* On the Surgical Goals Summary reports (both CP and paraparesis), added an “ID” column to the “Included” tab for patients. The ID is just the lowercase initials for comparing to the Surgical Outcomes Details reports.
* The word “Botox” was changed to “Neurotox” or “Neurotoxin”. This was true for Botox as a prefix, suffix, or whole word. This was done in all the report templates, all the MAPS forms, and all the database field names. The one place it was not done was in the actual MAPS database data. The one place it may persist is in the surgery procedure codes and descriptions. It is recommended that new “Neurotox” codes and descriptions be established, and the older “Botox” code and descriptions be depreciated (but not deleted, so as to not orphan older data).
* On the encounters and surgeries form, added an option that shows whether or not the surgery is an outside procedure. A little “(out)” notation is placed on all surgeries that have “Outside Procedure” indicated.
* As an oversight, with the new Ambulation Aids field on the motion plots, the representative plots were not correctly reaching back into the repeatability plots and indicating “representative”. It was due to the fact that the plot files now have the ambulation aid code on them. This oversight was corrected.
* Moved all the “Explore” buttons to the title bar. This was a change that’s been requested/contemplated for some time. And, since I was redesigning the Motion Plots form, it was time to do it. Also, as part of this, made sure the Tekscan Explore was disabled if the Tekscan patient’s folder can’t be determined.
* Changed the “Condition” drag-and-drop feature on the mocap Produce Plots form. Now, if you drag a prior repeatability condition to the condition drop-down, it fills in BOTH the condition and the ambulation aid. This helps with keeping track of what’s going on.
* On the Balance Report, highlighted the ellipse area and the area per second measures. These are the two with the best discriminant validity and will be used on the MEC report.
* On the Balance Report, corrected two printing problems: 1) corrected problem with COP path being shown too low, 2) corrected problem with extra boxes having a z-order underneath other things.
* Added Balance columns (pre, post, pct-change) to the MEC detail report. The balance “score” is based on z-scores of the ellipse area and the average area per second measures. The TD mean and SD used for the z-scores is: Ellipse: mean=1.7609, sd=1.4122; Avg area: mean=12.28, sd=12.23.
* Enhanced the “Reset ‘Linked Tables’ in Query Database” procedure in Maintenance. It now deletes any tables that aren’t in the main database, and adds any new tables that are found in the main database.
* Added additional verbiage that Houston wanted on the OT physical exam report templates.
* Fixed the paraparesis MEC surgical goals report whereby it skips the zero procedures.
* Added a compatible with pre-op Yes/No option on the Balance service. There’s also a note field for when it’s not compatible. This will primarily be used on the MEC report.
* Enhanced the Balance processing so that, when you go back into that form, the prior condition and images re-display on the form. This is one of the few places you can see the condition and backwards compatibility fields in the database. Also made changes so that you can change the condition and compatibility settings without needing to re-process the entire balance report.
* Added compatibility with pre-op Yes/No option to the O2 service. And, a note field for when it’s not compatible. This will primarily be used on the MEC report.
* Used the motion (actually surgical goals), the O2, and the Balance flags about pre-op to post-op compatibility to make a notation of the percent changes on the MEC detail report. Also, this was done for PODCI, but it was done automatically based on the person filling out PODCI. If it wasn’t the same person, the NotCompatible flag was set and noted on MEC report.
* On all pages of all four MEC reports (other than the graphs page), added two columns that denote the pre-op therapist and post-op therapist.
* Incorporated the Queries database update in with the code that checks the main database’s structure. It was just easy to do it here, and it also guarantees that the Queries database will stay up-to-date.
* Added a feature whereby the Competencies program and all files could be updated from the MAPS Maintenance area.
* Changed the front-end: Version 2.130 - August 31, 2018
August 18, 2018 * Fixed a problem with the new Upper Extremity Sit protocol (mostly Philly) flipping the affected/unaffected when it was re-loaded for editing.
* Fixed a problem with the old style (3 C3Ds per movement) spine protocol files not working correctly.
* Changed the front-end: Version 2.129 - August 18, 2018
July 27, 2018 * Made a change where it’s possible that ThoraxAngles could be treated as TrunkAbsAngles when parsing C3D files to GCD files. Traditionally, when doing trunk-only, they were named TrunkAbsAngles; and when doing full-upper, they were named ThoraxAngles. However, there are cases where you’re doing trunk-only (not full-upper), and it’s still named ThoraxAngles, and these cases cause problems. To correct this, the other full-upper angles were checked … if ThoraxAngles were found but no other full-upper angles, they were treated as TrunkAbsAngles (with a renaming when parsing from the C3D to the GCD). In both cases (ThoraxAngles and TrunkAbsAngles), they are with-respect-to-lab. This is per Houston code and also the Vicon plug-in-gait documentation.
* Found and corrected a bug related to XLSM (not XLS) files and the “Delete Kinetics from Sel. File(s)” button. The way the code was, it would never find the XLSM plot files, but this is now corrected.
* Added new options (and double-checks) for lower extremity kinetics when producing Excel plot files from GCD files. Specifically, on the frmMocapCreatePlots form, there are options for “Process Kinetics when Processing” and “Delete any kinetics from GCD files(s)”. These two options allow enhanced handling of kinetics. However, in addition to this, there is an option to double-check the kinetics when they are processed. The Ankle Flex/Ext Moments and Total Ankle Power are examined in swing phase. Any values greater than 0.5 (absolute value) are considered indicative of bad kinetics. When this happens, the user is show all the kinetics plots and provided options for not including them on the plots. A maintenance option was put in to turn-off this double-checking if so desired.
* Found a bug in the plantar pressure rotating-and-scaling when the same trial (export file) was used for multiple step-events. All the calculations were correct, but the image used for the report could get confused (possibly even showing a left for a right). To correct this, when a trial/file was used more than once, it was copied (with a new name) for the second (or third, etc) use.
* Fixed the issue of the DATE not getting put into the note when prior encounter’s GCD files were used for plotting. This got broken during some of the newer sub-folder gathering of GCD files, and wasn’t noticed for some time. It now works again.
* Corrected a small problem that was found when you exported a post-op exam and then immediately exported a pre-op exam. It would get confused and think it was still a post-op. This was corrected.
* In physical exam export, newer versions of Excel got confused about the R1 : R2 numbers, thinking it was a “time” because of the colon. This was fixed by exporting with a single-quote-mark, which instructs Excel that it’s definitely text, and not a time.
* Tracked down and fixed the problem with prior surgeries not fully reporting on the history report. It now reports them all, regardless of how long the text is, possibly pushing some things at the bottom of the page off to the next page.
* New C3D measurements were brought into the MAPS system. This includes processing them in “Norms” processing, showing them on the GaitParameters tab of the Excel plot file, and storing them in the MAPS database. Be sure to note that a re-processing of norms is required to get norms means-and-SDs. Also, these are treated as SpatioTemporal (non-percentage) in terms of age-and-gender control when reporting norms. The complete list of these is: Bodymass, Height, InterAsisDistance, HipWidth, LegLength, AsisTrocanterDistance, KneeWidth, AnkleWidth, TibialTorsion, ThighRotation, ShankRotation, StaticPlantFlex, StaticRotOff, AnkleAbAdd, ShoulderOffset … with all but the first four having Right/Left (or Same/Opposite) distinctions.
* Added “Move Up” and “Move Down” buttons to the “Gait Param Report Slots” area in Maintenance. This makes it much easier to customize the gait parameters tab on the Excel plot file.
* Added a new “Quick Plots” feature to the Mocap Processing and Mocap Create Plots windows. This new “Quick Plots” window stays open as a secondary window so long as you don’t back out beyond the Services window. This “Quick Plots” window lets you quickly plot any GCD file in the encounter, and pick any of the kinematics and/or kinetics for comparison. There is also a “Quick Export” feature that allows you to export your work as a bitmap image.
* Added new kinematics to processing: Pelvis Progression Angle (PPA), Knee Progression Angle (KPA), Ankle Progression Angle (APA), Tibia Tilt Abs (de-rotated by KPA), and Tibia Tilt Abs (de-rotated by APA). There are also several new gait parameters for the Tibia Tilt Abs (de-rotate by KPA): SagTibiaTiltAtIC, SagTibiaTiltAtFootOff, SagTibiaTiltRomStance, SagTibiaTiltMinStance, SagTibiaTiltMaxStance, SagTibiaTiltTimeToZeroInStance, SagTibiaTiltTimeMinStance, SagTibiaTiltTimeMaxStance, SagTibiaTiltMinSwing, & SagTibiaTiltMaxSwing. Both the new progression angles and the tibia tilt are seen on a new tab of the Excel plot file (KinematicsTib&Prog). And the new gait parameters are at the bottom of the GaitParameters tab, and can be included on the top report via Maintenance ().
* Changed the front-end: Version 2.130 – August 13, 2018
July 2, 2018 * Wrote a VB6 Add-In that goes through and completely removes the MS Sans Serif and MS Serif fonts from the source code, including in the RTF Button and Label controls. And then applied this Add-In to all of the forms in the main MAPS program as well as all the DLL support files. This completely eliminates these fonts from the MAPS project. This should also help speed things up a bit.
* Changed the front-end: Version 2.128 - July 2, 2018
June 25, 2018 * Completed the addition of Stance Duration Percentage of Cycle as a gait parameter. It’s included on the Parameters tab and also on the Top 42 list for putting at the top of the report.
* Changed the “GDI (L:R)” and “KSDI (L:R)” lines in the Diamond graphs tab (Excel plot template) to “GDI avg (L:R)” and “GDI rep (L:R)”.
* Changed the GDI reporting on the Diamond Graphs during Excel plot creation. For the plot being generated, it always fills in the “GDI avg (L:R)” section. If it’s a representative, it also fills in the “GDI rep (L:R)” with the same numbers, and these representative plots should just have one left and one right cycle selected. Also, if it’s a representative, it reached back into the repeatability plot file and “patches up” the “GDI rep (L:R)” section for these numbers (so that the repeatability will show both average and representative for the GDI). Any “other” plot files, just fill in the “GDI avg (L:R)” section.
* Edited the LoadDiamondComparisonFile procedure in the Excel plot file template so that it calculates both representative and averaged GDI when loading from a previous comparison file.
* Walked through all the code for the diamond graphs related to Cadence and made sure Cadence-STRIDE was being used. Also changed the legends to reflect this. The only remaining concern is whether importing comparisons will still find “step” numbers, but I don’t think it will. Also, as part of this, the X-axis for the diamond Cadence plotting was changed to 0-100 (rather than 0-200).
* Improved the notations on the diamond graphs regarding what was controlled in several ways. A single-cross and double-cross were used to denote controlled or not, with each normal data area showing these crosses.
* Changed the front end: Version 2.127 - June 27, 2018.
June 18, 2016 * Completed the change to add TestNumber to the keys of the Encounters table and ALL downstream tables with indexes and relationships to Encounters. A complete list of these tables is: BalanceServices, EmgServices, EncountersCustom, FootMilwaukeeAnglesEtc, FootPressureServices, FootPressureServicesCop, HistoryInfo, HypertoniaExams, Keywords, MotionServices, O2Services, OtPhysicalExams, OtShueeExams, PhysicalExams, PhysicalExamsMore, PhysicalExamsMore2, SpineMotionParamsAxial, SpineMotionParamsCoronal, SpineMotionParamsMain, SpineMotionParamsSagittal, SpinePhysExamsAndXrays, UpperExtremSitServices, UpperExtremSitParams, MotionParams, MotionParamsMFM.
For all of these tables, the new TestNumber field had to be added (just after Date), any relationships had to be deleted, any/all indexes had to be modified to include the TestNumber fields, and then the relationshps had to be re-added including the new TestNumber field.
Then, one all that was done, everyplace a Seek method was used on these tables had to be examined. If the index included the new TestNumber field (because it originally included the Date field), that new TestNumber field had to be added to the Seek method.
In addition to all the above, the ResearchStudies table had to be handled differently, as it doesn’t have the typical indexes, as these research studies can be added at either the patient level and/or the encounter level. Therefore, a separate EncounterTestNumber field was added to this table and appropriately handled.
For the sake of circumscribing this work to make it manageable, a few encounter-level tables were not included. This includes all the questionaires (AbilHandData, BracesQuestionsData, DotsrData, FallsQuestionsData, FaqData, PedsqlData, PodciData, PodciPlusData, PsiData, Srs30Data, UbetData, WuspiData), the VideoTracking table, and the tables related to surgical goals (set and achieved). Basically, here’s what this means: If you have two encounters on the same date (with different TestNumber values), and you go into the questionnaires (or surgical goals or video tracking), you will see the same data regardless of which of the two encounters you go into (if they’re the same date). As a note, it’s entirely possible to make absolutely everything recognize the separate encounters on the same date. It would just take more work.
And just so it’s noted, there will not be separate patient/encounter folders for different encounters on the same day. It’s always been protocol to include the TestNumber on the file names produced by MAPS, so these file names shouldn’t conflict, although they will all be in the same encounter folder.
* Added handedness to the OT physical exam form, and to the OtPhysicalExam table.
* Made several changes to the OT physical exam reports (both the pre-op version and the post-op version), specifically:
• Changed Grip norms from regression equation to table lookup. Also included a consideration of hand dominance when doing this.
• Changed Key Pinch norms from regression equation to table lookup. Also included consideration of hand-side when doing this.
• Changed Box & Blocks norms from regression equation to table lookup. Also included a consideration of hand dominance when doing this.
• Changed FDT norms to split out dominance vs non-dominance but still used regression equations.
• Changed several headers on the tables to report hand dominance and how things were controlled.
* Changed the front end version to 2.126 dated June 18, 2018.
June 15, 2018 * Fixed a problem with the relationships in the EncountersCustom table. Originally, it had a one-to-many relationship with the Patients table. However, this created a problem because a record in the Encounters table could be deleted and it wouldn’t delete the corresponding record in the EncountersCustom table. To correct this, the relationship was deleted, and a new one was added. This new relationships was between Encounters and EncountersCustom, and was a one-to-one relationship. Also, the structure update code spun through all the records of EncountersCustom and deleted any orphans (as compared to the Encounters table).
* Placed the surgery note field (which already existed) on the AddEditOtSurgery (upper sx) form.
* Added an optional button to the main menu to open the queries (PatientsAndServicesQueries.mdb) database. The option is set under miscellaneous options in maintenance.
* Added a “Code” as well as the description for the ambulation aids list in the database. This was to accommodate the new specification of ambulation aids when plot files are produced.
* Completed work to add AmbulationAid to the indexes of the MotionServices, MotionParams, & MotionParamsMFM tables. This involved:
• Adding a new AmbulationAids field to each of these three tables and filling it in with “not specified” for all existing records.
• A Condition2Key index was added to the MotionParams & MotionParamsMFM tables. This index included the new AmbulationAids field.
• A Condition2Key index was added to the MotionServices table, which included the new AmbulationAids field.
• The old relationships between MotionParams and MotionServices, was well as between MotionParamsMFM and MotionServices was deleted. And new ones were added which contained the new AmbulationAids field.
• A new Primary2Key index was added to both the MotionParams & MotionParamsMFM tables. This was necessary for keeping track of the GCD files in these tables, while including the new AmbulationAids field.
• The old PrimaryKey index in the MotionServices table was changed from being Unique to non-Unique. The index wasn’t deleted so that backward compatibility could be maintained. But this old index didn’t include the new AmbulationAids field so it couldn’t be unique. In the new code, this old PrimaryKey index is no longer used. Instead, the new Primary2Key index is used.
• A new “Code” field was added to the AmbulationAids table. This is the master list of ambulation aids. Also, previously, this had been maintained with the standard set of forms for maintaining simple lists. To accommodate this new code field, new frmMaintainAmbAids and frmAddEditAmbAids forms were designed and coded. These codes are used as an additional suffix on the plot Excel file names. If “not specified” is the ambulation aid, this code is left blank.
• In addition to the above, a pulldown-listbox was added to the frmMocapCreatePlots form which allows for specifying the ambulation aid for a specific set of plots. And all the work necessary to integrate this was done.
* When defaulting to the old Houston normals (when no other normals were available) there was an error in using these normals. Specifically, the “Notes” tab doesn’t exist in the old file, and it was copied (with an error) to the new plot file. The fix was, if the old Houston normals were used, the copying of this “Notes” tab was skipped, which didn’t affect any processing.
* In Maintenance, where MAL Therapist and OT Therapist lists are maintained, change it to read “Staff/Therapist”. This was done to accommodate situations where it may not be an actual “Therapist” doing some aspect of the study (such as O2 or Spine or Data Processing). For instance, on the O2 screen, this list is used to specify the “Tech”. On the Spine screen, it will be used to specify the “Staff” who did the study.
* Added a new Evaluator field to the SpineMotionParamsMain table. This is primarily used for inter-rater reliability studies, comparing different evaluators. The evaluator can be set separately per test number (even if on the same date). This new field is set on the main frmAddEditSpineMocap form.
* Completed the addition of a new Upper Extremity Sit service. This primarily involves the import of sitting shoulder motion collected by Vicon and then processed by a LabView program. The C3Ds are also processed by some BodyBuilder scripts to produce trunk motion kinematics. MAPS simply imports this processing, displays it, and then stores it into the database for research purposes. At this time, no report of the data is within MAPS.
* Added a “Open Custom DLL” button to the frmPatients form. This specifically allows users to develop their own patient (and any service) entry screens. Ross and Spencer (in SHC Philly) wanted to do this, and this provides them a mechanism for doing it.
* Added an (optional) “Competencies (DLL)” button to the Main Menu. As with the above, this attempts to execute an external DLL file which will allow others to develop an independent Competencies database. As part of this, the MAPS program creates a new MapsCompetenciesDatabase.mdb file within the database folder. It is this new MDB file that this Competencies DLL will use.
* Fixed a problem in the Spine protocol whereby cycles 1,2,3 were always processed even though possibly others were specified (possibly 1,2,4).
* Changed the front end version to 2.124 dated June 15, 2018.
May 15, 2018 * Added a C3D “player” to the C3D “viewer”. Second button down. It shows and plays the C3D markers very similar to the way Nexus or other C3D software shows them.
* Changed the front end version to 2.123 dated May 15, 2018.
April 19, 2018 * When plotting the “norms” gray bands, it was being directed to the patient’s data column data, rather than the norm’s column data. In many cases, this was the same, but not in all, which was causing many of the gray bands to be missing. This was corrected.
* Corrected problem with latest versions of Excel not able to use the .Select methods in certain circumstances. This was particularly problematic when copying an entire worksheet, as when the normal data was copied for plotting gray bands.
* Added several things to improve the tracking of research studies in the MAPS database, including:
• Added a “Edit Research Studies” button to the frmAddEditPatients form. It was already on the previous (frmPatients) form, but it helps to be on the add/edit form as well.
• Added a new Prospective (yes/no) field to the ResearchStudyList table, and added it to the frmMaintainResearchStudyList.
• Added a new ResearchOnlyPatient (yes/no) field to the Patients table, and added it to the frmAddEditPatients form.
• If a patient only has one research study attached, show that study name in the status bar on the frmPatients form.
• Added PerEncounter and EncounterDate fields to the ResearchStudies table.
• On the frmEncountersAndSurgeries form, included a button to add research studies to the specific encounter of a patient. Also, added this button to the frmAddEditEncounters form.
• On the frmPatients, frmEncountersAndSurgeries, frmServices, & frmServicesQuestionnaires forms, added a status line that shows the research study of the patient. If there is more than one, it states “Multiple Research Studies”. This status function also keeps things straight when there are studies per encounter.
* Fixed a problem with the way temporary queries were deleted. Specifically, this created a problem with the “Patients Listed and Sorted In Various Ways” query function. The error was noticed in other places, but apparently wasn’t causing any problems.
* Changed the front end version to 2.122 dated April 19, 2018.
April 17, 2018 * Fixed the problem with not being able to rescale the vertical axis on Total Hip Power, Total Knee Power, & Total Ankle Power. In the Excel file, the word “Total” was used as a preface, and this wasn’t used on the internal name of the chart. This was corrected.
* This one is just a log-entry note. There were three cases involving seven gait parameters that were swapped. This was occurring PRIOR to these fixes. They were definitely swapped in the GaitParameters tab of the Excel plot files, and possibly also swapped in the database’s MotionParams table. Further validation is necessary to make sure they were swapped in the MotionParams table. However, all of this is corrected now! Specifically, the Ankle Peak PF & Ankle Peak DF were swapped. And also, the Ankle Moment Plantar Flexor Area ST, Ankle Total Power Absorption Energy Area, & Ankle Total Power Generation Energy Area were swapped in a round-robin fashion. And also, the Min DF in Ipsilateral Single Stance & Peak DF in Ipsilateral Single Stance were swapped. For any future research using these fields, this date should server as a cutoff to verify these fields.
* Changed the front end version to 2.121 dated April 17, 2018.
February 11, 2018 * Added the xlsm extension to the Excel file gathering when viewing all files so the plot files would be on the list.
* Made many changes specific to the gait processing of C3D files, through plotting. This only affects gait, and not other protocols using C3D files. Basically, the idea was to remove all high-level processing from the Excel plot template file. The only processing remaining in the Excel template is whether or not to show norm bands, whether or not to show various optional plots, rescaling vertical axes, printing, and a GoTo tab button. And, none of those functions have any “interface” with the actual MAPS program. In other words, there is no longer any interface between MAPS code and the Excel file code. This completely prepares the entire system for Windows 10 requirements.
As part of all of this, all the calculations of all gait parameters (including GDI & KSDI indexes) was pulled entirely into the MAPS program. This will vastly simplify the addition of more gait parameters (such as those desired for upper extremity) in the future. Since the gait parameters are all calculated in MAPS now, it was decided to also place them in the GCD files when they’re parsed from the C3D files. This may make various research easier in the future. These gait parameters (for repeatability and representative cycles) are still stored in the database as part of processing. Before, they were calculated in Excel and then retrieved for database storage. Now, it’s all handled within MAPS.
As part of the “Normals” processing and preparation, a version number was attached to the processed normals file. When changes are made to this normals processing, it will now be possible to warn the user that they’re using an old normals processed file, and recommend that they be re-processed.
Basically, the Excel plot template is now much more of a “shell” rather than a program in itself. As such, virtually all of the necessary calculations and processing are now done in the MAPS program. The Excel file is just “filled in” with very few Excel “functions” used for anything. As such, there is one loss of functionality: In the past, it was possible to calculate the spatiotemporal and/or kinematic-kinetic norm comparison numbers while controlling for the patient’s age and gender. This decision could be changed after the Excel plot file was produced. However, now, this decision is made in the Maintenance area of MAPS and cannot be changed from Excel (without reproducing the plot file). The setting is in the “3D Motion System & Plot Options” of Maintenance.
As part of this re-work, several “speed ups” were attempted in producing plot files. This will never be an extremely speedy process, as a great deal is being done. However, it is faster than it was. Also, the “Working” box reports much more about what step it’s on than it previously did.
A few other changes that came along with all of this are: Validation that kinetic normal bands are working as desired; pre-set all the gait parameters Excel font formats; make sure that all gait parameter averaging is done in a left-side, right-side, and then average-two-sides fashion; make sure the Diamond graphs tab can import (for comparison) either the old way or the new way; streamline both the gait parameter lists and the list of plots such that new ones can be much more easily added in the future.
* Changed the front end version to 2.120 dated February 11, 2018.
January 23, 2018 * Cleaned up some additional font sizes on the Gait Parameters tab of the Excel plot file template. Also, MAPS was altered to make sure these font sizes are used when placing the params into the Excel plot file.
* Put a new “Goto Tab…” button on the Excel plot file. This allows for easier navigation in the Excel file to different tabs.
* Made the loops that access the Excel plot file tabs independent of the tab order. This allows users to re-arrange the tabs without breaking these loops.
* Completed a final pass on processing and plotting upper extremity gait motion. This includes head, neck, thorax, lumbar, shoulder, elbow, & wrist. There are also head translation plots which calculate a “raw” translation (which includes flex/ext) and an “adjusted” translation which has the translation due to flex/ext subtracted.
As part of this upper extremity work, a relatively large rewrite was performed on the code that produces the plots. There are several pieces to generating new plots: 1) identifying a “slot” space for them in the Excel file, 2) identifying a “slot” space for the strike-off tick marks on the slot, 3) identifying a space for the normal-gray-band means and standard deviations. 4) determining GCD labels for each plane of the new slots, 5) instructing MAPS code to parse the new angles into side-strides for the GCD files, 6) instructing MAPS to place the new GCD data into the Excel plot file for plotting, & 7) putting code into MAPS so that when “normals” are processed, the new angles get included. All of this was streamlined into one MAPS module so that all of these pieces could be easily identified for the new angles.
* Added an optional “Open C3D” button to the Main Menu. The option is set in Maintenance under Miscellaneous Options. This just allows a quick way to explore any C3D file.
* Completed first pass of work to allow several “adjustments” to the Upper Extremity Gait Kinematics (HeadAngles, NeckAngles, ShoulderAngles, ElbowAngles, & WristAngles) to allow for corrections in the Vicon BodyBuilder code. These “adjustments” are in the maintenance area and applied when moving from C3D to GCD files (i.e., parsing). Along with, parsing of the NeckAngles was included, which it wasn’t previously.
* Changed “Trunk” to “Thorax” on the existing KinematicsUpper tab of the Excel plot file.
* Added the parsing of PelvisAnglesROT if they’re found in the C3D file.
* Put user name on the Blank.xltx file to prevent locks bumping into each other.
* Changed the front end version to 2.119 dated January 23, 2018.
January 19, 2018 * Changed the “Buttons” and “Zippers” on the OT physical exam ADLs to have all the options of the other ADL assessments, rather than just Yes, No, Device.
* On the Grip & Key Pinch (both the OT form and the Normals collection form), added clear options for collecting data in Newtons, Pounds, or Kilograms (Kiloponds). Also, saved the last way it was assessed in the registry so it would stay the same way it was the last time.
* Deleted the 2-point static, sensory “other”, and dexterity “other” assessments from the OT physical exam report.
* On the Balance report template, made the “extra” little boxes square, and brought them to the front in z-order.
* On the motion graphs template file (MotionGraphsNew.xltm), on the Diamonds tab, changed “Speed” to “Velocity”.
* Made a new “Maintenance” option such that the units of instrumented strength, for reporting purposes, can be specified. The options are Kilograms, Pounds, or Newtons. This option is used to “customize” the OT physical exam report per the chosen units. As an FYI, they’re always stored as kg in the database, but this is possibly completely hidden from the user (with screen and report conversions automatically performed).
* Made a change (similar to above) to where strength units can be changed for all the other strength tests (on both main physical exam form and the “normals” physical exam form). In this case, the numbers are stored in the database as Newtons (because that’s the way it was originally done). Also, for these, there is only a limited reporting option, and the report is still always Newtons. That may change at a later time.
* In the research studies area, added an option for each study in which a patient participated, they can have a unique study ID for that study. In other words, each patient can have several study IDs, one for each of their studies. This was fully implemented in the “add study to patient” and in the “batch add (multi-patient)” areas.
* Changed the front end version to 2.118 dated January 19, 2018.
January 15, 2018 * On the master gait report templates, made a couple of changes:
• Removed double-spaces between the Normal, Impaired, Unable note. They were causing some grammar notice.
• Put a new Misc Maintenance option allowing for all physician signature lines to be removed from reports. This was also implemented on the templates.
* Implemented a very large change that gives MAPS the ability to do all the linear algebra that Vicon BodyBuilder scripts do. By itself, this was just the addition of a module named modBodyBuilderMath. This was then used to translate and implement the static and dynamic MOD files for Vicon into MAPS. This allows M.A.C. mocap systems to collect, process, and report spine protocol data.
* Created a misc. option to allow either “Motion Analysis Center” or “Occupational Therapy” to be the department listed on the SHUEE and Upper Exam reports.
* Added a large item (several bullet points) of text to both the pre-op and post-op Upper Exam reports.
* Made a change to the way Office XML (docx, dotx, xlsx, xltx, etc) are extracted from MAPS’ resources. Due to VB padding, they have to be post-processed a bit. I did hard-code the sizes, but this was quite inconvenient. Rather than hard-coding sizes, I figured out how to find an EOF offset for these file types, and cropped the VB padding from the files.
* Changed the front end version to 2.117 dated January 15, 2018.
December 8, 2017 * Corrected a minor text box overflow on the COPP version of the foot pressure report. In certain cases, the “norm” comparisons weren’t fitting into the text boxes.
* Fixed the display of therapist names on the EmgMusclesSetup form. I suppose this is just something that has been overlooked because this wasn’t an area that has been worked on in quite some time.
* Added a series of new fields to the Surgeries table. It was actually 18 fields in all, but this was only because surgical goals can possibly be evaluated on three different encounters. In most cases, they’re only evaluated on a single post-op encounter. From this perspective, there are only 6 new fields: GoalsConfirmedBy2ndPt, NotConfirmedWhyNot, GoalsBackCompatWithModel, NotCompatWithModelWhyNot, GoalsBackCompatWithCondition, & NotCompatWithConditionWnyNot. These are all set on the Goals Achieved form, and reported on both the CP and Paraparesis Detailed MEC reports.
* Added the HAT’s (Hypertonia Assessment Tool) manual to the resources. The website link to the document has gone dead.
* Added “catch” for Win E keystroke so that Windows Explorer could be pulled up from anywhere (except certain excluded areas such as Viewer Only and Questionnaires). The buttons are still there, but not needed.
* Made several “Clean-Up” changes to the O2 report:
• Consolidated the “Addendum” report (and templates) into the regular report. There are now actually three versions of the report: Typical, Addendum, & Stand-Alone.
• Cleaned up querying for pre-op comparison so it doesn’t show “later” encounters.
• Removed the embedded Excel and copied-and-pasted pictures of the VO2 graphs instead. This makes the Word reports much easier to manage.
• All of this assists with making MEC report comparisons easier.
* Added a “Print The Plots” button to the C3D_Viewer portion of the MAPS program. This was needed to perform validity checking of the Upper Extremity model which is undergoing intensive review.
* Change the “Explore Folders” buttons to be more consistent throughout the MAPS forms. They all just read “Explore Folders (Ctrl E)”. Also, a Ctrl E from anywhere will also call up the Windows Explorer in the best location for wherever the user is in MAPS.
* Fixed a problem with a Kg-to-Lb conversion on the Upper Physical Exam report. It was just on the report. There were four places where the conversion did a divide (2.2) and it should have been a multiply.
* Made several changes to the physical exam “Norms” collection form. This also involved some upper extremity:
• Added Hand Depth & ASIS-to-GT to the Mocap Info Form.
• Made the Mocap Info Form editable so that things could be changed/added directly from that form.
• Added ASIS-to-GT to the Norms Phys Exam form.
• Added Hand Depth to the Norms Phys Exam form.
• Added a new tab to the Norms Phys Exam form for Grip & Key Pinch, and copied all those fields from the OT Phys Exam form. They go into the same place in the database regardless of where they’re entered.
• Deleted Hip Abd, Hip Add, Hip Ext, Ankle Plaflx, Ankle Inv, & Ankle Ev from the Norms Physical Exam Form’s strength test tab.
• Added Instrumented Wrist Extension and Wrist Flexion strength fields to the database.
• Added Wrist Extension and Wrist Flexion to the Norms Physical Exam Form’s strength test tab.
* Cleaned up the function of the MAPS “Available Features” flags. Specifically, there were cases where turning the flags off didn’t hide everything that they should. This was specifically done for those people who wish to use MAPS for nothing but administering PODCI or some other questionnaire.
* Worked extensively on “glitches” with Windows 10. Finally figured out that these glitches were only when executing from the VB6 IDE (i.e., the source code), and weren’t problems for users using the compiled program. However, it’s clear that Windows 10 is coming, so it’s important that all functionality is tested for this version of Windows. At this time, all seems to work fine on both Windows-10-32-bit and Windows-10-64-bit. (As well as MS-Office-32-bit or MS-Office-64-bit, any version that’s Office 2010 or later.)
* On the “Export/Print Combined MAL Exam, O2, Foot, Outcomes, Podci report” button of the Services screen, improved the gait-post-op export to allow for O2 and/or Foot studies that are on a different date from the actual exam/mocap services. This is true for either the pre-op encounter and/or the post-op encounter. As a note, this report is still tied to the Excel version of the physical exam report (used by SHC-Houston, Chicago, & Shreveport).
* On the Gait-Post-Op version of the “Export/Print Combined MAL Exam, O2, Foot, Outcomes, Podci report”, on the Outcomes section, there was a problem in the way Pre-to-Post changes were determined for Velocity and Stride Length. This was corrected. It now uses the average of all the barefoot repeatability strides.
* Changed the front end version to 2.116 dated December 8, 2017.
November 21, 2017 * Added a new EncountersCustom table to the database. This table is indexed and has relationships just like the Encounters table, but it only “inherently” has the AutoID, MRN, and Date fields in it. The purpose of this table is to allow individual motion labs a way to place some “per lab” custom data into the database without tampering with the primary tables. Records will be placed into this new EncountersCustom table anytime a new encounter is added or anytime an old encounter is “touched” in the MAPS program in any way. Users can add other fields to this database as they like, but it is not advised to add additional indexes or relationships to this EncountersCustom table.
* Changed the front end version to 2.115 dated November 21, 2017.
November 17, 2017 * Built a new procedure to replace text with “long” text (longer than 250 characters) in shapes of a Word document. This specifically affects the Erie and Springfield physical exam reports. Their comments could get long. This works in other areas because these comments don’t go into a Word shape (i.e., box).
* Completed the Springfield physical exam data entry screen. This involved adding a Misc#2 tab to the main physical exam data entry screen. It was also required to add a PhysicalExamMore2 table to accommodate all the new fields. About 60 new fields were added to the database to accommodate everything they measured (and the ways they measured it).
* Added AnkleWidthWithBraces to the Nexus fill-in pop-up form.
* Changed the front end version to 2.114 dated November 17, 2017.
November 7, 2017 * Found a bug in the customizable Gait Params Report where it was possible to get a non-existent Gait Params code onto the report (via Maintenance). And then, when generating plots, an Error 9 would crash the program. This was fixed by checking the validity of all Gait Params codes when they were read from the custom report settings.
* Changed the front end version to 2.113 dated November 7, 2017.
October 27, 2017 * Made a small change to the default sentence in the “Present Condition” box on the Physical Exam screen.
* Added an “Outside Physician” field in both the Patients and Encounters tables. They also appear on the Add Patient and Add Encounter screens.
* Changed the front end version to 2.112 dated October 27, 2017.
October 20, 2017 * Put finishing (first solid rollout) touches on the Spine Protocol. This includes a button on the Spine Maintenance form to unpack all the necessary files to run the protocol. It also includes a very detailed PDF file which links to a video that further explains the protocol.
* Added a “Write Email to Users Willing to Help” hyperlink to the main menu of the MAPS program. This calls up a webpage with a list of people willing to help others.
* Added Upper1, Lower1, Upper2, & Lower2 spinal fusion (vertebrae) fields to the spine surgery record. And they are maintained on the spine surgery form. At this time they’re not reported, but saved for research.
* Made four “Maintenance” options for Ethnicity, Primary Dx, Secondary Dx, & Pattern to allow typing in these fields when new patients and encounters are added. They also appear on the history form. This (optionally) allows typing in data that’s not on the pre-defined list (dropdown).
* Fixed the problem on the Philly cover sheet where medical history and other fields were getting truncated when there were more than 255 characters of text to be placed on the report.
* If the ear markers aren’t present for the spine model, it was still printing C1 to mid-PSIS calculations, but C1 wasn’t a valid number. This was corrected to just print “NA” when the ear markers weren’t present.
* Fixed a problem where, under certain circumstances, when a patient was deleted on the patients form, all the SRS30 questionnaires would be deleted. This was a rather severe bug, but the SRS30 is new, and “Delete Patient” is seldom used, so it shouldn’t have caused great harm. It is now fixed.
* Changed the Spine MOCAP protocol so that for the “Thoracic” and “Total” (single segment) segments, the “thorclav” and “totalclav” kinematics (rather than “thoracic” and “total”) were used on all but the “Flex Floor” and “Flex Box” motions. For those two motions, the “thoracic” and “total” segments were continued to be used. This was done to remove thoracic triad movement from affecting results.
* Increased the C3D file name length from 30 to 40 characters (just name, no path) for the spine C3D files in the database.
* Changed the C3D listbox in the spine protocol form to dig through all sub-folders in the encounter when locating the C3D files. This is hopefully the last place that this needs to be done.
* Fixed problem with C1 to mid-PSIS static offset (both A/P and Lateral). The code mistakenly just calculated the C7 to mid-PSIS offset twice. It’s now correctly being calculated.
* Fixed problem in Spine protocol with it not finding the correct MAX values. The problem was that I used an absolute value from static to find it, but there are cases (particularly in extension trials) where the flexion will go beyond the extension (even when compared to static). Therefore, specific attention has to be paid to signs (+/-) throughout, without any use of absolute value.
* Found a bug in the lateral bend (left & right) when calculating the percent to floor from shoulder. The wrong marker label was being used in the calculation.
* Changed the front end version to 2.111 dated October 20, 2017.
October 6, 2017 * Put the SubclassForFixedSize and Dragger calls into the Track Encounters form. It was needed for smaller monitors.
* Changed the Tekscan ASCII file reader so that it just “fills in” with zeros when a file is too small, rather than stopping. This allows the processing of Tekscan files collected with the shoe-inserts.
* Added a “yyyy_m_d” option to the encounter folder format. This is the format used by SHC-Springfield.
* Added an option to create up to eight additional sub-folders when encounter folders are created. The names of each of these eight is user definable. This is in addition to the “Videos”, “Files”, etc. sub-folders.
* Added an option to have the patient folders named with the MRN as well as the patient’s name. This was to accommodate the Springfield way of doing things.
* Changed the front end version to 2.109 dated October 6, 2017.
September 14, 2017 * With respect to ShoulderDepth, ElbowWidth, WristWidth, & HandDepth on the physical exam forms, it was discovered that we were collecting these fields in duplicate. One set was in the table PhysicalExams and the other set was in the table PhysicalExamsMore. These fields were consolidated (with data moved) into the PhysicalExams table. Moving of data was done as follows: If data were found in PhysicalExams, it was not changed. If PhysicalExams field was blank and PhysicalExamsMore field was not, it was copied. Once this was done, the duplicate fields in PhysicalExamsMore were deleted.
* Put some page breaks for printing the graphs in both the CP and Paraparesis MEC reports. The graphs were designed to be copied and pasted, however, during pre-checking, they are sometimes printed. The page breaks just makes printing much cleaner.
* Removed the TabStop from the MACS option buttons on the OT physical exam form. The reason is, when the Tab key was used to get to these option buttons, it would auto-select MACS level I, which was not desired. Just removing the TabStop solved the problem.
* On the “Add New Encounter” form, changed the Data Processing, Report Preparation, Interpretation, and Sent to MR dates to default to 1/1/1900 so there’d be no mistake that they weren’t yet set if they weren’t specified.
* There was a problem with energy expenditures on the Outcomes section of the post-op gait report. This was corrected. The search-and-replace of the field was not being done correctly.
* There was a problem with the Velocity and StrideLength numbers not matching between the diamond graphs and the Outcomes section of the post-op gait report. The problem was, for the diamond graphs, an average of all available strides was being taken for these measures. And for the Outcomes section, only the representative strides were being used. The Outcomes section was changed so that all available strides were averages, as the diamond graphs were substantially older than the Outcomes section.
* Fixed a typo “developed” on the gait report.
* On the 42 (first page) gait parameters (that are selectable from maintenance), any formatting was removed when the data were copied up from the lower sections. Also, the FpaMin, FpaMax, FpaMean, & FpaRange functions weren’t consistently named. They were all changed to be FpaMinInStance, FpaMaxInStance, FpaMeanInStance, & FpaRangeInStance.
* Added “Clear” buttons to all the ComboBoxes on the Add Patient form.
* Added the ability of the foot pressure processing to handle the Tekscan StrideWay mat. It does this by cropping the exported ASCII file down to the size of an HR-Mat file. The new cropping tool allows the user to select the section of the StrideWay movie that they wish to keep.
* Finally got access to a computer with Word 2016 to test the foot report. With Word 2016, there was an additional setting needed to force the correct resizing of images, and this was put in place. Also tested Word 2010, and things still look just fine. Basically, this was the problem where the COPP figure overlapped the COPP table.
* Changed the front end version to 2.108 dated September 14, 2017.
August 14, 2017 * Added a “Tethering” option to the spine surgeries.
* Fixed a problem with reading Unix style (i.e., the V3D) files where there wasn’t a final vbLF to terminate the last line. It would return a null line, but it now returns the last line even if it’s not correctly terminated.
* Added an extensive “Keywords” section/service to the database. This includes three new tables: KeywordCategories, KeywordLists, & Keywords. The first two are maintained in the “Maintenance” area such that any particular lab can maintain their own keywords. However, SHC-Erie’s keywords are initially placed in the database. The Keywords table is for maintaining specific keywords for each patient’s encounter.
* Went through all 300+ forms of the database and removed the MS Sans Serif font, and replaced it with the Microsoft Sans Serif font. With later versions of Windows-8 and also Windows-10, the MS Sans Serif font is no longer being distributed. And, when the Windows GDI did a font substitution, it wasn’t choosing an appropriate font (i.e., it was not choosing Microsoft Sans Serif). To fix this, MS Sans Serif was replaced with Microsoft Sans Serif, which is near-identical to MS Sans Serif with the addition of being TrueType. This corrects occasional problems with Button and Label captions not correctly fitting.
* Completed work on inserting the ComNothing command in every possible form. This saves memory and should help the program to run a bit faster. This was a long-term project that was just completed.
* Changed the front end version to 2.107 dated August 14, 2017.
July 19, 2017 * Made some additional tweaks to the Spine Protocol, specifically treating the spine segment just like the lumbar and thoracic segments. If the BodyBuilder code is correctly adjusted, this should be correct.
* Changed the front end version to 2.106 dated July 19, 2017.
July 6, 2017 * Corrected four of the knee rotation params. They were being calculated based on hip axial motion rather than knee axial motion. The actual hip and knee kinematics were fine. It was just these params that were erroneously calculated.
* Improved the DB version of the C3D reader (within MAPS) to include full plotting of both point and analog data. This will be further integrated into the Spine Protocol.
* Changed the way the EMG finds C3D files in the encounter folder. Now, it looks one folder deep beyond the encounter folder to find these C3D files.
June 29, 2017 * Fixed problem with the new History data entry where it wasn’t picking up the patient info if it was a new history entry.
* Completed the new Spine Surgery section of the database. This is just one piece of the new Spine Protocol.
* There was a problem that occasionally came up in the “Patients Listed and Sorted” option under Multi-Patient Reports. This was corrected.
* Added the SRS-30 to the database. This included patient entry screens, a therapist entry screen, a report, and all the associated functionality for deleting, editing, and scoring responses. The new table is named Srs30Data.
* Completed the Spine Protocol. This included a new Spine physical exam section which also included entry of various radiographic measures. It also included a new section for the entry of information about Spine surgeries. The largest part was the processing of Spine mocap data for eight movements, the storing of this data in the database, and the production of a report which included the SRS30, the physical exam data, the xray data, the surgery data, and all of the calculated mocap numbers for the eight movements. To accommodate all of this, the database now has six new tables: SpineSurgeries, SpinePhysicalExamsAndXrays, SpineMotionParamsMain, SpineMotionParamsSagittal, SpineMotionParamsCoronal, & SpineMotionParamsAxial.
* Changed the front end version to 2.105 dated May 12, 2017.
May 26, 2017 * Added an “Import Prior Encounter’s History” button to the new patient history service. This should make the entry of post-op history much easier, as much of it won’t have changed.
* Added more detail to the SCALE help buttons. The official document from University of California Los Angeles was used for this, specifying the criteria for each joint. This was placed on the standard physical exam form as well as the custom ones for Philadelphia and Sacramento.
* Changed the front end version to 2.104 dated May 26, 2017.
May 12, 2017 * Added a condition 1 and 0 to the Plantarflexors strength ratings help screen. 1 = tendon tension w/o joint motion. 0 = no muscle activity.
* Completed the Sacramento physical exam data entry forms. This included a rather involved “Alt” form with five tabs: Standing, Sitting, Supine, Side, Prone. To accommodate their needs, 39 new fields were added to the PhysicalExamMore table. Most of these were unuque measures for Sacramento, with some having to do with an extended Myelo examination about the knee and ligamentous laxity.
* Completed the Sacramento physical exam report export. This included the development of a new report template and a new maintenance option for selecting this report. As part of this, placed very small buttons on the frmServices form so that any/all of the report options could be examined.
* A very small row of buttons was placed on the primary physical exam form. These small buttons allows for an examination of all the “Alt” physical exam forms without needing to change the settings in Maintenance.
* Fixed a problem with certain “Show Video” buttons not listing the videos when the patient file folders were set up as Sacramento.
* Fixed a problem with the Patients & Services not correctly opening Excel files under Windows 10. Upon searching the web, this is an Microsoft incompatibility problem between Windows 10 and certain versions of Microsoft Excel. It appears the problem does not occur for Word, or other non-office files (such as PDFs or movies). The “fix” was to execute ShellExecuteW twice (rather than just once) when opening an Excel file under Windows 10.
* Fixed a problem when parsing Sacramento’s V3D text files into GCD files. These V3D files are written out as Unix-style files (vbLF only as line terminator). Therefore, to read them, a buffer was created. Initially, this buffer was set at 10000 characters, but some of the V3D files had lines longer than this. The buffer was expanded to 20000 characters. After this, an even longer line was found. To accommodate this longer line, the code was changed to increment the buffer by increments of 10000 characters up to a limit of 2 million characters.
* Found what is hopefully the last problem with importing Sacramento’s V3D files into the database. The walking speed, stride length, & step length were not coming over correctly. It turned out that they needed to be in millimeters, and they were in the V3D files as meters. This was corrected, and all the spatiotemporal seem to now be working.
* Added a complete new service for entering patient history. This involved an entirely new HistoryInfo table, as well as a handful of “maintenance” tables for various drop-down lists that are used in history data collection. An extensive tabbed form was developed as well as initial and follow-up reports.
* Changed the front end version to 2.103 dated May 12, 2017.
May 4, 2017 * Completed the Erie version of the physical examination. This included an entirely new physical exam report, and many additional fields in the database table (PhysicalExamMore). Also, a two-tab data-entry screen was developed for them as an alternate entry form. Adjustments were made in maintenance to use this form and report.
* Changed the front end version to 2.102 dated May 4, 2017.
April 24, 2017 * It was discovered that the “Foot Progression Angle” gait parameters (Min, Max, Mean, Range) were being calculated for the entire gait cycle. This was changed to have these calculated for only the stance phase of the gait cycle, which is more appropriate. Also, during these gait parameters checks, it was discovered that the “Ankle Df/Pf Moment Time % to Peak PF in Stance” calculation was using the wrong kinetic data in one spot in the calculations. This was also corrected. This also affected the “Ankle Df/Pf Moment PF Area in Stance” calculation but no others.
* The *.xlsm file types were not included when viewing patient files from the full-program mode. This was corrected.
* The “Yellow” representative column on the GaitParameters tab of the motion plots wasn’t being colored yellow through all of the newly added gait parameters. This was corrected.
* On the “MAL Working Patients Report” there are some cases where the MAL is doing a SHUEE (and upper exam), but nothing else. In these cases, the Referral/Study is specified in the OT section, and not the MAL section. There’s no perfect way to handle this. Therefore, the following decision was made: When printing this Working Patients report, if there’s no MAL Referral, the OT Referral is used. And likewise, if there’s no MAL Study, the OT Study is used. All of this is just dependent on how the encounter information is setup.
* On the four Range-of-Motion Excel files (for Houston version of ROM reports), the Orthoses & Asst.Dev. fields were changed to use a 7 point font. Also, word-wrap was turned on for all four fields.
* Subclassing (making controls do “more” fancy stuff) was a bit scattered in the project. There is a new approach to subclassing that uses the comctl32.dll. This was adopted throughout the project, and several other related areas were cleaned up in the process. For most, this is rather technical, but it somewhat dramatically streamlines the source code in these areas.
* Added all the strength testing fields to the new “Normals” alternate physical exam screen. This involved adding the tab control to the screen, and creating a second tab for the strength fields.
* Changed the Functional Goals section of the master report so that it says “Change” for all four functional goals. It also fetches the pre-op values, rounds to the reported precision, and then determines if there’s been a change. If so, it reports either “Increase” or “Decrease”. If not, it reports “No Change”. It also reports the actual change in parentheses.
* Also, during the change to Functional Goals, it was discovered that the flag for PostOpQuestionnaireDone wasn’t set early enough, causing that section of the report to not pick up the data. This was corrected.
* Added Hip ADduction and Ankle Plantarflexion to the Strength Test screens, both the full and the “normal” physical exam forms. As part of this, added all the necessary fields into the PhysicalExamsMore database table.
* Changed several “bullet” notes on the post-op gait report. Also, on both the post-op and pre-op reports, “lab” was changed to “center”.
* Added an option so the actual title of the balance report can be whatever the user wants.
* Went through ALL the report templates and change Lab (or Laboratory) to “Center” on all of them. There are also places in the database (including database field names) where “Lab” or “MAL” is used. These were not changed, as it would take a fair amount of work to change all of this. It was felt that the reports was where the change was most needed.
* Added an Upper Extremity Kinematics tab on the Excel plot file. This involved developing plots for all the Vicon upper extremity model segments and joints (wrist, forearm, elbow, shoulder, head, trunk). The GCD parcing, normal processing, and storing in the Excel file of these data had been previously done. When leaving Houston, “head” data was not present in the C3D files, and also more beta testing of the forearm was needed, but it was all correct to the best of my ability and available data.
* Changed the front end version to 2.101 dated April 17, 2017.
April 7, 2017 * Fixed a minor problem where a warning about prior surgeries would pop up when loading the “Completed” checkbox on the EncountersAndSurgeries screen.
* Made a change to accommodate a LFyyE (Last Initial, First Initial, yy-DOB, encounter letter) system for creating encounter sub-folders. This was the way Erie was doing it.
* Created a “Visual3D Imports (via SHC-Erie)” type of motion system. They use M.A.C. with Visual3D in a way that’s different from Sacramento.
* Changed the front end version to 2.100 dated April 7, 2017.
March 17, 2017 * Adapted a new interface for Tekscan for use with the Tekscan/clinres version 7.0. This involved a great deal of reworking of the actual interface and control of the Tekscan program from the database controller window.
* Found out that the C3D files from VICON always report Kinematics and Kinetics as Sagittal=X, Coronal=Y, and Axial=Y regardless of the orientation of the lab. The do (of course) record the coordinate data according to the orientation of the lab, but the Kinematics and Kinetics are more consistent. Made adjustments such that these considerations were better acknowledged.
* Adapted the O2 processing and reporting service for the Cortex O2 system. This involved developing a two-file-export system, developing an understanding of the Cortex ASCII export files and reading them, and also normalizing the Cortex data to 15 second segments per row. The Cortex system initially collected data much faster.
* New clinical measures were added to the Vicon info form, but they should have been shown as MM rather than CM. This was corrected.
* Changed the UserUsingWordOrExcel routine so that it has a “Just GO” option which allows the users to continue with a report export even though Word and/or Excel may be open for other purposes.
* The “detect if Excel is open” routine has a minor bug in it and sometimes reported FALSE when it should have reported TRUE. This was corrected.
* Changed the front end version to 2.099 dated March 17, 2017.
March 6, 2017 * Lots of changes to the source code organization. This didn’t change any functionality, but it laid the groundwork for some new programmer to understand things in this project. It just involved cleaning up and renaming lots of modules, and standardizing variable naming conventions in many procedures.
* Converted all the ANSI API calls involving files to Unicode API calls. This is part of a larger change to allow the program to handle filenames (including path) longer than 260 characters. This isn’t typically a problem but it does occasionally come up. This is only the first phase (of at least three) to implement this change. Long-file-name testing will be needed, and a reworking of many of the VB functions will also be needed.
* Added a registry storage feature where it remembers the last encounter in addition to the last patient. The encounter is remembered per-date. This is a per-user setting.
* Fixed the problem with videos not playing on a secondary monitor. This involved tracking down the problem, which was that SMPlayer was using directx as its output video driver, which doesn’t support multi-monitor systems. There was an SMPlayer setting that allowed changing this to direct3d, which does support multi-monitor systems.
* Changed the front end version to 2.098 dated March 6, 2017.
January 27, 2017 * Wrapped the source code into the PatientsAndServices.exe file. Also, an option in Maintenance was added to pull the source code out and unzip it into the “Source Code” sub-folder.
* Also “exposed” the option to dump all the resources of the executable into a sub-folder.
* Changed all length measures to mm on the Balance report.
* Added the ellipse and circle from which the areas were calculated to the actual COP path plot.
* Added captions to the COP plots on the Balance report. Also, turned the background of the mat plot from black to white. Also added an option to have an extra graphics-box on the report; this would be used for marking the small COP path on the peak pressure image.
* Put more code in to make sure the COP path plot is cleared when another file is chosen for plotting.
* Corrected a problem with removing kinetics from the GCD files, XLS files and the database.
* Corrected a problem with processing GCD files for plotting that was identified by Cathy.
* Added an option to suppress the plotting of the circle and ellipse on the COP path for the balance report.
* Completed the addition of the Greenville Foot Model in the database. This is primarily a new plot page (worksheet) in the Excel plot file. This new worksheet is named “KinematicsGFM”. This included the addition of new columns for all the data as well as the complete processing of norms for creation of the gray bands on this page. There is a set of gait parameters used by Bruce MacWilliams, but this work is deferred until a later time.
* Added a physical exam (alt) form for the abbreviated form to be used for collection of normals mocap data. Upper extremity offsets were included on this form.
* Added new measures for upper extremity and foot to Vicon info form.
* Changed the front end version to 2.097 dated January 27, 2017.
December 31, 2016 * Updated the mscomctl.ocx dependency file. Also, placed checks in the PreInitialization procedure so that the dependency version numbers were checked so they could be updated with new files.
December 16, 2016 * Pulled the entire GDI and KSDI calculations into VB6 rather than using and Excel spreadsheet as a helper. This dramatically speeded up these calculations.
* Added a Protocol/Hardware change log to the Maintenance area of the database. This allows for logging changes to the way things are measured in any particular MAL.
* Completed a completely new protocol for collecting physical exams for Philadelphia Shriners. This included six new fields, an entirely new data entry screen, and an entirely new report with pre-op and post-op comparisons.
* Completed the handling of all the sub-folders for moving C3D files around and a sub-folder system is desired. This is particularly useful when MALs create sub-folders for each tested condition, such as is done when using Polygon. This facilitates the integration of Polygon with this database program.
* Modified the “History” tab on the physical exams to accommodate five new areas related to patient history.
* Changed the front end version to 2.015 dated December 16, 2016.
December 6, 2016 * Added a Knee Valgus/Varus Moment plot to the two kinetic plot pages.
* Changed the front end version to 2.014 dated December 6, 2016.
November 15, 2016 * Shuttled off several of the help button screens to separate DLLs. This helped to clean up the primary source code project.
* Shuttled off all the PODCI questionnaire screens into a separate DLL.
* Added the Balance Measures Document to a button on the frmAddEditBalanceServices screen.
* Developed a MsgBoxHelp procedure so that “clicking off” of these help boxes just closes them automatically.
* Added a “Database Feature” option for each individual questionnaire.
* Added a “Database Feature” option for the MFM Angles button on the Process Motion Data window.
* Changed the front end version to 2.013 dated November 15, 2016.
October 28, 2016 * Knee total range of motion was accidentally left off the list of gait params available for customizing the gait params tab on the Excel plot files. It’s now on the list.
* Cleaned up some other problems the Excel report footers were having on the EMG reports. This was causing crashes when finewire was part of the report. It is hopefully now all bulletproof.
* Bolded the “Pre” and “Post” words on the Post-op report in the outcomes section.
* On the Excel plot graphs, on Gait Params tab, where new hip angles were added, placed a “(Add+, Int+)” notation.
* Corrected some problems on the “Diamond Graphs” tab of the motion plots Excel file with the way Cadence was being printed. This was left over from a prior correction.
* Added a Balance/Stability protocol to the database. This included all of the following tasks:
• Develop and decide upon all measures, primarily from Wolff et al and Prieto et al.
• Developed a document that explains all of the balance measures.
• Validate all measures with independently written code in MatLab.
• Develop procedures for reading Tekscan mat frame data.
• Develop procedures for reading AMTI pressure plate data from C3D.
• Calculate COP values from either Tekscan or AMTI.
• Calculate all the decided upon measures.
• Validate all measures with independently written code in MatLab.
• Develop a Butterworth Low-Pass filter, including corrections for edge conditions.
• Develop all conditions for handling different hardware: flip, mirror, swayXY, swap plates.
• Develop processing parameters: hertz, seconds to skip, seconds to process.
• Develop a linear interpolation procedure to “normalize” hertz when not collected at “standard”.
• Developed “Maintenance” routines for hardware setup and processing parameters.
• Added “option” in the database for the balance/stability protocol
• Added list of conditions under “Maintenance” for balance conditions: Eyes open, etc.
• Added the new balance conditions table and the primary balance services table to the database structure.
• Developed a balance/stability report with options for pre-post comparisons.
• Developed a balance data processing screen (off of services) in the database.
• Developed screens for prompting for comparisons on the report when they’re available.
• Developed procedures for saving balance measures to database when report is generated.
• Developed a button to quickly see all balance conditions/trials in an encounter.
• Developed a button to quickly view any balance report for an encounter.
• Developed a button to delete all balance records in database for an encounter.
• Thoroughly tested.
* Changed the front end version to 2.012 dated October 28, 2016.
September 30, 2016 * Added *.wmv files to the list of video files shown when showing videos in the encounter folders.
* Stumbled across the fact that Cadence was “per stride” and not “per step”. On the internet, it’s defined both ways. However, database (and patient report) labeling was not consistent. Therefore, all existing data in the database was relabeled as “Cadence per Stride”. And then a new “Cadence per Step” parameter was calculated so that patient reports can use either. As a note, labeling on some of the patient reports prior to this date (this Version 2.091 dated September 30, 2016) may have cadence labeled as per step when it’s actually per stride.
* Changed the delimiter in the C3D Viewer from spaces to vbTab. This allows point and analog data to be copied-and-pasted directly into Excel (for potential plotting).
* Completed the GCD from Visual3D.txt file work for SHC-Sacramento. This was a somewhat involved task that included identifying spatiotemporal parameters, identifying marked strides, selecting strides to parse, and also handling a few extra kinematics and spatiotemporal parameters provided by SHC-Sacramento.
* Provided an option to view C3D files, even when the Visual3D flag is turned on.
* Improved the speed at which the C3D viewer displays the columns of analog data.
* Changed the front end version to 2.091 dated September 30, 2016.
September 23, 2016 * Smarten-up the procedures that look for C3D files in the mocap (Vicon & MAC) folders. The primary thing that was changed was that it now looks a sub-folder deeper for the C3D sessions. There’s also a document in the source code technical documents as to the details of how these C3D files are found.
* Smarten-up the “Compare Database to Pt Folders” maintenance function. Basically, added a feature where missing folders are automatically created when this is executed. Also, added a prompt to skip the checking for dupes based on name and DOB, as that took a while to execute. Smartening-up this procedure was particularly important for the Philadelphia installation.
* Added a maintenance CreateFolderWhenCopyingC3d flag. When this is checked, the folder name in which the C3D file is in in Vicon is created as a sub-folder in the patient’s database encounter folder. Also, when this flag is set, the database looks inside of sub-folders within the encounter for the patient’s C3D files.
* Added the GDI and all the KSDI measures to the regular GaitParameters tab of a plot file. They’re also added to the Maintenance areas for gait params so that they can be pulled up on the main part (printable page) of the GaitParameters tab.
* Smartened up the assignment of test/visit/encounter codes/numbers to new encounters so that it more often finds the correct number for new encounters.
* A new DontUseForResearch flag at the Patient level was added. This appears on both the AddEditPatient screen, and on the Encounter screen. Even though it’s on the Encounter screen, it is for the entire patient (and not just a specific encounter).
* A new CreatePhotosSubfolder database flag was created. This does precisely the same thing as the CreateVideosSubfolder and CreateFilesSubfolder flags.
* Full integration of the custom braces questionnaire used by Philly. This includes touch-screen version, therapist entry version, and patient reports with parent, child, and pre-op and post-op columns. This will not be completely exposed in the database until further validation work has been performed by Philly.
* Full integration of his custom falls questionnaire. This includes touch-screen version, therapist entry version, and patient reports with parent, child, and pre-op and post-op columns. This will not be completely exposed in the database until further validation work has been performed by Philly
* Full integration of using Vicon Polygon with the database. This includes dropping .ENF files in the database folders so they can be used as a Vicon database; copying extra files related to the C3D files; copying Polygon completed folders; copying extra encounter files (VSK, MP, & MKR); firing up Polygon and pre-selecting patient based on MRN. This also included the addition of a PrepareForPolygon database flag. This flag must be set before any of this is done.
* Accommodation of a de-identified patient number, as this is what Philly uses to track patients in Vicon. I will be using the old CARE MRN field to do this. Also, I believe this mechanism will work perfectly for the registry when it gets up and running. For the registry, we will just append a hospital three-letter code (such as HOU, PHI, CHI, etc) to this de-identified number. The cross-reference will just automatically be built into the database for each site. (And this should also work well for sites who don't use the database.) The OldCare field was renamed to DeIdentifyNumber.
* A new yes/no TryLastFiveOfMrnForDeIdent field was put in the database. If this field is set, the last five digits of the MRN are used for the patient’s DeIdentifyNumber field (if possible, and doesn’t create a dupe). If a dupe would result, a random number is used instead. If this TryLastFiveOfMrnForDeIdent is not set, a completely random number is always used.
* A new “Validate (and Assign) De-Identified #s” option was created under Maintenance. This goes through all existing patients and assures that they all have a DeIdentifyNumber. It also checks to make sure there are no duplicates. If a number (old care number, or otherwise) already exists, it isn’t tampered with. If the DeIdentifyNumber field is blank, a random number is assigned (possibly using the last 5 of the MRN if the TryLastFiveOfMrnForDeIdent flag is set).
* Use the de-identified numbers (in addition to other methods) in attempts to identify C3D files in the Vicon folder system. This allows the use of these de-identified numbers in Vicon, as Philly does.
* Cut out some of the questionnaires and placed them into DLL functionality. This was done to accommodate more “identifier” space in the main program. Any non-programmer reading this one need not worry about it. It’s strictly a programming “thing”.
* Added a three-character hospital code (in addition to the hospital name). This will be particularly useful when the registry project progresses more.
* Changed the front end version to 2.090 dated September 23, 2016.
August 24, 2016 * On the EMG report, placed error trapping in where the Excel footers and headers are set. It reports any errors, but it also allows the report to continue. This was done because Chicago was reporting a footer error that they couldn’t get beyond, and they needed to get the report done. Ultimately, this should be diagnoses more to find a better solution.
August 18, 2016 * Internalized the .manifest file that allows the program to execute registration free (without the need for any installation). Hopefully, this internalization should eliminate most (hopefull ALL) problems that anyone has with the ActiveX (OCX) files used in conjunction with this program. The OCX files themselves cannot be internalized, but they are checked and re-unpacked (if needed) on every execution, so there shouldn’t be a way now to cause a problem.
* Fixed a small typo (“tibla”) on the MFM plot page of the Excel plot file.
August 14, 2016 * Made sure the patient list (on the patients screen) maintained its blue background even when the list didn’t have the focus. Typically, it goes to a light-gray which was hard to see.
August 5, 2016 * Created a new “Maintenance” option named “Gait Param Report Slots” that allows you to build a custom GaitParameters report in the Excel motion plot files. The GaitParameters tab has been there, but the main (top) part of it that’s printable as a patient report wasn’t customizable until now. At present, there are over 200 parameters. This main/report part of the GaitParameters tab can have up to 42 parameters on it. The new “Maintenance” option allows you to specify which parameters appear in this report section. This will make it much easier to find the parameters most used by your lab, possibly use them to assist with determining achievement of surgical goals, and to possibly include it in the final patient report.
* Added 14 more gait parameters. Twelve were to do with the trunk, and two were about the hip. In shorthand, they are as follows:
In adding these, new fields in the database were created, new areas of the “GaitParameters” tab on the Excel plot file were added, and all the necessary calculations for allowing a set of “Normals” GCD files to calculate normal comparison numbers were created.
* Added warning message boxes to the “Load GCD File” and “Remove Plotted Dataset” buttons in the Excel plot file. These messages warn that it’s MUCH better to re-plot from within the database program rather than using these buttons. That way, the database gets updated from the changes.
* Added “(wrt lab)” on the trunk plots because this is the data that the plots are based on. There is also data available that’s with respect to the pelvis, but that’s not currently what’s plotted. There are also gait params being developed for the trunk, and they will also be based on these wrt-lab numbers.
* Added # Met, # Goals, & TAG% boxes to the bottom of the Surgical Goals Achieved Worksheet. This is primarily for quality control purposes, letting therapists calculate their own percent goals achieved while assessing the goals.
* Added a few “check off” lines to the Plantar Pressure Worksheet that can be printed while doing a plantar pressure study.
* Corrected “Kimematics” typo on one of the maintenance screens.
* Occasionally, there was a problem with the strike/off tick-marks getting mis-aligned when a Y-axis was re-scaled. It was finally discovered that this was caused by plots duplicated on more than one page/tab. The alignment data is stored only once whereas it’s used on all copies of a particular chart. Therefore, the fix was, when rescaling a Y-axis of a chart, the re-scaling is applied to all copies of that chart regardless of what page/tab they’re on. As a note, because this is actually in the Excel plot files, this fix will only appear in newly generated plot files.
* For the gait params, the plot files allow you two separate ways to calculate the mean and SD normal comparisons: 1) just use all the normals and calculate the mean and SD for each param, or 2) run linear regression on the normals with age and gender as predictors, and then use the regression equation to predict a normal mean and SD for the patient. This second method would be called “controlled for age and gender” by a statistician. There are check-boxes in the Excel plot files that specify which way it is to be done. However, there was a bug in the “mean” section of the code. In fact, it worked in reverse. The normals mean using all was reported when age and gender control was requested, and vice versa. Also, the SD was done correctly. This bug was fixed. Also, just as a further note, there are not typically wide discrepancies between the two methods. Also, none of this has anything to do with the calculations of the actual patient’s params (which are believed to be correct). It would however affect any percentage of normal calculations.
* Changed the way the “Print” button works in the Excel plot files. Note that you won’t see this change until you produce new plot files with this change, as these changes are “per plot file”. A couple of years ago, there was a “Print Both Pages” button. However, as the plot pages/tabs increased, the concept of “Print Both” no longer made sense. Therefore, it was changed to just print the specific page/tab you were on. However, this was not adequate either. Therefore, on this latest change, when you click a “Print” button on any page/tab, you will be shown a list of all pages/tabs that are possibly printed for a patient report, with the ability to select any combination. Whichever page/tab you’re on will be auto-selected for you. This method allows you to print any combination of plot pages all in one print task.
* There was a “TheHoustonWay” global flag in the database code. This was removed and replaced with several different general “Maintenance” options. These options covered the following areas:
• Whether or not an “Explore” button appeared on certain “Viewer Only” mode screens.
• Whether or not an attempt was made to change the screen resolution to 800x600 when doing PODCI.
• Whether to rearrange EMG labels to columnar (1-thru-8, 9-thru-16) rather than 1-2, 3-4, 5-6, etc.
• Whether or not to put a dash after the “Test Code” when building file names.
• Whether Alpha or Numeric test codes should be used.
• Whether or not the F1 help option should be shown on Viewer Only screens.
• Whether or not Chief-of-Staff should have signature line on certain reports.
For Houston, these were all true, but most other hospitals preferred them to be false. However, they are all now options in the database maintenance area. The “Explore” button option can be found under database features. The PODCI at 800x600 can be found under questionnaire settings. All the others can be found under miscellaneous settings. (All in the maintenance area.)
All of this was to make the database program as general purpose as possible, giving user-sites as much flexibility as possible, while not taking away any options that user-sites may currently be using.
* On the “Patients Needing Post-Op” multi-patient report, when switched to OT, the report was still picking up the MAL-LE surgeries. This had never been reworked from when a separate area was added allowing OT-UE surgeries to be entered separate from the MAL-LE surgeries. This was all reworked so that the report now works correctly for either UE or LE surgeries.
* Added some more “prompting” bullet-points to the POST-OP FINDINGS section of the master post-op report template.
* Added the calculated Mobility Score to the post-op questionnaire. Also, the key as to how the Mobility Score was added. This is the same as it’s calculated on the detailed MEC report (which has this same score). This Mobility Score was also added to the final post-op patient report, more specifically to the Functional Goals section of that report.
* Spent some time validating the O2 calculations, and they were found to be correct. The reason for concern was that the SensorMedic system was reporting VO2/(Min*Kg) numbers that were slightly different from the database. It turned out that, when converting a patient’s weight from pounds to kilograms, the SensorMedic system rounded to even kilograms, whereas the database maintained several decimal places of precision for both pounds and kilograms. As this difference in precision worked its way through the calculations, it caused the two systems to show mild discrepancies. Nothing was changed in the database to accommodate this.
* Fixed a problem with the maintenance function that checks the server folders against the encounters in the database. Also redirected the report to be placed on the desktop as opposed to being directly printed. (As a note, this function still doesn’t work with the new MRNxxxx/MRN#xxx way of doing things as is used by Shriners Northern Cal.).
* Added the old Houston Physical Exam Import screen back. It was put back as an “Alt” screen that’s accessed from the regular physical exam screen. There was also a new option placed in the “MAL Maintain Physical Exam Options” screen under maintenance. This allows you to select which of the “Alt” physical exams screens you wish to come up with you click this “Alt” button. So far, there are two, one for Houston and one for Shreveport. It is highly likely that Northern Cal will want one as well. To accommodate this, a new AltMalExamForm field was added to the MiscSettings table in the database.
* Unbolded the GDI in the Outcomes section of the main post-op report template.
* Changed the front end version to 2.088 dated August 5, 2016.
July 6, 2016 * Added an option to require the ESC key to be held down before any questionnaire could be finished. This is also true for “backing out” from the beginning.
* Corrected the spelling of “Plantar” on two places on the MFM (Milwaukee Foot) plots. It was erroneously spelled “Planter”.
* Added an option for all questionnaire that requires that the ESC key be held down before the user is allowed to exit the questionnaires.
* Changed the front end version to 2.087 dated July 6, 2016.
July 1, 2016 * Added the PODCI+ to the class that changes MRN, changes date, deletes a patient, and/or deletes an encounter. This is the last piece to the full integration of the PODCI+ into the database.
* Added a new folder-date format to the available options. This new format is ddMMMyy, where MMM is a three letter alpha date, like Jan or Jun or Sep.
* Added a new option for creating and organizing patient folders. This new option creates a ###xxxx and ####xxx sub-folders before you actually reach the patient’s folder. For example, if you have patient MRN 1234567, and your main patients folder was “Patients”, this 1234567 patient would be found through the following sub-folders: Patients\123xxxx\1234xxx\1234567. This is SHC-Sacramento’s way of doing it.
* Added an option to create a “Files” sub-folder within each encounter folder.
* Added an option to create a “Videos” sub-folder within each encounter folder.
* If the “Files” sub-folder option is used, all PDF, DOC, DOCX, XLS, & XLSX files in sub-folders of the encounter folder are listed in the viewer boxes (with a “Files: ” prefix).
* If the “Videos” sub-folder option is used, all movie files in sub-folders of the encounter folder are listed in the viewer boxes.
* Added a new “Motion System” option whereby Visual 3D TXT (exported) files are processed by the database into GCD files.
* On the Motion Processing form, added an option to build a filename for use by Visual 3D to export the file names.
* Completed the import of the Visual 3D files into the database. Basically, this was taking the TXT files exported from Visual 3D and converting them to GCD files. At this point, they could be processed normally.
* Changed the front end version to 2.086 dated July 1, 2016.
June 24, 2016 * Put the DAO reference prefix on all of the DAO objects used in the program. This doesn’t change the operation of anything, but it does prepare for the addition of a second method for accessing external databases. The new MAL-Registry work will be using an Oracle SQL server which can’t be accessed with the DAO technology. Therefore, a second reference will be made, probably either ADO or RDO to access this Oracle database, and the object names may conflict with the DAO objects. Including the DAO prefix solves the problem of any potential conflicts.
* Changed the front end version to 2.085 dated June 24, 2016.
June 6, 2016 * In the PODCI comorbidities section, changed the Spanish PODCI from “Anorexia o bulimia (Problemas de alimentación)” to “Anorexia o bulimia (desórdenes alimenticios)”. It was felt that this was a clearer translation for the English of “Anorexia or bulimia (eating disorders)”. Since most people don’t use the comorbidities, and the relative insignificance of the change, this change was made without consultation.
* The the Spanish translation of the PODCI question “Can your child participate in pickup games or sports with other children the same age? (For example: tag, dodge ball, basketball, soccer, catch, jump rope, touch football, hop scotch)” was tweaked to improve readability. The latest improvement (in Spanish) reads, “Puede su niño(a) participar en recolección juegos o deportes con otros niños de la misma edad? (Por ejemplo: etiqueta, esquivar la pelota, baloncesto, fútbol, capturas, saltar la cuerda, fútbol Norte Americano , escocés de salto).”
* A small problem with the combo-boxes hooking up on the new frmAddEditPhysicalExamsAlt1 was corrected. This specifically had to do with the off-wt-bearing foot positions.
* Completed the addition of the SHC-Shreveport PODCI+. This included the addition of a new table (PodciPlusData), the development of 66 data entry screens, and the development of a PODCI+ report. Also, both English and Spanish version are available for data collection.
* Changed when going to the services screen of a patient that the patient and encounter folder are required to go further. If they don’t exist, it warns and gives the option to create them. This is particularly handy when data are imported into the database from other sources (creating patients and encounters) whereas the folders may not be created. It allows the folders to be created dynamically when these imported patients are used.
* Changed the front end version to 2.084 dated June 10, 2016.
May 27, 2016 * Added the ability to “drag” the new physical exam “alt” form from any gray area.
* Expanded the AmbulationAids field from 50 to 200 characters. Also, changed it so that multiple aids could be specified on the physical exam screens. This also flows through to the exported reports.
* Add new OberTest and TallKneeling fields to the PhysicalExamsMore table. Also, they now appear on the physical exam data entry form (and the new “alt” form).
* When upgrading to Word version 15 (2013), the VBA worked a bit differently and required a “fix” to the foot detail report. Specifically, the pasted picture of the rotated and scaled report was not being positioned in the correct spot. This was corrected.
* The Ambulation Aids and EMG Muscles lists weren’t correctly refreshing from maintenance when new items were added to the list. It required a complete exit from the program to refresh these lists. This was changed so that the lists were refreshed immediately when anything was changed in maintenance.
* Changed the front end version to 2.083 dated May 27, 2016.
May 26, 2016 * Further removed some “physical exam import” code from the source code. This code wasn’t being called anymore, and was specific to importing Houston Excel files, and this hasn’t been done in years.
* Added a feature to the physical exam form whereby another sub-form could be opened which formats the physical exam fields more along the lines of the report. This was done specifically to accommodate Shreveport. At Shreveport, they use a pencil-and-paper form to collect physical exam data, and then enter it into the database later. The new physical exam sub-form is formatted very similarly to the Shreveport pencil-and-paper form. Work was also done to allow for the addition of more of these forms so that other hospitals using this approach could also be accommodated.
* When processing GCD norms, there was a spot where a “Right” string was inadvertently left as a “Left” string. This was corrected. Also, the program was recompiled without setting the correct size of the MotionNorms.xltx file. There needs to be some kind of “check” for this to prevent it from happening in the future.
* Changed the front end version to 2.082 dated May 26, 2016.
May 24, 2016 * Fixed a problem with the Master Report Export when using latest version of Word (version 15, 2013). The paste of the diamond graphs worked a bit differently that previous versions of Word.
* Found (and fixed) a problem with the footers in the EMG report. Under certain circumstances, it wouldn’t print the C3D file name in the footers. This is now corrected.
* On the pre-op master report template, under kinematic findings, “Trunk” was given its own bullet-point. For cases that don’t have trunk, it can easily be deleted.
* There was a problem with the surgery procedure list (under Treatment) getting truncated. This problem had already been found for O.T. in Houston, but it wasn’t also corrected for lower extremity surgeries. This is now corrected.
* In the post-op physical exam template, the double-pop-angle wasn’t being correctly filled in. In addition, the thigh-foot angle wasn’t being reported at all on the post-op form. Both of these were corrected.
* When exporting a post-op physical exam report, you could select physical exams that were “for the future” as pre-op comparisons. This is a rare case to actually happen, but it could happen when going back to some old post-op and re-exporting the form. The “list of pre-op” exams was changed so that it was restricted to “previous” exams (disallowing any future exams).
* Changed the front end version to 2.081 dated May 24, 2016.
May 19, 2016 * Changed the motion processing and EMG processing so that the “Nexus” (or MEC) box with C3D files wasn’t automatically filled. In other words, you must click the “Refresh” button on the forms before these boxes are filled. This will save time for those cases where there is no need to fill these boxes.
* Added a new “use norms” confirmation box when plotting motion graphs. Also, even if norms-sub-folders exists, if the specified sub-folder is empty, the opportunity to use the Houston norms is still available.
* Changed the front end version to 2.080 dated May 19, 2016.
May 13, 2016 * Created a set of 90 gait parameters for the Milwaukee Foot Model. This included everything for creating and processing them for normals, creating a new table in the database for them (MotionParamsMFM), expanding the fields in both the MotionNorms.xltx and MotionGraphsNew.xltm templates, and including them on the GaitParameters tab of the plots. Also, a new document was created named “Gait Parameters (steps to add new once).docx that walks through the steps of creating addition gait parameters.
* In the FootPressureServices table, the fields for storing the ASCII and .TXT filenames weren’t log enough to handle some of the files being copied in from Novel plantar pressure studies. The fields were 25 characters, but they were all expanded to 40 characters, which should be adequate.
* Changed the front end version to 2.079 dated May 13, 2016.
May 12, 2016 * If not in the “viewer only” mode, added the ability to view the patient’s Word and Excel files (in addition to the PDF and movie files) to the “View Patient’s Files” option on the services screen. This obviates much of the need to go in and explore the patient’s encounter folder with Windows.
* In the calculation of COPP (for the foot reports), there was a certain situation that would create an overflow error when interpolating the COPP progression to 96 data-points (which is part of the algorithm). A “check” was put in to prevent this overflow from ever happening.
* Added a switch that specifies whether or not the “image” is to be flipped when creating a .LST file from a .DAT file when processing data from the Novel plantar pressure system. The actual switch is changed in the maintenance area, and is stored in the MiscSettings table.
* Continuing to work on the foot pressure report when using a Novel system, it was discovered that there was the possibility of zero frames at the beginning of the file. This could potentially bias the COPP time percent reported in hindfoot. If there were zero frames at the end, this could potentially bias the COPP time percent reported in forefoot. To solve this, the software now truncates (ignores) any zero frames at the beginning and/or end of the file.
* Also, on a foot pressure report related issue, there’s a flag in Novel that says to truncate the frame matrices to the sensels that only have data in the .LST files. For example, the .LST file may only have sensel rows from 27 to 51 and columns from 10 to 21, even though the mat has 32 by 62 sensels. The software was tweaked to read these truncated matrices in the .LST files, leaving all the surrounding sensel values zero in the internal database matrix for the sensel values.
* A strange scenario was identified where a certain EMG configuration could be stored in the .MDB database that would cause the front-end to crash when specifying the EMG config. Specifically, it was something about the way the finewire muscle was stored (or stored as a blank muscle). It had to do with specifying a null-string to a combobox that required a muscle in its list. To correct this problem, so error ignoring was placed in the code. This won’t cause any downstream problems because all muscles (including finewire) are validated before you’re allowed to save any changes to the EMG config (and before generating the report).
* In addition to solving the above bug, enhancements were made to the EMG config screen. Specifically, the DB C3D viewer was made an option for the specified C3D. Also, a button to quickly show the list of analog labels was provided for the specified C3D. Also, the entire list of C3D analog labels was now made available to each C3D channel specification for easily setting up new config files.
* Changed the front end version to 2.078 dated May 13, 2016.
May 5, 2016 * Found a bug in the Milwaukee Foot Model calculations where a PI*180 was being used and it should have been a PI*2 number. All this did was change the sign of some of the numbers, but it made a significant difference on the actual plots. The bug was corrected, and the plots are now correct.
* Changed the front end version to 2.077 dated May 5, 2016.
April 7, 2016 * Changed the title of the “Mean GDI by Pattern & GMFCS” table on both the CP and Paraparesis MEC detail reports. It now reads “Mean GDI by Hemi vs Di & GMFCS I & II”. This clarifies what data is included in the table.
* On the summary (TAG) MEC reports, added yet another tab named “Included by Proc”. This was done on both the CP and Paraparesis reports. This new tab has the TAG procedures each listed with a list of patients under each one that indicates the patients with those TAG procedures in the report. This will help with reconsolidation of the report.
* A couple of anomalies were found on the multi-patient MEC reports. One involved matching the patients that appeared on the summary report versus the detail report. To identify the specific problems, a new tab was added to the Excel file for the summary report which listed all the patients actually included on the report. This allowed a reconciliation between the two reports. After doing this, two anomalies were identified. The first was that the summary report did not acknowledge the “IncludeOnMecReport” flag in the Surgeries table. This was corrected in the program. A second problem was identified where a patient may have two prior surgeries (in two separate prior years) with both having surgical goals set in them, and also with only one post-op study. When the post-op study is used for marking the goals achieved, the user must select one specific surgery (not two). This leaves out the other surgery with respect to marking the goals as achieved. The only “easy” solution to this is to start another post-op encounter (possibly one day later) to mark the goals achieved for the other surgery, and also placing a note in the second encounter that it was created only for this purpose.
* Still related to the MEC reports, specifically the detail report, it was discovered that the five columns indicating the “types” of previous surgeries (botox, baclofen, rhizotomy, soft tissue, & bony) were only acknowledging the most recent previous surgery. This was changed such that all previous surgeries were examined with these 5-type-flags ORed based on the indications of all these previous surgeries. Done for both CP and Paraparesis versions of the report.
* Five new columns were added to the MEC detail report to outline botox, baclofen, rhizotomy, soft tissue, & bony for the current surgery (in addition to previous surgeries). Done for both CP and Paraparesis versions of the report.
* A new button was developed on the Procedures Entry screen. This button will pull in all procedures from a previous surgery and mark them as “Prior Staged” and also put a note in each procedure as to the date of the actual surgery. To accommodate this, a new “Prior Staged” column was added to the Procedures table. Also, this required extensive changes to the listview boxes on the Procedures Entry screen as well as the Set Goals screen.
* On the MEC detail reports (both CP and Paraparesis), it was discovered that the table comparing outcomes for “Previous Sx” versus “non-Previous Sx” was wrong. This was a result of breaking down the previous surgeries into botox, baclofen, rhizotomy, soft tissue, & bony. This was corrected on both CP and Paraparesis versions. As a note, BOTOX was not considered a previous surgery for these purposes.
* On the MEC detail reports (both CP and Paraparesis), it was discovered that the GMFCS breakdown for “Previous Sx” versus “non-Previous Sx” was wrong. This was a result of breaking down the previous surgeries into botox, baclofen, rhizotomy, soft tissue, & bony. This was corrected on both CP and Paraparesis versions. As a note, BOTOX was not considered a previous surgery for these purposes.
* It was discovered that the Range-Of-Motion (ROM) Excel templates (inserted on the master report) had a “normalized” positioning problem. The problem only appeared when a ROM was explicitly opened in Excel and was opened “normalized” (not maximized) in Excel. When opened in this way, a ROM file would be substantially off to the right in Excel, which required scrolling over in Excel to see the file, which was confusing. To correct this, the template ROM files were edited in a “normalized” way with the file pulled over to a more typical position in the Excel program. This was all re-compiled in the database program.
* A problem was found with the calculation of step-length during a walking cycle. This calculation is in the creation of GCD files from C3D files. Basically, the step length was being calculated for the wrong limb. The following is the way it was being calculated:
Side Strike (initial) \
Opposite Off | This distance WAS being used as the “Step Distance”.
Opposite Strike /
Side Strike (terminal)
With the above approach, the calculation is for the wrong limb. Let’s say we’re focusing on a “LEFT” limb cycle. Using the above, we would tag the distance as a LEFT step length when, in fact, it is a RIGHT step length. To correct this, the calculation was changed as follows:
Side Strike (initial)
Opposite Strike \
Side Off | This distance is the new way of calculating the “Step Distance”.
Side Strike (terminal) /
Using this approach, the correct limb is identified. Also, the calculations are still within the events as identified for a cycle (and not using events from another cycle).
Database users may want to make note of the date they rolled out this change, as prior “step length” data will not be automatically corrected.
As another note, there is another spatiotemporal parameter called “Step Time Percent”. This is the percentage of the cycle that a step takes (in time). This calculation WAS already correct and it was not changed. In other words, for the calculation of this “Step Time Percent”, the time between Opposite Strike and Side Strike (terminal) was compared to the time for the complete cycle.
Also, involving only Houston SHC, there were Vicon Clinical Manager (VCM) GCD files processed with the database. These GCD files created by VCM have the StepLength correct, and it will be correctly recorded into the database. It was about May 2010 that the transition was made from using VCM GCD files to parsing the C3D files into GCD files with the database (which had the side reversal until this fix). Other than this May 2010 date, another way to identify GCD files created with VCM is that they will have the GCD extension capitalized (whereas ones parsed by the database program will have a lower-case gcd extension).
* Changed the front end version to 2.076 dated March 28, 2016.
February 29, 2016 * Added “Open C3D” buttons to the frmMotionProcessing screen. This allows the C3D files to be “peeked” into from this screen with either the database C3D viewer or the MLS viewer.
* Fixed a problem with the Milwaukee Foot Model not correctly processing the static when non-sided events were specified.
* Fixed a problem with the Milwaukee Foot Model and the way normals were prepared to make the gray bands on those MFM plots.
* Changed the front end version to 2.075 dated February 19, 2016.
February 5, 2016 * Fixed a problem with the EMG reporting. Apparently, with the latest Vicon version, the EMG labels are no longer limited to 16 characters. The database software was changed so that this 16 character limit was no longer checked.
* In Chicago, ran down a bug where a wrong structure (User-Defined-Type) was used to declare a function that fetched and normalized (cubic spline to 51 points per cycle) the C3D marker data.
* In Chicago, changed the Milwaukee Foot Model offsets screen such that segments-vs-view were used on the entry screen (instead of the greek letters).
* In Chicago, added an auto-import function for the offset angles for when a special MatLab program is used to determine the offsets. The development of the MatLab program is still in progress.
December 4, 2015 * Added an option on the “Maintenance” screen to download the latest PatientsAndServices.exe program to an “Update” sub-folder. This way, people should be able to directly update without involving I.T. departments.
* Added a “Maintenance” option to list the computers using the database. This uses the .LDB file rather than the ADO. This should allow any database user to list other users without needing to worry about network permissions.
* Fixed an issue with the MotionGraphsNew.xltm template where it wasn’t searching for the new Excel extensions when loading diamond graph comparisons from prior encounters. It was searching only for the XLS extension and not the new XLSM and XLSX extensions. It’s now fixed.
* Changed the front end version to 2.073 dated December 4, 2015.
December 1, 2015 * Corrected bug in the MotionPlotsNew.xltm template when trying to print plots when nothing was on the plot pages. It now just tells you that there’s nothing to print.
* Made changes to the API calls in the MotionPlotsNew.xltm template such that they will work on Excel 64-bit.
* Pulled the “norms” tab out of the EMG Report.xltx template and placed it in the EMG sub-folder. The norms are now named EmgNorms.xltx, and they are copied into each EMG report that is produced. This was all done in preparation of allowing the user to add EMG muscles.
* Added the ability for the user to add EMG muscles to the EMG plots. This involved adding maintenance screens for adding the muscles, as we as adding the muscles to the EMG Report.xltx template.
* Changed the front end version to 2.072 dated November 30, 2015.
November 17, 2015 * Corrected a problem with picking up Left Hip Moment in the Motion Analysis .data file.
* Developed a 37 step document of everything that’s necessary to install the VB6 IDE on a Windows 7 computer, and placed it on the website.
* Completed phase #2 of the Integrated Milwaukee Foot Model into the database. This is the completion of all data processing, the production of plots, and the processing of normals that can be used as gray bands on these plots. There is still a phase #3 with this project that is yet to be completed. This would involved extensive testing of “live” data as well as the creation of some “help” buttons for each of the angles on the MFM Xray angles form. This is necessary to eliminate any confusion regarding sign and method of taking these angles.
* Completed the final phase #3 of the Integrated Milwaukee Foot Model into the database. This includes all help screens into the Xray angles as well as testing of the plots and the preparation of normals for comparison. A complete “test” page was also developed so that the user could test certain marker locations and see how the angles were calculated from these coordinates.
* Fixed a bug in the processing of normals GCD files in the case where only one side was provided.
* Added the trial (i.e., C3D name) and cycles to the EMG report. This was done for both the multi-cycle page and the single-cycle page. It was added in the header area of the “on-screen” Excel tab, and to the actual footer when printed.
* Added options under maintenance under the maintain 3D motion system area whereby the actual Excel plot template can be configured via several options. These include the showing of normals bands, the showing of optional knee rotation and knee valgus-varus, the showing of foot rotation, and the use of age and gender controls when producing comparative spaciotemporal and/or kinematic normals gait parameters. As a note, all of these options can still be individually toggled once the motion plots are produced.
* Changed the front end version to 2.071 dated November 17, 2015.
November 2, 2015 * Completed phase #1 of implementing the Integrated Milwaukee Foot Model into the database. This is a model that integrates marker data with radiographic data toward getting a dynamic bony representation of how the foot moves during ambulation. This first phase included working out all the linear algebra functions that will be needed, adding a new table to the database for storing the static C3D file used and the radiographic angles, and developing an input screen for the radiograph angles. It also included specifying the static C3D file on the Process Motion Data form.
* Finally got access to a computer running Outlook and figured out the problem of it thinking Outlook was Word. In other words, you can now leave Outlook running while exporting reports from the database. Basically, Outlook does use Word in a way quite similar to the way the database uses it. However, this doesn’t cause the database a problem, and the database now differentiates between Outlook using Word and the user using Word. The user is still not allowed to have Word open during export of reports.
* There was an EMG Muscle Setup field specified on the Add Encounter screen. It is stored in the Encounters table. This was a previous request. The prompting for this field was removed from the Add Encounter screen. Instead, it was placed on the first button of the EMG line of the Services screen. Also, when processing a new EMG, it attempts to use this muscle setup on the EMG Config screen. It also reports this field at the top of the EMG Config screen.
* Reworked the Maintenance screen. It was getting unwieldy with things too hard to find. Now, it has several frames and is much easier to navigate.
* Moved both PODCI and the Post-Sx questionnaire to the ServicesQuestionaires form. This is a more appropriate place for them.
* On the Physical Exam form, enhanced the slider for the Internal/External measurements so that it more clearly indicates internal or external. Also, if the user types in the box and doesn’t indicate either “int” or “ext”, a warning is given that it may be confusing on the report.
* Did additional clean-up on the maintenance area for managing the appearance of the physical exam form. There are now additional options for making several fields entirely disappear from the physical exam form. This is just further customization which allows different MAL labs to use this database, even though they have slight differences in the way they perform physical exams. This will be a continuing evolution as more labs use this database, but everyone seems happy for the time being.
* Reworked the portrait version of the motion plots template. It now does everything that the landscape version does, and we’re going forward with only a portrait option. The landscape option was completely removed from the database.
* Completely reworked the way the “norms” are placed on the plots (the gray bands, the spaciotemporal norm comparisons and all of the gait param norms). Now, there is a new “Norms” sub-folder in the database folder. Inside of this “Norms” sub-folder, you can have additional sub-sub-folders that contain a series of GCD files that are your norms. Then, there’s a new area under Maintenance (upper-right corner button on Maintenance form). This will allow you to process these GCD norm sets so they can be used on the graphs. There is the ability to have multiple sets of norms if you so choose. If you don’t have norms, the old Houston lower extremity norms will continue to be used (with a message telling you this each time you plot). Please see the long message under the “Process 3D Norms” option in the “Maintenance” area for more information.
* There was a problem on the multi-patient surgical detail report (MEC report), both the CP and paraparesis versions. Specifically, it was on the GMFCS-by-prior-sx table. This was fixed.
* Also on the multi-patient surgical detail report (MEC report), both the CP and paraparesis versions, the prior sx column was expanded to show botox, baclofen, rhizotomy, soft tissue, and bony work (in five separate columns). Botox is not included in the surgery count, but all others are.
* Built a “Tekscan” folder procedure. This procedure deletes-and-re-adds all movies (.fsx files) from a specific TekScan folder. This is called from the small Tekscan controller screens. For some reason, Tekscan doesn’t always get newly created movies into its database. This new feature gives the user the ability to “fix” these Tekscan bugs while on the processing screen.
* Changed the front end version to 2.070 dated November 2, 2015.
October 21, 2015 * Updated and added a TreeView to the C3D Reader program. Also placed the program and all its source code out on the website. This C3D Reader program doesn’t plot like Eddie Cramp’s C3D Reader but it has the advantage of showing data in a large window, and source code is also available for anyone who might like to develop other programs that read C3D files.
October 19, 2015 * Removed the word PIG (which referred to Vicon’s plug-in-gait) from the database. In most place, it is now simply referred to as strike/off events or just events.
October 5, 2015 * Added an option to the Main Menu (frmMainMenu) such that it looks for a file named PatientsAndServicesDatabaseLogo.gif. If it’s found, it places the file on the main menu as the logo image. This file will be resized and centered to the left of the buttons accordingly.
* Created a “Misc. Settings” table and area under Maintenance. This will allow for a few “special” settings that may be peculiar to a specific hospital. Any strange settings should be placed in this area.
* Created a “Misc. Settings” setting that will allow the naming of the encounter folders to be either a “m-d-yy” format or a “yyyy-mm-dd” format. Added field to “MiscSettings” table and created a global variable for holding the value.
* Made the “Test Number” caption a user-defined option under the new “Misc. Settings” option. This involved going through about 30 forms and allowing for this option, in addition to adding the field to the “Misc. Settings” area.
* Re-arranged Ht and Wt on the General tab of the Physical Exam form.
* Made the Physical Exam for wider.
* Added two new tabs to the Physical Exam form: “Video” and “Strength Test”.
* Moved video assessment to the new “Video” tab.
* Added a new PhysicalExamsMore table to the database. Also, auto-added records to this table anytime a PhysicalExams record is utilized anywhere in the Services form (or further downstream). This will allow for adding more fields to the existing PhysicalExams table without risk of overflowing the 255 fields per table limit.
* Made an option to swap Left/Right on “most” of the measures on the Supine and Prone tabs of the physical exam form
* Made an option to swap the order in which hip flexion versus hip extension are prompted. Originally, extension was prompted before flexion, but Phoenix wants it the other way.
* Created a user-defined toggle which allows measuring the knee laxity measures under the Supine tab rather than the Sitting tab. Also created a new file in PhysicalExamsMore that indicates when the measurement was taken this way.
* Added more clickable options to the “Confusion” tests on the physical exam tabs.
* Added new Transmall Axis prompts to the Supine tab of the physical exam. These are in addition to similar prompts on the Prone tab. Some therapists wish to assess this in both a Prone and Supine position. The fields were added to the PhysicalExamsMore table.
* Added buttons beside the Transmall prompts on physical exams that allow for quick toggling of Int to Ext, and vice-versa. Also added them to the thigh-foot angles.
* Added knee extensor lag assessments to the Sitting tab of the physical exam. These are in addition to similar assessments already on the Supine tab.
* Added option to move the Gastroc/Tibialis/Peroneals Tone & Clonus from the Prone tab over to the Sitting tab. There’s also an option that records which way it was recorded.
* A new instrumented Strength tab was added to the Physical Exam entry window. In addition, all necessary fields were added to the PhysicalExamsMore table to accommodate these new fields. A new “Hand Held Dynamometry for Muscle Strength report (export) was developed to report these fields.
* Added a complete new service to the Services window. This is the Hyperactive Assessment Tool (HAT) service. All necessary fields, including a new table, as well as a database “feature” option to turn it off, were added to the database. All data-input forms were developed as well as the export of a detail and summary report. The new templates for this detail and summary report were included in the database.
* Added several new miscellaneous maintenance options: ReportWeightAsKgOnPhysExam, ExcludeAbdInFlexionOnReport, ExcludeFemTibLengthsOnReport, ExcludeCalfGirthOnReport, ExcludeMacsOnMalReport. These allow for certain customizations of the actual Excel export of the MAL physical exam. In addition, several changes were made to the pre-op physical exam Excel file:
* Linked several labels from the “preop data” tab onto the “preop report form”. These include Ht&Wt, transmal. axis, extensor lag, abd in flex, ankle inversion, ankle eversion, fem/tib(cm), calf girth, and GMFCS/MACS. Some of these allow an indication of how measurements were taken (supine,prone,sitting). Others were linked like this to allow them to be effectively deleted from the report in cases where they’re not used.
* Several changes to the way data is written to the actual data files were also made. Specifically, wt in kg (and not lb) is reported if so indicated in the misc flags; and both transmal axis and extensor lag are checked to see if numbers are provided in either prone or supine (for transmal axis) and in either supine or sit (for extensor lag). Specifically, the wt in kg needs to be done in post-op or that may eventually cause some confusion.
* The actual yellow label for Weight was changed on the “preop data” tab. This should be done for the post-op Excel file as well.
* An inclusion of an index to the “Confusion Test” was included in the legend to the right of the pre-op Excel file.
Please note that these changes have NOT been made to the post-op physical exam report. If this is desired, it will need to take place at a later date.
* After the above was done, the Post-op Lower ROM.xlt, Pre-op Foot ROM.xlt, and Post-op Foot ROM.xlt templates were changed so that the weight LB vs weight KG label was changed to correctly reflect the units that weight was pasted into the Excel files. At a minimum, this guarantees that all the units are correct on the post-op reports, as well as the pre-op foot report. Other changes (getting the Post-op Lower ROM.xlt file to perfectly match the Pre-op Lower ROM.xlt) will need to be considered at a later time.
Also, for this pre-op physical exam export, a word document is always created, even if it’s an Excel export. This makes it convenient to edit these reports even if the “Master” report button isn’t used.
* Made the weight LB vs weight KG change to the Post-op Lower ROM.xlt, Post-op Foot ROM.xlt, and Pre-op Foot ROM.xlt templates. This guarantees that, when reporting weight in kg is chosen, that these reports will be correctly displayed. There’s still the possibility of some fields on the pre-op lower report that don’t appear on the post-op lower report, and these will need to be addressed later, if someone wants it addressed.
* Completed the addition of the Gillette FAQ questionnaire in the database. This includes creating the new table (during a roll-out update), creating all the necessary forms, recording data into the database, developing a report template, and producing a patient report from the new FAQ table using the report template.
* Completed phase 1 of the Motion Analysis Corp (MAC) accommodations. This includes creating a Vicon vs MAC switch in maintenance, and also accommodating the creation of sub-folders in the MAC file system. For now, it is assumed that the MAC system has a single patient-set file system that effectively mirrors the patient file system of this database. (MAC does not have the complexities that Vicon has with respect to storing its files, which, in my opinion, is a good thing.) When a new patient is added, the user is prompted if they would also like a sub-folder for the patient included in the MAC file system. When a new encounter is added, a similar prompt for the encounter appears. When the user clicks the “Process Motion Data” button, the system checks to see if the patient’s encounter folder is in the MAC file system. If not, it prompts the user to see if it should be added. This allows the user an easy way to create the folders needed in the MAC system for storing raw data files that will come out of the MAC system. Also, if the database program can’t “see” the MAC’s patient path, all of these prompts disappear. This is to accommodate networks that have workstations whereby only one of the workstations can actually “see” the MAC system (i.e., possibly containing two NIC cards).
* Completed phase 2 of the MAC accommodations. This involved adjusting the file management accommodations so that both the MAC .EVT and .DATA files are part of the processing. MAC doesn’t actually place joint data into their C3D files. Therefore, this data must be read directly from their .DATA file that is created with their Cortex software via a .Graph template file. The spaciotemporal data are still calculated from the C3D file via the toe marker. This was adjusted to accommodate the MAC C3D internal labels. To actually read and plot the joint data (both kinematics and kinetics), a series of procedures were written to navigate around in the .DATA files. Once this was written, work was performed to read these .DATA files in a similar fashion that a C3D file is read. This allowed the software to simply slip in this data at the appropriate spot, and then proceed to creating GCD files, allowing those GCD files to be plotted. This was completed for all lower extremity joints. Phase 3 will be to accommodate trunk data. As a further note on this, only one number for “power” is pulled out of the .DATA files. The number in the sagittal plane was used, and it is called “Total Power” on the plots.
* Code was put into the “Export Excel Plot File” so that the hospital name is correctly patched up for different hospitals.
* Completed phase 3 of the MAC accommodations whereby the Trunk plots are correctly populated from the MAC .DATA file.
* Made a change to the way Analog C3D Labels are checked so that they would correctly work with MAC .C3D files. This was tested and everything now works for plotting EMG data.
* Changed the front end version to 2.069 dated October 16, 2015.
July 30, 2015 * Changed the MotionGraphs.xlt and MotionGraphsWithTrunk.xlt template files to have an option whereby the “normal” gait params are estimated based on the whole group of available normals and NOT controlled for age and gender. This decision can be made for the spacial/temporal params separately from the kinematic params. These options default to “Yes” use age and gender as a control. However, two checkboxes shown on the GaitParameters tab can be unchecked, and then the normal prediction will simply be the mean (and standard deviation) of all the normals. This decision must be made on a per-plot-file basis. Also, just to note, the spacial/temporal values consist of Cadence (G), Walking Speed (H), Stride Time (I), Stride Length (M), and Step Length (N). There are some other timing measures, but these are all considered kinematic params.
* Changed front end version to 2.068 dated July 30, 2015.
July 18, 2015 * Completed the addition of the Wheelchair Users Shoulder Pain Index into the database. This included addition to database structure, administration, scoring, saving, reporting, and printing of original pencil-and-paper version.
June 8, 2015 * It was determined that, when converting a Novel .DAT file to a Novel .LST file, the data needed to be mirrored to represent the correct foot. This was not caught in the initial writing of the conversion routines because direct access to the Novel equipment was not available to me. However, this should completely remedy problems with creating .LST files from .DAT files.
June 5, 2015 * Corrected a problem found by SHC-Chicago in the reporting of Peak Heel Pressure in the third trial that was reported on the foot pressure report. This problem was only on the report, and not in any of the calculations of the actual numbers.
May 31, 2015 * Made a modification to the way the trunk data is parsed from the C3D files into the GCD files. In Houston, there are C3D labels of TrunkAngles and TrunkAnglesAbs. However, there are other models that use SpineAngles and ThoraxAngles rather than these TrunkAngles and TrunkAnglesAbs labels. It is my understanding that they are the same angles, just calculated from a different model. The database program was changed to look for either of these alternative labels and parse them into the GCD files.
* Changed front end version to 2.067 dated May 31, 2015.
May 8, 2015 * Added several additional muscles to the EmgMuscles hidden table in the database. These muscles already had “norms” in the EmgReport.xltx template.
* Added several new fields to the “History & Other” tab of the physical exam. These included a Botox yes/no, Botox date, Botox note, Baclofen yes/no, Baclofen date, Baclofen note, Rhizotomy yes/no, Rhizotomy date, Rhizotomy note fields. These were added in the check of database structure and also on the “History & Other” tab. The dates were added with full year-spinner controls and calendar picker. It is noted that the only easy place to see this data is to return to the “History & Other” tab.
* Rearranged the tabs on the Physical Exam window. The “History & Other” tab was moved from the last position to the second position, with all other tabs shifted over. Also, the tabbing (from one control to the next) on the individual tabs was worked on.
* Added the “filename for export” to the O2 Worksheet report.
* Completed the addition of the Ankle Plantar/Dorsi flexion in ipsilateral swing phase. This followed much of the same logic used for adding the knee flexion/extension in ipsilateral swing phase. All of the corresponding numbers now appear in the list of gait parameters.
* Completed the AbilHand-Kids integration into the database. This included all of the following:
- Created a new table in the database with all the AbilHand-Kids prerequisite fields. This was done through the auto-update feature.
- Created the AbilHand-Kids interface on the ServicesQuestionnaires form, with new Administer, Report, and Delete buttons.
- Built the code to administer the AbilHand-Kids, which consisted of prompts for language (English or Spanish), a system to randomize the order in which the questions are asked, a system to show the English version when Spanish is showing (via the F10 key), algorithms to calculate the scores, and procedures to record the answers into the database.
- Built a report for the AbilHand-Kids questionnaire that shows all the responses in a way that would allow easy online Rasch scoring in case that’s ever desired. The report also shows the simplified scoring as discussed with staff at SHC-Houston.
* Completed adding the surgeries and procedures for upper extremity. The last piece was to include the surgery procedures onto the OT physical exam report (similar to the way it is done on the MAL report). However, there was an added complication in that there was a free-form field on the OT physical exams for specifying the surgeries. This free-form field was meant to be a stop-gap measure, but it had been used over the last few months. To resolve this, data in the free-form field was moved to the OT physical exam “notes” field. This free-form field was de-emphasized on the OT physical exam screen (but not deleted). And then, anything still in this free-form field is appended to the actual surgical procedures when they are listed on the exported OT exam report.
* Put a new procedure in the foot pressure processing whereby the Novel .DAT files are automatically converted to .LST files. This allows processing of Novel data files without the explicit need to export the ASCII files. It will still work if you export them, but the .DAT files will be automatically created if they are selected for foot pressure processing. This obviates the need for the purchase of certain Novel add-on software (to export the ASCII files).
* In the grip strength section of the OT physical exam report, changed it so that both kilograms and pounds are reported on the report. This was done on both the pre-op and post-op reports. A colon “:” was used to separate the two.
* Added two new fields to the OtPhysicalExam table. They are the left and right handle positions for Key Pinch. This was already done for Grip, but the mechanism may be set differently for Key Pinch, so this needed to be tracked separately. This involved updating the database structure, and then making the appropriate data collection spots on the OtPhysicalExam form.
* Added the two new requested procedures to the Upper Extremity procedure list: “Wrist epiphyseal fusion” and “Intrinsic muscle fractional lengthening”.
* Added four new gait parameters to the list: Min knee flexion in ipsilateral single support stance, Peak for same, Mean for same, and Range for same. This involved identifying the ipsilateral single support stance range from the GCD data, calculating these parameters, creating new space in the Excel plot file for all six slots, and then re-calculating the “normals” so that normals data for these new parameters would be available. To re-calculate the normals, all the GCD files for the normals data had to be re-prepared for import into the plot Excel files. After all this was done, all the work had to be copied from the landscape version of the Excel plot files into the portrait version of the Excel plot files.
* Corrected oversight on physical exam form where the R1 stuff was left on the “Foot Only” version for the left foot for dorsiflexion.
* Added two new fields to the physical exam form (and table). The first is a Yes or No question asking about whether or not there’s any familial history of walking problems. The second field is a note (memo) field for making any notes about the familial walking problems.
* Changed front end version to 2.066 dated May 8, 2015.
April 28, 2015 * Turned off the auto-update flag in the SMPLAYER.INI file. Also changed the checks for a local SMPLAYER to make sure this INI file is always refreshed from the PatientsAndServices.exe anytime the video player is needed.
* Corrected a problem with the “Locks” subfolder causing a run-time error 76 when it’s not initially there on a new installation. Now, a MkDir is issued anytime it’s not there.
* Changed front end version to 2.065 dated April 28, 2015.
April 16, 2015 * Added a new feature on the “Patients” window. It starts with a new button named “Preview Upcoming Encounters for All Patients”. It has the option of showing future encounters for various selected date ranges. Also, if you double-click any of the encounters, you will be taken to the Services window (through the EncountersAndSurgeries window).
April 15, 2015 * Added a new feature under “Multi-Patient” reports to do some quick queries and sorting of patients directly in the database program with option buttons.
April 9, 2015 * New Windows 64-bit operating systems have a new feature called “fusion cache”. This is suppose to make programs run faster. However, it short circuits reading the .manifest file when a brand new installation of the program is taking place. To correct this problem, the .manifest and .ocx files were unpacked, then, through a series of copies, the modify date on the actual program was changed. Changing the modify date causes the Windows “fusion cache” to re-check for a .manifest file, thereby fixing the problem. As a note, this is never a problem on any Windows 32-bit operating system. In other words, this would only come up on Win7-64, Win8-64, and Win10-64.
February 20, 2015 * Completed a rather major reworking of some of the plantar pressure processing. Completed the re-processing of the 702 normals, which involved re-processing them 3 complete times. Took this “normals” information and reworked the +1, +2, -1, & -2 SD bands that appear on the foot report. Also recalculated the heel-to-mid and mid-to-fore percentages, but (when rounded to integer percentages) they did not change. Also reworked the foot pressure master report: 1) swapped the peak pressure plot with the copp Excel plot, 2) gave both the peak picture and the Excel plot names. The peak picture is named the “Peak Pressure Plot” and the Excel plot is named the “CPPP Dynamic Step Plot”, 3) put some code in to make sure the Excel plot does not shrink in size after it’s saved from being patched up with the patient’s data. This will hopefully put the plantar pressure processing and reporting to bed for a while.
* On the OT physical exam report, the thumb-House classification wasn’t reporting correctly if it was Type 3. It was just a reporting problem. No problems with data in the database. This was corrected.
* On the OT Physical Exam form, under the FDT seconds, added the ability to interpret a colon (:) in the time, and then interpret everything to the left as minutes, and then re-convert the field to pure seconds.
* Cleaned up the tab order on the OT Physical Exam form.
* Completely reorganized the foot pressure normals and included them into the SHC-Houston database data. Also, wrote an automation routine in the database to re-process all of these 702 normals (6 step events per normal). This will allow a recalculation of the normals comparisons for the COPP sections of the plantar pressure report. This reworking of the plantar pressure report is still a continuing work-in-progress.
* Regarding rotating and scaling plantar pressure step events, re-added a feature allowing the “old” way of rotating (for “tweaking”) these images. This is something that will only affect SHC-Houston in that nobody else will have rotated files prior to 2010 (when the change was made). Originally (prior to 2010), files were rotated the hard way (using Sin and Cos). In 2010, a change was made to use the Windows-OS features included with the GDI+ API calls, which allow for rotating of images much faster than possible in a high-level language. However, the GDI+ did the rotations on a slightly different centroid, so the offsets were no longer exactly the same. Therefore, when an old (pre-2010) rotation was subsequently called up, it looked slightly mis-aligned on the template. To correct this, when an older rotation was called up, the older (Sin and Cos) routines were given as an option to the user, so that the exact original rotation could be recovered. This will all be particularly useful when the “foot pressure normals” database is reprocessed for COPP.
* Corrected a problem with the OT (occupational therapy) type encounters still having access to the “Encounter Working” flag. This flag is now defaulted to “Off” if it’s an OT starting the encounter, and the frames for changing it are disabled. This prevents these encounters from appearing in the MAL Working Encounters report. Also, cleaned up the SHC-Houston database (i.e., turned off working flag) for all OT encounters that had this working flag turned on. This was just an oversight, and something OT never considered but was an annoyance for the MAL.
* Fixed a problem with an RTF label on the Referrals and Studies maintenance form. This did not affect any data.
* Fixed a problem with the Services List form flickering when an attempt was made to change the encounter on the EncountersAndSurgeries form. This did not affect any data, but it was quite annoying for the user.
* Reworked the Referrals and Studies list (including the Services List) for SHC-Houston to accommodate a pure research patient. The new referral was “Research” and the study was also “Research”. All services were indicated as optional.
* Changed front end version to 2.064 dated February 20, 2015.
December 12, 2014 * Received an Upper Extremity surgical procedure list and cleaned it up for inclusion into the database. To make entry of the procedures easier, a new “Add/Validate Initial List of Procedures” button was added to the Maintain Upper Extremity Procedures List form.
November 25, 2014 * Made a SafeDir() function to replace the standard Dir$() function. This allows the database program to run without errors even if the Patients, Nexus, and/or Tekscan paths aren’t correctly set.
* Fixed a small problem with the ActualLaps and Laps fields in the database. The database structure update function wasn’t quite right with respect to these fields, and this was corrected. This was revealed with the conversion of Sacramento’s 4 year old database.
November 14, 2014 * Reworked the “Add Encounter” form so that it stayed in the 1024x768 form size.
* Added a year field to the research study list.
* On any forms that actually save data to the database, standardized the “Save” buttons to say “Save & Close”. Some of them just said “OK”.
* Sorted out the problems with creating a new “hidden” table in the database. The new OtProcedureList table is created as hidden (as are all the other master list tables). This was the first master list table that was created since the creation of new tables and fields was fully automated.
* Completed adding a “Depreciated” field to the master surgical procedure list. This allows the ability to “phase out” the use of various procedures. On the screen where procedures are assigned to patients, these depreciated procedures are light gray (rather than black). They can still be used, but a note discourages their use.
* On PODCI, if they’re re-taking it, there are now small notations in the top-left of each screen that indicate their previous responses. (This was not done for the comorbidity questions or the body area questions, but it is for all others. Neither the comorbidity nor the body area questions are part of the short-form.)
* Added five new fields to the Surgeries table: Botox, Baclofen, Rhizotomy, SoftTissue, BonyWork. They are all yes/no fields. These will ultimately be used on the MEC reports.
* Changed the new femur/tibia lengths so that they don’t auto-calculate unless there are non-zero amounts for at least two of the three involved fields.
* Added the “Structure” to the front end and database for Upper Extremity surgery and procedure tracking. This involved the following:
• Created auto-update features for a new OtProcedureList, OtProcedures, and OtSurgeries tables, including all fields, indices, and relationships.
• Created auto-update for a new gbOtSurgeries database features field so that this whole thing could be turned off it not used.
• Changed the way that the MAL surgeries are listed on the EncountersAndSurgeries screen to LE SX, rather than just SX.
• Worked out the sorting of the Encounters & Surgeries so that both the Upper and Lower surgeries are sorted into the listbox on that screen.
• Built a new routine for maintaining the available Upper Extremity procedures.
• Went through all the existing lower extremity surgeries and procedures, and put a “Lower Extremity” designation on them. When the OT (Upper Extremity) procedures and surgeries are developed, they will be designated as “Upper Extremity”.
• Created new forms for adding Upper surgeries and Upper procedures.
• Patched up the drag/drop form so that it would work with either the Lower or the Upper procedures form.
• Removed the “Goals” stuff from the Upper Extremity procedures.
* Patched up the .RES file for the new templates done in this period. Also patched it up for the “Blank” database as well as the “Query” databases. The new Foot….COP table was also placed into the “Query” databases.
* Added an option for the Foot Rotation to be plotted on the landscape version of the Kinematic Plots. This is a button at the top and replaces Knee Rotation.
* Completed all work necessary for the femur and tibia lengths to be recorded. This included adding fields to the data through the automatic update routine, working out a place for them on the physical exam entry screen, and working out a spot to report them on the physical exam Excel file. They were added just below the leg length. They were not added to the “Foot Only” physical exam Excel export file but the space on the data sheet (not report sheet) was reserved just in case someone wants them added at a future point. In fact, the data is actually placed in the data sheet (just not the report sheet).
* Add two Spinal Cord Injury (SCI) fields to the physical exam entry form. As part of this, an “Other” tab was created. This “Other” tab needs more organization, but this will wait for another time. The two new fields were also added to the database (through auto-update). Their DB names are SciAsiaLevel & SciInjuryLevel. At this time, they are not reported anywhere.
* Added the “Chief Complaints” field to the physical exam form and the PhysicalExams table of the database.
* Changed the default (forced) setting for Power PDF (formerly ScanSoft) to “Append” instead of “Ask”.
* Corrected problem with the new COPP reports reporting an error under certain conditions of “Saving” and “Cancelling” on the data entry forms. Now, it may not print the data if all “Save” buttons are not pressed, but it will not crash.
* There was a problem on the COPP report where it didn’t “see” the COPP data unless you back out to the “Encounters” screen (before the “Services” screen). This was corrected, with a re-check of the data available upon exiting the calculations of COPP.
* Changed front end version to 2.063 dated November 14, 2014.
October 16, 2014 * Completed the new COPP (center of pressure progression) work. This was a rather major undertaking with the following components:
• Wrote routine to read a Novel emed file. Once read, the “sensel elements” (sensels) can be treated exactly like Tekscan elements. As per the Novel rep, they are square sensels, so they can be treated the same. Also, the Novel mat is smaller so the Novel timeslice matrices will easily fit on the analysis screens in the database.
• Re-familiarized myself with the picture rotation, scaling, and offset routines. These “pictures” are also used to calculate the foot pressure and will be used to report COP data.
• Create new COP fields in database and automatically add table.
• Figured out how to calculate a COP “movie”, COP for each frame of foot step event.
• Created new functions to store COP movie into a string for database storage, and to retrieve them back into an X,Y array.
• Completed steps to store COP string into new database fields.
• Figured out how to plot the COP points on the peak and integral rotated picture.
• Experimented with cubic spline but finally settled on linear interpolation to create a COP “movie” with exactly 96 X,Y coordinates, evenly spaced on the X coordinates. This was necessary for ultimate “normal” comparisons. As a note, the 96 derives from the fact that the initial images for rotating and scaling foot steps were 96 pixels. At some point, this may need to be changed, but it serves well for the time being.
• Created space in database (automatically created) for storage of the interpolated COP96 values. Used “to string” and “from string” to store these in database.
• Went through the database of “normal” plantar pressures and identified 46 “normals” within the 3rd to 97th percentile on BMI. Organized these 46 “normals” for re-analysis.
• Re-analyzed the 46 “normals” for one left and one right foot step, calculating their COP string and their COP96 (linearly interpolated) string.
• Statistically analyzed the 46 “normal” COP (actually 92 if you count left and right). From an X=1 to 96 perspective, it was determined that a minimum of X=15 and a maximum of X=84 was reasonable based on the “normal” COP values. These were the mean min and mean max values. Between X=15 and X=84, the COP96 values of “normals” were analyzed, determining a mean and standard deviation (SD) at each X integer between 15 and 84. As a note, the COP96 is primarily ONLY of use for developing the regression equations from the “normals”. It is not of use when actually evaluating the COPP for a specific patient, or when doing research.
• The above analysis of “normals” between X=15 and X=84 were developed into a function that would return the mean and SD of Y for any integer X value of COP.
• Several methods were explored for plotting these “normal” values (specifically +1SD, +2SD, -1SD, and -2SD lines), and it was finally decided that plotting them on the 4X plots as single pixels was best, and using the “line” from point-to-point drawing routine.
• Also using the “normal” mean and SD, a function was developed for determining the “neutral” status of any patient’s COP X,Y point. Also, another function was developed to determine the hind,mid,fore position of a patient’s COP X,Y point. The template (with the somewhat diagonal line isolating the metatarsal heads) was used for hind,mid,fore determination.
• Using the above two functions (+2sd medial, +1sd medial, neutral, +1sd lateral, +2sd lateral) and (hind, mid, fore), a count of the COP XY values in each of these 15 areas based on the actual foot step timeslices (i.e., the movie) was made. Each of these counts was divided by the total timeslices to derive a proportion of COP in each area. This was called COP distribution.
• New database fields were created (automatically added) for storage of these new COP distribution fields.
• Re-analyzed the 46 “normals” yet again to determine normative values for percent (proportion) of “normal” COP in the hindfoot, midfoot, and forefoot areas. It was determined that hindfoot proportion = .30404, midfoot = .17101, forefoot = .52494. This was rounded to 30%, 17%, and 53% for reporting. Forefoot was rounded up to make a total of 100%.
• Developed a spot on the rotate and scale form to report the COP distribution numbers. Also developed a “hover” function to report the COP distributions for up to 6 step event analyses per encounter on the Add/Edit Foot Study form.
• Developed functions that convert the COP array to z-scores (based on norms) and also the percentage of the gait cycle for each COP calculation. These new X,Y values can then be used to plot a medial-lateral line on the foot report.
• Developed an Excel plot of the new COP calculations.
• Completely rewrote the foot report to include the new Excel plot as well as all the new COP medial-lateral and hind-mid-fore calculations. This new report is a bit tight but it still has the ability for pre-op to post-op comparisons on a single page. There are actually three new templates: 1) a pre-op (or baseline) which allows for both left and right on the same page, 2) a left post-op (pre-to-post comparison on one page), 3) a right post-op (pre-to-post comparison on one page).
* Changed the F1 help system to be “web” based with the help files on the MotionLabResources.org website.
* Changed front end version to 2.062 dated October 16, 2014.
September 19, 2014 * Changed the structure of the help system to use the F1 key (rather than right-click). This will limit help to a maximum of one help document per form, but that should be quite adequate. Also, using right-click was not intuitive, and caused a few conflicts in places that used right-click for other purposes.
* Fixed units problem with Grip strength normative values. The mean from the article was centered on the overall normative mean, and this was only partially adjusted out of the regression equation. It is now correct.
* When minutes and seconds are placed in the FDT field of the OT exam, a colon is searched and correctly converted to pure seconds. There was a misunderstanding about this field and therapists had been entering time as 2:34 etc. The database now correctly understands entries like this.
* Removed the MarkerModel field from the legends on the motion plots.
* Enhanced the post-op full lower report so that the Outcomes section will automatically fill in for all of these: Preop-GDI, Postop-GDI, Preop-PODCI, Postop-PODCI (and PODCI is done for both parent and child responses depending on what was done), and the Postop-Satisfaction-Question.
* Added a surgical goals achieved worksheet option to the form where you specify your surgical goals. This simply takes the surgical goals from the “Goals Achieved” form and prints them in a worksheet form so the therapist can leave that page and access other data.
* Added normative values for OT Physical Exam ROM values. No control was performed by age or gender. Therefore, they were just placed on the report template with no need for insertion by the database program.
* Added both Grip and Key-Pinch strength normative values to the database. Grip used the work of Butterfield, et.al. Percep. & Motor Sk, 109, p362. and key-pinch used the work of Mathiowetz, et.al. Am J Occ Therapy, 40(10), p705. The development (extraction from article) of these norms was somewhat involved in that regression equations were not explicitly reported. They had to be re-developed from tabular data.
* Box-and-block normative values were incorporated on the OT Physical Exam report, as per Mathiowetz, et.al. CJOT, 52(5), p241 article.
* Normative values for FDT reported on the OT Physical Exam report, as per the Gogola, et.al. J Hand Surg Am, 38(12), p2426 article.
* Added more “Working” information when exporting the OT Physical Exam report so the wait doesn’t seem as long.
* Updated the SMPlayer that plays the movies from the database. It was a beta version that hadn’t been updated since it was initially incorporated in 2009. Version 16 of SMPlayer is now what’s included with the database for viewing patient movies. This SMPlayer is capable of viewing virtually any type movie file in existence.
* Modified the OT Functional Dexterity Test (FDT) reporting. Also collected a new field (for both left and right). The new field is “number of pegs flipped”. This was asked because some children do not flip all 16. The default is 16, but can be changed. On the actual report, it divides the time (seconds) by the number of pegs flipped and reports a Pegs-Per-Second value.
* On the database pre-initialization, changed the checking of the “Forms” folder such that it doesn’t unpack ANY canned forms if anything is already found in the “Forms” folder. This allows people the option of deleting (and staying deleted) any of the initial set of canned forms.
* Completed work for OT physical exam to have Height, Weight, & BMI. Created new fields, placed new tab on physical exam data entry form, and placed new values on the report. BMI percentiles are calculated, and both Ht and Wt are reported in both metric and standard units.
* Fixed problem with Prior Surgeries on the OT physical exam report being truncated at 255 characters. It can now be as long as you like, although after about 4 or 5 lines, the report will require some reformatting by the therapist.
* Added BMI (and percentile) to the OT physical exam report.
* Added a hyperlink to GaitLabResources.org on the main menu.
* Added the MACS field to the PhysicalExams table and also added the data collection to the AddEditPhysicalExams form. Also added the MACS and the BMI (and percentile) to all four physical exam reports (pre-lower, post-lower, pre-foot, post-foot).
* Added a “same-foot-off” line for what “normal” would be on the single-cycle plots. This line is a light gray so it can be distinguished from the patient’s “same-foot-off” line.
* Installed the latest version of the PDF Creator software (now named “Power PDF Standard”) and adjusted the database program so that the default path was still set. It is now tested with PDF Creator 7 as well as Power PDF Standard v 2014.
* Changed front end version to 2.061 dated September 19, 2014.
August 23, 2014 * Reworked the Add/Edit procedures at both the Patient and Encounter level so that any changes in MRN and/or encounter date would propagate through all the questionnaires. This would be inclusive of PODCI, PedsQL, DotsR, UBET, PSI, & PUFI. These database tables are somewhat unique in that they aren’t in the standard relationship structure. All other service tables will update automatically because they’re in the structure, but these questionnaire tables are not. Therefore, they must be updated for date and/or MRN changes somewhat manually. This hadn’t been done, but it is now with this change. As a note, these questionnaire tables aren’t in the relationship structure because the touch-screen data of these is actually older than the database, causing a situation where there may be a questionnaire that doesn’t have its appropriate encounter and patient. Therefore, it’s not possible to add them into the relationship structure. (To be in the relationship structure, a patient record and encounter record MUST exist before corresponding service type records can be added.)
* Added the PedsQL questionnaire to the database.
* Reworked the PODCI questionnaire so that it only records one “Child” and one “Parent” response for a specific Patient’s Encounter. This is the way the other questionnaires are setup to work. This will prevent any need for “manual” database patch-ups when a PODCI questionnaire is administered twice.
* Added the DOTS-R questionnaire to the database.
* Re-enabled the PODCI F10 function to look at the English version of Spanish questions. Apparently this had been disabled when PODCI was brought into the database but nobody ever noticed. This functionality was also re-established for other questionnaires being brought into the database.
* Added the UBET questionnaire to the database. Also created the structure to add several other questionnaire and assessments to the database.
* Completed the initial report of services rendered over a period of time.
* Started the “Other Questionnaires & Assessments” section. This section will allow for administration of the DOTS-R, PEDSQL, PSI, PUFI, & UBET questionnaires.
August 15, 2014 * Completed the new EMG reporting system. This was an extensive change that involved moving away from MLS reporting tools and using internally developed reporting tools. The report templates for generating the EMG reports are now internally contained in the database program.
* To the TAG summary outcomes reports, added # of patients to each procedure. Also added # of limbs and patients to the total at bottom. This was done to both the CP and Paraparesis reports.
* Corrected two problems with the use of the “Friend” declaration. User controls and API callbacks cannot make calls into “Friend” procedures. They MUST be “Public” or a GPF occurs.
* Put in the new “History” canned forms for O.T.
* Validated that the summary SHUEE report had all prior SHUEE evals printed on it (and it does). Possibly historical data not entered for some patients. Also, added more “Working” detail when the report is printed.
* Corrected the reporting of the “House” classification on the O.T. physical exam report.
* Added a “Picture Documentation Service” report to the services screen. Also changed the way both “Copy Video” buttons work so that the last folder is saved in the registry rather than the database. Also made the “Copy Pictures” button work in a very similar fashion.
* Removed all references to the ShueeVideo, MalVideo, & PodciFms folder locations. They were no longer needed. Also removed them from the maintenance area. Also removed the FMS import/update procedure.
* Fixed the problem with not correctly identifying the secondary monitor. This manifest itself in the SFA Help form not correctly centering.
* Completed the wrapping of all templates into the executable.
* Completed the ability to completely install from the executable. The only thing remaining is the addition of a demo patient or two.
* Added “IncludeOnMecReport” field to the Surgeries table. All done through the auto-update procedures. Also added to frmAddEditSurgeries and considered in the MEC reports.
* Added the core “Help” files to the resource file, with auto-rollout if they’re not found.
* Added canned forms to the resource file, with auto-rollout if they’re not found.
* Reworked the canned forms printing where it shows ALL forms in the \Forms\ folder.
* Added a blank database to the resource file with an auto-rollout if a database isn’t found. This blank database is also automatically patched up with various paths for an initial use.
* Started the structure of rolling out Word & Excel templates on an “as needed” basis, and used it for the PODCI report template.
* Fixed the detail MEC annual report where the GDI split out by previous surgery yes/no had the previous surgeries reversed with the non‑previous surgeries.
* Changed front end version to 2.060 dated August 15, 2014.
July 18, 2014 * Completed the new Paraparesis multi-patient reports. This included both the summary and the detail versions.
* Added the two new FamilialSpasticParaparesis and GeneticallyTestedSpasticParaparesis fields to the Patients table (through the auto-update procedure). They were also added to the frmAddEditPatients form.
* Completed the dealing with GMFCS IV in both the detail and summary MEC reports. This included reworking the accumulation routines, patching up how these routines paste the results into the Excel spreadsheets, and reworking all the graphs in the detail report to accommodate the GMFCS IV option on all GMFCS breakdowns. The summary report was also expanded to LANDSCAPE LEGAL to accommodate the extra columns.
* Put option in to KILL Word or Excel if they are running when they need to be closed.
* Fixed problem with CHICAGO being on the O2 pictures report.
* Added Unicode and Resources modules to the overall project. The Resources module will be used to wrap up all the necessary files into the .EXE file. This will ultimately include an empty copy of the database, all the Forms, and all the Dependencies.
June 27, 2014 * Completed the multi-patient report that identified those patients needing post-op data. This required adding a new field to the Encounters table named “NoPostopRequired”. Also, a new template named PatientsNeedingPostop.dot.
* Changed front end version to 2.052 dated June 27, 2014.
May 30, 2014 * Changed the EMG reporting around so that a temporary copy of the muscle.ini file is placed on the C: drive. This was done because the MLS software can’t deal with network path names when finding this file (eg. \\fs01\Database\EMG).
May 29, 2014 * Added a button to EMG reporting which allows just writing the ReportGenerator template to the encounter folder so that the ReportGenerator can be “manually” used to open the C3D.
May 23, 2014 * Fixed the skipped “trips” question on the Foot Only version of the Post‑Surgery questionnaire.
* Fixed a problem with the Teaching Notes and/or Encounter Notes not getting correctly saved if the X was used to close the form on which they were changed.
* Completed the work on the EMG Add/Edit screen to make it completely universal, and to also deal with either a 1-8;9-16 or the more standard odd-even numbering schemes. There still needs to be work done on creating report templates on-the-fly and making the MLS reports work.
* Created the above “template on-the-fly” work and made extensive other changes to EMG reporting:
* Created a new .\EMG sub-folder within the database folder. This folder contains the c3dtogcd.ini, muscle.ini, emgreport.gcc, & EmgCoreReportTemplate.rpt files used by the EMG reporting system.
* Created new fields in the EmgServices table. Specifically, these fields are C3dLabel## fields for storing the C3D labels to which the EMG channels are sent and connected to muscles.
* Completely reworked the AddEditEmgServices screen to accommodate these new EMG channels. This allows complete flexibility with respect to which C3D labels are used for collecting EMG data.
* Added a “Peek at C3D Analog Channel Labels” option to the AddEditEmgServices screen. This helps with figuring out the C3D labels when creating an EMG configuration for reporting.
* Added the ability to save the C3D label configurations as files so that they can be easily retrieved and applied to future patients.
* The ReportGenerator templates are not fully dynamically created, with no “canned” templates needed for reporting. This is all done in the new .\EMG folder.
* Straightened out how several fields work on the physical exam screen when switching from “Full Lower” to “Foot Only”. This was a result of the new R1 & R2 fields.
* Moved the “Working” report under management reports. Also deleted the “Open Database” button from the main menu and actually deleted the database menu from the database. This last thing could not be done for other databases out in other locations because the DAO does not allow a way to do it.
* Implemented a “Help” system in the database program. This will allow users to slowly build help screens associated with the database.
* Cleaned up the “Canned Forms” and their ability to correctly print footers.
* Fixed Chief-of-Staff not going on reports as [Physician] for Houston. This got broken for some of the Chicago changes.
* Fixed the WNL fields on some of the physical exam measurements. This got broken when some of the controls were swapped out with the R1/R2 changes.
* Changed front end version to 2.051 dated May 23, 2014.
May 8, 2014 * Removed hospital location flag and replaced it with a field where the hospital name could be specified.
* Went through all the “Canned” forms (the ones printed from the initial implementation of the database) and added the FIN# to the footers. Also made sure that the new HospitalName field was used on them.
* Went through all the “Template” forms and replaced [hospital] with the new HospitalName field.
* Completely cleaned up the \Forms folder. Also went through the templates (including the “canned” forms) and removed any designation of hospital and replaced it with [Hospital]. There are still a couple of Excel forms that have “Shriners Hospitals for Children”, but they don’t have a specific city designation. An automated search-and-replace was also performed using the new HospitalName field anytime one of the templates was used.
* Completed the addition of the new Chicago fields on the physical exams on all the report templates. In Excel, this included the following fields. The cell is in parentheses:
Right double pop angle (D63)
Left double pop angle (D64)
Right extensor lag (D65)
Left extensor lag (D66)
Old fields that had R1 added:
Right pop angle (D33)
Left pop angle (D58)
Right knee flex prone (H17)
Left knee flex prone (H30)
Right dorsi 90 (H28)
Left dorsi 90 (H38)
Right dorsi 0 (H29)
Left dorsi 0 (H39)
* Added the ChiefOfStaff and Number fields in the Physicians table to the structure check of the database. These fields had been previously overlooked, although this will cause no harm because none of the previous version were distributed anywhere.
* Changed front end version to 2.050 dated May 8, 2014.
May 2, 2014 * Added hospital location flags to the General module. These will be used to specify different functionalities for different hospitals.
* Checked to be sure that MP2 files would be correctly viewed with the database program.
* Made the Gait Lab Support label on the main menu screen hospital flag specific.
* Fixed a bug that Adam Graf found by clicking the “Completed” checkbox on the Add/Edit Encounter form. If adding, it looked for the encounter record before it was created, causing an error.
* Changed the DPI check to be a warning rather than a mandatory setting.
* Improved the dragging around of the Physical Exam, OT Exam, & SHUEE exam forms.
* Smartened up the link to the Nexus database so that it digs through root Nexus folders and also digs through one level of sub-folders looking for the correct patient/encounter folder. It also searches for a sub-string search of first & last name in addition to searching for MRN.
* Shortened all button captions that pop out with the Windows Explorer to the patient and/or encounter folders.
* Removed the PODCI 3 second delay for all but Houston.
* Removed the screen resolution changing for all but Houston.
* Put in a DASH (-) after the test# in all places where reports are exported.
* Changed the signature lines on the master reports to be patient’s physician and not chief-of-staff.
* Removed the “Windows Explore” buttons from the “Viewer Only” screens.
* Added 15 fields to the database. This was done through the structure checking and auto-updating functions (and not manually through MS‑Access). Notes on these fields are as follows. The first group is added to the PhysicalExams table, and the last field is added to the ResearchStudyList table.
1) LeftKneeRomFlexProneR1 added before LeftKneeRomFlexProne.
2) LeftAnkleRomDorsiAt0R1 added before LeftAnkleRomDorsiAt0.
3) LeftAnkleRomDorsiAt90R1 added before LeftAnkleRomDorsiAt90.
4) LeftExtensorLag added before LeftKneeRomFlexSupine and after LeftPatellaAlta.
5) LeftKneeRomPopAngleR1 added before LeftKneeRomPopAngle.
6) LeftKneeDoublePopAngleR2 added before LeftKneeRomSLRwStretch and after LeftKneeRomPopAngle.
7) LeftKneeDoublePopAngleR1 added before LeftKneeDoublePopAngleR2.
* The above 7 were also done for the right side.
* And also, the PathAndNameOfConsentForm field was added to the ResearchStudyList table.
* It should also be noted that the following fields are implicitly R2 even though they are not named as such. These are the old fields that now have a matching R1. In the new R1/R2 scheme, the original measure is considered an R2 measure. Renaming them would have complicated data collected before the new R1/R2 scheme was implemented. These old fields are: LeftKneeRomFlexProne, LeftAnkleRomDorsiAt0, LeftAnkleRomDorsiAt90, & LeftKneeRomPopAngle. And also all four for the right side.
* Added 14 of the above new 15 fields (all but PathAndNameOfConsentForm) to the physical exam data collection forms.
* Changed the Nexus database paths such that BOTH paths are searched for the patient/encounter of interest. The procedure in Chicago is to occasionally backup the entire Nexus database from the local Nexus machine onto a server. Also, files are occasionally deleted from the Nexus local machine’s database, but they accumulate forever on the server.
* Above, a field was added to the master research list (PathAndNameOfConsentForm). Maintenance of this field was fully implemented. In addition, for any specific patient, the document specified by this path can be opened for printing.
* Changed front end version to 2.042 dated May 2, 2014.
April 25, 2014 * Fixed problem with OT physical exam not saving two fields.
* Corrected problem with the viewer only encounters screen not correctly displaying the OT encounters.
* Completion of SHUEE project. This included the following:
* Complete design of the SHUEE evaluation data entry form. This is a very complex form and took several days to design.
* “Hooking up” of the SHUEE data entry form to the database.
* Development of the SHUEE detail report for exporting and inclusion in patient reporting.
* Development of the SHUEE summary report for exporting and inclusion in patient reporting.
* Reworked the “folder/path checking” that was performed when starting up the database front-end. A couple of the checks were moved further “downstream” so they wouldn’t cause problems when the database was first starting up.
* Completed the database structure check and structure auto-update for all the new SHUEE and related fields. This included the following:
* Adding the OtPhysicalExams and OtShueeExams tables and all their associated fields.
*Adding the new OT options (fields) to the DatabaseFeatures table.
* Adding the PathToMalVideos and PathToShueeVideos tables. Technically, the PathToMalVideos was an enhancement for Nallely.
* Added the new OtReferralStudyList and OtTherapists tables. Sadly, these tables could not be made “hidden” through use of the DAO.
*Added the new OtTherapist and OtPhysician fields to the Patients table.
* Added the new OtTherapist, OtReferral, OtStudy, OtWorking, OtDueDate, OtApptPending, and OtCompleted fields to the Encounters table.
* Added the new database relationships for the OtPhysicalExams and OtShueeExams tables.
* Changed front end version to 2.041 dated April 25, 2014.
March 21, 2014 * Changed the PdfAndMpegCopy.exe program to also pick up AVI files. This is the program used to copy files from the MAL server to the Shrine server.
* Changed the video processing and viewing to recognize AVI files. Also determined that AVI files should not be renamed to MP4 files.
* Moved the .LCK files to a \Locks\ sub-folder. It was also determined that some users don’t have “full” network rights for deleting files. This causes problems in that temporary “hangover” files are left dangling around in various places.
* Developed “help” picture of Volkmann’s angle and placed it on a help button of the OT physical exam.
* Added a “none” option button for the Thumb-House classifications on the OT physical exam.
* Changed the “text option” boxes for the sensory stereognosis to regular textboxes that require typing in the values. The default is still 6 total.
* Change the grip and key pinch data entry area so that three trials could be entered, with the three trials then an average could be stored. This was also patched up in the report export.
* Implemented separate lists for therapists for the MAL versus the OT departments. This is true in maintenance, at the patient level, and at the encounter level.
* Implemented a full “swap” for the MAL-versus-OT referrals/studies list. This involved new maintenance routines, and also a complete redesign of the Add/Edit encounter form. Also, a registry option was placed on the Encounters/Surgeries form that remembers which way it is to be displayed on that and deeper forms.
* Made more clean-up changes to the frmServices form. Specifically, pulled several functions up into the MAL area so that OT doesn’t get confused by them.
* Put timeout on the Patients, Encounters, & Services screen. Just used the same timeout interval as the ViewerOnly interval.
* Added the ShueeVideoFolder global variable with maintenance for use in copying the SHUEE videos from the capture folder to the patient’s encounter folder.
* Got the “Copy Video” functionality working for SHUEE. This copies the video from the capture computer into the patient folder, renaming it to an appropriate name in the process. This functionality was also placed on the MAL videos as a separate button than SHUEE. All of this involved new path specifications in the database, video review capabilities, handling of dual monitors, and copy/overwrite checking.
* Changed front end version to 2.039 dated March 21, 2014.
February 21, 2014 * Added a second check for the presence of studies on the services screen when the Add/Edit buttons are clicked. Here’s a scenario that could have potentially caused a problem: 1) two workstations are sitting on the same patient/encounter for an encounter that has no (say) foot pressure study. Therefore, both terminals say “Add”; 2) one of the workstations goes in and adds the foot study, and then completely gets out. At this point, the second workstation still says “Add”; 3) the second workstation then clicks their “Add” button, but the study is already in the database.
To completely fix this problem, a second check of the presence of a study is done the moment the Add/Edit button is clicked. This completely resolves the problem. Even though they clicked “Add”, they will still be going in as Edit mode.
* Major progress toward implementing both a physical examination and SHUEE data collection in the database. The following is a bullet list of things that have been accomplished.
* Created the OT physical exam table in the MDB file.
* Redesigned the Services form to have sections for both OT and MAL on the form.
* Created buttons for physical exam and SHUEE eval on the Services form.
* Added the new OT services to the “features” flags in maintenance area. As with all others, the default is “on”.
* Started the development of the new AddEditOtPhysicalExams form. This is a complex form that will involve a great deal of work. Individual milestones to this form are listed below.
* Completed the Past UE Botox and/or Sx section to the AddEditOtPhysicalExams form. This included a feature to allow copying of previous entry into current physical exam.
* Completed development of the ROM, Tone, & Strength (first) tab of the AddEditOtPhysicalExams form.
* Completed development of the “Help” buttons for the first tab of the AddEditOtPhysicalExams form. This included the development of pictures to illustrate the proper way to take and record the ROM measurements.
* Added OT Therapist and OT Physician fields to the PatientData table. Also added OT Therapist field to the Encounters table. Also, maintenance of both of these fields was added to the frmAddEditPatients form and the frmAddEditEncounters form.
* Swapped out all the “Patient Info” boxes everywhere in the program so that the new OT therapist and OT physician would be reported in this area. Other than reports, this completes the implementation of the OT Therapist and OT Physician fields.
* Completed all the work of the second tab of the AddEditOtPhysicalExams form. This included the MACS, Volkmann, Sensory, Dexterity, and other miscellaneous assessments. Also, several help buttons were made functional on this second tab.
* Completed the development of the .DOT file that serves as the template for the physical exams.
* Completed the export of the physical exams to a Word DOC file that is placed in the patient folders.
* Had long meeting with the OT SHUEE team to flesh out further details of the project.
* Removed the “Good Teaching Patient” flag from the frmServices form. This made it only on the frmEncountersAndSurgeries form. I also added the “Notes” prompt on the frmEncountersAndSurgeries form when this field is clicked.
* Reworked the “manual” record locking code so that it was more programmer-friendly, and then implemented it in the physical exams area. Also implemented it in the foot services area. We may also want to consider other areas for this as well.
* Changed front end version to 2.039 dated February 21, 2014.
January 24, 2014 * Placed a Procedures.eof check in one of the management report generators so that an error wasn’t produced when a report of most recent patients was requested.
* Made a change to the frmO2raphForSteadyState so that the previous steady state was the default when re-processing data.
* Added three new fields to the O2Services table: AmbulationAids, LeftOrthotic, & RightOrthotic. This was also added to the auto-update feature of opening the database. These three new fields were added to the frmAddEditO2Services.
* Fixed a problem with the O2 form. Previously, a block was put in disallowing two people from editing the same O2 encounter. However, there was a bug in the code where the blocked form was not correctly exiting. This was fixed.
* Narrowed the “click” area for the “atypical” patient checkbox. This was apparently causing a problem with spurious clicking of the box.
* Corrected problem where starting a new patient but not specifying the therapist caused problems with other aspects of the program.
* Corrected problem with foot pressure processing. Under certain conditions, the services window wouldn’t recognize that a foot pressure had just been processed, especially if it was processed and then a master report was immediately requested. If you went back out to the encounters window, it was fine. But now it works under all conditions.
* Changed front end version to 2.038 dated January 24, 2014.
June 24, 2013 * Implemented O2 system locking so that the O2 records would not be messed up by dual users (machines) editing the same record. Right now, the locking is for the entire O2 system. Later, it could be more precisely directed at specific patient/encounters.
* Added a check for “hide extensions of known types” NOT being set in the database front end initialization sequences. This is necessary to make sure the Tekscan system run correctly.
* Fixed the sorting on the Surgical Goals Achieved form.
* On the MEC detail report calculations (for exported report), changed the way the mobility and satisfaction scores are calculated. Primarily, mobility is now calculated with partial data, and satisfaction is calculated even though the questionnaire may not be complete.
* On the MEC detail report, added the extra columns requested by Nancy. Gender, ethnicity, FMS breakdowns, days to surgery, days to post-op, and surgical procedures performed.
* On the MEC detail graphs, added a graph for a Di/Hemi by GMFCS I and II breakdown for the GDI.
* On the MEC detail graphs, made sure that N was reported somewhere for all the graphs.
* On the MEC surgical goals summary report, placed the N (per limb) under each of the procedures (not by goal, as that was already done).
* Deleted the “entered” surgical goals complete field from the database. This is no longer used or needed now that the complete goal tracking system is implemented.
* Added a field (OrGoalCode) in the surgical goals master list to specify that a second goal is to create an either/or situation with a goal. This checking was also placed under the “set surgical goals” section of surgeries. Included in structure check.
* Went through data and attempted to clean up the equinus vs midfoot dilemma, but this is still an ongoing discussion.
* Changed front end version to 2.037 dated August 9, 2013
May 24, 2013 * On the post-op questionnaire, removed PODCI from a couple of the screens. This was a remnant from using the PODCI forms to develop the post-op forms.
* Added new fields for the foot only version of the post-surgery questionnaire, and performed final testing. Included in structure check.
* Made some grammatical corrections to the Spanish version of the post‑op questionnaire.
* Modified the physicians list so that the PI/HR number for each physician can be tracked. This allows for the management reports to use this number. This was added to the database structure update.
* Completed the detailed surgical management report. This is a VERY involved report with each surgery reported with TAG, GDI, O2, PODCI, FMS, and post-op questionnaire information. The new MgmtReportPtOutcomes.xlt file was also created as a template for this report.
* Completed all the charts and tables in the MgmtReportPtOutcomes.xlt template file. These are the typical charts and tables found in the annual CP surgical outcomes MEC report.
* Changed front end version to 2.036 dated May 24, 2013
April 12, 2013 * Changed several fields on the AddEditPatients form and the AddEditEncounter form. Previously, they were pulldown-combo fields and they were changed to pulldown-list fields. Pulldown-combo fields allow users to type in something that’s not in the list whereas pulldown‑list fields do not allow this option. (The selection MUST come from the list.) This created an additional problem of data in the database that does not conform to the defined lists. Error trapping was implemented to allow users options on how to proceed when this happens. The options are: 1) blank the field and re-select something from the list, 2) cancel, not allowing user on the screen and leave database unchanged.
* Added a “database structure check” to the main menu. This prevents the front-end program from executing if the database structure is not up‑to‑date. What happens is that the program takes them straight to the “ValidateDatabaseStructure” procedure and corrects the problem when this happens. This should prevent phone calls when a new front-end is sent to users outside the Houston hospital.
* Made (hopefully final) changes to the TAG list. These incorporated edits from both Christina and Dr. Barnes. This isn’t a programming change, but is listed here anyway.
* Completed the “Surgical Goals Summary Achievement Report”. This was a LARGE project that required extensive sorting and summarizing of the surgical goals data.
* Added both English and Spanish version of the “Post Surgery Questionnaire” to the database. Added new table, added programmatic updating for distribution, and also added “Report Export” for saving and adding questionnaire responses to PDF file.
* Changed front end version to 2.035 dated April 12, 2013
March 15, 2013 * Corrected a problem with PODCI that came up with too many responses were given as “Too Young”. Basically, a non-calculated (Null) answer came back and caused a type mismatch.
* Corrected a problem with printing in the MotionGraphsWithTrunk.xlt
file. This is the kinematic/kinetic Excel template for graphing.
There was a bug in the removing and replacing of the upper extremity kinematic
data when printing and not selecting specific (not all) plotted lines.
Specifically, the procedures AddPos200ToKinematicData &
AddPos200ToKinematicData in the modPrintSupport
module had a bug, to fix it, the following lines were changed as follows:
In the AddNeg200ToKinematicData module:
From: wsh.Cells(iRow, iCol + 75 + iColOffset) = wsh.Cells(iRow, iCol + 2 + iColOffset) – 200
To: wsh.Cells(iRow, iCol + 75 + iColOffset) = wsh.Cells(iRow, iCol + 75 + iColOffset) – 200
In the AddPos200ToKinematicData module:
From: wsh.Cells(iRow, iCol + 75 + iColOffset) = wsh.Cells(iRow, iCol + 2 + iColOffset) + 200
To: wsh.Cells(iRow, iCol + 75 + iColOffset) = wsh.Cells(iRow, iCol + 75 + iColOffset) + 200
This bug in no way affects data in the database. I also went through and fixed the bug in ALL existing Excel files with trunk plots.
* Fixed the problem with a strange foot pressure section coming out when a foot pressure is started but not completed. Now, it just leaves an “un‑filled out” section on the report for the therapist to delete. This could also be removed and will be discussed.
* On the frmSurgicalGoalsAchieved form, the goal criteria were being truncated. To fix this two things were done: 1) the width of the form was increased, putting the increase in the criteria column, 2) a tooltip was used that shows the complete criteria when the criteria is hovered over with the mouse.
* Changed the version of the actual MDB database to
Version 2.020 - March 15, 2013. This was done just to keep track of new fields that have been recently added since the distribution version was created.
* Completed work to programmatically update all database structure (tables, fields, indices, & relationships) from the March 15th, 2013 version of the database. The programming framework is now in place to allow all future database structural changes to be performed programmatically (rather than just adding fields and tables from within MS Access).
* Changed front end version to 2.034 dated March 15, 2013
February 15, 2013 * Increased the spots in the code where the SetPdfCreatorDefaultPath procedure is called. Here are possible places it might be needed: 1) when going out to Windows Explorer to an encounter folder; 2) when printing any document (where ScanSoft might be selected as printer driver); 3) when exporting any document (writing a DOC, XLS, etc. document to the encounter folder) and then subsequently viewing the document with the appropriate application (which might then be printed using ScanSoft); 4) when simply opening/viewing an existing document (DOC, XLS, etc.) which might be subsequently printed with ScanSoft.
* Added two new buttons to pull up post-op PDF files. One is in the “specify surgical goals” area. It finds the first encounter “later than” the surgery and then looks for the PDF. The other button is in the “specify goals met” area of the encounter, and simply looks in the encounter for the PDF file.
* The PODCI report has a bargraph with “normal”, “cohort”, and “patient” bars. However, for the “child” report, we have no “cohort” comparison data. This bargraph had been using the “parent cohort” data but it was decided that this was inappropriate. The “child bargraph” was changed to have no cohort bars.
* Fixed problem with exporting DOC files when using Word 2007. Apparently, it wasn’t until Word 2010 that the DOCX format was adopted (along with the .SaveAs2 method). The .SaveAs2 method didn’t exist in Word 2007, but the program was trying to use it, now fixed.
* Added new “Optional” field to the surgical goals master list. This allows for certain goals to be turned RED so that extra attention can be given to them.
* Added an option to print the master surgical goals list without putting the “Codes” on the list. This cleans it up.
* Put “Working” form on the building of master surgical goals list so that users wouldn’t try and move the form while the list was being built.
* Changed front end version to 2.033 dated February 15, 2013
January 11, 2013 * Completed phases #3 and #4 of the surgical goals project. Phase three was building data entry and storage procedures for the recording of when surgical goals were met. Phase four was the incorporation of a surgical goals reporting section on the post-op gait analysis report. There is also the ability to generate a stand-alone “surgical goals achieved” report.
* Changed front end version to 2.032 dated January 11, 2013.
December 21,2012 * Added a “management report” yes/no field to the surgical goals list. This is also on the printed report and the listbox on the screen.
* Wrote a more detailed set of specifications for the entire Surgical Goals project.
* Adjusted all the fields in the tables for Surgical Goals to reflect the new specifications. This also involved a full appreciation of the “all goals” versus “management report goals” distinction, and also some accommodation for some notes.
* Added a “maintenance password” to the database. This also prompts when the user tries to add ad-hoc procedures from the procedure screen. The only “hole” right now is for adding new research project. It requires the password to go in through maintenance on the main menu, but not if you’re on the research studies screen.
* We use some data from Michael Schwartz to determine “normal” O2 numbers. However, this data uses the LOG of the age as part of the regression equation, so if age is negative, the program crashes. It was changed to return -99.9 or -99.99 (depending on the field) for the “normal” values if age was negative.
* Completed new “Fix O2 ASCII File” screen for fixing up O2 import files where there are errors. This includes fixing up the VO2 when the wrong weight was entered on the Oxycon machine.
* Fixed problem with lbs versus kg being in the O2 ASCII transfer file. This included verifying that all weight numbers in the database were correct.
* Removed the distinction between “estimated” and “actual” laps in the O2 import. Now, if the laps are wrong, they are required to patch up the ASCII file before proceeding. This is better because both the ASCII file and the database will be correct. Also validated that there were no discrepancies in this in existing data in patient folders.
* Add management (MEC) yes/no indicator on each of the surgical goals. This also involved changes to the structure of the database. Also attempted to finalize all other structural changes to the database involving the surgical goals work.
* Completed all the work for the specification of surgical goals for the individual surgeries. This is the extensively interactive form named frmSurgicalGoals.
* Implemented a drag-n-drop option for the frmProcedures form to make it easier to use. This involved replacing the lst style listbox with a lsv style listview.
* Changed front end version to 2.031 dated December 21,2012.
November 23, 2012 * Changed the way the footers are filled in to correct occasional problems when using MS Office 2010.
* Put an “Enabled = False” statement on the Working form when it’s loaded. Attempting to move it while Office automation is taking place seemed to mess up the automation, and being disabled will prevent this from happening.
* Added a “PercentAchievedEntered” field to the SurgicalGoalsAchieved table. This allows manual entry of the percent of surgical goals achieved while the full tracking system (for surgical goals) is being completed.
* Changed front end version to 2.030 dated November 23, 2012.
October 19, 2012 * Changed the O2 reporting so the “Addendum” reports still have the O2* pictures thrown on the report when it’s exported.
* During O2 SensorMedics import, if it doesn’t find height in either the ROM file or the database, it uses the height in the SensorMedics file. Also, displayed the SensorMedics file on the import form and allowed an option to “push” and recalculate.
* Lightened to color of the violet warnings in the SensorMedics import form.
* In the SensorMedics import procedure, added the ability to correctly handle an import when both the resting and walking steady states were in the same section of the ASCII file. It takes the first SS as the resting SS and then takes the next SS as the walking SS. If there is more than one section, none of this applies.
* On the SensorMedics import, if no resting steadystate is found, no “net” numbers are calculated. It was already doing it this way in the newer Oxycon calculations.
* Changed the main PODCI report from a “line” graph to a “bar” graph. Also added the “Cohort Match” data as a bar to the bargraph.
* Corrected a small problem with PODCI data collection where a runtime error may occur if “too young” is answered on too many of the “happiness” questions. Now, it just records a ZERO happiness score.
* Reworked the PODCI reports so that they use replacement tags [tag] instead of finding the empty table. This allowed for pre-post tables and easier manipulation of these tables on the master reports. This was several steps:
* Fixed the comparison (stand-alone) report to use tags.
* Fixed video only report (from master reports) to use tags.
* Fixed pre-op/eval report (from master reports) to use tags.
* Fixed post-op/lt report (from master reports) to use tags. Also added an option for a pre-op PODCI to be reported on the post-op report. This involved identifying the pre-op encounter and then looking it up for the pre-op PODCI comparison.
* Fixed the [Therapist] tag not being replaced on the O2 addendum report.
* Developed fairly firm specifications, did preliminary MDB structure work, and placed front-end buttons necessary for the tracking of surgical goals.
* Changed front end version to 2.029 dated September 19, 2012.
September 21, 2012 * Continued work on documentation.
* Put the “hide taskbar” logic back into PODCI so that the user would be “forced” to exit PODCI before doing anything else. This way, the screen resolution changing back and forth won’t be a problem.
* Added a comorbidities field to the patient table. This is now on the patient’s add/edit form. There is also a maintenance area under lists for maintaining the possible comorbidity list.
* Added an atypical field to the patient table. This is now on the patient’s add/edit form.
* Placed the patient level “atypical” field “and “good teaching” field and “patient teaching notes” field to the frmEncountersAndSurgeries form. Also added the encounter notes field to the frmEncountersAndSurgeries form. These are dynamically updated when they change.
* Found a spot in both the database front-end and the MotionGraphsWithTrunk.xlt template where the kinetic legend boxes were not being correctly blanked out. These were both corrected.
* The MotionGraphsWithTrunk.xlt (portrait template) had a bug where the printing with excluding certain plots did not correctly bring the data back. There was a “Kinetic” and “Kinematic” swapped such that it added 200 twice to the data (to hide it) rather than adding and then subtracting. Because this was in a template, all existing plot files using this portrait format will not be corrected.
* There was a problem on the O2 reports when generated with Office 2010. Specifically, the vertical legend on the embedded Excel files was not printing correctly. As a fix, these legends were deleted from the O2Shell.xlt file, and a picture of the legend was placed on all four of the O2 (dot) report templates. Appropriate coding changes were also made.
* On the O2 post-op reports, added a % change column. This is
(post – pre) / post * 100%.
* Fixed problem with master report option incorrectly identifying the PODCI comparison table.
* Worked on distributing approximately 800 SensorMedics files to patient/encounter folders. This involved identifying the patient, making sure patient was in database, and making sure encounter was in database.
* Added ability to specify velocity in the SensorMedics import process.
* Added the ability to identify steady state via criteria when SS wasn’t specified in the SensorMedics file.
* Completely changed the way that the “resting” and “walking” sections were identified in the SensorMedics files. Now, the first section with three or more data lines is assumed to be the “resting” section, and the last section with three or more lines of data is assumed to be the “walking” section.
* Changed front end version to 2.028 dated September 21, 2012.
August 10, 2012 * Developed complete SensorMedics O2 import utility:
* Locate, clean, and push SensorMedics TXT files to patient folders.
* Identify Report DOC files for velocity information.
* Identify ROM Excel files for leg length and weight information.
* Re-evaluate the way steady state is determined.
* Use new method of steady state determination in the new O2 system.
* Rework the O2 reports.
* Changed front end version to 2.027 dated August 10, 2012.
July 13, 2012 * The SCALE measures were fully incorporated into the database and the patient reports, both pre-op and post-op (comparison) reports. This involved adding the new fields to the PhysicalExams table of the database.
* Validated that the “clone” comparison recordsets were being correctly closed when coding was finished with them. In some cases, the “clone” physical exam and foot pressure datasets were being left open. This has now been corrected.
* Fixed problem with creating an O2 report with Office 2010 on the computer. The problem was that the linked “Item” could not be changed in code (although the XLS file name could). In Office 2010, the file name (but not path) was embedded in the “Item” of the link. Therefore, we had to standardize the XLS O2 file name, although there is still a separate file for each patient/encounter.
* Fixed several problems with the O2 reports working with Office 2010. Specifically, there was a problem with Excel being expelled from memory somewhat slowly. Also, some changes were made to how the link was established, which involved using a common XLS file name.
* Changed the small button for exporting the O2 ASCII files so that it correctly handles exporting from Excel even when there is more than 24 minutes of data collected. The problem was that Excel was treating minutes as hours on the original import, and wrapping back to zero after 24 minutes.
* Changed the small button for exporting the O2 ASCII files so that it checks to make sure there is a “Data” worksheet in the Excel file from which the export is being made.
* Changed front end version to 2.026 dated July 13, 2012.
June 8, 2012 * Enabled TekScan version 6.62 to work with workstations capable of running this version.
* Further checked the “fill in new patient info” bug in TekScan and determined that the downstairs hardwire may correct the problem.
* Work on the incorporation of O2 services into database is listed below:
* Completed initial pre-op report.
* Activated the “Copy O2 ASCII file to encounter folder” button, with validation of file, folder, and overwrites.
* Completed the post-op comparison report with all it’s scaling issues, and formatting issues.
* Added the new “Condition Tested” field to the report.
* Created an INI file option that allows the “Front End” to run locally and still access the database that’s on the network.
* Changed front end version to 2.025 dated June 8, 2012.
May 4, 2012 * Corrected problem with the Tekscan “Legend” occasionally getting off the screen on some of the workstations in the lab. This was caused by sharing of the clinres.ini file by different workstations.
* Forced CapsLock key to be OFF in both Tekscan controller screens. This seems to solve several problems these controller programs were having.
* Put “Clear” buttons for the Yes/No options of “Foot Supple”.
* Work on the incorporation of O2 services into database is listed below:
* Recalculated all “normals” numbers, and developed confidence that it was being done correctly.
* Completed initial pre-op report.
* Changed front end version to 2.024 dated May 4, 2012.
April 2, 2012 * Added a footnote to all 10 reports explaining the CPPI.
* Removed the Coronal Index from reports. Renamed the Modified Coronal Index to the CPPI. This involved a small change to the code and changes to about a dozen of the .dot templates.
* Fixed problem with not asking for “Save” when exiting from Add/Edit patients and just the patient note is changed.
* Work on the incorporation of O2 services into database is listed below:
* Firmed up appropriate fields for new O2Services table.
* Built the area for maintaining the mask types and deadspace.
* Hooked up the new frmAddEditO2Services form with the table.
* Continued the development of Schwartz’s normal values and development of regression equations for normals.
* Firmed up design of the frmAddEditO2Services form.
* Made forms “stay on top” with a special feature for minimizing to a small strip not in the taskbar.
* Developed specifications for repairing ASCII files that are out of order because of failure to hit F1 while collecting data.
* Developed specifications for calculating steady states.
* Developed specifications for calculating steady state values and all other O2 values flowing from these two values.
* Changed front end version to 2.023 dated April 6, 2012.
March 9, 2012 * Changed the “Working Encounters” report to include the “Study” field on the report for each encounter.
* Put two decimal places (to the right) on the Weight KG measure on the frmAddEditPhysicalExam form so that it would round back to integer pounds. It’s stored in KG and read directly off the textbox, which caused some strange rounding.
* Fixed the problem with the <3 or >97th %tile label for height and weight coming on if the exam level was toggled.
* Added a “Used Armspan” checkbox to the standing measures. Added the “UsedArmspan” field to the PhysicalExams table.
* When adding a new encounter, fixed the “DueDate” so that it defaults to today’s date rather than 1/1/1900.
* Corrected problem with “Batch” adding patients to studies. The problem was when an old (CARE) MRN was being used, the xref didn’t work, but the old CARE number was in the patient’s record, and the study was already in the patient’s file. It’s now fixed.
* Smartened up the search procedures on the patients form for patient searching. It now has a “Help” button and the ability to search for partial first and last names.
* Work on the incorporation of O2 services into database is listed below:
* Add new buttons on the frmServices form.
* Add option to the database “features” list so the frmServices buttons can be turned off. This also required a new field in the database to store this option.
* Created new O2Services table with a good first pass of all the appropriate fields that will be needed.
* Received “normals” data from Mike Schwartz and worked up the way the “normals” comparisons will be derived for the reporting of O2 studies.
* Sketched in the main screen for O2 processing, and completed the small always-on-top screen for assisting with data entry into Oxycon system.
* Changed front end version to 2.022 dated March 9, 2012.
February 10, 2012 * Fixed problem with front end attempting to open an embedded Excel file in a Word template. Under certain conditions it would open two copies of Excel. Use of .Activate and Set ??=??.OLEFormat.object, rather than .OLEFormat.Edit, the problem was fixed.
* Cleaned up the FORMS folder and moved out all unused files. There is still a foot pressure report that builds itself from pieces that would be better done with one overall template, but it’s fixing something that’s not broken.
* Got diamonds (gait params) pasted onto the pre-op and post-op report as part of the master report export.
* Added the SCALE table to the pre-op and post-op gait reports.
* Included the secondary diagnosis and pattern of involvement to the export of master reports.
* Added pre-op table of foot pressure findings to post-op gait report.
* Changed master report export so that only the “earlier” surgeries were listed as the surgery. Also did the same thing for the physical exam prompt for pre-op comparisons, and the same thing for the foot study pre-op comparison.
* Position Tekscan clinres.exe in top-left when it opens.
* Placed the PODCI “Relationship” field in a few new places. On the PODCI above/below table, the “Relationship” is always reported. Also, on the official PODCI report, there is now a “Relationship” column on the parent reports.
* At all places where a file is exported or a report is exported, the message now asks if you would like to open the file (or report) rather than just opening the encounter folder.
* Altered the second button on the front-end main menu to use the ShellExecute API rather than just shelling out to a “found” version of MS-Access and then opening the MDB database file.
* On the “Batch Entry” of patient numbers to research projects, made it examine the old C.A.R.E. numbers as well as the new SHCIS numbers. It already attempted to cross-reference the numbers, but it now searches both fields in the Patient’s table.
* Changed the physical exam form’s “Footwear Notes” field so that it’s now available for both the full and foot-only exams.
* Added a NA (not applicable) option to the GMFCS values. It’s actually coded as a ZERO (0) in the numeric database field but interpreted as NA. This was carried through to the ROM file exports. There was also a small podci comparison report consideration.
* Put a calculated BMI on the physical exam form.
* Added several new fields to the PhysicalExams table: BrannockDevice, LeftFootLengthCM, LeftArchLengthCM, LeftFootWidthCode, LeftFootWidthCM, RightFootLengthCM, RightArchLengthCM, RightFootWidthCode, RightFootWidthCM. Also added fields on the physical exam form that prompt for these fields.
* Changed front end version to 2.021 dated February 10, 2012.
January 6, 2012 * Added feature to new report export where it selects the recommended report based on the Referral/Service of the encounter.
* Changed the post-op foot pressure report processing so that it always prompts for the pre-op encounter, even when the exported ROM file is being used AsIs. This way, the pre-op date can be correctly specified on the exported report.
* Fixed problem with footer not getting filled in on all pages. It was some kind of bug in the Word VBA which required temporarily making Word visible.
* Changed the master report export options so that when comparisons are selected, if only one is available it is automatically selected.
* On report export, wrote a separate procedure for building the surgery/procedures text for printing on the report. The bilaterals are now combined.
* Fixed an “Invalid use of Null” error when clicking the spinner arrows on the due date when none had been previously specified.
* Changed the due date so that, if none had been previously specified, the default is the encounter date. This was done on the Encounters form and the AddEditEncounters form.
* In the “Delete Kinetics” option of processing motion plots, the word
“kinematics” was accidentally used in the “Working” box. This was corrected.
* There was some kind of bug in Excel 2010 which caused a type mismatch error when importing comparisons for the diamond plots. A work-around was implemented in the Excel templates in the forms folder. Also, a document was created on how to correct this bug in older Excel plot files that already exist.
* Corrected a problem in the MotionPlots.xlt file with the GCD file names not appearing on the GaitParams tab. However, this is not fixed on the already created Excel plot files. To fix it manually, search for “InStrRev(s” and change it to “InStr(s”.
* Made several changes to the physical exam form:
* Clear buttons on the GMFCS levels (both old and new).
* Hid the ASIS buttons.
* Rearranged the hip int-rot, ext-rot, & anteversion fields.
* Rearranged the ankle plantarflx, inversion, & eversion fields.
* Added ResearchStudyList and ResearchStudies tables to database for tracking which clinical research studies various patients participated in. There is also a maintenance screen and a patient Add/Delete screen for these research studies. There is also a batch add option under maintenance.
* Completed the Master Export of Preop Foot Report for Gait Patients.
* Completed the Master Export of Postop Foot Report for Gait Patients.
* Completed the first Master Export Gait report: Video Only.
* Added a “Notes” field to the ResearchStudiesList.
* Changed front end version to 2.020 dated January 6, 2012.
December 13, 2011 * Changed footer on PODCI report to the new footer.
* Completed the reworking of the following reports:
* Baseline Plantar Pressure Report
* Follow-up Plantar Pressure Report
* Pre-op Plantar Pressure Report
* Post-op Plantar Pressure Report
* Added FIN# to the encounters and reported it in the info box.
* Added FinNumber field to Encounters table of the database.
* Looked at shortcuts in Tekscan and determined that they were broken in the latest version of the software. It’s a Tekscan issue. A workaround is to use the Alt key to pull up the menus.
* Looked at Adobe Acrobat Standard and the problems with saving when the “x” key is used to close. It sometimes tries to save under a different name, which is problematic. The workaround is to explicitly “save” before closing.
* Fixed a problem with the PODCI graph report. Actually, it was moved from the MDB file to the actual front end. All signs of the PODCI report were deleted from the MDB file, and a new button was added to the frmServices form. Also, there is a Podci Report.dot template in the forms folder. Changed the database to Version 2.019 - December 16, 2011 when the PODCI report was cleaned out of it.
* Did more work on the TekScan controller 6.51 to try and make sure that it correctly finds the “Save ASCII” screen.
* Modified the patient info box to include the new FIN#. Also put in some changes to make sure the text for this box fits in the box.
* Changed front end version to 2.019 dated December 16, 2011.
November 18, 2011 * Fixed problem with ROM import. The bug was a hangover from changing the way the GMFCS worked.
* Made adjustments so that software would correctly set the default path for PDF Create 7 on Windows 7 machines.
* Changed the order of the legend around on the motion plots. Also, removed the gait model from the diamond plots. Also, redesigned the CreateMotionServices form so that the gait model was in a separate field.
* Fixed problem with left hand black box line around legends of landscape motion plots getting cut off. This had something to do with either Office 2010 or the new PDF Create version 7. The left hand line of the box (both kinematic and kinetic plots) is now just moved over slightly.
* Changed the drawing of the shaded areas in the plotting templates to use the msoSegmentLine argument rather than the msoSegmentCurve argument to draw lines between the vertices. This greatly speeded the drawing of these shaded areas when using Excel 2010. It was a particular problem when rescaling of axes was performed (requiring them all to be redrawn).
* Wrote a utility go spin through all the XLS files and turn off the Validation flag so that Excel 2010 won’t prompt user about the issue.
* Made changes to the PODCI graphs in the actual MDB database. Eliminated the need to have the PODCICharts.xls file, and also tweaked on the chart lines (embedded in an Access form) so that they look good under Access 2003 or Access 2010.
* Changed front end version to 2.018 dated November 18, 2011.
October 21, 2011 * Changed the Plantar Pressure Worksheet to use a template rather than have the report hard-coded. This allows Nancy the ability to make changes as she likes.
* After exporting a complete (master) report, changed the prompt from “Open Folder” to “Open Report” with this new option opening the report with MS Word.
* The “Delete Surgery” function has been broken ever since the surgeries and encounters were merged. This was fixed.
* Made changes so that the database would work with Office 2010. This involved changing all the “.Save” and “.SaveAs” commands to execute correctly based on the version of Office. It also involved setting the CheckCompatibility flag when saving Excel file. It also involved figuring out which version of MS Access to execute when clicking the Database button from the Main Menu. In addition, a document was created to assist with setting up new computers.
* Made more changes to both TekScan controller forms. There was a problem identifying patients when the middle name field of Tekscan was used. Now, all spaces and “funny” characters are removed when names are searched, and this seems to fix all possibilities.
* Renamed the Gmfcs field to GmfcsOld. Added a new GmfcsNew field which is used to record the new post-2007 method of determining GMFCS levels. Added both fields to the physical exam forms. Also changed the reporting to use the new field. Also, added video “play” buttons to the GMFCS area of the physical exam form. Also added this button to the video area of the physical exam form and also gave the “all videos” screen from services the ability to play videos. Also, copied all the GmfcsOld “1” data into the new GmfcsNew as “1” data. The decision was made that everything else needs to be reviewed.
* Changed front end version to 2.017 dated October 21, 2011.
September 23, 2011 * Added the coronal index and modified coronal index to the foot pressure summary report and the foot pressure sides report. This involved calculating normative values for these indices (mean and SD, per age), and incorporating these normative values into the software.
* Made several changes to the 6.51 version of the Tekscan controller form. Attempted to make the routine that fills in the file names MUCH more bulletproof. Also, put a loop in the “file copy” routine to try 5 times before failing on file copies. Also, put a “Yes to All” option into the “overwrite” question when copying files.
* Completed detailed instructions for preparing a distribution copy of the database, and another detailed set of instructions for installing the database on a network in another institution.
* Changed front end version to 2.016 dated September 23, 2011.
August 19, 2011 * Fixed yet another problem with RecordCount. It was causing an error 9 in the frmPatients form because it was reporting a couple of records short. Now, RecordCount is used only one place anywhere in the code, and it is not even used as a true record count.
* Completely reworked the “normals” GCD data (but still based on the original normals). There are now only 30 normals, which are the original set which was being used before the gait lab database was implemented.
* Made a change to the way the “mean and SD” normals file is read into the plotting templates. This was done so that both the new Baker and Rab upper extremity labels could be handled, AND the normals “mean and SD” file could be correctly read.
* Several changes to the physical exams:
1. Changed the wheelchair field from Y/N to text so that unanswered exams could be tracked. Also changed the control on the form to option buttons rather than a checkbox.
2. Added a wheelchair “notes” field.
3. Fixed the problem with the patient info box disappearing.
4. Implemented a change so that unanswered fields were highlighted in “pink,” and then turned either black or white when responses were entered.
5. Made the degree bar control have a different color background.
6. Swapped left & right on the internal & external hip rotation.
7. A yes/no supple field was added to the physical exam form.
* Removed the Microsoft Office “check” when running the movie player. There were some previous changes to the way this worked that solved the problem that was occurring with Office programs open, so the check is no longer needed.
* Changed the four ROM Excel templates (pre-foot, post-foot, pre-lower, post-lower) so that height and weight were ALWAYS placed in separate cells, and a vertibar ( | ) was used as the separator in the labels.
* Examined the MotionGraphsWithTrunk.xlt file because it was occasionally messing up on plotting the “normals” SD lines. Now, the worksheets are explicitly addressed in the “rescale vertical axis” routines, rather than implicitly defaulting to the current worksheet.
* Changed the KineticsExistForPigCycle procedure so that the first and last frame of the C3D cycle carry no extra weight.
* Straightened up how the “Esc” key works on “Close” and “Cancel” buttons on many of the forms.
* Added notes per encounter, and places box on frmServices form.
* Made a few changes to the Tekscan controller form. Specifically, checks were put in to make sure the menu options for getting to the “Save As” and “Save ASCII” dialogs were what they should be.
* The new SCALE assessment form was added to the list of “canned” forms that the database can print out.
* Made change to the FolderCopy and PdfAndMpegCopy procedures used to transfer files from the MAL server to the SHC server. Basically, added an option so that “rollbacks” could be ignored.
* Changed the way that the Gait Model was stored (and renamed it to Motion Model, except in the database). There is now a grouping/sorting field, a code field, and a description field. Also, the comboboxes show a tooltip with the description in them.
* Fixed problem where “Esc” key didn’t save the new “Encounter” notes.
* Added an option to turn OFF many of the features of the database. This was done explicitly so that a PODCI version could be distributed.
* Changed front end version to 2.015 dated August 19, 2011.
July 22, 2011 * Rolled out change where surgeries and encounters are all selected on the same screen from the same listbox.
* Completely reworked the RTF patient info box and replaced it with a standard locked TextBox in all forms on which it appears. Also, completely reworked the procedure that fills in the data for this box, accommodating patient level, encounter level, and surgery level data in the appropriate places.
* Added four new fields to the “Surgeries” table: DateIsEstimated (y/n), ProceduresAreEstimated (y/n), SurgeryAtOutsideFacility (y/n), NameOfOutsideFacility (text). Added these fields to the AddEdit surgery form. Also changed the “Procedures” form to show the data from these fields.
* Removed the work that would create a “Questionnaire Only” version of the database. It was determined that there was enough oversight in the MAL of administering PODCI that this was not necessary.
* Reviewed the 3260 error fix where the read caching and lazy writes were turned off. It appears that all is going well.
*Added a “Add Objects Specification” page to the database. This allows users to understand how to best add queries and temp tables to the database for research purposes.
* Created a few queries and reports that can be used as examples for making queries and reports for research purposes.
* Built some sample queries and reports for finding patients with surgeries and/or various procedures. Put buttons on database menu.
* Built a maintenance button to check the integrity of the database against the patient folders. Done patients-to-folders, folders-to-patients, encounter-to-folders, and folders-to-encounters. Also check for orphaned files in the patient level of folders, and also check the database for duplicate patients (based on FirstName, LastName, DOB).
* Did work to identify plot XLS files and then patch-up the DiamondGraphs tab so that the GDI and KSDI would be reported on them. Spun through all XLS files and made change.
* When either an encounter or a patient is deleted, there is now an option to delete the corresponding server folder(s). All files and sub-folders are also deleted when this is done.
* In correspondence with the above change, made changes to AddEditPatients and AddEditEncounters so that any changes to the MRN or encounter dates will also cause the corresponding folders on the server to be renamed.
* Changed all the queries in the database to have RecordsetType set to Snapshot to prohibit any inadvertent deleting of records.
* Added a form to the MDB file to allow the creation of queries with a button. These queries are always created as “SnapShot” queries. This should further help with database security. Also, forced the delete double-check prompt on all deletions in the database.
* Added the gait model to the legend of all the plot files.
* Changed front end version to 2.014 dated July 22, 2011. The database MDB file version was changed to 2.014 dated July 22, 2011.
June 24, 2011 * Fixed problem with motion plotting not correctly identifying GCD files with trunk data in them.
* On frmAddEditEncounters and frmEncounters changed the date picker so that it never defaults to the 1/1/1900 date. This caused a great deal of unnecessary date scrolling.
* On trunk plots Excel template, changed iLat & cLat to Up & Down.
* On the 5.24 Tekscan controller form, changed the caption of the “Save Movie” button to match that on the 6.51 controller form.
* Completed much of the prohibition of lazy writes and read caching on the database. The lazy writes are not stopped. The read cache is cleared on all table opens, but it could still be cleared on certain database read loops. Also, it would help to clean up the database search loops and use indices instead. These things will take some time.
* Made copy of source on 6-22. Everything above is AFTER this copy.
* Fixed a small problem with the foot image rotation routine where the repeat function wasn’t appropriately releasing when the button was released.
* Changed and fixed several other procedures in how the Tekscan 6.51 works with the database front-end controller form.
* Fixed strange bug where the Tekscan (Fargo) computer quit filling out the new patient information in the Tekscan software.
* Changed front end version to 2.013 dated June 24, 2011.
May 13, 2011 * Whew, big update so that front-end will accommodate Tekscan 5.24 or 6.51 versions of their clinres software. This took the entire week to sort out with controlling either version.
* Version was not incremented.
* As a note March and April were occupied with making a nice showing at the April GCMAS meeting.
February 11, 2011 * Found the problem with the representative cycles (and the corresponding GDI and KSDI indices) not always getting correctly set. It was a problem with lower/upper case on matching the GCD file names.
* Changed the trunk plots in the MotionGraphsWithTrunk.xlt file to point at the Trunk…Abs data rather than the non-Abs data. This was at Steve’s request based on the data in the C3D files.
* Completely deleted the “Kill Kinetics” button in the MotionGraphs.xlt file. For some reason, the visibility property kept getting turned back on.
* Changed the “create motion plots” routine to allow either landscape or portrait plotting regardless of whether trunk data was found.
* Changed front end version to 2.012 dated February 11, 2011.
January 7, 2011 * Reworked the database (not front end) menus to accommodate some new video queries.
* Fixed problem with PelvicRotation finding the RAB version instead of the old version.
* Completed the button on the frmServices form that gathers up and shows all the video files for the patient.
* Completed the new video tracking screen. Also, remarked out the code that attempted to automatically add records to the VideoTracking table. Records are now added to this table through the new Video screen.
* Also made a change to how kinetic power is placed into the GCD files when parsing C3D files. Formerly, there was a Pythagorean approach using all three planes. However, it turns out that power is being reported by Vicon in the Z plane, so the Pythagorean approach was abandoned and the numbers in the Z plane were used directly. This was done to the front-end and the new Portrait plots, but the change was NOT implemented in the old Landscape plots (however, when the front-end is used, the new approach WILL be used on the Landscape plots).
* Suppressed any printing runtime errors in both of the Excel plot template files. This was done because the PDF creator was occasionally failing and then reporting an error back to Excel. Now, even if you use the custom “Print” buttons, you will not get a “print” error. This is more like the behavior of the Excel print function itself (which swallows errors).
* Completed the reformatting of the motion study plot data Excel template to a portrait mode. The old template is still available and then new one is named MotionGraphsWithTrunk.xlt. This file’s internal updated date was set to January 7, 2011.
* Completed the integration of the new MotionGraphsWithTrunk.xlt template into the database front end. If no trunk data is present, there is now an option to use either the new Portrait or the old Landscape template.
* Changed front end version to 2.011 dated January 7, 2011.
Also changed the database version to 2.011 dated January 7, 2011.
December 17, 2010 * Implemented range check for height and weight entries. Dropped in the CDC percentile calculations and defined acceptable ranges as 3rd to 97th percentiles. Anything outside of these ranges is flagged on the data entry screen, the Nexus info screen, and the Nexus info report.
* When creating motion plots, if the GCD file selected for plotting is from a prior encounter (and not the current one), the encounter date is added to the legend for that plot slot.
* Completed a patient “tag” system whereby patients can be tagged with different colored dots, which each have a different label descriptor. New maintenance area, new area on patient demographics, and new colored dots on patient list screen.
* Fixed a problem with the PDF Creator starting out in the correct path. This is now set in many more places, but it’s still a bit of a mystery. Occasionally, an uninstall/reinstall of the PDF Creator seems necessary.
* Added a feature to maintenance whereby the PODCI summary database table could be reconstructed from the PODCI detail table.
* Added an option on the actual Access database menu to allow the two PODCI tables to be directly opened.
* Added a “secret” option to the PODCI title screen whereby you can double-click the green giraffe and the screen delays will be turned off for that session.
* Also pulled the latest copy of the clinic PODCI database and then added any/all PODCI records from it into the gait lab database that weren’t already there. This will cause a lot of PODCI records to be in the gait lab database which aren’t gait lab patients, but it won’t hurt anything.
* Added code in the “select printer” routine to try and make sure that the “default folder” for PDF creator was set at the encounter folder, if possible. If not possible, it’s set at the patient folder, if possible. If even this isn’t possible, it is set to the O:\Patients folder.
* Added a “swap” button to the physical exam import screen for the abduction in flexion field. This was done to make correcting an earlier but that propagated into some data easier.
* Moved the “teaching patient” checkbox on the frmServices in an attempt to try and get it out of the way. It was being accidentally clicked.
* Allowed the physical exam ROM import to proceed even if “Cancel” was clicked when trying to prompt for the DOC file with Tone data.
* Changed front end VERSION to 2.009 dated December 17, 2010.
October 22, 2010 * Fixed a problem with the viewer timeout and the global keyboard/mouse hooks.
* Researched a runtime error 2711, but determined that it had to be a bad installation of Microsoft Office. Two knowledge base articles were printed and given to Steve. Also, there was a discussion with Steve on how to fix this. This was primarily Nancy’s new computer.
* There was an occasional occurrence of runtime error 3260 on different machines. This is a “record locked” error while trying to update a database record. Essentially, three things were done to improve this situation: 1) Record locking was changed from “Pessimistic” to “Optimistic” in all “heavy use” tables. In other words, locking is done at the rs.Update rather than the rs.Edit (or rs.AddNew). A new routine (UpdateRecord) was written that does two more things: 2) Five attempts (with one second delays) were made to “Update” the records, 3) A perpetual loop was put in which asked the user how to proceed (Retry or Cancel) with a report of who had the record locked.
* Work was done to accommodate upper extremity 3D capture data. This work included the following:
· Researched appropriate way to plot this data. Initially, existing plots were converted from landscape to portrait printing, and only the trunk was added to the kinematic plots. The kinetic plots were also converted to portrait.
· Created a document that identified all the C3D joints (and labels) and established appropriate GCD joint/plane labels.
· Created a new MotionGraphs.xlt file to do this new plotting and processing.
· In the new XLT file, did all of the work for upper joints to read C3D files, parse them into GCD files, read normals GCD files, calculate means and SDs for normals, read patient GCD files, plot the desired new upper data (initially, just trunk data).
· The final step is to port the XLT work of C3D parsing and reading patient GCD files into the database front-end. Also, an automatic option is created to determine whether it should be done the old way or the new way. This is determined by the presence of the TrunkFlexExt label in the GCD file.
* Changed front end VERSION to 2.008 dated October 22, 2010.
September 17, 2010 * Incorporated kinematic indices into the database. This includes both the GDI advocated by Schwartz and a KSDI advocated by Sullivan. This work involved the following steps:
· Download the f.xls file put together by Schwartz.
· Rename this f.xls file to IndexWorksheet.xlt and place it in the database “forms” folder.
· Add a “Notes” tab to this worksheet which explains enhancements to it.
· Add routines to the IndexWorksheet.xlt to import a group of “Typically Developing” GCD files to be used in the calculations.
· Add routines to the IndexWorksheet.xlt to load a specific patient’s GCD so that the indices are calculated for that patient.
· Add a “KSDI Calculations” tab which calculates the KSDI anytime a patient’s GCD is loaded into the IndexWorksheet.xlt.
· Incorporated routines into the frmCreateMotionPlots form that use the IndexWorksheet.xlt to calculate both the GDI and KSDI anytime a repeatability plot is produced. These indices are now stored in the MotionParams table of the database, with appropriate fields added to the table.
· Added a field to the MotionParams table to keep track of the set of “Typically Developing” GCDs used to calculate the indices.
· Created an area in the saved MotionGraphs Excel repeatability (plot) file (Utilities tab) to store the indices, and stored them when they are calculated and stored in the database.
· Added the indices to the diamond graphs page of the saved MotionGraphs Excel repeatability file, and expanded the “copy to clipboard” to include this data.
· Added the ability to update/compare the indices when a prior set of diamonds graphs data is brought in for comparison.
· Built a routine that goes through all the records in the MotionParams table in the database and re-calculates the indices. This was done so that historical data had these indices. This routine was also executed, and all anomalies in the database were cleaned up. All records (at this time) now have gait indices.
* Deleted the “Kill Kinetics” button in the MotionGraphs.xlt file. This is now done from within the database front-end.
* When you did a “Kill Kinetics” it put the GCD extension back in the database as upper case. Then when you did “representative” plots, it didn’t correctly match the file. This was fixed.
* In the “process motion plots” areas, there were two places where the repeatability XLS files could be deleted. In each of these, put code in so the database records are also delete if these XLS files are deleted.
* Put a checkbox per Christiana on the foot pressure/video worksheet.
* Changed the “Working” report to include the “Referral” type as a column per Nancy.
* Changed front end VERSION to 2.007 dated September 17, 2010.
August 23, 2010 * Added more controls to the frmLoadDependencies form. There was a problem with the frmServicesList form crashing the system. I think it was the ImageList that was causing the problem, but all the controls on the frmServicesList are now on the frmLoadDependencies form.
* Made sure the Encounter Test Number was on the printed version of the Nexus info report.
* Corrected an esoteric error with the listview control (primarily used to display service lists). Occasionally, the user could click on the control in an area that was NOT an item in the list. This would cause an “out of bounds” error in code when access to the list was attempted with this non-item click.
* Accidentally broke a string trim routine in the C3D reader code while working on the EMG reporting. Fixed it in Tennessee, and then again fixed it here in Houston.
* On the Add/Edit encounter form, added code to figure out a “suggested” test number when adding a new encounter. It simply scans previous encounters and suggests the next letter in the alphabet. The suggestion for the first encounter of a patient is “a”.
* Completed the EMG reporting. This included the following:
- Added EMG path to the paths maintenance area for use with the EMG processing.
- Removed any possibility of handling Odd/Even numbering or Sides Swapped in the EMG data collection, processing, and reporting.
- Corrected problem with the finewire channel number requiring a number and causing an error if it was left blank.
- Added an option on the EMG setup screen to allow the finewire to be included as the same trial on EMG3 setups. (Finewire must be a separate trial on all other EMG setups.)
- Verifying the correctness of all ReportGenerator templates.
- Completed application of EMG channel templates to the C3D files (including separate finewire runs).
- Full tracking in the database of the format of the EMG data that was collected.
- Both Single Cycle and Multi Cycle reports are now automatically generated from the database front-end.
* Added a “Completed” Boolean field to the Encounters table. This is maintained on the frmAddEditEncounters form. Also, pulled the entire “Working” frame onto the frmEncounters form and allowed the user to make changes at that level. Changes made on the frmEncounters form are made immediately when the user makes them.
* Added the ability of the Motion Processing routines to kill kinetics (GCD, Params, & Plots) in just one side (Left or Right) for the old style GCD files which have both sides in them.
* Added a check to the new “Completed” flag. If it’s a “Post-op” study, the surgeries are scanned to make sure there’s a surgery that is at least 24 months prior (or less) from the encounter date. If there is not, a warning message is displayed.
* Changed front end VERSION to 2.006 dated August 27, 2010.
July 16, 2010 * Moved the “Kill Kinematics” button to the frmProcessMotionServices, rather than the XLS plot file. This allows for deleting the params, in addition to the GCD data and the plot data.
* Changed the “Go To Database” button so that both the database and the front-end program can be used simultaneously.
* Moved the Video Tracking information into the database rather than having it in a separate Excel file. Also added “Sorting” buttons to the custom toolbar of the database.
* Added the option to show the services list from the frmEncounters form in addition to the frmServices form.
* Added a field in the PatientData table so that a patient could be flagged as a good teaching patient (with a note as to why).
* Changed name of main EXE to PatientsAndServices.exe. Also changed name of database to PatientsAndServicesDatabase.mdb.
* Changed “Clinical Exam” to “Physical Exam.”
* Put patient name on PODCI title screen.
* Changed front end VERSION to 2.005 dated July 16, 2010.
June 18, 2010 * On the frmCreateMotionPlots form, the XLS file suffix box was not correctly showing the file name in the red label below. This was fixed. This did not affect the actual name of files created, which was working just fine.
* Added a feature where the frmPatients and frmViewerPatients forms return to the last patient as the selected patient. This is stored in each user’s registry, so it is user dependent. This was primarily done to make testing easier, but will probably be enjoyed by therapists as well.
* Attempted to fix error 3021 in the frmCreateMotionPlots/cmdCreateNewXLS procedure. Found a “MotionParams.MoveNext” statement without a check on MotionParams.EOF. This would only occur if it was the last indexed record in the database, but this was possibly the condition.
* In an attempt to fix another occasional bug, created a “HardKill” procedure which works harder when trying to kill specified files. Hopefully, this will clean up some of the errors that Nallely is seeing. Also created a “Rename” procedure for the VB Name statement. This Rename procedure tries for 3 seconds to complete the rename.
* Added the Encounters.DueDate to the Video Tracking.xls file when other data was placed into this file.
* When opening XLS plot file after it was created, VB was not correctly detaching from all the XLS object variables. This caused Excel to think the new plot file was already open. These VB object variables were cleaned up and appropriately detached.
* Fixed a problem with foot rotations and the use of the new GDI+ routines. The problem was that corners of the rotated file were erroneously cropped. The fix did require that any old tweaking of foot images be re-rotated and positioned. However, as long as no tweaking takes place, everything in the database is fine.
* In the MotionPlots.xlt template, added a “Kill All” option to the kill kinetics button.
* Completed the initial PODCI integration with the database. The PodciDetail table is now in the database and PODCI is now executed from within the database.
* Corrected an error with printing FORMs that was caused by the PODCI integration.
* Changed front end VERSION to 2.004. Also changed the internal PODCI version to 1.45 dated 6/17/2010.
April 16, 2010 * Developed a new “Import” screen for the clinical ROM data. Also deleted the “Import” button from the existing data entry clinical ROM screen.
* Placed DOB on the Nexus information screen.
* Made changes to the way entries to the video tracking file are made: Moved the check from encounter creation to when the video service is checked as done for an encounter. Also, when working on an encounter that is more than 30 days old, this tracking is not done. Also, attempted to put code in place that prevents repeat lines in the tracking file in cases where someone is repeatedly toggling the video service on and off.
* Placed the ability to change the gait model on the clinic exam screen.
* In the old Excel ROM import routines, the left side and right side for hip abduction in extension were transposed in the code.
* Completed the integration of referrals/studies/services with actual encounters. This includes a new floating form that (optionally) comes up when the user is in an encounter. This form allows the user to check off services as they are performed. There is also a new CPT report to assist with coding services into the SHCIS system.
* Completed several changes to the AddEditEncounters form. This includes a complete redesign of the form, adding a therapist specification for each encounter (which changes the patient therapist if it is changed for the encounter), a drop down gait model specification (along with new maintenance procedures for the gait models), and a new field to track if patients are inpatient or outpatient.
* Added CPT codes and descriptions to each of the service records.
* Added a long description to the referral/study records. This allows new therapists to better understand the gaitlab procedures.
* Integrated the new referrals/studies/services structure in with the patient encounters.
* Cleaned up the data currently in the database to accommodate the new referrals and studies. (There still needs to be discussions as to how the actual studies are tracked.)
* Changed front end VERSION to 2.003.
March 12, 2010 * Completed Maintenance Structure to the new referrals/studies/services hierarchy. Also, entered the initial templates for the hierarchy.
* Changed the word “studies” (and “study”) into “services” (or “service”) in virtually everything in the database. This involved table name changes, form/control name changes, procedure name changes, and many changes to captions. It was decided to NOT change the name of the GaitLabPatientAndStudyDatabase.mdb (or .exe) because of the rollout consequences to shortcuts throughout the hospital.
* Installed the new GdiPlus image rotation routines into the Foot Pressure rotating and scaling routines. This caused a few problems: 1) The rotation image was not exactly the same, which resulted in slightly different percentages; 2) The offsets were completely different because the old rotation routines expanded the pic for the corners and the new routines do not. However, it was not as simple as that. Even accounting for the expanded pic, it was virtually impossible to perfectly calculate an adjustment to the offsets. Instead, an approximation was made, and a warning was displayed anytime old txt files were called in for tweaking. Also, the version was changed from 1.7 to 2.0 in the txt files with the rotation, scaling, and percentage information.
* Confirmed that Microsoft Office version 2002 or version 2003 (or later) is needed on the target machine before Word and Excel automation can take place. At this time, here is a list of the places automation takes place:
· Excel & Word: “Print Encounter Forms” button on Studies form.
· Excel & Word: “Import” button on the clinical exam form.
· Excel: When motion plots are created.
· Excel: “Export to Excel” of ROM data on Studies form.
· Excel: “Review Params” button on the Review Params form.
· Excel: When an encounter is added or edited.
· Word: “Export Patient Reports” button on Studies form.
· Word: “(foot) Sides Reports” button on Studies form.
· Word: “(foot) Summary Reports” button on Studies form.
A long term solution to upgrading Office and still having automation work correctly may be to make sure that either version 2002 or 2003 is installed on the machine, even if a later version is also installed.
* Created a form with all possible dependencies on it. Now this form is loaded by the Main Menu so that any dependency failures will be immediately detected.
* Made some changes to the Tekscan controller screen so that it would not be in the bitmap on the “Capture Screen” function.
* Changed front end VERSION to 2.002.
February 19, 2010 * Identified a problem where the export of Excel ROM files could be a problem. Specifically, if the file existed, and you were trying to do an “update,” but the file did not match the chosen preop/postop status of the existing file, a runtime error 9 occurred. A trap was put in to disallow this condition, not allowing an “update” under these conditions.
* Added an option to the MotionGraphs.xlt template so that only certain (user chosen) plots could be printed rather than all the plots that were plotted. In addition, the “left only” and “right only” plot files are no longer exported from the front end. It was felt that these new print options would appropriately accommodate this. The MotionGraphs.xlt change date was set to February 15, 2010.
* On the MotionGraphs.xlt template, for pelvic rotation, changed internal/external to protraction/retraction.
* The Nexus Info form had a situation where it could be permanently off the screen. This was corrected so that it is ALWAYS on the screen.
* Added a button to the foot rotate and scale screen that allows up to “scale” a foot to the same scaling as the Left#1 foot. It only works on new scaling (not tweaks). Also, added a small label to report the scaling, rotating, xoff, & yoff.
* When using the TexScan controller, if the movie was maximized, it would not correctly find the movie window. This was fixed.
* Added a feature where the adding of new encounters also adds records to a “Video Tracking.xls” file that is in the “[app.path]\Video Tracking” folder. This allows Steve to track which videos need to be processed.
* Added a “Video only” encounter type. Some patients have nothing but a video study done.
* Made sure that all patients have a folder with their MRN. Also made sure that all encounters have a folder with their encounter date. Also, made a list of all patients with no encounters, and encounters with no files. This will be work for the new archivist.
* Completed work to allow import of ROM files which are “foot only” files. Both pre-op and post-op can be imported.
* Completed lists of patients with no name and patients who have *ROM*.xls files but don’t have a clinical exam record in the database. These lists will be used by the new archivist to bring in the historical information.
* Added a “go to encounter folder” button on the clinical ROM data entry screen.
* Changed front end VERSION to 2.001.
January 22, 2010 * Fixed the “comment” hover-text so that it correctly displays long comments.
* Fixed a problem with the “FloatVal” function not
returning the correct number of decimal places. This created a problem
with storing Time Integrals in the foot pressures. This data was
partially corrected, but this must be watched. Any Time Integral data
that is used in the database that does not have three decimals will need to be
reprocessed. This reprocessing can be done as follows: Go into
(select correct file)/save-and-close. This should be done for both left and right, but only one of the three will do. You don’t need to re-rotate or scale anything. This will cause the averages to be recalculated.
* Fixed a problem with parsing C3D files into GCD files. The program assumed that there would be no more than five processed step events for each side. However, it is possible to have more than five processed step events. This would crash the program. The program was changed to just ignore any processed step events past the fifth event for each side.
* In the MotionGraphs.xlt template file, made the graph slot colors user definable. They are defined on the “Utilities” tab.
* Completed the “Create Motion Plots” form and coding. This includes drag-and-drop features for specifying the GCD files for the motion plots; creating left, right, and both repeatability plots; and creating left versus right representative plots. It also includes the creation of database structure (tables MotionStudies and MotionParams) for storing the motion studies and associated parameters. The code to move these parameters from the Excel plot file to the database was also completed. For a complete review of this work, the frmCreateMotionPlots can be reviewed.
* With Nexus, there is a set of conditions were you can get a C3D with valid cycle events but no kinematic C3D data. This condition was not being trapped by the GCD parser, but it is now. An error message now comes up and warns of the absence of kinematic data (based on “PelvisAngles”).
* Added a feature where the representative plotting re-opens the repeatability plots and marks the GaitParameters columns to indicate the representative cycles.
* Completed the “review params” option which allows easy review of the current encounter’s params as well as all prior encounters’ reviews.
* Fixed problem where MotionGraphs.xlt was not re-plotting the normals shading when a plot was rescaled.
* On the clinical exam screen for weight bearing video assessment of the feet, change the combo boxes to combo “check” boxes.
* Added a maintenance section for “Motion (plot) Conditions.” Also, took this list and used it for a combo-box on the “Create Plots” form. This will allows some consistency in file naming for the plot files.
* Added a normals-same-foot-off line on the MotionGraphs.xlt plots.
* Changed the MotionGraphs.xlt modified date to January 19, 2010.
* Changed front end VERSION to 2.000.
December 11, 2009 * Examined why the foot rotate/scale doesn’t put the rotate/scale back for “tweaking” the old *.txt files. It turns out that we did not store the rotate/scale information in the older *.txt files, so restoring the rotate/scale to “tweak” is not possible for the older *.txt file. They must simply be re-rotated/scaled.
* On the clinical exam form, moved the following four fields from the Supine tab to the Prone tab:
Right Ankle Inversion
Right Ankle Eversion
Left Ankle Inversion
Left Ankle Eversion
* Fixed a problem with the “Import” button on the clinical exam screen. The button was not working with “post-op” ROM excel files. This was corrected, and now seems to be working.
* Developed a list of all “Clinical Exam” Excel files that are in “Patients” folder but NOT in database. This list can be used to “Import” these files into the database from the clinical exam screens.
* The “Gait Model” was added to the encounter screen. Maintenance screens were also developed for the “Default Gait Model.”
* Placed a notice on the patient viewer screens to call the gait lab for support and not MIS.
* Completed the addition of specifying the location of the “Nexus” files in the maintenance area of the front-end.
* Completed the first version of dealing with C3D, GCD, & graph XLS files in the front-end. This includes, moving C3Ds from Nexus to Patients folder area, parsing C3D files into GCD files, creating XLS files from the template, and opening XLS files for importing GCD files and printing. This now makes the motion graphs template (MotionGraphs.xlt) in the “Forms” folder the master copy.
* Cranked down the transparency on the normal +/-1SD shaded area on the motion graphs template from 88% to 75%.
* Changed the motion graphs template (MotionGraphs.xlt) “OpenFileDialog” so that it starts out in the folder of the XLS file.
* Changed the 6th slot legend on the motion graphs template from a yellow to more of a brown (r=153, g=102, b=51). Also went through and changed all of the plot areas and legend border areas to this new brown color.
* On the Pre-op & Post-op ROM templates (XLS), added units to the height and weight label on the reporting page.
* On “Foot Pressure Summary.dot” template, added units to weight.
* A copy “one” C3D file from Nexus option was added to the process motion form.
* Fixed yet another small glitch in the clinical import function. Sometimes the second heading is named “MOTOR” and other times “Control/Strength.” The Import now handles either of these.
* Added a “Kill Kinetics from Plot & GCD” button to the MotionGraphs.xlt template. This will allow GCD files with bad kinetics to be used while ignoring the kinetic data. The data are actually deleted from the GCD as well as removed from the plotting.
* Changed front end VERSION to 1.999.
* Changed the MotionGraphs.xlt modified date to December 11, 2009.
November 13, 2009 * Completed the PODCI display window for showing PODCIs for a particular encounter. This is in preparation for incorporating PODCI into the database and on the clinical export forms.
* Added a function to show who is using the database.
* Completed the addition of the “Surgery Procedures” to the database. This included creating a Procedure List maintenance routine, addition of Surgeries and Procedures tables in the database, creating of a Surgeries add/edit area for patients, and creation of Procedures adding to Surgeries for patients in the database.
* Put a warning in the movie player procedure to save or shutdown Microsoft Word, Excel, and PowerPoint before running the movie player.
* Put internal form name in the caption of most forms. Some of the forms were too narrow to reasonably put the name in the caption. Others, such as help forms, didn’t need this feature.
* Added search feature to procedures screen.
* Added a “grouping” field to the procedure list.
* Added comments to the individual procedures of a patient’s surgery.
* When NOT in viewer mode, moved the “view files” option onto the encounter screen, instead of the main menu.
* Made a change to Tekscan controller form so that the .FRX extension not being in the title bar of Tekscan didn’t cause problems. Interestingly, this is dependent on the Windows setting of “display extensions.”
* Changed front end VERSION to 1.906.
October 16, 2009 * Created a .manifest file for the database program. This .manifest file has information in it to allow the database program (GaitLabPatientAndStudyDatabase.exe) to locate several .ocx (dll) files, even if they are not registered on the target machine running the program. The .ocx files currently outlined in the .manifest file are tabctl32.ocx (currently used on clinical data screen), comdlg32.ocx (used to prompt for files to read and write), Richtx32.ocx (a text box for displaying formatted text), mscomctl.ocx & mscomct2.ocx (these have various controls such as the date prompter, slider bars, etc.) These .ocx (dll) files must be in a .\Dependencies folder that is immediately below the folder containing the database program.
* The clinical exam form can now be drug around from pretty much any blank area of the form (in addition to the title bar).
* Incorporated the SMPlayer into the Patient Viewer movie section.
* Added a “Patients via Viewer” button to the main menu. This will allow easier viewing of movies via the front end (without needing to switch to the viewer mode.)
* Added “secondary” path assignments for patient files, Tekscan files, & PODCI files. This will allow an easier transition from the MAL network to the Shriners network.
* Changed the Front-End so that the “Viewer Only” option is turned on by default. This will simplify the roll-out to clinic. Also placed a new button on the non-viewer main menu to allow access to viewer screens.
* Completed the implementation of a password for the front-end when it is in viewer mode.
* Completed a timeout feature for the front-end when it is in viewer mode. This timeout feature shuts down the program, and any open SMPlayer and/or Adobe Reader. This timeout feature resets on any global keyboard or mouse movement.
* Added a “patients with movies only” option to the viewer list of patients.
* Added a “Appointment Pending” flag to the encounters. This helps to know that patients “truly” don’t have a “Due Date” for the encounter’s work.
* Sorted out remaining dependencies for the front end. For all features,
the following are the main dependencies:
- Word & Excel version 2003 SP2 (or greater).
- Microsoft Access runtime 2003 (or greater).
- Adobe Reader (any late version will do).
All other dependencies are dealt with through the .manifest file or they have no need for dependencies, such as the SMPlayer.
* Changed front end VERSION to 1.905.
September 18, 2009 * Modified the qryEncountersForPeriod query so that the name was concatenated, the pattern of involvement was included in the diagnosis, and the MRN was included.
* Completed the Multi Study report export for the foot pressure follow-up situation.
* Went through all network patient folders and made sure that all network patients were in the database. There were a group of patients where I did not have the patient names. They were named zz???.
* Went through all network encounter folders and made sure that all encounters were in the database. Only the encounter date was included for ones that were added.
* Added a routine to copy old encounter files from floppies onto network.
* Fixed a problem with hang-up on Tekscan controller trying to save wrong movie.
* Completed the clinical exam Excel export function for exporting a comparison (pre-op) along with the exam being exported. (Now, this must be incorporated into the Multi Study report.)
* Completed integration of the Excel export function for foot pressure reports into the Multi Study reports. This would include the pre-op and post-op (and LT) foot pressure reports.
* Changed front end VERSION to 1.904.
August 21, 2009 * Removed the “Backup Tekscan” button. This is now being handled at the file server level, and not needed here.
* Fixed problem with exporting foot pressure “sides” report. Any old report is now deleted, if it exists. This makes Word work better.
* Added encounter “Working” and “DueDate” fields. These will be used to keep track of the “Working” patients. A report was also developed that prints all the working encounters.
* Removed the RTF textbox from the VIEWER forms and replaced it with a standard textbox. Hopefully, this will allow the front end to run on clinic computers without any worries of dependencies.
* Started the “Surgeries” table. Initially, it only has the surgery date. This will allow development of a screen for surgery date, and the “Return To MAL Date” can be updated on this screen.
* Developed a report (actually a query) for printing encounters for a date range.
* Completed the initial development of the Multi Study report. This includes the Foot-Pressure Baseline/Follow-up, and the Foot-Pressure pre-op. The Foot-Pressure post-op is still needed along with the CP patients.
* Changed the “Due Date” to allow for blank dates. This is also the default for new encounters.
* Modified the new “Working” report to include fields requested.
* Changed front end VERSION to 1.903.
July 31, 2009 * Changed the foot-pressure screen so that Tekscan rotations could be “tweaked.” When the “Select Prior Rotated File” is chosen, the rotation screen now comes up with the foot rotated to the prior rotation, including all spurious pixels erased.
* Created a Word DOC template for the foot pressure side reports. Also did all of the work to move this report to the “Studies” form in preparation for combining the reports of several studies.
* Moved the foot pressure summary report over to the “Studies” form. This was also in preparation for combining the reports of several studies.
* Added the “Video#” to the foot pressure summary report.
* Worked on procedures that allow automation of linking of Excel documents into Word documents. This is also in preparation for combining reports in a export procedure.
* Changed front end VERSION to 1.902.
June 26, 2009 * Replaced combo-boxes with the new combo-checklist control on 14 of the fields on the Prone Measures of the clinical exam data entry screen.
* Fixed problem with the “Foot Only” clinical exams not correctly doing an “Export Refresh” of the exam information.
* Fixed problem where the foot pressure integrals were not being correctly read from the TXT files. Also fixed all corresponding data in the database that had been previously corrupted from this problem.
* Changed front end VERSION to 1.901.
May 22, 2009 * Fixed problem with Tekscan Controller not recognizing patient movies. This was particularly a problem with the patient had a new number but the movie was named with the old (CARE) number.
* Fixed problem with PODCI report in the MDB file where it was prompting for “Satisfaction” value, even though it wasn’t being used. The prompt as been removed.
* Fixed problem with wrong picture showing (walker instead of wheelchair) on the FMS help screen for FMS #1.
* Removed the knee and hip strength controls from the “FOOT” clinical exam form.
* Developed a procedure to completely reconstruct (rebuild) the Tekscan MDB file from a blank Tekscan MDB file. This rebuild is performed from within the Gaitlab database. This allows Tekscan FSX movie files to be placed in the Tekscan movies area and then rebuilt into the Tekscan database.
* Added “Baseline” and “Follow-up” to the possible encounter types.
* Completed a “Gaitlab Viewer” program for use in clinic and Drs’s offices.
* Changed “hallux valgus” to “other” on the clinical exam screen. It is now a combo-pulldown which can be maintained.
* Deleted the “Normal” option for an encounter type and added a “Normal” field to the Patients table. Also added an “Ignore Normals” option to the patient list screens.
* Placed the test# after the exam type on the Tekscan controller form.
* Spaces are allowed in names in the Gaitlab database, but not in the Tekscan database. Therefore, when searching for patients in the Tekscan controller, spaces are filtered from the patient names. Also changed the Tekscan database rebuild to remove spaces from patient names during the rebuild process.
* Changed front end VERSION to 1.9.
April 10, 2009 * Fixed the Foot “rotate and scale” procedures so that they don’t mistakenly buffer more than one rotation command. This buffering was causing bazaar rotation results. Faster machines didn’t have a problem, but slower ones did.
* Created an ExamLevel field for the encounters. Currently, the two values for the field are “Foot Only” and “Full Lower”. This will allow the foot pressure patients to be handled better.
* Corrected problem with TekScan controller not correctly saving CAL files.
* Changed PODCI & FMS programs so that they attempt to export (push data) directly into the Gait Lab database.
* Moved the primary PODCI & FMS databases to the MAL network (from the Shriners LAN). Also automated the MAL database’s import function to NOT prompt for a path if it could find the PODCI & FMS databases.
* Put “average of walks…” on the tabular foot pressure report.
* Changed “Foot Pressure” to “Plantar Pressure” on report. The word foot still appears on the screens.
* Placed warning in “find patient” of Tekscan controller when there was NOT an exact match for the patient.
* Tekscan controller form now permanently disables the “Save Movie” option on Tekscan. A CTRL-S is still possible, but this is not done by MAL personnel.
* Added forefoot, midfoot, & hindfoot calluses fields to clinical exam. Also, added input areas on clinical exam data collection screen. Also added list maintenance screens for these new fields, with corresponding tables in the database.
* Edited NEXUS worksheet report from clinical exam. Removed marker placements, and noted SoleDelta as “not used”.
* Added left & right fields to ClinicalExams table for ShoulderOffset, ElbowWidth, WristWidth, & HandThickness. Also added prompts for these fields on the clinical exam data collection screen.
* Verified that post-op foot pressure was printed from database forms menu.
* Completed the creation of a foot-pressure-only option for the clinical exam (tablet) screens.
* Changed front end VERSION to 1.8.
March 18, 2009 * Massive changes to the way the Tekscan controller screen works. It now works relatively flawlessly on the Tekscan computer. Completed the ASCII file creation & naming, the screen capture & crop, and the copy files to network procedure.
* Added a “Stance #” recorder to the Tekscan controller screen.
* Added test# prefix to the file names on the foot pressure worksheet.
* Added ability to create patient and/or encounter folder from Tekscan controller.
* Added DX to foot pressure worksheet.
* Added Biracial to ethnicity choices.
* Added backup button to Tekscan screen.
* Changed front end VERSION to 1.7.
February 13, 2009 * The primary task for the week is to incorporate more automation into the collection of foot pressure data. This includes the following:
1) Automate the lookup of patients in Tekscan.
2) Automate the fill-in of patient information in Tekscan using information from database.
3) Print out foot pressure worksheet with patient information filled in.
4) Design a “cut down” clinical exam form that is used just for foot pressure patients.
5) Design an export for the “cut down” clinical exam data.
6) Design an above/below table of the five foot pressure areas, using normative data.
7) Design an export for the above/below table and other worksheet data that is collected.
January 16, 2009 * Validated all patients in the database with old CARE numbers. It turned out that none of these patients should have been renumbered with Cerner numbers. They were all closed patients which did not have Cerner numbers.
January 15, 2009 * It turns out that the RTF text boxes and labels will not work correctly if the computer’s DPI is set to anything other than 96 (normal), and the image rotation and scaling routines actually crash. Put a warning in the front-end start-up if the computer’s DPI is set to anything other than 96 DPI.
* Renumbered old CARE patients on Network to new Cerner numbers.
* Added a prompt and storage of the Network Folder for Patient Files.
* Added the ability to have Patient Network Folders automatically created when new patients are added. Also added after-the-fact button for folder creation. Also added ability to open explorer in Network folder.
* Added the ability to have Encounter Network Folders automatically created when new encounters are added. Also added after-the-fact button for folder creation. Also added ability to open explorer in Network folder.
* Changed front end VERSION to 1.5.
January 12, 2009 * Fixed problem with % on left medial forefoot on foot pressure report.
* Added “Foot Pressure Only” to the encounter type.
November 14, 2008 * Added the foot pressure program to the database, along with storing all percentages in the database.
* Front end VERSION incremented to 1.4
October 15, 2008 * Changed Excel export to include a “Refresh” feature for existing file.
* The version number was not changed.
May 29, 2008 * Switched order of forefoot & hindfoot on video assessment screen.
* Created a Nexus report.
* Added EMG studies screen and table to database.
* Fixed WNL for abd in flex & ext.
* Added ethnicity, birth order, birth weight, & gestational age to pt demographics.
* Front end VERSION incremented to 1.3
March 20, 2008 * Added SAVE button to main clinical screen.
* Added “safety net” message boxes to accidental cancel.
* Reworked the clonus responses.
* Put in ability for user to define forefoot, midfoot, and hindfoot combobox responses.
* Merged the older patient info from when it was used only for form printing.
* Eliminated the day/night orthosis distinction.
* Eliminated all the distinction for ambulation aids.
* Made the keyboard bigger.
* Fixed problem where foot notes get transferred to Excel export.
* Fixed a couple of problems with labels on the clinical input screens.
* Changed keyboard so that it’s present on comboboxes and textoptions.
* Fixed the weight export to Excel from kg to lb.
* Added a feature to the degree slider control so that min and max can be specified.
* Front end VERSION incremented to 1.2.
February 15, 2008 * The first version which actually collected clinical data was rolled out. Prior to this, it was used only for printing of forms in preparation of a patient encounter (and those things mentioned below). This February 15 rollout was listed as VERSION 1.1 on the main menu.
2001 to 2008 * Various pieces of the database had been developed and were in use. However, the actual database front-end and back-end were not formalized. The specific pieces that were developed included two primary components: 1) The development of the PODCI data collection and reporting system. This was also further developed to include several other questionnaires in addition to PODCI (mostly driven by the needs of the UCBED grant out of SHC-Sacramento); and 2) The development of a C3D reading/plotting system for kinematic and kinetic lower-extremity data. This was a rather involved piece which included the complete development and understanding of how to read and extract all data from C3D files, including parsing this data into GCD files.
Both of these pieces were ultimately completely wrapped into the Patients & Services database as discussed above.