Last active
December 30, 2015 00:39
-
-
Save nolanbjohnson/7750895 to your computer and use it in GitHub Desktop.
ICD-10 - diagnoses coding
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var data = { | |
"name": "ICD10", | |
"description": "", | |
"children": [ | |
{ | |
"name":"A00-B99", | |
"description":"Certain infectious and parasitic diseases ", | |
"url":"http://api.aqua.io/codes/beta/icd10/a00-b99" | |
}, | |
{ | |
"name":"C00-D49", | |
"description":"Neoplasms ", | |
"url":"http://api.aqua.io/codes/beta/icd10/c00-d49"}, | |
{ | |
"name":"D50-D89", | |
"description":"Diseases of the blood and blood-forming organs and certain disorders involving the immune mechanism ", | |
"url":"http://api.aqua.io/codes/beta/icd10/d50-d89" | |
}, | |
{ | |
"name":"E00-E89", | |
"description":"Endocrine, nutritional and metabolic diseases ", | |
"url":"http://api.aqua.io/codes/beta/icd10/e00-e89" | |
}, | |
{ | |
"name":"F01-F99", | |
"description":"Mental, Behavioral and Neurodevelopmental disorders ", | |
"url":"http://api.aqua.io/codes/beta/icd10/f01-f99" | |
}, | |
{ | |
"name":"G00-G99", | |
"description":"Diseases of the nervous system ", | |
"url":"http://api.aqua.io/codes/beta/icd10/g00-g99" | |
}, | |
{ | |
"name":"H00-H59", | |
"description":"Diseases of the eye and adnexa ", | |
"url":"http://api.aqua.io/codes/beta/icd10/h00-h59" | |
}, | |
{ | |
"name":"H60-H95", | |
"description":"Diseases of the ear and mastoid process ", | |
"url":"http://api.aqua.io/codes/beta/icd10/h60-h95" | |
}, | |
{ | |
"name":"I00-I99", | |
"description":"Diseases of the circulatory system ", | |
"url":"http://api.aqua.io/codes/beta/icd10/i00-i99" | |
}, | |
{ | |
"name":"J00-J99", | |
"description":"Diseases of the respiratory system ", | |
"url":"http://api.aqua.io/codes/beta/icd10/j00-j99" | |
}, | |
{ | |
"name":"K00-K95", | |
"description":"Diseases of the digestive system ", | |
"url":"http://api.aqua.io/codes/beta/icd10/k00-k95" | |
}, | |
{ | |
"name":"L00-L99", | |
"description":"Diseases of the skin and subcutaneous tissue ", | |
"url":"http://api.aqua.io/codes/beta/icd10/l00-l99" | |
}, | |
{ | |
"name":"M00-M99", | |
"description":"Diseases of the musculoskeletal system and connective tissue ", | |
"url":"http://api.aqua.io/codes/beta/icd10/m00-m99" | |
}, | |
{ | |
"name":"N00-N99", | |
"description":"Diseases of the genitourinary system ", | |
"url":"http://api.aqua.io/codes/beta/icd10/n00-n99" | |
}, | |
{ | |
"name":"O00-O9A", | |
"description":"Pregnancy, childbirth and the puerperium ", | |
"url":"http://api.aqua.io/codes/beta/icd10/o00-o9a" | |
}, | |
{ | |
"name":"P00-P96", | |
"description":"Certain conditions originating in the perinatal period ", | |
"url":"http://api.aqua.io/codes/beta/icd10/p00-p96" | |
}, | |
{ | |
"name":"Q00-Q99", | |
"description":"Congenital malformations, deformations and chromosomal abnormalities ", | |
"url":"http://api.aqua.io/codes/beta/icd10/q00-q99" | |
}, | |
{ | |
"name":"R00-R99", | |
"description":"Symptoms, signs and abnormal clinical and laboratory findings, not elsewhere classified ", | |
"url":"http://api.aqua.io/codes/beta/icd10/r00-r99" | |
}, | |
{ | |
"name":"S00-T88", | |
"description":"Injury, poisoning and certain other consequences of external causes ", | |
"url":"http://api.aqua.io/codes/beta/icd10/s00-t88" | |
}, | |
{ | |
"name":"V00-Y99", | |
"description":"External causes of morbidity ", | |
"url":"http://api.aqua.io/codes/beta/icd10/v00-y99" | |
}, | |
{ | |
"name":"Z00-Z99", | |
"description":"Factors influencing health status and contact with health services ", | |
"url":"http://api.aqua.io/codes/beta/icd10/z00-z99" | |
} | |
] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<meta charset="utf-8"> | |
<style> | |
.node { | |
cursor: pointer; | |
} | |
.node circle { | |
fill: #fff; | |
stroke: steelblue; | |
stroke-width: 1.5px; | |
} | |
.node text { | |
font: 10px sans-serif; | |
} | |
.link { | |
fill: none; | |
stroke: #ccc; | |
stroke-width: 1.5px; | |
} | |
</style> | |
<body> | |
<script src="http://d3js.org/d3.v3.min.js"></script> | |
<script src="icd10.js"></script> | |
<script> | |
var data; | |
var margin = {top: 20, right: 120, bottom: 20, left: 120}, | |
width = 960 - margin.right - margin.left, | |
height = 800 - margin.top - margin.bottom; | |
var i = 0, | |
duration = 750, | |
root; | |
var tree = d3.layout.tree() | |
.size([height, width]); | |
var diagonal = d3.svg.diagonal() | |
.projection(function(d) { return [d.y, d.x]; }); | |
var svg = d3.select("body").append("svg") | |
.attr("width", width + margin.right + margin.left) | |
.attr("height", height + margin.top + margin.bottom) | |
.append("g") | |
.attr("transform", "translate(" + margin.left + "," + margin.top + ")"); | |
root = data; | |
root.x0 = height / 2; | |
root.y0 = 0; | |
function collapse(d) { | |
if (d.children) { | |
d._children = d.children; | |
d._children.forEach(collapse); | |
d.children = null; | |
} | |
} | |
root.children.forEach(collapse); | |
update(root); | |
d3.select(self.frameElement).style("height", "800px"); | |
function update(source) { | |
// Compute the new tree layout. | |
var nodes = tree.nodes(root).reverse(), | |
links = tree.links(nodes); | |
// Normalize for fixed-depth. | |
nodes.forEach(function(d) { d.y = d.depth * 180; }); | |
// Update the nodes… | |
var node = svg.selectAll("g.node") | |
.data(nodes, function(d) { return d.id || (d.id = ++i); }); | |
// Enter any new nodes at the parent's previous position. | |
var nodeEnter = node.enter().append("g") | |
.attr("class", "node") | |
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) | |
.on("click", click); | |
nodeEnter.append("circle") | |
.attr("r", 1e-6) | |
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); | |
nodeEnter.append("text") | |
.attr("x", function(d) { return d.children || d._children ? -10 : 10; }) | |
.attr("dy", ".35em") | |
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) | |
.text(function(d) { return d.name + ": " + d.description; }) | |
.style("fill-opacity", 1e-6); | |
// Transition nodes to their new position. | |
var nodeUpdate = node.transition() | |
.duration(duration) | |
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }); | |
nodeUpdate.select("circle") | |
.attr("r", 4.5) | |
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); | |
nodeUpdate.select("text") | |
.style("fill-opacity", 1); | |
// Transition exiting nodes to the parent's new position. | |
var nodeExit = node.exit().transition() | |
.duration(duration) | |
.attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) | |
.remove(); | |
nodeExit.select("circle") | |
.attr("r", 1e-6); | |
nodeExit.select("text") | |
.style("fill-opacity", 1e-6); | |
// Update the links… | |
var link = svg.selectAll("path.link") | |
.data(links, function(d) { return d.target.id; }); | |
// Enter any new links at the parent's previous position. | |
link.enter().insert("path", "g") | |
.attr("class", "link") | |
.attr("d", function(d) { | |
var o = {x: source.x0, y: source.y0}; | |
return diagonal({source: o, target: o}); | |
}); | |
// Transition links to their new position. | |
link.transition() | |
.duration(duration) | |
.attr("d", diagonal); | |
// Transition exiting nodes to the parent's new position. | |
link.exit().transition() | |
.duration(duration) | |
.attr("d", function(d) { | |
var o = {x: source.x, y: source.y}; | |
return diagonal({source: o, target: o}); | |
}) | |
.remove(); | |
// Stash the old positions for transition. | |
nodes.forEach(function(d) { | |
d.x0 = d.x; | |
d.y0 = d.y; | |
}); | |
} | |
// Toggle children on click. | |
function click(d) { | |
if (d.children) { | |
d._children = d.children; | |
d.children = null; | |
} else { | |
d.children = d._children; | |
d._children = null; | |
} | |
update(d); | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment