<?xml version='1.0' encoding='UTF-8'?>
<!--
    20081203: Bent Bisballe Nyeng
    Feltnavnene ændret så de giver mening.

    20090108: Bent Bisballe Nyeng
    Højre/venstre byttet om.

    20090202: Bent Bisballe Nyeng
    'missing eye' tilføjet.

    20090427: Bent Bisballe Nyeng
    Refraktions korrektion tilføjet.

    20090526: Bent Bisballe Nyeng
    0 ETDRS værdi tilføjet.
  -->
<macro name="visus" version="1.0">
  <resume language="lua">
    out = ''
    if ( getValue('snellen.right.missing') == '' or getValue('snellen.left.missing') == '' )
    then
      out = out .. 'Objektivt:\n'

      if ( getValue('snellen.right.missing') == '' )
      then
        out = out .. 'Visus o.dxt. ' .. getValue('snellen.right') .. '\n'
        out = out .. 'ETDRS o.dxt. ' .. getValue('etdrs.right') .. '\n'
        out = out .. 'Korr.: ' .. getValue('snellen.right.corr.basis') .. ' add '
            .. getValue('snellen.right.corr.sph') .. ' sf, '
            .. getValue('snellen.right.corr.cyl') .. ' sph '
            .. getValue('snellen.right.corr.axis') .. ' grader.\n'
      end
  
      if ( getValue('snellen.left.missing') == '' )
      then
        out = out .. 'Visus o.sin. ' .. getValue('snellen.left') .. '\n'
        out = out .. 'ETDRS o.sin. ' .. getValue('etdrs.left') .. '\n'
        out = out .. 'Korr.: ' .. getValue('snellen.left.corr.basis') .. ' add '
            .. getValue('snellen.left.corr.sph') .. ' sf, '
            .. getValue('snellen.left.corr.cyl') .. ' sph '
            .. getValue('snellen.left.corr.axis') .. ' grader.\n'
      end
    end
    return out
  </resume>
  <queries>
    <query service="pracro" class="missing_eye_right" ttl="1000000"/>
    <query service="pracro" class="missing_eye_left" ttl="1000000"/>
  </queries>
  <maps>
    <map name="missing_eye_right_map">
      value = 0
      timestamp = 0
      source = ''

      if( missing_eye_right )
      then
        if( missing_eye_right.value and missing_eye_right.value == '' )
        then
          value = ''
          timestamp = missing_eye_right.timestamp
          source = missing_eye_right.source
        else
          value = 'mangler'
          timestamp = missing_eye_right.timestamp
          source = missing_eye_right.source
        end
      end
      return value, timestamp, source
    </map>
    <map name="missing_eye_left_map">
      value = 0
      timestamp = 0
      source = ''
      
      if( missing_eye_left )
      then
        if( missing_eye_left.value and missing_eye_left.value == '' )
        then
          value = ''
          timestamp = missing_eye_left.timestamp
          source = missing_eye_left.source
        else
          value = 'mangler'
          timestamp = missing_eye_left.timestamp
          source = missing_eye_left.source
        end
      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) &gt;= -25 and tonumber(value) &lt;= 20)
      then
        return true
      else
        return false
      end
    </script>
    <script language="lua" name="lt10gt-15">
      if(value == '')
      then
        return false
      end

      value = string.gsub(value, ',', '.')
      if(tonumber(value) &gt;= -15 and tonumber(value) &lt;= 10)
      then
        return true
      else
        return false
      end
    </script>
    <script language="lua" name="lt359gt0">
      if(value == '')
      then
        return false
      end

      value = string.gsub(value, ',', '.')
      if(tonumber(value) &gt;= 0 and tonumber(value) &lt;= 359)
      then
        return true
      else
        return false
      end
    </script>
    <script language="lua" name="not0">
      if(value == 'Ikke udfyldt')
      then
        return false
      end
      return true
    </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="Visus (B.2.2.1)"
          layout="vbox">

    <frame layout="hbox">
      
      <!-- Højre øje -->
      <frame layout="vbox">
	<checkbox caption="Der er ikke målt på højre øje"
		  name="snellen.right.missing" script="right_eye"
		  map="missing_eye_right_map"
		  truevalue="mangler" falsevalue="" value=""/>
	<frame name="right_eye_frame" caption="Højre øje" layout="vbox">
	<frame layout="hbox">
	  
	  <frame layout="vbox">
	    <label caption="Snellen:"/>
	    <altcombobox name="snellen.right" layout="vbox" type="search" value="Ikke udfyldt" script="not0">
	      <item caption="Ikke udfyldt" value="Ikke udfyldt"/>
	      <item caption="2,0" value="2,0"/>
	      <item caption="1,6" value="1,6"/>
	      <item caption="1,33" value="1,33"/>
	      <item caption="1,0" value="1,0"/>
	      <item caption="0,8" value="0,8"/>
	      <item caption="0,67" value="0,67"/>
	      <item caption="0,5" value="0,5"/>
	      <item caption="0,4" value="0,4"/>
	      <item caption="0,32" value="0,32"/>
	      <item caption="0,25" value="0,25"/>
	      <item caption="0,2" value="0,2"/>
	      <item caption="0,16" value="0,16"/>
	      <item caption="0,125" value="0,125"/>
	      <item caption="0,1" value="0,1"/>
	      <item caption="0,08" value="0,08"/>
	      <item caption="0,05" value="0,05"/>
	      <item caption="6/60" value="6/60"/>
	      <item caption="3/60" value="3/60"/>
	      <item caption="1/18" value="1/18"/>
	      <item caption="1/24" value="1/24"/>
	      <item caption="1/36" value="1/36"/>
	      <item caption="1/60" value="1/60"/>
	      <item caption="FGT" value="FGT"/>
	      <item caption="HBV" value="HBV"/>
	      <item caption="+L+P" value="+L+P"/>
	      <item caption="+L-P" value="+L-P"/>
	      <item caption="-L" value="-L"/>
	      <altitem caption="Andet" value="andet" innerwidget="hoejre_snellen_andet" layout="hbox">
		<label caption="Andet:"/>
		<lineedit name="hoejre_snellen_andet" regexp="[0-9]+(,\d+|\d*)"/>
	      </altitem>
	    </altcombobox>
	  </frame>
	  <frame layout="vbox">
	    <label caption="ETDRS:"/>
	    <combobox name="etdrs.right" value="Ikke udfyldt" type="search" script="not0">
	      <item caption="Ikke udfyldt" value="Ikke udfyldt"/>
	      <item caption="0" value="0"/>
	      <item caption="1" value="1"/>
	      <item caption="2" value="2"/>
	      <item caption="3" value="3"/>
	      <item caption="4" value="4"/>
	      <item caption="5" value="5"/>
	      <item caption="6" value="6"/>
	      <item caption="7" value="7"/>
	      <item caption="8" value="8"/>
	      <item caption="9" value="9"/>
	      <item caption="10" value="10"/>
	      <item caption="11" value="11"/>
	      <item caption="12" value="12"/>
	      <item caption="13" value="13"/>
	      <item caption="14" value="14"/>
	      <item caption="15" value="15"/>
	      <item caption="16" value="16"/>
	      <item caption="17" value="17"/>
	      <item caption="18" value="18"/>
	      <item caption="19" value="19"/>
	      <item caption="20" value="20"/>
	      <item caption="21" value="21"/>
	      <item caption="22" value="22"/>
	      <item caption="23" value="23"/>
	      <item caption="24" value="24"/>
	      <item caption="25" value="25"/>
	      <item caption="26" value="26"/>
	      <item caption="27" value="27"/>
	      <item caption="28" value="28"/>
	      <item caption="29" value="29"/>
	      <item caption="30" value="30"/>
	      <item caption="31" value="31"/>
	      <item caption="32" value="32"/>
	      <item caption="33" value="33"/>
	      <item caption="34" value="34"/>
	      <item caption="35" value="35"/>
	      <item caption="36" value="36"/>
	      <item caption="37" value="37"/>
	      <item caption="38" value="38"/>
	      <item caption="39" value="39"/>
	      <item caption="40" value="40"/>
	      <item caption="41" value="41"/>
	      <item caption="42" value="42"/>
	      <item caption="43" value="43"/>
	      <item caption="44" value="44"/>
	      <item caption="45" value="45"/>
	      <item caption="46" value="46"/>
	      <item caption="47" value="47"/>
	      <item caption="48" value="48"/>
	      <item caption="49" value="49"/>
	      <item caption="50" value="50"/>
	      <item caption="51" value="51"/>
	      <item caption="52" value="52"/>
	      <item caption="53" value="53"/>
	      <item caption="54" value="54"/>
	      <item caption="55" value="55"/>
	      <item caption="56" value="56"/>
	      <item caption="57" value="57"/>
	      <item caption="58" value="58"/>
	      <item caption="59" value="59"/>
	      <item caption="60" value="60"/>
	      <item caption="61" value="61"/>
	      <item caption="62" value="62"/>
	      <item caption="63" value="63"/>
	      <item caption="64" value="64"/>
	      <item caption="65" value="65"/>
	      <item caption="66" value="66"/>
	      <item caption="67" value="67"/>
	      <item caption="68" value="68"/>
	      <item caption="69" value="69"/>
	      <item caption="70" value="70"/>
	      <item caption="71" value="71"/>
	      <item caption="72" value="72"/>
	      <item caption="73" value="73"/>
	      <item caption="74" value="74"/>
	      <item caption="75" value="75"/>
	      <item caption="76" value="76"/>
	      <item caption="77" value="77"/>
	      <item caption="78" value="78"/>
	      <item caption="79" value="79"/>
	      <item caption="80" value="80"/>
	      <item caption="81" value="81"/>
	      <item caption="82" value="82"/>
	      <item caption="83" value="83"/>
	      <item caption="84" value="84"/>
	      <item caption="85" value="85"/>
	      <item caption="86" value="86"/>
	      <item caption="87" value="87"/>
	      <item caption="88" value="88"/>
	      <item caption="89" value="89"/>
	      <item caption="90" value="90"/>
	      <item caption="91" value="91"/>
	      <item caption="92" value="92"/>
	      <item caption="93" value="93"/>
	      <item caption="94" value="94"/>
	      <item caption="95" value="95"/>
	      <item caption="96" value="96"/>
	      <item caption="97" value="97"/>
	      <item caption="98" value="98"/>
	      <item caption="99" value="99"/>
	      <item caption="100" value="100"/>
	    </combobox>
	    <spacer/>
	  </frame>
	  </frame>
	  <frame layout="hbox">
	    <frame layout="vbox">
	      <label caption=""/>
	      <label caption="Korr.:"/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Basis:"/>
	      <combobox name="snellen.right.corr.basis" value="">
		<item caption="Autoref." value="autoref"/>
		<item caption="Egen brille" value="brille"/>
		<item caption="Ingen" value="ingen"/>
	      </combobox>
	    </frame>
	    <frame layout="vbox">
	      <label caption=""/>
	      <label caption="add"/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Sf:"/>
	      <lineedit name="snellen.right.corr.sph" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Cyl:"/>
	      <lineedit name="snellen.right.corr.cyl" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Grader:"/>
	      <lineedit name="snellen.right.corr.axis" regexp="[\d]+" script="lt359gt0" value=""/>
	    </frame>
	  </frame>
	</frame>
      </frame>

      <!-- Venstre øje -->
      <frame layout="vbox">
	<checkbox caption="Der er ikke målt på venstre øje"
		  name="snellen.left.missing" script="left_eye"
		  map="missing_eye_left_map"
		  truevalue="mangler" falsevalue="" value=""/>
	<frame name="left_eye_frame" caption="Venstre øje" layout="vbox">
	<frame layout="hbox">
	  
	  <frame layout="vbox">
	    <label caption="Snellen:"/>
	    <altcombobox name="snellen.left" layout="vbox" type="search" value="Ikke udfyldt" script="not0">
	      <item caption="Ikke udfyldt" value="Ikke udfyldt"/>
	      <item caption="2,0" value="2,0"/>
	      <item caption="1,6" value="1,6"/>
	      <item caption="1,33" value="1,33"/>
	      <item caption="1,0" value="1,0"/>
	      <item caption="0,8" value="0,8"/>
	      <item caption="0,67" value="0,67"/>
	      <item caption="0,5" value="0,5"/>
	      <item caption="0,4" value="0,4"/>
	      <item caption="0,32" value="0,32"/>
	      <item caption="0,25" value="0,25"/>
	      <item caption="0,2" value="0,2"/>
	      <item caption="0,16" value="0,16"/>
	      <item caption="0,125" value="0,125"/>
	      <item caption="0,1" value="0,1"/>
	      <item caption="0,08" value="0,08"/>
	      <item caption="0,05" value="0,05"/>
	      <item caption="6/60" value="6/60"/>
	      <item caption="3/60" value="3/60"/>
	      <item caption="1/18" value="1/18"/>
	      <item caption="1/24" value="1/24"/>
	      <item caption="1/36" value="1/36"/>
	      <item caption="1/60" value="1/60"/>
	      <item caption="FGT" value="FGT"/>
	      <item caption="HBV" value="HBV"/>
	      <item caption="+L+P" value="+L+P"/>
	      <item caption="+L-P" value="+L-P"/>
	      <item caption="-L" value="-L"/>
	      <altitem caption="Andet" value="andet" innerwidget="venstre_snellen_andet" layout="hbox">
		<label caption="Andet:"/>
		<lineedit name="venstre_snellen_andet" regexp="[0-9]+(,\d+|\d*)"/>
	      </altitem>
	    </altcombobox>
	  </frame>
	  <frame layout="vbox">
	    <label caption="ETDRS:"/>
	    <combobox name="etdrs.left" value="Ikke udfyldt" type="search" script="not0">
	      <item caption="Ikke udfyldt" value="Ikke udfyldt"/>
	      <item caption="0" value="0"/>
	      <item caption="1" value="1"/>
	      <item caption="2" value="2"/>
	      <item caption="3" value="3"/>
	      <item caption="4" value="4"/>
	      <item caption="5" value="5"/>
	      <item caption="6" value="6"/>
	      <item caption="7" value="7"/>
	      <item caption="8" value="8"/>
	      <item caption="9" value="9"/>
	      <item caption="10" value="10"/>
	      <item caption="11" value="11"/>
	      <item caption="12" value="12"/>
	      <item caption="13" value="13"/>
	      <item caption="14" value="14"/>
	      <item caption="15" value="15"/>
	      <item caption="16" value="16"/>
	      <item caption="17" value="17"/>
	      <item caption="18" value="18"/>
	      <item caption="19" value="19"/>
	      <item caption="20" value="20"/>
	      <item caption="21" value="21"/>
	      <item caption="22" value="22"/>
	      <item caption="23" value="23"/>
	      <item caption="24" value="24"/>
	      <item caption="25" value="25"/>
	      <item caption="26" value="26"/>
	      <item caption="27" value="27"/>
	      <item caption="28" value="28"/>
	      <item caption="29" value="29"/>
	      <item caption="30" value="30"/>
	      <item caption="31" value="31"/>
	      <item caption="32" value="32"/>
	      <item caption="33" value="33"/>
	      <item caption="34" value="34"/>
	      <item caption="35" value="35"/>
	      <item caption="36" value="36"/>
	      <item caption="37" value="37"/>
	      <item caption="38" value="38"/>
	      <item caption="39" value="39"/>
	      <item caption="40" value="40"/>
	      <item caption="41" value="41"/>
	      <item caption="42" value="42"/>
	      <item caption="43" value="43"/>
	      <item caption="44" value="44"/>
	      <item caption="45" value="45"/>
	      <item caption="46" value="46"/>
	      <item caption="47" value="47"/>
	      <item caption="48" value="48"/>
	      <item caption="49" value="49"/>
	      <item caption="50" value="50"/>
	      <item caption="51" value="51"/>
	      <item caption="52" value="52"/>
	      <item caption="53" value="53"/>
	      <item caption="54" value="54"/>
	      <item caption="55" value="55"/>
	      <item caption="56" value="56"/>
	      <item caption="57" value="57"/>
	      <item caption="58" value="58"/>
	      <item caption="59" value="59"/>
	      <item caption="60" value="60"/>
	      <item caption="61" value="61"/>
	      <item caption="62" value="62"/>
	      <item caption="63" value="63"/>
	      <item caption="64" value="64"/>
	      <item caption="65" value="65"/>
	      <item caption="66" value="66"/>
	      <item caption="67" value="67"/>
	      <item caption="68" value="68"/>
	      <item caption="69" value="69"/>
	      <item caption="70" value="70"/>
	      <item caption="71" value="71"/>
	      <item caption="72" value="72"/>
	      <item caption="73" value="73"/>
	      <item caption="74" value="74"/>
	      <item caption="75" value="75"/>
	      <item caption="76" value="76"/>
	      <item caption="77" value="77"/>
	      <item caption="78" value="78"/>
	      <item caption="79" value="79"/>
	      <item caption="80" value="80"/>
	      <item caption="81" value="81"/>
	      <item caption="82" value="82"/>
	      <item caption="83" value="83"/>
	      <item caption="84" value="84"/>
	      <item caption="85" value="85"/>
	      <item caption="86" value="86"/>
	      <item caption="87" value="87"/>
	      <item caption="88" value="88"/>
	      <item caption="89" value="89"/>
	      <item caption="90" value="90"/>
	      <item caption="91" value="91"/>
	      <item caption="92" value="92"/>
	      <item caption="93" value="93"/>
	      <item caption="94" value="94"/>
	      <item caption="95" value="95"/>
	      <item caption="96" value="96"/>
	      <item caption="97" value="97"/>
	      <item caption="98" value="98"/>
	      <item caption="99" value="99"/>
	      <item caption="100" value="100"/>
	    </combobox>
	    <spacer/>
	  </frame>
	</frame>
	  <frame layout="hbox">
	    <frame layout="vbox">
	      <label caption=""/>
	      <label caption="Korr.:"/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Basis:"/>
	      <combobox name="snellen.left.corr.basis" value="">
		<item caption="Autoref." value="autoref"/>
		<item caption="Egen brille" value="brille"/>
		<item caption="Ingen" value="ingen"/>
	      </combobox>
	    </frame>
	    <frame layout="vbox">
	      <label caption=""/>
	      <label caption="add"/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Sf:"/>
	      <lineedit name="snellen.left.corr.sph" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Cyl:"/>
	      <lineedit name="snellen.left.corr.cyl" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/>
	    </frame>
	    <frame layout="vbox">
	      <label caption="Grader:"/>
	      <lineedit name="snellen.left.corr.axis" regexp="[\d]+" script="lt359gt0" value=""/>
	    </frame>
	  </frame>
	</frame>
      </frame>

    </frame>

    <!-- Knapper -->
    <frame layout="hbox">
      <spacer />
      <button caption="Gem" action="commit"/>
    </frame>
  </widgets>
</macro>