diff options
| -rw-r--r-- | server/xml/macros/keratometri-1.0.xml | 88 | 
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') > 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 | 
