diff --git a/htdocs/reportparser.mjs b/htdocs/reportparser.mjs index c549d0b..9e8f068 100644 --- a/htdocs/reportparser.mjs +++ b/htdocs/reportparser.mjs @@ -53,15 +53,15 @@ function lab_parse1default(data) { else x.comment = [line.substring(12)]; } else console.log('DANGLING:', line); } else if(m = line.match(/^\b(?.*?)\s{2,}(?.*?)(?: (?L\*|L|H\*|H))?\s+(?:(?.{10}) (?.*?)(?: \[(?\d+)\])?)?$/)) { - if(x = line.match(/^\b(?.*?)(?(?:positive|negative|reactive|nonreactive|not detected|comment|collected - specimen in lab|test not performed))(?: (?L\*|L|H\*|H))?\s+(?:(?.{10}) (?.*?)(?: \[(?\d+)\])?)?$/i)) m = x; + if(x = line.match(/^\b(?.*?)(?(?:positive|negative|reactive|nonreactive|detected|not detected|comment|collected - specimen in lab|test not performed))(?: (?L\*|L|H\*|H))?\s+(?:(?.{10}) (?.*?)(?: \[(?\d+)\])?)?$/i)) m = x; if((m.groups.range) && (m.groups.range.startsWith('Ref: '))) m.groups.range = m.groups.range.substring(5); results.push(x = m.groups); - if((x.value === '') && (m = x.name.match(/^(?.*?)(?(?:[\d\.]+|positive|negative|reactive|not detected|comment|collected - specimen in lab|test not performed))\s*$/i))) { + if((x.value === '') && (m = x.name.match(/^(?.*?)(?(?:[\d\.]+|positive|negative|reactive|detected|not detected|comment|collected - specimen in lab|test not performed))\s*$/i))) { x.name = m.groups.name; x.value = m.groups.value; } for(var k in x) if(x[k]) x[k] = x[k] ? x[k].replace(/^\s+|\s+$/g, '') : undefined; - } else if(m = line.match(/^\b(?.*?)(?(?:[\d\.]+|positive|negative|reactive|nonreactive|not detected|comment|collected - specimen in lab|test not performed))\s*$/i)) { + } else if(m = line.match(/^\b(?.*?)(?(?:[\d\.]+|positive|negative|reactive|nonreactive|detected|not detected|comment|collected - specimen in lab|test not performed))(?: (?L\*|L|H\*|H))?\s*$/i)) { results.push(x = m.groups); for(var k in x) if(x[k]) x[k] = x[k] ? x[k].replace(/^\s+|\s+$/g, '') : undefined; } else if(line.startsWith(' [')) {