UNPKG

bluebutton

Version:

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

68 lines (55 loc) 1.83 kB
/* * Parser for the CCDA procedures section */ Parsers.CCDA.procedures = function (ccda) { var parseDate = Documents.parseDate; var parseName = Documents.parseName; var parseAddress = Documents.parseAddress; var data = [], el; var procedures = ccda.section('procedures'); procedures.entries().each(function(entry) { el = entry.tag('effectiveTime'); var date = parseDate(el.attr('value')); el = entry.tag('code'); var name = el.attr('displayName'), code = el.attr('code'), code_system = el.attr('codeSystem'); // 'specimen' tag not always present // el = entry.tag('specimen').tag('code'); // var specimen_name = el.attr('displayName'), // specimen_code = el.attr('code'), // specimen_code_system = el.attr('codeSystem'); var specimen_name = null, specimen_code = null, specimen_code_system = null; el = entry.tag('performer').tag('addr'); var organization = el.tag('name').val(), phone = el.tag('telecom').attr('value'); var performer_dict = parseAddress(el); performer_dict.organization = organization; performer_dict.phone = phone; // participant => device el = entry.tag('participant').tag('code'); var device_name = el.attr('displayName'), device_code = el.attr('code'), device_code_system = el.attr('codeSystem'); data.push({ date: date, name: name, code: code, code_system: code_system, specimen: { name: specimen_name, code: specimen_code, code_system: specimen_code_system }, performer: performer_dict, device: { name: device_name, code: device_code, code_system: device_code_system } }); }); return data; };