home
Blood Chemistry Analysis
This is a JavaScript application, so you need JS turned on. Also see tested environments below.
Show more info about this app.
History / Background / Disclaimer
This is part of a fully working prototype that I wrote in 2005 - 2006. I can produce my client to tell those interested how this did everything the client wanted. Unfortunately, due to other-than-technical reasons beyond our control, this never got beyond the prototype stage.
For legal and practical purposes, assume that this has no medical basis. It's just a software engineering portfolio piece that shows I can do potentially useful stuff. I certainly have no medical training. Also assume that the specific mean, low, and high values given and any other potential medical inferences are arbitrary for demo purposes.
Functionality
The program deals in percent deviations of blood chemical concentrations. Sorting a list of chemicals by percent deviation shows (in theory) unhealthy levels in one direction (too high or too low), then healthy, then unhealthy in the other direction. My original prototype had over 40 blood chemicals--a CBC (complete blood count). For this portfolio piece, I'm including a fraction of those; including all the chemicals is too visually overwhelming for demo purposes.
Below, "TEST NAME" refers to tests / measurements of the various blood chemicals: "B. U. N." is blood urea nitrogen, etc. For "result," I've filled in some sample values (concentrations) that the user (you) may change. Note that changes to percent deviation and such can be seen with almost every keystroke as you change results. "% dev" is percent deviation, which is (result - mean) / (high - low) in percentage form. You may check the "Show/Hide Fields" to see the high, mean, low, and (result - mean) for each chemical.
Click on "% dev" to sort low to high; click again to sort high to low. Click "Test Name" to sort in alphabetical order (which only goes A..Z, not in reverse).
When you sort by % dev, lines drawn with dashes and pipe characters appear to the left of the tests. These lines connect sodium and potassium, uric acid to BUN, and ionized calcium to calcium. The theory was that in a healthy subject, these lines should be within each other rather than crossing. With my sample results, they are within each other.
See the electrolyte panel further below.
The panel below groups certain chemicals. My original page had several more groups. For demo purposes, I've just included the first.
"Total Deviation" is the average of the absolute values of the percent deviations in the panel. "+ / - Deviation" is the straight average.
ELECTROLYTES | |
SODIUM | |
POTASSIUM | |
CHLORIDE | |
CO2 | |
CALCIUM | |
| |
TOTAL DEV. | |
+ / - DEV. | |
Known Bug
If you refresh / reload the page under certain circumstances, several things go wrong. You'd have to close the window and start over to get things working again. For demo purposes, I can live with this bug. (The original version of this was in PHP, such that refreshing the page refreshed everything, so the bug only happens with .html version.)
Development Environment
Most development was done with Firefox 3.0.4 in Gentoo Linux, KDE 3.5, kernel 2.6.2x (I'll leave out the last point out of paranoia. :) ), on an Intel Celeron PC. In other words, this app should work in that environment.
For that matter, it should work in almost any other JavaScript environment, but I list it's "native" environment for the record.