|
|
|
@ -1,103 +1,98 @@ |
|
|
|
|
<!DOCTYPE html><html><head> |
|
|
|
|
<meta charset="utf-8"> |
|
|
|
|
<title>{{.Patient.Name}} — MEDEUR</title> |
|
|
|
|
<style> |
|
|
|
|
body { margin: 1em auto; font-size: 12pt; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; } |
|
|
|
|
@media screen and (max-width: 700px) { |
|
|
|
|
body { width: 700px; } |
|
|
|
|
} |
|
|
|
|
@media screen and (min-width: 1200px) { |
|
|
|
|
body { width: 1200px; } |
|
|
|
|
} |
|
|
|
|
.container { margin: 1em auto; font-size: 12pt; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; } |
|
|
|
|
@media screen and (max-width: 700px) { |
|
|
|
|
.container { width: 700px; } |
|
|
|
|
} |
|
|
|
|
@media screen and (min-width: 1200px) { |
|
|
|
|
.container { width: 1200px; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
* { margin: 0; padding: 0; box-sizing: border-box; } |
|
|
|
|
h3 { margin-bottom: 8px; } |
|
|
|
|
ul { list-style-type: none; } |
|
|
|
|
li + li { margin-top: 10px; } |
|
|
|
|
td { vertical-align: top; } |
|
|
|
|
.seg { margin-top: 8px; padding: 8px 10px; border: 0 solid #e7e7e7; border-width: 0 1px 1px 1px; } |
|
|
|
|
.seg-hdr { margin-top: 8px; border-top-width: 1px; background: #F8F8F8; } |
|
|
|
|
.seg-hdr-white { margin-top: 8px; background: #FFFFFF; border-color: transparent; } |
|
|
|
|
|
|
|
|
|
a { color: royalblue } |
|
|
|
|
|
|
|
|
|
table.patient th { text-align: left; padding-right: 1em } |
|
|
|
|
|
|
|
|
|
table.SOEPkind { margin: -6px 0 } |
|
|
|
|
table.SOEPkind tr { height: 1em } |
|
|
|
|
table.SOEPkind th { text-align: left; width: 32px; height: 1em; font-weight: normal } |
|
|
|
|
|
|
|
|
|
table.results th { text-align: left } |
|
|
|
|
|
|
|
|
|
.error { position: fixed; top: 10px; margin-left: 32px; border: 2px solid #000000; background-color: #FF2222; } |
|
|
|
|
|
|
|
|
|
.row + .row { margin-top: 4px; } |
|
|
|
|
|
|
|
|
|
.table { font-size: 100%; width: 100%; border-spacing: 0; border-collapse: collapse; } |
|
|
|
|
.table tr { font-size: 100% } |
|
|
|
|
.table td { font-size: 100% } |
|
|
|
|
.table th { font-size: 100%; text-align: left; } |
|
|
|
|
.table tbody td { font-size: 100%; text-align: left; padding: 2px 8px 2px 0; } |
|
|
|
|
.table thead th { font-size: 100%; padding: 0 0 2px 0; } |
|
|
|
|
.table tr.highlight { background: #E3E9E3 } |
|
|
|
|
|
|
|
|
|
.column-attn { width: 1em; } |
|
|
|
|
.column-code { width: 4em; } |
|
|
|
|
.column-date { width: 6.5em; } |
|
|
|
|
.column-small-name { width: 10em; } |
|
|
|
|
.column-medium-name { width: 14em; } |
|
|
|
|
.column-large-name { width: 28em; } |
|
|
|
|
.column-name { width: 20em; } |
|
|
|
|
.column-instr{ width: 15em; } |
|
|
|
|
.column-quantity { width: 12em; } |
|
|
|
|
|
|
|
|
|
.no-margin { margin-bottom: 0px; } |
|
|
|
|
|
|
|
|
|
.seg-date { float: left; width: 6.5em; } |
|
|
|
|
.seg-content-offset { margin-left: 6.5em } |
|
|
|
|
|
|
|
|
|
.column-result-id { width: 16em } |
|
|
|
|
.column-result-name { width: 10em } |
|
|
|
|
|
|
|
|
|
h3.fold-toggle { margin-bottom: 8px } |
|
|
|
|
h4.fold-toggle { margin-bottom: 0; margin-top: 4px } |
|
|
|
|
h3.fold-toggle.fold-toggle-hidden { margin-bottom: 0 } |
|
|
|
|
h4.fold-toggle.fold-toggle-hidden { margin-bottom: 4px } |
|
|
|
|
.fold-toggle .fold-marker:before, |
|
|
|
|
h3.fold-toggle:before, |
|
|
|
|
h4.fold-toggle:before { content: "▾ " } |
|
|
|
|
.fold-toggle.fold-toggle-hidden .fold-marker:before, |
|
|
|
|
h3.fold-toggle.fold-toggle-hidden:before, |
|
|
|
|
h4.fold-toggle.fold-toggle-hidden:before { content: "▸ " } |
|
|
|
|
.fold-toggle { cursor: pointer; } |
|
|
|
|
.fold-hidden {display: none} |
|
|
|
|
|
|
|
|
|
.hidden |
|
|
|
|
{ |
|
|
|
|
display: none !important |
|
|
|
|
} |
|
|
|
|
.container h3 { margin-bottom: 8px; } |
|
|
|
|
.container ul { list-style-type: none; } |
|
|
|
|
.container li + li { margin-top: 10px; } |
|
|
|
|
.container td { vertical-align: top; } |
|
|
|
|
.container .seg { margin-top: 8px; padding: 8px 10px; border: 0 solid #e7e7e7; border-width: 0 1px 1px 1px; } |
|
|
|
|
.container .seg-hdr { margin-top: 8px; border-top-width: 1px; background: #F8F8F8; } |
|
|
|
|
.container .seg-hdr-white { margin-top: 8px; background: #FFFFFF; border-color: transparent; } |
|
|
|
|
|
|
|
|
|
.container a { color: royalblue } |
|
|
|
|
|
|
|
|
|
.container table.patient th { text-align: left; padding-right: 1em } |
|
|
|
|
|
|
|
|
|
.container table.SOEPkind { margin: -6px 0 } |
|
|
|
|
.container table.SOEPkind tr { height: 1em } |
|
|
|
|
.container table.SOEPkind th { text-align: left; width: 32px; height: 1em; font-weight: normal } |
|
|
|
|
|
|
|
|
|
.container table.results th { text-align: left } |
|
|
|
|
|
|
|
|
|
.container .error { position: fixed; top: 10px; margin-left: 32px; border: 2px solid #000000; background-color: #FF2222; } |
|
|
|
|
|
|
|
|
|
.row + .row { margin-top: 4px; } |
|
|
|
|
|
|
|
|
|
.table { font-size: 100%; width: 100%; border-spacing: 0; border-collapse: collapse; } |
|
|
|
|
.table tr { font-size: 100% } |
|
|
|
|
.table td { font-size: 100% } |
|
|
|
|
.table th { font-size: 100%; text-align: left; } |
|
|
|
|
.table tbody td { font-size: 100%; text-align: left; padding: 2px 8px 2px 0; } |
|
|
|
|
.table thead th { font-size: 100%; padding: 0 0 2px 0; } |
|
|
|
|
.table tr.highlight { background: #E3E9E3 } |
|
|
|
|
|
|
|
|
|
.column-attn { width: 1em; } |
|
|
|
|
.column-code { width: 4em; } |
|
|
|
|
.column-date { width: 6.5em; } |
|
|
|
|
.column-small-name { width: 10em; } |
|
|
|
|
.column-medium-name { width: 14em; } |
|
|
|
|
.column-large-name { width: 28em; } |
|
|
|
|
.column-name { width: 20em; } |
|
|
|
|
.column-instr{ width: 15em; } |
|
|
|
|
.column-quantity { width: 12em; } |
|
|
|
|
|
|
|
|
|
.no-margin { margin-bottom: 0px; } |
|
|
|
|
|
|
|
|
|
.seg-date { float: left; width: 6.5em; } |
|
|
|
|
.seg-content-offset { margin-left: 6.5em } |
|
|
|
|
|
|
|
|
|
.column-result-id { width: 16em } |
|
|
|
|
.column-result-name { width: 10em } |
|
|
|
|
|
|
|
|
|
.container h3.fold-toggle { margin-bottom: 8px } |
|
|
|
|
.container h4.fold-toggle { margin-bottom: 0; margin-top: 4px } |
|
|
|
|
.container h3.fold-toggle.fold-toggle-hidden { margin-bottom: 0 } |
|
|
|
|
.container h4.fold-toggle.fold-toggle-hidden { margin-bottom: 4px } |
|
|
|
|
.fold-toggle .fold-marker:before, |
|
|
|
|
.container h3.fold-toggle:before, |
|
|
|
|
.container h4.fold-toggle:before { content: "▾ " } |
|
|
|
|
.fold-toggle.fold-toggle-hidden .fold-marker:before, |
|
|
|
|
.container h3.fold-toggle.fold-toggle-hidden:before, |
|
|
|
|
.container h4.fold-toggle.fold-toggle-hidden:before { content: "▸ " } |
|
|
|
|
.fold-toggle { cursor: pointer; } |
|
|
|
|
.fold-hidden {display: none} |
|
|
|
|
|
|
|
|
|
.hidden |
|
|
|
|
{ |
|
|
|
|
display: none !important |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
textarea |
|
|
|
|
{ |
|
|
|
|
border: 1px solid #333; |
|
|
|
|
padding: .5em; |
|
|
|
|
font-size: 100% |
|
|
|
|
} |
|
|
|
|
.container textarea |
|
|
|
|
{ |
|
|
|
|
border: 1px solid #333; |
|
|
|
|
padding: .5em; |
|
|
|
|
font-size: 100% |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
input[type=submit] |
|
|
|
|
{ |
|
|
|
|
font-size: 90%; |
|
|
|
|
padding: .25em |
|
|
|
|
} |
|
|
|
|
.container input[type=submit] |
|
|
|
|
{ |
|
|
|
|
font-size: 90%; |
|
|
|
|
padding: .25em |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
button |
|
|
|
|
{ |
|
|
|
|
font-size: 75%; |
|
|
|
|
padding: .25em |
|
|
|
|
} |
|
|
|
|
</style></head> |
|
|
|
|
.container button |
|
|
|
|
{ |
|
|
|
|
font-size: 75%; |
|
|
|
|
padding: .25em |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
<body> |
|
|
|
|
<div class="container"> |
|
|
|
|
|
|
|
|
|
{{define "person-row"}} |
|
|
|
@ -114,9 +109,6 @@ button |
|
|
|
|
<thead> |
|
|
|
|
<tr> |
|
|
|
|
<th class="column-date">Datum</th> |
|
|
|
|
{{if HasEndDates .Episodes }} |
|
|
|
|
<th class="column-date">Einddatum</th> |
|
|
|
|
{{end}} |
|
|
|
|
<th class="column-code">Type</th> |
|
|
|
|
<th class="column-date">ICPC</th> |
|
|
|
|
<th class="column-name">Beschrijving</th> |
|
|
|
@ -128,32 +120,26 @@ button |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
|
<tbody> |
|
|
|
|
{{range .Episodes}} |
|
|
|
|
<tr {{if .Anchor}} id="medigroup-{{.Anchor}}"{{end}}> |
|
|
|
|
<td>{{.Date}}</td> |
|
|
|
|
|
|
|
|
|
{{if HasEndDates $.Episodes }} |
|
|
|
|
<td style="{{if EndDateInPast .EndDate}}color: red;{{end}}">{{.EndDate}}</td> |
|
|
|
|
{{end}} |
|
|
|
|
{{range .Episodes}} |
|
|
|
|
<tr{{if .Anchor}} id="medigroup-{{.Anchor}}"{{end}}> |
|
|
|
|
<td>{{.Date}}</td> |
|
|
|
|
<td>{{.Type}}</td> |
|
|
|
|
<td>{{.ICPC}}</td> |
|
|
|
|
|
|
|
|
|
<td>{{.Type}}</td> |
|
|
|
|
<td>{{.ICPC}}</td> |
|
|
|
|
|
|
|
|
|
{{if eq $root.Extra.verbose_icpc_description "true"}} |
|
|
|
|
<td>{{.Title}}</td> |
|
|
|
|
<td>{{.Description}}</td> |
|
|
|
|
{{else}} |
|
|
|
|
{{if eq .Description ""}} |
|
|
|
|
<td colspan="2">{{.Title}}</td> |
|
|
|
|
{{else}} |
|
|
|
|
<td colspan="2">{{.Description}}</td> |
|
|
|
|
{{end}} |
|
|
|
|
{{end}} |
|
|
|
|
</tr> |
|
|
|
|
{{end}} |
|
|
|
|
{{if eq $root.Extra.verbose_icpc_description "true"}} |
|
|
|
|
<td>{{.Title}}</td> |
|
|
|
|
<td>{{.Description}}</td> |
|
|
|
|
{{else}} |
|
|
|
|
{{if eq .Description ""}} |
|
|
|
|
<td colspan="2">{{.Title}}</td> |
|
|
|
|
{{else}} |
|
|
|
|
<td colspan="2">{{.Description}}</td> |
|
|
|
|
{{end}} |
|
|
|
|
{{end}} |
|
|
|
|
</tr>{{end}} |
|
|
|
|
</tbody> |
|
|
|
|
</table> |
|
|
|
|
{{end}} |
|
|
|
|
{{end}} |
|
|
|
|
|
|
|
|
|
{{define "medi-group-ica"}} |
|
|
|
|
{{$root := .}} |
|
|
|
@ -244,7 +230,7 @@ button |
|
|
|
|
{{if .Episodes}} |
|
|
|
|
<div class="seg seg-hdr"> |
|
|
|
|
<h3>Episodelijst</h3> |
|
|
|
|
{{template "medi-group-epi" .}} |
|
|
|
|
{{template "medi-group-epi" .}} |
|
|
|
|
</div> |
|
|
|
|
{{end}} |
|
|
|
|
|
|
|
|
@ -363,14 +349,14 @@ button |
|
|
|
|
{{if .Extra.csrf_token }} |
|
|
|
|
<div class="seg seg-hdr-white"> |
|
|
|
|
<br> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="feedback-header"><button onClick="feedbackHeaderClicked()">Notitie schrijven</button></h3> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<form id="feedback-form" class="hidden" method="POST" onSubmit="sendFeedback(); return false"> <!-- TODO: contruct proper URL in golang --> |
|
|
|
|
<input type="hidden" name="csrf_token" value="{{.Extra.csrf_token}}" id="csrf"> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><br><textarea id="feedback-textarea" rows="7" cols="50"></textarea> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><br><input type="submit" value="Opsturen"> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
@ -453,68 +439,4 @@ function getXMLHttpRequest() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function sendFeedback() |
|
|
|
|
{ |
|
|
|
|
var URL = document.location.href.replace('preview', '') + 'pushback' |
|
|
|
|
|
|
|
|
|
var textarea = document.getElementById('feedback-textarea') |
|
|
|
|
var message = textarea.value |
|
|
|
|
var csrf_element = document.getElementById('csrf') |
|
|
|
|
var csrf= csrf_element.value |
|
|
|
|
|
|
|
|
|
var xmlhttp = getXMLHttpRequest() |
|
|
|
|
|
|
|
|
|
xmlhttp.onreadystatechange = function() { sendFeedbackHandler(xmlhttp) } |
|
|
|
|
|
|
|
|
|
params = ''; |
|
|
|
|
params += 'csrf_token=' + encodeURIComponent(csrf) + '&' |
|
|
|
|
params += 'message=' + encodeURIComponent(message) |
|
|
|
|
|
|
|
|
|
xmlhttp.open('POST', URL, true) |
|
|
|
|
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') |
|
|
|
|
xmlhttp.setRequestHeader('Content-length', params.length) |
|
|
|
|
xmlhttp.setRequestHeader('Connection', 'close') |
|
|
|
|
xmlhttp.send(params) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function sendFeedbackHandler(xmlhttp) |
|
|
|
|
{ |
|
|
|
|
if (xmlhttp.readyState != 4) { return } |
|
|
|
|
|
|
|
|
|
if (xmlhttp.status == 200) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
var response = JSON.parse(xmlhttp.responseText) |
|
|
|
|
if (response.success) { |
|
|
|
|
alert('Feedback is succesvol verstuurd.') |
|
|
|
|
toggle('feedback-form') |
|
|
|
|
} else { |
|
|
|
|
alert('Er is iets fout gegaan: ' + response.error) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
catch (e) |
|
|
|
|
{ |
|
|
|
|
alert('Fout bij versturen feedback.') |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
alert('Fout bij versturen feedback.') |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
function send_height_to_parent() { |
|
|
|
|
var body = document.body, |
|
|
|
|
html = document.documentElement; |
|
|
|
|
var height = Math.max( body.scrollHeight, body.offsetHeight, |
|
|
|
|
html.clientHeight, html.scrollHeight, html.offsetHeight ); |
|
|
|
|
|
|
|
|
|
var msg = { |
|
|
|
|
"height": height, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
parent.postMessage(msg, "*"); |
|
|
|
|
} |
|
|
|
|
send_height_to_parent(); |
|
|
|
|
</script></body></html> |