<?xml version='1.0' encoding='UTF-8'?> <macro name="cycloplegisk_refraktion" version="1.0"> <resume language="lua"> out = '' if ( getValue('cycloplegisk_refraktion.mangler.odxt') == '' ) then out = out .. 'Cycloplegisk refraktion, o.dxt: ' .. getValue('cycloplegisk_refraktion.sf.odxt') .. ' sf' if ( getValue('cycloplegisk_refraktion.cyl.odxt') ~= '' ) then out = out .. ', ' .. getValue('cycloplegisk_refraktion.cyl.odxt') .. ' cyl' end if ( getValue('cycloplegisk_refraktion.grader.odxt') ~= '' ) then out = out .. ', ' .. getValue('cycloplegisk_refraktion.grader.odxt') .. ' grader\n' else out = out .. '\n' end end if ( getValue('cycloplegisk_refraktion.mangler.osin') == '' ) then out = out .. 'Cycloplegisk refraktion, o.sin: ' .. getValue('cycloplegisk_refraktion.sf.osin') .. ' sf' if ( getValue('cycloplegisk_refraktion.cyl.osin') ~= '' ) then out = out .. ', ' .. getValue('cycloplegisk_refraktion.cyl.osin') .. ' cyl' end if ( getValue('cycloplegisk_refraktion.grader.osin') ~= '' ) then out = out .. ', ' .. getValue('cycloplegisk_refraktion.grader.osin') .. ' grader\n' else out = out .. '\n' end end return out </resume> <queries> <!-- <query service="pentominos" class="phoroptor" ttl="100000"/> --> <query service="pracro" class="missing_eye_odxt" ttl="1000000"/> <query service="pracro" class="missing_eye_osin" ttl="1000000"/> </queries> <maps> <map name="missing_eye_odxt_map"> value = 0 timestamp = 0 source = 'pracro' if( missing_eye_odxt ) then if( missing_eye_odxt.value and missing_eye_odxt.value == '' ) then value = '' timestamp = missing_eye_odxt.timestamp else value = 'mangler' timestamp = missing_eye_odxt.timestamp end end return value, timestamp, source </map> <map name="missing_eye_osin_map"> value = 0 timestamp = 0 source = 'pracro' if( missing_eye_osin ) then if( missing_eye_osin.value and missing_eye_osin.value == '' ) then value = '' timestamp = missing_eye_osin.timestamp else value = 'mangler' timestamp = missing_eye_osin.timestamp end end return value, timestamp, source </map> <map name="phoroptor.osin.sph"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.osin and phoroptor.osin.sph_n and phoroptor.osin.sph_n.value and phoroptor.osin.sph_n.timestamp) then value = phoroptor.osin.sph_n.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.osin.sph_n.timestamp source = phoroptor.osin.sph_n.source end return value, timestamp, source </map> <map name="phoroptor.osin.cyl"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.osin and phoroptor.osin.cyl and phoroptor.osin.cyl.value and phoroptor.osin.cyl.timestamp) then value = phoroptor.osin.cyl.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.osin.cyl.timestamp source = phoroptor.osin.cyl.source end return value, timestamp, source </map> <map name="phoroptor.osin.axis"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.osin and phoroptor.osin.axis and phoroptor.osin.axis.value and phoroptor.osin.axis.timestamp) then value = phoroptor.osin.axis.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.osin.axis.timestamp source = phoroptor.osin.axis.source end return value, timestamp, source </map> <map name="phoroptor.odxt.sph"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.odxt and phoroptor.odxt.sph_n and phoroptor.odxt.sph_n.value and phoroptor.odxt.sph_n.timestamp) then value = phoroptor.odxt.sph_n.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.odxt.sph_n.timestamp source = phoroptor.odxt.sph_n.source end return value, timestamp, source </map> <map name="phoroptor.odxt.cyl"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.odxt and phoroptor.odxt.cyl and phoroptor.odxt.cyl.value and phoroptor.odxt.cyl.timestamp) then value = phoroptor.odxt.cyl.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.odxt.cyl.timestamp source = phoroptor.odxt.cyl.source end return value, timestamp, source </map> <map name="phoroptor.odxt.axis"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(phoroptor and phoroptor.odxt and phoroptor.odxt.axis and phoroptor.odxt.axis.value and phoroptor.odxt.axis.timestamp) then value = phoroptor.odxt.axis.value -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = phoroptor.odxt.axis.timestamp source = phoroptor.odxt.axis.source end return value, timestamp, source </map> </maps> <scripts> <script language="lua" name="lt20gt-25"> if(value == '') then return false end value = string.gsub(value, ',', '.') if(tonumber(value) >= -25 and tonumber(value) <= 20) then return true else return false end </script> <script language="lua" name="lt10gt-15"> if(value == '') then return true end value = string.gsub(value, ',', '.') if(tonumber(value) >= -15 and tonumber(value) <= 10) then return true else return false end </script> <script language="lua" name="lt359gt0"> if(value == '') then return true end value = string.gsub(value, ',', '.') if(tonumber(value) >= 0 and tonumber(value) <= 359) then return true else return false end </script> <script language="lua" name="right_eye"> if ( value == 'mangler' ) then disable('right_eye_frame') else enable('right_eye_frame') end return true </script> <script language="lua" name="left_eye"> if ( value == 'mangler' ) then disable('left_eye_frame') else enable('left_eye_frame') end return true </script> </scripts> <widgets caption="Cycloplegisk refraktion" layout="vbox"> <frame layout="hbox"> <!-- o.dxt --> <frame layout="vbox"> <checkbox caption="Der er ikke målt på o.dxt" name="cycloplegisk_refraktion.mangler.odxt" script="right_eye" map="missing_eye_odxt_map" truevalue="mangler" falsevalue="" value=""/> <frame name="right_eye_frame" caption="o.dxt" layout="hbox"> <frame layout="vbox"> <label caption="Sf:"/> <lineedit name="cycloplegisk_refraktion.sf.odxt" map="phoroptor.odxt.sph" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/> </frame> <frame layout="vbox"> <label caption="Cyl:"/> <lineedit name="cycloplegisk_refraktion.cyl.odxt" map="phoroptor.odxt.cyl" regexp="|[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/> </frame> <frame layout="vbox"> <label caption="Grader:"/> <lineedit name="cycloplegisk_refraktion.grader.odxt" map="phoroptor.odxt.axis" regexp="|[\d]+" script="lt359gt0" value=""/> </frame> </frame> </frame> <!-- o.sin --> <frame layout="vbox"> <checkbox caption="Der er ikke målt på o.sin" name="cycloplegisk_refraktion.mangler.osin" script="left_eye" map="missing_eye_osin_map" truevalue="mangler" falsevalue="" value=""/> <frame name="left_eye_frame" caption="o.sin" layout="hbox"> <frame layout="vbox"> <label caption="Sf:"/> <lineedit name="cycloplegisk_refraktion.sf.osin" map="phoroptor.osin.sph" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/> </frame> <frame layout="vbox"> <label caption="Cyl:"/> <lineedit name="cycloplegisk_refraktion.cyl.osin" map="phoroptor.osin.cyl" regexp="|[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/> </frame> <frame layout="vbox"> <label caption="Grader:"/> <lineedit name="cycloplegisk_refraktion.grader.osin" map="phoroptor.osin.axis" regexp="|[\d]+" script="lt359gt0" value=""/> </frame> </frame> </frame> </frame> <!-- Knapper --> <frame layout="hbox"> <spacer /> <button caption="Gem" action="commit"/> </frame> </widgets> </macro>