diff --git a/extbin/ediviewer b/extbin/ediviewer
new file mode 100755
index 0000000..f66c312
Binary files /dev/null and b/extbin/ediviewer differ
diff --git a/extbin/medeur.json b/extbin/medeur.json
new file mode 100644
index 0000000..be2c6fd
--- /dev/null
+++ b/extbin/medeur.json
@@ -0,0 +1 @@
+{"format":[{"name":"UNB","description":"Interchange header"},{"name":"UNH","description":"Head of message"},{"name":"BGM","children":[{"name":"DTM","description":"Datum aangemaakt"},{"name":"RFF","description":"Referenties"},{"name":"FTX","description":"Bericht afhankelijke mededeling"}],"description":"Begin van het bericht"},{"name":"S01","children":[{"name":"NAD","description":"Naam en adres"},{"name":"ADR","description":"Adres"},{"name":"COM","description":"Telefoon- en fax-nummers"},{"name":"RFF"},{"name":"DTM"},{"name":"LAN"},{"name":"SPR","description":"Type medewerker"},{"name":"QUA","description":"Kwalificatie"},{"name":"FTX","description":"Vrije tekst"}],"description":"Medebehandelaar"},{"name":"S02","children":[{"name":"PNA","description":"Naam van de patient"},{"name":"ADR","description":"Adres-patient"},{"name":"COM","description":"Telefoon- en fax-nummers"},{"name":"RFF","description":"Referenties"},{"name":"DTM","description":"Tijdsindicatie"},{"name":"NAT"},{"name":"LAN"},{"name":"LOC"},{"name":"PDI","description":"Demografische gegevens"},{"name":"QUA","description":"Kwalificatie"},{"name":"STS"},{"name":"INS","description":"Verzekeringsgegevens"},{"name":"REL"},{"name":"FTX","description":"Vrije tekst"},{"name":"S03","children":[{"name":"DTM","description":"Tijdsindicatie"},{"name":"S04","children":[{"name":"CIN","description":"Diagnose signalering of risico-factor"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Referentie naar groep 1"},{"name":"FTX","description":"Vrije tekst"},{"name":"DTM","description":"Tijdsindicatie"}],"description":"Medisch kenmerk"},{"name":"S05","children":[{"name":"INV"},{"name":"DTM"}]}],"description":"Contact onafhankelijke medische gegevens"},{"name":"S06","children":[{"name":"DTM","description":"Datum/tijd van een contact"},{"name":"RFF","description":"Verantwoordelijke persoon"},{"name":"S07","children":[{"name":"FTX"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Probleem/episode"},{"name":"DTM","description":"Datum/tijd van een contact"}],"description":"Ongeclassificeerde journaalregel"},{"name":"S08","children":[{"name":"INV","description":"Meting identificatie"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Probleem/episode"},{"name":"RSL","description":"Resultaat meting"},{"name":"RND","description":"Normaalwaarden"},{"name":"FTX","description":"Resultaat"},{"name":"DTM","description":"Datum/tijd"}],"description":"Metingen"},{"name":"S09","children":[{"name":"CIN","description":"Diagnose"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Probleem/episode"},{"name":"FTX","description":"Diagnose in vrije tekst"},{"name":"DTM","description":"Datum/tijd"}],"description":"Diagnoses"},{"name":"S10","children":[{"name":"SPR","description":"Specialisme"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Probleem/episode"},{"name":"PRC","description":"Soort verwijzing"},{"name":"FTX","description":"Beschrijving"},{"name":"DTM","description":"Datum/tijd"}],"description":"Verwijzingen of terugverwijzingen"},{"name":"S11","children":[{"name":"CLI","description":"Type therapie"},{"name":"PTY","description":"Prioriteit"},{"name":"RFF","description":"Probleem/episode"},{"name":"FTX","description":"Vrije tekst"},{"name":"QTY","description":"Hoeveelheid"},{"name":"DNL","children":[{"name":"DSG","description":"Dose administration"},{"name":"FTX","description":"Vrije tekst"}],"description":"Dosering Nederlandse stijl"},{"name":"SPC","children":[{"name":"QTY","description":"Hoeveelheid"}],"description":"Afzonderlijke stoffen van recept"},{"name":"CIN","description":"Indicatie"},{"name":"SPR","description":"Specialisme voorschrijver"},{"name":"DTM","description":"Datum/tijd"}],"description":"Therapie"}],"description":"Journaalregel"}],"description":"Pati\u00ebnt"},{"name":"UNT","description":"Einde van het bericht"},{"name":"UNZ","description":"Einde uitwisseling"}]}
\ No newline at end of file
diff --git a/extbin/template.html b/extbin/template.html
new file mode 100644
index 0000000..11295f7
--- /dev/null
+++ b/extbin/template.html
@@ -0,0 +1,520 @@
+
+
+{{.Patient.Name}} — MEDEUR
+
+
+
+
+
+{{define "person-row"}}
+
+ {{if .Name}}{{.Name}}{{else}}Geen naam{{end}} |
+ {{.Function}} |
+ {{.Address}} |
+ {{if .AGB}}AGB: {{.AGB}}{{end}} |
+
{{end}}
+
+{{define "medi-group-epi"}}
+ {{$root := .}}
+
+
+
+ Datum |
+ {{if HasEndDates .Episodes }}
+ Einddatum |
+ {{end}}
+ Type |
+ ICPC |
+ Beschrijving |
+ {{if eq .Extra.verbose_icpc_description "true"}}
+ Beschrijving arts |
+ {{else}}
+ {{end}}
+ |
+
+
+
+ {{range .Episodes}}
+
+ {{.Date}} |
+
+ {{if HasEndDates $.Episodes }}
+ {{.EndDate}} |
+ {{end}}
+
+ {{.Type}} |
+ {{.ICPC}} |
+
+ {{if eq $root.Extra.verbose_icpc_description "true"}}
+ {{.Title}} |
+ {{.Description}} |
+ {{else}}
+ {{if eq .Description ""}}
+ {{.Title}} |
+ {{else}}
+ {{.Description}} |
+ {{end}}
+ {{end}}
+
+ {{end}}
+
+
+{{end}}
+
+{{define "medi-group-ica"}}
+ {{$root := .}}
+
+
+
+ Datum |
+ Type |
+ ICPC |
+ Beschrijving |
+ {{if eq $root.Extra.verbose_icpc_description "true"}}
+ |
+ {{else}}
+ {{end}}
+
+
+
+ {{range .Indicators}}
+
+ {{.Date}} |
+ {{.Type}} |
+ {{.ICPC}} |
+ {{.Title}} |
+ {{if eq $root.Extra.verbose_icpc_description "true"}}
+ {{.Description}} |
+ {{else}}
+ |
+ {{end}}
+
{{end}}
+
+
+ {{end}}
+
+
+
Huisarts
+
+ {{template "person-row" .GP}}
+ {{if .Pharmacy.Anchor}}{{template "person-row" .Pharmacy}}{{end}}
+
+
+{{if .Practitioners}}
+
Medebehandelaren
+
+
{{range .Practitioners}}
+ {{template "person-row" .}}{{end}}
+
+
+{{end}}
+
+
+
+
+
Patiënt
+
+
+
+ Naam:
+ | {{.Patient.Name}}
+ {{if .Patient.BSN}}
+ |
+ BSN:
+ | {{.Patient.BSN}}
+ {{end}}
+ |
+ Geboortedatum:
+ | {{.Patient.Birthdate}}
+ |
+ Adres:
+ | {{.Patient.Address}}
+ |
+ Geslacht:
+ | {{.Patient.Gender}}
+ {{range .Patient.OtherFields}}
+ |
+ {{.Key}}:
+ | {{.Value}}
+ {{end}}
+ |
+
+
+{{if .Memo}}
+
+
Memo
+ {{.Memo}}
+
+{{end}}
+
+{{if .Episodes}}
+
+
Episodelijst
+ {{template "medi-group-epi" .}}
+
+{{end}}
+
+{{if .Indicators}}
+
+
Contra-indicaties, interacties en allergieën
+{{template "medi-group-ica" .}}
+
+{{end}}
+
+{{if .Medication}}
+
+
Medicatieoverzicht
+
+
+
+ Recept |
+ Gebruiksvoorschrift |
+ Hoeveelheid |
+ Ingang |
+ Vervalt |
+
+
+
+ {{range $index, $med := .Medication}}
+ {{if gt (len $med.Fold) 1}}
+
+ {{$med.Recipe}} |
+ {{$med.Instructions}} |
+ {{ YieldDosage $med }} |
+ {{$med.StartDate}} |
+ {{$med.EndDate}} |
+
+ {{range $fold := $med.Fold}}
+
+ |
+ {{ if ne $med.Instructions $fold.Instructions}}{{$fold.Instructions}}{{else}}{{end}} |
+ {{ YieldDosage $fold }} |
+ {{$fold.StartDate}} |
+ {{$fold.EndDate}} |
+
+ {{end}}
+ {{else}}
+
+ {{$med.Recipe}} |
+ {{$med.Instructions}} |
+ {{ YieldDosage $med }} |
+ {{$med.StartDate}} |
+ {{$med.EndDate}} |
+
+ {{end}}
+ {{end }}
+
+
+
+{{end}}
+
+{{if .Journal}}
+
+
Journaal
+
+
+{{range .Journal}}
+
+
{{.Date}}
+
+
+ {{if .Results}}
+
+
+
+
+ Identificatie |
+ Resultaat |
+ Beschrijving |
+
+
+
+ {{range .Results}}
+ {{.Kind}} |
+ {{.Result}} |
+ {{if eq .Identification "Buiten normaalwaarde"}}{{.Identification}}{{else}}{{.Identification}}{{end}}
+ {{if and .Identification .Description}} {{end}}
+ {{.Description}}
+ |
+
+ {{end}}
+
+
+
+ {{end}}
+
+ {{range .Lines}}
+
+
+
+
+ {{if .SOEP}}
+ {{.SOEP}}:
+ | {{ConvertLinebreaks .Text}}
+ {{end}}
+ {{if .Kind}}
+ | {{.Kind}}{{if .Text}}:{{end}}
+ | {{ConvertLinebreaks .Text}}
+ {{end}}
+ |
+
+
+
+ {{end}}
+
+
+{{end}}
+{{end}}
+
+{{if .Extra.csrf_token }}
+
+{{end}}
+
+
+