UNPKG

bluebutton

Version:

BlueButton.js helps developers navigate complex health data with ease.

78 lines (63 loc) 2.4 kB
/* * Parser for the CCDA results (labs) section */ Parsers.CCDA.results = function (ccda) { var parseDate = Documents.parseDate; var parseName = Documents.parseName; var parseAddress = Documents.parseAddress; var data = [], el; var results = ccda.section('results'); results.entries().each(function(entry) { // panel el = entry.tag('code'); var panel_name = el.attr('displayName'), panel_code = el.attr('code'), panel_code_system = el.attr('codeSystem'), panel_code_system_name = el.attr('codeSystemName'); var observation; var tests = entry.elsByTag('component'); var tests_data = []; for (var i = 0; i < tests.length; i++) { observation = tests[i]; var date = parseDate(observation.tag('effectiveTime').attr('value')); el = observation.tag('code'); var name = el.attr('displayName'), code = el.attr('code'), code_system = el.attr('codeSystem'), code_system_name = el.attr('codeSystemName'); el = observation.tag('value'); var value = parseFloat(el.attr('value')), unit = el.attr('unit'); el = observation.tag('referenceRange'); var reference_range_text = Core.stripWhitespace(el.tag('observationRange').tag('text').val()), reference_range_low_unit = el.tag('observationRange').tag('low').attr('unit'), reference_range_low_value = el.tag('observationRange').tag('low').attr('value'), reference_range_high_unit = el.tag('observationRange').tag('high').attr('unit'), reference_range_high_value = el.tag('observationRange').tag('high').attr('value'); tests_data.push({ date: date, name: name, value: value, unit: unit, code: code, code_system: code_system, code_system_name: code_system_name, reference_range: { text: reference_range_text, low_unit: reference_range_low_unit, low_value: reference_range_low_value, high_unit: reference_range_high_unit, high_value: reference_range_high_value, } }); } data.push({ name: panel_name, code: panel_code, code_system: panel_code_system, code_system_name: panel_code_system_name, tests: tests_data }); }); return data; };