diff --git a/HCC Library Demonstration.ipynb b/HCC Library Demonstration.ipynb index 471f333..1c4588b 100644 --- a/HCC Library Demonstration.ipynb +++ b/HCC Library Demonstration.ipynb @@ -2,10 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "deletable": true, - "editable": true - }, + "metadata": {}, "source": [ "# Algorex HCC Library\n", "This notebook provides a demonstration of the Algorex HCC library. In developing this library we priortized three main features:\n", @@ -17,22 +14,335 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "deletable": true, - "editable": true, - "hide_input": true - }, - "outputs": [], + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + "\n", + " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", + " root._bokeh_onload_callbacks = [];\n", + " root._bokeh_is_loading = undefined;\n", + " }\n", + "\n", + " var JS_MIME_TYPE = 'application/javascript';\n", + " var HTML_MIME_TYPE = 'text/html';\n", + " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", + " var CLASS_NAME = 'output_bokeh rendered_html';\n", + "\n", + " /**\n", + " * Render data to the DOM node\n", + " */\n", + " function render(props, node) {\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(script);\n", + " }\n", + "\n", + " /**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + " function handleClearOutput(event, handle) {\n", + " var cell = handle.cell;\n", + "\n", + " var id = cell.output_area._bokeh_element_id;\n", + " var server_id = cell.output_area._bokeh_server_id;\n", + " // Clean up Bokeh references\n", + " if (id != null && id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + "\n", + " if (server_id !== undefined) {\n", + " // Clean up Bokeh references\n", + " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", + " cell.notebook.kernel.execute(cmd, {\n", + " iopub: {\n", + " output: function(msg) {\n", + " var id = msg.content.text.trim();\n", + " if (id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + " }\n", + " }\n", + " });\n", + " // Destroy server and session\n", + " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", + " cell.notebook.kernel.execute(cmd);\n", + " }\n", + " }\n", + "\n", + " /**\n", + " * Handle when a new output is added\n", + " */\n", + " function handleAddOutput(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + "\n", + " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", + " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + "\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + "\n", + " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", + " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", + " // store reference to embed id on output_area\n", + " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " }\n", + " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + " }\n", + "\n", + " function register_renderer(events, OutputArea) {\n", + "\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[toinsert.length - 1]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " /* Handle when an output is cleared or removed */\n", + " events.on('clear_output.CodeCell', handleClearOutput);\n", + " events.on('delete.Cell', handleClearOutput);\n", + "\n", + " /* Handle when a new output is added */\n", + " events.on('output_added.OutputArea', handleAddOutput);\n", + "\n", + " /**\n", + " * Register the mime type and append_mime function with output_area\n", + " */\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " /* Is output safe? */\n", + " safe: true,\n", + " /* Index of renderer in `output_area.display_order` */\n", + " index: 0\n", + " });\n", + " }\n", + "\n", + " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", + " if (root.Jupyter !== undefined) {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + "\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " }\n", + "\n", + " \n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " var NB_LOAD_WARNING = {'data': {'text/html':\n", + " \"\\n\"+\n", + " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", + " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", + " \"
\\n\"+\n", + " \"\\n\"+\n",
+ " \"from bokeh.resources import INLINE\\n\"+\n",
+ " \"output_notebook(resources=INLINE)\\n\"+\n",
+ " \"\\n\"+\n",
+ " \"\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"| \n", + " | START | \n", + "STOP | \n", + "PATIENT | \n", + "ENCOUNTER | \n", + "CODE | \n", + "DESCRIPTION | \n", + "icd_10_code | \n", + "
|---|---|---|---|---|---|---|---|
| 50663 | \n", + "1943-08-17 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "53ba9dae-bb90-4009-a0ca-52b15ae29882 | \n", + "162864005 | \n", + "Body mass index 30+ - obesity (finding) | \n", + "E669 | \n", + "
| 50664 | \n", + "1952-08-26 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "c248e591-4efe-4ef8-9170-2ff14b38783d | \n", + "449868002 | \n", + "Smokes tobacco daily | \n", + "Z720 | \n", + "
| 50665 | \n", + "1959-06-23 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "79bcab05-3844-4bfb-99ef-9bf266897256 | \n", + "44054006 | \n", + "Diabetes | \n", + "E119 | \n", + "
| 50666 | \n", + "1959-06-23 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "79bcab05-3844-4bfb-99ef-9bf266897256 | \n", + "271737000 | \n", + "Anemia (disorder) | \n", + "D649 | \n", + "
| 50667 | \n", + "1961-06-27 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "e8831d39-f832-416b-94b6-7ba72806fbdc | \n", + "302870006 | \n", + "Hypertriglyceridemia (disorder) | \n", + "E781 | \n", + "
| 50668 | \n", + "1961-06-27 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "e8831d39-f832-416b-94b6-7ba72806fbdc | \n", + "237602007 | \n", + "Metabolic syndrome X (disorder) | \n", + "E8881 | \n", + "
| 50669 | \n", + "1962-04-24 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "2199de83-0840-45ae-8f3f-0ebed916c37a | \n", + "431855005 | \n", + "Chronic kidney disease stage 1 (disorder) | \n", + "nan | \n", + "
| 50670 | \n", + "1962-04-24 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "2199de83-0840-45ae-8f3f-0ebed916c37a | \n", + "127013003 | \n", + "Diabetic renal disease (disorder) | \n", + "E1121 | \n", + "
| 50671 | \n", + "1963-05-27 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "d3d61ac6-a2c1-4ed0-b45d-93ef8a8123aa | \n", + "90560007 | \n", + "Gout | \n", + "M109 | \n", + "
| 50672 | \n", + "1963-06-18 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "768afb24-fefd-4127-920e-c37f255caa9e | \n", + "431856006 | \n", + "Chronic kidney disease stage 2 (disorder) | \n", + "nan | \n", + "
| 50673 | \n", + "1963-06-18 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "768afb24-fefd-4127-920e-c37f255caa9e | \n", + "90781000119102 | \n", + "Microalbuminuria due to type 2 diabetes mellit... | \n", + "R809 | \n", + "
| 50674 | \n", + "1966-09-25 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "d0d11be3-a5a0-4feb-9277-72f4a81e9023 | \n", + "40055000 | \n", + "Chronic sinusitis (disorder) | \n", + "J329 | \n", + "
| 50677 | \n", + "1982-10-12 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "e67c9915-d159-4454-8775-96b7881a2b56 | \n", + "126906006 | \n", + "Neoplasm of prostate | \n", + "D4959 | \n", + "
| 50678 | \n", + "1982-10-12 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "e67c9915-d159-4454-8775-96b7881a2b56 | \n", + "92691004 | \n", + "Carcinoma in situ of prostate (disorder) | \n", + "D075 | \n", + "
| 50681 | \n", + "1993-04-20 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "23384291-c5a8-45dc-99e8-754354d6da32 | \n", + "230690007 | \n", + "Stroke | \n", + "I639 | \n", + "
| 50682 | \n", + "2011-07-22 | \n", + "2011-09-20 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "91dae0f4-54fe-4da5-990d-21075b9d8248 | \n", + "65966004 | \n", + "Fracture of forearm | \n", + "S5290X? | \n", + "
| 50683 | \n", + "2012-08-20 | \n", + "2012-09-03 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "df0a89a4-06b5-46e3-96f7-c9a2146d6ff7 | \n", + "444814009 | \n", + "Viral sinusitis (disorder) | \n", + "B349 | \n", + "
| 50684 | \n", + "2014-01-10 | \n", + "2014-01-17 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "8f202fb5-5dd3-4236-a367-c5e73b8ccd21 | \n", + "195662009 | \n", + "Acute viral pharyngitis (disorder) | \n", + "J029 | \n", + "
| 50685 | \n", + "2014-10-29 | \n", + "2014-11-05 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "db52fa2e-b20a-4db0-a9d1-a83b93d1888c | \n", + "10509002 | \n", + "Acute bronchitis (disorder) | \n", + "J209 | \n", + "
| 50686 | \n", + "2015-07-26 | \n", + "2015-08-16 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "1d4e779d-9a07-4f50-889d-a29256c34975 | \n", + "444814009 | \n", + "Viral sinusitis (disorder) | \n", + "B349 | \n", + "
| 50687 | \n", + "2015-11-17 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "9b506d51-9ea6-4a4d-ba0c-6a9ec0082006 | \n", + "49436004 | \n", + "Atrial Fibrillation | \n", + "I4891 | \n", + "
| 50688 | \n", + "2016-05-21 | \n", + "2016-05-28 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "9d3282e6-a681-444c-98f5-a1ead2c019cd | \n", + "444814009 | \n", + "Viral sinusitis (disorder) | \n", + "B349 | \n", + "
| 50689 | \n", + "2016-07-31 | \n", + "2016-08-14 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "2625930e-577c-4d36-8157-a24363a5fbab | \n", + "10509002 | \n", + "Acute bronchitis (disorder) | \n", + "J209 | \n", + "
| 50690 | \n", + "2017-06-01 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "836e54e9-bdd0-4f72-9a22-23b1330ccd3b | \n", + "88805009 | \n", + "Chronic congestive heart failure (disorder) | \n", + "I509 | \n", + "
| 50691 | \n", + "2017-10-27 | \n", + "2017-11-10 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "8ded4cff-d26d-4970-84a7-d785e4aea503 | \n", + "444814009 | \n", + "Viral sinusitis (disorder) | \n", + "B349 | \n", + "
| 50692 | \n", + "2018-04-03 | \n", + "NaN | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "4e3b2ace-22db-4a8d-9d21-25bd77f94aa6 | \n", + "53741008 | \n", + "Coronary Heart Disease | \n", + "I2510 | \n", + "
| 50696 | \n", + "2019-05-12 | \n", + "2019-06-02 | \n", + "7b5ed251-b412-4a25-af47-8c55de1c1e67 | \n", + "9d8bb873-0080-4d0d-b55c-84395c96a29d | \n", + "444814009 | \n", + "Viral sinusitis (disorder) | \n", + "B349 | \n", + "