You can reorder the html in the procedures with the following code:
// Use the Procedure LOINC to point to that section of the CDA
var procedureHtml = qie.parseXMLString(message.getNode('/ClinicalDocument/component/structuredBody/component/section[code/@code="47519-4"]/text/table'));
// Reorder header - By changing the name of the fields as needed
procedureHtml.setNode('/table/thead/tr/th[1]', 'Procedure Name');
procedureHtml.setNode('/table/thead/tr/th[2]', 'Code');
// Reorder data - By looping through each body element
var trCount = procedureHtml.getCount('/table/tbody/tr');
for (var i = 1; i <= trCount; i++) {
var code = procedureHtml.getNode('/table/tbody/tr[' + i + ']/td[1]');
var codeId = procedureHtml.getNode('/table/tbody/tr[' + i + ']/td[1]/@ID');
var name = procedureHtml.getNode('/table/tbody/tr[' + i + ']/td[2]');
procedureHtml.removeFirstNode('/table/tbody/tr[' + i + ']/td[1]/@ID');
procedureHtml.setNode('/table/tbody/tr[' + i + ']/td[1]', name);
procedureHtml.setNode('/table/tbody/tr[' + i + ']/td[2]/@ID', codeId);
procedureHtml.setNode('/table/tbody/tr[' + i + ']/td[2]', code);
}
// Set procedure html back into
message.setNode('/ClinicalDocument/component/structuredBody/component/section[code/@code="47519-4"]/text/table', procedureHtml);
This can work for other sections by modifying the code above.