summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsenator <senator>2009-08-17 10:03:29 +0000
committersenator <senator>2009-08-17 10:03:29 +0000
commitc122d260a14c55c41bd1853c56e32436ca831fba (patch)
tree738f781f10f42c5da3abcdcfe83012160da75956
parent82740bc4d2ebfda035997fc42a8e59c00a3bbfc0 (diff)
Lua calculations seem correct now, but it is quite messy
-rw-r--r--server/xml/macros/keratometri-1.0.xml88
1 files 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 @@
<?xml version='1.0' encoding='UTF-8'?>
<macro name="keratometri" version="1.0">
<resume language="lua">
+ 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') &gt; 0 and getValue('keratometri.right.x1') &lt; 90 )
-
+
+ rr1 = tonmb(getValue('keratometri.right.r1'))
+ rr2 = tonmb(getValue('keratometri.right.r2'))
+ rx1 = tonmb(getValue('keratometri.right.x1'))
+
+ if ( rx1 &gt; 0 and rx1 &lt; 90 ) then
+ rx2 = rx1 + 90
+ end
+
+ if ( rx1 &gt;= 90 and rx1 &lt; 180 ) then
+ rx2 = rx1 - 90
+ end
+
+ rd1 = tonumber(string.format('%.2f', 337.5 / rr1))
+ rd2 = tonumber(string.format('%.2f', 337.5 / rr2))
+
+ if ( rd1 &lt; 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 &gt; 0 and lx1 &lt; 90 ) then
+ lx2 = lx1 + 90
+ end
+
+ if ( lx1 &gt;= 90 and lx1 &lt; 180 ) then
+ lx2 = lx1 - 90
+ end
+
+ ld1 = tonumber(string.format('%.2f', 337.5 / lr1))
+ ld2 = tonumber(string.format('%.2f', 337.5 / lr2))
+
+ if ( ld1 &lt; 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