]> git.plutz.net Git - confetti/blobdiff - templates/therapy.html.sh
simplify distinction between attendees and clients
[confetti] / templates / therapy.html.sh
index cb3cf26850a0183e2360ce79f7d25f834eb3769e..0c91487cee322764b670f06608a124cf98d7f1fe 100755 (executable)
 # You should have received a copy of the GNU Affero General Public License
 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
 
+t_session_note(){
+  session_n="$1"
+  note_n="$2"
+  
+  color=session${session_n}_note${note_n}_color
+  unset c0 c1 c2 c3 c4 c5 c6 c7
+  
+  case "$tpy[$color]" in
+    \#888) c0=checked;;
+    \#00A) c1=checked;;
+    \#0A0) c2=checked;;
+    \#0AA) c3=checked;;
+    \#A00) c4=checked;;
+    \#A0A) c5=checked;;
+    \#AA0) c6=checked;;
+    *)    c7=checked;;
+  esac
+
 cat <<EOF
-<form method=GET action="">
-  <h1>Behandlungen</h1>
+  <fieldset class=note>
+    <input class=color type=radio name="$color" value="#888" id=${color}_000 $c0><label for=${color}_000></label>
+    <input class=color type=radio name="$color" value="#00A" id=${color}_001 $c1><label for=${color}_001></label>
+    <input class=color type=radio name="$color" value="#0A0" id=${color}_010 $c2><label for=${color}_010></label>
+    <input class=color type=radio name="$color" value="#0AA" id=${color}_011 $c3><label for=${color}_011></label>
+    <input class=color type=radio name="$color" value="#A00" id=${color}_100 $c4><label for=${color}_100></label>
+    <input class=color type=radio name="$color" value="#A0A" id=${color}_101 $c5><label for=${color}_101></label>
+    <input class=color type=radio name="$color" value="#AA0" id=${color}_110 $c6><label for=${color}_110></label>
+    <input class=color type=radio name="$color" value="#FFF" id=${color}_111 $c7><label for=${color}_111></label>
+    <textarea name="session${session_n}_note${note_n}">${tpy[session${session_n}_note${note_n}]}</textarea>
+  </fieldset>
+EOF
+}
 
