From c122d260a14c55c41bd1853c56e32436ca831fba Mon Sep 17 00:00:00 2001 From: senator Date: Mon, 17 Aug 2009 10:03:29 +0000 Subject: Lua calculations seem correct now, but it is quite messy --- server/xml/macros/keratometri-1.0.xml | 88 +++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/server/xml/macros/keratometri-1.0.xml b/server/xml/macros/keratometri-1.0.xml index 5fd4156..c029316 100644 --- a/server/xml/macros/keratometri-1.0.xml +++ b/server/xml/macros/keratometri-1.0.xml @@ -1,13 +1,95 @@ + function tonmb(value) + value = string.gsub(value, ',', '.') + return tonumber(value) + end + + function tostr(value) + value = string.format('%.2f', value) + value = string.gsub(value, '\\.', ',') + return value + end + out = '' + if ( getValue('keratometri.right.missing') == '' ) then - if ( getValue('keratometri.right.x1') > 0 and getValue('keratometri.right.x1') < 90 ) - + + rr1 = tonmb(getValue('keratometri.right.r1')) + rr2 = tonmb(getValue('keratometri.right.r2')) + rx1 = tonmb(getValue('keratometri.right.x1')) + + if ( rx1 > 0 and rx1 < 90 ) then + rx2 = rx1 + 90 + end + + if ( rx1 >= 90 and rx1 < 180 ) then + rx2 = rx1 - 90 + end + + rd1 = tonumber(string.format('%.2f', 337.5 / rr1)) + rd2 = tonumber(string.format('%.2f', 337.5 / rr2)) + + if ( rd1 < rd2 ) + then + ry1 = rd1 - rd2 + ry2 = rx1 + else + ry1 = rd2 - rd1 + ry2 = rx2 + end + + rr1 = tostr(rr1) + rr2 = tostr(rr2) + + print (rr1) + + out = out .. 'Keratometri, højre øje:\n' .. + 'Radius 1: ' .. rr1 .. ' mm (' .. rd1 .. ' D) i ' .. rx1 .. ' grader.\n' .. + 'Radius 2: ' .. rr2 .. ' mm (' .. rd2 .. ' D) i ' .. rx2 .. ' grader.\n' .. + 'Cylinder: ' .. ry1 .. ' i ' .. ry2 .. ' grader\n\n' + end - out = out .. 'Keratometri, højre øje:\n' .. 'Radius 1: ' .. getValue('keratometri.right.r1') .. ' mm (' .. string.format('%f', 337.50 / getValue('keratometri.right.r1')) .. ' D) i ' .. getValue('keratometri.right.x1') .. ' grader.\n\nRadius 2: ' .. getValue('keratometri.right.r2') .. ' mm (' .. string.format('%f', 337.50 / getValue('keratometri.right.r2')) .. ' D) i ' .. getValue('keratometri.right.x2')' + + if ( getValue('keratometri.left.missing') == '' ) + then + + lr1 = tonmb(getValue('keratometri.left.r1')) + lr2 = tonmb(getValue('keratometri.left.r2')) + lx1 = tonmb(getValue('keratometri.left.x1')) + + if ( lx1 > 0 and lx1 < 90 ) then + lx2 = lx1 + 90 + end + + if ( lx1 >= 90 and lx1 < 180 ) then + lx2 = lx1 - 90 + end + + ld1 = tonumber(string.format('%.2f', 337.5 / lr1)) + ld2 = tonumber(string.format('%.2f', 337.5 / lr2)) + + if ( ld1 < ld2 ) + then + ly1 = ld1 - ld2 + ly2 = lx1 + else + ly1 = ld2 - ld1 + ly2 = lx2 + end + + lr1 = tostr(lr1) + lr2 = tostr(lr2) + + print (lr1) + + out = out .. 'Keratometri, venstre øje:\n' .. + 'Radius 1: ' .. lr1 .. ' mm (' .. ld1 .. ' D) i ' .. lx1 .. ' grader.\n' .. + 'Radius 2: ' .. lr2 .. ' mm (' .. ld2 .. ' D) i ' .. lx2 .. ' grader.\n' .. + 'Cylinder: ' .. ly1 .. ' i ' .. ly2 .. ' grader' + end return out -- cgit v1.2.3