diff --git a/html/index.html b/html/index.html index f6c737d..ab25ed4 100644 --- a/html/index.html +++ b/html/index.html @@ -174,7 +174,7 @@ return 1; } - // Compare mpp_preferred_term word-by-word accounting for numbers + // Compare mpp_preferred_term word-by-word accounting for numbers and units const bits1 = item1['mpp_preferred_term'].split(' '); const bits2 = item2['mpp_preferred_term'].split(' '); @@ -182,8 +182,23 @@ for (let i = 0; i < bits1.length && i < bits2.length; i++) { if (regexIsNumber.test(bits1[i]) && regexIsNumber.test(bits2[i])) { // Numeric compare - const num1 = parseInt(bits1[i]); - const num2 = parseInt(bits2[i]); + let num1 = parseInt(bits1[i]); + let num2 = parseInt(bits2[i]); + + // Check for units - convert to grams + if (bits1.length > i + 1 && bits1[i + 1] == 'microgram') { + num1 /= 1000000; + } + if (bits1.length > i + 1 && bits1[i + 1] == 'mg') { + num1 /= 1000; + } + + if (bits2.length > i + 1 && bits2[i + 1] == 'microgram') { + num2 /= 1000000; + } + if (bits2.length > i + 1 && bits2[i + 1] == 'mg') { + num2 /= 1000; + } if (num1 < num2) { return -1;