-  <div class="patient">
-    <h2>Flrbrlprrf Zoidberg</h2>
-    <a href="?p=patienten">&lt; zur Patientenliste</a>
-    <span class="insurance">Gemeinsame Betriebskrankenkasse der Gesellschaften der Textilgruppe Hof</span>
-  </div>
+t_session(){
+  session_n="$1"
 
-  <div class="prescription">
-    <h2>Verordnung</h2>
-    <button type=submit name=prescreviewed value=pos>Verordnung geprüft</button>
-    <ul>
-      <li>6x MT</li>
-      <li>6x Fango</li>
-    </ul>
-    ???
-    <button type=submit name=extrapay      value=neg>Zuzahlung</button>
-  </div>
+  sid=session${session_n}
 
-  <label class="tab heading">
-    <span class=no>Nr.</span><!--
- --><span class=date>Datum</span><!--
- --><span class=therapist>Therapeut</span><!--
- --><span class=signature>Sig.</span>
-  </label>
+  if [ "$tpy[${sid}_sigset]" = pos ]; then
+    sig=neg
+    sigcheck=checked
+  elif [ "$tpy[${sid}_sigset]" = neg ]; then
+    sig=pos
+    unset sigcheck
+  elif [ "$tpy[${sid}_signature]" = pos ]; then
+    sig=neg
+    sigcheck=checked
+  else
+    sig=pos
+    unset sigcheck
+  fi
 
-  <input class="tab" type="checkbox" id=2015-10-15-1>
-  <label class="tab" for=2015-10-15-1>
-    <span class=no>1.</span><!--
- --><span class=date>15.10.2015</span><!--
- --><span class=therapist>Josh</span><!--
- --><span class=signature><button type=submit name=2015-10-15-1_sig value=pos></button></span>
+cat <<EOF
+  <input type=hidden name=$sid value=exists>
+  <input class="tab" type="checkbox" id=${sid}_open name="${sid}_open" value="checked" ${tpy[${sid}_open]}>
+  <label class="tab" for="${sid}_open">
+    <span class=no>${session_n}.</span><!--
+ --><span class=date>${tpy[${sid}_date]}</span><!--
+ --><input class="date" name="${sid}_date" value="${tpy[${sid}_date]}" placeholder="$(l10n date)"><!--
+ --><span class=therapist>${tpy[${sid}_therapist]}</span><!--
+ --><input class="therapist" name="${sid}_therapist" value="${tpy[${sid}_therapist]}" placeholder="$(l10n therapist)"><!--
+ --><span class=signature><input type=checkbox name="${sid}_signature" value=pos $sigcheck><button type=submit name=${sid}_sigset value=$sig></button></span>
   </label>
   <div class=tab>
-    <img class="dotmark ov" src="therapy_ov2015-10-15-1.png" alt="">
-
-    <fieldset class=note>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c000" id=2015-10-15-1_c1c000><label for=2015-10-15-1_c1c000></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c001" id=2015-10-15-1_c1c001><label for=2015-10-15-1_c1c001></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c010" id=2015-10-15-1_c1c010><label for=2015-10-15-1_c1c010></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c011" id=2015-10-15-1_c1c011 checked><label for=2015-10-15-1_c1c011></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c100" id=2015-10-15-1_c1c100><label for=2015-10-15-1_c1c100></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c101" id=2015-10-15-1_c1c101><label for=2015-10-15-1_c1c101></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c110" id=2015-10-15-1_c1c110><label for=2015-10-15-1_c1c110></label>
-      <input class=color type=radio name=2015-10-15-1_c1 value="c111" id=2015-10-15-1_c1c111><label for=2015-10-15-1_c1c111></label>
-      <textarea name=2015-10-15-1_n1>
-Unfall 3.9.2015
-Bruch Oberarm rechts
-      </textarea>
-    </fieldset>
-
-    <fieldset class=note>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c000" id=2015-10-15-1_c2c000><label for=2015-10-15-1_c2c000></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c001" id=2015-10-15-1_c2c001><label for=2015-10-15-1_c2c001></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c010" id=2015-10-15-1_c2c010><label for=2015-10-15-1_c2c010></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c011" id=2015-10-15-1_c2c011><label for=2015-10-15-1_c2c011></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c100" id=2015-10-15-1_c2c100 checked><label for=2015-10-15-1_c2c100></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c101" id=2015-10-15-1_c2c101><label for=2015-10-15-1_c2c101></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c110" id=2015-10-15-1_c2c110><label for=2015-10-15-1_c2c110></label>
-      <input class=color type=radio name=2015-10-15-1_c2 value="c111" id=2015-10-15-1_c2c111><label for=2015-10-15-1_c2c111></label>
-      <textarea name=2015-10-15-1_n2>
-Medikamentenallergie
-Komplikationen
-6. Rippe instabil
-      </textarea>
-    </fieldset>
-
-    <fieldset class=note>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c000" id=2015-10-15-1_c3c000><label for=2015-10-15-1_c3c000></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c001" id=2015-10-15-1_c3c001><label for=2015-10-15-1_c3c001></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c010" id=2015-10-15-1_c3c010><label for=2015-10-15-1_c3c010></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c011" id=2015-10-15-1_c3c011><label for=2015-10-15-1_c3c011></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c100" id=2015-10-15-1_c3c100><label for=2015-10-15-1_c3c100></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c101" id=2015-10-15-1_c3c101><label for=2015-10-15-1_c3c101></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c110" id=2015-10-15-1_c3c110><label for=2015-10-15-1_c3c110></label>
-      <input class=color type=radio name=2015-10-15-1_c3 value="c111" id=2015-10-15-1_c3c111><label for=2015-10-15-1_c3c111></label>
-      <textarea name=2015-10-15-1_n3>
-      </textarea>
-    </fieldset>
-    <button type=submit name=edit value=2015-10-15-1_note3>Speichern</button>
+    <img class="dotmark ov" src="/therapies/${id%.tpy}_${sid}.png" alt="">
+    $(n=1; while [ -n "${tpy[${sid}_note${n}]+x}" ]; do
+      t_session_note $session_n $n
+      n=$(($n+1))
+    done
+    printf '<button type=submit name=%s_note%s value="">+</button>' "$sid" "$n"
+    )
+
+    <button class=delete type=submit name=delete_session value=${session_n}>$(l10n delete_session)</button>
+    <button type=submit>$(l10n save)</button>
   </div>
+EOF
+}
+
+therapy_sessions(){
+  n=1; while [ -n "${tpy[session${n}]}" ]; do
+    t_session $n
+    n=$(($n+1))
+  done
+
+  sid=session$n
 
+cat <<EOF
+  <fieldset class="tab">
+    <button class=no type=submit name=new_session value=$sid>+</button><!--
+ --><input class=date name=${sid}_date value="" placeholder="$(l10n date)" /><!--
+ --><input class=therapist name=${sid}_therapist value="" placeholder="$(l10n therapist)" /><!--
+ --><span class=signature><span></span>
+    <input type=hidden name="${sid}_note1" value="">
+  </fieldset>
+EOF
+}
+
+unset c0 c1 c2 c3 c4 c5 c6 c7
+case "$tpy[color]" in
+  \#00A) c1="checked";;
+  \#0A0) c2="checked";;
+  \#0AA) c3="checked";;
+  \#A00) c4="checked";;
+  \#A0A) c5="checked";;
+  \#AA0) c6="checked";;
+  \#FFF) c7="checked";;
+      *) c0="checked";;
+esac
+
+cat <<EOF
+<h1>$(l10n therapy)</h1>
 
-  <input class=tab type="checkbox" id=2015-10-22-1>
-  <label class=tab for=2015-10-22-1>
-    <span class=no>2.</span><!--
- --><span class=date>22.10.2015</span><!--
- --><span class=therapist>Josh</span><!--
- --><span class=signature><button type=submit name=2015-10-22-1_sig value=neg></button></span>
+<div class="patient">
+  <h2>$client_name</h2>
+  <a href="?p=prescriptions&amp;client=${id%%.*}.vcf">&lt; $(l10n prescriptionlist)</a>
+</div>
+
+<div class="prescription">
+  <h2>$(l10n therapy_prescription)</h2>
+  <span class="insurance">${mpx[insurance]}</span>
+  <span class="date"><label>$(l10n date):</label>${mpx[date]}</span>
+
+  <label class="checkbox ${mpx[prescreviewed]:+checked}" for="prescreviewed">
+    $([ -n "${mpx[prescreviewed]}" ] && printf %s "$(l10n prescreviewed)" \
+                                     || printf %s "$(l10n prescreview)" )
   </label>
-  <div class=tab>
-    <img class="dotmark ov" src="therapy_ov2015-10-22-1.png" alt="">
-
-    <fieldset class=note>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c000" id=2015-10-22-1_c1c000><label for=2015-10-22-1_c1c000></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c001" id=2015-10-22-1_c1c001><label for=2015-10-22-1_c1c001></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c010" id=2015-10-22-1_c1c010><label for=2015-10-22-1_c1c010></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c011" id=2015-10-22-1_c1c011><label for=2015-10-22-1_c1c011></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c100" id=2015-10-22-1_c1c100><label for=2015-10-22-1_c1c100></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c101" id=2015-10-22-1_c1c101><label for=2015-10-22-1_c1c101></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c110" id=2015-10-22-1_c1c110><label for=2015-10-22-1_c1c110></label>
-      <input class=color type=radio name=2015-10-22-1_c1 value="c111" id=2015-10-22-1_c1c111><label for=2015-10-22-1_c1c111></label>
-      <textarea name=2015-10-22-1_n1>
-      </textarea>
-    </fieldset>
-    <button type=submit name=edit value=2015-10-22-1_note3>Speichern</button>
-  </div>
 
+       ${mpx[prescno]:+<span class="prescno">$(l10n presc${mpx[prescno]})</span>}
+  ${mpx[grouptherapy]:+<span class="catalogue">$(l10n grouptherapy)</span>}
+     ${mpx[housecall]:+<span class="catalogue">$(l10n housecall)</span>}
+        ${mpx[report]:+<span class="catalogue">$(l10n report)</span>}
+
+  <ul>
+    ${mpx[remidy]:+ <li>${mpx[quantity]}  ${mpx[remidy]}  ${mpx[quantity_weekly]:+($mpx[quantity_weekly] $(l10n weekly))}</li>}
+    ${mpx[remidy1]:+<li>${mpx[quantity1]} ${mpx[remidy1]} ${mpx[quantity_weekly1]:+($mpx[quantity_weekly1] $(l10n weekly))}</li>}
+  </ul>
+
+  ${mpx[indicator]:+<span class="indicator"><label>$(l10n indicator):</label>${mpx[indicator]}</span>}
+      ${mpx[icd10]:+<span class="icd10">    <label>$(l10n icd10):</label>${mpx[icd10]}</span>}
+
+  ${mpx[addcontrib]:+
+  <label class='checkbox ${mpx[contribconfirm]:+checked}' for="addcontrib">
+    $([ -n "${mpx[contribconfirm]}" ] && printf %s "$(l10n contribconfirm)" ${mpx[contribconfirm]} \
+                                      || printf %s "$(l10n addcontrib)" )
+  </label>
+  }
+</div>
+
+<form method="POST" action="?action=update_therapy">
+  <input type="hidden" name="id" value="${id}">
+
+  <input class="stickynote" type="checkbox" name="c_stickynote" id="show_stickynote">
+  <fieldset class="stickynote">
+    <label for="show_stickynote">$(l10n notes)</label>
+    <textarea name="stickynote">${tpy[stickynote]}</textarea>
+    <button type=submit>$(l10n save)</button>
+  </fieldset>
+
+  <label class="tab heading">
+    <span class=no>$(l10n number)</span><!--
+ --><span class=date>$(l10n date)</span><!--
+ --><span class=therapist>$(l10n therapist)</span><!--
+ --><span class=signature>$(l10n signature)</span>
+  </label>
+EOF
+
+therapy_sessions
+
+cat <<EOF
   <fieldset class=color>
-    <input class=color type=radio name=color value="c000" id=c000><label for=c000></label>
-    <input class=color type=radio name=color value="c001" id=c001><label for=c001></label>
-    <input class=color type=radio name=color value="c010" id=c010><label for=c010></label>
-    <input class=color type=radio name=color value="c011" id=c011><label for=c011></label>
-    <input class=color type=radio name=color value="c100" id=c100 checked><label for=c100></label>
-    <input class=color type=radio name=color value="c101" id=c101><label for=c101></label>
-    <input class=color type=radio name=color value="c110" id=c110><label for=c110></label>
-    <input class=color type=radio name=color value="c111" id=c111><label for=c111></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#000')" value="#000" id=c000 $c0><label for=c000></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#00A')" value="#00A" id=c001 $c1><label for=c001></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#0A0')" value="#0A0" id=c010 $c2><label for=c010></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#0AA')" value="#0AA" id=c011 $c3><label for=c011></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#A00')" value="#A00" id=c100 $c4><label for=c100></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#A0A')" value="#A0A" id=c101 $c5><label for=c101></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#AA0')" value="#AA0" id=c110 $c6><label for=c110></label>
+    <input class=color type=radio name=color onclick="javascript:setcol('#FFF')" value="#FFF" id=c111 $c7><label for=c111></label>
   </fieldset>
-  <img class="dotmark bg" src="therapy_background.png" alt="">
+  <img class="dotmark bg" src="?static=therapy_background.png" alt="WARNING: Background Image not available!">
+  <canvas id="canvas" class="dotmark ov" width="${bg_dim%x*}" height="${bg_dim#*x}"></canvas>
+
+  <input type=hidden id=image_serialize name=imagedata value="">
+  <span id="jsdebug" style="display: none; position: fixed; right:0; bottom:0">Debug</span>
+
+  <script><!--
+  body = document.body
+  canvas = document.getElementById("canvas")
+  dbg = document.getElementById("jsdebug")
+  image = canvas.getContext("2d")
+  mouse = 0
+  image_serialize=""
+  data=document.getElementById("image_serialize")
+
+  function setcol(c) {
+    image.strokeStyle = c
+    if ( c == "#FFF" ) image.lineWidth = 32
+    else image.lineWidth = 4
+    image_serialize += " stroke " + c + " stroke-width " + image.lineWidth
+  }
+
+  setcol("$tpy[color]")
+
+  function draw(x, y) {
+    if ( mouse == 1){
+      if ( body.clientWidth >= 800 ){
+        sx=Math.floor(cscaleW * (x - canvas.offsetLeft))
+        sy=Math.floor(cscaleH * (y - canvas.offsetTop))
+      } else { 
+        sx=Math.floor(cscaleW * (x - canvas.offsetLeft + window.pageXOffset))
+        sy=Math.floor(cscaleH * (y - canvas.offsetTop + window.pageYOffset))
+      }
+      image.lineTo( sx, sy )
+      image.stroke()
+
+      image_serialize += " " + sx + "," + sy
+    }
+  }
+
+  function drawstart(x, y) {
+    mouse = 1
+
+    cscaleW = canvas.width / canvas.clientWidth
+    cscaleH = canvas.height / canvas.clientHeight
+
+    image_serialize += " polyline"
+    image.beginPath()
+    draw(x, y)
+  }
+  function drawstop() {
+   mouse = 0
+   image.closePath()
+   dbg.innerHTML = image_serialize
+   data.value = image_serialize
+  }
+
+  window.addEventListener( 'mouseup',   function()   { drawstop() } )
+  canvas.addEventListener( 'mousedown', function(e)  { drawstart(e.clientX, e.clientY) } )
+  canvas.addEventListener( 'mousemove', function(e)  {      draw(e.clientX, e.clientY) } )
+
+  window.addEventListener( 'touchend',   function()  { drawstop() } )
+  canvas.addEventListener( 'touchstart', function(e) { drawstart(e.touches[0].clientX, e.touches[0].clientY) } )
+  canvas.addEventListener( 'touchmove',  function(e) { e.preventDefault(); draw(e.touches[0].clientX, e.touches[0].clientY) } )
+
+  --></script>
 </form>
 
 EOF